]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Also show meta informations of files, if Nepomuk is not running or if the file is...
authorPeter Penz <peter.penz19@gmail.com>
Thu, 25 Feb 2010 19:34:58 +0000 (19:34 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Thu, 25 Feb 2010 19:34:58 +0000 (19:34 +0000)
Still a lot of cleanups are required (e. g. the labels are not human readable currently).

svn path=/trunk/KDE/kdebase/apps/; revision=1096092

src/panels/information/kloadmetadatathread.cpp
src/panels/information/kmetadatawidget.cpp

index bae4d3e20ea4cfe3b5c7ffa1b4b6d8f535772ceb..5569933a19cafa099756e700bdf29226b8135020 100644 (file)
 
 #include <kconfig.h>
 #include <kconfiggroup.h>
+#include <kfilemetainfo.h>
+#include <kfilemetainfoitem.h>
 #include <kglobal.h>
 #include <klocale.h>
-#include <kdebug.h>
 #include <kprotocolinfo.h>
 
 #include <nepomuk/resource.h>
@@ -111,6 +112,20 @@ void KLoadMetaDataThread::run()
                 }
                 ++it;
             }
+
+            if (variants.isEmpty()) {
+                // TODO: The following code is just meant as temporary fallback to show
+                // non-indexed meta data.
+                KFileMetaInfo metaInfo(m_urls.first());
+                const QHash<QString, KFileMetaInfoItem> metaInfoItems = metaInfo.items();
+                foreach (const KFileMetaInfoItem& metaInfoItem, metaInfoItems) {
+                    Item item;
+                    item.name = metaInfoItem.name();
+                    item.label = metaInfoItem.name() + metaInfoItem.prefix() + metaInfoItem.suffix();
+                    item.value = metaInfoItem.value().toString();
+                    m_items.append(item);
+                }
+            }
         }
 
         first = false;
index c8d7838c912dce3c8810336dc421c6b934d6f725..80d8062a6a05d80929cff490f74038302513165e 100644 (file)
@@ -358,12 +358,14 @@ void KMetaDataWidget::Private::slotLoadingFinished()
         return;
     }
 
-    Q_ASSERT(m_ratingWidget != 0);
-    Q_ASSERT(m_commentWidget != 0);
-    Q_ASSERT(m_taggingWidget != 0);
-    m_ratingWidget->setRating(m_loadMetaDataThread->rating());
-    m_commentWidget->setText(m_loadMetaDataThread->comment());
-    m_taggingWidget->setTags(m_loadMetaDataThread->tags());
+    if (m_nepomukActivated) {
+        Q_ASSERT(m_ratingWidget != 0);
+        Q_ASSERT(m_commentWidget != 0);
+        Q_ASSERT(m_taggingWidget != 0);
+        m_ratingWidget->setRating(m_loadMetaDataThread->rating());
+        m_commentWidget->setText(m_loadMetaDataThread->comment());
+        m_taggingWidget->setTags(m_loadMetaDataThread->tags());
+    }
 
     // Show the remaining meta information as text. The number
     // of required rows may very. Existing rows are reused to
@@ -415,7 +417,7 @@ void KMetaDataWidget::Private::slotLoadingFinished()
 
     m_files = m_loadMetaDataThread->files();
 
-    delete m_loadMetaDataThread;
+    m_loadMetaDataThread->deleteLater();
     m_loadMetaDataThread = 0;
 #endif
 
@@ -581,24 +583,22 @@ void KMetaDataWidget::setItems(const KFileItemList& items)
     }
 
 #ifdef HAVE_NEPOMUK
-    if (d->m_nepomukActivated) {
-        QList<KUrl> urls;
-        foreach (const KFileItem& item, items) {
-            const KUrl url = item.nepomukUri();
-            if (url.isValid()) {
-                urls.append(url);
-            }
-        }
-
-        if (d->m_loadMetaDataThread != 0) {
-            disconnect(d->m_loadMetaDataThread, SIGNAL(finished()), this, SLOT(slotLoadingFinished()));
-            d->m_loadMetaDataThread->cancelAndDelete();
+    QList<KUrl> urls;
+    foreach (const KFileItem& item, items) {
+        const KUrl url = item.nepomukUri();
+        if (url.isValid()) {
+            urls.append(url);
         }
+    }
 
-        d->m_loadMetaDataThread = new KLoadMetaDataThread();
-        connect(d->m_loadMetaDataThread, SIGNAL(finished()), this, SLOT(slotLoadingFinished()));
-        d->m_loadMetaDataThread->load(urls);
+    if (d->m_loadMetaDataThread != 0) {
+        disconnect(d->m_loadMetaDataThread, SIGNAL(finished()), this, SLOT(slotLoadingFinished()));
+        d->m_loadMetaDataThread->cancelAndDelete();
     }
+
+    d->m_loadMetaDataThread = new KLoadMetaDataThread();
+    connect(d->m_loadMetaDataThread, SIGNAL(finished()), this, SLOT(slotLoadingFinished()));
+    d->m_loadMetaDataThread->load(urls);
 #endif
 }