/***************************************************************************
- * Copyright (C) 2005-09 by the Quassel Project *
+ * Copyright (C) 2005-2010 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
_prefixModes(QString()),
_useRandomServer(false),
_useAutoIdentify(false),
+ _useSasl(false),
_useAutoReconnect(false),
_autoReconnectInterval(60),
_autoReconnectRetries(10),
info.useAutoIdentify = useAutoIdentify();
info.autoIdentifyService = autoIdentifyService();
info.autoIdentifyPassword = autoIdentifyPassword();
+ info.useSasl = useSasl();
+ info.saslAccount = saslAccount();
+ info.saslPassword = saslPassword();
info.useAutoReconnect = useAutoReconnect();
info.autoReconnectInterval = autoReconnectInterval();
info.autoReconnectRetries = autoReconnectRetries();
if(info.useAutoIdentify != useAutoIdentify()) setUseAutoIdentify(info.useAutoIdentify);
if(info.autoIdentifyService != autoIdentifyService()) setAutoIdentifyService(info.autoIdentifyService);
if(info.autoIdentifyPassword != autoIdentifyPassword()) setAutoIdentifyPassword(info.autoIdentifyPassword);
+ if(info.useSasl != useSasl()) setUseSasl(info.useSasl);
+ if(info.saslAccount != saslAccount()) setSaslAccount(info.saslAccount);
+ if(info.saslPassword != saslPassword()) setSaslPassword(info.saslPassword);
if(info.useAutoReconnect != useAutoReconnect()) setUseAutoReconnect(info.useAutoReconnect);
if(info.autoReconnectInterval != autoReconnectInterval()) setAutoReconnectInterval(info.autoReconnectInterval);
if(info.autoReconnectRetries != autoReconnectRetries()) setAutoReconnectRetries(info.autoReconnectRetries);
if(info.rejoinChannels != rejoinChannels()) setRejoinChannels(info.rejoinChannels);
}
-QString Network::prefixToMode(const QString &prefix) {
+QString Network::prefixToMode(const QString &prefix) const {
if(prefixes().contains(prefix))
return QString(prefixModes()[prefixes().indexOf(prefix)]);
else
return QString();
}
-QString Network::modeToPrefix(const QString &mode) {
+QString Network::modeToPrefix(const QString &mode) const {
if(prefixModes().contains(mode))
return QString(prefixes()[prefixModes().indexOf(mode)]);
else
return nicks;
}
-QString Network::prefixes() {
+QString Network::prefixes() const {
if(_prefixes.isNull())
determinePrefixes();
return _prefixes;
}
-QString Network::prefixModes() {
+QString Network::prefixModes() const {
if(_prefixModes.isNull())
determinePrefixes();
IrcUser *Network::newIrcUser(const QString &hostmask, const QVariantMap &initData) {
QString nick(nickFromMask(hostmask).toLower());
if(!_ircUsers.contains(nick)) {
- IrcUser *ircuser = new IrcUser(hostmask, this);
+ IrcUser *ircuser = ircUserFactory(hostmask);
if(!initData.isEmpty()) {
ircuser->fromVariantMap(initData);
ircuser->setInitialized();
return info;
}
-
// ====================
// Public Slots:
// ====================
emit configChanged();
}
+void Network::setUseSasl(bool use) {
+ _useSasl = use;
+ SYNC(ARG(use))
+ emit configChanged();
+}
+
+void Network::setSaslAccount(const QString &account) {
+ _saslAccount = account;
+ SYNC(ARG(account))
+ emit configChanged();
+}
+
+void Network::setSaslPassword(const QString &password) {
+ _saslPassword = password;
+ SYNC(ARG(password))
+ emit configChanged();
+}
+
void Network::setUseAutoReconnect(bool use) {
_useAutoReconnect = use;
SYNC(ARG(use))
// ====================
// Private:
// ====================
-void Network::determinePrefixes() {
+void Network::determinePrefixes() const {
// seems like we have to construct them first
QString prefix = support("PREFIX");
_prefixModes = defaultPrefixModes;
return;
}
+ // clear the existing modes, just in case we're run multiple times
+ _prefixes = QString();
+ _prefixModes = QString();
// we just assume that in PREFIX are only prefix chars stored
for(int i = 0; i < defaultPrefixes.size(); i++) {
if(prefix.contains(defaultPrefixes[i])) {
- _prefixes += defaultPrefixes[i];
- _prefixModes += defaultPrefixModes[i];
+ _prefixes += defaultPrefixes[i];
+ _prefixModes += defaultPrefixModes[i];
}
}
// check for success
// check if it's only prefix modes
for(int i = 0; i < defaultPrefixes.size(); i++) {
if(prefix.contains(defaultPrefixModes[i])) {
- _prefixes += defaultPrefixes[i];
- _prefixModes += defaultPrefixModes[i];
+ _prefixes += defaultPrefixes[i];
+ _prefixModes += defaultPrefixModes[i];
}
}
// now we've done all we've could...
useRandomServer(false),
useAutoIdentify(false),
autoIdentifyService("NickServ"),
+ useSasl(false),
useAutoReconnect(true),
autoReconnectInterval(60),
autoReconnectRetries(20),
if(useAutoIdentify != other.useAutoIdentify) return false;
if(autoIdentifyService != other.autoIdentifyService) return false;
if(autoIdentifyPassword != other.autoIdentifyPassword) return false;
+ if(useSasl != other.useSasl) return false;
+ if(saslAccount != other.saslAccount) return false;
+ if(saslPassword != other.saslPassword) return false;
if(useAutoReconnect != other.useAutoReconnect) return false;
if(autoReconnectInterval != other.autoReconnectInterval) return false;
if(autoReconnectRetries != other.autoReconnectRetries) return false;
i["UseAutoIdentify"] = info.useAutoIdentify;
i["AutoIdentifyService"] = info.autoIdentifyService;
i["AutoIdentifyPassword"] = info.autoIdentifyPassword;
+ i["UseSasl"] = info.useSasl;
+ i["SaslAccount"] = info.saslAccount;
+ i["SaslPassword"] = info.saslPassword;
i["UseAutoReconnect"] = info.useAutoReconnect;
i["AutoReconnectInterval"] = info.autoReconnectInterval;
i["AutoReconnectRetries"] = info.autoReconnectRetries;
info.useAutoIdentify = i["UseAutoIdentify"].toBool();
info.autoIdentifyService = i["AutoIdentifyService"].toString();
info.autoIdentifyPassword = i["AutoIdentifyPassword"].toString();
+ info.useSasl = i["UseSasl"].toBool();
+ info.saslAccount = i["SaslAccount"].toString();
+ info.saslPassword = i["SaslPassword"].toString();
info.useAutoReconnect = i["UseAutoReconnect"].toBool();
info.autoReconnectInterval = i["AutoReconnectInterval"].toUInt();
info.autoReconnectRetries = i["AutoReconnectRetries"].toInt();
QDebug operator<<(QDebug dbg, const NetworkInfo &i) {
dbg.nospace() << "(id = " << i.networkId << " name = " << i.networkName << " identity = " << i.identity
- << " codecForServer = " << i.codecForServer << " codecForEncoding = " << i.codecForEncoding << " codecForDecoding = " << i.codecForDecoding
- << " serverList = " << i.serverList << " useRandomServer = " << i.useRandomServer << " perform = " << i.perform
- << " useAutoIdentify = " << i.useAutoIdentify << " autoIdentifyService = " << i.autoIdentifyService << " autoIdentifyPassword = " << i.autoIdentifyPassword
- << " useAutoReconnect = " << i.useAutoReconnect << " autoReconnectInterval = " << i.autoReconnectInterval
- << " autoReconnectRetries = " << i.autoReconnectRetries << " unlimitedReconnectRetries = " << i.unlimitedReconnectRetries
- << " rejoinChannels = " << i.rejoinChannels << ")";
+ << " codecForServer = " << i.codecForServer << " codecForEncoding = " << i.codecForEncoding << " codecForDecoding = " << i.codecForDecoding
+ << " serverList = " << i.serverList << " useRandomServer = " << i.useRandomServer << " perform = " << i.perform
+ << " useAutoIdentify = " << i.useAutoIdentify << " autoIdentifyService = " << i.autoIdentifyService << " autoIdentifyPassword = " << i.autoIdentifyPassword
+ << " useSasl = " << i.useSasl << " saslAccount = " << i.saslAccount << " saslPassword = " << i.saslPassword
+ << " useAutoReconnect = " << i.useAutoReconnect << " autoReconnectInterval = " << i.autoReconnectInterval
+ << " autoReconnectRetries = " << i.autoReconnectRetries << " unlimitedReconnectRetries = " << i.unlimitedReconnectRetries
+ << " rejoinChannels = " << i.rejoinChannels << ")";
return dbg.space();
}