diff options
Diffstat (limited to 'Swift/QtUI/MUCSearch/QtMUCSearchWindow.cpp')
| -rw-r--r-- | Swift/QtUI/MUCSearch/QtMUCSearchWindow.cpp | 28 | 
1 files changed, 26 insertions, 2 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) {  | 
 Swift