aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGravatar Alexey Uzhva2008-08-25 17:58:13 +0000
committerGravatar Alexey Uzhva2008-08-25 17:58:13 +0000
commitc3bba6bc349c1fc6ad034788998d55742b6e63f2 (patch)
tree1607a6dea839982df6f7d1bd718e6da1ceebb199 /src
parentadded itemdelegate for topicwidget (diff)
downloadKVIrc-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.cpp53
-rw-r--r--src/kvilib/irc/kvi_ircserverdb.h23
-rw-r--r--src/kvirc/kernel/kvi_ircconnectiontargetresolver.cpp2
-rw-r--r--src/kvirc/kernel/kvi_irccontext.cpp74
-rw-r--r--src/modules/options/optw_servers.cpp2
-rw-r--r--src/modules/serverdb/libkviserverdb.cpp9
-rw-r--r--src/modules/setup/libkvisetup.cpp2
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();
}