aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Szymon Tomasz Stefanek2008-04-28 01:31:42 +0000
committerGravatar Szymon Tomasz Stefanek2008-04-28 01:31:42 +0000
commit6eff13c1b9d284fad598bc4ad92826db29723926 (patch)
tree7797f07f76f4826010215fad47a31191155dfd04
parentfix compilation error (diff)
downloadKVIrc-6eff13c1b9d284fad598bc4ad92826db29723926.tar.gz
KVIrc-6eff13c1b9d284fad598bc4ad92826db29723926.tar.bz2
KVIrc-6eff13c1b9d284fad598bc4ad92826db29723926.zip
A huge progress in KDE4 port, kvirc and several modules now compile. Linking problems solved. Added an option to pick up a random IP address for round-robin IRC servers. Some code cleanup all around...
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@1608 17fca916-40b9-46aa-a4ea-0a15b648b75c
-rw-r--r--CMakeLists.txt15
-rw-r--r--cmake/module.rules.txt4
-rw-r--r--src/kvilib/core/kvi_pointerhashtable.h2
-rw-r--r--src/kvilib/core/kvi_qstring.h4
-rw-r--r--src/kvilib/ext/kvi_mediatype.cpp4
-rw-r--r--src/kvilib/ext/kvi_mediatype.h4
-rw-r--r--src/kvilib/ext/kvi_proxydb.cpp4
-rw-r--r--src/kvilib/ext/kvi_proxydb.h4
-rw-r--r--src/kvilib/ext/kvi_regchan.cpp4
-rw-r--r--src/kvilib/ext/kvi_regchan.h4
-rw-r--r--src/kvilib/ext/kvi_xlib.h5
-rw-r--r--src/kvirc/kernel/kvi_action.cpp3
-rw-r--r--src/kvirc/kernel/kvi_app.cpp67
-rw-r--r--src/kvirc/kernel/kvi_app.h28
-rw-r--r--src/kvirc/kernel/kvi_app_fs.cpp28
-rw-r--r--src/kvirc/kernel/kvi_iconmanager.cpp8
-rw-r--r--src/kvirc/kernel/kvi_iconmanager.h2
-rw-r--r--src/kvirc/kernel/kvi_ircconnectionserverinfo.h2
-rw-r--r--src/kvirc/kernel/kvi_ircconnectiontargetresolver.cpp38
-rw-r--r--src/kvirc/kernel/kvi_ircsocket.cpp8
-rw-r--r--src/kvirc/kernel/kvi_main.cpp4
-rw-r--r--src/kvirc/kernel/kvi_options.cpp19
-rw-r--r--src/kvirc/kernel/kvi_options.h7
-rw-r--r--src/kvirc/kernel/kvi_sslmaster.cpp4
-rw-r--r--src/kvirc/kvs/kvi_kvs_corecallbackcommands.cpp4
-rw-r--r--src/kvirc/kvs/kvi_kvs_corefunctions_mr.cpp5
-rw-r--r--src/kvirc/kvs/kvi_kvs_corefunctions_sz.cpp6
-rw-r--r--src/kvirc/kvs/kvi_kvs_coresimplecommands_af.cpp8
-rw-r--r--src/kvirc/kvs/kvi_kvs_object.cpp49
-rw-r--r--src/kvirc/kvs/kvi_kvs_treenode_specialcommanddo.cpp7
-rw-r--r--src/kvirc/kvs/kvi_kvs_treenode_specialcommandif.cpp8
-rw-r--r--src/kvirc/kvs/kvi_kvs_treenode_specialcommandwhile.cpp7
-rw-r--r--src/kvirc/module/kvi_module.cpp10
-rw-r--r--src/kvirc/module/kvi_module.h10
-rw-r--r--src/kvirc/module/kvi_moduleextension.cpp8
-rw-r--r--src/kvirc/module/kvi_moduleextension.h6
-rw-r--r--src/kvirc/module/kvi_modulemanager.cpp56
-rw-r--r--src/kvirc/module/kvi_modulemanager.h14
-rw-r--r--src/kvirc/sparser/kvi_sp_ctcp.cpp44
-rw-r--r--src/kvirc/sparser/kvi_sp_literal.cpp6
-rw-r--r--src/kvirc/sparser/kvi_sparser.h4
-rw-r--r--src/kvirc/ui/kvi_channel.cpp8
-rw-r--r--src/kvirc/ui/kvi_channel.h10
-rw-r--r--src/kvirc/ui/kvi_frame.cpp14
-rw-r--r--src/kvirc/ui/kvi_frame.h3
-rw-r--r--src/kvirc/ui/kvi_input.cpp4
-rw-r--r--src/kvirc/ui/kvi_input.h4
-rw-r--r--src/kvirc/ui/kvi_ircview.cpp4
-rw-r--r--src/kvirc/ui/kvi_ircview.h2
-rw-r--r--src/kvirc/ui/kvi_mdichild.cpp2
-rw-r--r--src/kvirc/ui/kvi_mdichild.h2
-rw-r--r--src/kvirc/ui/kvi_modeeditor.cpp54
-rw-r--r--src/kvirc/ui/kvi_modeeditor.h8
-rw-r--r--src/kvirc/ui/kvi_scriptbutton.cpp16
-rw-r--r--src/kvirc/ui/kvi_scriptbutton.h16
-rw-r--r--src/kvirc/ui/kvi_selectors.cpp8
-rw-r--r--src/kvirc/ui/kvi_selectors.h2
-rw-r--r--src/kvirc/ui/kvi_styled_controls.cpp4
-rw-r--r--src/kvirc/ui/kvi_styled_controls.h8
-rw-r--r--src/kvirc/ui/kvi_window.cpp14
-rw-r--r--src/kvirc/ui/kvi_window.h2
-rw-r--r--src/modules/dcc/libkvidcc.cpp2
-rw-r--r--src/modules/dcc/marshal.cpp20
-rw-r--r--src/modules/dcc/requests.cpp55
-rw-r--r--src/modules/dcc/send.cpp8
-rw-r--r--src/modules/options/optw_connection.cpp4
-rw-r--r--src/modules/trayicon/libkvitrayicon.cpp6
-rw-r--r--src/modules/window/libkviwindow.cpp10
68 files changed, 407 insertions, 407 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a28168fff..fb86936c4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -268,10 +268,14 @@ IF(WANT_KDE4)
INCLUDE_DIRECTORIES(${KDE4_INCLUDES})
ADD_DEFINITIONS(${KDE4_DEFINITIONS})
ADD_DEFINITIONS(-DCOMPILE_KDE_SUPPORT)
- LIST(APPEND LIBS ${KDE4_KDECORE_LIBS} ${KDE4_KDEUI_LIBRARY} ${KDE4_KPARTS_LIBRARY})
+ LIST(APPEND LIBS ${KDE4_KDECORE_LIBS} ${KDE4_KDEUI_LIBRARY} ${KDE4_KPARTS_LIBRARY} ${KDE4_KFILE_LIBRARY} ${KDE4_KIO_LIBRARY})
SET(CMAKE_STATUS_KDE4_SUPPORT "yes")
LIST(APPEND CMAKE_KVIRC_BUILD_FLAGS COMPILE_KDE_SUPPORT)
SET(CMAKE_STATUS_PHONON_SUPPORT "kde")
+
+ # The KDE4 cmake module has a VERY WEIRD behaviour: it adds -Wl,--no-undefined
+ # to the CMAKE_MODULE_LINKER_FLAGS .. which is BAD
+ STRING(REPLACE "-Wl,--no-undefined" "" CMAKE_MODULE_LINKER_FLAGS ${CMAKE_MODULE_LINKER_FLAGS})
ELSE()
SET(CMAKE_STATUS_KDE4_SUPPORT "not available")
ENDIF()
@@ -308,7 +312,7 @@ ENDIF()
OPTION(WANT_OPENSSL "Whether to use OpenSSL library, if found" ON)
IF(WITHOUT_SSL)
- SET(WANT_OPENSSL ON)
+ SET(WANT_OPENSSL OFF)
ENDIF()
IF(WANT_OPENSSL)
FIND_PACKAGE(OpenSSL)
@@ -317,9 +321,8 @@ IF(WANT_OPENSSL)
LIST(APPEND LIBS ${OPENSSL_LIBRARIES})
SET(COMPILE_SSL_SUPPORT 1)
SET(CMAKE_STATUS_SSL_SUPPORT "yes")
- IF(APPLE)
- LIST(APPEND LIBS -lcrypto)
- ENDIF()
+ # CMake FindOpenSSL is incomplete and does not add -lcrypto to LIBS...
+ LIST(APPEND LIBS -lcrypto)
ELSE()
SET(CMAKE_STATUS_SSL_SUPPORT "not available")
ENDIF()
@@ -335,7 +338,7 @@ OPTION(WANT_CRYPT "Compile Cryptographic Support and Engines" ON)
IF(WITHOUT_CRYPT)
SET(WANT_CRYPT OFF)
ENDIF()
-IF(WANT_CRYPT OR WANT_OPENSSL)
+IF(WANT_CRYPT)
SET(COMPILE_CRYPT_SUPPORT 1)
SET(CMAKE_STATUS_CRYPT_SUPPORT "yes")
ELSE()
diff --git a/cmake/module.rules.txt b/cmake/module.rules.txt
index 5d315b7d3..331e76118 100644
--- a/cmake/module.rules.txt
+++ b/cmake/module.rules.txt
@@ -7,12 +7,14 @@ IF(UNIX)
INSTALL(TARGETS ${kvi_module_name} LIBRARY DESTINATION ${INSTALL_PREFIX}/Contents/Resources/modules/)
ELSE()
# Assume linux
- ADD_LIBRARY(${kvi_module_name} SHARED ${${kvi_module_name}_SRCS} ${${kvi_module_name}_MOC_SRCS})
+ ADD_LIBRARY(${kvi_module_name} MODULE ${${kvi_module_name}_SRCS} ${${kvi_module_name}_MOC_SRCS})
+ TARGET_LINK_LIBRARIES(${kvi_module_name} kvilib ${LIBS})
SET_TARGET_PROPERTIES(${kvi_module_name} PROPERTIES VERSION ${VERSION_RELEASE} SOVERSION ${VERSION_MAJOR})
INSTALL(TARGETS ${kvi_module_name} LIBRARY DESTINATION ${INSTALL_PREFIX}/share/kvirc/${VERSION_BRANCH}/modules/)
ENDIF()
ELSEIF(WIN32)
#ADD_LIBRARY(${kvi_module_name} ???)
+ TARGET_LINK_LIBRARIES(${kvi_module_name} kvilib ${LIBS})
SET_TARGET_PROPERTIES(${kvi_module_name} PROPERTIES VERSION ${VERSION_RELEASE} SOVERSION ${VERSION_MAJOR})
#INSTALL(TARGETS ${kvi_module_name} LIBRARY DESTINATION ${INSTALL_PREFIX}/ ??? /${VERSION_BRANCH}/modules/)
ENDIF()
diff --git a/src/kvilib/core/kvi_pointerhashtable.h b/src/kvilib/core/kvi_pointerhashtable.h
index d4b46e683..82e2e345a 100644
--- a/src/kvilib/core/kvi_pointerhashtable.h
+++ b/src/kvilib/core/kvi_pointerhashtable.h
@@ -263,7 +263,7 @@ inline void kvi_hash_key_copy(const QString &szFrom,QString &szTo,bool)
szTo = szFrom;
}
-inline void kvi_hash_key_destroy(QString &szKey,bool)
+inline void kvi_hash_key_destroy(QString &,bool)
{
}
diff --git a/src/kvilib/core/kvi_qstring.h b/src/kvilib/core/kvi_qstring.h
index ac91ea29c..b88d73622 100644
--- a/src/kvilib/core/kvi_qstring.h
+++ b/src/kvilib/core/kvi_qstring.h
@@ -219,7 +219,7 @@ namespace KviQString
inline kvi_i64_t toI64(QString &szNumber,bool * bOk)
{
-#if SIZEOF_LONG_INT == 8
+#if SYSTEM_SIZE_OF_LONG_INT == 8
return szNumber.toLong(bOk);
#else
return szNumber.toLongLong(bOk);
@@ -228,7 +228,7 @@ namespace KviQString
inline kvi_u64_t toU64(QString &szNumber,bool * bOk)
{
-#if SIZEOF_LONG_INT == 8
+#if SYSTEM_SIZE_OF_LONG_INT == 8
return szNumber.toULong(bOk);
#else
return szNumber.toULongLong(bOk);
diff --git a/src/kvilib/ext/kvi_mediatype.cpp b/src/kvilib/ext/kvi_mediatype.cpp
index 68ddc37de..e4fb02aa7 100644
--- a/src/kvilib/ext/kvi_mediatype.cpp
+++ b/src/kvilib/ext/kvi_mediatype.cpp
@@ -453,7 +453,7 @@ static KviDefaultMediaType g_defMediaTypes[]=
{ 0,0,0,0,0 }
};
-void KviMediaManager::load(const char * filename)
+void KviMediaManager::load(const QString &filename)
{
__range_valid(locked());
@@ -498,7 +498,7 @@ void KviMediaManager::load(const char * filename)
}
-void KviMediaManager::save(const char * filename)
+void KviMediaManager::save(const QString &filename)
{
__range_valid(locked());
KviConfig cfg(filename,KviConfig::Write);
diff --git a/src/kvilib/ext/kvi_mediatype.h b/src/kvilib/ext/kvi_mediatype.h
index d93221c2f..3f39e5d76 100644
--- a/src/kvilib/ext/kvi_mediatype.h
+++ b/src/kvilib/ext/kvi_mediatype.h
@@ -75,8 +75,8 @@ public:
KviMediaType * findMediaType(const char * filename,bool bCheckMagic = true);
static void copyMediaType(KviMediaType * dst,KviMediaType * src);
- void load(const char * filename);
- void save(const char * filename);
+ void load(const QString &filename);
+ void save(const QString &filename);
};
diff --git a/src/kvilib/ext/kvi_proxydb.cpp b/src/kvilib/ext/kvi_proxydb.cpp
index fb254af8e..f85bd825e 100644
--- a/src/kvilib/ext/kvi_proxydb.cpp
+++ b/src/kvilib/ext/kvi_proxydb.cpp
@@ -114,7 +114,7 @@ void KviProxyDataBase::clear()
m_pCurrentProxy = 0;
}
-void KviProxyDataBase::load(const char * filename)
+void KviProxyDataBase::load(const QString &filename)
{
clear();
KviConfig cfg(filename,KviConfig::Read);
@@ -149,7 +149,7 @@ void KviProxyDataBase::load(const char * filename)
if(!m_pCurrentProxy)m_pCurrentProxy = m_pProxyList->first();
}
-void KviProxyDataBase::save(const char * filename)
+void KviProxyDataBase::save(const QString &filename)
{
KviConfig cfg(filename,KviConfig::Write);
diff --git a/src/kvilib/ext/kvi_proxydb.h b/src/kvilib/ext/kvi_proxydb.h
index 1eff641d2..260488ba6 100644
--- a/src/kvilib/ext/kvi_proxydb.h
+++ b/src/kvilib/ext/kvi_proxydb.h
@@ -79,8 +79,8 @@ public:
void updateProxyIp(const char * proxy,const char * ip);
void setCurrentProxy(KviProxy * prx){ m_pCurrentProxy = prx; };
void insertProxy(KviProxy * prx){ m_pProxyList->append(prx); };
- void load(const char * filename);
- void save(const char * filename);
+ void load(const QString &filename);
+ void save(const QString &filename);
};
#endif //_KVI_PROXYDB_H_
diff --git a/src/kvilib/ext/kvi_regchan.cpp b/src/kvilib/ext/kvi_regchan.cpp
index 3cc56bbf3..e5f189e95 100644
--- a/src/kvilib/ext/kvi_regchan.cpp
+++ b/src/kvilib/ext/kvi_regchan.cpp
@@ -54,7 +54,7 @@ KviRegisteredChannelDataBase::~KviRegisteredChannelDataBase()
delete m_pChannelDict;
}
-void KviRegisteredChannelDataBase::load(const char * filename)
+void KviRegisteredChannelDataBase::load(const QString &filename)
{
KviConfig cfg(filename,KviConfig::Read);
m_pChannelDict->clear();
@@ -76,7 +76,7 @@ void KviRegisteredChannelDataBase::load(const char * filename)
}
}
-void KviRegisteredChannelDataBase::save(const char * filename)
+void KviRegisteredChannelDataBase::save(const QString &filename)
{
KviConfig cfg(filename,KviConfig::Write);
cfg.clear();
diff --git a/src/kvilib/ext/kvi_regchan.h b/src/kvilib/ext/kvi_regchan.h
index df974ac7e..8db1b71ee 100644
--- a/src/kvilib/ext/kvi_regchan.h
+++ b/src/kvilib/ext/kvi_regchan.h
@@ -65,8 +65,8 @@ public:
KviRegisteredChannel * findExact(const char * name,const char * netmask);
void remove(KviRegisteredChannel * c);
void add(KviRegisteredChannel * c);
- void load(const char * filename);
- void save(const char * filename);
+ void load(const QString &filename);
+ void save(const QString &filename);
};
diff --git a/src/kvilib/ext/kvi_xlib.h b/src/kvilib/ext/kvi_xlib.h
index 7364d63ee..53c0a879d 100644
--- a/src/kvilib/ext/kvi_xlib.h
+++ b/src/kvilib/ext/kvi_xlib.h
@@ -40,6 +40,11 @@
// this breaks, enums in Qt, enums in KVIrc and other stuff all around...
// Shame on you Xlib.h author :D
+ #ifdef Bool
+ // NO!
+ #undef Bool
+ #endif
+
#endif // !COMPILE_NO_X
#endif //_KVI_XLIB_H_
diff --git a/src/kvirc/kernel/kvi_action.cpp b/src/kvirc/kernel/kvi_action.cpp
index 4ac3d06da..71e78d958 100644
--- a/src/kvirc/kernel/kvi_action.cpp
+++ b/src/kvirc/kernel/kvi_action.cpp
@@ -416,7 +416,8 @@ QWidget * KviAction::addToCustomToolBar(KviCustomToolBar *pParentToolBar)
p ? *p : QPixmap(),
visibleName(),
visibleName(),
- this,SLOT(activate()),pParentToolBar,m_szName);
+ this,SLOT(activate()),pParentToolBar,
+ m_szName.toUtf8().data());
pParentToolBar->addWidget(b);
if(!isEnabled())b->setEnabled(false);
diff --git a/src/kvirc/kernel/kvi_app.cpp b/src/kvirc/kernel/kvi_app.cpp
index 36caa9781..ac01c146b 100644
--- a/src/kvirc/kernel/kvi_app.cpp
+++ b/src/kvirc/kernel/kvi_app.cpp
@@ -105,6 +105,9 @@
#include <QPluginLoader>
#endif
+#include <stdlib.h> // rand & srand
+#include <time.h> // time() in srand()
+
KVIRC_API KviApp * g_pApp = 0; // global application pointer
KviConfig * g_pWinPropertiesConfig = 0;
@@ -114,16 +117,13 @@ KVIRC_API KviProxyDataBase * g_pProxyDataBase = 0;
// Global windows
KVIRC_API KviColorWindow * g_pColorWindow = 0;
-KVIRC_API KviTextIconWindowWidget * g_pTextIconWindow = 0;
+KVIRC_API KviTextIconWindowWidget * g_pTextIconWindow = 0;
KVIRC_API KviTalPopupMenu * g_pInputPopup = 0;
KVIRC_API QStringList * g_pRecentTopicList = 0;
-//KVIRC_API QStringList * g_pBookmarkList = 0;
-KVIRC_API KviPointerHashTable<const char *,KviWindow> * g_pGlobalWindowDict = 0;
+KVIRC_API KviPointerHashTable<QString,KviWindow> * g_pGlobalWindowDict = 0;
KVIRC_API KviMediaManager * g_pMediaManager = 0;
-//KVIRC_API KviRegisteredUserDataBase * g_pRegisteredUserDataBase = 0;
KVIRC_API KviSharedFilesManager * g_pSharedFilesManager = 0;
KVIRC_API KviNickServRuleSet * g_pNickServRuleSet = 0;
-//KVIRC_API KviTimerManager * g_pTimerManager = 0;
KVIRC_API KviGarbageCollector * g_pGarbageCollector = 0;
KVIRC_API KviCtcpPageDialog * g_pCtcpPageDialog = 0;
KVIRC_API KviRegisteredChannelDataBase * g_pRegisteredChannelDataBase = 0;
@@ -143,7 +143,7 @@ QPixmap * g_pActivityMeterPixmap = 0;
#ifdef COMPILE_PSEUDO_TRANSPARENCY
- #ifdef COMPILE_KDE_SUPPORT
+ #ifdef COMPILE_KDE3_SUPPORT
#include <ksharedpixmap.h>
#include <netwm.h>
#include <kimageeffect.h>
@@ -192,6 +192,9 @@ void KviApp::setup()
// on each other and we must activate them in the right order.
// Don't move stuff around unless you really know what you're doing.
+ // Initialize the random number generator
+ ::srand(::time(0));
+
#ifdef COMPILE_ON_WINDOWS
// setup winsock.dll
WSADATA w;
@@ -452,7 +455,7 @@ void KviApp::setup()
KVI_SPLASH_SET_PROGRESS(91)
// Global window dictionary
- g_pGlobalWindowDict = new KviPointerHashTable<const char *,KviWindow>(41);
+ g_pGlobalWindowDict = new KviPointerHashTable<QString,KviWindow>(41);
g_pGlobalWindowDict->setAutoDelete(false);
// Script object controller
//g_pScriptObjectController = new KviScriptObjectController(); gone
@@ -934,7 +937,7 @@ void KviApp::setClipboardText(const KviStr &str)
void KviApp::setAvatarFromOptions()
{
- KviPointerHashTableIterator<const char *,KviWindow> it(*g_pGlobalWindowDict);
+ KviPointerHashTableIterator<QString,KviWindow> it(*g_pGlobalWindowDict);
while(it.current())
{
@@ -1064,7 +1067,7 @@ void KviApp::fileDownloadTerminated(bool bSuccess,const QString &szRemoteUrl,con
#ifdef COMPILE_PSEUDO_TRANSPARENCY
- #ifdef COMPILE_KDE_SUPPORT
+ #ifdef COMPILE_KDE3_SUPPORT
#include <netwm.h>
@@ -1124,11 +1127,11 @@ void KviApp::fileDownloadTerminated(bool bSuccess,const QString &szRemoteUrl,con
//}
}
- #endif //COMPILE_KDE_SUPPORT
+ #endif //COMPILE_KDE3_SUPPORT
void KviApp::destroyPseudoTransparency()
{
-#ifdef COMPILE_KDE_SUPPORT
+#ifdef COMPILE_KDE3_SUPPORT
if(g_pKdeDesktopBackground)
{
delete g_pKdeDesktopBackground;
@@ -1136,7 +1139,7 @@ void KviApp::fileDownloadTerminated(bool bSuccess,const QString &szRemoteUrl,con
}
// forget the backgroundChanged signal (will do nothing if it is not connected)
disconnect(this,SIGNAL(backgroundChanged(int)),this,SLOT(kdeRootPixmapChanged(int)));
-#endif //COMPILE_KDE_SUPPORT
+#endif //COMPILE_KDE3_SUPPORT
if(g_pShadedParentGlobalDesktopBackground)
{
delete g_pShadedParentGlobalDesktopBackground;
@@ -1156,11 +1159,11 @@ void KviApp::fileDownloadTerminated(bool bSuccess,const QString &szRemoteUrl,con
QTimer::singleShot(0,this,SLOT(updatePseudoTransparency()));
}
-#ifdef COMPILE_KDE_SUPPORT
+#ifdef COMPILE_KDE3_SUPPORT
#define kimageeffect_fade KImageEffect::fade
-#else //!COMPILE_KDE_SUPPORT
+#else //!COMPILE_KDE3_SUPPORT
//
// This function is taken from the KDE kimageeffect.cpp
@@ -1225,7 +1228,7 @@ void KviApp::fileDownloadTerminated(bool bSuccess,const QString &szRemoteUrl,con
return img;
}
-#endif //!COMPILE_KDE_SUPPORT
+#endif //!COMPILE_KDE3_SUPPORT
void KviApp::createGlobalBackgrounds(QPixmap * pix)
{
@@ -1260,7 +1263,7 @@ void KviApp::fileDownloadTerminated(bool bSuccess,const QString &szRemoteUrl,con
void KviApp::kdeRootPixmapChanged(int iDesktop)
{
#ifdef COMPILE_PSEUDO_TRANSPARENCY
- #ifdef COMPILE_KDE_SUPPORT
+ #ifdef COMPILE_KDE3_SUPPORT
if(!KVI_OPTION_BOOL(KviOption_boolUpdateKdeBackgroundOnChange))return;
NETRootInfo rinfo(qt_xdisplay(),NET::CurrentDesktop);
rinfo.activate();
@@ -1273,7 +1276,7 @@ void KviApp::kdeRootPixmapChanged(int iDesktop)
void KviApp::kdeRootPixmapDownloadComplete(bool bSuccess)
{
#ifdef COMPILE_PSEUDO_TRANSPARENCY
- #ifdef COMPILE_KDE_SUPPORT
+ #ifdef COMPILE_KDE3_SUPPORT
if(!bSuccess)
{
qDebug("Failed to download the KDE root background image...");
@@ -1288,7 +1291,7 @@ void KviApp::kdeRootPixmapDownloadComplete(bool bSuccess)
}
delete g_pKdeDesktopBackground;
g_pKdeDesktopBackground = 0;
- #endif //COMPILE_KDE_SUPPORT
+ #endif //COMPILE_KDE3_SUPPORT
#endif //COMPILE_PSEUDO_TRANSPARENCY
}
@@ -1299,12 +1302,12 @@ void KviApp::updatePseudoTransparency()
m_bUpdatePseudoTransparencyPending = false;
if(KVI_OPTION_BOOL(KviOption_boolUseGlobalPseudoTransparency))
{
-#ifdef COMPILE_KDE_SUPPORT
+#ifdef COMPILE_KDE3_SUPPORT
if(KVI_OPTION_BOOL(KviOption_boolObtainGlobalBackgroundFromKde))
{
downloadKdeRootPixmap();
} else {
-#endif //COMPILE_KDE_SUPPORT
+#endif //COMPILE_KDE3_SUPPORT
if(KVI_OPTION_PIXMAP(KviOption_pixmapGlobalTransparencyBackground).pixmap())
{
createGlobalBackgrounds(KVI_OPTION_PIXMAP(KviOption_pixmapGlobalTransparencyBackground).pixmap());
@@ -1312,9 +1315,9 @@ void KviApp::updatePseudoTransparency()
destroyPseudoTransparency();
KVI_OPTION_BOOL(KviOption_boolUseGlobalPseudoTransparency) = false;
}
-#ifdef COMPILE_KDE_SUPPORT
+#ifdef COMPILE_KDE3_SUPPORT
}
-#endif //COMPILE_KDE_SUPPORT
+#endif //COMPILE_KDE3_SUPPORT
} else {
destroyPseudoTransparency();
if(g_pFrame)g_pFrame->updatePseudoTransparency();
@@ -1594,7 +1597,7 @@ void KviApp::destroyFrame()
bool KviApp::connectionExists(KviIrcConnection *cnn)
{
- KviPointerHashTableIterator<const char *,KviWindow> it(*g_pGlobalWindowDict);
+ KviPointerHashTableIterator<QString,KviWindow> it(*g_pGlobalWindowDict);
while(it.current())
{
@@ -1606,7 +1609,7 @@ bool KviApp::connectionExists(KviIrcConnection *cnn)
bool KviApp::windowExists(KviWindow *wnd)
{
- KviPointerHashTableIterator<const char *,KviWindow> it(*g_pGlobalWindowDict);
+ KviPointerHashTableIterator<QString,KviWindow> it(*g_pGlobalWindowDict);
while(it.current())
{
@@ -1623,7 +1626,7 @@ unsigned int KviApp::windowCount()
KviConsole * KviApp::findConsole(QString &server,QString &nick)
{
- KviPointerHashTableIterator<const char *,KviWindow> it(*g_pGlobalWindowDict);
+ KviPointerHashTableIterator<QString,KviWindow> it(*g_pGlobalWindowDict);
while(it.current())
{
@@ -1668,7 +1671,7 @@ KviConsole * KviApp::findConsole(KviStr &server,KviStr &nick)
void KviApp::restartLagMeters()
{
- KviPointerHashTableIterator<const char *,KviWindow> it(*g_pGlobalWindowDict);
+ KviPointerHashTableIterator<QString,KviWindow> it(*g_pGlobalWindowDict);
while(it.current())
{
@@ -1683,7 +1686,7 @@ void KviApp::restartLagMeters()
void KviApp::restartNotifyLists()
{
- KviPointerHashTableIterator<const char *,KviWindow> it(*g_pGlobalWindowDict);
+ KviPointerHashTableIterator<QString,KviWindow> it(*g_pGlobalWindowDict);
while(it.current())
{
@@ -1698,7 +1701,7 @@ void KviApp::restartNotifyLists()
void KviApp::resetAvatarForMatchingUsers(KviRegisteredUser * u)
{
- KviPointerHashTableIterator<const char *,KviWindow> it(*g_pGlobalWindowDict);
+ KviPointerHashTableIterator<QString,KviWindow> it(*g_pGlobalWindowDict);
while(it.current())
{
@@ -1712,7 +1715,7 @@ void KviApp::resetAvatarForMatchingUsers(KviRegisteredUser * u)
KviConsole * KviApp::findConsole(unsigned int ircContextId)
{
- KviPointerHashTableIterator<const char *,KviWindow> it(*g_pGlobalWindowDict);
+ KviPointerHashTableIterator<QString,KviWindow> it(*g_pGlobalWindowDict);
while(it.current())
{
@@ -1737,7 +1740,7 @@ KviConsole * KviApp::topmostConnectedConsole()
// try ANY connected console
- KviPointerHashTableIterator<const char *,KviWindow> it(*g_pGlobalWindowDict);
+ KviPointerHashTableIterator<QString,KviWindow> it(*g_pGlobalWindowDict);
while(it.current())
{
@@ -1751,14 +1754,14 @@ KviConsole * KviApp::topmostConnectedConsole()
return 0;
}
-KviWindow * KviApp::findWindow(const char * windowId)
+KviWindow * KviApp::findWindow(const QString &windowId)
{
return g_pGlobalWindowDict->find(windowId);
}
KviWindow * KviApp::findWindowByCaption(const QString &windowCaption,int iContextId)
{
- KviPointerHashTableIterator<const char *,KviWindow> it(*g_pGlobalWindowDict);
+ KviPointerHashTableIterator<QString,KviWindow> it(*g_pGlobalWindowDict);
while(it.current())
{
diff --git a/src/kvirc/kernel/kvi_app.h b/src/kvirc/kernel/kvi_app.h
index fc56acfac..76bb8917e 100644
--- a/src/kvirc/kernel/kvi_app.h
+++ b/src/kvirc/kernel/kvi_app.h
@@ -178,8 +178,8 @@ public:
void saveOptions();
void listAvailableOptions(KviWindow *wnd);
- bool getOptionString(const char * optName,QString &buffer);
- bool setOptionValue(const char * optName,const QString &value);
+ bool getOptionString(const QString &optName,QString &buffer);
+ bool setOptionValue(const QString &optName,const QString &value);
void optionResetUpdate(int flags);
void contextSensitiveHelp();
@@ -198,21 +198,21 @@ public:
// if the mediatype can be guessed ,it is looked up in the media type save path
// if found , true is returned
// if not found or the mediatype can't be guessed then false is returned
- bool findFileByMediaType(KviStr &szRetPath,const char * filename);
+ bool findFileByMediaType(KviStr &szRetPath,const char * filename) KVI_DEPRECATED;
- bool findImageInImageSearchPath(KviStr &szRetPath,const char * filename);
- bool findImageInImageSearchPath(QString &szRetPath,const char * filename);
+ bool findImageInImageSearchPath(KviStr &szRetPath,const QString &filename);
+ bool findImageInImageSearchPath(QString &szRetPath,const QString &filename);
- bool findUserFile(KviStr &szRetPath,const char *filename);
+ bool findUserFile(KviStr &szRetPath,const char *filename) KVI_DEPRECATED;
bool findImage(KviStr &szRetPath,const char *filename);
- bool findImage(QString &szRetPath,const char *filename);
- bool findImageThemeOnlyCompat(QString &szRetPath,const char *filename); // temporary compat, will be removed soon (do not use)
- bool findSmallIcon(QString &szRetPath,const char *filename);
+ bool findImage(QString &szRetPath,const QString &filename);
+ bool findImageThemeOnlyCompat(QString &szRetPath,const QString &filename); // temporary compat, will be removed soon (do not use)
+ bool findSmallIcon(QString &szRetPath,const QString &filename);
// tries to map the full path filename to one of the KVIrc's mapped directories
// if it doesn't succeed it just returns the complete filename in szRetPath
- bool mapImageFile(KviStr &szRetPath,const char * filename);
- bool mapImageFile(QString &szRetPath,const char * filename);
+ //bool mapImageFile(KviStr &szRetPath,const char * filename);
+ bool mapImageFile(QString &szRetPath,const QString &filename);
//void getDefaultDccSaveFilePath(KviStr &path,const char *filename);
void completeDirectory(const QString &word,KviPointerList<QString> * matches);
@@ -229,7 +229,7 @@ public:
bool getReadOnlyConfigPath(QString &buffer,const char *config_name,KvircSubdir sbd = Config,bool bNoFail = false);
// kvi_app.cpp : Window stuff
- KviWindow * findWindow(const char * windowId);
+ KviWindow * findWindow(const QString &windowId);
KviWindow * findWindowByCaption(const QString &windowCaption,int iContextId=-1);
KviConsole * findConsole(unsigned int ircContextId);
KviConsole * findConsole(KviStr & server,KviStr & nick);
@@ -319,9 +319,9 @@ private:
#ifdef COMPILE_PSEUDO_TRANSPARENCY
void createGlobalBackgrounds(QPixmap * pix);
void destroyPseudoTransparency();
- #ifdef COMPILE_KDE_SUPPORT
+ #ifdef COMPILE_KDE3_SUPPORT
void downloadKdeRootPixmap();
- #endif //COMPILE_KDE_SUPPORT
+ #endif //COMPILE_KDE3_SUPPORT
#endif //COMPILE_PSEUDO_TRANSPARENCY
private:
// kvi_app.cpp : parts of setup()
diff --git a/src/kvirc/kernel/kvi_app_fs.cpp b/src/kvirc/kernel/kvi_app_fs.cpp
index 2c299ecef..ff3d5a5be 100644
--- a/src/kvirc/kernel/kvi_app_fs.cpp
+++ b/src/kvirc/kernel/kvi_app_fs.cpp
@@ -424,7 +424,7 @@ bool KviApp::findUserFile(KviStr &szRetPath,const char *filename)
// FIXME: #warning "Check WHEN findImage is used and when findUserFile is used...we have a mess here"
-bool KviApp::findImageInImageSearchPath(KviStr &szRetPath,const char * filename)
+bool KviApp::findImageInImageSearchPath(KviStr &szRetPath,const QString &filename)
{
// first lookup the user defined paths
for(QStringList::Iterator it = KVI_OPTION_STRINGLIST(KviOption_stringlistImageSearchPaths).begin();
@@ -440,7 +440,7 @@ bool KviApp::findImageInImageSearchPath(KviStr &szRetPath,const char * filename)
return false;
}
-bool KviApp::findImageInImageSearchPath(QString &szRetPath,const char * filename)
+bool KviApp::findImageInImageSearchPath(QString &szRetPath,const QString &filename)
{
// first lookup the user defined paths
for(QStringList::Iterator it = KVI_OPTION_STRINGLIST(KviOption_stringlistImageSearchPaths).begin();
@@ -459,27 +459,27 @@ bool KviApp::findImageInImageSearchPath(QString &szRetPath,const char * filename
static KviApp::KvircSubdir pics_localsubdirs[2]={ KviApp::Pics , KviApp::Avatars };
static KviApp::KvircSubdir pics_globalsubdirs[2]={ KviApp::Pics , KviApp::Avatars };
-bool KviApp::mapImageFile(KviStr &szRetPath,const char * filename)
+/*bool KviApp::mapImageFile(KviStr &szRetPath,const char * filename)
{
QString buff;
bool ret=mapImageFile(buff,filename);
szRetPath=buff;
return ret;
-}
+}*/
-bool KviApp::mapImageFile(QString &szRetPath,const char * filename)
+bool KviApp::mapImageFile(QString &szRetPath,const QString &filename)
{
szRetPath = filename;
// can't map non absolute paths
- if(!kvi_isAbsolutePath(filename))return false;
+ if(!KviFileUtils::isAbsolutePath(filename))return false;
// can't map non existing paths
if(!KviFileUtils::fileExists(filename))return false;
- QFileInfo fi = QFileInfo(QString::fromUtf8(filename));
+ QFileInfo fi = QFileInfo(filename);
unsigned int size = fi.size();
- KviStr szBestMatch;
+ QString szBestMatch;
while(szRetPath.find(KVI_PATH_SEPARATOR) != -1)
{
@@ -535,7 +535,7 @@ bool KviApp::mapImageFile(QString &szRetPath,const char * filename)
}
}
- if(szBestMatch.hasData())
+ if(!szBestMatch.isEmpty())
{
szRetPath = szBestMatch;
return true;
@@ -556,10 +556,10 @@ bool KviApp::findImage(KviStr &szRetPath,const char *filename)
return ret;
}
-bool KviApp::findImage(QString &szRetPath,const char *filename)
+bool KviApp::findImage(QString &szRetPath,const QString &filename)
{
// Find an user file...
- if(kvi_isAbsolutePath(filename))
+ if(KviFileUtils::isAbsolutePath(filename))
{
szRetPath=filename;
return KviFileUtils::fileExists(filename);
@@ -606,7 +606,7 @@ bool KviApp::findImage(QString &szRetPath,const char *filename)
return false;
}
-bool KviApp::findImageThemeOnlyCompat(QString &szRetPath,const char *filename)
+bool KviApp::findImageThemeOnlyCompat(QString &szRetPath,const QString &filename)
{
// if we have a theme, look it up as first
if(!KVI_OPTION_STRING(KviOption_stringIconThemeSubdir).isEmpty())
@@ -633,7 +633,7 @@ bool KviApp::findImageThemeOnlyCompat(QString &szRetPath,const char *filename)
return false;
}
-bool KviApp::findSmallIcon(QString &szRetPath,const char *filename)
+bool KviApp::findSmallIcon(QString &szRetPath,const QString &filename)
{
// this is a bit optimized for the small builtin icons
// looks up less places.
@@ -661,8 +661,6 @@ bool KviApp::findSmallIcon(QString &szRetPath,const char *filename)
if(KviFileUtils::fileExists(szRetPath))return true;
}
- int i;
-
// unlikely
getLocalKvircDirectory(szRetPath,KviApp::SmallIcons,filename);
if(KviFileUtils::fileExists(szRetPath))return true;
diff --git a/src/kvirc/kernel/kvi_iconmanager.cpp b/src/kvirc/kernel/kvi_iconmanager.cpp
index 0adcb6913..46fa07e0b 100644
--- a/src/kvirc/kernel/kvi_iconmanager.cpp
+++ b/src/kvirc/kernel/kvi_iconmanager.cpp
@@ -687,14 +687,14 @@ void KviIconManager::addToCache(const QString &szName,KviCachedPixmap * p)
m_uCacheTotalSize += p->size();
}
-QPixmap * KviIconManager::getImage(const char * id,bool bCanBeNumber,QString* pRetPath)
+QPixmap * KviIconManager::getImage(const QString &id,bool bCanBeNumber,QString* pRetPath)
{
- if(!id)return 0;
+ if(id.isEmpty())
+ return 0;
if(bCanBeNumber)
{
bool bOk;
- QString tmp = id;
- int idx = tmp.toInt(&bOk);
+ int idx = id.toInt(&bOk);
if(bOk)
{
// was a number : this is not a filename
diff --git a/src/kvirc/kernel/kvi_iconmanager.h b/src/kvirc/kernel/kvi_iconmanager.h
index 95feb8cdd..d587c0c2d 100644
--- a/src/kvirc/kernel/kvi_iconmanager.h
+++ b/src/kvirc/kernel/kvi_iconmanager.h
@@ -449,7 +449,7 @@ public:
// WARNING: Don't store this pointer!
// id == filename | number that indicates an internal pixmap
// 0 stands for "any"
- QPixmap * getImage(const char * id,bool bCanBeNumber = true,QString* pRetPath = 0);
+ QPixmap * getImage(const QString &id,bool bCanBeNumber = true,QString* pRetPath = 0);
// The returned pointer is owned by the icon manager
// and can be deleted at any time : so don't store it
diff --git a/src/kvirc/kernel/kvi_ircconnectionserverinfo.h b/src/kvirc/kernel/kvi_ircconnectionserverinfo.h
index 60722e875..3401a850e 100644
--- a/src/kvirc/kernel/kvi_ircconnectionserverinfo.h
+++ b/src/kvirc/kernel/kvi_ircconnectionserverinfo.h
@@ -34,7 +34,7 @@ protected:
QString m_szServerVersion;
public:
KviBasicIrcServerInfo(const QString & version = KviQString::empty);
- ~KviBasicIrcServerInfo();
+ virtual ~KviBasicIrcServerInfo();
protected:
virtual const QString & getCustomChannelModeDescription(QChar mode) { return KviQString::empty; };
virtual const QString & getCustomUserModeDescription(QChar mode) { return KviQString::empty; };
diff --git a/src/kvirc/kernel/kvi_ircconnectiontargetresolver.cpp b/src/kvirc/kernel/kvi_ircconnectiontargetresolver.cpp
index fb0b91352..8f91d2ee6 100644
--- a/src/kvirc/kernel/kvi_ircconnectiontargetresolver.cpp
+++ b/src/kvirc/kernel/kvi_ircconnectiontargetresolver.cpp
@@ -50,6 +50,8 @@
#define __KVI_DEBUG__
#include "kvi_debug.h"
+#include <stdlib.h>
+
#include <QTimer>
extern KVIRC_API KviIrcServerDataBase * g_pIrcServerDataBase;
@@ -271,7 +273,7 @@ void KviIrcConnectionTargetResolver::proxyLookupTerminated(KviDns *)
__tr2qs("Proxy hostname resolved to %Q"),&szFirstIpAddress);
m_pTarget->proxy()->m_szIp = m_pProxyDns->firstIpAddress();
- g_pProxyDataBase->updateProxyIp(m_pTarget->proxy()->m_szIp.ptr(),szFirstIpAddress);
+ g_pProxyDataBase->updateProxyIp(m_pTarget->proxy()->m_szIp.ptr(),szFirstIpAddress.toUtf8().data());
if(m_pProxyDns->hostnameCount() > 1)
{
@@ -384,12 +386,38 @@ void KviIrcConnectionTargetResolver::serverLookupTerminated(KviDns *)
terminate(Error,m_pServerDns->error());
return;
}
- QString szFirstIpAddress = m_pServerDns->firstIpAddress();
+
+ QString szIpAddress;
+
+ if(m_pServerDns->ipAddressCount() > 1)
+ {
+ if(KVI_OPTION_BOOL(KviOption_boolPickRandomIpAddressForRoundRobinServers))
+ {
+ if(!_OUTPUT_MUTE)
+ m_pConsole->output(KVI_OUT_SYSTEMMESSAGE,
+ __tr2qs("Server has %d IP addresses, picking a random one"),
+ m_pServerDns->ipAddressCount()
+ );
+
+ int r = ::rand() % m_pServerDns->ipAddressCount();
+ szIpAddress = *(m_pServerDns->ipAddressList()->at(r));
+ } else {
+ if(!_OUTPUT_MUTE)
+ m_pConsole->output(KVI_OUT_SYSTEMMESSAGE,
+ __tr2qs("Server has %d IP addresses, using the first one"),
+ m_pServerDns->ipAddressCount()
+ );
+ szIpAddress = m_pServerDns->firstIpAddress();
+ }
+ } else {
+ szIpAddress = m_pServerDns->firstIpAddress();
+ }
+
if(!_OUTPUT_MUTE)
m_pConsole->output(KVI_OUT_SYSTEMMESSAGE,
__tr2qs("Server hostname resolved to %Q"),
- &szFirstIpAddress);
- g_pIrcServerDataBase->updateServerIp(m_pTarget->server(),szFirstIpAddress);
+ &szIpAddress);
+ g_pIrcServerDataBase->updateServerIp(m_pTarget->server(),szIpAddress);
QString szFirstHostname = m_pServerDns->firstHostname();
@@ -403,7 +431,7 @@ void KviIrcConnectionTargetResolver::serverLookupTerminated(KviDns *)
m_pTarget->server()->m_szHostname = szFirstHostname;
}
- m_pTarget->server()->m_szIp = m_pServerDns->firstIpAddress();
+ m_pTarget->server()->m_szIp = szIpAddress;
if(m_pServerDns->hostnameCount() > 1)
{
diff --git a/src/kvirc/kernel/kvi_ircsocket.cpp b/src/kvirc/kernel/kvi_ircsocket.cpp
index fb824fe83..c9fe0218a 100644
--- a/src/kvirc/kernel/kvi_ircsocket.cpp
+++ b/src/kvirc/kernel/kvi_ircsocket.cpp
@@ -701,7 +701,7 @@ void KviIrcSocket::proxyLoginV4()
struct in_addr ircInAddr;
- if(!kvi_stringIpToBinaryIp(m_pIrcServer->ip(),&ircInAddr))
+ if(!kvi_stringIpToBinaryIp(m_pIrcServer->ip().toUtf8().data(),&ircInAddr))
debug("SOCKET INTERNAL ERROR IN IPV4 (SOCKS4) ADDR CONVERSION");
Q_UINT32 host=(Q_UINT32)ircInAddr.s_addr;
@@ -914,7 +914,7 @@ void KviIrcSocket::proxySendTargetDataV5()
#ifdef COMPILE_IPV6_SUPPORT
struct in6_addr ircInAddr;
- if(!kvi_stringIpToBinaryIp_V6(m_pIrcServer->ip(),&ircInAddr))debug("SOCKET INTERNAL ERROR IN IPV6 ADDR CONVERSION");
+ if(!kvi_stringIpToBinaryIp_V6(m_pIrcServer->ip().toUtf8().data(),&ircInAddr))debug("SOCKET INTERNAL ERROR IN IPV6 ADDR CONVERSION");
kvi_memmove((void *)(bufToSend + 4),(void *)(&ircInAddr),4);
Q_UINT16 port = (Q_UINT16)htons(m_pIrcServer->port());
kvi_memmove((void *)(bufToSend + 20),(void *)&port,2);
@@ -922,7 +922,7 @@ void KviIrcSocket::proxySendTargetDataV5()
} else {
struct in_addr ircInAddr;
- if(!kvi_stringIpToBinaryIp(m_pIrcServer->ip(),&ircInAddr))debug("SOCKET INTERNAL ERROR IN IPV4 ADDR CONVERSION");
+ if(!kvi_stringIpToBinaryIp(m_pIrcServer->ip().toUtf8().data(),&ircInAddr))debug("SOCKET INTERNAL ERROR IN IPV4 ADDR CONVERSION");
Q_UINT32 host = (Q_UINT32)ircInAddr.s_addr;
kvi_memmove((void *)(bufToSend + 4),(void *)&host,4);
Q_UINT16 port = (Q_UINT16)htons(m_pIrcServer->port());
@@ -1216,7 +1216,7 @@ void KviIrcSocket::printSSLCipherInfo()
if(ci)
{
//m_pConsole->socketEvent(SSLCipherInfo,(void *)ci);
- KviSSLMaster::printSSLCipherInfo(m_pConsole,__tr2qs("Current transmission cipher"),ci);
+ KviSSLMaster::printSSLCipherInfo(m_pConsole,__tr("Current transmission cipher"),ci);
delete ci;
} else {
if(_OUTPUT_VERBOSE)
diff --git a/src/kvirc/kernel/kvi_main.cpp b/src/kvirc/kernel/kvi_main.cpp
index 0397427e7..57e0d5361 100644
--- a/src/kvirc/kernel/kvi_main.cpp
+++ b/src/kvirc/kernel/kvi_main.cpp
@@ -87,7 +87,7 @@ int parseArgs(ParseArgs * a)
#ifdef COMPILE_ON_WINDOWS
MessageBox(0,szMessage.toLocal8Bit().data(),"KVIrc",0);
#else
- debug(szMessage);
+ debug(szMessage.toLocal8Bit().data());
#endif
return KVI_ARGS_RETCODE_STOP;
@@ -135,7 +135,7 @@ int parseArgs(ParseArgs * a)
#ifdef COMPILE_ON_WINDOWS
MessageBox(0,szMessage.toLocal8Bit().data(),"KVIrc",0);
#else
- debug(szMessage);
+ debug(szMessage.toLocal8Bit().data());
#endif
return KVI_ARGS_RETCODE_STOP;
}
diff --git a/src/kvirc/kernel/kvi_options.cpp b/src/kvirc/kernel/kvi_options.cpp
index 45bf61d96..2a021cea1 100644
--- a/src/kvirc/kernel/kvi_options.cpp
+++ b/src/kvirc/kernel/kvi_options.cpp
@@ -306,6 +306,7 @@ KviBoolOption g_boolOptionsTable[KVI_NUM_BOOL_OPTIONS]=
BOOL_OPTION("ScaleAvatarsOnLoad",true,KviOption_sectFlagAvatar),
BOOL_OPTION("DisableNotifierFadein",false,KviOption_sectFlagFrame),
BOOL_OPTION("UseAntiAliasing",true,KviOption_sectFlagGui | KviOption_resetUpdateGui),
+ BOOL_OPTION("PickRandomIpAddressForRoundRobinServers",true,KviOption_sectFlagConnection)
};
#define STRING_OPTION(_txt,_val,_flags) KviStringOption(KVI_STRING_OPTIONS_PREFIX _txt,_val,_flags)
@@ -1216,15 +1217,15 @@ void KviApp::listAvailableOptions(KviWindow *wnd)
//using namespace KviStringConversion;
-bool KviApp::getOptionString(const char * optName,QString &buffer)
+bool KviApp::getOptionString(const QString &optName,QString &buffer)
{
#define GET_OPTION_STRING(__numOpt,__table,__prefix,__prefixLen) \
- if(kvi_strEqualCIN(optName,__prefix,__prefixLen)) \
+ if(KviQString::equalCIN(optName,__prefix,__prefixLen)) \
{ \
for(int i=0;i < __numOpt;i++) \
{ \
- if(kvi_strEqualCI(optName,__table[i].name)) \
+ if(KviQString::equalCI(optName,__table[i].name)) \
{ \
KviStringConversion::toString(__table[i].option,buffer); \
return true; \
@@ -1306,15 +1307,15 @@ void KviApp::optionResetUpdate(int flags)
}
}
-bool KviApp::setOptionValue(const char * optName,const QString &value)
+bool KviApp::setOptionValue(const QString &optName,const QString &value)
{
#define SET_OPTION_VALUE(__numOpt,__table,__prefix,__prefixLen) \
- if(kvi_strEqualCIN(optName,__prefix,__prefixLen)) \
+ if(KviQString::equalCIN(optName,__prefix,__prefixLen)) \
{ \
for(int i=0;i < __numOpt;i++) \
{ \
- if(kvi_strEqualCI(optName,__table[i].name)) \
+ if(KviQString::equalCI(optName,__table[i].name)) \
{ \
if(!KviStringConversion::fromString(value,__table[i].option))return false; \
optionResetUpdate(__table[i].flags); \
@@ -1336,10 +1337,10 @@ bool KviApp::setOptionValue(const char * optName,const QString &value)
SET_OPTION_VALUE(KVI_NUM_FONT_OPTIONS,g_fontOptionsTable,KVI_FONT_OPTIONS_PREFIX,KVI_FONT_OPTIONS_PREFIX_LEN)
SET_OPTION_VALUE(KVI_NUM_MSGTYPE_OPTIONS,g_msgtypeOptionsTable,KVI_MSGTYPE_OPTIONS_PREFIX,KVI_MSGTYPE_OPTIONS_PREFIX_LEN)
- if(kvi_strEqualCI(optName,"stringlistRecentChannels"))
+ if(KviQString::equalCI(optName,"stringlistRecentChannels"))
buildRecentChannels();
// The pixmap options have special treating
- if(kvi_strEqualCIN(optName,KVI_PIXMAP_OPTIONS_PREFIX,KVI_PIXMAP_OPTIONS_PREFIX_LEN))
+ if(KviQString::equalCIN(optName,KVI_PIXMAP_OPTIONS_PREFIX,KVI_PIXMAP_OPTIONS_PREFIX_LEN))
{
// We lookup the image path (so we allow also relative paths for this option type)
QString szVal = value;
@@ -1354,7 +1355,7 @@ bool KviApp::setOptionValue(const char * optName,const QString &value)
for(int i=0;i < KVI_NUM_PIXMAP_OPTIONS;i++)
{
- if(kvi_strEqualCI(optName,g_pixmapOptionsTable[i].name))
+ if(KviQString::equalCI(optName,g_pixmapOptionsTable[i].name))
{
if(!KviStringConversion::fromString(szBuffer,g_pixmapOptionsTable[i].option))return false;
optionResetUpdate(g_pixmapOptionsTable[i].flags);
diff --git a/src/kvirc/kernel/kvi_options.h b/src/kvirc/kernel/kvi_options.h
index 140e51222..8071fe163 100644
--- a/src/kvirc/kernel/kvi_options.h
+++ b/src/kvirc/kernel/kvi_options.h
@@ -43,11 +43,11 @@
class _cname \
{ \
public: \
- const char * name; \
+ QString name; \
_type option; \
int flags; \
public: \
- _cname(const char * n,_type o,int f) \
+ _cname(const QString &n,_type o,int f) \
: name(n) , option(o) , flags(f) {}; \
~_cname() {}; \
};
@@ -313,9 +313,10 @@ DECLARE_OPTION_STRUCT(KviStringListOption,QStringList)
#define KviOption_boolScaleAvatarsOnLoad 219
#define KviOption_boolDisableNotifierFadein 220 /* interface::notifier */
#define KviOption_boolUseAntiAliasing 221 /* qt4 only! */
+#define KviOption_boolPickRandomIpAddressForRoundRobinServers 222
-#define KVI_NUM_BOOL_OPTIONS 222
+#define KVI_NUM_BOOL_OPTIONS 223
diff --git a/src/kvirc/kernel/kvi_sslmaster.cpp b/src/kvirc/kernel/kvi_sslmaster.cpp
index 55d212816..69504b717 100644
--- a/src/kvirc/kernel/kvi_sslmaster.cpp
+++ b/src/kvirc/kernel/kvi_sslmaster.cpp
@@ -80,14 +80,14 @@ KVIRC_API void printSSLConnectionInfo(KviWindow * wnd,KviSSL * s)
if(sc)
{
QString tmp(__tr2qs("Peer X509 certificate"));
- KviSSLMaster::printSSLCertificate(wnd,tmp,sc);
+ KviSSLMaster::printSSLCertificate(wnd,tmp.toLocal8Bit().data(),sc);
delete sc;
} else wnd->outputNoFmt(KVI_OUT_SSL,__tr2qs("[SSL]: The peer didn't provide a certificate"));
KviSSLCipherInfo * ci = s->getCurrentCipherInfo();
if(ci)
{
QString tmp(__tr2qs("Current transmission cipher"));
- KviSSLMaster::printSSLCipherInfo(wnd,tmp,ci);
+ KviSSLMaster::printSSLCipherInfo(wnd,tmp.toLocal8Bit().data(),ci);
delete ci;
} else wnd->outputNoFmt(KVI_OUT_SSL,__tr2qs("[SSL]: Can't find out the current cipher info"));
}
diff --git a/src/kvirc/kvs/kvi_kvs_corecallbackcommands.cpp b/src/kvirc/kvs/kvi_kvs_corecallbackcommands.cpp
index 6b88f89e8..769415112 100644
--- a/src/kvirc/kvs/kvi_kvs_corecallbackcommands.cpp
+++ b/src/kvirc/kvs/kvi_kvs_corecallbackcommands.cpp
@@ -438,7 +438,7 @@ namespace KviKvsCoreCallbackCommands
return true;
}
- pButton = (KviScriptUserButton *)(KVSCCC_pWindow->buttonContainer())->child(szName,"KviWindowScriptButton");
+ pButton = (KviScriptUserButton *)(KVSCCC_pWindow->buttonContainer())->child(szName.toUtf8().data(),"KviWindowScriptButton");
if(KVSCCC_pCallback->code().isEmpty())
{
@@ -452,7 +452,7 @@ namespace KviKvsCoreCallbackCommands
if(!pButton)
{
- pButton = new KviWindowScriptButton(KVSCCC_pWindow->buttonContainer(),KVSCCC_pWindow,szName);
+ pButton = new KviWindowScriptButton(KVSCCC_pWindow->buttonContainer(),KVSCCC_pWindow,szName.toUtf8().data());
pButton->show();
}
diff --git a/src/kvirc/kvs/kvi_kvs_corefunctions_mr.cpp b/src/kvirc/kvs/kvi_kvs_corefunctions_mr.cpp
index f43bc60a0..9d82e3a3c 100644
--- a/src/kvirc/kvs/kvi_kvs_corefunctions_mr.cpp
+++ b/src/kvirc/kvs/kvi_kvs_corefunctions_mr.cpp
@@ -231,10 +231,11 @@ namespace KviKvsCoreFunctions
KVSCF_PARAMETER("msg_type_color_set_name",KVS_PT_NONEMPTYSTRING,0,szName)
KVSCF_PARAMETERS_END
- KviStr tmp(szName);
+ QString tmp = "msgtype";
+ tmp += szName;
for(int i=0;i< KVI_NUM_MSGTYPE_OPTIONS;i++)
{
- if(kvi_strEqualCI(tmp.ptr(),(g_msgtypeOptionsTable[i].name + 7)))
+ if(KviQString::equalCI(tmp,g_msgtypeOptionsTable[i].name))
{
KVSCF_pRetBuffer->setInteger(i);
return true;
diff --git a/src/kvirc/kvs/kvi_kvs_corefunctions_sz.cpp b/src/kvirc/kvs/kvi_kvs_corefunctions_sz.cpp
index b8902a0cf..7805687b0 100644
--- a/src/kvirc/kvs/kvi_kvs_corefunctions_sz.cpp
+++ b/src/kvirc/kvs/kvi_kvs_corefunctions_sz.cpp
@@ -706,7 +706,7 @@ namespace KviKvsCoreFunctions
KviMessageCatalogue * pCat = KviLocale::getLoadedCatalogue(szCatalogue);
if(pCat)
{
- translation = pCat->translateToQString(szString);
+ translation = pCat->translateToQString(szString.toUtf8().data());
} else {
// attempt to load it automatically
QString szDir;
@@ -723,10 +723,10 @@ namespace KviKvsCoreFunctions
// not fail unless /trunload is explicitly used
// This will avoid trashing the user's disk too much
// when a catalogue for a given language is not available
- translation = __tr2qs_ctx_no_xgettext(szString,szCatalogue);
+ translation = __tr2qs_ctx_no_xgettext(szString.toUtf8().data(),szCatalogue.toUtf8().data());
}
} else {
- translation = __tr2qs_no_xgettext(szString);
+ translation = __tr2qs_no_xgettext(szString.toUtf8().data());
}
// epilogue: set the return value
diff --git a/src/kvirc/kvs/kvi_kvs_coresimplecommands_af.cpp b/src/kvirc/kvs/kvi_kvs_coresimplecommands_af.cpp
index c383366bd..12b491d91 100644
--- a/src/kvirc/kvs/kvi_kvs_coresimplecommands_af.cpp
+++ b/src/kvirc/kvs/kvi_kvs_coresimplecommands_af.cpp
@@ -55,7 +55,7 @@
#include "kvi_tal_tooltip.h"
// kvi_app.cpp
-extern KviPointerHashTable<const char *,KviWindow> * g_pGlobalWindowDict;
+extern KviPointerHashTable<QString,KviWindow> * g_pGlobalWindowDict;
namespace KviKvsCoreSimpleCommands
{
@@ -120,7 +120,7 @@ namespace KviKvsCoreSimpleCommands
if(KVSCSC_pSwitches->find('a',"all-networks"))
{
- KviPointerHashTableIterator<const char *,KviWindow> it(*g_pGlobalWindowDict);
+ KviPointerHashTableIterator<QString,KviWindow> it(*g_pGlobalWindowDict);
while(KviWindow * wnd = it.current())
{
if(wnd->type()==KVI_WINDOW_TYPE_CONSOLE)
@@ -174,7 +174,7 @@ namespace KviKvsCoreSimpleCommands
if(KVSCSC_pSwitches->find('a',"all-networks"))
{
- KviPointerHashTableIterator<const char *,KviWindow> it(*g_pGlobalWindowDict);
+ KviPointerHashTableIterator<QString,KviWindow> it(*g_pGlobalWindowDict);
while(KviWindow * wnd = it.current())
{
if(wnd->type()==KVI_WINDOW_TYPE_CONSOLE)
@@ -412,7 +412,7 @@ namespace KviKvsCoreSimpleCommands
return true;
}
- pButton = (KviScriptUserButton *)(KVSCSC_pWindow->buttonContainer())->child(tbName,"KviWindowScriptButton");
+ pButton = (KviScriptUserButton *)(KVSCSC_pWindow->buttonContainer())->child(tbName.toUtf8().data(),"KviWindowScriptButton");
if(!pButton)
{
diff --git a/src/kvirc/kvs/kvi_kvs_object.cpp b/src/kvirc/kvs/kvi_kvs_object.cpp
index 6204b3c48..790c5a445 100644
--- a/src/kvirc/kvs/kvi_kvs_object.cpp
+++ b/src/kvirc/kvs/kvi_kvs_object.cpp
@@ -1112,7 +1112,7 @@ bool KviKvsObject::function_setProperty(KviKvsObjectFunctionCall * c)
return true;
}
- int idx = m_pObject->metaObject()->indexOfProperty(szName);
+ int idx = m_pObject->metaObject()->indexOfProperty(szName.toUtf8().data());
if(idx < 0)
{
c->warning(__tr2qs("No Qt property named \"%Q\" for object named \"%Q\" of class %Q"),&szName,&m_szName,&(m_pClass->name()));
@@ -1126,7 +1126,7 @@ bool KviKvsObject::function_setProperty(KviKvsObjectFunctionCall * c)
return true;
}
- QVariant vv = m_pObject->property(szName);
+ QVariant vv = m_pObject->property(szName.toUtf8().data());
if(!vv.isValid())
{
c->warning(__tr2qs("Can't find property named \"%Q\" for object named \"%Q\" of class %Q: the property is indexed and defined but the returned variant is not valid"),&szName,&m_szName,&(m_pClass->name()));
@@ -1137,9 +1137,9 @@ bool KviKvsObject::function_setProperty(KviKvsObjectFunctionCall * c)
{
QString szKey;
v->asString(szKey);
- int val = p->enumerator().keyToValue(szKey);
+ int val = p->enumerator().keyToValue(szKey.toUtf8().data());
QVariant var(val);
- m_pObject->setProperty(szName,var);
+ m_pObject->setProperty(szName.toUtf8().data(),var);
return true;
}
@@ -1155,7 +1155,7 @@ bool KviKvsObject::function_setProperty(KviKvsObjectFunctionCall * c)
{
kvs_int_t i;
if(!v->asInteger(i))WRONG_TYPE("integer")
- m_pObject->setProperty(szName,QVariant((int)i));
+ m_pObject->setProperty(szName.toUtf8().data(),QVariant((int)i));
}
break;
case QVariant::UInt:
@@ -1163,30 +1163,30 @@ bool KviKvsObject::function_setProperty(KviKvsObjectFunctionCall * c)
kvs_int_t i;
if(!v->asInteger(i))WRONG_TYPE("unsigned integer")
if(i < 0)WRONG_TYPE("unsigned integer")
- m_pObject->setProperty(szName,QVariant((unsigned int)i));
+ m_pObject->setProperty(szName.toUtf8().data(),QVariant((unsigned int)i));
}
case QVariant::Double:
{
kvs_real_t i;
if(!v->asReal(i))WRONG_TYPE("real")
- m_pObject->setProperty(szName,QVariant((double)i));
+ m_pObject->setProperty(szName.toUtf8().data(),QVariant((double)i));
}
break;
case QVariant::Bool:
- m_pObject->setProperty(szName,QVariant(v->asBoolean()));
+ m_pObject->setProperty(szName.toUtf8().data(),QVariant(v->asBoolean()));
break;
case QVariant::String:
{
QString s;
v->asString(s);
- m_pObject->setProperty(szName,QVariant(s));
+ m_pObject->setProperty(szName.toUtf8().data(),QVariant(s));
}
break;
case QVariant::ByteArray:
{
QString s;
v->asString(s);
- m_pObject->setProperty(szName,QVariant(s.toUtf8()));
+ m_pObject->setProperty(szName.toUtf8().data(),QVariant(s.toUtf8()));
}
break;
case QVariant::Point:
@@ -1198,7 +1198,7 @@ bool KviKvsObject::function_setProperty(KviKvsObjectFunctionCall * c)
if(!x || !y)WRONG_TYPE("array(integer,integer)")
kvs_int_t iX,iY;
if(!x->asInteger(iX) || !y->asInteger(iY))WRONG_TYPE("array(integer,integer)")
- m_pObject->setProperty(szName,QVariant(QPoint(iX,iY)));
+ m_pObject->setProperty(szName.toUtf8().data(),QVariant(QPoint(iX,iY)));
}
break;
case QVariant::Size:
@@ -1210,7 +1210,7 @@ bool KviKvsObject::function_setProperty(KviKvsObjectFunctionCall * c)
if(!w || !h)WRONG_TYPE("array(integer,integer)")
kvs_int_t iW,iH;
if(!w->asInteger(iW) || !h->asInteger(iH))WRONG_TYPE("array(integer,integer)")
- m_pObject->setProperty(szName,QVariant(QSize(iW,iH)));
+ m_pObject->setProperty(szName.toUtf8().data(),QVariant(QSize(iW,iH)));
}
break;
case QVariant::Rect:
@@ -1224,7 +1224,7 @@ bool KviKvsObject::function_setProperty(KviKvsObjectFunctionCall * c)
if(!x || !y || !w || !h)WRONG_TYPE("array(integer,integer,integer,integer)")
kvs_int_t iX,iY,iW,iH;
if(!x->asInteger(iX) || !y->asInteger(iY) || !w->asInteger(iW) || !h->asInteger(iH))WRONG_TYPE("array(integer,integer,integer,integer)")
- m_pObject->setProperty(szName,QVariant(QRect(iX,iY,iW,iH)));
+ m_pObject->setProperty(szName.toUtf8().data(),QVariant(QRect(iX,iY,iW,iH)));
}
break;
@@ -1238,7 +1238,7 @@ bool KviKvsObject::function_setProperty(KviKvsObjectFunctionCall * c)
if(!r || !g || !b)WRONG_TYPE("array(integer,integer,integer)")
kvs_int_t iR,iG,iB;
if(!r->asInteger(iR) || !g->asInteger(iG) || !b->asInteger(iB))WRONG_TYPE("array(integer,integer,integer)")
- m_pObject->setProperty(szName,QVariant(QColor(iR,iG,iB)));
+ m_pObject->setProperty(szName.toUtf8().data(),QVariant(QColor(iR,iG,iB)));
}
break;
case QVariant::Font:
@@ -1263,7 +1263,7 @@ bool KviKvsObject::function_setProperty(KviKvsObjectFunctionCall * c)
if(szFl.find('o') != -1)fnt.setOverline(true);
if(szFl.find('f') != -1)fnt.setFixedPitch(true);
if(szFl.find('s') != -1)fnt.setStrikeOut(true);
- m_pObject->setProperty(szName,QVariant(fnt));
+ m_pObject->setProperty(szName.toUtf8().data(),QVariant(fnt));
}
break;
case QVariant::Pixmap:
@@ -1274,9 +1274,9 @@ bool KviKvsObject::function_setProperty(KviKvsObjectFunctionCall * c)
{
// null pixmap
if(vv.type() == QVariant::Pixmap)
- m_pObject->setProperty(szName,QVariant(QPixmap()));
+ m_pObject->setProperty(szName.toUtf8().data(),QVariant(QPixmap()));
else
- m_pObject->setProperty(szName,QVariant(QIcon()));
+ m_pObject->setProperty(szName.toUtf8().data(),QVariant(QIcon()));
} else {
KviKvsObject * pix = KviKvsKernel::instance()->objectController()->lookupObject(v->hobject());
if(!pix->inherits("KviScriptPixmapObject"))
@@ -1284,9 +1284,9 @@ bool KviKvsObject::function_setProperty(KviKvsObjectFunctionCall * c)
else {
QVariant pixv = pix->property("pixmap");
if(vv.type() == QVariant::Pixmap)
- m_pObject->setProperty(szName,QVariant(pixv.value<QPixmap>()));
+ m_pObject->setProperty(szName.toUtf8().data(),QVariant(pixv.value<QPixmap>()));
else
- m_pObject->setProperty(szName,QVariant(QIcon(pixv.value<QPixmap>())));
+ m_pObject->setProperty(szName.toUtf8().data(),QVariant(QIcon(pixv.value<QPixmap>())));
}
}
} else {
@@ -1296,9 +1296,9 @@ bool KviKvsObject::function_setProperty(KviKvsObjectFunctionCall * c)
if(pPix)
{
if(vv.type() == QVariant::Pixmap)
- m_pObject->setProperty(szName,QVariant(*pPix));
+ m_pObject->setProperty(szName.toUtf8().data(),QVariant(*pPix));
else
- m_pObject->setProperty(szName,QVariant(QIcon(*pPix)));
+ m_pObject->setProperty(szName.toUtf8().data(),QVariant(QIcon(*pPix)));
}
else
c->warning(__tr2qs("Can't find the requested image"));
@@ -1336,10 +1336,11 @@ bool KviKvsObject::function_property(KviKvsObjectFunctionCall * c)
return true;
}
- int idx = m_pObject->metaObject()->indexOfProperty(szName);
+ int idx = m_pObject->metaObject()->indexOfProperty(szName.toUtf8().data());
if(idx < 0)
{
- if (bNoerror) c->returnValue()->setString("No Qt properties");
+ if(bNoerror)
+ c->returnValue()->setString("No Qt properties");
else
{
c->warning(__tr2qs("No Qt property named \"%Q\" for object named \"%Q\" of class %Q"),&szName,&m_szName,&(m_pClass->name()));
@@ -1356,7 +1357,7 @@ bool KviKvsObject::function_property(KviKvsObjectFunctionCall * c)
return true;
}
- QVariant v = m_pObject->property(szName);
+ QVariant v = m_pObject->property(szName.toUtf8().data());
if(!v.isValid())
{
c->warning(__tr2qs("Can't find property named \"%Q\" for object named \"%Q\" of class %Q: the property is indexed and defined but the returned variant is not valid"),&szName,&m_szName,&(m_pClass->name()));
diff --git a/src/kvirc/kvs/kvi_kvs_treenode_specialcommanddo.cpp b/src/kvirc/kvs/kvi_kvs_treenode_specialcommanddo.cpp
index 5557a8b46..1dc778666 100644
--- a/src/kvirc/kvs/kvi_kvs_treenode_specialcommanddo.cpp
+++ b/src/kvirc/kvs/kvi_kvs_treenode_specialcommanddo.cpp
@@ -51,13 +51,8 @@ void KviKvsTreeNodeSpecialCommandDo::contextDescription(QString &szBuffer)
szBuffer = "Special Command \"do\"";
}
-void KviKvsTreeNodeSpecialCommandDo::dump(const char * prefix)
+void KviKvsTreeNodeSpecialCommandDo::dump(const char *)
{
- qDebug("%s SpecialCommandDo",prefix);
- QString tmp = prefix;
- tmp.append(" ");
- m_pExpression->dump(tmp);
- if(m_pInstruction)m_pInstruction->dump(tmp);
}
bool KviKvsTreeNodeSpecialCommandDo::execute(KviKvsRunTimeContext * c)
diff --git a/src/kvirc/kvs/kvi_kvs_treenode_specialcommandif.cpp b/src/kvirc/kvs/kvi_kvs_treenode_specialcommandif.cpp
index 70fec6f22..994b8811f 100644
--- a/src/kvirc/kvs/kvi_kvs_treenode_specialcommandif.cpp
+++ b/src/kvirc/kvs/kvi_kvs_treenode_specialcommandif.cpp
@@ -53,14 +53,8 @@ void KviKvsTreeNodeSpecialCommandIf::contextDescription(QString &szBuffer)
szBuffer = "Special Command \"if\"";
}
-void KviKvsTreeNodeSpecialCommandIf::dump(const char * prefix)
+void KviKvsTreeNodeSpecialCommandIf::dump(const char *)
{
- qDebug("%s SpecialCommandIf",prefix);
- QString tmp = prefix;
- tmp.append(" ");
- m_pExpression->dump(tmp);
- if(m_pIfInstruction)m_pIfInstruction->dump(tmp);
- if(m_pElseInstruction)m_pElseInstruction->dump(tmp);
}
bool KviKvsTreeNodeSpecialCommandIf::execute(KviKvsRunTimeContext * c)
diff --git a/src/kvirc/kvs/kvi_kvs_treenode_specialcommandwhile.cpp b/src/kvirc/kvs/kvi_kvs_treenode_specialcommandwhile.cpp
index ed16c0c16..9dbedd0e5 100644
--- a/src/kvirc/kvs/kvi_kvs_treenode_specialcommandwhile.cpp
+++ b/src/kvirc/kvs/kvi_kvs_treenode_specialcommandwhile.cpp
@@ -50,13 +50,8 @@ void KviKvsTreeNodeSpecialCommandWhile::contextDescription(QString &szBuffer)
szBuffer = "Special Command \"while\"";
}
-void KviKvsTreeNodeSpecialCommandWhile::dump(const char * prefix)
+void KviKvsTreeNodeSpecialCommandWhile::dump(const char *)
{
- qDebug("%s SpecialCommandWhile",prefix);
- QString tmp = prefix;
- tmp.append(" ");
- m_pExpression->dump(tmp);
- if(m_pInstruction)m_pInstruction->dump(tmp);
}
bool KviKvsTreeNodeSpecialCommandWhile::execute(KviKvsRunTimeContext * c)
diff --git a/src/kvirc/module/kvi_module.cpp b/src/kvirc/module/kvi_module.cpp
index b5c13f6ff..5e32f70a7 100644
--- a/src/kvirc/module/kvi_module.cpp
+++ b/src/kvirc/module/kvi_module.cpp
@@ -128,7 +128,7 @@ extern KVIRC_API KviModuleExtensionManager * g_pModuleExtensionManager;
// FIXME: #warning "Move all the modules to the new locking method ?"
-KviModule::KviModule(kvi_library_t handle,KviModuleInfo * info,const char * name,const char * filename)
+KviModule::KviModule(kvi_library_t handle,KviModuleInfo * info,const QString &name,const QString &filename)
: KviKvsModuleInterface()
{
m_dlHandle = handle;
@@ -352,14 +352,16 @@ void * KviModule::getSymbol(const char * symname)
void KviModule::getDefaultConfigFileName(KviStr &buffer)
{
- KviStr szName(KviStr::Format,"libkvi%s.kvc",m_szName.ptr());
- g_pApp->getLocalKvircDirectory(buffer,KviApp::ConfigPlugins,szName.ptr());
+ QString tmp = "libkvi";
+ tmp += m_szName;
+ tmp += ".kvc";
+ g_pApp->getLocalKvircDirectory(buffer,KviApp::ConfigPlugins,tmp);
}
void KviModule::getDefaultConfigFileName(QString &szBuffer)
{
QString tmp = "libkvi";
- tmp += m_szName.ptr();
+ tmp += m_szName;
tmp += ".kvc";
g_pApp->getLocalKvircDirectory(szBuffer,KviApp::ConfigPlugins,tmp);
}
diff --git a/src/kvirc/module/kvi_module.h b/src/kvirc/module/kvi_module.h
index 175ddab5e..3f5ba2ad2 100644
--- a/src/kvirc/module/kvi_module.h
+++ b/src/kvirc/module/kvi_module.h
@@ -140,12 +140,12 @@ class KVIRC_API KviModule : public KviKvsModuleInterface
friend class KviModuleManager;
friend class KviUserParser;
protected:
- KviModule(kvi_library_t handle,KviModuleInfo * info,const char * name,const char * filename);
+ KviModule(kvi_library_t handle,KviModuleInfo * info,const QString &name,const QString &filename);
public:
~KviModule(); // must be public for KviPointerList
private:
- KviStr m_szName;
- KviStr m_szFileName;
+ QString m_szName;
+ QString m_szFileName;
KviModuleInfo * m_pModuleInfo;
kvi_library_t m_dlHandle;
unsigned int m_uLock;
@@ -155,9 +155,9 @@ protected:
unsigned int secondsSinceLastAccess();
public:
// name of this module: always low case , single word
- const char * name(){ return m_szName.ptr(); };
+ const QString & name(){ return m_szName; };
// filename of this module (with NO path): formatted as "libkvi%s.so",name()
- const char * filename(){ return m_szFileName.ptr(); };
+ const QString & filename(){ return m_szFileName; };
kvi_library_t handle(){ return m_dlHandle; };
KviModuleInfo * moduleInfo(){ return m_pModuleInfo; };
diff --git a/src/kvirc/module/kvi_moduleextension.cpp b/src/kvirc/module/kvi_moduleextension.cpp
index 4564f9564..5ded00b79 100644
--- a/src/kvirc/module/kvi_moduleextension.cpp
+++ b/src/kvirc/module/kvi_moduleextension.cpp
@@ -143,9 +143,9 @@ void KviModuleExtensionManager::unregisterExtensionsByModule(KviModule * m)
}
}
-KviModuleExtensionDescriptorList * KviModuleExtensionManager::allocateExtensionGetDescriptorList(const KviStr &szType,const char * preloadModule)
+KviModuleExtensionDescriptorList * KviModuleExtensionManager::allocateExtensionGetDescriptorList(const KviStr &szType,const QString &preloadModule)
{
- if(preloadModule)
+ if(!preloadModule.isEmpty())
{
KviModule * m = g_pModuleManager->getModule(preloadModule);
(void)m; // get rid of the unused warning :D
@@ -175,7 +175,7 @@ KviModuleExtensionDescriptor * KviModuleExtensionManager::findExtensionDescripto
return 0;
}
-KviModuleExtension * KviModuleExtensionManager::allocateExtension(const KviStr &szType,const KviStr &szName,KviWindow * pWnd,KviPointerHashTable<QString,QVariant> * pParams,void * pSpecial,const char * preloadModule)
+KviModuleExtension * KviModuleExtensionManager::allocateExtension(const KviStr &szType,const KviStr &szName,KviWindow * pWnd,KviPointerHashTable<QString,QVariant> * pParams,void * pSpecial,const QString &preloadModule)
{
KviModuleExtensionDescriptorList * l = allocateExtensionGetDescriptorList(szType,preloadModule);
if(!l)return 0;
@@ -202,7 +202,7 @@ KviModuleExtension * KviModuleExtensionManager::allocateExtension(const KviStr &
}
-KviModuleExtension * KviModuleExtensionManager::allocateExtension(const KviStr &szType,int id,KviWindow * pWnd,KviPointerHashTable<QString,QVariant> * pParams,void * pSpecial,const char * preloadModule)
+KviModuleExtension * KviModuleExtensionManager::allocateExtension(const KviStr &szType,int id,KviWindow * pWnd,KviPointerHashTable<QString,QVariant> * pParams,void * pSpecial,const QString &preloadModule)
{
KviModuleExtensionDescriptorList * l = allocateExtensionGetDescriptorList(szType,preloadModule);
if(!l)return 0;
diff --git a/src/kvirc/module/kvi_moduleextension.h b/src/kvirc/module/kvi_moduleextension.h
index 1c4c1f686..e72144e92 100644
--- a/src/kvirc/module/kvi_moduleextension.h
+++ b/src/kvirc/module/kvi_moduleextension.h
@@ -116,10 +116,10 @@ public:
KviModuleExtensionDescriptor * findExtensionDescriptor(const KviStr &szType,const KviStr &szName);
static KviModuleExtensionManager * instance(){ return g_pModuleExtensionManager; };
KviModuleExtensionDescriptorList * getExtensionList(const KviStr &szType);
- KviModuleExtension * allocateExtension(const KviStr &szType,const KviStr &szName,KviWindow * pWnd = 0,KviPointerHashTable<QString,QVariant> * pParams = 0,void * pSpecial = 0,const char * preloadModule = 0);
- KviModuleExtension * allocateExtension(const KviStr &szType,int id,KviWindow * pWnd = 0,KviPointerHashTable<QString,QVariant> * pParams = 0,void * pSpecial = 0,const char * preloadModule = 0);
+ KviModuleExtension * allocateExtension(const KviStr &szType,const KviStr &szName,KviWindow * pWnd = 0,KviPointerHashTable<QString,QVariant> * pParams = 0,void * pSpecial = 0,const QString &preloadModule = QString());
+ KviModuleExtension * allocateExtension(const KviStr &szType,int id,KviWindow * pWnd = 0,KviPointerHashTable<QString,QVariant> * pParams = 0,void * pSpecial = 0,const QString &preloadModule = QString());
private:
- KviModuleExtensionDescriptorList * allocateExtensionGetDescriptorList(const KviStr &szType,const char * preloadModule);
+ KviModuleExtensionDescriptorList * allocateExtensionGetDescriptorList(const KviStr &szType,const QString &preloadModule);
};
diff --git a/src/kvirc/module/kvi_modulemanager.cpp b/src/kvirc/module/kvi_modulemanager.cpp
index e9a184900..72bbb25cc 100644
--- a/src/kvirc/module/kvi_modulemanager.cpp
+++ b/src/kvirc/module/kvi_modulemanager.cpp
@@ -43,7 +43,7 @@ KviModuleManager * g_pModuleManager = 0;
KviModuleManager::KviModuleManager()
{
- m_pModuleDict = new KviPointerHashTable<const char *,KviModule>(17,false);
+ m_pModuleDict = new KviPointerHashTable<QString,KviModule>(17,false);
m_pModuleDict->setAutoDelete(false);
m_pCleanupTimer = new QTimer(this);
@@ -58,31 +58,35 @@ KviModuleManager::~KviModuleManager()
}
-void KviModuleManager::loadModulesByCaps(const char * caps,const char * dir)
+void KviModuleManager::loadModulesByCaps(const QString &caps,const QString &dir)
{
- KviStr szCapsPath(KviStr::Format,"%s%ccaps%c%s%c",dir,KVI_PATH_SEPARATOR_CHAR,
- KVI_PATH_SEPARATOR_CHAR,caps,KVI_PATH_SEPARATOR_CHAR);
+ QString szCapsPath = dir;
+ szCapsPath += KVI_PATH_SEPARATOR_CHAR;
+ szCapsPath += "caps";
+ szCapsPath += KVI_PATH_SEPARATOR_CHAR;
+ szCapsPath += caps;
+ szCapsPath += KVI_PATH_SEPARATOR_CHAR;
- QDir d(QString(szCapsPath.ptr()));
+ QDir d(szCapsPath);
// FIXME: maybe check timestamps ? (old modules)
QStringList sl = d.entryList(QDir::Files | QDir::Readable | QDir::NoSymLinks);
for(QStringList::Iterator it = sl.begin();it != sl.end();++it)
{
- KviStr modname = *it;
- modname.cutToLast(KVI_PATH_SEPARATOR_CHAR);
- getModule((*it).ascii());
+ QString modname = *it;
+ KviQString::cutToLast(modname,KVI_PATH_SEPARATOR_CHAR);
+ getModule(modname);
}
}
-void KviModuleManager::loadModulesByCaps(const char * caps)
+void KviModuleManager::loadModulesByCaps(const QString &caps)
{
- KviStr szDir;
+ QString szDir;
g_pApp->getLocalKvircDirectory(szDir,KviApp::Plugins);
- loadModulesByCaps(caps,szDir.ptr());
+ loadModulesByCaps(caps,szDir);
g_pApp->getGlobalKvircDirectory(szDir,KviApp::Plugins);
- loadModulesByCaps(caps,szDir.ptr());
+ loadModulesByCaps(caps,szDir);
}
void KviModuleManager::completeModuleNames(const QString &path,const QString &word,KviPointerList<QString> * matches)
@@ -122,14 +126,14 @@ void KviModuleManager::completeModuleNames(const QString &word,KviPointerList<QS
completeModuleNames(szDir,word,matches);
}
-KviModule * KviModuleManager::findModule(const char * modName)
+KviModule * KviModuleManager::findModule(const QString &modName)
{
KviModule * m = m_pModuleDict->find(modName);
if(m)m->updateAccessTime();
return m;
}
-KviModule * KviModuleManager::getModule(const char * modName)
+KviModule * KviModuleManager::getModule(const QString &modName)
{
KviModule * m = m_pModuleDict->find(modName);
if(!m)
@@ -154,7 +158,7 @@ static bool default_module_cmd_unload(KviModule *m,KviCommand *)
}
*/
-bool KviModuleManager::loadModule(const char * modName)
+bool KviModuleManager::loadModule(const QString &modName)
{
if(findModule(modName))
{
@@ -164,9 +168,9 @@ bool KviModuleManager::loadModule(const char * modName)
QString tmp;
QString szName;
#ifdef COMPILE_ON_WINDOWS
- KviQString::appendFormatted(szName,"kvi%s.dll",modName);
+ KviQString::appendFormatted(szName,"kvi%Q.dll",&modName);
#else
- KviQString::appendFormatted(szName,"libkvi%s.so",modName);
+ KviQString::appendFormatted(szName,"libkvi%Q.so",&modName);
#endif
szName=szName.lower();
@@ -258,7 +262,7 @@ bool KviModuleManager::loadModule(const char * modName)
if(_OUTPUT_VERBOSE && !g_pApp->closingDown())
{
if(g_pFrame)g_pFrame->firstConsole()->output(KVI_OUT_VERBOSE,
- __tr2qs("Loaded module '%s' (%s)"),modName,szName.toUtf8().data());
+ __tr2qs("Loaded module '%s' (%s)"),modName.toUtf8().data(),szName.toUtf8().data());
}
return true;
}
@@ -271,7 +275,7 @@ void KviModuleManager::registerDefaultCommands(KviModule * module)
module->registerCommand("unload",default_module_cmd_unload);
}
*/
-bool KviModuleManager::unloadModule(const char * modName)
+bool KviModuleManager::unloadModule(const QString &modName)
{
return unloadModule(findModule(modName));
}
@@ -285,15 +289,15 @@ bool KviModuleManager::unloadModule(KviModule * module)
{
(module->moduleInfo()->cleanup_routine)(module);
}
- KviStr szModName = module->name();
+ QString szModName = module->name();
kvi_library_close(module->handle());
//debug("Closing module %s, dlclose returns %d",szModName.ptr(),dlclose(module->handle()));
- m_pModuleDict->remove(szModName.ptr());
+ m_pModuleDict->remove(szModName);
delete module;
// unload the message catalogues, if any
- KviLocale::unloadCatalogue(szModName.ptr());
+ KviLocale::unloadCatalogue(szModName);
if(m_pModuleDict->isEmpty())
{
@@ -303,14 +307,14 @@ bool KviModuleManager::unloadModule(KviModule * module)
if(_OUTPUT_VERBOSE && !g_pApp->closingDown())
{
if(g_pFrame)g_pFrame->firstConsole()->output(KVI_OUT_VERBOSE,
- __tr2qs("Unloaded module '%s'"),szModName.ptr());
+ __tr2qs("Unloaded module '%s'"),szModName.toUtf8().data());
}
return true;
}
bool KviModuleManager::hasLockedModules()
{
- KviPointerHashTableIterator<const char *,KviModule> it(*m_pModuleDict);
+ KviPointerHashTableIterator<QString,KviModule> it(*m_pModuleDict);
while(KviModule * m = it.current())
{
if(m->isLocked())return true;
@@ -322,7 +326,7 @@ bool KviModuleManager::hasLockedModules()
void KviModuleManager::cleanupUnusedModules()
{
- KviPointerHashTableIterator<const char *,KviModule> it(*m_pModuleDict);
+ KviPointerHashTableIterator<QString,KviModule> it(*m_pModuleDict);
KviPointerList<KviModule> lModulesToUnload;
lModulesToUnload.setAutoDelete(false);
@@ -354,7 +358,7 @@ void KviModuleManager::cleanupUnusedModules()
void KviModuleManager::unloadAllModules()
{
- KviPointerHashTableIterator<const char *,KviModule> it(*m_pModuleDict);
+ KviPointerHashTableIterator<QString,KviModule> it(*m_pModuleDict);
KviPointerList<KviModule> lModulesToUnload;
lModulesToUnload.setAutoDelete(false);
diff --git a/src/kvirc/module/kvi_modulemanager.h b/src/kvirc/module/kvi_modulemanager.h
index 0dfa53e7c..1476c4bf9 100644
--- a/src/kvirc/module/kvi_modulemanager.h
+++ b/src/kvirc/module/kvi_modulemanager.h
@@ -40,20 +40,20 @@ public:
KviModuleManager();
~KviModuleManager();
private:
- KviPointerHashTable<const char *,KviModule> * m_pModuleDict;
+ KviPointerHashTable<QString,KviModule> * m_pModuleDict;
QTimer * m_pCleanupTimer;
KviStr m_szLastError;
public:
KviStr & lastError(){ return m_szLastError; };
- KviModule * findModule(const char * modName);
- KviModule * getModule(const char * modName);
- bool loadModule(const char * modName);
- bool unloadModule(const char * modName);
+ KviModule * findModule(const QString &modName);
+ KviModule * getModule(const QString &modName);
+ bool loadModule(const QString &modName);
+ bool unloadModule(const QString &modName);
bool unloadModule(KviModule * module);
void unloadAllModules();
//void registerDefaultCommands(KviModule * module);
- void loadModulesByCaps(const char * caps,const char * dir);
- void loadModulesByCaps(const char * caps);
+ void loadModulesByCaps(const QString &caps,const QString &dir);
+ void loadModulesByCaps(const QString &caps);
bool hasLockedModules();
void completeModuleNames(const QString &word,KviPointerList<QString> * matches);
protected:
diff --git a/src/kvirc/sparser/kvi_sp_ctcp.cpp b/src/kvirc/sparser/kvi_sp_ctcp.cpp
index 5c88cc623..a32caf7f4 100644
--- a/src/kvirc/sparser/kvi_sp_ctcp.cpp
+++ b/src/kvirc/sparser/kvi_sp_ctcp.cpp
@@ -398,8 +398,6 @@ void KviServerParser::encodeCtcpParameter(const char * param,KviStr &buffer,bool
}
const char * begin = param;
-
- bool bMustQuote = false;
while(*param)
{
@@ -478,8 +476,6 @@ void KviServerParser::encodeCtcpParameter(const char * parametr,QString &resultB
return;
}
- bool bMustQuote = false;
-
while(*param)
{
switch(*param)
@@ -947,11 +943,17 @@ bool KviServerParser::checkCtcpFlood(KviCtcpMessage *msg)
}
-void KviServerParser::replyCtcp(KviCtcpMessage *msg,const char * data)
+void KviServerParser::replyCtcp(KviCtcpMessage *msg,const QString &data)
{
KviQCString szNick = msg->msg->connection()->encodeText(msg->pSource->nick());
- msg->msg->connection()->sendFmtData("NOTICE %s :%c%s %s%c",
- szNick.data(),0x01,msg->msg->connection()->encodeText(msg->szTag).data(),msg->msg->connection()->encodeText(data).data(),0x01);
+ msg->msg->connection()->sendFmtData(
+ "NOTICE %s :%c%s %s%c",
+ szNick.data(),
+ 0x01,
+ msg->msg->connection()->encodeText(msg->szTag).data(),
+ msg->msg->connection()->encodeText(data).data(),
+ 0x01
+ );
}
void KviServerParser::echoCtcpReply(KviCtcpMessage * msg)
@@ -1015,8 +1017,8 @@ void KviServerParser::echoCtcpRequest(KviCtcpMessage *msg)
} else bIsChannel = true;
}
- QString szRequest = pOut->decodeText(req);
- QString szTag = pOut->decodeText(msg->szTag);
+ QString szRequest = req;
+ QString szTag = msg->szTag;
QString szWhat = bIsChannel ? __tr2qs("Channel CTCP") : QString("CTCP");
if(msg->bIsFlood)
@@ -1048,7 +1050,7 @@ void KviServerParser::parseCtcpRequestPing(KviCtcpMessage *msg)
{
if(!KVI_OPTION_BOOL(KviOption_boolIgnoreCtcpPing))
{
- replyCtcp(msg,msg->pData);
+ replyCtcp(msg,msg->msg->connection()->encodeText(msg->pData));
} else msg->bIgnored = true;
}
@@ -1159,7 +1161,7 @@ void KviServerParser::parseCtcpRequestVersion(KviCtcpMessage *msg)
szVersion.append(sz);
}
}
- replyCtcp(msg,szVersion.toUtf8().data());
+ replyCtcp(msg,szVersion);
} else msg->bIgnored = true;
}
@@ -1202,7 +1204,7 @@ void KviServerParser::parseCtcpRequestUserinfo(KviCtcpMessage *msg)
szReply += KVI_OPTION_STRING(KviOption_stringCtcpUserInfoOther);
}
if(szReply.isEmpty())szReply = KVI_DEFAULT_CTCP_USERINFO_REPLY;
- replyCtcp(msg,szReply.toUtf8().data());
+ replyCtcp(msg,szReply);
} else msg->bIgnored = true;
}
@@ -1243,14 +1245,14 @@ void KviServerParser::parseCtcpRequestClientinfo(KviCtcpMessage *msg)
szTag.toUpper();
if(szTag.isEmpty())
{
- KviStr reply("KVIrc " KVI_VERSION " '" KVI_RELEASE_NAME "' " KVI_SOURCES_DATE " - http://www.kvirc.net - Supported tags: ");
+ QString reply("KVIrc " KVI_VERSION " '" KVI_RELEASE_NAME "' " KVI_SOURCES_DATE " - http://www.kvirc.net - Supported tags: ");
for(int i=0;ctcpTagTable[i][0];i++)
{
- reply.append(ctcpTagTable[i][0]);
- if(ctcpTagTable[i + 1][0])reply.append(',');
+ reply += ctcpTagTable[i][0];
+ if(ctcpTagTable[i + 1][0])reply += ",";
}
- reply.append(" - Use 'CLIENTINFO <tag>' for a description of each tag");
- replyCtcp(msg,reply.ptr());
+ reply += " - Use 'CLIENTINFO <tag>' for a description of each tag";
+ replyCtcp(msg,reply);
} else {
bool bFound = false;
for(int i=0;ctcpTagTable[i][0] && !bFound;i++)
@@ -1306,7 +1308,7 @@ void KviServerParser::parseCtcpRequestSource(KviCtcpMessage *msg)
version+=" :";
version+= KVI_OPTION_STRING(KviOption_stringCtcpSourcePostfix);
}
- replyCtcp(msg,version.toUtf8().data());
+ replyCtcp(msg,version);
} else msg->bIgnored = true;
}
@@ -1498,7 +1500,7 @@ void KviServerParser::parseCtcpRequestAvatar(KviCtcpMessage *msg)
szFileName.replace(" ","_");
// escape the spaces with the right octal code
- encodeCtcpParameter(szFileName,szReply);
+ encodeCtcpParameter(szFileName.toUtf8().data(),szReply);
if(!a->isRemote())
@@ -1519,7 +1521,7 @@ void KviServerParser::parseCtcpRequestAvatar(KviCtcpMessage *msg)
}
szReply.append(szGenderTag);
- replyCtcp(msg,szReply.toUtf8().data());
+ replyCtcp(msg,szReply);
}
} else {
// no avatar set.. ignore channel requests if the user wishes
@@ -1752,7 +1754,7 @@ void KviServerParser::parseCtcpRequestDcc(KviCtcpMessage *msg)
__tr2qs("Processing DCC %Q request from \r!n\r%Q\r [%Q@\r!h\r%Q\r] (%s %s)"),
&decoded,&(msg->pSource->nick()),
&(msg->pSource->user()),&(msg->pSource->host()),
- msg->msg->console()->decodeText(msg->szTag).data(),
+ msg->szTag.toUtf8().data(),
msg->msg->console()->decodeText(aux.ptr()).data());
}
diff --git a/src/kvirc/sparser/kvi_sp_literal.cpp b/src/kvirc/sparser/kvi_sp_literal.cpp
index cb2cd0dd9..3dfce2f9f 100644
--- a/src/kvirc/sparser/kvi_sp_literal.cpp
+++ b/src/kvirc/sparser/kvi_sp_literal.cpp
@@ -1507,7 +1507,7 @@ void KviServerParser::parseLiteralNick(KviIrcMessage *msg)
{
// the target SHOULD have changed his nick here
if(!q->nickChange(szNick,szNewNick))
- debug("Internal error: query %s failed to change nick from %s to s",szNick.toUtf8().data(),szNick.toUtf8().data(),szNewNick.toUtf8().data());
+ debug("Internal error: query %s failed to change nick from %s to %s",szNick.toUtf8().data(),szNick.toUtf8().data(),szNewNick.toUtf8().data());
if(!msg->haltOutput())
q->output(KVI_OUT_NICK,__tr2qs("\r!n\r%Q\r [%Q@\r!h\r%Q\r] is now known as \r!n\r%Q\r"),
&szNick,&szUser,&szHost,&szNewNick);
@@ -1715,7 +1715,7 @@ void KviServerParser::parseChannelMode(const QString &szNick,const QString &szUs
case 'k':
if(bSet)aParam = msg->safeParam(curParam++);
else aParam = "";
- chan->setChannelKey(aParam);
+ chan->setChannelKey(aParam.toUtf8().data());
if(bSet) {
if(KVS_TRIGGER_EVENT_4_HALTED(KviEvent_OnKeySet,chan,szNick,szUser,szHost,aParam))
@@ -1738,7 +1738,7 @@ void KviServerParser::parseChannelMode(const QString &szNick,const QString &szUs
case 'l':
if(bSet)aParam = msg->safeParam(curParam++);
else aParam = "";
- chan->setChannelLimit(aParam);
+ chan->setChannelLimit(aParam.toUtf8().data());
if(bSet) {
if(KVS_TRIGGER_EVENT_4_HALTED(KviEvent_OnLimitSet,chan,szNick,szUser,szHost,aParam))
diff --git a/src/kvirc/sparser/kvi_sparser.h b/src/kvirc/sparser/kvi_sparser.h
index 88b099fa7..1fb551bf3 100644
--- a/src/kvirc/sparser/kvi_sparser.h
+++ b/src/kvirc/sparser/kvi_sparser.h
@@ -71,7 +71,7 @@ typedef struct _KviCtcpMessage
bool bIsFlood;
bool bUnknown;
- QString szTag;
+ QString szTag;
} KviCtcpMessage;
typedef struct _KviDccRequest
@@ -228,7 +228,7 @@ private:
void parseCtcpReply(KviCtcpMessage *msg);
void echoCtcpRequest(KviCtcpMessage *msg);
void echoCtcpReply(KviCtcpMessage *msg);
- void replyCtcp(KviCtcpMessage *msg,const char * data);
+ void replyCtcp(KviCtcpMessage *msg,const QString &data);
bool checkCtcpFlood(KviCtcpMessage *msg);
void parseCtcpRequestPing(KviCtcpMessage *msg);
diff --git a/src/kvirc/ui/kvi_channel.cpp b/src/kvirc/ui/kvi_channel.cpp
index 80a33f9de..1bbd45410 100644
--- a/src/kvirc/ui/kvi_channel.cpp
+++ b/src/kvirc/ui/kvi_channel.cpp
@@ -89,7 +89,7 @@
// FIXME: #warning "OnChannelFlood event...."
-KviChannel::KviChannel(KviFrame * lpFrm,KviConsole * lpConsole,const char * name)
+KviChannel::KviChannel(KviFrame * lpFrm,KviConsole * lpConsole,const QString &name)
: KviWindow(KVI_WINDOW_TYPE_CHANNEL,lpFrm,name,lpConsole)
{
// Init some member variables
@@ -105,7 +105,7 @@ KviChannel::KviChannel(KviFrame * lpFrm,KviConsole * lpConsole,const char * name
m_pActionHistory->setAutoDelete(true);
m_uActionHistoryHotActionCount = 0;
- m_pTmpHighLighted = new KviPointerHashTable<const char *,QString>();
+ m_pTmpHighLighted = new KviPointerHashTable<QString,QString>();
m_pTmpHighLighted->setAutoDelete(true);
// Register ourselves
@@ -576,14 +576,14 @@ void KviChannel::setChannelLimit(const char * limit)
updateCaption();
}
-void KviChannel::addHighlightedUser(const char * nick)
+void KviChannel::addHighlightedUser(const QString &nick)
{
if(!m_pUserListView->findEntry(nick))return;
else
m_pTmpHighLighted->replace(nick,new QString());
}
-void KviChannel::removeHighlightedUser(const char * nick)
+void KviChannel::removeHighlightedUser(const QString &nick)
{
m_pTmpHighLighted->remove(nick);
}
diff --git a/src/kvirc/ui/kvi_channel.h b/src/kvirc/ui/kvi_channel.h
index 603383150..461e47516 100644
--- a/src/kvirc/ui/kvi_channel.h
+++ b/src/kvirc/ui/kvi_channel.h
@@ -108,7 +108,7 @@ class KVIRC_API KviChannel : public KviWindow
{
Q_OBJECT
public:
- KviChannel(KviFrame * lpFrm,KviConsole * lpConsole,const char * name);
+ KviChannel(KviFrame * lpFrm,KviConsole * lpConsole,const QString &name);
~KviChannel();
protected:
QSplitter * m_pTopSplitter;
@@ -137,7 +137,7 @@ protected:
KviPixmap m_privateBackground;
QDateTime m_joinTime;
QString m_szNameWithUserFlag;
- KviPointerHashTable<const char *,QString> * m_pTmpHighLighted;
+ KviPointerHashTable<QString,QString> * m_pTmpHighLighted;
unsigned int m_uActionHistoryHotActionCount;
KviPointerList<KviChannelAction> * m_pActionHistory;
kvi_time_t m_tLastReceivedWhoReply;
@@ -280,9 +280,9 @@ public:
bool hasChannelKey() { return !m_szChannelKey.isEmpty(); };
QString & channelKey(){ return m_szChannelKey; };
- void addHighlightedUser(const char * nick);
- void removeHighlightedUser(const char * nick);
- bool isHighlightedUser(const char * nick) { return m_pTmpHighLighted->find(nick); };
+ void addHighlightedUser(const QString &nick);
+ void removeHighlightedUser(const QString &nick);
+ bool isHighlightedUser(const QString &nick) { return m_pTmpHighLighted->find(nick); };
KviIrcView * messageView() const { return m_pMessageView; };
virtual void lostUserFocus();
virtual void getTaskBarTipText(QString &buffer);
diff --git a/src/kvirc/ui/kvi_frame.cpp b/src/kvirc/ui/kvi_frame.cpp
index d498ba45c..c7f621f4b 100644
--- a/src/kvirc/ui/kvi_frame.cpp
+++ b/src/kvirc/ui/kvi_frame.cpp
@@ -482,7 +482,7 @@ void KviFrame::executeInternalCommand(int index)
}
-void KviFrame::saveWindowProperties(KviWindow * wnd,const char * szSection)
+void KviFrame::saveWindowProperties(KviWindow * wnd,const QString &szSection)
{
g_pWinPropertiesConfig->setGroup(szSection);
g_pWinPropertiesConfig->writeEntry("EntryTimestamp",(unsigned int)time(0));
@@ -720,18 +720,6 @@ void KviFrame::undockWindow(KviWindow *wnd)
wnd->setFocus();
}
-bool KviFrame::event(QEvent *e)
-{
- switch(e->type())
- {
- case QEvent::Shortcut:
- {
- debug ("Shortcut");
- return true;
- }
- }
- return KviTalMainWindow::event(e);
-}
void KviFrame::newConsole()
{
diff --git a/src/kvirc/ui/kvi_frame.h b/src/kvirc/ui/kvi_frame.h
index 98469f19b..d643455a1 100644
--- a/src/kvirc/ui/kvi_frame.h
+++ b/src/kvirc/ui/kvi_frame.h
@@ -160,7 +160,7 @@ public:
// and the active irc context changes state
void updateCaption();
// helper for saving the window properties
- void saveWindowProperties(KviWindow * wnd,const char * szSection);
+ void saveWindowProperties(KviWindow * wnd,const QString &szSection);
// finds the module extension toolbar with the specified identifier
// see kvi_moduleextension.h and kvi_mextoolbar.h
KviMexToolBar * moduleExtensionToolBar(int extensionId);
@@ -241,7 +241,6 @@ protected:
private:
void saveToolBarPositions();
void restoreToolBarPositions();
- bool event(QEvent *e);
};
#ifndef _KVI_FRAME_CPP_
diff --git a/src/kvirc/ui/kvi_input.cpp b/src/kvirc/ui/kvi_input.cpp
index 8f2b5c9f3..f98fdde46 100644
--- a/src/kvirc/ui/kvi_input.cpp
+++ b/src/kvirc/ui/kvi_input.cpp
@@ -132,7 +132,7 @@ void KviInputHistory::add(QString * s)
if(m_pStringList->count() > KVI_INPUT_MAX_GLOBAL_HISTORY_ENTRIES)m_pStringList->removeLast();
}
-void KviInputHistory::load(const char * filename)
+void KviInputHistory::load(const QString &filename)
{
KviConfig c(filename,KviConfig::Read);
@@ -150,7 +150,7 @@ void KviInputHistory::load(const char * filename)
}
}
-void KviInputHistory::save(const char * filename)
+void KviInputHistory::save(const QString &filename)
{
KviConfig c(filename,KviConfig::Write);
c.clear();
diff --git a/src/kvirc/ui/kvi_input.h b/src/kvirc/ui/kvi_input.h
index 0cb6ba12a..e46a3453b 100644
--- a/src/kvirc/ui/kvi_input.h
+++ b/src/kvirc/ui/kvi_input.h
@@ -67,8 +67,8 @@ protected:
public:
void add(QString * s);
KviPointerList<QString> * list(){ return m_pStringList; };
- void save(const char * filename);
- void load(const char * filename);
+ void save(const QString &filename);
+ void load(const QString &filename);
};
#define QIMEvent QInputMethodEvent
diff --git a/src/kvirc/ui/kvi_ircview.cpp b/src/kvirc/ui/kvi_ircview.cpp
index be79a9642..289bb234f 100644
--- a/src/kvirc/ui/kvi_ircview.cpp
+++ b/src/kvirc/ui/kvi_ircview.cpp
@@ -519,7 +519,7 @@ void KviIrcView::stopLogging()
if(m_pLogFile)
{
QString szLogEnd;
- szLogEnd.sprintf(__tr2qs("### Log session terminated at %s ###"),QDateTime::currentDateTime().toString().toUtf8().data());
+ KviQString::sprintf(szLogEnd,__tr2qs("### Log session terminated at %s ###"),QDateTime::currentDateTime().toString().toUtf8().data());
add2Log(szLogEnd);
m_pLogFile->close();
@@ -693,7 +693,7 @@ bool KviIrcView::startLogging(const QString& fname,bool bPrependCurBuffer)
}
QString szLogStart;
- szLogStart.sprintf(__tr2qs("### Log session started at %s ###"),QDateTime::currentDateTime().toString().toUtf8().data());
+ KviQString::sprintf(szLogStart,__tr2qs("### Log session started at %s ###"),QDateTime::currentDateTime().toString().toUtf8().data());
add2Log(szLogStart);
if(bPrependCurBuffer)
{
diff --git a/src/kvirc/ui/kvi_ircview.h b/src/kvirc/ui/kvi_ircview.h
index add5fd68b..53fbcf788 100644
--- a/src/kvirc/ui/kvi_ircview.h
+++ b/src/kvirc/ui/kvi_ircview.h
@@ -207,7 +207,7 @@ public slots:
signals:
void rightClicked();
void dndEntered();
- void fileDropped(const char *);
+ void fileDropped(const QString &);
private:
void setCursorLine(KviIrcViewLine * l);
KviIrcViewLine * getVisibleLineAt(int xPos,int yPos);
diff --git a/src/kvirc/ui/kvi_mdichild.cpp b/src/kvirc/ui/kvi_mdichild.cpp
index 115df63ee..475c32e52 100644
--- a/src/kvirc/ui/kvi_mdichild.cpp
+++ b/src/kvirc/ui/kvi_mdichild.cpp
@@ -544,7 +544,7 @@ void KviMdiChild::focusInEvent(QFocusEvent *)
#endif
}
-QSize KviMdiChild::sizeHint()
+QSize KviMdiChild::sizeHint() const
{
if(m_pClient)
{
diff --git a/src/kvirc/ui/kvi_mdichild.h b/src/kvirc/ui/kvi_mdichild.h
index 0b564dded..1829c3954 100644
--- a/src/kvirc/ui/kvi_mdichild.h
+++ b/src/kvirc/ui/kvi_mdichild.h
@@ -73,7 +73,7 @@ public:
const QString & xmlActiveCaption(){ return m_szXmlActiveCaption; };
const QString & xmlInactiveCaption(){ return m_szXmlInactiveCaption; };
void setWindowTitle(const QString & plain,const QString & xmlActive,const QString & xmlInactive);
- virtual QSize sizeHint();
+ virtual QSize sizeHint() const;
void setIcon(const QPixmap &pix);
const QPixmap * icon();
void enableClose(bool bEnable);
diff --git a/src/kvirc/ui/kvi_modeeditor.cpp b/src/kvirc/ui/kvi_modeeditor.cpp
index e79e69037..fc708c7c4 100644
--- a/src/kvirc/ui/kvi_modeeditor.cpp
+++ b/src/kvirc/ui/kvi_modeeditor.cpp
@@ -46,7 +46,7 @@
// FIXME: This widget should use a KviTalScrollView!
-KviModeEditor::KviModeEditor(QWidget * par,KviWindowToolPageButton* button,const char * nam,KviConsole * c,const char * mode,const char * key,const char * limit)
+KviModeEditor::KviModeEditor(QWidget * par,KviWindowToolPageButton* button,const char * nam,KviConsole * c,const QString &mode,const QString &key,const QString &limit)
: KviWindowToolWidget(par,button)
{
m_szMode = mode;
@@ -131,11 +131,11 @@ KviModeEditor::KviModeEditor(QWidget * par,KviWindowToolPageButton* button,const
m_pLimitEdit->setEnabled(isEnabled);
i++;
g->addMultiCellWidget(m_pLimitEdit,i,i,1,2);
- if(m_szLimit.hasData())
+ if(!m_szLimit.isEmpty())
{
m_pLimitBox->setChecked(true);
// m_pLimitEdit->setEnabled(true);
- m_pLimitEdit->setText(m_szLimit.ptr());
+ m_pLimitEdit->setText(m_szLimit);
} else {
m_pLimitEdit->setEnabled(false);
}
@@ -150,11 +150,11 @@ KviModeEditor::KviModeEditor(QWidget * par,KviWindowToolPageButton* button,const
m_pKeyEdit->setEnabled(isEnabled);
i++;
g->addMultiCellWidget(m_pKeyEdit,i,i,1,2);
- if(m_szKey.hasData())
+ if(!m_szKey.isEmpty())
{
m_pKeyBox->setChecked(true);
// m_pLimitEdit->setEnabled(true);
- m_pKeyEdit->setText(m_szKey.ptr());
+ m_pKeyEdit->setText(m_szKey);
} else {
m_pKeyEdit->setEnabled(false);
}
@@ -222,60 +222,59 @@ void KviModeEditor::commit()
KviStr szPlusModes;
KviStr szMinusModes;
- if(m_szKey.hasData())
+ if(!m_szKey.isEmpty())
{
// had a key before
if(m_pKeyBox->isChecked())
{
// still have it
- KviStr tmp = m_pKeyEdit->text();
- tmp.stripWhiteSpace();
- if(tmp.hasData())
+ QString tmp = m_pKeyEdit->text().stripWhiteSpace();
+ if(!tmp.isEmpty())
{
- if(!kvi_strEqualCI(tmp.ptr(),m_szKey.ptr()))
+ if(tmp != m_szKey)
{
// not the same key!
// set the new one
- KviStr mode(KviStr::Format,"-k %s",m_szKey.ptr());
+ KviStr mode(KviStr::Format,"-k %s",m_szKey.toUtf8().data()); // FIXME: assuming utf8 is wrong here!
emit setMode(mode.ptr());
- mode.sprintf("+k %s",tmp.ptr());
+ mode.sprintf("+k %s",tmp.toUtf8().data());
emit setMode(mode.ptr());
}
}
} else {
// no key now! reset
- KviStr mode(KviStr::Format,"-k %s",m_szKey.ptr());
+ KviStr mode(KviStr::Format,"-k %s",m_szKey.toUtf8().data());
emit setMode(mode.ptr());
}
} else {
// there was no key before
if(m_pKeyBox->isChecked())
{
- KviStr tmp = m_pKeyEdit->text();
- tmp.stripWhiteSpace();
- if(tmp.hasData())
+ QString tmp = m_pKeyEdit->text().stripWhiteSpace();
+ if(!tmp.isEmpty())
{
// new key to be set
- KviStr mode(KviStr::Format,"+k %s",tmp.ptr());
+ KviStr mode(KviStr::Format,"+k %s",tmp.toUtf8().data());
emit setMode(mode.ptr());
}
}
}
- if(m_szLimit.hasData())
+ if(!m_szLimit.isEmpty())
{
// had a limit before
if(m_pLimitBox->isChecked())
{
// still have it
- KviStr tmp = m_pLimitEdit->text();
- tmp.stripWhiteSpace();
- if(tmp.hasData() && tmp.isUnsignedNum())
+ QString tmp = m_pLimitEdit->text().stripWhiteSpace();
+ bool bOk;
+ unsigned int uLimit = tmp.toUInt(&bOk);
+ if(bOk)
{
- if(!kvi_strEqualCI(tmp.ptr(),m_szLimit.ptr()))
+ if(m_szLimit != tmp)
{
// not the same limit!
- KviStr mode(KviStr::Format,"+l %s",tmp.ptr());
+ KviStr mode(KviStr::Format,"+l %u",uLimit);
emit setMode(mode.ptr());
}
}
@@ -287,12 +286,13 @@ void KviModeEditor::commit()
// there was no limit before
if(m_pLimitBox->isChecked())
{
- KviStr tmp = m_pLimitEdit->text();
- tmp.stripWhiteSpace();
- if(tmp.hasData() && tmp.isUnsignedNum())
+ QString tmp = m_pLimitEdit->text().stripWhiteSpace();
+ bool bOk;
+ unsigned int uLimit = tmp.toUInt(&bOk);
+ if(bOk)
{
// new limit to be set
- KviStr mode(KviStr::Format,"+l %s",tmp.ptr());
+ KviStr mode(KviStr::Format,"+l %u",uLimit);
emit setMode(mode.ptr());
}
}
diff --git a/src/kvirc/ui/kvi_modeeditor.h b/src/kvirc/ui/kvi_modeeditor.h
index 6035fff72..590869753 100644
--- a/src/kvirc/ui/kvi_modeeditor.h
+++ b/src/kvirc/ui/kvi_modeeditor.h
@@ -46,12 +46,12 @@ class KVIRC_API KviModeEditor : public KviWindowToolWidget
{
Q_OBJECT
public:
- KviModeEditor(QWidget * par,KviWindowToolPageButton* button,const char * nam,KviConsole * c,const char * mode,const char * key,const char * limit);
+ KviModeEditor(QWidget * par,KviWindowToolPageButton* button,const char * nam,KviConsole * c,const QString &mode,const QString &key,const QString &limit);
~KviModeEditor();
protected: // fields
- KviStr m_szMode;
- KviStr m_szKey;
- KviStr m_szLimit;
+ QString m_szMode;
+ QString m_szKey;
+ QString m_szLimit;
KviPointerList<KviStyledCheckBox> * m_pCheckBoxes;
KviStyledCheckBox * m_pLimitBox;
QLineEdit * m_pLimitEdit;
diff --git a/src/kvirc/ui/kvi_scriptbutton.cpp b/src/kvirc/ui/kvi_scriptbutton.cpp
index 18b2cd592..ad0cd4978 100644
--- a/src/kvirc/ui/kvi_scriptbutton.cpp
+++ b/src/kvirc/ui/kvi_scriptbutton.cpp
@@ -67,23 +67,7 @@ void KviScriptUserButton::btnClicked()
vList.append((kvs_int_t)pos.y());
m_pScript->run(pWnd,&vList,0,KviKvsScript::PreserveParams);
}
-/*
-KviIrcToolBarScriptButton::KviIrcToolBarScriptButton(QToolBar * p,const char * name)
-: KviScriptUserButton(p,name)
-{
- setAutoRaise(true);
-}
-
-KviIrcToolBarScriptButton::~KviIrcToolBarScriptButton()
-{
-}
-
-KviWindow * KviIrcToolBarScriptButton::window()
-{
- return g_pActiveWindow;
-}
-*/
KviWindowScriptButton::KviWindowScriptButton(QWidget * p,KviWindow * wnd,const char * name)
: KviScriptUserButton(p,name)
diff --git a/src/kvirc/ui/kvi_scriptbutton.h b/src/kvirc/ui/kvi_scriptbutton.h
index 80e0b1d65..741aa5062 100644
--- a/src/kvirc/ui/kvi_scriptbutton.h
+++ b/src/kvirc/ui/kvi_scriptbutton.h
@@ -43,26 +43,12 @@ protected:
public:
void setButtonCode(KviKvsScript * pScript);
virtual void setButtonPixmap(const QPixmap & pix){ setIconSet(pix); };
- void setButtonText(const char * text){ setTextLabel(text); };
+ void setButtonText(const QString &text){ setTextLabel(text); };
virtual KviWindow * window();
protected slots:
void btnClicked();
};
-/*
-class KVIRC_API KviIrcToolBarScriptButton : public KviScriptUserButton
-{
- Q_OBJECT
-public:
- KviIrcToolBarScriptButton(QToolBar * p,const char * name);
- ~KviIrcToolBarScriptButton();
-protected:
- KviStr m_szCode;
-public:
- virtual KviWindow * window();
-};
-*/
-
class KVIRC_API KviWindowScriptButton : public KviScriptUserButton
{
Q_OBJECT
diff --git a/src/kvirc/ui/kvi_selectors.cpp b/src/kvirc/ui/kvi_selectors.cpp
index d36979ef3..07bfb336e 100644
--- a/src/kvirc/ui/kvi_selectors.cpp
+++ b/src/kvirc/ui/kvi_selectors.cpp
@@ -269,15 +269,17 @@ void KviPixmapSelector::choosePixmap()
}
}
-void KviPixmapSelector::setImagePath(const char * path)
+void KviPixmapSelector::setImagePath(const QString &path)
{
m_localPixmap.load(path);
m_pPreview->setPixmap(&m_localPixmap);
if(m_localPixmap.isNull())
{
- KviStr tmp2(KviStr::Format,__tr("Unloadable: %s"),path);
- m_pFileNameLabel->setText(tmp2.ptr());
+ QString tmp = __tr2qs("Unloadable");
+ tmp += ": ";
+ tmp += path;
+ m_pFileNameLabel->setText(tmp);
m_pCheckBox->setChecked(false);
} else {
m_pCheckBox->setChecked(true);
diff --git a/src/kvirc/ui/kvi_selectors.h b/src/kvirc/ui/kvi_selectors.h
index 4159e9ec6..14210a8d4 100644
--- a/src/kvirc/ui/kvi_selectors.h
+++ b/src/kvirc/ui/kvi_selectors.h
@@ -146,7 +146,7 @@ private:
KviPixmap * m_pOption;
KviPixmap m_localPixmap;
public:
- void setImagePath(const char * path);
+ void setImagePath(const QString &path);
virtual void commit();
virtual void setEnabled(bool bEnabled);
protected slots:
diff --git a/src/kvirc/ui/kvi_styled_controls.cpp b/src/kvirc/ui/kvi_styled_controls.cpp
index 32787d863..e4a8d922e 100644
--- a/src/kvirc/ui/kvi_styled_controls.cpp
+++ b/src/kvirc/ui/kvi_styled_controls.cpp
@@ -240,8 +240,8 @@ KviStyledToolButton::KviStyledToolButton( QWidget * parent, const char * name )
resizeEvent(0);
}
-KviStyledToolButton::KviStyledToolButton ( const QIcon & iconSet, const QString & textLabel, const QString & grouptext, QObject * receiver, const char * slot, KviTalToolBar * parent, const char * name )
-: QToolButton(iconSet,textLabel,grouptext,receiver,slot,parent,name), KviStyledControl(this), bShowSubmenuIndicator(false)
+KviStyledToolButton::KviStyledToolButton ( const QIcon & iconSet, const QString & textLabel, const QString & grouptext, QObject * receiver, const char * slot, KviTalToolBar * parent, const QString &name)
+: QToolButton(iconSet,textLabel,grouptext,receiver,slot,parent,name.toUtf8().data()), KviStyledControl(this), bShowSubmenuIndicator(false)
{
// setWFlags(WNoAutoErase);
resizeEvent(0);
diff --git a/src/kvirc/ui/kvi_styled_controls.h b/src/kvirc/ui/kvi_styled_controls.h
index 6980389cf..f1436a8e7 100644
--- a/src/kvirc/ui/kvi_styled_controls.h
+++ b/src/kvirc/ui/kvi_styled_controls.h
@@ -40,13 +40,15 @@ class KviTalToolBar;
#define KVI_STYLE_COLOR_DIFF 60
#define KVI_STYLE_TIMER_STEP 18
+// FIXME: THIS STUFF SHOULD BE REMOVED.
+// HARDCODING STYLES IS A BAD GUI PRACTICE.
class KVIRC_API KviStyledControlInternal : public QObject
{
Q_OBJECT
public:
KviStyledControlInternal( KviStyledControl* control );
- ~KviStyledControlInternal();
+ virtual ~KviStyledControlInternal();
public slots:
virtual void paintTimerShot();
protected:
@@ -60,7 +62,7 @@ class KVIRC_API KviStyledControl
friend class KviStyledControlInternal;
public:
KviStyledControl(QWidget*);
- ~KviStyledControl();
+ virtual ~KviStyledControl();
protected:
virtual void enterEvent ( QEvent * );
virtual void leaveEvent ( QEvent * );
@@ -90,7 +92,7 @@ private:
bool bShowSubmenuIndicator;
public:
KviStyledToolButton ( QWidget * parent, const char * name = 0 );
- KviStyledToolButton ( const QIcon & iconSet, const QString & textLabel, const QString & grouptext, QObject * receiver, const char * slot, KviTalToolBar * parent, const char * name = 0 );
+ KviStyledToolButton ( const QIcon & iconSet, const QString & textLabel, const QString & grouptext, QObject * receiver, const char * slot, KviTalToolBar * parent, const QString &name=QString() );
~KviStyledToolButton();
void setShowSubmenuIndicator(bool bShow);
diff --git a/src/kvirc/ui/kvi_window.cpp b/src/kvirc/ui/kvi_window.cpp
index 4c0960606..c0ec11a3f 100644
--- a/src/kvirc/ui/kvi_window.cpp
+++ b/src/kvirc/ui/kvi_window.cpp
@@ -101,11 +101,8 @@ KviWindow::KviWindow(int type,KviFrame * lpFrm,const QString &name,KviConsole *
m_uId = g_uUniqueWindowId;
g_uUniqueWindowId++;
-
- // FIXME: REMOVE THIS
- setName(name);
- // END FIXME
m_szName = name;
+ setObjectName(name);
g_pApp->registerWindow(this);
@@ -168,6 +165,7 @@ KviWindow::~KviWindow()
void KviWindow::setWindowName(const QString &szName)
{
m_szName = szName;
+ setObjectName(szName);
emit windowNameChanged();
}
@@ -180,12 +178,6 @@ void KviWindow::toggleButtonContainer()
}
}
-void KviWindow::setName(const char * name)
-{
- m_szName = name;
- QWidget::setName(name);
-}
-
KviIrcConnection * KviWindow::connection()
{
return m_pContext ? m_pContext->connection() : 0;
@@ -833,7 +825,7 @@ void KviWindow::savePropertiesAsDefault()
QString group;
getConfigGroupName(group);
- if(!kvi_strEqualCI(group,typeString()))
+ if(!KviQString::equalCI(group,typeString()))
{
// save also the settings for THIS specialized window
g_pFrame->saveWindowProperties(this,group);
diff --git a/src/kvirc/ui/kvi_window.h b/src/kvirc/ui/kvi_window.h
index 88573fa34..4b8726bcd 100644
--- a/src/kvirc/ui/kvi_window.h
+++ b/src/kvirc/ui/kvi_window.h
@@ -173,8 +173,6 @@ public:
// THIS is the function that should be used
const QString & windowName(){ return m_szName; };
void setWindowName(const QString &szName);
- // force QT to set our UNICODE name too... FIXME: this should be removed later...
- virtual void setName(const char * szName);
// Window type management
int type() const { return m_iType; };
diff --git a/src/modules/dcc/libkvidcc.cpp b/src/modules/dcc/libkvidcc.cpp
index 1efb2a6ec..7909a53cd 100644
--- a/src/modules/dcc/libkvidcc.cpp
+++ b/src/modules/dcc/libkvidcc.cpp
@@ -1143,7 +1143,7 @@ static bool dcc_kvs_cmd_voice(KviKvsModuleCommandCall * c)
QString szCodec;
pCodec->asString(szCodec);
- if(!kvi_dcc_voice_is_valid_codec(szCodec))
+ if(!kvi_dcc_voice_is_valid_codec(szCodec.toUtf8().data()))
{
c->warning(__tr2qs_ctx("Invalid codec specified, defaulting to 'adpcm'","dcc"));
d->szCodec = "adpcm";
diff --git a/src/modules/dcc/marshal.cpp b/src/modules/dcc/marshal.cpp
index c67d3d010..06a947583 100644
--- a/src/modules/dcc/marshal.cpp
+++ b/src/modules/dcc/marshal.cpp
@@ -135,10 +135,10 @@ void KviDccMarshal::doListen()
}
// Check the address type
- if(!kvi_isValidStringIp(m_szIp))
+ if(!kvi_isValidStringIp(m_szIp.toUtf8().data()))
{
#ifdef COMPILE_IPV6_SUPPORT
- if(!kvi_isValidStringIp_V6(m_szIp))
+ if(!kvi_isValidStringIp_V6(m_szIp.toUtf8().data()))
{
emit error(KviError_invalidIpAddress);
return;
@@ -182,9 +182,9 @@ void KviDccMarshal::doListen()
if((!KVI_OPTION_BOOL(KviOption_boolUserDefinedPortRange)) || (m_uPort != 0))
{
#ifdef COMPILE_IPV6_SUPPORT
- KviSockaddr sa(m_szIp,m_uPort,m_bIpV6);
+ KviSockaddr sa(m_szIp.toUtf8().data(),m_uPort,m_bIpV6);
#else
- KviSockaddr sa(m_szIp,m_uPort,false);
+ KviSockaddr sa(m_szIp.toUtf8().data(),m_uPort,false);
#endif
if(!sa.socketAddress())
@@ -207,9 +207,9 @@ void KviDccMarshal::doListen()
bool bBindSuccess;
do {
#ifdef COMPILE_IPV6_SUPPORT
- KviSockaddr sa(m_szIp,m_uPort,m_bIpV6);
+ KviSockaddr sa(m_szIp.toUtf8().data(),m_uPort,m_bIpV6);
#else
- KviSockaddr sa(m_szIp,m_uPort,false);
+ KviSockaddr sa(m_szIp.toUtf8().data(),m_uPort,false);
#endif
if(!sa.socketAddress())
{
@@ -323,10 +323,10 @@ void KviDccMarshal::doConnect()
}
// Check the address type
- if(!kvi_isValidStringIp(m_szIp))
+ if(!kvi_isValidStringIp(m_szIp.toUtf8().data()))
{
#ifdef COMPILE_IPV6_SUPPORT
- if(!kvi_isValidStringIp_V6(m_szIp))
+ if(!kvi_isValidStringIp_V6(m_szIp.toUtf8().data()))
{
emit error(KviError_invalidIpAddress);
return;
@@ -372,9 +372,9 @@ void KviDccMarshal::doConnect()
// fill the sockaddr structure
#ifdef COMPILE_IPV6_SUPPORT
- KviSockaddr sa(m_szIp,m_uPort,m_bIpV6);
+ KviSockaddr sa(m_szIp.toUtf8().data(),m_uPort,m_bIpV6);
#else
- KviSockaddr sa(m_szIp,m_uPort,false);
+ KviSockaddr sa(m_szIp.toUtf8().data(),m_uPort,false);
#endif
if(!sa.socketAddress())
diff --git a/src/modules/dcc/requests.cpp b/src/modules/dcc/requests.cpp
index f72dfab39..308b084df 100644
--- a/src/modules/dcc/requests.cpp
+++ b/src/modules/dcc/requests.cpp
@@ -92,9 +92,10 @@ static bool dcc_module_check_concurrent_transfers_limit(KviDccRequest * dcc)
unsigned int uTransfers = KviDccFileTransfer::runningTransfersCount();
if(uTransfers >= KVI_OPTION_UINT(KviOption_uintMaxDccSendTransfers))
{
- KviStr szError(KviStr::Format,__tr2qs_ctx("Concurrent transfer limit reached (%u of %u transfers running)","dcc"),
+ QString szError;
+ KviQString::sprintf(szError,__tr2qs_ctx("Concurrent transfer limit reached (%u of %u transfers running)","dcc"),
uTransfers,KVI_OPTION_UINT(KviOption_uintMaxDccSendTransfers));
- dcc_module_request_error(dcc,szError.ptr());
+ dcc_module_request_error(dcc,szError);
return false;
}
}
@@ -108,9 +109,10 @@ static bool dcc_module_check_limits(KviDccRequest * dcc)
unsigned int uWindows = g_pDccBroker->dccWindowsCount();
if(uWindows >= KVI_OPTION_UINT(KviOption_uintMaxDccSlots))
{
- KviStr szError(KviStr::Format,__tr2qs_ctx("Slot limit reached (%u slots of %u)","dcc"),
+ QString szError;
+ KviQString::sprintf(szError,__tr2qs_ctx("Slot limit reached (%u slots of %u)","dcc"),
uWindows,KVI_OPTION_UINT(KviOption_uintMaxDccSlots));
- dcc_module_request_error(dcc,szError.ptr());
+ dcc_module_request_error(dcc,szError);
return false;
}
}
@@ -152,8 +154,9 @@ static bool dcc_module_normalize_target_data(KviDccRequest * dcc,KviStr &ipaddr,
{
if(!dcc->ctcpMsg->msg->haltOutput())
{
- KviStr szError(KviStr::Format,__tr2qs_ctx("Invalid port number %s","dcc"),port.ptr());
- dcc_module_request_error(dcc,szError.ptr());
+ QString szError;
+ KviQString::sprintf(szError,__tr2qs_ctx("Invalid port number %s","dcc"),port.ptr());
+ dcc_module_request_error(dcc,szError);
}
return false;
}
@@ -168,8 +171,9 @@ static bool dcc_module_normalize_target_data(KviDccRequest * dcc,KviStr &ipaddr,
{
if(!dcc->ctcpMsg->msg->haltOutput())
{
- KviStr szError(KviStr::Format,__tr2qs_ctx("Invalid IP address in old format %s","dcc"),ipaddr.ptr());
- dcc_module_request_error(dcc,szError.ptr());
+ QString szError;
+ KviQString::sprintf(szError,__tr2qs_ctx("Invalid IP address in old format %s","dcc"),ipaddr.ptr());
+ dcc_module_request_error(dcc,szError);
}
return false;
}
@@ -187,8 +191,9 @@ static bool dcc_module_normalize_target_data(KviDccRequest * dcc,KviStr &ipaddr,
#endif
if(!dcc->ctcpMsg->msg->haltOutput())
{
- KviStr szError(KviStr::Format,__tr2qs_ctx("Invalid IP address %s","dcc"),ipaddr.ptr());
- dcc_module_request_error(dcc,szError.ptr());
+ QString szError;
+ KviQString::sprintf(szError,__tr2qs_ctx("Invalid IP address %s","dcc"),ipaddr.ptr());
+ dcc_module_request_error(dcc,szError);
}
return false;
}
@@ -524,8 +529,9 @@ static void dccModuleParseDccAccept(KviDccRequest *dcc)
//#warning "IF KviOption_boolReplyCtcpErrmsgOnInvalidAccept..."
if(!dcc->ctcpMsg->msg->haltOutput())
{
- KviStr szError(KviStr::Format,__tr2qs_ctx("Can't proceed with DCC RECV: Transfer not initiated for file %s on port %s","dcc"),dcc->szParam1.ptr(),dcc->szParam2.ptr());
- dcc_module_request_error(dcc,szError.ptr());
+ QString szError;
+ KviQString::sprintf(szError,__tr2qs_ctx("Can't proceed with DCC RECV: Transfer not initiated for file %s on port %s","dcc"),dcc->szParam1.ptr(),dcc->szParam2.ptr());
+ dcc_module_request_error(dcc,szError);
}
}
}
@@ -549,8 +555,9 @@ static void dccModuleParseDccResume(KviDccRequest *dcc)
{
if(!dcc->ctcpMsg->msg->haltOutput())
{
- KviStr szError(KviStr::Format,__tr2qs_ctx("Invalid resume position argument '%s'","dcc"),dcc->szParam3.ptr());
- dcc_module_request_error(dcc,szError.ptr());
+ QString szError;
+ KviQString::sprintf(szError,__tr2qs_ctx("Invalid resume position argument '%s'","dcc"),dcc->szParam3.ptr());
+ dcc_module_request_error(dcc,szError);
}
return;
}
@@ -560,10 +567,11 @@ static void dccModuleParseDccResume(KviDccRequest *dcc)
//#warning "IF KviOption_boolReplyCtcpErrmsgOnInvalidResume..."
if(!dcc->ctcpMsg->msg->haltOutput())
{
- KviStr szError(KviStr::Format,
+ QString szError;
+ KviQString::sprintf(szError,
__tr2qs_ctx("Can't proceed with DCC SEND: Transfer not initiated for file %s on port %s, or invalid resume size","dcc"),
dcc->szParam1.ptr(),dcc->szParam2.ptr());
- dcc_module_request_error(dcc,szError.ptr());
+ dcc_module_request_error(dcc,szError);
}
}
}
@@ -624,9 +632,10 @@ static void dccModuleParseDccRecv(KviDccRequest * dcc)
if(uResumeSize >= o->fileSize())
{
// senseless request
- KviStr szError(KviStr::Format,
+ QString szError;
+ KviQString::sprintf(szError,
__tr2qs_ctx("Invalid RECV request: Position %u is is larger than file size","dcc"),uResumeSize);
- dcc_module_request_error(dcc,szError.ptr());
+ dcc_module_request_error(dcc,szError);
return;
}
@@ -841,13 +850,14 @@ static void dccModuleParseDccGet(KviDccRequest *dcc)
{
if(!dcc->ctcpMsg->msg->haltOutput())
{
- KviStr szError(KviStr::Format,
+ QString szError;
+ KviQString::sprintf(szError,
__tr2qs_ctx("No file offer named '%s' (with size %s) available for %Q [%Q@%Q]","dcc"),
dcc->szParam1.ptr(),uSize > 0 ? dcc->szParam2.ptr() : __tr_ctx("\"any\"","dcc"),
&(dcc->ctcpMsg->pSource->nick()),
&(dcc->ctcpMsg->pSource->username()),
&(dcc->ctcpMsg->pSource->host()));
- dcc_module_request_error(dcc,szError.ptr());
+ dcc_module_request_error(dcc,szError);
}
return;
}
@@ -1143,8 +1153,9 @@ KVIMODULEEXPORTFUNC void dccModuleCtcpDccParseRoutine(KviDccRequest *dcc)
// ops...we don't know this dcc type
if(!dcc->ctcpMsg->msg->haltOutput())
{
- KviStr szError(KviStr::Format,
+ QString szError;
+ KviQString::sprintf(szError,
__tr2qs_ctx("Unknown DCC type '%s'","dcc"),dcc->szType.ptr());
- dcc_module_request_error(dcc,szError.ptr());
+ dcc_module_request_error(dcc,szError);
}
}
diff --git a/src/modules/dcc/send.cpp b/src/modules/dcc/send.cpp
index 115f5b026..ec91460bc 100644
--- a/src/modules/dcc/send.cpp
+++ b/src/modules/dcc/send.cpp
@@ -257,8 +257,8 @@ void KviDccRecvThread::run()
// Readed something useful...write back
if((m_pOpt->iTotalFileSize > -1) && ((readLen + (int)m_pFile->at()) > m_pOpt->iTotalFileSize))
{
- postMessageEvent(__tr2qs_ctx("WARNING: The peer is sending garbage data past the end of the file","dcc"));
- postMessageEvent(__tr2qs_ctx("WARNING: Ignoring data past the declared end of file and closing the connection","dcc"));
+ postMessageEvent(__tr_no_lookup_ctx("WARNING: The peer is sending garbage data past the end of the file","dcc"));
+ postMessageEvent(__tr_no_lookup_ctx("WARNING: Ignoring data past the declared end of file and closing the connection","dcc"));
readLen = m_pOpt->iTotalFileSize - m_pFile->at();
if(readLen > 0)
@@ -359,14 +359,14 @@ void KviDccRecvThread::run()
{
iProbableTerminationTime = (int)kvi_unixTime();
m_pFile->flush();
- postMessageEvent(__tr2qs_ctx("Data transfer terminated, waiting 30 seconds for the peer to close the connection...","dcc"));
+ postMessageEvent(__tr_no_lookup_ctx("Data transfer terminated, waiting 30 seconds for the peer to close the connection...","dcc"));
// FIXME: Close the file ?
} else {
int iDiff = (((int)kvi_unixTime()) - iProbableTerminationTime);
if(iDiff > 30)
{
// success if we got the whole file or if we don't know the file size (we trust the peer)
- postMessageEvent(__tr2qs_ctx("Data transfer was terminated 30 seconds ago, closing the connection","dcc"));
+ postMessageEvent(__tr_no_lookup_ctx("Data transfer was terminated 30 seconds ago, closing the connection","dcc"));
KviThreadEvent * e = new KviThreadEvent(KVI_DCC_THREAD_EVENT_SUCCESS);
postEvent(parent(),e);
break;
diff --git a/src/modules/options/optw_connection.cpp b/src/modules/options/optw_connection.cpp
index 26922549f..66ae40d71 100644
--- a/src/modules/options/optw_connection.cpp
+++ b/src/modules/options/optw_connection.cpp
@@ -161,7 +161,9 @@ KviTransportOptionsWidget::KviTransportOptionsWidget(QWidget * parent)
connect(b,SIGNAL(toggled(bool)),s,SLOT(setEnabled(bool)));
#endif //!COMPILE_IPV6_SUPPORT
- addRowSpacer(0,4,0,4);
+ addBoolSelector(0,4,0,4,__tr2qs_ctx("Pick Random IP Address for Round-Robin Servers","options"),KviOption_boolPickRandomIpAddressForRoundRobinServers);
+
+ addRowSpacer(0,5,0,5);
}
KviTransportOptionsWidget::~KviTransportOptionsWidget()
diff --git a/src/modules/trayicon/libkvitrayicon.cpp b/src/modules/trayicon/libkvitrayicon.cpp
index aa3e8edae..a33e2ce06 100644
--- a/src/modules/trayicon/libkvitrayicon.cpp
+++ b/src/modules/trayicon/libkvitrayicon.cpp
@@ -56,7 +56,7 @@
#define ICON_SIZE 22
#endif
-extern KVIRC_API KviPointerHashTable<const char *,KviWindow> * g_pGlobalWindowDict;
+extern KVIRC_API KviPointerHashTable<QString,KviWindow> * g_pGlobalWindowDict;
static KviPointerList<KviTrayIcon> * g_pTrayIconList = 0;
static QPixmap * g_pDock1 = 0;
@@ -212,7 +212,7 @@ void KviTrayIcon::doAway(int id)
{
if(id<0)
{
- KviPointerHashTableIterator<const char *,KviWindow> it(*g_pGlobalWindowDict);
+ KviPointerHashTableIterator<QString,KviWindow> it(*g_pGlobalWindowDict);
while(KviWindow * wnd = it.current())
{
if(wnd->type()==KVI_WINDOW_TYPE_CONSOLE)
@@ -257,7 +257,7 @@ void KviTrayIcon::fillContextPopup()
int iSeparator=m_pAwayPopup->insertSeparator();
- KviPointerHashTableIterator<const char *,KviWindow> it(*g_pGlobalWindowDict);
+ KviPointerHashTableIterator<QString,KviWindow> it(*g_pGlobalWindowDict);
bool bAllAway=1;
bool bAllUnaway=1;
int iNetCount=0;
diff --git a/src/modules/window/libkviwindow.cpp b/src/modules/window/libkviwindow.cpp
index 05d987d34..9e1e7ab2e 100644
--- a/src/modules/window/libkviwindow.cpp
+++ b/src/modules/window/libkviwindow.cpp
@@ -53,7 +53,7 @@
// kvi_app.cpp
-extern KVIRC_API KviPointerHashTable<const char *,KviWindow> * g_pGlobalWindowDict;
+extern KVIRC_API KviPointerHashTable<QString,KviWindow> * g_pGlobalWindowDict;
KviPointerList<KviUserWindow> * g_pUserWindowList = 0;
// $window.caption $window.x $window.y $window.width $window.height $window.isActive $window.type
@@ -857,7 +857,7 @@ static bool window_kvs_fnc_list(KviKvsModuleFunctionCall * c)
{
// all contexts but no "no_context" windows
bool bAllWindows = KviQString::equalCI(szType,"all");
- KviPointerHashTableIterator<const char *,KviWindow> it(*g_pGlobalWindowDict);
+ KviPointerHashTableIterator<QString,KviWindow> it(*g_pGlobalWindowDict);
while(KviWindow * wnd = it.current())
{
@@ -881,7 +881,7 @@ static bool window_kvs_fnc_list(KviKvsModuleFunctionCall * c)
{
// all contexts and also "no_context" windows
bool bAllWindows = KviQString::equalCI(szType.lower(),"all");
- KviPointerHashTableIterator<const char *,KviWindow> it(*g_pGlobalWindowDict);
+ KviPointerHashTableIterator<QString,KviWindow> it(*g_pGlobalWindowDict);
while(KviWindow * wnd = it.current())
{
@@ -902,7 +902,7 @@ static bool window_kvs_fnc_list(KviKvsModuleFunctionCall * c)
{
// only "no_context" windows
bool bAllWindows = KviQString::equalCI(szType.lower(),"all");
- KviPointerHashTableIterator<const char *,KviWindow> it(*g_pGlobalWindowDict);
+ KviPointerHashTableIterator<QString,KviWindow> it(*g_pGlobalWindowDict);
while(KviWindow * wnd = it.current())
{
@@ -947,7 +947,7 @@ static bool window_kvs_fnc_list(KviKvsModuleFunctionCall * c)
}
bool bAllWindows = KviQString::equalCI(szType.lower(),"all");
- KviPointerHashTableIterator<const char *,KviWindow> it(*g_pGlobalWindowDict);
+ KviPointerHashTableIterator<QString,KviWindow> it(*g_pGlobalWindowDict);
while(KviWindow * wnd = it.current())
{