summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThanos Doukoudakis <thanos.doukoudakis@isode.com>2017-03-10 15:55:13 (GMT)
committerKevin Smith <kevin.smith@isode.com>2017-04-04 14:43:24 (GMT)
commitbd5c623c6e54c1f449b7af06177a9a5c7fbcb4a7 (patch)
tree1d2d8dba2650f8bdf1eaf3fa649cb82b2a5713ab
parentac40889c5466314dd22def238449352a2a4cc67e (diff)
downloadswift-bd5c623c6e54c1f449b7af06177a9a5c7fbcb4a7.zip
swift-bd5c623c6e54c1f449b7af06177a9a5c7fbcb4a7.tar.bz2
Open 1:1 chat to real JIDs from MUC rooms (not PMs) when possible
Opens the chat with the user JID instead of the MUC JID. Does not affect existing behaviour on normal one2one chats. Test-Information: Builds on Windows and unit test pass. Tested the behaviour on single chats from contacts list (roster), start new chat with one and multiple users. Also tested on MUC rooms that are non-anonymous, semi-anonymous and anonymous. Change-Id: I2b8fbacb1fa640167ec196d4215a13ad4905d45c
-rw-r--r--Swift/Controllers/Roster/ContactRosterItem.h8
-rw-r--r--Swift/QtUI/QtChatWindow.cpp3
-rw-r--r--Swift/QtUI/Roster/QtTreeWidget.cpp1
3 files changed, 9 insertions, 3 deletions
diff --git a/Swift/Controllers/Roster/ContactRosterItem.h b/Swift/Controllers/Roster/ContactRosterItem.h
index 37c3840..9779859 100644
--- a/Swift/Controllers/Roster/ContactRosterItem.h
+++ b/Swift/Controllers/Roster/ContactRosterItem.h
@@ -43,6 +43,14 @@ class ContactRosterItem : public RosterItem {
};
public:
+ /**
+ * @brief ContactRosterItem contains the information of a contact that is part of a XMPP Roster.
+ * @param jid The JabberID of the contact in the Roster entry.
+ * @param displayJID An alternate JID that is used instead of the JID this item represents. If not available,
+ * an empty node should be passed. This parameter will be converted to a bare JID.
+ * @param name The name or nickname of the contact
+ * @param parent The roster group that the contact is a member of. The same JID may be in several roster groups, in which case they will have individual ContactRosterItems with the same JID.
+ */
ContactRosterItem(const JID& jid, const JID& displayJID, const std::string& name, GroupRosterItem* parent);
virtual ~ContactRosterItem();
diff --git a/Swift/QtUI/QtChatWindow.cpp b/Swift/QtUI/QtChatWindow.cpp
index ca615f3..c509ab3 100644
--- a/Swift/QtUI/QtChatWindow.cpp
+++ b/Swift/QtUI/QtChatWindow.cpp
@@ -114,7 +114,7 @@ QtChatWindow::QtChatWindow(const QString& contact, QtChatTheme* theme, UIEventSt
}
logRosterSplitter_->addWidget(messageLog_);
- treeWidget_ = new QtOccupantListWidget(eventStream_, settings_, QtTreeWidget::MessageDefaultJID, this);
+ treeWidget_ = new QtOccupantListWidget(eventStream_, settings_, QtTreeWidget::MessageDisplayJID, this);
treeWidget_->hide();
logRosterSplitter_->addWidget(treeWidget_);
logRosterSplitter_->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
@@ -459,7 +459,6 @@ void QtChatWindow::closeEvent(QCloseEvent* event) {
void QtChatWindow::convertToMUC(MUCType mucType) {
impromptu_ = (mucType == ImpromptuMUC);
- treeWidget_->setMessageTarget(impromptu_ ? QtTreeWidget::MessageDisplayJID : QtTreeWidget::MessageDefaultJID);
isMUC_ = true;
treeWidget_->show();
subject_->setVisible(!impromptu_);
diff --git a/Swift/QtUI/Roster/QtTreeWidget.cpp b/Swift/QtUI/Roster/QtTreeWidget.cpp
index 1264a09..ac9f541 100644
--- a/Swift/QtUI/Roster/QtTreeWidget.cpp
+++ b/Swift/QtUI/Roster/QtTreeWidget.cpp
@@ -240,7 +240,6 @@ JID QtTreeWidget::jidFromIndex(const QModelIndex& index) const {
JID target;
if (messageTarget_ == MessageDisplayJID) {
target = JID(Q2PSTRING(index.data(DisplayJIDRole).toString()));
- target = target.toBare();
}
if (!target.isValid()) {
target = JID(Q2PSTRING(index.data(JIDRole).toString()));