]> git.sesse.net Git - kdenlive/commitdiff
several updates for slideshow clips
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 5 May 2008 13:52:25 +0000 (13:52 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 5 May 2008 13:52:25 +0000 (13:52 +0000)
svn path=/branches/KDE4/; revision=2170

13 files changed:
src/clipproperties.cpp
src/clipproperties.h
src/customtrackview.cpp
src/docclipbase.cpp
src/kthumb.cpp
src/kthumb.h
src/mainwindow.cpp
src/projectitem.cpp
src/projectitem.h
src/projectlist.cpp
src/renderer.cpp
src/slideshowclip.cpp
src/widgets/clipproperties_ui.ui

index 6268a478aec22e0890aba5c8116da5289238762a..eec5ede7d414f5241d3f8b0dd0685e043655b675 100644 (file)
@@ -38,7 +38,7 @@
 #define TYPE_BMP 2
 #define TYPE_GIF 3
 
-ClipProperties::ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidget * parent): QDialog(parent), m_tc(tc), m_clip(clip), m_fps(fps) {
+ClipProperties::ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidget * parent): QDialog(parent), m_tc(tc), m_clip(clip), m_fps(fps), m_clipNeedsRefresh(false), m_count(0) {
     setFont(KGlobalSettings::toolBarFont());
     m_view.setupUi(this);
     KUrl url = m_clip->fileURL();
@@ -55,30 +55,31 @@ ClipProperties::ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidg
 
     CLIPTYPE t = m_clip->clipType();
     if (t == COLOR) {
-       m_view.clip_path->setEnabled(false);
-       m_view.tabWidget->removeTab(SLIDETAB);
-       m_view.tabWidget->removeTab(AUDIOTAB);
-       m_view.tabWidget->removeTab(VIDEOTAB);
+        m_view.clip_path->setEnabled(false);
+        m_view.tabWidget->removeTab(SLIDETAB);
+        m_view.tabWidget->removeTab(AUDIOTAB);
+        m_view.tabWidget->removeTab(VIDEOTAB);
         m_view.clip_thumb->setHidden(true);
-       m_view.clip_color->setColor(QColor("#" + props.value("colour").right(8).left(6)));
-    }
-    else if (t == SLIDESHOW) {
-       m_view.tabWidget->removeTab(COLORTAB);
-       m_view.tabWidget->removeTab(AUDIOTAB);
-       m_view.tabWidget->removeTab(VIDEOTAB);
-       QStringList types;
-       types << "JPG" << "PNG" << "BMP" << "GIF";
-       m_view.image_type->addItems(types);
-       m_view.slide_loop->setChecked(props.value("loop").toInt());
-       QString path = props.value("resource");
-       if (path.endsWith("png")) m_view.image_type->setCurrentIndex(TYPE_PNG);
-       else if (path.endsWith("bmp")) m_view.image_type->setCurrentIndex(TYPE_BMP);
-       else if (path.endsWith("gif")) m_view.image_type->setCurrentIndex(TYPE_GIF);
-       m_view.slide_duration->setText(tc.getTimecodeFromFrames(props.value("ttl").toInt()));
-    }
-    else if (t != AUDIO) {
-       m_view.tabWidget->removeTab(SLIDETAB);
-       m_view.tabWidget->removeTab(COLORTAB);
+        m_view.clip_color->setColor(QColor("#" + props.value("colour").right(8).left(6)));
+    } else if (t == SLIDESHOW) {
+        m_view.clip_path->setText(url.directory());
+        m_view.tabWidget->removeTab(COLORTAB);
+        m_view.tabWidget->removeTab(AUDIOTAB);
+        m_view.tabWidget->removeTab(VIDEOTAB);
+        QStringList types;
+        types << "JPG" << "PNG" << "BMP" << "GIF";
+        m_view.image_type->addItems(types);
+        m_view.slide_loop->setChecked(props.value("loop").toInt());
+        QString path = props.value("resource");
+        if (path.endsWith("png")) m_view.image_type->setCurrentIndex(TYPE_PNG);
+        else if (path.endsWith("bmp")) m_view.image_type->setCurrentIndex(TYPE_BMP);
+        else if (path.endsWith("gif")) m_view.image_type->setCurrentIndex(TYPE_GIF);
+        m_view.slide_duration->setText(tc.getTimecodeFromFrames(props.value("ttl").toInt()));
+        parseFolder();
+        connect(m_view.image_type, SIGNAL(currentIndexChanged(int)), this, SLOT(parseFolder()));
+    } else if (t != AUDIO) {
+        m_view.tabWidget->removeTab(SLIDETAB);
+        m_view.tabWidget->removeTab(COLORTAB);
         if (props.contains("frame_size"))
             m_view.clip_size->setText(props.value("frame_size"));
         if (props.contains("videocodec"))
@@ -92,8 +93,8 @@ ClipProperties::ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidg
         m_view.clip_thumb->setPixmap(pix);
         if (t == IMAGE || t == VIDEO) m_view.tabWidget->removeTab(AUDIOTAB);
     } else {
-       m_view.tabWidget->removeTab(SLIDETAB);
-       m_view.tabWidget->removeTab(COLORTAB);
+        m_view.tabWidget->removeTab(SLIDETAB);
+        m_view.tabWidget->removeTab(COLORTAB);
         m_view.tabWidget->removeTab(VIDEOTAB);
         m_view.clip_thumb->setHidden(true);
     }
@@ -105,7 +106,7 @@ ClipProperties::ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidg
     adjustSize();
 }
 
-int ClipProperties::clipId() {
+int ClipProperties::clipId() const {
     return m_clip->getId();
 }
 
@@ -114,18 +115,92 @@ QMap <QString, QString> ClipProperties::properties() {
     QMap <QString, QString> props;
     props["description"] = m_view.clip_description->text();
     CLIPTYPE t = m_clip->clipType();
-    if (t == SLIDESHOW) {
-       props["loop"] = QString::number((int) m_view.slide_loop->isChecked());
-    }
-    else if (t == COLOR) {
-       QMap <QString, QString> old_props = m_clip->properties();
-       QString new_color = m_view.clip_color->color().name();
-       if (new_color != QString("#" + old_props.value("colour").right(8).left(6)))
-           props["colour"] = "0x" + new_color.right(6) + "ff";
+    if (t == COLOR) {
+        QMap <QString, QString> old_props = m_clip->properties();
+        QString new_color = m_view.clip_color->color().name();
+        if (new_color != QString("#" + old_props.value("colour").right(8).left(6))) {
+            m_clipNeedsRefresh = true;
+            props["colour"] = "0x" + new_color.right(6) + "ff";
+        }
+    } else if (t == SLIDESHOW) {
+        props["loop"] = QString::number((int) m_view.slide_loop->isChecked());
+        QMap <QString, QString> old_props = m_clip->properties();
+        QString extension;
+        switch (m_view.image_type->currentIndex()) {
+        case TYPE_PNG:
+            extension = "/.all.png";
+            break;
+        case TYPE_BMP:
+            extension = "/.all.bmp";
+            break;
+        case TYPE_GIF:
+            extension = "/.all.gif";
+            break;
+        default:
+            extension = "/.all.jpg";
+            break;
+        }
+        QString new_path = m_view.clip_path->text() + extension;
+        if (new_path != old_props.value("resource")) {
+            m_clipNeedsRefresh = true;
+            props["resource"] = new_path;
+            kDebug() << "////  SLIDE EDIT, NEW:" << new_path << ", OLD; " << old_props.value("resource");
+        }
+        int duration = m_tc.getFrameCount(m_view.slide_duration->text(), m_fps);
+        if (duration != old_props.value("ttl").toInt()) {
+            m_clipNeedsRefresh = true;
+            props["ttl"] = QString::number(duration);
+            props["out"] = QString::number(duration * m_count);
+        }
+        if (duration * m_count != old_props.value("out").toInt()) {
+            m_clipNeedsRefresh = true;
+            props["out"] = QString::number(duration * m_count);
+        }
+
     }
     return props;
 }
 
+bool ClipProperties::needsTimelineRefresh() const {
+    return m_clipNeedsRefresh;
+}
+
+void ClipProperties::parseFolder() {
+
+    QDir dir(m_view.clip_path->text());
+    QStringList filters;
+    QString extension;
+    switch (m_view.image_type->currentIndex()) {
+    case TYPE_PNG:
+        filters << "*.png";
+        extension = "/.all.png";
+        break;
+    case TYPE_BMP:
+        filters << "*.bmp";
+        extension = "/.all.bmp";
+        break;
+    case TYPE_GIF:
+        filters << "*.gif";
+        extension = "/.all.gif";
+        break;
+    default:
+        filters << "*.jpg" << "*.jpeg";
+        extension = "/.all.jpg";
+        break;
+    }
+
+    dir.setNameFilters(filters);
+    QStringList result = dir.entryList(QDir::Files);
+    m_count = result.count();
+    m_view.slide_info->setText(i18n("%1 images found", m_count));
+    QDomElement xml = m_clip->toXML();
+    xml.setAttribute("resource", m_view.clip_path->text() + extension);
+    QPixmap pix = m_clip->thumbProducer()->getImage(xml, 1, 240, 180);
+    QMap <QString, QString> props = m_clip->properties();
+    m_view.clip_duration->setText(m_tc.getTimecodeFromFrames(props.value("ttl").toInt() * m_count));
+    m_view.clip_thumb->setPixmap(pix);
+}
+
 #include "clipproperties.moc"
 
 
index c49f8b1f084075a13967db26d8ad412bececde21..843d71cf7bedaa07c8df30c1f87ceb57cc3e65de 100644 (file)
@@ -34,16 +34,20 @@ class ClipProperties : public QDialog {
 public:
     ClipProperties(DocClipBase *clip, Timecode tc, double fps, QWidget * parent = 0);
     QMap <QString, QString> properties();
-    int clipId();
+    int clipId() const;
+    bool needsTimelineRefresh() const;
 
 private slots:
-
+    void parseFolder();
 
 private:
     Ui::ClipProperties_UI m_view;
     DocClipBase *m_clip;
     Timecode m_tc;
     double m_fps;
+    /** used to count images in slideshow clip */
+    int m_count;
+    bool m_clipNeedsRefresh;
 };
 
 
index e60181964c2506046d7a6a19cc2cac967345b566..c02ed596281d26c1a8ddb671408fd3220bfb7e9d 100644 (file)
@@ -909,10 +909,10 @@ void CustomTrackView::slotUpdateClip(int clipId) {
     for (int i = 0; i < list.size(); ++i) {
         if (list.at(i)->type() == AVWIDGET) {
             clip = static_cast <ClipItem *>(list.at(i));
-           if (clip->clipProducer() == clipId) {
-               clip->refreshClip();
-               m_document->renderer()->mltUpdateClip(m_tracksList.count() - clip->track(), clip->startPos(), clip->xml());
-           }
+            if (clip->clipProducer() == clipId) {
+                clip->refreshClip();
+                m_document->renderer()->mltUpdateClip(m_tracksList.count() - clip->track(), clip->startPos(), clip->xml());
+            }
         }
     }
 }
index 1142ba1a289c203e50b833e868d7d60ae5ef498b..10bf759232959007235b861df5e860d6328adf13 100644 (file)
@@ -37,7 +37,7 @@ DocClipBase::DocClipBase(ClipManager *clipManager, QDomElement xml, uint id):
     KUrl url = KUrl(xml.attribute("resource"));
     int out = xml.attribute("out").toInt();
     if (out != 0) {
-        setDuration(GenTime(out, 25));
+        setDuration(GenTime(out, KdenliveSettings::project_fps()));
         //m_properties.insert("out", QString::number(out));
     }
     if (m_name.isEmpty()) m_name = url.fileName();
@@ -158,8 +158,8 @@ const GenTime &DocClipBase::duration() const {
 
 const GenTime &DocClipBase::maxDuration() const {
     if (m_clipType == COLOR || m_clipType == IMAGE || m_clipType == TEXT || (m_clipType == SLIDESHOW &&  m_properties.value("loop") == "1")) {
-       GenTime dur(10000, KdenliveSettings::project_fps());
-       return dur;
+        GenTime dur(10000, KdenliveSettings::project_fps());
+        return dur;
     }
     return m_duration;
 }
@@ -372,11 +372,15 @@ void DocClipBase::setProperties(QMap <QString, QString> properties) {
     while (i.hasNext()) {
         i.next();
         m_properties.insert(i.key(), i.value());
+        if (i.key() == "resource") m_thumbProd->updateClipUrl(KUrl(i.value()));
+        else if (i.key() == "out") setDuration(GenTime(i.value().toInt(), KdenliveSettings::project_fps()));
     }
 }
 
 void DocClipBase::setProperty(QString key, QString value) {
     m_properties.insert(key, value);
+    if (key == "resource") m_thumbProd->updateClipUrl(KUrl(value));
+    else if (key == "out") setDuration(GenTime(value.toInt(), KdenliveSettings::project_fps()));
 }
 
 QMap <QString, QString> DocClipBase::properties() const {
index 9d47cf486cfb9242a825dab267468170f6a1b515..5a91927c87d33ef67c0986bd3c7001e3add07b99 100644 (file)
@@ -148,6 +148,9 @@ KThumb::~KThumb() {
     if (thumbProducer.isRunning()) thumbProducer.exit();
 }
 
+void KThumb::updateClipUrl(KUrl url) {
+    m_url = url;
+}
 
 //static
 QPixmap KThumb::getImage(KUrl url, int width, int height) {
@@ -230,7 +233,7 @@ QPixmap KThumb::getImage(QDomElement xml, int frame, int width, int height) {
     doc.appendChild(westley);
     westley.appendChild(doc.importNode(xml, true));
     char *tmp = Render::decodedString(doc.toString());
-    kDebug()<<" - - - UPDATING THMB, XML: "<<doc.toString();
+    kDebug() << " - - - UPDATING THMB, XML: " << doc.toString();
     Mlt::Producer producer(profile, "westley-xml", tmp);
     delete[] tmp;
 
index 13bdd68e36d9bff58ff2abc7322380541eebbd83..43fa366d410a2a536987c0a12eded92168e94790 100644 (file)
@@ -77,6 +77,7 @@ Q_OBJECT public:
 
 public slots:
     void extractImage(int frame, int frame2);
+    void updateClipUrl(KUrl url);
     static QPixmap getImage(KUrl url, int width, int height);
     static QPixmap getImage(QDomElement xml, int frame, int width, int height);
     /* void getImage(KUrl url, int frame, int width, int height);
@@ -86,6 +87,7 @@ public slots:
     void getAudioThumbs(int channel, double frame, double frameLength, int arrayWidth);
     static QPixmap getImage(KUrl url, int frame, int width, int height);
     static QPixmap getFrame(Mlt::Producer* producer, int frame, int width, int height);
+
 protected:
     virtual void customEvent(QEvent * event);
 
index df2fe8b0a9e3ae87b0a7e0eaa0906557848d1f13..b9bc5ae2581066d37301b2a410b5dc828f47024d 100644 (file)
@@ -957,10 +957,11 @@ void MainWindow::slotShowClipProperties(DocClipBase *clip) {
     ClipProperties dia(clip, m_activeDocument->timecode(), m_activeDocument->fps(), this);
     if (dia.exec() == QDialog::Accepted) {
         m_projectList->slotUpdateClipProperties(dia.clipId(), dia.properties());
-       // update clip in timeline
-        TrackView *currentTab = (TrackView *) m_timelineArea->currentWidget();
-        currentTab->projectView()->slotUpdateClip(dia.clipId());
-       
+        if (dia.needsTimelineRefresh()) {
+            // update clip occurences in timeline
+            TrackView *currentTab = (TrackView *) m_timelineArea->currentWidget();
+            currentTab->projectView()->slotUpdateClip(dia.clipId());
+        }
     }
 }
 
index e32b3e6bee94721cc797efdb97eb2f3f1d1aba77..da80d71c3c3492ccc4d5949033e4753fa34e6198 100644 (file)
@@ -160,11 +160,7 @@ const KUrl ProjectItem::clipUrl() const {
 }
 
 void ProjectItem::changeDuration(int frames) {
-    m_clip->setProperty("duration", QString::number(frames));
-    m_duration = GenTime(frames, 25);
-    setData(1, DurationRole, Timecode::getEasyTimecode(m_duration, 25));
-    m_durationKnown = true;
-    m_clip->setDuration(m_duration);
+    setData(1, DurationRole, Timecode::getEasyTimecode(GenTime(frames, KdenliveSettings::project_fps()), KdenliveSettings::project_fps()));
 }
 
 void ProjectItem::setProperties(QMap <QString, QString> props) {
@@ -214,18 +210,16 @@ void ProjectItem::slotSetToolTip() {
     setToolTip(1, tip);
 }
 
+
 void ProjectItem::setProperties(const QMap < QString, QString > &attributes, const QMap < QString, QString > &metadata) {
     if (attributes.contains("duration")) {
         if (m_clipType == AUDIO || m_clipType == VIDEO || m_clipType == AV) m_clip->setProperty("duration", attributes["duration"]);
-        m_duration = GenTime(attributes["duration"].toInt(), 25);
-        setData(1, DurationRole, Timecode::getEasyTimecode(m_duration, 25));
-        m_durationKnown = true;
-        m_clip->setDuration(m_duration);
-        kDebug() << "//// LOADED CLIP, DURATION SET TO: " << m_duration.frames(25);
+        GenTime duration = GenTime(attributes["duration"].toInt(), KdenliveSettings::project_fps());
+        setData(1, DurationRole, Timecode::getEasyTimecode(duration, KdenliveSettings::project_fps()));
+        m_clip->setDuration(duration);
+        kDebug() << "//// LOADED CLIP, DURATION SET TO: " << duration.frames(KdenliveSettings::project_fps());
     } else {
         // No duration known, use an arbitrary one until it is.
-        m_duration = GenTime(0.0);
-        m_durationKnown = false;
     }
 
 
index 2b52c89d0a056a8dd892fee8c882db312d3dcf62..048e8a0bc7a49b2130f3cc5e2bff364c49b6f59f 100644 (file)
@@ -57,9 +57,7 @@ public:
     void setProperties(QMap <QString, QString> props);
 
 private:
-    GenTime m_duration;
     QString m_groupName;
-    bool m_durationKnown;
     CLIPTYPE m_clipType;
     int m_clipId;
     void slotSetToolTip();
index 2da1928d5cd13e73f337b1b44e46b101cdb6e598..e58af2d10884bfa1202d9f580326f6ae1eb34471 100644 (file)
@@ -140,9 +140,10 @@ void ProjectList::slotClipSelected() {
 void ProjectList::slotUpdateClipProperties(int id, QMap <QString, QString> properties) {
     ProjectItem *item = getItemById(id);
     if (item) {
-      slotUpdateClipProperties(item, properties);
-      if (properties.contains("colour")) slotRefreshClipThumbnail(item);
-  }
+        slotUpdateClipProperties(item, properties);
+        if (properties.contains("colour") || properties.contains("resource")) slotRefreshClipThumbnail(item);
+        if (properties.contains("out")) item->changeDuration(properties.value("out").toInt());
+    }
 }
 
 void ProjectList::slotUpdateClipProperties(ProjectItem *clip, QMap <QString, QString> properties) {
@@ -421,7 +422,7 @@ void ProjectList::slotAddColorClip() {
 
 void ProjectList::slotAddSlideshowClip() {
     if (!m_commandStack) kDebug() << "!!!!!!!!!!!!!!!!  NO CMD STK";
-    SlideshowClip *dia = new SlideshowClip();
+    SlideshowClip *dia = new SlideshowClip(this);
 
     if (dia->exec() == QDialog::Accepted) {
 
@@ -510,7 +511,7 @@ void ProjectList::slotRefreshClipThumbnail(ProjectItem *item) {
         int height = 40;
         int width = (int)(height  * (double) m_render->renderWidth() / m_render->renderHeight());
         QPixmap pix = KThumb::getImage(item->toXml(), item->referencedClip()->getProjectThumbFrame(), width, height);
-       //QPixmap pix = KThumb::getFrame(item->toXml()), 0, width, height);
+        //QPixmap pix = KThumb::getFrame(item->toXml()), 0, width, height);
         item->setIcon(0, pix);
     }
 }
index 5f161c2a9d1831d8eea100a06bb6d9a1ccafe6b3..f2fcb0eff12f79e575d37efc2ade5bb51ed7b59c 100644 (file)
@@ -27,6 +27,7 @@
 extern "C" {
 #include <avformat.h>
 }
+
 #include <QTimer>
 #include <QDir>
 #include <QApplication>
@@ -1067,7 +1068,7 @@ void Render::mltCutClip(int track, GenTime position) {
 
 void Render::mltUpdateClip(int track, GenTime position, QDomElement element) {
     // TODO: optimize
-    mltCutClip(track, position);
+    mltRemoveClip(track, position);
     mltInsertClip(track, position, element);
 }
 
index 80ecf22051d7f6cafcbc715e042828cf9a877712..ea7c62f0ab48815a0ee8355ad2315e5d7316f351 100644 (file)
 
 SlideshowClip::SlideshowClip(QWidget * parent): QDialog(parent), m_count(0) {
     setFont(KGlobalSettings::toolBarFont());
-    //wsetCaption(i18n("Add Slideshow Clip"));
+    setWindowTitle(i18n("Add Slideshow Clip"));
     m_view.setupUi(this);
     m_view.clip_name->setText(i18n("Slideshow Clip"));
     m_view.folder_url->setMode(KFile::Directory);
     m_view.icon_list->setIconSize(QSize(50, 50));
     connect(m_view.folder_url, SIGNAL(textChanged(const QString &)), this, SLOT(parseFolder()));
-    connect(m_view.image_type, SIGNAL(currentIndexChanged ( int )), this, SLOT(parseFolder()));
+    connect(m_view.image_type, SIGNAL(currentIndexChanged(int)), this, SLOT(parseFolder()));
     m_view.image_type->addItem("JPG");
     m_view.image_type->addItem("PNG");
     m_view.image_type->addItem("BMP");
     m_view.image_type->addItem("GIF");
     m_view.clip_duration->setText("00:00:03:00");
+    m_view.folder_url->setUrl(QDir::homePath());
     adjustSize();
 }
 
 void SlideshowClip::parseFolder() {
     m_view.icon_list->clear();
     QDir dir(m_view.folder_url->url().path());
+
     QStringList filters;
     switch (m_view.image_type->currentIndex()) {
-       case TYPE_PNG:
-           filters << "*.png"; 
-           break;
-       case TYPE_BMP:
-           filters << "*.bmp"; 
-           break;
-       case TYPE_GIF:
-           filters << "*.gif"; 
-           break;
-       default:
-           filters << "*.jpg" << "*.jpeg";     
-           break;
+    case TYPE_PNG:
+        filters << "*.png";
+        break;
+    case TYPE_BMP:
+        filters << "*.bmp";
+        break;
+    case TYPE_GIF:
+        filters << "*.gif";
+        break;
+    default:
+        filters << "*.jpg" << "*.jpeg";
+        break;
     }
 
     dir.setNameFilters(filters);
     QStringList result = dir.entryList(QDir::Files);
     m_count = result.count();
+    if (m_count == 0) m_view.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(false);
+    else m_view.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(true);
     m_view.label_info->setText(i18n("%1 images found", m_count));
-    foreach (QString path, result) {
-       QIcon icon(dir.filePath(path));
-       QListWidgetItem *item = new QListWidgetItem(icon, KUrl(path).fileName());
-       m_view.icon_list->addItem(item);
+    foreach(QString path, result) {
+        QIcon icon(dir.filePath(path));
+        QListWidgetItem *item = new QListWidgetItem(icon, KUrl(path).fileName());
+        m_view.icon_list->addItem(item);
     }
 }
 
 QString SlideshowClip::selectedPath() const {
     QString extension;
     switch (m_view.image_type->currentIndex()) {
-       case TYPE_PNG:
-           extension = "/.all.png";    
-           break;
-       case TYPE_BMP:
-           extension = "/.all.bmp";    
-           break;
-       case TYPE_GIF:
-           extension = "/.all.gif";    
-           break;
-       default:
-           extension = "/.all.jpg";    
-           break;
+    case TYPE_PNG:
+        extension = "/.all.png";
+        break;
+    case TYPE_BMP:
+        extension = "/.all.bmp";
+        break;
+    case TYPE_GIF:
+        extension = "/.all.gif";
+        break;
+    default:
+        extension = "/.all.jpg";
+        break;
     }
     return m_view.folder_url->url().path() + extension;
 }
index e69b4e064e9604e4b4bf4120ff29c9ffd8a08322..487b6a5391251d037ca6b2c229cd386789e93eea 100644 (file)
         <x>0</x>
         <y>0</y>
         <width>263</width>
-        <height>159</height>
+        <height>164</height>
        </rect>
       </property>
       <attribute name="title" >
        <item row="3" column="1" >
         <widget class="KComboBox" name="luma_file" />
        </item>
-       <item row="4" column="1" >
+       <item row="5" column="1" >
         <spacer name="verticalSpacer_6" >
          <property name="orientation" >
           <enum>Qt::Vertical</enum>
          </property>
         </widget>
        </item>
+       <item row="4" column="0" colspan="2" >
+        <widget class="QLabel" name="slide_info" >
+         <property name="text" >
+          <string>No image found</string>
+         </property>
+        </widget>
+       </item>
       </layout>
      </widget>
      <widget class="QWidget" name="tab_advanced" >