diff options
| author | 2008-08-25 17:58:13 +0000 | |
|---|---|---|
| committer | 2008-08-25 17:58:13 +0000 | |
| commit | c3bba6bc349c1fc6ad034788998d55742b6e63f2 (patch) | |
| tree | 1607a6dea839982df6f7d1bd718e6da1ceebb199 /src | |
| parent | added itemdelegate for topicwidget (diff) | |
| download | KVIrc-c3bba6bc349c1fc6ad034788998d55742b6e63f2.tar.gz KVIrc-c3bba6bc349c1fc6ad034788998d55742b6e63f2.tar.bz2 KVIrc-c3bba6bc349c1fc6ad034788998d55742b6e63f2.zip | |
small changes
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@2294 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src')
| -rw-r--r-- | src/kvilib/irc/kvi_ircserverdb.cpp | 53 | ||||
| -rw-r--r-- | src/kvilib/irc/kvi_ircserverdb.h | 23 | ||||
| -rw-r--r-- | src/kvirc/kernel/kvi_ircconnectiontargetresolver.cpp | 2 | ||||
| -rw-r--r-- | src/kvirc/kernel/kvi_irccontext.cpp | 74 | ||||
| -rw-r--r-- | src/modules/options/optw_servers.cpp | 2 | ||||
| -rw-r--r-- | src/modules/serverdb/libkviserverdb.cpp | 9 | ||||
| -rw-r--r-- | src/modules/setup/libkvisetup.cpp | 2 |
7 files changed, 80 insertions, 85 deletions
diff --git a/src/kvilib/irc/kvi_ircserverdb.cpp b/src/kvilib/irc/kvi_ircserverdb.cpp index 2f9b5fbda..6e497f690 100644 --- a/src/kvilib/irc/kvi_ircserverdb.cpp +++ b/src/kvilib/irc/kvi_ircserverdb.cpp @@ -54,19 +54,25 @@ void KviServerDataBaseRecord::insertServer(KviServer *srv) m_pServerList->append(srv); } -KviServer * KviServerDataBaseRecord::findServer(const KviServer * pServer, bool bName) +KviServer * KviServerDataBaseRecord::findServer(const QString& szHostname) { - for(KviServer *s=m_pServerList->first();s;s=m_pServerList->next()) + for (KviServer *s = m_pServerList->first(); s; s = m_pServerList->next()) { - if(bName) - { - if(KviQString::equalCI(s->m_szHostname,pServer->m_szHostname)) return s; - } else { - 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; - } + + if (KviQString::equalCI(s->m_szHostname, pServer->m_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; } @@ -119,7 +125,7 @@ void KviServerDataBase::clear() m_szCurrentNetwork = ""; } -KviServerDataBaseRecord * KviServerDataBase::insertNetwork(KviNetwork *n) +KviServerDataBaseRecord * KviServerDataBase::addNetwork(KviNetwork *n) { KviServerDataBaseRecord * r = new KviServerDataBaseRecord(n); m_pRecords->replace(n->name(),r); @@ -139,7 +145,7 @@ KviNetwork * KviServerDataBase::findNetwork(const QString &szName) return r->network(); } -KviServerDataBaseRecord * KviServerDataBase::currentRecord() +KviServerDataBaseRecord * KviServerDataBase::currentNetwork() { KviServerDataBaseRecord * r = 0; if(!m_szCurrentNetwork.isEmpty())r = m_pRecords->find(m_szCurrentNetwork); @@ -152,21 +158,6 @@ KviServerDataBaseRecord * KviServerDataBase::currentRecord() return r; } -void KviServerDataBase::updateServerIp(KviServer * pServer,const QString & ip) -{ - KviPointerHashTableIterator<QString,KviServerDataBaseRecord> it(*m_pRecords); - while(KviServerDataBaseRecord * r = it.current()) - { - KviServer * srv = r->findServer(pServer); - if(srv) - { - srv->m_szIp = ip; - return; - } - ++it; - } -} - bool KviServerDataBase::makeCurrentBestServerInNetwork(const QString &szNetName,KviServerDataBaseRecord * r,QString &szError) { m_szCurrentNetwork = szNetName; @@ -421,7 +412,7 @@ QString& szDescription,QString& szHost,QString& szPort,bool& bSsl,kvi_u32_t& uPo } } -void KviServerDataBase::loadFromMircIni(const QString & filename, const QString & szMircIni, QStringList& recentServers) +void KviServerDataBase::importFromMircIni(const QString & filename, const QString & szMircIni, QStringList& recentServers) { clear(); recentServers.clear(); @@ -489,7 +480,7 @@ void KviServerDataBase::loadFromMircIni(const QString & filename, const QString if(!r) { KviNetwork * n = new KviNetwork(szNet); - r = insertNetwork(n); + r = addNetwork(n); } KviServer *s = new KviServer(); @@ -524,7 +515,7 @@ void KviServerDataBase::load(const QString & filename) if(it.current()->count() > 0) { KviNetwork * n = new KviNetwork(it.currentKey()); - KviServerDataBaseRecord * r = insertNetwork(n); + KviServerDataBaseRecord * r = addNetwork(n); cfg.setGroup(it.currentKey()); n->m_szEncoding = cfg.readQStringEntry("Encoding"); n->m_szTextEncoding = cfg.readQStringEntry("TextEncoding"); diff --git a/src/kvilib/irc/kvi_ircserverdb.h b/src/kvilib/irc/kvi_ircserverdb.h index e5701ec58..643799cce 100644 --- a/src/kvilib/irc/kvi_ircserverdb.h +++ b/src/kvilib/irc/kvi_ircserverdb.h @@ -58,10 +58,14 @@ protected: KviServer * m_pCurrentServer; public: KviNetwork * network(){ return m_pNetwork; }; + KviPointerList<KviServer> * serverList(){ return m_pServerList; }; KviServer * currentServer(); - void insertServer(KviServer *srv); - KviServer * findServer(const KviServer * pServer, bool bName=0); + void insertServer(KviServer *srv); + + KviServer * findServer(const QString& szHostname); + KviServer * findServer(const KviServer * pServer); + void setCurrentServer(KviServer *srv); }; @@ -87,20 +91,27 @@ private: public: void clear(); KviPointerHashTable<QString,KviServerDataBaseRecord> * recordDict(){ return m_pRecords; }; + KviPointerList<KviServer> * autoConnectOnStartupServers(){ return m_pAutoConnectOnStartupServers; }; KviPointerList<KviServerDataBaseRecord> * autoConnectOnStartupNetworks(){ return m_pAutoConnectOnStartupNetworks; }; + void clearAutoConnectOnStartupServers(); void clearAutoConnectOnStartupNetworks(); + void setCurrentNetwork(const QString &szNetName){ m_szCurrentNetwork = szNetName; }; const QString & currentNetworkName(){ return m_szCurrentNetwork; }; - KviServerDataBaseRecord * currentRecord(); + + KviServerDataBaseRecord * currentNetwork(); KviServerDataBaseRecord * findRecord(const QString &szNetName); + KviNetwork * findNetwork(const QString &name); - void loadFromMircIni(const QString & filename, const QString & szMircIni, QStringList& recentServers); + void load(const QString & filename); void save(const QString & filename); - KviServerDataBaseRecord * insertNetwork(KviNetwork * n); - void updateServerIp(KviServer * pServer,const QString &ip); + 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); }; diff --git a/src/kvirc/kernel/kvi_ircconnectiontargetresolver.cpp b/src/kvirc/kernel/kvi_ircconnectiontargetresolver.cpp index 0e02b6b17..65b846026 100644 --- a/src/kvirc/kernel/kvi_ircconnectiontargetresolver.cpp +++ b/src/kvirc/kernel/kvi_ircconnectiontargetresolver.cpp @@ -417,7 +417,7 @@ void KviIrcConnectionTargetResolver::serverLookupTerminated(KviDns *) m_pConsole->output(KVI_OUT_SYSTEMMESSAGE, __tr2qs("Server hostname resolved to %Q"), &szIpAddress); - g_pServerDataBase->updateServerIp(m_pTarget->server(),szIpAddress); + m_pTarget->server()->setIp(szIpAddress); QString szFirstHostname = m_pServerDns->firstHostname(); diff --git a/src/kvirc/kernel/kvi_irccontext.cpp b/src/kvirc/kernel/kvi_irccontext.cpp index 8b65739bc..333fe7b47 100644 --- a/src/kvirc/kernel/kvi_irccontext.cpp +++ b/src/kvirc/kernel/kvi_irccontext.cpp @@ -396,16 +396,12 @@ void KviIrcContext::connectToCurrentServer() m_pConsole->outputNoFmt(KVI_OUT_SYSTEMMESSAGE," "); // spacer - if(!m_pAsynchronousConnectionData) + // No connection target specified. + // If we have a saved target, reuse it + if(!m_pAsynchronousConnectionData && m_pSavedAsynchronousConnectionData) { - // No connection target specified. - // If we have a saved target, reuse it - - if(m_pSavedAsynchronousConnectionData) - { m_pAsynchronousConnectionData = m_pSavedAsynchronousConnectionData; m_pSavedAsynchronousConnectionData = 0; - } } if(m_pAsynchronousConnectionData) @@ -414,39 +410,39 @@ void KviIrcContext::connectToCurrentServer() if(m_pAsynchronousConnectionData->szServer.isEmpty()) { // an empty server might mean "reuse the last server in context" - if(m_pAsynchronousConnectionData->bUseLastServerInContext) + if( + m_pAsynchronousConnectionData->bUseLastServerInContext && + m_pSavedAsynchronousConnectionData + ) { - if(m_pSavedAsynchronousConnectionData) - { - // reuse the saved connection data - // the server for sure - m_pAsynchronousConnectionData->szServer = m_pSavedAsynchronousConnectionData->szServer; - m_pAsynchronousConnectionData->szServerId = m_pSavedAsynchronousConnectionData->szServerId; - m_pAsynchronousConnectionData->uPort = m_pSavedAsynchronousConnectionData->uPort; - m_pAsynchronousConnectionData->bPortIsOk = true; - m_pAsynchronousConnectionData->bUseIPv6 = m_pSavedAsynchronousConnectionData->bUseIPv6; - m_pAsynchronousConnectionData->bUseSSL = m_pSavedAsynchronousConnectionData->bUseSSL; - m_pAsynchronousConnectionData->m_pReconnectInfo = m_pSavedAsynchronousConnectionData->m_pReconnectInfo; - // and the other info, only if not overridden by the user - if(m_pAsynchronousConnectionData->szBindAddress.isEmpty()) - m_pAsynchronousConnectionData->szBindAddress = m_pSavedAsynchronousConnectionData->szBindAddress; - if(m_pAsynchronousConnectionData->szCommandToExecAfterConnect.isEmpty()) - m_pAsynchronousConnectionData->szCommandToExecAfterConnect = m_pSavedAsynchronousConnectionData->szCommandToExecAfterConnect; - if(m_pAsynchronousConnectionData->szLinkFilter.isEmpty()) - m_pAsynchronousConnectionData->szLinkFilter = m_pSavedAsynchronousConnectionData->szLinkFilter; - if(m_pAsynchronousConnectionData->szPass.isEmpty()) - m_pAsynchronousConnectionData->szPass = m_pSavedAsynchronousConnectionData->szPass; - if(m_pAsynchronousConnectionData->szNick.isEmpty()) - m_pAsynchronousConnectionData->szNick = m_pSavedAsynchronousConnectionData->szNick; - if(m_pAsynchronousConnectionData->szInitUMode.isEmpty()) - m_pAsynchronousConnectionData->szInitUMode = m_pSavedAsynchronousConnectionData->szInitUMode; - } else - m_pConsole->outputNoFmt(KVI_OUT_SYSTEMWARNING,__tr2qs("This is the first connection in this IRC context: using the global server setting")); - } // else it just means "do connect" to the globally selected irc server in the options dialog - } + // reuse the saved connection data + // the server for sure + m_pAsynchronousConnectionData->szServer = m_pSavedAsynchronousConnectionData->szServer; + m_pAsynchronousConnectionData->szServerId = m_pSavedAsynchronousConnectionData->szServerId; + m_pAsynchronousConnectionData->uPort = m_pSavedAsynchronousConnectionData->uPort; + m_pAsynchronousConnectionData->bPortIsOk = true; + m_pAsynchronousConnectionData->bUseIPv6 = m_pSavedAsynchronousConnectionData->bUseIPv6; + m_pAsynchronousConnectionData->bUseSSL = m_pSavedAsynchronousConnectionData->bUseSSL; + m_pAsynchronousConnectionData->m_pReconnectInfo = m_pSavedAsynchronousConnectionData->m_pReconnectInfo; - if(!(m_pAsynchronousConnectionData->szServer.isEmpty())) - { + // and the other info, only if not overridden by the user + if(m_pAsynchronousConnectionData->szBindAddress.isEmpty()) + m_pAsynchronousConnectionData->szBindAddress = m_pSavedAsynchronousConnectionData->szBindAddress; + if(m_pAsynchronousConnectionData->szCommandToExecAfterConnect.isEmpty()) + m_pAsynchronousConnectionData->szCommandToExecAfterConnect = m_pSavedAsynchronousConnectionData->szCommandToExecAfterConnect; + if(m_pAsynchronousConnectionData->szLinkFilter.isEmpty()) + m_pAsynchronousConnectionData->szLinkFilter = m_pSavedAsynchronousConnectionData->szLinkFilter; + if(m_pAsynchronousConnectionData->szPass.isEmpty()) + m_pAsynchronousConnectionData->szPass = m_pSavedAsynchronousConnectionData->szPass; + if(m_pAsynchronousConnectionData->szNick.isEmpty()) + m_pAsynchronousConnectionData->szNick = m_pSavedAsynchronousConnectionData->szNick; + if(m_pAsynchronousConnectionData->szInitUMode.isEmpty()) + m_pAsynchronousConnectionData->szInitUMode = m_pSavedAsynchronousConnectionData->szInitUMode; + } else { + m_pConsole->outputNoFmt(KVI_OUT_SYSTEMWARNING,__tr2qs("This is the first connection in this IRC context: using the global server setting")); + } + } else { + // !m_pAsynchronousConnectionData->szServer.isEmpty() // ok , have a server to look for in the db // FIXME: this is a bit ugly... could it be managed in some completly different and nicer way ? KviServerDefinition d; @@ -470,7 +466,7 @@ void KviIrcContext::connectToCurrentServer() } // else we just connect to the globally selected irc server in the options dialog } - KviServerDataBaseRecord * rec = g_pServerDataBase->currentRecord(); + KviServerDataBaseRecord * rec = g_pServerDataBase->currentNetwork(); KviNetwork * net; KviServer * srv; diff --git a/src/modules/options/optw_servers.cpp b/src/modules/options/optw_servers.cpp index 88da148a9..402adb977 100644 --- a/src/modules/options/optw_servers.cpp +++ b/src/modules/options/optw_servers.cpp @@ -1398,7 +1398,7 @@ void KviServerOptionsWidget::commit() } else { net = new KviNetwork(tmp); net->copyFrom(*(network->m_pNetworkData)); - r = g_pServerDataBase->insertNetwork(net); + r = g_pServerDataBase->addNetwork(net); } if(network == m_pLastEditedItem)g_pServerDataBase->setCurrentNetwork(net->name()); diff --git a/src/modules/serverdb/libkviserverdb.cpp b/src/modules/serverdb/libkviserverdb.cpp index 81d31c9ef..a84559e25 100644 --- a/src/modules/serverdb/libkviserverdb.cpp +++ b/src/modules/serverdb/libkviserverdb.cpp @@ -114,10 +114,7 @@ static bool serverdb_kvs_fnc_serverExists(KviKvsModuleFunctionCall * c) return true; } - KviServer * pServer = new KviServer(); - pServer->setHostName(szServer); - - KviServer * pCheckServer = pRecord->findServer(pServer,true); + KviServer * pCheckServer = pRecord->findServer(szServer); if(!pCheckServer) { c->returnValue()->setBoolean(false); @@ -128,7 +125,7 @@ static bool serverdb_kvs_fnc_serverExists(KviKvsModuleFunctionCall * c) } else { // Check through all networks KviPointerHashTableIterator<QString,KviServerDataBaseRecord> it(*(g_pServerDataBase->recordDict())); - + while(KviServerDataBaseRecord * r = it.current()) { KviPointerList<KviServer> * sl = r->serverList(); @@ -694,7 +691,7 @@ static bool serverdb_kvs_cmd_addNetwork(KviKvsModuleCommandCall * c) pNetwork = new KviNetwork(szNetName); if(c->switches()->find('a',"autoconnect")) pNetwork->setAutoConnect(true); - KviServerDataBaseRecord * pRecord = g_pServerDataBase->insertNetwork(pNetwork); + KviServerDataBaseRecord * pRecord = g_pServerDataBase->addNetwork(pNetwork); if(!pRecord) { c->error("Internal error: KVIrc author screwed up","serverdb"); diff --git a/src/modules/setup/libkvisetup.cpp b/src/modules/setup/libkvisetup.cpp index 4962b9417..f5a4d084a 100644 --- a/src/modules/setup/libkvisetup.cpp +++ b/src/modules/setup/libkvisetup.cpp @@ -106,7 +106,7 @@ KVIMODULEEXPORTFUNC void setup_finish() if(!szMircServers.isEmpty()) { - g_pServerDataBase->loadFromMircIni(szMircServers,szMircIni, + g_pServerDataBase->importFromMircIni(szMircServers,szMircIni, KVI_OPTION_STRINGLIST(KviOption_stringlistRecentServers)); g_pApp->saveIrcServerDataBase(); } |
