summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Maudsley <richard.maudsley@isode.com>2014-03-24 09:53:37 (GMT)
committerSwift Review <review@swift.im>2014-04-02 11:45:22 (GMT)
commit1a35178bcad7c30e50a19e4017d021fb0485ccf0 (patch)
tree3d52cee147d6c3f70866a1b5a4c4ae942bb3d48b /Swift/QtUI
parentc9275affd040ee1ca7c1d599b28df3b363bef888 (diff)
downloadswift-contrib-1a35178bcad7c30e50a19e4017d021fb0485ccf0.zip
swift-contrib-1a35178bcad7c30e50a19e4017d021fb0485ccf0.tar.bz2
Automatically moving user into the chat list when you select from the population drop-down.
Change-Id: I69b44e0e1dda2fa513d2d867ed10e5a8046ff0e9
Diffstat (limited to 'Swift/QtUI')
-rw-r--r--Swift/QtUI/UserSearch/QtSuggestingJIDInput.cpp3
-rw-r--r--Swift/QtUI/UserSearch/QtSuggestingJIDInput.h4
-rw-r--r--Swift/QtUI/UserSearch/QtUserSearchWindow.cpp2
3 files changed, 7 insertions, 2 deletions
diff --git a/Swift/QtUI/UserSearch/QtSuggestingJIDInput.cpp b/Swift/QtUI/UserSearch/QtSuggestingJIDInput.cpp
index ca65dca..de935d9 100644
--- a/Swift/QtUI/UserSearch/QtSuggestingJIDInput.cpp
+++ b/Swift/QtUI/UserSearch/QtSuggestingJIDInput.cpp
@@ -125,19 +125,20 @@ void QtSuggestingJIDInput::handleApplicationFocusChanged(QWidget* /*old*/, QWidg
void QtSuggestingJIDInput::handleSettingsChanged(const std::string& setting) {
if (setting == QtUISettingConstants::COMPACT_ROSTER.getKey()) {
contactListDelegate_->setCompact(settings_->getSetting(QtUISettingConstants::COMPACT_ROSTER));
}
}
void QtSuggestingJIDInput::handleClicked(const QModelIndex& index) {
if (index.isValid()) {
currentContact_ = &contactListModel_->getList()[index.row()];
- setText(P2QSTRING(currentContact_->jid.toString()));
+ setText("");
+ onUserSelected(currentContact_->jid);
hidePopup();
}
}
void QtSuggestingJIDInput::positionPopup() {
QDesktopWidget* desktop = QApplication::desktop();
int screen = desktop->screenNumber(this);
QPoint point = mapToGlobal(QPoint(0, height()));
QRect geometry = desktop->availableGeometry(screen);
diff --git a/Swift/QtUI/UserSearch/QtSuggestingJIDInput.h b/Swift/QtUI/UserSearch/QtSuggestingJIDInput.h
index 673621c..9ec0512 100644
--- a/Swift/QtUI/UserSearch/QtSuggestingJIDInput.h
+++ b/Swift/QtUI/UserSearch/QtSuggestingJIDInput.h
@@ -2,37 +2,39 @@
* Copyright (c) 2013 Tobias Markmann
* Licensed under the simplified BSD license.
* See Documentation/Licenses/BSD-simplified.txt for more information.
*/
#pragma once
#include <QLineEdit>
#include <QTreeView>
-
+#include <Swiften/Base/boost_bsignals.h>
#include <Swift/Controllers/Contact.h>
namespace Swift {
class ContactListDelegate;
class SettingsProvider;
class ContactListModel;
class QtSuggestingJIDInput : public QLineEdit {
Q_OBJECT
public:
QtSuggestingJIDInput(QWidget* parent, SettingsProvider* settings);
virtual ~QtSuggestingJIDInput();
const Contact* getContact();
void setSuggestions(const std::vector<Contact>& suggestions);
+ boost::signal<void (const JID&)> onUserSelected;
+
signals:
void editingDone();
protected:
virtual void keyPressEvent(QKeyEvent* event);
private:
void handleSettingsChanged(const std::string& setting);
diff --git a/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp b/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp
index d06fa19..c0c7972 100644
--- a/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp
+++ b/Swift/QtUI/UserSearch/QtUserSearchWindow.cpp
@@ -4,18 +4,19 @@
* See Documentation/Licenses/GPLv3.txt for more information.
*/
#include "Swift/QtUI/UserSearch/QtUserSearchWindow.h"
#include <QItemDelegate>
#include <QModelIndex>
#include <QWizardPage>
#include <QMovie>
+#include <boost/bind.hpp>
#include <boost/smart_ptr/make_shared.hpp>
#include <Swiften/Base/foreach.h>
#include <Swift/Controllers/UIEvents/UIEventStream.h>
#include <Swift/Controllers/UIEvents/RequestChatUIEvent.h>
#include <Swift/Controllers/UIEvents/AddContactUIEvent.h>
#include <Swift/Controllers/UIEvents/CreateImpromptuMUCUIEvent.h>
#include <Swift/Controllers/UIEvents/InviteToMUCUIEvent.h>
#include <Swift/QtUI/UserSearch/UserSearchModel.h>
@@ -438,18 +439,19 @@ void QtUserSearchWindow::setFirstPage(QString title) {
#if QT_VERSION >= 0x040700
firstPage_->jid_->setPlaceholderText(tr("alice@wonderland.lit"));
#endif
firstPage_->service_->setEnabled(false);
setPage(1, firstPage_);
} else {
firstMultiJIDPage_ = new QtUserSearchFirstMultiJIDPage(type_, title.isEmpty() ? firstMultiJIDPage_->title() : title, settings_);
connect(firstMultiJIDPage_->addContactButton_, SIGNAL(clicked()), this, SLOT(addContact()));
connect(firstMultiJIDPage_->jid_, SIGNAL(textEdited(QString)), this, SLOT(handleContactSuggestionRequested(QString)));
+ firstMultiJIDPage_->jid_->onUserSelected.connect(boost::bind(&QtUserSearchWindow::addSearchedJIDToList, this, _1));
connect(firstMultiJIDPage_->addViaSearchButton_, SIGNAL(clicked()), this, SLOT(handleAddViaSearch()));
connect(firstMultiJIDPage_->contactList_, SIGNAL(onListChanged(std::vector<Contact>)), this, SLOT(handleListChanged(std::vector<Contact>)));
connect(firstMultiJIDPage_->contactList_, SIGNAL(onJIDsAdded(std::vector<JID>)), this, SLOT(handleJIDsAdded(std::vector<JID>)));
setPage(1, firstMultiJIDPage_);
}
}
void QtUserSearchWindow::setSecondPage() {
if (page(2) != 0) {