summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2012-05-31 09:22:18 (GMT)
committerKevin Smith <git@kismith.co.uk>2012-05-31 09:22:18 (GMT)
commit59f1bfcf315a77834ddbce20cc05892d211ab55c (patch)
tree42212b6ae07539b3bfd6fdcb6903dab9aa6b61be
parent08399fe0e7d8d5ab42975b51c487c82caf845cef (diff)
downloadswift-contrib-59f1bfcf315a77834ddbce20cc05892d211ab55c.zip
swift-contrib-59f1bfcf315a77834ddbce20cc05892d211ab55c.tar.bz2
Render & in group names correctly in edit dialog.
Resolves: #1117
-rw-r--r--Swift/QtUI/QtContactEditWidget.cpp16
-rw-r--r--Swift/QtUI/QtContactEditWidget.h4
2 files changed, 17 insertions, 3 deletions
diff --git a/Swift/QtUI/QtContactEditWidget.cpp b/Swift/QtUI/QtContactEditWidget.cpp
index 9d071b9..a347a00 100644
--- a/Swift/QtUI/QtContactEditWidget.cpp
+++ b/Swift/QtUI/QtContactEditWidget.cpp
@@ -52,8 +52,9 @@ QtContactEditWidget::QtContactEditWidget(const std::set<std::string>& allGroups,
QVBoxLayout* scrollLayout = new QVBoxLayout(groups);
foreach (std::string group, allGroups) {
+ QString groupName = doubleAmpersand(group);
QCheckBox* check = new QCheckBox(groups);
- check->setText(P2QSTRING(group));
+ check->setText(groupName);
check->setCheckState(Qt::Unchecked);
checkBoxes_[group] = check;
scrollLayout->addWidget(check);
@@ -83,7 +84,7 @@ std::string QtContactEditWidget::getName() const {
if (button == nameRadioButton_) {
name = Q2PSTRING(name_->text());
} else {
- name = Q2PSTRING(button->text());
+ name = singleAmpersand(button->text());
}
break;
}
@@ -115,7 +116,7 @@ void QtContactEditWidget::setNameSuggestions(const std::vector<std::string>& sug
throbberLabel_->hide();
foreach(const std::string& name, suggestions) {
- suggestionsLayout_->insertWidget(nameLayout_->count() - 2, new QRadioButton(P2QSTRING(name), this));
+ suggestionsLayout_->insertWidget(nameLayout_->count() - 2, new QRadioButton(doubleAmpersand(name), this));
}
nameRadioButton_ = new QRadioButton(tr("Name:"), this);
@@ -135,6 +136,15 @@ void QtContactEditWidget::setNameSuggestions(const std::vector<std::string>& sug
nameRadioButton_->setChecked(true);
}
}
+QString QtContactEditWidget::doubleAmpersand(const std::string& name) const {
+ return P2QSTRING(name).replace("&", "&&");
+
+}
+
+std::string QtContactEditWidget::singleAmpersand(const QString& name) const {
+ return Q2PSTRING(QString(name).replace("&&", "&"));
+}
+
void QtContactEditWidget::clear() {
name_->clear();
diff --git a/Swift/QtUI/QtContactEditWidget.h b/Swift/QtUI/QtContactEditWidget.h
index 5350762..6d55b80 100644
--- a/Swift/QtUI/QtContactEditWidget.h
+++ b/Swift/QtUI/QtContactEditWidget.h
@@ -38,6 +38,10 @@ namespace Swift {
void clear();
+
+ private:
+ QString doubleAmpersand(const std::string& name) const;
+ std::string singleAmpersand(const QString& name) const;
private:
typedef std::map<std::string, QCheckBox*> CheckBoxMap;
CheckBoxMap checkBoxes_;