diff options
author | Kevin Smith <git@kismith.co.uk> | 2010-05-31 21:13:00 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2010-06-04 19:34:04 (GMT) |
commit | ecd4309da49ad3186ae829b7c8b50eb78f856249 (patch) | |
tree | 35ef94e86b6e631a92d38652bc6b4f1ec618035e /Swift | |
parent | fee6af7cc3a8a64fb5d3dbf5e2aaf73a6052ccf1 (diff) | |
download | swift-contrib-ecd4309da49ad3186ae829b7c8b50eb78f856249.zip swift-contrib-ecd4309da49ad3186ae829b7c8b50eb78f856249.tar.bz2 |
Add option to autojoin when joining a room.
Resolves: #380
Diffstat (limited to 'Swift')
-rw-r--r-- | Swift/QtUI/MUCSearch/QtMUCSearchWindow.cpp | 28 | ||||
-rw-r--r-- | Swift/QtUI/MUCSearch/QtMUCSearchWindow.h | 2 | ||||
-rw-r--r-- | Swift/QtUI/MUCSearch/QtMUCSearchWindow.ui | 17 |
3 files changed, 43 insertions, 4 deletions
diff --git a/Swift/QtUI/MUCSearch/QtMUCSearchWindow.cpp b/Swift/QtUI/MUCSearch/QtMUCSearchWindow.cpp index a8bf9ee..b1cfd65 100644 --- a/Swift/QtUI/MUCSearch/QtMUCSearchWindow.cpp +++ b/Swift/QtUI/MUCSearch/QtMUCSearchWindow.cpp @@ -10,6 +10,7 @@ #include "Swift/Controllers/UIEvents/UIEventStream.h" #include "Swift/Controllers/UIEvents/JoinMUCUIEvent.h" +#include "Swift/Controllers/UIEvents/AddMUCBookmarkUIEvent.h" #include "Swift/QtUI/MUCSearch/MUCSearchModel.h" #include "Swift/QtUI/MUCSearch/MUCSearchDelegate.h" #include "Swift/QtUI/QtSwiftUtil.h" @@ -79,14 +80,37 @@ void QtMUCSearchWindow::handleJoin() { } boost::optional<String> maybeNick; if (!nickName_->text().isEmpty()) { - maybeNick = Q2PSTRING(nickName_->text()); + lastSetNick_ = Q2PSTRING(nickName_->text()); + maybeNick = lastSetNick_; } - eventStream_->send(boost::shared_ptr<UIEvent>(new JoinMUCUIEvent(JID(Q2PSTRING(room_->text())), maybeNick))); + + JID room(Q2PSTRING(room_->text())); + if (joinAutomatically_->isChecked()) { + createAutoJoin(room, maybeNick); + } + eventStream_->send(boost::shared_ptr<UIEvent>(new JoinMUCUIEvent(room, maybeNick))); hide(); } +void QtMUCSearchWindow::createAutoJoin(const JID& room, boost::optional<String> passedNick) { + String nick = lastSetNick_; + if (passedNick) { + nick = passedNick.get(); + } + MUCBookmark bookmark(room, room.getNode()); + bookmark.setAutojoin(true); + if (!nick.isEmpty()) { + bookmark.setNick(nick); + } + //if (!password.isEmpty()) { + // bookmark.setPassword(password); + //} + eventStream_->send(boost::shared_ptr<UIEvent>(new AddMUCBookmarkUIEvent(bookmark))); +} + void QtMUCSearchWindow::setNick(const String& nick) { nickName_->setText(P2QSTRING(nick)); + lastSetNick_ = nick; } void QtMUCSearchWindow::setMUC(const String& nick) { diff --git a/Swift/QtUI/MUCSearch/QtMUCSearchWindow.h b/Swift/QtUI/MUCSearch/QtMUCSearchWindow.h index 7b556b0..c0a8e72 100644 --- a/Swift/QtUI/MUCSearch/QtMUCSearchWindow.h +++ b/Swift/QtUI/MUCSearch/QtMUCSearchWindow.h @@ -32,8 +32,10 @@ namespace Swift { void handleSelected(const QModelIndex& current); void handleActivated(const QModelIndex& index); private: + void createAutoJoin(const JID& room, boost::optional<String> passedNick); MUCSearchModel* model_; MUCSearchDelegate* delegate_; UIEventStream* eventStream_; + String lastSetNick_; }; } diff --git a/Swift/QtUI/MUCSearch/QtMUCSearchWindow.ui b/Swift/QtUI/MUCSearch/QtMUCSearchWindow.ui index d3d327e..11c4df2 100644 --- a/Swift/QtUI/MUCSearch/QtMUCSearchWindow.ui +++ b/Swift/QtUI/MUCSearch/QtMUCSearchWindow.ui @@ -95,7 +95,7 @@ <property name="geometry"> <rect> <x>280</x> - <y>410</y> + <y>380</y> <width>211</width> <height>18</height> </rect> @@ -131,7 +131,7 @@ <property name="geometry"> <rect> <x>280</x> - <y>430</y> + <y>400</y> <width>201</width> <height>26</height> </rect> @@ -179,6 +179,19 @@ <string>Search</string> </property> </widget> + <widget class="QCheckBox" name="joinAutomatically_"> + <property name="geometry"> + <rect> + <x>280</x> + <y>440</y> + <width>211</width> + <height>22</height> + </rect> + </property> + <property name="text"> + <string>Join automatically in future</string> + </property> + </widget> </widget> <resources/> <connections/> |