]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/metadatawidget.cpp
When selecting 100 files in Dolphin and the Information Panel is shown, MetaDataWidge...
[dolphin.git] / src / metadatawidget.cpp
index 5c510f088f7b450dc9444e4e4078a1314ab58607..a8086d8a5b67d6513d751ec5334e709a8be8ec4e 100644 (file)
@@ -35,6 +35,7 @@
 #include <nepomuk/variant.h>
 #include <nepomuk/kratingwidget.h>
 #include <nepomuk/global.h>
+#include <Soprano/Vocabulary/Xesam>
 #endif
 
 
@@ -84,6 +85,7 @@ MetaDataWidget::MetaDataWidget(QWidget* parent) :
 #ifdef HAVE_NEPOMUK
     d = new Private;
     d->editComment = new QTextEdit(this);
+    d->editComment->setFocusPolicy(Qt::ClickFocus);
     d->ratingWidget = new KRatingWidget(this);
     d->tagWidget = new Nepomuk::TagWidget(this);
     connect(d->ratingWidget, SIGNAL(ratingChanged(unsigned int)), this, SLOT(slotRatingChanged(unsigned int)));
@@ -127,12 +129,19 @@ void MetaDataWidget::setFile(const KUrl& url)
 void MetaDataWidget::setFiles(const KUrl::List& urls)
 {
 #ifdef HAVE_NEPOMUK
-    // FIXME: replace with KMetaData::File once we have it again
+    // FIXME #1: For 100 files MetaDataWidget::setFiles() blocks
+    // for around 15 seconds (maybe we should delegate this to a KJob).
+    // In the meantime we temporary just reset the widgets:
+    d->ratingWidget->setRating( 0 );
+    d->loadComment( QString() );
+    return;
+
+    // FIXME #2: replace with KMetaData::File once we have it again
     d->files.clear();
     bool first = true;
     QList<Nepomuk::Resource> fileRes;
     Q_FOREACH( KUrl url, urls ) {
-        Nepomuk::Resource file( url.url(), Nepomuk::NFO::File() );
+        Nepomuk::Resource file( url.url(), Soprano::Vocabulary::Xesam::File() );
 //    file.setLocation(url.url());
         d->files.insert( url, file );
         fileRes.append( file );
@@ -142,7 +151,7 @@ void MetaDataWidget::setFiles(const KUrl::List& urls)
            d->ratingWidget->setRating( 0 ); // reset rating
        }
        else if ( first ) {
-           d->ratingWidget->setRating( file.rating() );
+           d->ratingWidget->setRating( (qint32)(file.rating()) );
        }
 
        if ( !first &&