23 #include "tagwidget.h" 26 #include "changerecorder.h" 27 #include "tagselectiondialog.h" 30 #include <klocalizedstring.h> 31 #include <ksqueezedtextlabel.h> 33 #include <QHBoxLayout> 34 #include <QToolButton> 38 struct TagWidget::Private {
40 Akonadi::Tag::List mTags;
41 Akonadi::TagModel *mModel;
44 TagWidget::TagWidget(QWidget *parent)
50 d->mModel =
new Akonadi::TagModel(monitor,
this);
52 QHBoxLayout *layout =
new QHBoxLayout(
this);
54 layout->setSpacing(0);
55 d->mTagLabel =
new KSqueezedTextLabel;
56 d->mTagLabel->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken);
57 layout->addWidget(d->mTagLabel);
59 QToolButton *editButton =
new QToolButton;
60 editButton->setText(i18n(
"..."));
61 layout->addWidget(editButton, Qt::AlignRight);
63 layout->setStretch(0, 10);
65 connect(editButton, SIGNAL(clicked()), SLOT(editTags()));
68 TagWidget::~TagWidget()
72 void TagWidget::setSelection(
const Akonadi::Tag::List &tags)
78 Akonadi::Tag::List TagWidget::selection()
const 83 void TagWidget::editTags()
86 dlg->setSelection(d->mTags);
87 if (dlg->exec() == QDialog::Accepted) {
88 d->mTags = dlg->selection();
90 emit selectionChanged(d->mTags);
94 void TagWidget::updateView()
96 QStringList tagsNames;
98 for (
int i = 0; i < d->mModel->rowCount(); ++i) {
99 const QModelIndex index = d->mModel->index(i, 0);
101 if (d->mTags.contains(tag)) {
102 tagsNames << tag.name();
105 d->mTagLabel->setText(tagsNames.join(QLatin1String(
", ")));
void setTypeMonitored(Type type, bool monitored=true)
Sets whether given type (Collection, Item, Tag should be monitored).
Monitors an item or collection for changes.
FreeBusyManager::Singleton.