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;
}