summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordknn <yoann.blein@free.fr>2012-03-24 15:11:14 (GMT)
committerKevin Smith <git@kismith.co.uk>2012-04-08 20:17:23 (GMT)
commitfe477c0da80c2e5799a1841ce7fcf4e023ad57bb (patch)
tree6aedfd75c47c64dee7fcf282e84ebafb6722c65d /Swift/QtUI
parent36eaae275b39340f44d8225a73ea129bc0c47464 (diff)
downloadswift-contrib-fe477c0da80c2e5799a1841ce7fcf4e023ad57bb.zip
swift-contrib-fe477c0da80c2e5799a1841ce7fcf4e023ad57bb.tar.bz2
'Add contact' from MUC right-click menu
This patch allows to add a contact from a MUC, by right clicking a contact in the rooster. The action is only available if the JID of the user is also available License: This patch is BSD-licensed, see Documentation/Licenses/BSD-simplified.txt for details.
Diffstat (limited to 'Swift/QtUI')
-rw-r--r--Swift/QtUI/Roster/QtOccupantListWidget.cpp1
-rw-r--r--Swift/QtUI/UserSearch/QtUserSearchDetailsPage.cpp4
-rw-r--r--Swift/QtUI/UserSearch/QtUserSearchDetailsPage.h1
-rw-r--r--Swift/QtUI/UserSearch/QtUserSearchWindow.cpp9
-rw-r--r--Swift/QtUI/UserSearch/QtUserSearchWindow.h1
5 files changed, 16 insertions, 0 deletions
diff --git a/Swift/QtUI/Roster/QtOccupantListWidget.cpp b/Swift/QtUI/Roster/QtOccupantListWidget.cpp
index 0b3722c..1469300 100644
--- a/Swift/QtUI/Roster/QtOccupantListWidget.cpp
+++ b/Swift/QtUI/Roster/QtOccupantListWidget.cpp
@@ -57,6 +57,7 @@ void QtOccupantListWidget::contextMenuEvent(QContextMenuEvent* event) {
case ChatWindow::MakeModerator: text = tr("Make moderator"); break;
case ChatWindow::MakeParticipant: text = tr("Make participant"); break;
case ChatWindow::MakeVisitor: text = tr("Remove voice"); break;
+ case ChatWindow::AddContact: text = tr("Add contact"); break;
}
QAction* action = contextMenu.addAction(text);
actions[action] = availableAction;
diff --git a/Swift/QtUI/UserSearch/QtUserSearchDetailsPage.cpp b/Swift/QtUI/UserSearch/QtUserSearchDetailsPage.cpp
index da89a8d..f4189e7 100644
--- a/Swift/QtUI/UserSearch/QtUserSearchDetailsPage.cpp
+++ b/Swift/QtUI/UserSearch/QtUserSearchDetailsPage.cpp
@@ -36,6 +36,10 @@ void QtUserSearchDetailsPage::setNameSuggestions(const std::vector<std::string>&
editWidget->setNameSuggestions(nameSuggestions);
}
+void QtUserSearchDetailsPage::setName(const std::string& name) {
+ editWidget->setName(name);
+}
+
std::set<std::string> QtUserSearchDetailsPage::getSelectedGroups() {
return editWidget->getSelectedGroups();
}
diff --git a/Swift/QtUI/UserSearch/QtUserSearchDetailsPage.h b/Swift/QtUI/UserSearch/QtUserSearchDetailsPage.h
index 9409493..63fd241 100644
--- a/Swift/QtUI/UserSearch/QtUserSearchDetailsPage.h
+++ b/Swift/QtUI/UserSearch/QtUserSearchDetailsPage.h
@@ -27,6 +27,7 @@ namespace Swift {
void setJID(const JID& jid);
void setNameSuggestions(const std::vector<std::string>& nameSuggestions);
+ void setName(const std::string& name);
std::set<std::string> getSelectedGroups();
std::string getName();
diff --git a/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp b/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp
index 949d65c..b8a44e5 100644
--- a/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp
+++ b/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp
@@ -236,6 +236,15 @@ void QtUserSearchWindow::setNameSuggestions(const std::vector<std::string>& sugg
}
}
+void QtUserSearchWindow::prepopulateJIDAndName(const JID& jid, const std::string& name) {
+ firstPage_->jid_->setText(P2QSTRING(jid.toBare().toString()));
+ detailsPage_->setJID(jid);
+ lastPage_ = 1;
+ restart();
+ next();
+ detailsPage_->setName(name);
+}
+
void QtUserSearchWindow::setResults(const std::vector<UserSearchResult>& results) {
UserSearchModel *newModel = new UserSearchModel();
newModel->setResults(results);
diff --git a/Swift/QtUI/UserSearch/QtUserSearchWindow.h b/Swift/QtUI/UserSearch/QtUserSearchWindow.h
index 9173ba9..32e851a 100644
--- a/Swift/QtUI/UserSearch/QtUserSearchWindow.h
+++ b/Swift/QtUI/UserSearch/QtUserSearchWindow.h
@@ -40,6 +40,7 @@ namespace Swift {
virtual void setSearchError(bool error);
virtual void setSearchFields(boost::shared_ptr<SearchPayload> fields);
virtual void setNameSuggestions(const std::vector<std::string>& suggestions);
+ virtual void prepopulateJIDAndName(const JID& jid, const std::string& name);
protected:
virtual int nextId() const;