diff options
| author | Kevin Smith <git@kismith.co.uk> | 2012-03-05 18:00:34 (GMT) | 
|---|---|---|
| committer | Kevin Smith <git@kismith.co.uk> | 2012-03-05 18:17:49 (GMT) | 
| commit | 651f10eee7bce78b95b61061b9aef6bb4ab81841 (patch) | |
| tree | dbc10b7f2bbe90a07e6eb1bf15d17a5edc6843e9 | |
| parent | e1602cbe8c5fb1525bc66ecf5d7a939816f259c5 (diff) | |
| download | swift-651f10eee7bce78b95b61061b9aef6bb4ab81841.zip swift-651f10eee7bce78b95b61061b9aef6bb4ab81841.tar.bz2 | |
Check validity of MUC names in join dialog
Resolves: #868
| -rw-r--r-- | Swift/QtUI/QtJoinMUCWindow.cpp | 6 | ||||
| -rw-r--r-- | Swift/QtUI/QtJoinMUCWindow.h | 17 | 
2 files changed, 21 insertions, 2 deletions
| diff --git a/Swift/QtUI/QtJoinMUCWindow.cpp b/Swift/QtUI/QtJoinMUCWindow.cpp index 14777bd..4884bbd 100644 --- a/Swift/QtUI/QtJoinMUCWindow.cpp +++ b/Swift/QtUI/QtJoinMUCWindow.cpp @@ -1,17 +1,18 @@  /* - * Copyright (c) 2010 Remko Tronçon + * Copyright (c) 2010-2012 Remko Tronçon   * Licensed under the GNU General Public License v3.   * See Documentation/Licenses/GPLv3.txt for more information.   */ +  #include "QtJoinMUCWindow.h" -#include "QtSwiftUtil.h"  #include <boost/smart_ptr/make_shared.hpp>  #include <Swift/Controllers/UIEvents/UIEventStream.h>  #include <Swift/Controllers/UIEvents/JoinMUCUIEvent.h>  namespace Swift { +  QtJoinMUCWindow::QtJoinMUCWindow(UIEventStream* uiEventStream) : uiEventStream(uiEventStream) {  	ui.setupUi(this);  #if QT_VERSION >= 0x040700 @@ -25,6 +26,7 @@ QtJoinMUCWindow::QtJoinMUCWindow(UIEventStream* uiEventStream) : uiEventStream(u  	// the placeholder when a widget is focused for some reason.  	ui.nickName->setFocus();  	ui.instantRoom->setChecked(true); +	ui.nickName->setValidator(new NickValidator(this));  }  void QtJoinMUCWindow::handleJoin() { diff --git a/Swift/QtUI/QtJoinMUCWindow.h b/Swift/QtUI/QtJoinMUCWindow.h index 90b4f3f..c7e2d74 100644 --- a/Swift/QtUI/QtJoinMUCWindow.h +++ b/Swift/QtUI/QtJoinMUCWindow.h @@ -6,12 +6,29 @@  #pragma once +#include <QValidator>  #include <string> +#include "QtSwiftUtil.h"  #include <Swift/Controllers/UIInterfaces/JoinMUCWindow.h>  #include <Swift/QtUI/ui_QtJoinMUCWindow.h>  namespace Swift {  	class UIEventStream; +	class NickValidator : public QValidator { +		Q_OBJECT +		public: +			NickValidator(QObject* parent) : QValidator(parent) { +			} + +			virtual QValidator::State validate(QString& input, int& /*pos*/) const { +				if (input.isEmpty()) { +					return QValidator::Acceptable; +				} +				JID test("alice", "wonderland.lit", Q2PSTRING(input)); + +				return test.isValid() ? QValidator::Acceptable : QValidator::Invalid; +			} +	};  	class QtJoinMUCWindow : public QWidget, public JoinMUCWindow {  			Q_OBJECT  		public: | 
 Swift
 Swift