1
1
/***************************************************************************
2
* Copyright (C) 2005-08 by the Quassel Project *
2
* Copyright (C) 2005-09 by the Quassel Project *
3
3
* devel@quassel-irc.org *
5
5
* This program is free software; you can redistribute it and/or modify *
396
398
return string.toAscii();
401
/*** Handle networks.ini ***/
403
QStringList Network::presetNetworks(bool onlyDefault) {
404
// lazily find the file, make sure to not call one of the other preset functions first (they'll fail else)
405
if(_networksIniPath.isNull()) {
406
_networksIniPath = findDataFilePath("networks.ini");
407
if(_networksIniPath.isNull()) {
408
_networksIniPath = ""; // now we won't check again, as it's not null anymore
409
return QStringList();
412
if(!_networksIniPath.isEmpty()) {
413
QSettings s(_networksIniPath, QSettings::IniFormat);
414
QStringList networks = s.childGroups();
415
if(!networks.isEmpty()) {
416
// we sort the list case-insensitive
417
QMap<QString, QString> sorted;
418
foreach(QString net, networks) {
419
if(onlyDefault && !s.value(QString("%1/Default").arg(net)).toBool())
421
sorted[net.toLower()] = net;
423
return sorted.values();
426
return QStringList();
429
QStringList Network::presetDefaultChannels(const QString &networkName) {
430
if(_networksIniPath.isEmpty()) // be sure to have called presetNetworks() first, else this always fails
431
return QStringList();
432
QSettings s(_networksIniPath, QSettings::IniFormat);
433
return s.value(QString("%1/DefaultChannels").arg(networkName)).toStringList();
436
NetworkInfo Network::networkInfoFromPreset(const QString &networkName) {
438
if(!_networksIniPath.isEmpty()) {
439
info.networkName = networkName;
440
QSettings s(_networksIniPath, QSettings::IniFormat);
441
s.beginGroup(info.networkName);
442
foreach(QString server, s.value("Servers").toStringList()) {
444
QStringList splitserver = server.split(':', QString::SkipEmptyParts);
445
if(splitserver.count() != 2) {
446
qWarning() << "Invalid server entry in networks.conf:" << server;
449
if(splitserver[1].at(0) == '+')
451
uint port = splitserver[1].toUInt();
453
qWarning() << "Invalid port entry in networks.conf:" << server;
456
info.serverList << Network::Server(splitserver[0].trimmed(), port, QString(), ssl);
399
463
// ====================
401
465
// ====================
662
726
************************************************************************/
728
NetworkInfo::NetworkInfo()
731
useRandomServer(false),
732
useAutoIdentify(false),
733
autoIdentifyService("NickServ"),
734
useAutoReconnect(true),
735
autoReconnectInterval(60),
736
autoReconnectRetries(20),
737
unlimitedReconnectRetries(false),
664
743
bool NetworkInfo::operator==(const NetworkInfo &other) const {
665
744
if(networkId != other.networkId) return false;
666
745
if(networkName != other.networkName) return false;