diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/kvilib/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/kvilib/irc/kvi_ircserver.cpp | 76 | ||||
| -rw-r--r-- | src/kvilib/irc/kvi_ircserver.h | 148 | ||||
| -rw-r--r-- | src/kvilib/irc/kvi_ircserverdb.cpp | 203 | ||||
| -rw-r--r-- | src/kvilib/irc/kvi_ircserverdb.h | 52 | ||||
| -rw-r--r-- | src/kvilib/irc/kvi_network.cpp | 114 | ||||
| -rw-r--r-- | src/kvilib/irc/kvi_network.h | 88 | ||||
| -rw-r--r-- | src/kvirc/kernel/kvi_app.cpp | 6 | ||||
| -rw-r--r-- | src/kvirc/kernel/kvi_ircconnectiontarget.cpp | 1 | ||||
| -rw-r--r-- | src/kvirc/kernel/kvi_irccontext.cpp | 9 | ||||
| -rw-r--r-- | src/kvirc/kvs/kvi_kvs_script.cpp | 18 | ||||
| -rw-r--r-- | src/kvirc/kvs/kvi_kvs_script.h | 4 | ||||
| -rw-r--r-- | src/kvirc/sparser/kvi_sp_literal.cpp | 1 | ||||
| -rw-r--r-- | src/modules/options/optw_servers.cpp | 26 | ||||
| -rw-r--r-- | src/modules/serverdb/libkviserverdb.cpp | 2 |
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")); \ |
