summaryrefslogtreecommitdiffstats
path: root/src/GreetingSetting.hpp
diff options
context:
space:
mode:
authorMarkus Mittendrein <git@maxmitti.tk>2017-06-08 00:07:02 +0200
committerMarkus Mittendrein <git@maxmitti.tk>2017-06-08 00:07:02 +0200
commit1523bf7795cf9424859c2147e3004e175d4844fd (patch)
tree5131cb447ab0f128bfd05f7203fa8a37311dc19d /src/GreetingSetting.hpp
parentccd8b87ba062a99e91f58bbe2e7494bcf3301aee (diff)
downloadmanager-1523bf7795cf9424859c2147e3004e175d4844fd.tar.gz
manager-1523bf7795cf9424859c2147e3004e175d4844fd.zip
Allow option to greet via notice on IRC
Diffstat (limited to 'src/GreetingSetting.hpp')
-rw-r--r--src/GreetingSetting.hpp26
1 files changed, 17 insertions, 9 deletions
diff --git a/src/GreetingSetting.hpp b/src/GreetingSetting.hpp
index 933d4c5..20fce0b 100644
--- a/src/GreetingSetting.hpp
+++ b/src/GreetingSetting.hpp
@@ -7,14 +7,14 @@
class GreetingSetting {
public:
+ enum Mode {Normal, Notice, Disabled, Unset} mode = Normal;
ClientInterface interface;
- bool negative = false;
QString target = "";
GreetingSetting() { }
inline bool operator==(const GreetingSetting& other)
{
- return other.interface == interface && other.negative == negative && other.target == target;
+ return other.interface == interface && other.mode == mode && other.target == target;
}
inline bool operator!=(const GreetingSetting& other)
{
@@ -23,7 +23,7 @@ public:
inline GreetingSetting& invert()
{
- negative = !negative;
+ mode = (mode == Disabled) ? Normal : Disabled;
return *this;
}
@@ -52,8 +52,8 @@ public:
void setValue(const QString& value)
{
QString val = value;
- bool negative = (value.at(0) == '!');
- if(negative)
+ GreetingSetting::Mode mode = (value.at(0) == '!') ? GreetingSetting::Disabled : (value.at(0) == '-') ? GreetingSetting::Notice : GreetingSetting::Normal;
+ if(mode != GreetingSetting::Normal)
{
val.remove(0, 1);
}
@@ -62,6 +62,7 @@ public:
if(parts.first() == "Clonk" && parts.length() == 1)
{
conf.interface = Clonk;
+ conf.mode = mode == GreetingSetting::Disabled ? GreetingSetting::Disabled : GreetingSetting::Normal;
conf.target.clear();
}
else if(parts.first() == "IRC" && parts.length() <= 2)
@@ -75,22 +76,29 @@ public:
{
conf.target.clear();
}
+ conf.mode = mode;
}
else
{
throw ConfigException("Can not parse corrupt GreetingSetting");
}
-
- conf.negative = negative;
}
QString value()
{
QString ret;
- if(conf.negative)
+ switch(conf.mode)
{
- ret = "!";
+ case GreetingSetting::Disabled:
+ ret = "!";
+ break;
+ case GreetingSetting::Notice:
+ ret = "-";
+ break;
+ case GreetingSetting::Normal: case GreetingSetting::Unset:
+ break;
}
+
QStringList parts = {(conf.interface == Clonk ? "Clonk" : "IRC")};
if(!conf.target.isEmpty())
{