summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opieirc/ircchannel.cpp6
-rw-r--r--noncore/net/opieirc/ircchannel.h1
-rw-r--r--noncore/net/opieirc/ircservereditor.cpp7
3 files changed, 12 insertions, 2 deletions
diff --git a/noncore/net/opieirc/ircchannel.cpp b/noncore/net/opieirc/ircchannel.cpp
index 5d81596..b9e377d 100644
--- a/noncore/net/opieirc/ircchannel.cpp
+++ b/noncore/net/opieirc/ircchannel.cpp
@@ -47,2 +47,8 @@ IRCChannelPerson *IRCChannel::getPerson(QString nickname) {
}
+bool IRCChannel::isValid(const QString &channel)
+{
+ return ( channel.startsWith("#") || channel.startsWith("&")
+ || channel.startsWith("+") || channel.startsWith("!"));
+}
+
diff --git a/noncore/net/opieirc/ircchannel.h b/noncore/net/opieirc/ircchannel.h
index a276f10..001f5bb 100644
--- a/noncore/net/opieirc/ircchannel.h
+++ b/noncore/net/opieirc/ircchannel.h
@@ -50,4 +50,5 @@ public:
QString channelname();
bool hasPeople();
+ static bool isValid(const QString &channel);
protected:
QList<IRCChannelPerson> m_people;
diff --git a/noncore/net/opieirc/ircservereditor.cpp b/noncore/net/opieirc/ircservereditor.cpp
index 1fda868..e5c9ab5 100644
--- a/noncore/net/opieirc/ircservereditor.cpp
+++ b/noncore/net/opieirc/ircservereditor.cpp
@@ -1,3 +1,4 @@
#include "ircservereditor.h"
+#include "ircchannel.h"
/* OPIE */
@@ -70,6 +71,8 @@ void IRCServerEditor::accept() {
for (QStringList::Iterator it = channels.begin(); it != channels.end(); ++it) {
QString channelName = (*it).stripWhiteSpace();
- if (!channelName.startsWith("#") && !channelName.startsWith("+")) {
- QMessageBox::critical(this, tr("Error"), tr("The channel list needs to contain a\ncomma separated list of channel\n names which start with either '#' or '+'"));
+ if (!IRCChannel::isValid(channelName)) {
+ QMessageBox::critical(this, tr("Error"), tr("The channel list needs to contain a\ncomma "
+ "separated list of valid\n channel names (starting \n"
+ "with one of '#' '+' '&' '!'"));
return;
}