summaryrefslogtreecommitdiff
path: root/src/plugins/todo/optionsdialog.cpp
diff options
context:
space:
mode:
authorDmitry Savchenko <dmitry.a.sav@gmail.com>2012-03-15 18:51:52 +0300
committerEike Ziller <eike.ziller@nokia.com>2012-04-26 08:06:18 +0200
commit8563d032f7a38d14f2337ab3ccc3a1e1aa33d4b6 (patch)
tree64271f91304eb239949d195200896e31686093d0 /src/plugins/todo/optionsdialog.cpp
parent71d9f33bef895a4ba030ffb0cdadc1bd1d36fdd5 (diff)
downloadqt-creator-8563d032f7a38d14f2337ab3ccc3a1e1aa33d4b6.tar.gz
Check keyword name before accepting in KeywordDialog in Todo plugin.
* Make sure keyword name is not already used in existing keywords. * Make sure keyword name doesn't contain spaces or a colon. Change-Id: I2856d122ba2fc6a7a60dc760dcd3d536523db5bc Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
Diffstat (limited to 'src/plugins/todo/optionsdialog.cpp')
-rw-r--r--src/plugins/todo/optionsdialog.cpp26
1 files changed, 20 insertions, 6 deletions
diff --git a/src/plugins/todo/optionsdialog.cpp b/src/plugins/todo/optionsdialog.cpp
index e6432967eb..5c9d643e79 100644
--- a/src/plugins/todo/optionsdialog.cpp
+++ b/src/plugins/todo/optionsdialog.cpp
@@ -71,6 +71,17 @@ void OptionsDialog::addToKeywordsList(const Keyword &keyword)
ui->keywordsList->addItem(item);
}
+QSet<QString> OptionsDialog::keywordNames()
+{
+ KeywordList keywords = settingsFromUi().keywords;
+
+ QSet<QString> result;
+ foreach (const Keyword &keyword, keywords)
+ result << keyword.name;
+
+ return result;
+}
+
Settings OptionsDialog::settings()
{
return settingsFromUi();
@@ -79,9 +90,9 @@ Settings OptionsDialog::settings()
void OptionsDialog::addButtonClicked()
{
Keyword keyword;
- KeywordDialog *addKeywordDialog = new KeywordDialog(keyword, this);
- if (addKeywordDialog->exec() == QDialog::Accepted) {
- keyword = addKeywordDialog->keyword();
+ KeywordDialog *keywordDialog = new KeywordDialog(keyword, keywordNames(), this);
+ if (keywordDialog->exec() == QDialog::Accepted) {
+ keyword = keywordDialog->keyword();
addToKeywordsList(keyword);
}
}
@@ -95,9 +106,12 @@ void OptionsDialog::editButtonClicked()
keyword.iconResource = item->data(Qt::UserRole).toString();
keyword.color = item->backgroundColor();
- KeywordDialog *addKeywordDialog = new KeywordDialog(keyword, this);
- if (addKeywordDialog->exec() == QDialog::Accepted) {
- keyword = addKeywordDialog->keyword();
+ QSet<QString> keywordNamesButThis = keywordNames();
+ keywordNamesButThis.remove(keyword.name);
+
+ KeywordDialog *keywordDialog = new KeywordDialog(keyword, keywordNamesButThis, this);
+ if (keywordDialog->exec() == QDialog::Accepted) {
+ keyword = keywordDialog->keyword();
item->setIcon(QIcon(keyword.iconResource));
item->setText(keyword.name);
item->setData(Qt::UserRole, keyword.iconResource);