┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Trueg <[email protected]>2008-10-08 08:15:06 +0000
committerSebastian Trueg <[email protected]>2008-10-08 08:15:06 +0000
commit73a8d074c14fe7d1df19e71ddb3e4f5c0afe0809 (patch)
treec697fcd2b9a836159610c62e1e88eb4841e7138b
parentc617050efb38c08f63a81cc49877996a5004808f (diff)
Also use the Nepomuk MassUpdateJob for tagging
svn path=/trunk/KDE/kdebase/apps/; revision=869130
-rw-r--r--src/tagcloud/resourcetaggingwidget.cpp20
-rw-r--r--src/tagcloud/resourcetaggingwidget.h1
2 files changed, 18 insertions, 3 deletions
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 <QtGui/QVBoxLayout>
#include <QtGui/QContextMenuEvent>
@@ -49,7 +50,10 @@ public:
void showTaggingPopup( const QPoint& );
void _k_slotShowTaggingPopup();
+ void _k_metadataUpdateDone();
static QList<Tag> intersectTags( const QList<Resource>& );
+
+ 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::Tag> Nepomuk::ResourceTaggingWidget::Private::intersectTags( const QList<Resource>& 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() )
};
}