1 /* This file is part of the KDE project
3 Copyright (C) 2008 Lukas Appelhans <l.appelhans@gmx.de>
5 This program is free software; you can redistribute it and/or
6 modify it under the terms of the GNU General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
10 #include "nepomukwidget.h"
12 #include "core/nepomukhandler.h"
13 #include "core/transferhandler.h"
14 #include <nepomuk/kratingwidget.h>
15 #include <nepomuk/kmetadatatagcloud.h>
19 #include <QVBoxLayout>
21 NepomukWidget::NepomukWidget(TransferHandler
*transfer
, QWidget
*parent
)
24 m_nepHandler(m_transfer
->nepomukHandler()),
25 m_currentTag(QString())
30 QVBoxLayout
*layout
= new QVBoxLayout(this);
31 KRatingWidget
*ratingWidget
= new KRatingWidget(this);
32 ratingWidget
->setRating(m_nepHandler
->rating());
33 layout
->addWidget(ratingWidget
);
34 Nepomuk::TagCloud
*tags
= new Nepomuk::TagCloud(this);
35 foreach (QString string
, m_nepHandler
->tags())
36 tags
->addTag(string
, 4);
38 layout
->addWidget(tags
);
39 connect(ratingWidget
, SIGNAL(ratingChanged(int rating
)), m_nepHandler
, SLOT(setRating(int)));
40 connect(tags
, SIGNAL(tagClicked(const QString
&)), SLOT(showTagContextMenu(const QString
&)));
43 NepomukWidget::~NepomukWidget()
47 QWidget
* NepomukWidget::createNepomukWidget(TransferHandler
*transfer
)
49 return new NepomukWidget(transfer
, 0);
52 void NepomukWidget::showTagContextMenu(const QString
& tag
)
55 KMenu
*popup
= new KMenu(this);
56 QAction
*removeAction
= popup
->addAction(KIcon("list-remove"), i18n("Remove Tag"));
57 connect(removeAction
, SIGNAL(triggered()), SLOT(removeCurrentTag()));
58 popup
->popup(QCursor::pos());
61 void NepomukWidget::removeCurrentTag()
63 m_nepHandler
->removeTag(m_currentTag
);
66 #include "nepomukwidget.moc"