summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2016-12-08 08:55:19 (GMT)
committerEdwin Mons <edwin.mons@isode.com>2016-12-09 08:15:44 (GMT)
commitda7162b6e80ed6ce802bece3891fe85f30770c56 (patch)
tree11cffaa17e475a0854b0726bdb4d4f126632dbe9 /Swift/QtUI/UserSearch/QtUserSearchWindow.h
parentc65a90e2a73814d09ad8c60adc4a259e90006db7 (diff)
downloadswift-da7162b6e80ed6ce802bece3891fe85f30770c56.zip
swift-da7162b6e80ed6ce802bece3891fe85f30770c56.tar.bz2
Fix issue with invites to MUC if a MUC PM for that room is open
Previously if you wanted to invite people to a MUC and had a PM window for a MUC occupant open at the same time, the InviteToMUCUIEvent would be handled by the PM window, by the ChatController of the PM window and not the MUCController of the MUC window. Test-Information: Verified that some scenarios work correctly: - Tested a drop to a MUC window while a MUC PM window is open to an occupant in the MUC. Previously this crashed due to ChatsManager::localMUCServiceJID_ being empty. - Test that impromptu MUC creation to a normal chat works. - Test that impromptu MUC creation to a MUC PM chat works. All unit and integration tests pass on macOS 10.12.1. Change-Id: Ib20de7e925e3503308211936ee47d4ba829d0394
Diffstat (limited to 'Swift/QtUI/UserSearch/QtUserSearchWindow.h')
-rw-r--r--Swift/QtUI/UserSearch/QtUserSearchWindow.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/Swift/QtUI/UserSearch/QtUserSearchWindow.h b/Swift/QtUI/UserSearch/QtUserSearchWindow.h
index 5d8b755..b9d4698 100644
--- a/Swift/QtUI/UserSearch/QtUserSearchWindow.h
+++ b/Swift/QtUI/UserSearch/QtUserSearchWindow.h
@@ -20,87 +20,89 @@ namespace Swift {
class UserSearchResult;
class UIEventStream;
class QtUserSearchFirstPage;
class QtUserSearchFirstMultiJIDPage;
class QtUserSearchFieldsPage;
class QtUserSearchResultsPage;
class QtUserSearchDetailsPage;
class QtFormResultItemModel;
class SettingsProvider;
class QtUserSearchWindow : public QWizard, public UserSearchWindow, private Ui::QtUserSearchWizard {
Q_OBJECT
public:
QtUserSearchWindow(UIEventStream* eventStream, UserSearchWindow::Type type, const std::set<std::string>& groups, SettingsProvider* settingsProvider);
virtual ~QtUserSearchWindow();
virtual void addSavedServices(const std::vector<JID>& services);
virtual void clear();
virtual void show();
virtual void setResults(const std::vector<UserSearchResult>& results);
virtual void setResultsForm(Form::ref results);
virtual void setSelectedService(const JID& jid);
virtual void setServerSupportsSearch(bool error);
virtual void setSearchError(bool error);
virtual void setSearchFields(std::shared_ptr<SearchPayload> fields);
virtual void setNameSuggestions(const std::vector<std::string>& suggestions);
virtual void prepopulateJIDAndName(const JID& jid, const std::string& name);
virtual void setContactSuggestions(const std::vector<Contact::ref>& suggestions);
virtual void setJIDs(const std::vector<JID> &jids);
+ virtual void setOriginator(const JID& originator);
virtual void setRoomJID(const JID &roomJID);
virtual std::string getReason() const;
virtual std::vector<JID> getJIDs() const;
virtual void setCanStartImpromptuChats(bool supportsImpromptu);
virtual void updateContacts(const std::vector<Contact::ref> &contacts);
virtual void addContacts(const std::vector<Contact::ref>& contacts);
virtual void setCanSupplyDescription(bool allowed);
virtual void setWarning(const boost::optional<std::string>& message);
protected:
virtual int nextId() const;
private slots:
void handleFirstPageRadioChange();
virtual void handleCurrentChanged(int);
virtual void handleAccepted();
void handleContactSuggestionRequested(const QString& text);
void addContact();
void handleAddViaSearch();
void handleListChanged(std::vector<Contact::ref> list);
void handleJIDsAdded(std::vector<JID> jids);
void handleJIDEditingDone();
private:
void setFirstPage(QString title = "");
void setSecondPage();
void setThirdPage();
private:
void clearForm();
void setError(const QString& error);
JID getServerToSearch();
void handleSearch();
JID getContactJID() const;
Contact::ref getContact() const;
void addSearchedJIDToList(const Contact::ref& contact);
void handleOnSearchedJIDSelected(const Contact::ref& contact);
private:
UIEventStream* eventStream_;
UserSearchWindow::Type type_;
QAbstractItemModel* model_;
UserSearchDelegate* delegate_;
QtUserSearchFirstPage* firstPage_;
QtUserSearchFirstMultiJIDPage* firstMultiJIDPage_;
QtUserSearchFieldsPage* fieldsPage_;
QtUserSearchResultsPage* resultsPage_;
QtUserSearchDetailsPage* detailsPage_;
JID myServer_;
JID roomJID_;
+ JID originatorJID_;
int lastPage_;
std::vector<Contact::ref> contactVector_;
SettingsProvider* settings_;
bool searchNext_;
bool supportsImpromptu_;
};
}