diff options
author | Dmitry Savchenko <dmitry.a.sav@gmail.com> | 2012-03-15 18:51:52 +0300 |
---|---|---|
committer | Eike Ziller <eike.ziller@nokia.com> | 2012-04-26 08:06:18 +0200 |
commit | 8563d032f7a38d14f2337ab3ccc3a1e1aa33d4b6 (patch) | |
tree | 64271f91304eb239949d195200896e31686093d0 /src/plugins/todo/optionsdialog.cpp | |
parent | 71d9f33bef895a4ba030ffb0cdadc1bd1d36fdd5 (diff) | |
download | qt-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.cpp | 26 |
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); |