]> git.sesse.net Git - kdenlive/commitdiff
Show clip thumbnail in captured files dialog
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 22 Jul 2008 22:43:41 +0000 (22:43 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Tue, 22 Jul 2008 22:43:41 +0000 (22:43 +0000)
svn path=/branches/KDE4/; revision=2346

src/kthumb.h
src/managecapturesdialog.cpp
src/managecapturesdialog.h

index 65f80efd1d0a58cdd3e2baa0461800d858dc1079..0c312205781be30072792b8c9e5595de62d900b0 100644 (file)
 #ifndef KTHUMB_H
 #define KTHUMB_H
 
-#include <qobject.h>
-#include <qpixmap.h>
-#include <qfile.h>
-#include <qthread.h>
+#include <QPixmap>
+#include <QFile>
+#include <QThread>
+#include <QDomElement>
 
-#include <kurl.h>
+#include <KUrl>
 
 #include <mlt++/Mlt.h>
 
index 78fa8e863ef689d0f8adbb1152efd8c93760d935..6ce418155e29c22c8960c9da9485083e92f82804 100644 (file)
@@ -20,6 +20,9 @@
 #include <QTreeWidgetItem>
 #include <QFile>
 #include <QHeaderView>
+#include <QIcon>
+#include <QPixmap>
+#include <QTimer>
 
 #include <KDebug>
 #include <KGlobalSettings>
@@ -27,6 +30,7 @@
 #include <KIO/NetAccess>
 
 #include "managecapturesdialog.h"
+#include "kthumb.h"
 
 
 ManageCapturesDialog::ManageCapturesDialog(KUrl::List files, QWidget * parent): QDialog(parent) {
@@ -34,6 +38,7 @@ ManageCapturesDialog::ManageCapturesDialog(KUrl::List files, QWidget * parent):
     m_view.setupUi(this);
     m_importButton = m_view.buttonBox->button(QDialogButtonBox::Ok);
     m_importButton->setText(i18n("import"));
+    m_view.treeWidget->setIconSize(QSize(70, 50));
     foreach(const KUrl url, files) {
         QStringList text;
         text << url.fileName();
@@ -50,13 +55,34 @@ ManageCapturesDialog::ManageCapturesDialog(KUrl::List files, QWidget * parent):
     connect(m_view.toggleButton, SIGNAL(pressed()), this, SLOT(slotToggle()));
     QTreeWidgetItem *item = m_view.treeWidget->topLevelItem(0);
     if (item) m_view.treeWidget->setCurrentItem(item);
-    m_view.treeWidget->header()->setResizeMode(0, QHeaderView::Stretch);
+    connect(m_view.treeWidget, SIGNAL(itemSelectionChanged()), this, SLOT(slotCheckItemIcon()));
+    QTimer::singleShot(500, this, SLOT(slotCheckItemIcon()));
+    m_view.treeWidget->resizeColumnToContents(0);
+    m_view.treeWidget->setEnabled(false);
     adjustSize();
 }
 
 ManageCapturesDialog::~ManageCapturesDialog() {
 }
 
+void ManageCapturesDialog::slotCheckItemIcon() {
+    int ct = 0;
+    int count = m_view.treeWidget->topLevelItemCount();
+    while (ct < count) {
+       QTreeWidgetItem *item = m_view.treeWidget->topLevelItem(ct);
+       //QTreeWidgetItem *item = m_view.treeWidget->currentItem();
+       if (item->icon(0).isNull()) {
+           QPixmap p = KThumb::getImage(KUrl(item->data(0, Qt::UserRole).toString()), 0, 70, 50);
+           item->setIcon(0, QIcon(p));
+           m_view.treeWidget->resizeColumnToContents(0);
+           repaint();
+           //QTimer::singleShot(400, this, SLOT(slotCheckItemIcon())); 
+       }
+       ct++;
+    }
+    m_view.treeWidget->setEnabled(true);
+}
+
 void ManageCapturesDialog::slotRefreshButtons() {
     int count = m_view.treeWidget->topLevelItemCount();
     bool enabled = false;
index ccf1b569266cd986614ba839263cbf5288a83d83..b76ea092a0e6fc64fa33dcc4ed8095cac4d67794 100644 (file)
@@ -41,6 +41,7 @@ private slots:
     void slotRefreshButtons();
     void slotDeleteCurrent();
     void slotToggle();
+    void slotCheckItemIcon();
 
 protected:
     //void wheelEvent(QWheelEvent * event);