diff --git a/icons/icons.qrc b/icons/icons.qrc index b9971320c..5f495df07 100644 --- a/icons/icons.qrc +++ b/icons/icons.qrc @@ -11,6 +11,7 @@ razor.png audiosource.png videosource.png + imagesource.png ripple.png rolling.png slip.png diff --git a/icons/imagesource.png b/icons/imagesource.png new file mode 100644 index 000000000..734a16657 Binary files /dev/null and b/icons/imagesource.png differ diff --git a/io/previewgenerator.cpp b/io/previewgenerator.cpp index 3fd3613e7..7c9e6ce46 100644 --- a/io/previewgenerator.cpp +++ b/io/previewgenerator.cpp @@ -172,22 +172,26 @@ void PreviewGenerator::finalize_media() { media->ready_lock.unlock(); media->ready = true; - if (media->video_tracks.size() == 0) { - emit set_icon(ICON_TYPE_AUDIO, replace); - } else { - emit set_icon(ICON_TYPE_VIDEO, replace); - } - if (!contains_still_image || media->audio_tracks.size() > 0) { - double frame_rate = 30; - if (!contains_still_image && media->video_tracks.size() > 0) frame_rate = media->video_tracks.at(0)->video_frame_rate; + if (media->video_tracks.size() == 0) { + emit set_icon(ICON_TYPE_AUDIO, replace); + } else if (contains_still_image) { + emit set_icon(ICON_TYPE_IMAGE, replace); + } else { + emit set_icon(ICON_TYPE_VIDEO, replace); + } + + if (!contains_still_image || media->audio_tracks.size() > 0) { + double frame_rate = 30; + if (!contains_still_image && media->video_tracks.size() > 0) frame_rate = media->video_tracks.at(0)->video_frame_rate; item->setText(1, frame_to_timecode(media->get_length_in_frames(frame_rate), config.timecode_view, frame_rate)); - + if (media->video_tracks.size() > 0) { item->setText(2, QString::number(frame_rate) + " FPS"); } else { item->setText(2, QString::number(media->audio_tracks.at(0)->audio_frequency) + " Hz"); } + } } } diff --git a/io/previewgenerator.h b/io/previewgenerator.h index c3e479500..b1dd512f5 100644 --- a/io/previewgenerator.h +++ b/io/previewgenerator.h @@ -5,7 +5,8 @@ #define ICON_TYPE_VIDEO 0 #define ICON_TYPE_AUDIO 1 -#define ICON_TYPE_ERROR 2 +#define ICON_TYPE_IMAGE 2 +#define ICON_TYPE_ERROR 3 struct Media; struct MediaStream; diff --git a/panels/project.cpp b/panels/project.cpp index e7da458fe..6424fb598 100644 --- a/panels/project.cpp +++ b/panels/project.cpp @@ -1597,6 +1597,7 @@ void MediaThrobber::stop(int icon_type, bool replace) { switch (icon_type) { case ICON_TYPE_VIDEO: item->setIcon(0, QIcon(":/icons/videosource.png")); break; case ICON_TYPE_AUDIO: item->setIcon(0, QIcon(":/icons/audiosource.png")); break; + case ICON_TYPE_IMAGE: item->setIcon(0, QIcon(":/icons/imagesource.png")); break; case ICON_TYPE_ERROR: item->setIcon(0, QIcon::fromTheme("dialog-error")); break; }