23 #include "chatnetworkscfg.h"
25 #include "ini/inisection.h"
26 #include "irc/chatlogs.h"
27 #include "irc/configuration/ircconfig.h"
28 #include "strings.hpp"
29 #include "patternlist.h"
32 const QString ChatNetworksCfg::SECTIONS_NAMES_PREFIX =
"Network.";
35 QList<IRCNetworkEntity> ChatNetworksCfg::autoJoinNetworks()
const
37 QList<IRCNetworkEntity> result;
47 bool ChatNetworksCfg::isAnyNetworkOnAutoJoin()
const
60 QString networkName = ini().
section(
"LastUsedNetwork").
value(
"Description").toString();
78 QList<IRCNetworkEntity> ChatNetworksCfg::networks()
const
80 QList<IRCNetworkEntity> result;
81 for (
const IniSection §ion : allNetworksSections())
83 result << loadNetwork(section);
88 void ChatNetworksCfg::setNetworks(
const QList<IRCNetworkEntity> &networks)
92 clearNetworkSections();
96 saveNetwork(networkSection(
id), network);
113 QList<IRCNetworkEntity> networks = this->networks();
114 QMutableListIterator<IRCNetworkEntity> it(networks);
124 setNetworks(networks);
129 if (!
ChatLogs().renameNetwork(errorDisplayParentWidget, oldDescription, newNetwork.
description()))
131 QList<IRCNetworkEntity> networks = this->networks();
132 QMutableListIterator<IRCNetworkEntity> it(networks);
138 network = newNetwork;
142 setNetworks(networks);
146 void ChatNetworksCfg::clearNetworkSections()
148 for (
const IniSection §ion : allNetworksSections())
157 network.setAddress(section[
"Address"]);
158 network.setAutojoinNetwork(section[
"bAutojoinNetwork"]);
159 network.setAutojoinChannels(static_cast<QString>(section[
"AutojoinChannels"])
160 .split(
" ", Qt::SkipEmptyParts));
161 network.setAutojoinCommands(section.
value(
"AutojoinCommands").toStringList());
162 network.setDescription(section[
"Description"]);
163 network.setIgnoredUsers(PatternList::deserializeQVariant(section.
value(
"IgnoredUsers")));
164 network.setNickservCommand(section[
"NickservCommand"]);
165 network.setNickservPassword(section[
"NickservPassword"]);
166 network.setPassword(section[
"Password"]);
167 network.setPort(section[
"Port"]);
173 section[
"Address"] = network.
address();
178 section.
setValue(
"IgnoredUsers", network.ignoredUsers().serializeQVariant());
179 section[
"NickservCommand"] = network.nickservCommand();
180 section[
"NickservPassword"] = network.nickservPassword();
181 section[
"Password"] = network.
password();
182 section[
"Port"] = network.
port();
185 QVector<IniSection> ChatNetworksCfg::allNetworksSections()
const
190 IniSection ChatNetworksCfg::networkSection(
int id)
192 return ini().
section(SECTIONS_NAMES_PREFIX + QString::number(
id));
195 Ini &ChatNetworksCfg::ini()
const
197 return *gIRCConfig.ini();