]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Only actually change the resource if tags were changed.
authorSebastian Trueg <sebastian@trueg.de>
Tue, 20 Jan 2009 17:41:56 +0000 (17:41 +0000)
committerSebastian Trueg <sebastian@trueg.de>
Tue, 20 Jan 2009 17:41:56 +0000 (17:41 +0000)
svn path=/trunk/KDE/kdebase/apps/; revision=914234

src/panels/information/resourcetaggingwidget.cpp

index 3a4da3ea99fe29a79efa4be3534676526119d95e..34892f30c76da7421b7d6cbbef151542ec9434af 100644 (file)
@@ -48,6 +48,8 @@ public:
 
     QList<Tag> resourceTags;
 
+    bool tagsChanged;
+
     void showTaggingPopup( const QPoint& );
     void _k_slotShowTaggingPopup();
     void _k_metadataUpdateDone();
@@ -65,13 +67,16 @@ void Nepomuk::ResourceTaggingWidget::Private::showTaggingPopup( const QPoint& po
         popup->setTagSelected( tag, true );
     }
 
+    tagsChanged = false;
     popup->exec( pos );
 
-    MassUpdateJob* job = MassUpdateJob::tagResources( resources, resourceTags );
-    connect( job, SIGNAL( result( KJob* ) ),
-             q, SLOT( _k_metadataUpdateDone() ) );
-    q->setEnabled( false ); // no updates during execution
-    job->start();
+    if( tagsChanged ) {
+        MassUpdateJob* job = MassUpdateJob::tagResources( resources, resourceTags );
+        connect( job, SIGNAL( result( KJob* ) ),
+                 q, SLOT( _k_metadataUpdateDone() ) );
+        q->setEnabled( false ); // no updates during execution
+        job->start();
+    }
 
     resourceTagCloud->showTags( resourceTags );
 }
@@ -167,6 +172,7 @@ void Nepomuk::ResourceTaggingWidget::slotTagToggled( const Nepomuk::Tag& tag, bo
     else {
         d->resourceTags.removeAll( tag );
     }
+    d->tagsChanged = true;
     d->popup->hide();
 }