aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/kvilib/CMakeLists.txt1
-rw-r--r--src/kvilib/irc/kvi_ircserver.cpp76
-rw-r--r--src/kvilib/irc/kvi_ircserver.h148
-rw-r--r--src/kvilib/irc/kvi_ircserverdb.cpp203
-rw-r--r--src/kvilib/irc/kvi_ircserverdb.h52
-rw-r--r--src/kvilib/irc/kvi_network.cpp114
-rw-r--r--src/kvilib/irc/kvi_network.h88
-rw-r--r--src/kvirc/kernel/kvi_app.cpp6
-rw-r--r--src/kvirc/kernel/kvi_ircconnectiontarget.cpp1
-rw-r--r--src/kvirc/kernel/kvi_irccontext.cpp9
-rw-r--r--src/kvirc/kvs/kvi_kvs_script.cpp18
-rw-r--r--src/kvirc/kvs/kvi_kvs_script.h4
-rw-r--r--src/kvirc/sparser/kvi_sp_literal.cpp1
-rw-r--r--src/modules/options/optw_servers.cpp26
-rw-r--r--src/modules/serverdb/libkviserverdb.cpp2
15 files changed, 375 insertions, 374 deletions
diff --git a/src/kvilib/CMakeLists.txt b/src/kvilib/CMakeLists.txt
index 80e6eee8b..5ede80fbf 100644
--- a/src/kvilib/CMakeLists.txt
+++ b/src/kvilib/CMakeLists.txt
@@ -105,6 +105,7 @@ SET(kvilib_SRCS
irc/kvi_avatarcache.cpp
irc/kvi_ircmask.cpp
irc/kvi_ircserver.cpp
+ irc/kvi_network.cpp
irc/kvi_ircserverdb.cpp
irc/kvi_ircuserdb.cpp
irc/kvi_mirccntrl.cpp
diff --git a/src/kvilib/irc/kvi_ircserver.cpp b/src/kvilib/irc/kvi_ircserver.cpp
index 57a3e79b2..248820ab7 100644
--- a/src/kvilib/irc/kvi_ircserver.cpp
+++ b/src/kvilib/irc/kvi_ircserver.cpp
@@ -48,7 +48,7 @@ KviServer::KviServer()
m_pReconnectInfo=0;
m_uFlags = 0;
m_uPort = 6667;
- m_pChannelList = 0;
+ m_pAutoJoinChannelList = 0;
m_bAutoConnect = false;
m_iProxy = -1;
}
@@ -88,9 +88,9 @@ KviServer::KviServer(const KviServer &serv)
m_szId = serv.m_szId;
m_iProxy = serv.m_iProxy;
m_szUserIdentityId = serv.m_szUserIdentityId;
- if(serv.m_pChannelList)
- m_pChannelList = new QStringList(*(serv.m_pChannelList));
- else m_pChannelList = 0;
+ if(serv.m_pAutoJoinChannelList)
+ m_pAutoJoinChannelList = new QStringList(*(serv.m_pAutoJoinChannelList));
+ else m_pAutoJoinChannelList = 0;
m_bAutoConnect = serv.m_bAutoConnect;
}
@@ -114,17 +114,17 @@ void KviServer::operator=(const KviServer &serv)
m_szId = serv.m_szId;
m_szUserIdentityId = serv.m_szUserIdentityId;
m_iProxy = serv.m_iProxy;
- if(m_pChannelList)delete m_pChannelList;
- if(serv.m_pChannelList)
- m_pChannelList = new QStringList(*(serv.m_pChannelList));
- else m_pChannelList = 0;
+ if(m_pAutoJoinChannelList)delete m_pAutoJoinChannelList;
+ if(serv.m_pAutoJoinChannelList)
+ m_pAutoJoinChannelList = new QStringList(*(serv.m_pAutoJoinChannelList));
+ else m_pAutoJoinChannelList = 0;
m_bAutoConnect = serv.m_bAutoConnect;
}
KviServer::~KviServer()
{
- if(m_pChannelList)delete m_pChannelList;
+ if(m_pAutoJoinChannelList)delete m_pAutoJoinChannelList;
if(m_pReconnectInfo) delete m_pReconnectInfo;
}
@@ -155,8 +155,8 @@ QString KviServer::ircUri()
void KviServer::setAutoJoinChannelList(QStringList * pNewChannelList)
{
- if(m_pChannelList)delete m_pChannelList;
- m_pChannelList = pNewChannelList;
+ if(m_pAutoJoinChannelList)delete m_pAutoJoinChannelList;
+ m_pAutoJoinChannelList = pNewChannelList;
}
@@ -323,60 +323,6 @@ void KviServer::save(KviConfig * cfg,const QString &prefix)
}
-KviNetwork::KviNetwork(const KviNetwork &src)
-{
- m_pChannelList = 0;
- m_pNickServRuleSet = 0;
- copyFrom(src);
-}
-
-KviNetwork::KviNetwork(const QString &name)
-{
- m_szName = name;
- m_pChannelList = 0;
- m_pNickServRuleSet = 0;
- m_bAutoConnect = false;
-}
-
-KviNetwork::~KviNetwork()
-{
- if(m_pChannelList)delete m_pChannelList;
- if(m_pNickServRuleSet)delete m_pNickServRuleSet;
-}
-
-void KviNetwork::setAutoJoinChannelList(QStringList * pNewChannelList)
-{
- if(m_pChannelList)delete m_pChannelList;
- m_pChannelList = pNewChannelList;
-}
-
-void KviNetwork::setNickServRuleSet(KviNickServRuleSet * s)
-{
- if(m_pNickServRuleSet)delete m_pNickServRuleSet;
- m_pNickServRuleSet = s;
-}
-
-void KviNetwork::copyFrom(const KviNetwork &src)
-{
- m_szName = src.m_szName;
- m_szEncoding = src.m_szEncoding;
- m_szTextEncoding = src.m_szTextEncoding;
- m_szDescription = src.m_szDescription;
- m_szNickName = src.m_szNickName;
- m_szRealName = src.m_szRealName;
- m_szUserName = src.m_szUserName;
- m_bAutoConnect = src.m_bAutoConnect;
- m_szUserIdentityId = src.m_szUserIdentityId;
- m_szOnConnectCommand = src.m_szOnConnectCommand;
- m_szOnLoginCommand = src.m_szOnLoginCommand;
- if(m_pChannelList)delete m_pChannelList;
- if(src.m_pChannelList)m_pChannelList = new QStringList(*(src.m_pChannelList));
- else m_pChannelList = 0;
- if(m_pNickServRuleSet)delete m_pNickServRuleSet;
- if(src.m_pNickServRuleSet)m_pNickServRuleSet = new KviNickServRuleSet(*(src.m_pNickServRuleSet));
- else m_pNickServRuleSet = 0;
-}
-
KviServerReconnectInfo::KviServerReconnectInfo()
{
m_bIsAway=false;
diff --git a/src/kvilib/irc/kvi_ircserver.h b/src/kvilib/irc/kvi_ircserver.h
index bb115e45b..e8149d53d 100644
--- a/src/kvilib/irc/kvi_ircserver.h
+++ b/src/kvilib/irc/kvi_ircserver.h
@@ -72,7 +72,7 @@ public:
// Extended data
QString m_szUserIdentityId; // The user identity to use for this server: if empty
// Then use the network identity instead
-
+
QString m_szUser; // special username
QString m_szPass; // special password
QString m_szNick; // special nickname
@@ -83,66 +83,66 @@ public:
QString m_szLinkFilter; // the link filter object
QString m_szEncoding; // if empty, use network encoding
QString m_szTextEncoding; // if empty, use network encoding
- QStringList * m_pChannelList; // Channels to auto join
+ QStringList * m_pAutoJoinChannelList; // Channels to auto join
bool m_bAutoConnect; // autoconnect
QString m_szId; // the server's may-be-unique id, may be auto-generated
int m_iProxy; // proxy server's id
public:
- int proxy() { return m_iProxy; };
+ inline int proxy() { return m_iProxy; };
KviProxy* proxyServer(KviProxyDataBase * pDb);
-
- kvi_u32_t port() const { return m_uPort; };
- const QString & password() const { return m_szPass; };
- const QString & nickName() const { return m_szNick; };
- const QString & initUMode() const { return m_szInitUMode; };
- const QString & hostName() const { return m_szHostname; };
- const QString & ip() const { return m_szIp; };
- const QString & onLoginCommand() const { return m_szOnLoginCommand; };
- const QString & onConnectCommand() const { return m_szOnConnectCommand; };
- const QString & userName() const { return m_szUser; };
- const QString & realName() const { return m_szRealName; };
- const QString & linkFilter() const { return m_szLinkFilter; };
- const QString & description() const { return m_szDescription; };
- const QString & encoding() const { return m_szEncoding; };
- const QString & textEncoding() const { return m_szTextEncoding; };
- const QString & id() const { return m_szId; };
- const QString & userIdentityId() const { return m_szUserIdentityId; };
- bool autoConnect() const { return m_bAutoConnect; };
- QStringList* autoJoinChannelList(){ return m_pChannelList; };
- bool isIPv6() const { return (m_uFlags & KVI_IRCSERVER_FLAG_IPV6); };
- bool useSSL() const { return (m_uFlags & KVI_IRCSERVER_FLAG_SSL); };
- bool cacheIp() const { return (m_uFlags & KVI_IRCSERVER_FLAG_CACHEIP); };
-
- void setProxy(int p){ m_iProxy = p; };
- void setIp(const QString &a){ m_szIp = a; };
- void setPort(kvi_u32_t p){ m_uPort = p; };
- void setHostName(const QString &n){ m_szHostname = n; };
- void setDescription(const QString &d){ m_szDescription = d; };
- void setUserName(const QString &u){ m_szUser = u; };
- void setPassword(const QString &p){ m_szPass = p; };
- void setNickName(const QString &n){ m_szNick = n; };
- void setRealName(const QString &r){ m_szRealName = r; };
- void setEncoding(const QString &e){ m_szEncoding = e; };
- void setTextEncoding(const QString &e){ m_szTextEncoding = e; };
- void setInitUMode(const QString &u){ m_szInitUMode = u; };
- void setOnConnectCommand(const QString &cmd){ m_szOnConnectCommand = cmd; };
- void setOnLoginCommand(const QString &cmd){ m_szOnLoginCommand = cmd; };
- void setLinkFilter(const QString &f){ m_szLinkFilter = f; };
+
+ inline kvi_u32_t port() const { return m_uPort; };
+ inline const QString & password() const { return m_szPass; };
+ inline const QString & nickName() const { return m_szNick; };
+ inline const QString & initUMode() const { return m_szInitUMode; };
+ inline const QString & hostName() const { return m_szHostname; };
+ inline const QString & ip() const { return m_szIp; };
+ inline const QString & onLoginCommand() const { return m_szOnLoginCommand; };
+ inline const QString & onConnectCommand() const { return m_szOnConnectCommand; };
+ inline const QString & userName() const { return m_szUser; };
+ inline const QString & realName() const { return m_szRealName; };
+ inline const QString & linkFilter() const { return m_szLinkFilter; };
+ inline const QString & description() const { return m_szDescription; };
+ inline const QString & encoding() const { return m_szEncoding; };
+ inline const QString & textEncoding() const { return m_szTextEncoding; };
+ inline const QString & id() const { return m_szId; };
+ inline const QString & userIdentityId() const { return m_szUserIdentityId; };
+ inline bool autoConnect() const { return m_bAutoConnect; };
+ inline QStringList* autoJoinChannelList(){ return m_pAutoJoinChannelList; };
+ inline bool isIPv6() const { return (m_uFlags & KVI_IRCSERVER_FLAG_IPV6); };
+ inline bool useSSL() const { return (m_uFlags & KVI_IRCSERVER_FLAG_SSL); };
+ inline bool cacheIp() const { return (m_uFlags & KVI_IRCSERVER_FLAG_CACHEIP); };
+
+ inline void setProxy(int p){ m_iProxy = p; };
+ inline void setIp(const QString &a){ m_szIp = a; };
+ inline void setPort(kvi_u32_t p){ m_uPort = p; };
+ inline void setHostName(const QString &n){ m_szHostname = n; };
+ inline void setDescription(const QString &d){ m_szDescription = d; };
+ inline void setUserName(const QString &u){ m_szUser = u; };
+ inline void setPassword(const QString &p){ m_szPass = p; };
+ inline void setNickName(const QString &n){ m_szNick = n; };
+ inline void setRealName(const QString &r){ m_szRealName = r; };
+ inline void setEncoding(const QString &e){ m_szEncoding = e; };
+ inline void setTextEncoding(const QString &e){ m_szTextEncoding = e; };
+ inline void setInitUMode(const QString &u){ m_szInitUMode = u; };
+ inline void setOnConnectCommand(const QString &cmd){ m_szOnConnectCommand = cmd; };
+ inline void setOnLoginCommand(const QString &cmd){ m_szOnLoginCommand = cmd; };
+ inline void setLinkFilter(const QString &f){ m_szLinkFilter = f; };
// the channel list must be allocated with new!
void setAutoJoinChannelList(QStringList * pNewChannelList);
- void setAutoConnect(bool autoconnect) { m_bAutoConnect = autoconnect; };
- void setUserIdentityId(const QString &szUserIdentityId){ m_szUserIdentityId = szUserIdentityId; };
- void setIPv6(bool bSet)
+ inline void setAutoConnect(bool autoconnect) { m_bAutoConnect = autoconnect; };
+ inline void setUserIdentityId(const QString &szUserIdentityId){ m_szUserIdentityId = szUserIdentityId; };
+ inline void setIPv6(bool bSet)
{
if(bSet)m_uFlags |= KVI_IRCSERVER_FLAG_IPV6;
else m_uFlags &= ((unsigned short)~KVI_IRCSERVER_FLAG_IPV6);
};
- void setUseSSL(bool bSet)
+ inline void setUseSSL(bool bSet)
{
if(bSet)m_uFlags |= KVI_IRCSERVER_FLAG_SSL;
else m_uFlags &= ((unsigned short)~KVI_IRCSERVER_FLAG_SSL);
};
- void setCacheIp(bool bSet)
+ inline void setCacheIp(bool bSet)
{
if(bSet)m_uFlags |= KVI_IRCSERVER_FLAG_CACHEIP;
else m_uFlags &= ((unsigned short)~KVI_IRCSERVER_FLAG_CACHEIP);
@@ -151,65 +151,13 @@ public:
bool load(KviConfig * cfg,const QString &prefix);
void save(KviConfig * cfg,const QString &prefix);
-
+
void generateUniqueId();
- void setId(const QString &szId){ m_szId = szId; if(m_szId.isEmpty())generateUniqueId(); };
+ inline void setId(const QString &szId){ m_szId = szId; if(m_szId.isEmpty())generateUniqueId(); };
QString ircUri();
};
-class KVILIB_API KviNetwork : public KviHeapObject
-{
- friend class KviServerDataBase;
-public:
- KviNetwork(const KviNetwork &src);
- KviNetwork(const QString &name);
- ~KviNetwork();
-protected:
- QString m_szName;
- QString m_szDescription;
- QString m_szEncoding; // if empty, use system default
- QString m_szTextEncoding; // if empty, use system default
- QString m_szNickName; // preferred nick name
- QString m_szUserName; // preferred user name
- QString m_szRealName; // preferred real name
- QString m_szOnConnectCommand; // the command to run on connect
- QString m_szOnLoginCommand; // the command to run after login
- QStringList * m_pChannelList; // Channels to auto join
- KviNickServRuleSet * m_pNickServRuleSet; // set of nick serv rules
- bool m_bAutoConnect; // autoconnect
- QString m_szUserIdentityId; // The user identity to use for this server: if empty
- // Then use the global primary identity
-public:
- const QString & name() const { return m_szName; };
- const QString & encoding() const { return m_szEncoding; };
- const QString & textEncoding() const { return m_szTextEncoding; };
- const QString & description() const { return m_szDescription; };
- const QString & nickName() const { return m_szNickName; };
- const QString & realName() const { return m_szRealName; };
- const QString & userName() const { return m_szUserName; };
- const QString & onLoginCommand() const { return m_szOnLoginCommand; };
- const QString & onConnectCommand() const { return m_szOnConnectCommand; };
- const QString & userIdentityId() const { return m_szUserIdentityId; };
- bool autoConnect() const { return m_bAutoConnect; };
- QStringList* autoJoinChannelList(){ return m_pChannelList; };
- KviNickServRuleSet * nickServRuleSet(){ return m_pNickServRuleSet; };
- void setNickServRuleSet(KviNickServRuleSet * s);
- void copyFrom(const KviNetwork &d);
- void setName(const QString &szName){ m_szName = szName; };
- void setEncoding(const QString &szEncoding){ m_szEncoding = szEncoding; };
- void setTextEncoding(const QString &szEncoding){ m_szTextEncoding = szEncoding; };
- void setDescription(const QString &szDescription){ m_szDescription = szDescription; };
- void setOnConnectCommand(const QString &cmd){ m_szOnConnectCommand = cmd; };
- void setOnLoginCommand(const QString &cmd){ m_szOnLoginCommand = cmd; };
- void setNickName(const QString &n){ m_szNickName = n; };
- void setRealName(const QString &r){ m_szRealName = r; };
- void setUserName(const QString &u){ m_szUserName = u; };
- void setAutoJoinChannelList(QStringList * pNewChannelList);
- void setAutoConnect(bool bAutoConnect){ m_bAutoConnect = bAutoConnect; };
- void setUserIdentityId(const QString &szUserIdentityId){ m_szUserIdentityId = szUserIdentityId; };
-};
-
#endif //_KVI_IRCSERVER_H_
diff --git a/src/kvilib/irc/kvi_ircserverdb.cpp b/src/kvilib/irc/kvi_ircserverdb.cpp
index f97992216..b6e52d942 100644
--- a/src/kvilib/irc/kvi_ircserverdb.cpp
+++ b/src/kvilib/irc/kvi_ircserverdb.cpp
@@ -35,63 +35,10 @@
#include "kvi_netutils.h"
#include "kvi_nickserv.h"
-KviServerDataBaseRecord::KviServerDataBaseRecord(KviNetwork * n)
-{
- m_pNetwork = n;
- m_pServerList = new KviPointerList<KviServer>;
- m_pServerList->setAutoDelete(true);
- m_pCurrentServer = 0;
-}
-
-KviServerDataBaseRecord::~KviServerDataBaseRecord()
-{
- delete m_pNetwork;
- delete m_pServerList;
-}
-
-void KviServerDataBaseRecord::insertServer(KviServer *srv)
-{
- m_pServerList->append(srv);
-}
-
-KviServer * KviServerDataBaseRecord::findServer(const QString & szHostname)
-{
- for (KviServer *s = m_pServerList->first(); s; s = m_pServerList->next())
- {
- if (KviQString::equalCI(s->m_szHostname, szHostname))
- return s;
- }
- return 0;
-}
-
-KviServer * KviServerDataBaseRecord::findServer(const KviServer * pServer)
-{
- for (KviServer *s = m_pServerList->first(); s; s = m_pServerList->next())
- {
- if (KviQString::equalCI(s->m_szHostname, pServer->m_szHostname)
- && (s->m_uPort == pServer->m_uPort) && (s->useSSL()
- == pServer->useSSL()) && (s->isIPv6() == pServer->isIPv6()))
- return s;
- }
- return 0;
-}
-
-void KviServerDataBaseRecord::setCurrentServer(KviServer *srv)
-{
- if(m_pServerList->findRef(srv) != -1)m_pCurrentServer = srv;
-}
-
-KviServer * KviServerDataBaseRecord::currentServer()
-{
- if(m_pCurrentServer)return m_pCurrentServer;
- m_pCurrentServer = m_pServerList->first();
- return m_pCurrentServer;
-}
-
KviServerDataBase::KviServerDataBase()
{
- m_pRecords = new KviPointerHashTable<QString,KviServerDataBaseRecord>(17,false);
+ m_pRecords = new KviPointerHashTable<QString,KviNetwork>(17,false);
m_pRecords->setAutoDelete(true);
m_pAutoConnectOnStartupServers = 0;
m_pAutoConnectOnStartupNetworks = 0;
@@ -124,40 +71,31 @@ void KviServerDataBase::clear()
m_szCurrentNetwork = "";
}
-KviServerDataBaseRecord * KviServerDataBase::addNetwork(KviNetwork *n)
-{
- KviServerDataBaseRecord * r = new KviServerDataBaseRecord(n);
- m_pRecords->replace(n->name(),r);
- return r;
-}
-
-KviServerDataBaseRecord * KviServerDataBase::findRecord(const QString &szNetName)
+void KviServerDataBase::addNetwork(KviNetwork *n)
{
- return m_pRecords->find(szNetName);
+ m_pRecords->replace(n->name(),n);
}
-
KviNetwork * KviServerDataBase::findNetwork(const QString &szName)
{
- KviServerDataBaseRecord * r = m_pRecords->find(szName);
- if(!r)return 0;
- return r->network();
+ KviNetwork * r = m_pRecords->find(szName);
+ return r;
}
-KviServerDataBaseRecord * KviServerDataBase::currentNetwork()
+KviNetwork * KviServerDataBase::currentNetwork()
{
- KviServerDataBaseRecord * r = 0;
+ KviNetwork * r = 0;
if(!m_szCurrentNetwork.isEmpty())r = m_pRecords->find(m_szCurrentNetwork);
if(r)return r;
- KviPointerHashTableIterator<QString,KviServerDataBaseRecord> it(*m_pRecords);
+ KviPointerHashTableIterator<QString,KviNetwork> it(*m_pRecords);
r = it.current();
if(!r)return 0;
- m_szCurrentNetwork = r->network()->name();
+ m_szCurrentNetwork = r->name();
return r;
}
-bool KviServerDataBase::makeCurrentBestServerInNetwork(const QString &szNetName,KviServerDataBaseRecord * r,QString &szError)
+bool KviServerDataBase::makeCurrentBestServerInNetwork(const QString &szNetName,KviNetwork * r,QString &szError)
{
m_szCurrentNetwork = szNetName;
// find a round-robin server in that network
@@ -206,8 +144,8 @@ bool KviServerDataBase::makeCurrentServer(KviServerDefinition * d,QString &szErr
{
KviServer * pServer = 0;
- KviPointerHashTableIterator<QString,KviServerDataBaseRecord> it(*m_pRecords);
- KviServerDataBaseRecord * r = 0;
+ KviPointerHashTableIterator<QString,KviNetwork> it(*m_pRecords);
+ KviNetwork * r = 0;
KviServer * srv;
if(KviQString::equalCIN(d->szServer,"net:",4))
@@ -215,7 +153,7 @@ bool KviServerDataBase::makeCurrentServer(KviServerDefinition * d,QString &szErr
// net:networkname form
QString szNet = d->szServer;
szNet.remove(0,4);
- KviServerDataBaseRecord * r = m_pRecords->find(szNet);
+ KviNetwork * r = m_pRecords->find(szNet);
if(r)return makeCurrentBestServerInNetwork(szNet,r,szError);
szError = __tr2qs("The server specification seems to be in the net:<string> but the network couln't be found in the database");
return false;
@@ -311,7 +249,7 @@ search_finished:
if(!d->szPass.isEmpty())pServer->m_szPass = d->szPass; // don't clear the pass!
if(!d->szInitUMode.isEmpty())pServer->m_szInitUMode = d->szInitUMode;
- m_szCurrentNetwork = r->network()->name();
+ m_szCurrentNetwork = r->name();
r->setCurrentServer(pServer);
return true;
}
@@ -330,7 +268,7 @@ search_finished:
if(!d->szServer.contains('.'))
{
// assume it is a network name!
- KviServerDataBaseRecord * r = m_pRecords->find(d->szServer);
+ KviNetwork * r = m_pRecords->find(d->szServer);
if(r)return makeCurrentBestServerInNetwork(d->szServer,r,szError);
// else probably not a network name
}
@@ -341,8 +279,8 @@ search_finished:
r = m_pRecords->find(__tr2qs("Standalone Servers"));
if(!r)
{
- r = new KviServerDataBaseRecord(new KviNetwork(__tr2qs("Standalone Servers")));
- m_pRecords->replace(r->network()->name(),r);
+ r = new KviNetwork(__tr2qs("Standalone Servers"));
+ m_pRecords->replace(r->name(),r);
}
KviServer * s = new KviServer();
@@ -371,7 +309,7 @@ search_finished:
s->setIPv6(d->bIPv6);
s->setUseSSL(d->bSSL);
r->insertServer(s);
- m_szCurrentNetwork = r->network()->name();
+ m_szCurrentNetwork = r->name();
r->setCurrentServer(s);
return true;
@@ -475,11 +413,11 @@ void KviServerDataBase::importFromMircIni(const QString & filename, const QStrin
parseMircServerRecord(entry,szNet,
szDescription,szHost,szPort,bSsl,uPort);
- KviServerDataBaseRecord * r = findRecord(szNet);
+ KviNetwork * r = findNetwork(szNet);
if(!r) {
- KviNetwork * n = new KviNetwork(szNet);
- r = addNetwork(n);
+ r = new KviNetwork(szNet);
+ addNetwork(r);
}
KviServer *s = new KviServer();
@@ -513,31 +451,31 @@ void KviServerDataBase::load(const QString & filename)
{
if(it.current()->count() > 0)
{
- KviNetwork * n = new KviNetwork(it.currentKey());
- KviServerDataBaseRecord * r = addNetwork(n);
+ KviNetwork * pNewNet = new KviNetwork(it.currentKey());
+ addNetwork(pNewNet);
cfg.setGroup(it.currentKey());
- n->m_szEncoding = cfg.readQStringEntry("Encoding");
- n->m_szTextEncoding = cfg.readQStringEntry("TextEncoding");
- n->m_szDescription = cfg.readQStringEntry("Description");
- n->m_szNickName = cfg.readQStringEntry("NickName");
- n->m_szRealName = cfg.readQStringEntry("RealName");
- n->m_szUserName = cfg.readQStringEntry("UserName");
- n->m_szOnConnectCommand = cfg.readQStringEntry("OnConnectCommand");
- n->m_szOnLoginCommand = cfg.readQStringEntry("OnLoginCommand");
- n->m_pNickServRuleSet = KviNickServRuleSet::load(&cfg,QString::null);
- n->m_bAutoConnect = cfg.readBoolEntry("AutoConnect",false);
- n->m_szUserIdentityId = cfg.readQStringEntry("UserIdentityId");
- if(n->m_bAutoConnect)
+ pNewNet->m_szEncoding = cfg.readQStringEntry("Encoding");
+ pNewNet->m_szTextEncoding = cfg.readQStringEntry("TextEncoding");
+ pNewNet->m_szDescription = cfg.readQStringEntry("Description");
+ pNewNet->m_szNickName = cfg.readQStringEntry("NickName");
+ pNewNet->m_szRealName = cfg.readQStringEntry("RealName");
+ pNewNet->m_szUserName = cfg.readQStringEntry("UserName");
+ pNewNet->m_szOnConnectCommand = cfg.readQStringEntry("OnConnectCommand");
+ pNewNet->m_szOnLoginCommand = cfg.readQStringEntry("OnLoginCommand");
+ pNewNet->m_pNickServRuleSet = KviNickServRuleSet::load(&cfg,QString::null);
+ pNewNet->m_bAutoConnect = cfg.readBoolEntry("AutoConnect",false);
+ pNewNet->m_szUserIdentityId = cfg.readQStringEntry("UserIdentityId");
+ if(pNewNet->m_bAutoConnect)
{
if(!m_pAutoConnectOnStartupNetworks)
{
- m_pAutoConnectOnStartupNetworks = new KviPointerList<KviServerDataBaseRecord>;
+ m_pAutoConnectOnStartupNetworks = new KviPointerList<KviNetwork>;
m_pAutoConnectOnStartupNetworks->setAutoDelete(false);
}
- m_pAutoConnectOnStartupNetworks->append(r);
+ m_pAutoConnectOnStartupNetworks->append(pNewNet);
}
QStringList l = cfg.readStringListEntry("AutoJoinChannels",QStringList());
- if(l.count() > 0)n->setAutoJoinChannelList(new QStringList(l));
+ if(l.count() > 0)pNewNet->setAutoJoinChannelList(new QStringList(l));
if(cfg.readBoolEntry("Current",false))m_szCurrentNetwork = it.currentKey();
@@ -548,9 +486,9 @@ void KviServerDataBase::load(const QString & filename)
KviQString::sprintf(tmp,"%d_",i);
if(s->load(&cfg,tmp))
{
- r->m_pServerList->append(s);
+ pNewNet->m_pServerList->append(s);
KviQString::sprintf(tmp,"%d_Current",i);
- if(cfg.readBoolEntry(tmp,false))r->m_pCurrentServer = s;
+ if(cfg.readBoolEntry(tmp,false))pNewNet->m_pCurrentServer = s;
if(s->autoConnect())
{
if(!m_pAutoConnectOnStartupServers)
@@ -562,7 +500,7 @@ void KviServerDataBase::load(const QString & filename)
}
} else delete s;
}
- if(!r->m_pCurrentServer)r->m_pCurrentServer = r->m_pServerList->first();
+ if(!pNewNet->m_pCurrentServer)pNewNet->m_pCurrentServer = pNewNet->m_pServerList->first();
}
++it;
}
@@ -574,46 +512,45 @@ void KviServerDataBase::save(const QString &filename)
cfg.clear(); // clear any old entry
- KviPointerHashTableIterator<QString,KviServerDataBaseRecord> it(*m_pRecords);
+ KviPointerHashTableIterator<QString,KviNetwork> it(*m_pRecords);
QString tmp;
- while(KviServerDataBaseRecord * r = it.current())
+ while(KviNetwork * pNetwork = it.current())
{
- KviNetwork * n = r->network();
- cfg.setGroup(n->m_szName);
- cfg.writeEntry("NServers",r->m_pServerList->count());
- if(n->m_bAutoConnect)
+ cfg.setGroup(pNetwork->name());
+ cfg.writeEntry("NServers",pNetwork->m_pServerList->count());
+ if(pNetwork->m_bAutoConnect)
cfg.writeEntry("AutoConnect",true);
- if(!n->m_szEncoding.isEmpty())
- cfg.writeEntry("Encoding",n->m_szEncoding);
- if(!n->m_szTextEncoding.isEmpty())
- cfg.writeEntry("TextEncoding",n->m_szTextEncoding);
- if(!n->m_szDescription.isEmpty())
- cfg.writeEntry("Description",n->m_szDescription);
- if(!n->m_szNickName.isEmpty())
- cfg.writeEntry("NickName",n->m_szNickName);
- if(!n->m_szRealName.isEmpty())
- cfg.writeEntry("RealName",n->m_szRealName);
- if(!n->m_szUserName.isEmpty())
- cfg.writeEntry("UserName",n->m_szUserName);
- if(!n->m_szOnConnectCommand.isEmpty())
- cfg.writeEntry("OnConnectCommand",n->m_szOnConnectCommand);
- if(!n->m_szOnLoginCommand.isEmpty())
- cfg.writeEntry("OnLoginCommand",n->m_szOnLoginCommand);
- if(n->m_pNickServRuleSet)n->m_pNickServRuleSet->save(&cfg,QString::null);
- if(n->autoJoinChannelList())
- cfg.writeEntry("AutoJoinChannels",*(n->autoJoinChannelList()));
- if(n->m_szName == m_szCurrentNetwork)cfg.writeEntry("Current",true);
- if(!n->m_szUserIdentityId.isEmpty())
- cfg.writeEntry("UserIdentityId",n->m_szUserIdentityId);
+ if(!pNetwork->m_szEncoding.isEmpty())
+ cfg.writeEntry("Encoding",pNetwork->m_szEncoding);
+ if(!pNetwork->m_szTextEncoding.isEmpty())
+ cfg.writeEntry("TextEncoding",pNetwork->m_szTextEncoding);
+ if(!pNetwork->m_szDescription.isEmpty())
+ cfg.writeEntry("Description",pNetwork->m_szDescription);
+ if(!pNetwork->m_szNickName.isEmpty())
+ cfg.writeEntry("NickName",pNetwork->m_szNickName);
+ if(!pNetwork->m_szRealName.isEmpty())
+ cfg.writeEntry("RealName",pNetwork->m_szRealName);
+ if(!pNetwork->m_szUserName.isEmpty())
+ cfg.writeEntry("UserName",pNetwork->m_szUserName);
+ if(!pNetwork->m_szOnConnectCommand.isEmpty())
+ cfg.writeEntry("OnConnectCommand",pNetwork->m_szOnConnectCommand);
+ if(!pNetwork->m_szOnLoginCommand.isEmpty())
+ cfg.writeEntry("OnLoginCommand",pNetwork->m_szOnLoginCommand);
+ if(pNetwork->m_pNickServRuleSet)pNetwork->m_pNickServRuleSet->save(&cfg,QString::null);
+ if(pNetwork->autoJoinChannelList())
+ cfg.writeEntry("AutoJoinChannels",*(pNetwork->autoJoinChannelList()));
+ if(pNetwork->m_szName == m_szCurrentNetwork)cfg.writeEntry("Current",true);
+ if(!pNetwork->m_szUserIdentityId.isEmpty())
+ cfg.writeEntry("UserIdentityId",pNetwork->m_szUserIdentityId);
int i=0;
- for(KviServer *s = r->m_pServerList->first();s;s = r->m_pServerList->next())
+ for(KviServer *s = pNetwork->m_pServerList->first();s;s = pNetwork->m_pServerList->next())
{
KviQString::sprintf(tmp,"%d_",i);
s->save(&cfg,tmp);
- if(s == r->m_pCurrentServer)
+ if(s == pNetwork->m_pCurrentServer)
{
KviQString::sprintf(tmp,"%d_Current",i);
cfg.writeEntry(tmp,true);
diff --git a/src/kvilib/irc/kvi_ircserverdb.h b/src/kvilib/irc/kvi_ircserverdb.h
index 643799cce..448703318 100644
--- a/src/kvilib/irc/kvi_ircserverdb.h
+++ b/src/kvilib/irc/kvi_ircserverdb.h
@@ -27,6 +27,7 @@
#include "kvi_settings.h"
#include "kvi_qstring.h"
#include "kvi_ircserver.h"
+#include "kvi_network.h"
#include "kvi_pointerhashtable.h"
typedef struct _KviServerDefinition
@@ -44,39 +45,13 @@ typedef struct _KviServerDefinition
} KviServerDefinition;
-
-class KVILIB_API KviServerDataBaseRecord
-{
- friend class KviServerDataBase;
-public:
- KviServerDataBaseRecord(KviNetwork * n);
- ~KviServerDataBaseRecord();
-protected:
- KviNetwork * m_pNetwork;
- KviPointerList<KviServer> * m_pServerList;
-
- KviServer * m_pCurrentServer;
-public:
- KviNetwork * network(){ return m_pNetwork; };
-
- KviPointerList<KviServer> * serverList(){ return m_pServerList; };
- KviServer * currentServer();
- void insertServer(KviServer *srv);
-
- KviServer * findServer(const QString& szHostname);
- KviServer * findServer(const KviServer * pServer);
-
- void setCurrentServer(KviServer *srv);
-};
-
-
class KVILIB_API KviServerDataBase
{
public:
KviServerDataBase();
~KviServerDataBase();
private:
- KviPointerHashTable<QString,KviServerDataBaseRecord> * m_pRecords;
+ KviPointerHashTable<QString,KviNetwork> * m_pRecords;
QString m_szCurrentNetwork;
// This list is computed when the data are loaded from disk
// during the startup and is used by KviApp to
@@ -86,34 +61,31 @@ private:
// because it contains shallow pointers to the servers
// really contained in the server/network list
// and it is never updated later
- KviPointerList<KviServer> * m_pAutoConnectOnStartupServers;
- KviPointerList<KviServerDataBaseRecord> * m_pAutoConnectOnStartupNetworks;
+ KviPointerList<KviServer> * m_pAutoConnectOnStartupServers;
+ KviPointerList<KviNetwork> * m_pAutoConnectOnStartupNetworks;
public:
void clear();
- KviPointerHashTable<QString,KviServerDataBaseRecord> * recordDict(){ return m_pRecords; };
+ inline KviPointerHashTable<QString,KviNetwork> * recordDict(){ return m_pRecords; };
- KviPointerList<KviServer> * autoConnectOnStartupServers(){ return m_pAutoConnectOnStartupServers; };
- KviPointerList<KviServerDataBaseRecord> * autoConnectOnStartupNetworks(){ return m_pAutoConnectOnStartupNetworks; };
+ inline KviPointerList<KviServer> * autoConnectOnStartupServers(){ return m_pAutoConnectOnStartupServers; };
+ inline KviPointerList<KviNetwork> * autoConnectOnStartupNetworks(){ return m_pAutoConnectOnStartupNetworks; };
void clearAutoConnectOnStartupServers();
void clearAutoConnectOnStartupNetworks();
- void setCurrentNetwork(const QString &szNetName){ m_szCurrentNetwork = szNetName; };
- const QString & currentNetworkName(){ return m_szCurrentNetwork; };
-
- KviServerDataBaseRecord * currentNetwork();
- KviServerDataBaseRecord * findRecord(const QString &szNetName);
+ inline void setCurrentNetwork(const QString &szNetName){ m_szCurrentNetwork = szNetName; };
+ inline const QString & currentNetworkName(){ return m_szCurrentNetwork; };
+ KviNetwork * currentNetwork();
+ void addNetwork(KviNetwork * n);
KviNetwork * findNetwork(const QString &name);
void load(const QString & filename);
void save(const QString & filename);
void importFromMircIni(const QString & filename, const QString & szMircIni, QStringList& recentServers);
- KviServerDataBaseRecord * addNetwork(KviNetwork * n);
-
bool makeCurrentServer(KviServerDefinition * d,QString &szError);
- bool makeCurrentBestServerInNetwork(const QString &szNetName,KviServerDataBaseRecord * d,QString &szError);
+ bool makeCurrentBestServerInNetwork(const QString &szNetName,KviNetwork * d,QString &szError);
};
#endif //_KVI_IRCSERVERDB_H_
diff --git a/src/kvilib/irc/kvi_network.cpp b/src/kvilib/irc/kvi_network.cpp
new file mode 100644
index 000000000..df6ce7e62
--- /dev/null
+++ b/src/kvilib/irc/kvi_network.cpp
@@ -0,0 +1,114 @@
+/*
+ * kvi_network.cpp
+ *
+ * Created on: 27.08.2008
+ * Author: Alexey
+ */
+
+#include "kvi_network.h"
+#include "kvi_ircserver.h"
+#include "kvi_nickserv.h"
+#include <QStringList>
+
+KviNetwork::KviNetwork(const KviNetwork &src)
+{
+ m_pChannelList = 0;
+ m_pNickServRuleSet = 0;
+ m_pServerList = new KviPointerList<KviServer>;
+ m_pServerList->setAutoDelete(true);
+ copyFrom(src);
+}
+
+KviNetwork::KviNetwork(const QString &name)
+{
+ m_szName = name;
+ m_pChannelList = 0;
+ m_pNickServRuleSet = 0;
+ m_bAutoConnect = false;
+ m_pServerList = new KviPointerList<KviServer>;
+ m_pServerList->setAutoDelete(true);
+ m_pCurrentServer = 0;
+}
+
+KviNetwork::~KviNetwork()
+{
+ if(m_pChannelList)delete m_pChannelList;
+ if(m_pNickServRuleSet)delete m_pNickServRuleSet;
+ delete m_pServerList;
+}
+
+void KviNetwork::setAutoJoinChannelList(QStringList * pNewChannelList)
+{
+ if(m_pChannelList)delete m_pChannelList;
+ m_pChannelList = pNewChannelList;
+}
+
+void KviNetwork::setNickServRuleSet(KviNickServRuleSet * s)
+{
+ if(m_pNickServRuleSet)delete m_pNickServRuleSet;
+ m_pNickServRuleSet = s;
+}
+
+void KviNetwork::copyFrom(const KviNetwork &src)
+{
+ m_szName = src.m_szName;
+ m_szEncoding = src.m_szEncoding;
+ m_szTextEncoding = src.m_szTextEncoding;
+ m_szDescription = src.m_szDescription;
+ m_szNickName = src.m_szNickName;
+ m_szRealName = src.m_szRealName;
+ m_szUserName = src.m_szUserName;
+ m_bAutoConnect = src.m_bAutoConnect;
+ m_szUserIdentityId = src.m_szUserIdentityId;
+ m_szOnConnectCommand = src.m_szOnConnectCommand;
+ m_szOnLoginCommand = src.m_szOnLoginCommand;
+ if(m_pChannelList)delete m_pChannelList;
+ if(src.m_pChannelList)m_pChannelList = new QStringList(*(src.m_pChannelList));
+ else m_pChannelList = 0;
+ if(m_pNickServRuleSet)delete m_pNickServRuleSet;
+ if(src.m_pNickServRuleSet)m_pNickServRuleSet = new KviNickServRuleSet(*(src.m_pNickServRuleSet));
+ else m_pNickServRuleSet = 0;
+ for (KviServer *s = src.m_pServerList->first(); s; s = src.m_pServerList->next())
+ {
+ m_pServerList->append(new KviServer(*s));
+ }
+}
+
+void KviNetwork::insertServer(KviServer *srv)
+{
+ m_pServerList->append(srv);
+}
+
+KviServer * KviNetwork::findServer(const QString & szHostname)
+{
+ for (KviServer *s = m_pServerList->first(); s; s = m_pServerList->next())
+ {
+ if (KviQString::equalCI(s->m_szHostname, szHostname))
+ return s;
+ }
+ return 0;
+}
+
+KviServer * KviNetwork::findServer(const KviServer * pServer)
+{
+ for (KviServer *s = m_pServerList->first(); s; s = m_pServerList->next())
+ {
+ if (KviQString::equalCI(s->m_szHostname, pServer->m_szHostname)
+ && (s->m_uPort == pServer->m_uPort) && (s->useSSL()
+ == pServer->useSSL()) && (s->isIPv6() == pServer->isIPv6()))
+ return s;
+ }
+ return 0;
+}
+
+void KviNetwork::setCurrentServer(KviServer *srv)
+{
+ if(m_pServerList->findRef(srv) != -1)m_pCurrentServer = srv;
+}
+
+KviServer * KviNetwork::currentServer()
+{
+ if(m_pCurrentServer)return m_pCurrentServer;
+ m_pCurrentServer = m_pServerList->first();
+ return m_pCurrentServer;
+}
diff --git a/src/kvilib/irc/kvi_network.h b/src/kvilib/irc/kvi_network.h
new file mode 100644
index 000000000..c8e4956a3
--- /dev/null
+++ b/src/kvilib/irc/kvi_network.h
@@ -0,0 +1,88 @@
+/*
+ * kvi_network.h
+ *
+ * Created on: 27.08.2008
+ * Author: Alexey
+ */
+
+#ifndef KVI_NETWORK_H_
+#define KVI_NETWORK_H_
+
+#include "kvi_settings.h"
+#include "kvi_heapobject.h"
+#include "kvi_pointerlist.h"
+#include <QString>
+
+class KviNickServRuleSet;
+class KviServer;
+class QStringList;
+
+class KVILIB_API KviNetwork : public KviHeapObject
+{
+ friend class KviServerDataBase;
+public:
+ KviNetwork(const KviNetwork &src);
+ KviNetwork(const QString &name);
+ ~KviNetwork();
+protected:
+ QString m_szName;
+ QString m_szDescription;
+ QString m_szEncoding; // if empty, use system default
+ QString m_szTextEncoding; // if empty, use system default
+ QString m_szNickName; // preferred nick name
+ QString m_szUserName; // preferred user name
+ QString m_szRealName; // preferred real name
+ QString m_szOnConnectCommand; // the command to run on connect
+ QString m_szOnLoginCommand; // the command to run after login
+ QStringList * m_pChannelList; // Channels to auto join
+ KviNickServRuleSet * m_pNickServRuleSet; // set of nick serv rules
+ bool m_bAutoConnect; // autoconnect
+ QString m_szUserIdentityId; // The user identity to use for this server: if empty
+ // Then use the global primary identity
+ //moved from KviServerDataBaseRecord
+ KviPointerList<KviServer> * m_pServerList;
+ KviServer * m_pCurrentServer;
+public:
+ inline const QString & name() const { return m_szName; };
+ inline const QString & encoding() const { return m_szEncoding; };
+ inline const QString & textEncoding() const { return m_szTextEncoding; };
+ inline const QString & description() const { return m_szDescription; };
+ inline const QString & nickName() const { return m_szNickName; };
+ inline const QString & realName() const { return m_szRealName; };
+ inline const QString & userName() const { return m_szUserName; };
+ inline const QString & onLoginCommand() const { return m_szOnLoginCommand; };
+ inline const QString & onConnectCommand() const { return m_szOnConnectCommand; };
+ inline const QString & userIdentityId() const { return m_szUserIdentityId; };
+ inline bool autoConnect() const { return m_bAutoConnect; };
+ inline QStringList* autoJoinChannelList(){ return m_pChannelList; };
+ inline KviNickServRuleSet * nickServRuleSet(){ return m_pNickServRuleSet; };
+
+ void setNickServRuleSet(KviNickServRuleSet * s);
+ void copyFrom(const KviNetwork &d);
+
+ inline void setName(const QString &szName){ m_szName = szName; };
+ inline void setEncoding(const QString &szEncoding){ m_szEncoding = szEncoding; };
+ inline void setTextEncoding(const QString &szEncoding){ m_szTextEncoding = szEncoding; };
+ inline void setDescription(const QString &szDescription){ m_szDescription = szDescription; };
+ inline void setOnConnectCommand(const QString &cmd){ m_szOnConnectCommand = cmd; };
+ inline void setOnLoginCommand(const QString &cmd){ m_szOnLoginCommand = cmd; };
+ inline void setNickName(const QString &n){ m_szNickName = n; };
+ inline void setRealName(const QString &r){ m_szRealName = r; };
+ inline void setUserName(const QString &u){ m_szUserName = u; };
+
+ void setAutoJoinChannelList(QStringList * pNewChannelList);
+
+ inline void setAutoConnect(bool bAutoConnect){ m_bAutoConnect = bAutoConnect; };
+ inline void setUserIdentityId(const QString &szUserIdentityId){ m_szUserIdentityId = szUserIdentityId; };
+
+ inline KviPointerList<KviServer> * serverList(){ return m_pServerList; };
+ KviServer * currentServer();
+ void insertServer(KviServer *srv);
+
+ KviServer * findServer(const QString& szHostname);
+ KviServer * findServer(const KviServer * pServer);
+
+ void setCurrentServer(KviServer *srv);
+};
+
+#endif /* KVI_NETWORK_H_ */
diff --git a/src/kvirc/kernel/kvi_app.cpp b/src/kvirc/kernel/kvi_app.cpp
index 2ed4f3ee8..18d61d565 100644
--- a/src/kvirc/kernel/kvi_app.cpp
+++ b/src/kvirc/kernel/kvi_app.cpp
@@ -1504,13 +1504,13 @@ void KviApp::autoConnectToServers()
g_pServerDataBase->clearAutoConnectOnStartupServers();
}
- KviPointerList<KviServerDataBaseRecord> * lr = g_pServerDataBase->autoConnectOnStartupNetworks();
+ KviPointerList<KviNetwork> * lr = g_pServerDataBase->autoConnectOnStartupNetworks();
if(lr)
{
- for(KviServerDataBaseRecord * r = lr->first();r;r = lr->next())
+ for(KviNetwork * r = lr->first();r;r = lr->next())
{
QString szCommandx = "server -u \"net:";
- szCommandx += r->network()->name();
+ szCommandx += r->name();
szCommandx += "\"";
KviKvsScript::run(szCommandx,activeConsole());
}
diff --git a/src/kvirc/kernel/kvi_ircconnectiontarget.cpp b/src/kvirc/kernel/kvi_ircconnectiontarget.cpp
index af5299e18..a71e9a9a2 100644
--- a/src/kvirc/kernel/kvi_ircconnectiontarget.cpp
+++ b/src/kvirc/kernel/kvi_ircconnectiontarget.cpp
@@ -26,6 +26,7 @@
#include "kvi_ircconnectiontarget.h"
#include "kvi_ircserver.h"
+#include "kvi_network.h"
#include "kvi_proxydb.h"
KviIrcConnectionTarget::KviIrcConnectionTarget(const KviNetwork * pNetwork,
diff --git a/src/kvirc/kernel/kvi_irccontext.cpp b/src/kvirc/kernel/kvi_irccontext.cpp
index 333fe7b47..5d8125139 100644
--- a/src/kvirc/kernel/kvi_irccontext.cpp
+++ b/src/kvirc/kernel/kvi_irccontext.cpp
@@ -466,13 +466,8 @@ void KviIrcContext::connectToCurrentServer()
} // else we just connect to the globally selected irc server in the options dialog
}
- KviServerDataBaseRecord * rec = g_pServerDataBase->currentNetwork();
-
- KviNetwork * net;
- KviServer * srv;
-
- net = rec ? rec->network() : 0;
- srv = net ? rec->currentServer() : 0;
+ KviNetwork * net = g_pServerDataBase->currentNetwork();;
+ KviServer * srv = net ? net->currentServer() : 0;
KviProxy * prx = 0;
diff --git a/src/kvirc/kvs/kvi_kvs_script.cpp b/src/kvirc/kvs/kvi_kvs_script.cpp
index 8e4a21483..b9d2858b4 100644
--- a/src/kvirc/kvs/kvi_kvs_script.cpp
+++ b/src/kvirc/kvs/kvi_kvs_script.cpp
@@ -200,7 +200,7 @@ int KviKvsScript::run(KviWindow * pWnd,KviKvsVariantList * pParams,KviKvsVariant
//debug("USING A CACHED TREE FOR SCRIPT %s",name().latin1());
//debug("TREE CACHE STATS: HITS=%d, MISSES=%d",g_iTreeCacheHits,g_iTreeCacheMisses);
}
-
+
return execute(pWnd,pParams,pRetVal,iRunFlags,pExtData);
}
@@ -230,7 +230,7 @@ int KviKvsScript::run(KviKvsRunTimeContext * pContext,int iRunFlags)
} else {
iRet = executeInternal(pContext);
}
-
+
return iRet;
}
@@ -260,10 +260,10 @@ bool KviKvsScript::parse(KviWindow * pOutput,int iRunFlags)
KviKvsParser p(this,(iRunFlags & Quiet) ? 0 : pOutput);
// parse never blocks
-
+
int iFlags = iRunFlags & AssumeLocals ? KviKvsParser::AssumeLocals : 0;
if(iRunFlags & Pedantic)iFlags |= KviKvsParser::Pedantic;
-
+
switch(m_pData->m_eType)
{
case Expression:
@@ -290,7 +290,7 @@ int KviKvsScript::executeInternal(KviKvsRunTimeContext * pContext)
{
// lock this script
m_pData->m_uLock++;
-
+
int iRunStatus = Success;
if(!m_pData->m_pTree->execute(pContext))
@@ -302,7 +302,7 @@ int KviKvsScript::executeInternal(KviKvsRunTimeContext * pContext)
iRunStatus |= HaltEncountered;
}
}
-
+
// we can't block any longer: unlock
m_pData->m_uLock--;
@@ -337,12 +337,12 @@ int KviKvsScript::execute(KviWindow * pWnd,KviKvsVariantList * pParams,KviKvsVar
}
KviKvsRunTimeContext ctx(this,pWnd,pParams,pRetVal,pExtData);
-
+
if(iRunFlags & Quiet)
ctx.disableReporting();
-
+
int iRunStatus = executeInternal(&ctx);
-
+
// don't forget to delete the params
if(bDeleteParams)delete pParams;
if(bDeleteRetVal)delete pRetVal;
diff --git a/src/kvirc/kvs/kvi_kvs_script.h b/src/kvirc/kvs/kvi_kvs_script.h
index d2befedcb..c18cc386a 100644
--- a/src/kvirc/kvs/kvi_kvs_script.h
+++ b/src/kvirc/kvs/kvi_kvs_script.h
@@ -84,7 +84,7 @@ public:
const QString & code() const;
bool locked() const;
- void setName(const QString &szName);
+ void setName(const QString &szName);
enum RunFlags {
// do not delete the eventual parameters passed (only execute() and run())
@@ -121,7 +121,7 @@ public:
// returns a combination of RunStatus flags (nonzero on no error)
// does NOT take params ownership
static int run(const QString &szCode,KviWindow * pWindow,KviKvsVariantList * pParams = 0,KviKvsVariant * pRetVal = 0);
-
+
// static helper for quick evaluating parameters
// returns a combination of RunStatus flags (nonzero on no error)
// does NOT take params ownership
diff --git a/src/kvirc/sparser/kvi_sp_literal.cpp b/src/kvirc/sparser/kvi_sp_literal.cpp
index fe7827d33..b25652b66 100644
--- a/src/kvirc/sparser/kvi_sp_literal.cpp
+++ b/src/kvirc/sparser/kvi_sp_literal.cpp
@@ -58,6 +58,7 @@
#include "kvi_ircserver.h"
#include "kvi_kvs_eventtriggers.h"
#include "kvi_qcstring.h"
+#include "kvi_network.h"
#include "kvi_settings.h"
diff --git a/src/modules/options/optw_servers.cpp b/src/modules/options/optw_servers.cpp
index 402adb977..e3474dc8d 100644
--- a/src/modules/options/optw_servers.cpp
+++ b/src/modules/options/optw_servers.cpp
@@ -1292,13 +1292,13 @@ void KviServerOptionsWidget::fillServerList()
KviServerOptionsTreeWidgetItem * srv;
KviServerOptionsTreeWidgetItem * cur = 0;
- KviPointerHashTableIterator<QString,KviServerDataBaseRecord> it(*(g_pServerDataBase->recordDict()));
+ KviPointerHashTableIterator<QString,KviNetwork> it(*(g_pServerDataBase->recordDict()));
- while(KviServerDataBaseRecord * r = it.current())
+ while(KviNetwork * r = it.current())
{
net = new KviServerOptionsTreeWidgetItem(m_pTreeWidget,*(g_pIconManager->getSmallIcon(KVI_SMALLICON_WORLD)),r->network());
KviPointerList<KviServer> * sl = r->serverList();
- bool bCurrent = r->network()->name() == g_pServerDataBase->currentNetworkName().toUtf8().data();
+ bool bCurrent = r->name() == g_pServerDataBase->currentNetworkName().toUtf8().data();
net->setExpanded(bCurrent);
for(KviServer * s = sl->first();s;s = sl->next())
{
@@ -1389,16 +1389,14 @@ void KviServerOptionsWidget::commit()
{
network=(KviServerOptionsTreeWidgetItem *) m_pTreeWidget->topLevelItem(i);
QString tmp = network->m_pNetworkData->name();
- KviNetwork * net = 0;
- KviServerDataBaseRecord * r = g_pServerDataBase->findRecord(tmp);
- if(r)
+ KviNetwork * pNetwork = g_pServerDataBase->findRecord(tmp);
+ if(pNetwork)
{
- net = r->network();
- net->copyFrom(*(network->m_pNetworkData));
+ pNetwork->copyFrom(*(network->m_pNetworkData));
} else {
- net = new KviNetwork(tmp);
- net->copyFrom(*(network->m_pNetworkData));
- r = g_pServerDataBase->addNetwork(net);
+ pNetwork = new KviNetwork(tmp);
+ pNetwork->copyFrom(*(network->m_pNetworkData));
+ g_pServerDataBase->addNetwork(net);
}
if(network == m_pLastEditedItem)g_pServerDataBase->setCurrentNetwork(net->name());
@@ -1414,17 +1412,17 @@ void KviServerOptionsWidget::commit()
{
if(!ch->m_pServerData->m_szHostname.isEmpty())
{
- srv = r->findServer(ch->m_pServerData);
+ srv = pNetwork->findServer(ch->m_pServerData);
if(!srv)
{
srv = new KviServer(*(ch->m_pServerData));
- r->insertServer(srv);
+ pNetwork->insertServer(srv);
} else *srv = *(ch->m_pServerData);
if(srv->id().isEmpty())srv->generateUniqueId();
if(ch == m_pLastEditedItem)
{
g_pServerDataBase->setCurrentNetwork(net->name());
- r->setCurrentServer(srv);
+ pNetwork->setCurrentServer(srv);
}
}
}
diff --git a/src/modules/serverdb/libkviserverdb.cpp b/src/modules/serverdb/libkviserverdb.cpp
index f8532b627..9cd873943 100644
--- a/src/modules/serverdb/libkviserverdb.cpp
+++ b/src/modules/serverdb/libkviserverdb.cpp
@@ -196,7 +196,7 @@ static bool serverdb_kvs_fnc_serverExists(KviKvsModuleFunctionCall * c)
return false; \
} \
\
- KviServerDataBaseRecord * pRecord = g_pServerDataBase->findRecord(szNetName); \
+ KviNetwork * pRecord = g_pServerDataBase->findNetwork(szNetName); \
if(!pRecord) \
{ \
c->error(__tr2qs_ctx("The specified network does not exist","serverdb")); \