From: Sebastian Trueg Date: Wed, 8 Oct 2008 08:15:06 +0000 (+0000) Subject: Also use the Nepomuk MassUpdateJob for tagging X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/73a8d074c14fe7d1df19e71ddb3e4f5c0afe0809 Also use the Nepomuk MassUpdateJob for tagging svn path=/trunk/KDE/kdebase/apps/; revision=869130 --- diff --git a/src/tagcloud/resourcetaggingwidget.cpp b/src/tagcloud/resourcetaggingwidget.cpp index c39c55530..067c395fb 100644 --- a/src/tagcloud/resourcetaggingwidget.cpp +++ b/src/tagcloud/resourcetaggingwidget.cpp @@ -20,6 +20,7 @@ #include "resourcetaggingwidget.h" #include "tagcloud.h" #include "taggingpopup.h" +#include "../nepomukmassupdatejob.h" #include #include @@ -49,7 +50,10 @@ public: void showTaggingPopup( const QPoint& ); void _k_slotShowTaggingPopup(); + void _k_metadataUpdateDone(); static QList intersectTags( const QList& ); + + ResourceTaggingWidget* q; }; @@ -63,9 +67,11 @@ void Nepomuk::ResourceTaggingWidget::Private::showTaggingPopup( const QPoint& po popup->exec( pos ); - foreach( Resource res, resources ) { - res.setTags( resourceTags ); - } + 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 ); } @@ -77,6 +83,12 @@ void Nepomuk::ResourceTaggingWidget::Private::_k_slotShowTaggingPopup() } +void Nepomuk::ResourceTaggingWidget::Private::_k_metadataUpdateDone() +{ + q->setEnabled( true ); +} + + QList Nepomuk::ResourceTaggingWidget::Private::intersectTags( const QList& res ) { if ( res.count() == 1 ) { @@ -101,6 +113,8 @@ Nepomuk::ResourceTaggingWidget::ResourceTaggingWidget( QWidget* parent ) : QWidget( parent ), d( new Private() ) { + d->q = this; + QVBoxLayout* layout = new QVBoxLayout( this ); layout->setMargin( 0 ); d->resourceTagCloud = new TagCloud( this ); diff --git a/src/tagcloud/resourcetaggingwidget.h b/src/tagcloud/resourcetaggingwidget.h index 9acb934e7..4ddcea881 100644 --- a/src/tagcloud/resourcetaggingwidget.h +++ b/src/tagcloud/resourcetaggingwidget.h @@ -56,6 +56,7 @@ namespace Nepomuk { Private* const d; Q_PRIVATE_SLOT( d, void _k_slotShowTaggingPopup() ) + Q_PRIVATE_SLOT( d, void _k_metadataUpdateDone() ) }; }