diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/panels/information/resourcetaggingwidget.cpp | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/panels/information/resourcetaggingwidget.cpp b/src/panels/information/resourcetaggingwidget.cpp index 3a4da3ea9..34892f30c 100644 --- a/src/panels/information/resourcetaggingwidget.cpp +++ b/src/panels/information/resourcetaggingwidget.cpp @@ -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(); } |
