X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fnetwork.cpp;h=54d0366fd1eea60904949b356eb17f4a8d4c6b01;hp=1aa907d83509761c3599e4b82a12377a092da14c;hb=4259bc3c5b11164245535e011a69efa6937bb6a6;hpb=84cd3561e97167ffb98ecab0fd2b884ba1d13ada diff --git a/src/common/network.cpp b/src/common/network.cpp index 1aa907d8..54d0366f 100644 --- a/src/common/network.cpp +++ b/src/common/network.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2014 by the Quassel Project * + * Copyright (C) 2005-2015 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -18,16 +18,13 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#include #include #include "network.h" -#include "quassel.h" QTextCodec *Network::_defaultCodecForServer = 0; QTextCodec *Network::_defaultCodecForEncoding = 0; QTextCodec *Network::_defaultCodecForDecoding = 0; -QString Network::_networksIniPath = QString(); // ==================== // Public: @@ -80,6 +77,18 @@ bool Network::isChannelName(const QString &channelname) const } +bool Network::isStatusMsg(const QString &target) const +{ + if (target.isEmpty()) + return false; + + if (supports("STATUSMSG")) + return support("STATUSMSG").contains(target[0]); + else + return QString("@+").contains(target[0]); +} + + NetworkInfo Network::networkInfo() const { NetworkInfo info; @@ -480,73 +489,6 @@ QByteArray Network::encodeServerString(const QString &string) const } -/*** Handle networks.ini ***/ - -QStringList Network::presetNetworks(bool onlyDefault) -{ - // lazily find the file, make sure to not call one of the other preset functions first (they'll fail else) - if (_networksIniPath.isNull()) { - _networksIniPath = Quassel::findDataFilePath("networks.ini"); - if (_networksIniPath.isNull()) { - _networksIniPath = ""; // now we won't check again, as it's not null anymore - return QStringList(); - } - } - if (!_networksIniPath.isEmpty()) { - QSettings s(_networksIniPath, QSettings::IniFormat); - QStringList networks = s.childGroups(); - if (!networks.isEmpty()) { - // we sort the list case-insensitive - QMap sorted; - foreach(QString net, networks) { - if (onlyDefault && !s.value(QString("%1/Default").arg(net)).toBool()) - continue; - sorted[net.toLower()] = net; - } - return sorted.values(); - } - } - return QStringList(); -} - - -QStringList Network::presetDefaultChannels(const QString &networkName) -{ - if (_networksIniPath.isEmpty()) // be sure to have called presetNetworks() first, else this always fails - return QStringList(); - QSettings s(_networksIniPath, QSettings::IniFormat); - return s.value(QString("%1/DefaultChannels").arg(networkName)).toStringList(); -} - - -NetworkInfo Network::networkInfoFromPreset(const QString &networkName) -{ - NetworkInfo info; - if (!_networksIniPath.isEmpty()) { - info.networkName = networkName; - QSettings s(_networksIniPath, QSettings::IniFormat); - s.beginGroup(info.networkName); - foreach(QString server, s.value("Servers").toStringList()) { - bool ssl = false; - QStringList splitserver = server.split(':', QString::SkipEmptyParts); - if (splitserver.count() != 2) { - qWarning() << "Invalid server entry in networks.conf:" << server; - continue; - } - if (splitserver[1].at(0) == '+') - ssl = true; - uint port = splitserver[1].toUInt(); - if (!port) { - qWarning() << "Invalid port entry in networks.conf:" << server; - continue; - } - info.serverList << Network::Server(splitserver[0].trimmed(), port, QString(), ssl); - } - } - return info; -} - - // ==================== // Public Slots: // ====================