summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Maudsley <richard.maudsley@isode.com>2014-04-07 10:39:35 (GMT)
committerRichard Maudsley <richard.maudsley@isode.com>2014-04-07 13:07:50 (GMT)
commit5e9fefcc3a1ab106c44a80e12d6e34b7fb3d0397 (patch)
tree7c272c31b12e2b6a33d792c43419f0e778b7a075 /Swift/QtUI/UserSearch
parenta7c7602e89d58056940885112f8764a31e9991da (diff)
downloadswift-contrib-5e9fefcc3a1ab106c44a80e12d6e34b7fb3d0397.zip
swift-contrib-5e9fefcc3a1ab106c44a80e12d6e34b7fb3d0397.tar.bz2
Clear the reason field in invite dialogs before showing them
Change-Id: I97bfe54d028658aaa1385284669c3e2892d2f175
Diffstat (limited to 'Swift/QtUI/UserSearch')
-rw-r--r--Swift/QtUI/UserSearch/QtUserSearchFirstMultiJIDPage.cpp4
-rw-r--r--Swift/QtUI/UserSearch/QtUserSearchFirstMultiJIDPage.h1
-rw-r--r--Swift/QtUI/UserSearch/QtUserSearchWindow.cpp1
3 files changed, 6 insertions, 0 deletions
diff --git a/Swift/QtUI/UserSearch/QtUserSearchFirstMultiJIDPage.cpp b/Swift/QtUI/UserSearch/QtUserSearchFirstMultiJIDPage.cpp
index 360ce0a..47d62d9 100644
--- a/Swift/QtUI/UserSearch/QtUserSearchFirstMultiJIDPage.cpp
+++ b/Swift/QtUI/UserSearch/QtUserSearchFirstMultiJIDPage.cpp
@@ -25,70 +25,74 @@ namespace Swift {
QtUserSearchFirstMultiJIDPage::QtUserSearchFirstMultiJIDPage(UserSearchWindow::Type type, const QString& title, SettingsProvider* settings) {
setupUi(this);
setTitle(title);
QString introText = "";
switch (type) {
case UserSearchWindow::AddContact:
introText = tr("Add another user to your contact list");
break;
case UserSearchWindow::ChatToContact:
introText = tr("Chat to another user");
break;
case UserSearchWindow::InviteToChat:
introText = tr("Invite contact to chat");
break;
}
setSubTitle(QString(tr("%1. If you know their address you can enter it directly, or you can search for them.")).arg(introText));
contactList_ = new QtContactListWidget(this, settings);
horizontalLayout_5->addWidget(contactList_);
jid_ = new QtSuggestingJIDInput(this, settings);
horizontalLayout_6->insertWidget(0, jid_);
connect(contactList_, SIGNAL(onListChanged(std::vector<Contact>)), this, SLOT(emitCompletenessCheck()));
connect(jid_, SIGNAL(editingDone()), this, SLOT(handleEditingDone()));
setAcceptDrops(true);
}
bool QtUserSearchFirstMultiJIDPage::isComplete() const {
return !contactList_->getList().empty();
}
+void QtUserSearchFirstMultiJIDPage::reset() {
+ reason_->clear();
+}
+
void QtUserSearchFirstMultiJIDPage::emitCompletenessCheck() {
emit completeChanged();
}
void QtUserSearchFirstMultiJIDPage::handleEditingDone() {
addContactButton_->setFocus();
}
void QtUserSearchFirstMultiJIDPage::dragEnterEvent(QDragEnterEvent *event) {
if (event->mimeData()->hasFormat("application/vnd.swift.contact-jid-list")
|| event->mimeData()->hasFormat("application/vnd.swift.contact-jid-muc")) {
event->acceptProposedAction();
}
}
void QtUserSearchFirstMultiJIDPage::dropEvent(QDropEvent *event) {
if (event->mimeData()->hasFormat("application/vnd.swift.contact-jid-list")) {
QByteArray dataBytes = event->mimeData()->data("application/vnd.swift.contact-jid-list");
QDataStream dataStream(&dataBytes, QIODevice::ReadOnly);
std::vector<JID> jids;
while (!dataStream.atEnd()) {
QString jidString;
dataStream >> jidString;
jids.push_back(Q2PSTRING(jidString));
}
onJIDsDropped(jids);
} else if (event->mimeData()->hasFormat("application/vnd.swift.contact-jid-muc")) {
QMessageBox* messageBox = new QMessageBox(this);
messageBox->setText(tr("You can't invite a room to chat."));
messageBox->setWindowTitle(tr("Error inviting room to chat"));
messageBox->show();
}
}
}
diff --git a/Swift/QtUI/UserSearch/QtUserSearchFirstMultiJIDPage.h b/Swift/QtUI/UserSearch/QtUserSearchFirstMultiJIDPage.h
index 9905f21..431dd3c 100644
--- a/Swift/QtUI/UserSearch/QtUserSearchFirstMultiJIDPage.h
+++ b/Swift/QtUI/UserSearch/QtUserSearchFirstMultiJIDPage.h
@@ -2,50 +2,51 @@
* Copyright (c) 2013 Tobias Markmann
* Licensed under the simplified BSD license.
* See Documentation/Licenses/BSD-simplified.txt for more information.
*/
/*
* Copyright (c) 2014 Kevin Smith and Remko Tronçon
* Licensed under the GNU General Public License v3.
* See Documentation/Licenses/GPLv3.txt for more information.
*/
#pragma once
#include <QWizardPage>
#include <Swift/QtUI/UserSearch/ui_QtUserSearchFirstMultiJIDPage.h>
#include <Swift/Controllers/UIInterfaces/UserSearchWindow.h>
namespace Swift {
class UserSearchModel;
class UserSearchDelegate;
class UserSearchResult;
class UIEventStream;
class QtContactListWidget;
class ContactSuggester;
class AvatarManager;
class VCardManager;
class SettingsProvider;
class QtSuggestingJIDInput;
class QtUserSearchFirstMultiJIDPage : public QWizardPage, public Ui::QtUserSearchFirstMultiJIDPage {
Q_OBJECT
public:
QtUserSearchFirstMultiJIDPage(UserSearchWindow::Type type, const QString& title, SettingsProvider* settings);
virtual bool isComplete() const;
+ void reset();
signals:
void onJIDsDropped(std::vector<JID> jid);
public slots:
void emitCompletenessCheck();
void handleEditingDone();
virtual void dragEnterEvent(QDragEnterEvent *event);
virtual void dropEvent(QDropEvent *event);
public:
QtContactListWidget* contactList_;
QtSuggestingJIDInput* jid_;
};
}
diff --git a/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp b/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp
index ec5dd39..72c2964 100644
--- a/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp
+++ b/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp
@@ -41,70 +41,71 @@ QtUserSearchWindow::QtUserSearchWindow(UIEventStream* eventStream, UserSearchWin
#endif
QString title;
switch(type) {
case AddContact:
title = tr("Add Contact");
break;
case ChatToContact:
title = tr("Chat to Users");
break;
case InviteToChat:
title = tr("Add Users to Chat");
break;
}
setWindowTitle(title);
delegate_ = new UserSearchDelegate();
setFirstPage(title);
setSecondPage();
setThirdPage();
detailsPage_ = new QtUserSearchDetailsPage(groups);
setPage(4, detailsPage_);
connect(this, SIGNAL(currentIdChanged(int)), this, SLOT(handleCurrentChanged(int)));
connect(this, SIGNAL(accepted()), this, SLOT(handleAccepted()));
clear();
}
QtUserSearchWindow::~QtUserSearchWindow() {
delete model_;
}
void QtUserSearchWindow::handleCurrentChanged(int page) {
searchNext_ = false;
+ firstMultiJIDPage_->reset();
resultsPage_->emitCompletenessCheck();
if (page == 1 && lastPage_ == 3) {
addSearchedJIDToList(getContactJID());
setSecondPage();
}
else if (page == 2 && lastPage_ == 1) {
setError("");
/* next won't be called if JID is selected */
JID server = getServerToSearch();
clearForm();
onFormRequested(server);
setThirdPage();
}
else if (page == 3 && lastPage_ == 2) {
JID server = getServerToSearch();
handleSearch();
if (type_ == AddContact) {
bool remote = firstPage_->byRemoteSearch_->isChecked();
firstPage_->byRemoteSearch_->setChecked(remote);
firstPage_->service_->setEditText(P2QSTRING(server.toString()));
} else {
bool remote = firstMultiJIDPage_->byRemoteSearch_->isChecked();
setFirstPage();
firstMultiJIDPage_->byRemoteSearch_->setChecked(remote);
firstMultiJIDPage_->service_->setEditText(P2QSTRING(server.toString()));
}
}
else if (page == 4) {
detailsPage_->clear();
detailsPage_->setJID(getContactJID());
onNameSuggestionRequested(getContactJID());
}
lastPage_ = page;
}