summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2012-03-05 18:00:34 (GMT)
committerKevin Smith <git@kismith.co.uk>2012-03-05 18:17:49 (GMT)
commit651f10eee7bce78b95b61061b9aef6bb4ab81841 (patch)
treedbc10b7f2bbe90a07e6eb1bf15d17a5edc6843e9
parente1602cbe8c5fb1525bc66ecf5d7a939816f259c5 (diff)
downloadswift-contrib-651f10eee7bce78b95b61061b9aef6bb4ab81841.zip
swift-contrib-651f10eee7bce78b95b61061b9aef6bb4ab81841.tar.bz2
Check validity of MUC names in join dialog
Resolves: #868
-rw-r--r--Swift/QtUI/QtJoinMUCWindow.cpp6
-rw-r--r--Swift/QtUI/QtJoinMUCWindow.h17
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: