2 #include <QDialogButtonBox>
6 #include <QListWidgetItem>
9 #include "tagsdialog.h"
11 TagsDialog::TagsDialog(const QHash<QString, QString> &tags)
13 qDebug() << __PRETTY_FUNCTION__;
15 setWindowTitle(tr("Edit tags"));
17 QGridLayout *gridLayout = new QGridLayout;
18 m_addTagEdit = new QLineEdit("");
19 QDialogButtonBox *buttonBox = new QDialogButtonBox(Qt::Vertical);
21 QPushButton *addButton = buttonBox->addButton(tr("Add"), QDialogButtonBox::ActionRole);
22 QPushButton *deleteButton = buttonBox->addButton(tr("Delete"),
23 QDialogButtonBox::ActionRole);
24 QPushButton *cancelButton = buttonBox->addButton(QDialogButtonBox::Cancel);
25 QPushButton *okButton = buttonBox->addButton(tr("Ok"), QDialogButtonBox::AcceptRole);
27 m_tagsView = new QListWidget(this);
29 gridLayout->addWidget(m_addTagEdit, 0, 0, 1, 1);
30 gridLayout->addWidget(m_tagsView, 1, 0, 2, 1);
31 gridLayout->addWidget(buttonBox, 0, 1, 2, 1);
33 foreach (QString tag, tags)
34 m_tagsView->addItem(tag);
36 setLayout(gridLayout);
38 connect(okButton, SIGNAL(clicked()),
39 this, SLOT(accept()));
41 connect(cancelButton, SIGNAL(clicked()),
42 this, SLOT(reject()));
44 connect(addButton, SIGNAL(clicked()),
45 this, SLOT(addTagToList()));
47 connect(deleteButton, SIGNAL(clicked()),
48 this, SLOT(deleteTagFromList()));
51 void TagsDialog::addTagToList()
53 qDebug() << __PRETTY_FUNCTION__;
55 QList<QListWidgetItem *> findItems = m_tagsView->findItems(m_addTagEdit->text(),
58 if (findItems.isEmpty()) {
59 m_tagsView->insertItem(0, m_addTagEdit->text());
60 m_newTags.append(m_addTagEdit->text());
63 m_addTagEdit->setText("");
66 void TagsDialog::deleteTagFromList()
68 qDebug() << __PRETTY_FUNCTION__;
70 QList<QListWidgetItem *> selectedItems = m_tagsView->selectedItems();
72 if (!selectedItems.isEmpty()) {
73 QListWidgetItem *selectedItem = selectedItems.at(0);
74 m_tagsView->takeItem(m_tagsView->row(selectedItem));
76 if (m_newTags.contains(selectedItem->text()))
77 m_newTags.removeOne(selectedItem->text());
79 m_removedTags.append(selectedItem->text());
83 QStringList TagsDialog::newTags()
85 qDebug() << __PRETTY_FUNCTION__;
90 QStringList TagsDialog::removedTags()
92 qDebug() << __PRETTY_FUNCTION__;