summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2014-10-29 14:02:39 (GMT)
committerSwift Review <review@swift.im>2014-10-30 15:41:49 (GMT)
commit5cf50d46aed4d2dac333e5e3b3bc2f57f7a1b835 (patch)
tree554e93a52e5c41e98b9e42e5d958819b87439b88 /Swift/QtUI/UserSearch/QtUserSearchWindow.cpp
parent4041cc4dd4f0abc6641fed5890120efa691a27ca (diff)
downloadswift-5cf50d46aed4d2dac333e5e3b3bc2f57f7a1b835.zip
swift-5cf50d46aed4d2dac333e5e3b3bc2f57f7a1b835.tar.bz2
Prevent user from adding contacts twice to a roster.
This removes roster JIDs from the suggesting in the 'Add User'-dialog. In addition, an indication is added when a manually entered JID is invalid or already on the roster. Test-Information: Tested scenarios with recent JIDs and JIDs from the roster. Tested that 'Start Chat'-dialog suggestions still work. Change-Id: I1ff51637adb4224184b78a1af9090a04b1e18fff
Diffstat (limited to 'Swift/QtUI/UserSearch/QtUserSearchWindow.cpp')
-rw-r--r--Swift/QtUI/UserSearch/QtUserSearchWindow.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp b/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp
index babe115..b197483 100644
--- a/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp
+++ b/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp
@@ -167,6 +167,20 @@ void QtUserSearchWindow::addContact() {
}
}
+void QtUserSearchWindow::setWarning(const boost::optional<std::string>& message) {
+ if (message) {
+ firstPage_->jidWarning_->setToolTip(P2QSTRING((*message)));
+ firstPage_->jidWarning_->setAccessibleDescription(P2QSTRING((*message)));
+ firstPage_->jidWarning_->show();
+ }
+ else {
+ firstPage_->jidWarning_->setToolTip("");
+ firstPage_->jidWarning_->setAccessibleDescription("");
+ firstPage_->jidWarning_->hide();
+ }
+ firstPage_->emitCompletenessCheck();
+}
+
int QtUserSearchWindow::nextId() const {
if (type_ == AddContact) {
switch (currentId()) {
@@ -466,6 +480,10 @@ void QtUserSearchWindow::setSelectedService(const JID& jid) {
myServer_ = jid;
}
+void QtUserSearchWindow::handleJIDEditingDone() {
+ onJIDEditFieldChanged(JID(Q2PSTRING(firstPage_->jid_->text())));
+}
+
void QtUserSearchWindow::setFirstPage(QString title) {
if (page(1) != 0) {
removePage(1);
@@ -473,6 +491,7 @@ void QtUserSearchWindow::setFirstPage(QString title) {
if (type_ == AddContact) {
firstPage_ = new QtUserSearchFirstPage(type_, title.isEmpty() ? firstPage_->title() : title, settings_);
connect(firstPage_->jid_, SIGNAL(textEdited(QString)), this, SLOT(handleContactSuggestionRequested(QString)));
+ connect(firstPage_->jid_, SIGNAL(textEdited(QString)), this, SLOT(handleJIDEditingDone()), Qt::UniqueConnection);
firstPage_->jid_->onUserSelected.connect(boost::bind(&QtUserSearchWindow::handleOnSearchedJIDSelected, this, _1));
connect(firstPage_->byJID_, SIGNAL(toggled(bool)), this, SLOT(handleFirstPageRadioChange()));
connect(firstPage_->byLocalSearch_, SIGNAL(toggled(bool)), this, SLOT(handleFirstPageRadioChange()));