From 16d42ec4616a84b046cd71f805a009b792a93ec9 Mon Sep 17 00:00:00 2001
From: Michele Calgaro <michele.calgaro@yahoo.it>
Date: Sat, 21 Feb 2026 11:03:45 +0900
Subject: Fix conversion of TQString to const char* (modules)

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
---
 src/kvirc/kernel/kvi_ircsocket.cpp               |  4 ++--
 src/kvirc/kernel/kvi_sslmaster.cpp               |  4 ++--
 src/modules/dcc/libkvidcc.cpp                    |  2 +-
 src/modules/dcc/marshal.cpp                      | 20 ++++++++++----------
 src/modules/dcc/requests.cpp                     | 22 +++++++++++-----------
 src/modules/dcc/send.cpp                         |  8 ++++----
 src/modules/dcc/voice.cpp                        |  8 ++++----
 src/modules/editor/scripteditor.cpp              |  4 ++--
 src/modules/links/linkswindow.cpp                |  4 ++--
 src/modules/mediaplayer/mp_interface.cpp         |  2 +-
 src/modules/mediaplayer/mp_mp3.cpp               | 18 +++++++++---------
 src/modules/mircimport/libkvimircimport.cpp      |  2 +-
 src/modules/objects/class_dockwindow.cpp         |  2 +-
 src/modules/objects/class_file.cpp               | 23 +++++++++++++++++------
 src/modules/objects/class_lineedit.cpp           |  2 +-
 src/modules/objects/class_multilineedit.cpp      |  2 +-
 src/modules/objects/class_painter.cpp            |  9 +++------
 src/modules/objects/class_socket.cpp             | 20 ++++++++++----------
 src/modules/objects/class_socket.h               |  4 ++--
 src/modules/objects/class_toolbutton.cpp         |  8 +++++---
 src/modules/objects/class_widget.cpp             |  2 +-
 src/modules/objects/class_wrapper.cpp            | 11 +++++------
 src/modules/objects/class_wrapper.h              |  4 ++--
 src/modules/objects/libkviobjects.cpp            |  6 +++---
 src/modules/options/libkvioptions.cpp            |  2 +-
 src/modules/options/optw_messages.cpp            |  7 ++++---
 src/modules/perlcore/KVIrc.xs                    |  6 +++---
 src/modules/perlcore/libkviperlcore.cpp          |  6 +++---
 src/modules/reguser/edituser.cpp                 |  7 ++-----
 src/modules/reguser/wizard.cpp                   |  4 ++--
 src/modules/reguser/wizard.h                     |  2 +-
 src/modules/setup/setupwizard.cpp                |  5 +++--
 src/modules/snd/libkvisnd.cpp                    |  2 +-
 src/modules/spaste/libkvispaste.cpp              |  2 +-
 src/modules/term/termwidget.cpp                  |  6 ++----
 src/modules/tip/libkvitip.cpp                    |  6 +++---
 src/modules/tip/libkvitip.h                      |  2 +-
 src/modules/torrent/tc_ktorrentdcopinterface.cpp | 14 ++++++--------
 src/modules/window/libkviwindow.cpp              |  2 +-
 39 files changed, 134 insertions(+), 130 deletions(-)

diff --git a/src/kvirc/kernel/kvi_ircsocket.cpp b/src/kvirc/kernel/kvi_ircsocket.cpp
index ac03b885..4905b098 100644
--- a/src/kvirc/kernel/kvi_ircsocket.cpp
+++ b/src/kvirc/kernel/kvi_ircsocket.cpp
@@ -914,7 +914,7 @@ void KviIrcSocket::proxySendTargetDataV5()
 #ifdef COMPILE_IPV6_SUPPORT
 		struct in6_addr ircInAddr;
 
-		if(!kvi_stringIpToBinaryIp_V6(m_pIrcServer->ip(),&ircInAddr))tqDebug("SOCKET INTERNAL ERROR IN IPV6 ADDR CONVERSION");
+		if(!kvi_stringIpToBinaryIp_V6(m_pIrcServer->ip().utf8().data(),&ircInAddr))tqDebug("SOCKET INTERNAL ERROR IN IPV6 ADDR CONVERSION");
 		kvi_memmove((void *)(bufToSend + 4),(void *)(&ircInAddr),4);
 		TQ_UINT16 port = (TQ_UINT16)htons(m_pIrcServer->port());
 		kvi_memmove((void *)(bufToSend + 20),(void *)&port,2);
@@ -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,__tr2qs("Current transmission cipher").utf8().data(),ci);
 		delete ci;
 	} else {
 		if(_OUTPUT_VERBOSE)
diff --git a/src/kvirc/kernel/kvi_sslmaster.cpp b/src/kvirc/kernel/kvi_sslmaster.cpp
index d4b22196..3b9194c9 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)
 	{
 		TQString tmp(__tr2qs("Peer X509 certificate"));
-		KviSSLMaster::printSSLCertificate(wnd,tmp,sc);
+		KviSSLMaster::printSSLCertificate(wnd,tmp.utf8().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)
 	{
 		TQString tmp(__tr2qs("Current transmission cipher"));
-		KviSSLMaster::printSSLCipherInfo(wnd,tmp,ci);
+		KviSSLMaster::printSSLCipherInfo(wnd,tmp.utf8().data(),ci);
 		delete ci;
 	} else wnd->outputNoFmt(KVI_OUT_SSL,__tr2qs("[SSL]: Can't find out the current cipher info"));
 }
diff --git a/src/modules/dcc/libkvidcc.cpp b/src/modules/dcc/libkvidcc.cpp
index de818ce4..d9ae6567 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)
 		TQString szCodec;
 		pCodec->asString(szCodec);
 
-		if(!kvi_dcc_voice_is_valid_codec(szCodec))
+		if(!kvi_dcc_voice_is_valid_codec(szCodec.utf8().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 92b12080..856c927b 100644
--- a/src/modules/dcc/marshal.cpp
+++ b/src/modules/dcc/marshal.cpp
@@ -138,10 +138,10 @@ void KviDccMarshal::doListen()
 	}
 
 	// Check the address type
-	if(!kvi_isValidStringIp(m_szIp))
+	if(!kvi_isValidStringIp(m_szIp.utf8().data()))
 	{
 #ifdef COMPILE_IPV6_SUPPORT
-		if(!kvi_isValidStringIp_V6(m_szIp))
+		if(!kvi_isValidStringIp_V6(m_szIp.utf8().data()))
 		{
 			emit error(KviError_invalidIpAddress);
 			return;
@@ -186,9 +186,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.utf8().data(),m_uPort,m_bIpV6);
 #else
-		KviSockaddr sa(m_szIp,m_uPort,false);
+		KviSockaddr sa(m_szIp.utf8().data(),m_uPort,false);
 #endif
 
 		if(!sa.socketAddress())
@@ -211,9 +211,9 @@ void KviDccMarshal::doListen()
 		bool bBindSuccess;
 		do {
 #ifdef COMPILE_IPV6_SUPPORT
-			KviSockaddr sa(m_szIp,m_uPort,m_bIpV6);
+			KviSockaddr sa(m_szIp.utf8().data(),m_uPort,m_bIpV6);
 #else
-			KviSockaddr sa(m_szIp,m_uPort,false);
+			KviSockaddr sa(m_szIp.utf8().data(),m_uPort,false);
 #endif
 			if(!sa.socketAddress())
 			{
@@ -327,10 +327,10 @@ void KviDccMarshal::doConnect()
 	}
 
 	// Check the address type
-	if(!kvi_isValidStringIp(m_szIp))
+	if(!kvi_isValidStringIp(m_szIp.utf8().data()))
 	{
 #ifdef COMPILE_IPV6_SUPPORT
-		if(!kvi_isValidStringIp_V6(m_szIp))
+		if(!kvi_isValidStringIp_V6(m_szIp.utf8().data()))
 		{
 			emit error(KviError_invalidIpAddress);
 			return;
@@ -376,9 +376,9 @@ void KviDccMarshal::doConnect()
 	// fill the sockaddr structure
 
 #ifdef COMPILE_IPV6_SUPPORT
-	KviSockaddr sa(m_szIp,m_uPort,m_bIpV6);
+	KviSockaddr sa(m_szIp.utf8().data(),m_uPort,m_bIpV6);
 #else
-	KviSockaddr sa(m_szIp,m_uPort,false);
+	KviSockaddr sa(m_szIp.utf8().data(),m_uPort,false);
 #endif
 
 	if(!sa.socketAddress())
diff --git a/src/modules/dcc/requests.cpp b/src/modules/dcc/requests.cpp
index 1d5b284b..a3ab1945 100644
--- a/src/modules/dcc/requests.cpp
+++ b/src/modules/dcc/requests.cpp
@@ -92,7 +92,7 @@ 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"),
+			KviStr szError(KviStr::Format,__tr2qs_ctx("Concurrent transfer limit reached (%u of %u transfers running)","dcc").utf8().data(),
 				uTransfers,KVI_OPTION_UINT(KviOption_uintMaxDccSendTransfers));
 			dcc_module_request_error(dcc,szError.ptr());
 			return false;
@@ -108,7 +108,7 @@ 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"),
+			KviStr szError(KviStr::Format,__tr2qs_ctx("Slot limit reached (%u slots of %u)","dcc").utf8().data(),
 				uWindows,KVI_OPTION_UINT(KviOption_uintMaxDccSlots));
 			dcc_module_request_error(dcc,szError.ptr());
 			return false;
@@ -153,7 +153,7 @@ 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());
+			KviStr szError(KviStr::Format,__tr2qs_ctx("Invalid port number %s","dcc").utf8().data(),port.ptr());
 			dcc_module_request_error(dcc,szError.ptr());
 		}
 		return false;
@@ -169,7 +169,7 @@ 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());
+				KviStr szError(KviStr::Format,__tr2qs_ctx("Invalid IP address in old format %s","dcc").utf8().data(),ipaddr.ptr());
 				dcc_module_request_error(dcc,szError.ptr());
 			}
 			return false;
@@ -188,7 +188,7 @@ 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());
+				KviStr szError(KviStr::Format,__tr2qs_ctx("Invalid IP address %s","dcc").utf8().data(),ipaddr.ptr());
 				dcc_module_request_error(dcc,szError.ptr());
 			}
 			return false;
@@ -525,7 +525,7 @@ 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());
+			KviStr szError(KviStr::Format,__tr2qs_ctx("Can't proceed with DCC RECV: Transfer not initiated for file %s on port %s","dcc").utf8().data(),dcc->szParam1.ptr(),dcc->szParam2.ptr());
 			dcc_module_request_error(dcc,szError.ptr());
 		}
 	}
@@ -550,7 +550,7 @@ 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());
+			KviStr szError(KviStr::Format,__tr2qs_ctx("Invalid resume position argument '%s'","dcc").utf8().data(),dcc->szParam3.ptr());
 			dcc_module_request_error(dcc,szError.ptr());
 		}
 		return;
@@ -562,7 +562,7 @@ static void dccModuleParseDccResume(KviDccRequest *dcc)
 		if(!dcc->ctcpMsg->msg->haltOutput())
 		{
 			KviStr szError(KviStr::Format,
-					__tr2qs_ctx("Can't proceed with DCC SEND: Transfer not initiated for file %s on port %s, or invalid resume size","dcc"),
+					__tr2qs_ctx("Can't proceed with DCC SEND: Transfer not initiated for file %s on port %s, or invalid resume size","dcc").utf8().data(),
 					dcc->szParam1.ptr(),dcc->szParam2.ptr());
 			dcc_module_request_error(dcc,szError.ptr());
 		}
@@ -626,7 +626,7 @@ static void dccModuleParseDccRecv(KviDccRequest * dcc)
 		{
 			// senseless request
 			KviStr szError(KviStr::Format,
-					__tr2qs_ctx("Invalid RECV request: Position %u is is larger than file size","dcc"),uResumeSize);
+					__tr2qs_ctx("Invalid RECV request: Position %u is is larger than file size","dcc").utf8().data(),uResumeSize);
 			dcc_module_request_error(dcc,szError.ptr());
 			return;
 		}
@@ -843,7 +843,7 @@ static void dccModuleParseDccGet(KviDccRequest *dcc)
 		if(!dcc->ctcpMsg->msg->haltOutput())
 		{
 			KviStr szError(KviStr::Format,
-					__tr2qs_ctx("No file offer named '%s' (with size %s) available for %Q [%Q@%Q]","dcc"),
+					__tr2qs_ctx("No file offer named '%s' (with size %s) available for %Q [%Q@%Q]","dcc").utf8().data(),
 					dcc->szParam1.ptr(),uSize > 0 ? dcc->szParam2.ptr() : __tr_ctx("\"any\"","dcc"),
 					&(dcc->ctcpMsg->pSource->nick()),
 					&(dcc->ctcpMsg->pSource->username()),
@@ -1148,7 +1148,7 @@ extern "C" KVIMODULEEXPORTFUNC void dccModuleCtcpDccParseRoutine(KviDccRequest *
 	if(!dcc->ctcpMsg->msg->haltOutput())
 	{
 		KviStr szError(KviStr::Format,
-				__tr2qs_ctx("Unknown DCC type '%s'","dcc"),dcc->szType.ptr());
+				__tr2qs_ctx("Unknown DCC type '%s'","dcc").utf8().data(),dcc->szType.ptr());
 		dcc_module_request_error(dcc,szError.ptr());
 	}
 }
diff --git a/src/modules/dcc/send.cpp b/src/modules/dcc/send.cpp
index ee7e96c6..d8522b97 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(__tr2qs_ctx("WARNING: The peer is sending garbage data past the end of the file","dcc").utf8().data());
+							postMessageEvent(__tr2qs_ctx("WARNING: Ignoring data past the declared end of file and closing the connection","dcc").utf8().data());
 
 							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(__tr2qs_ctx("Data transfer terminated, waiting 30 seconds for the peer to close the connection...","dcc").utf8().data());
 						// 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(__tr2qs_ctx("Data transfer was terminated 30 seconds ago, closing the connection","dcc").utf8().data());
 							KviThreadEvent * e = new KviThreadEvent(KVI_DCC_THREAD_EVENT_SUCCESS);
 							postEvent(parent(),e);
 							break;
diff --git a/src/modules/dcc/voice.cpp b/src/modules/dcc/voice.cpp
index ed0a9026..6a98313f 100644
--- a/src/modules/dcc/voice.cpp
+++ b/src/modules/dcc/voice.cpp
@@ -161,7 +161,7 @@ bool KviDccVoiceThread::checkSoundcard()
 
 	if(ioctl(m_soundFd,SNDCTL_DSP_GETCAPS,&caps) < 0)
 	{
-		postMessageEvent(__tr2qs_ctx("WARNING: failed to check the soundcard duplex capabilities: if this is a half-duplex soundcard , use the DCC VOICE option to force half-duplex algorithm","dcc"));
+		postMessageEvent(__tr2qs_ctx("WARNING: failed to check the soundcard duplex capabilities: if this is a half-duplex soundcard , use the DCC VOICE option to force half-duplex algorithm","dcc").utf8().data());
 		if(bOpened)closeSoundcard();
 		return false;
 	}
@@ -169,7 +169,7 @@ bool KviDccVoiceThread::checkSoundcard()
 	if(!(caps & DSP_CAP_DUPLEX))
 	{
 		m_pOpt->bForceHalfDuplex = true; // the device is half duplex...use it in that way
-		postMessageEvent(__tr2qs_ctx("Half duplex soundcard detected, you will not be able to talk and listen at the same time","dcc"));
+		postMessageEvent(__tr2qs_ctx("Half duplex soundcard detected, you will not be able to talk and listen at the same time","dcc").utf8().data());
 	}
 
 	if(bOpened)closeSoundcard();
@@ -210,7 +210,7 @@ bool KviDccVoiceThread::openSoundcard(int mode)
 	if(ioctl(m_soundFd,SNDCTL_DSP_SPEED,&speed)<0)goto exit_false;
 	if(speed != m_pOpt->iSampleRate)
 	{
-		KviStr tmp(KviStr::Format,__tr2qs_ctx("WARNING: failed to set the requested sample rate (%d): the device used closest match (%d)","dcc"),
+		KviStr tmp(KviStr::Format,__tr2qs_ctx("WARNING: failed to set the requested sample rate (%d): the device used closest match (%d)","dcc").utf8().data(),
 						m_pOpt->iSampleRate,speed);
 		postMessageEvent(tmp.ptr());
 	}
@@ -268,7 +268,7 @@ bool KviDccVoiceThread::openSoundcardWithDuplexOption(int openMode,int failMode)
 					if(!openSoundcard(openMode))return false;
 					if(!checkSoundcard())
 					{
-						postMessageEvent(__tr2qs_ctx("Ops...failed to test the soundcard capabilities...expect problems...","dcc"));
+						postMessageEvent(__tr2qs_ctx("Ops...failed to test the soundcard capabilities...expect problems...","dcc").utf8().data());
 					}
 				} // else the test has been done and it is a full duplex card that is just busy
 			}
diff --git a/src/modules/editor/scripteditor.cpp b/src/modules/editor/scripteditor.cpp
index 185c2115..618b8997 100644
--- a/src/modules/editor/scripteditor.cpp
+++ b/src/modules/editor/scripteditor.cpp
@@ -249,7 +249,7 @@ void KviScriptEditorWidget::slotFind()
 
 void KviScriptEditorWidget::slotReplace()
 {
-	KviScriptEditorReplaceDialog *dialog=new KviScriptEditorReplaceDialog(this,tr("Find & Replace"));
+	KviScriptEditorReplaceDialog *dialog=new KviScriptEditorReplaceDialog(this,tr("Find & Replace").utf8().data());
 	connect (dialog,TQ_SIGNAL(replaceAll(const TQString &,const TQString &)),m_pParent,TQ_SLOT(slotReplaceAll(const TQString &,const TQString &)));
 	connect (dialog,TQ_SIGNAL(initFind()),m_pParent,TQ_SLOT(slotInitFind()));
 	connect (dialog,TQ_SIGNAL(nextFind(const TQString &)),m_pParent,TQ_SLOT(slotNextFind(const TQString &)));
@@ -988,7 +988,7 @@ void KviScriptEditorImplementation::setText(const KviTQCString &txt)
 
 void KviScriptEditorImplementation::getText(KviTQCString &txt)
 {
-	txt = m_pEditor->text();
+	txt = m_pEditor->text().utf8();
 }
 TQLineEdit * KviScriptEditorImplementation::getFindlineedit()
 {
diff --git a/src/modules/links/linkswindow.cpp b/src/modules/links/linkswindow.cpp
index 68e09019..1b012b71 100644
--- a/src/modules/links/linkswindow.cpp
+++ b/src/modules/links/linkswindow.cpp
@@ -122,7 +122,7 @@ void KviLinksWindow::connectionStateChange()
 	m_pRequestButton->setEnabled(st == KviIrcContext::Connected);
 	if(st == KviIrcContext::Connected)
 	{
-		KviStr tmp(KviStr::Format,__tr2qs("Connected to %s (%s)"),m_pConsole->connection()->currentServerName().utf8().data(),m_pConsole->currentNetworkName().utf8().data());
+		KviStr tmp(KviStr::Format,__tr2qs("Connected to %s (%s)").utf8().data(),m_pConsole->connection()->currentServerName().utf8().data(),m_pConsole->currentNetworkName().utf8().data());
 		m_pInfoLabel->setText(tmp.ptr());
 	} else {
 		m_pInfoLabel->setText(__tr2qs("Links cannot be requested: Not connected to a server"));
@@ -235,7 +235,7 @@ void KviLinksWindow::endOfLinks()
 				output(KVI_OUT_SYSTEMERROR,__tr2qs("Broken link: Missing parent (%s) for %s (%d hops): %s (used /LINKS <mask> ?)"),
 					l->parent.ptr(),l->host.ptr(),l->hops,l->description.ptr());
 				brokenLinks++;
-				KviStr tmp(KviStr::Format,__tr2qs("%s: Parent link %s"),l->description.ptr(),l->parent.ptr());
+				KviStr tmp(KviStr::Format,__tr2qs("%s: Parent link %s").utf8().data(),l->description.ptr(),l->parent.ptr());
 				KviStr tmp2(KviStr::Format,"%d",l->hops);
 				if(root)it = new KviTalListViewItem(m_pListView,root,TQString(l->host.ptr()),TQString(tmp2.ptr()),TQString(tmp.ptr()));
 				else {
diff --git a/src/modules/mediaplayer/mp_interface.cpp b/src/modules/mediaplayer/mp_interface.cpp
index 283f551c..d3675623 100644
--- a/src/modules/mediaplayer/mp_interface.cpp
+++ b/src/modules/mediaplayer/mp_interface.cpp
@@ -30,7 +30,7 @@
 
 static TQTextCodec * mediaplayer_get_codec()
 {
-	TQTextCodec * c= TQTextCodec::codecForName(KVI_OPTION_STRING(KviOption_stringWinampTextEncoding)); 
+	TQTextCodec * c= TQTextCodec::codecForName(KVI_OPTION_STRING(KviOption_stringWinampTextEncoding).utf8().data()); 
 	if(!c)c = TQTextCodec::codecForLocale(); 
 	return c;
 
diff --git a/src/modules/mediaplayer/mp_mp3.cpp b/src/modules/mediaplayer/mp_mp3.cpp
index 8000a9a4..f25a2d26 100644
--- a/src/modules/mediaplayer/mp_mp3.cpp
+++ b/src/modules/mediaplayer/mp_mp3.cpp
@@ -43,6 +43,8 @@
 #include <tqfileinfo.h>
 #include <tqtextcodec.h>
 
+#include <tuple>
+
 #define MAXGENRE   147
 #define GENREROWS  50
 
@@ -396,9 +398,7 @@ int get_id3(mp3info *mp3)
 		{
 			retcode |= 4;
 		} else {
-			// silence warning about ignoring return value of fread
-			[[maybe_unused]] size_t _unused = 0;
-			_unused = fread(fbuf,1,3,mp3->file); fbuf[3] = '\0';
+			std::ignore = fread(fbuf,1,3,mp3->file); fbuf[3] = '\0';
 			mp3->id3.genre[0]=255;
 			
 			if(!strcmp((const char *)"TAG",(const char *)fbuf))
@@ -406,16 +406,16 @@ int get_id3(mp3info *mp3)
 				mp3->id3_isvalid=1;
 				mp3->datasize -= 128;
 				fseek(mp3->file, -125, SEEK_END);
-				_unused = fread(mp3->id3.title,1,30,mp3->file); mp3->id3.title[30] = '\0';
-				_unused = fread(mp3->id3.artist,1,30,mp3->file); mp3->id3.artist[30] = '\0';
-				_unused = fread(mp3->id3.album,1,30,mp3->file); mp3->id3.album[30] = '\0';
-				_unused = fread(mp3->id3.year,1,4,mp3->file); mp3->id3.year[4] = '\0';
-				_unused = fread(mp3->id3.comment,1,30,mp3->file); mp3->id3.comment[30] = '\0';
+				std::ignore = fread(mp3->id3.title,1,30,mp3->file); mp3->id3.title[30] = '\0';
+				std::ignore = fread(mp3->id3.artist,1,30,mp3->file); mp3->id3.artist[30] = '\0';
+				std::ignore = fread(mp3->id3.album,1,30,mp3->file); mp3->id3.album[30] = '\0';
+				std::ignore = fread(mp3->id3.year,1,4,mp3->file); mp3->id3.year[4] = '\0';
+				std::ignore = fread(mp3->id3.comment,1,30,mp3->file); mp3->id3.comment[30] = '\0';
 				if(mp3->id3.comment[28] == '\0')
 				{
 					mp3->id3.track[0] = mp3->id3.comment[29];
 				}
-				_unused = fread(mp3->id3.genre,1,1,mp3->file);
+				std::ignore = fread(mp3->id3.genre,1,1,mp3->file);
 				unpad(mp3->id3.title);
 				unpad(mp3->id3.artist);
 				unpad(mp3->id3.album);
diff --git a/src/modules/mircimport/libkvimircimport.cpp b/src/modules/mircimport/libkvimircimport.cpp
index 858675d3..3d283b4c 100644
--- a/src/modules/mircimport/libkvimircimport.cpp
+++ b/src/modules/mircimport/libkvimircimport.cpp
@@ -102,7 +102,7 @@ int KviMircServersIniImport::doImport(const TQString& filename)
 					s.m_szDescription = description;
 					s.m_uPort = uPort;
 					iCount++;
-					emit server(s,entry);
+					emit server(s,entry.utf8().data());
 				}
 				++i;
 			}
diff --git a/src/modules/objects/class_dockwindow.cpp b/src/modules/objects/class_dockwindow.cpp
index f42f72df..db589358 100644
--- a/src/modules/objects/class_dockwindow.cpp
+++ b/src/modules/objects/class_dockwindow.cpp
@@ -91,7 +91,7 @@ KVSO_END_DESTRUCTOR(KviKvsObject_dockwindow)
 
 bool KviKvsObject_dockwindow::init(KviKvsRunTimeContext * pContext,KviKvsVariantList * pParams)
 {
-	setObject(new TQT_DOCK_WINDOW(g_pFrame,getName()),true);
+	setObject(new TQT_DOCK_WINDOW(g_pFrame,getName().utf8().data()),true);
 	return true;
 }
 
diff --git a/src/modules/objects/class_file.cpp b/src/modules/objects/class_file.cpp
index 9195f117..98198cd4 100644
--- a/src/modules/objects/class_file.cpp
+++ b/src/modules/objects/class_file.cpp
@@ -296,8 +296,14 @@ bool KviKvsObject_file::functionputch(KviKvsObjectFunctionCall *c)
 	if (m_pFile)
 	{
 		if (szChar.length()>1)c->warning(__tr2qs("Argument to long, using only first char"));
-		const char *ch=szChar;
-		if (m_pFile->putch(ch[0])<0) c->warning(__tr2qs("Write error occured !"));
+		// FIXME: putch() argument shouldn't be passed via TQString.
+		char ch = szChar[0].latin1();
+		if (!ch && !szChar[0].isNull())
+		{
+			c->warning(__tr2qs("Can't properly handle non-latin-1 characters."));
+			ch = '?';
+		}
+		if (m_pFile->putch(ch)<0) c->warning(__tr2qs("Write error occurred!"));
 	}
 
 	return true;
@@ -328,8 +334,14 @@ bool KviKvsObject_file::functionunGetch(KviKvsObjectFunctionCall *c)
 	else
 	{
 		if (szChar.length()>1) c->warning(__tr2qs("Argument to long, using only first char"));
-		const char *ch=szChar;
-		if (m_pFile->ungetch(ch[0])<0) c->warning(__tr2qs("An error occured !"));// c->error ?
+		// FIXME: ungetch() argument shouldn't be passed via TQString.
+		char ch = szChar[0].latin1();
+		if (!ch && !szChar[0].isNull())
+		{
+			c->warning(__tr2qs("Can't properly handle non-latin-1 characters."));
+			ch = '?';
+		}
+		if (m_pFile->ungetch(ch)<0) c->warning(__tr2qs("An error occurred!"));
 	}
 	return true;
 }
@@ -365,8 +377,7 @@ bool KviKvsObject_file::functionwriteBlock(KviKvsObjectFunctionCall *c)
 	if (!m_pFile) return true;
 	if(!m_pFile->isOpen())
 		c->warning(__tr("File is not open !"));
-	const char *block=szBlock;
-	int rlen = m_pFile->writeBlock(block, uLen);
+	int rlen = m_pFile->writeBlock(szBlock.utf8().data(), uLen);
 	c->returnValue()->setInteger(rlen);
 	m_pFile->flush();
 	return true;
diff --git a/src/modules/objects/class_lineedit.cpp b/src/modules/objects/class_lineedit.cpp
index 650af411..d51f4df8 100644
--- a/src/modules/objects/class_lineedit.cpp
+++ b/src/modules/objects/class_lineedit.cpp
@@ -217,7 +217,7 @@ KVSO_END_CONSTRUCTOR(KviKvsObject_lineedit)
 
 bool KviKvsObject_lineedit::init(KviKvsRunTimeContext * pContext,KviKvsVariantList * pParams)
 {
-	setObject(new TQLineEdit(parentScriptWidget(),getName()),true);
+	setObject(new TQLineEdit(parentScriptWidget(),getName().utf8().data()),true);
 	connect(widget(),TQ_SIGNAL(returnPressed()),this,TQ_SLOT(slotreturnPressed()));
 	connect(widget(),TQ_SIGNAL(lostFocus()),this,TQ_SLOT(slotlostFocus()));
 	connect(widget(),TQ_SIGNAL(textChanged(const TQString & )),this,TQ_SLOT(slottextChanged(const TQString & )));
diff --git a/src/modules/objects/class_multilineedit.cpp b/src/modules/objects/class_multilineedit.cpp
index 3205800a..12faa34b 100644
--- a/src/modules/objects/class_multilineedit.cpp
+++ b/src/modules/objects/class_multilineedit.cpp
@@ -340,7 +340,7 @@ KVSO_END_CONSTRUCTOR(KviKvsObject_mledit)
 
 bool KviKvsObject_mledit::init(KviKvsRunTimeContext * pContext,KviKvsVariantList * pParams)
 {
-	setObject(new KviTalMultiLineEdit(parentScriptWidget(),getName()),true);
+	setObject(new KviTalMultiLineEdit(parentScriptWidget(),getName().utf8().data()),true);
 	return true;
 }
 
diff --git a/src/modules/objects/class_painter.cpp b/src/modules/objects/class_painter.cpp
index 9c510044..a291f9b6 100644
--- a/src/modules/objects/class_painter.cpp
+++ b/src/modules/objects/class_painter.cpp
@@ -407,8 +407,7 @@ if(__pXOrArray->isArray())\
 	} else {\
 		if(c->params()->count() < 4)\
 		{\
-			TQString error=function+" requires either an array as first parameter or four integers";\
-			c->error(__tr2qs(error));\
+			c->error(__tr2qs("%1 requires either an array as first parameter or four integers").arg(function));\
 			return false;\
 		}\
 		if(!__pXOrArray->asInteger(iX))\
@@ -441,8 +440,7 @@ if(__pXOrArray->isArray())\
 	} else {\
 		if(c->params()->count() < 2)\
 		{\
-			TQString error=function+" requires either an array as first parameter or two integers";\
-			c->error(__tr2qs(error));\
+			c->error(__tr2qs("%1 requires either an array as first parameter or two integers").arg(function));\
 			return false;\
 		}\
 		if(!__pXOrArray->asInteger(iX))\
@@ -476,8 +474,7 @@ if(__pCol1OrArray->isArray())\
 	} else {\
 		if(c->params()->count() < 3)\
 		{\
-			TQString error=function+" requires either an array as first parameter or 3 integers";\
-			c->error(__tr2qs(error));\
+			c->error(__tr2qs("%1 requires either an array as first parameter or 3 integers").arg(function));\
 			return false;\
 		}\
 		if(!__pCol1OrArray->asInteger(iCol1))\
diff --git a/src/modules/objects/class_socket.cpp b/src/modules/objects/class_socket.cpp
index edf086b3..686a5de7 100644
--- a/src/modules/objects/class_socket.cpp
+++ b/src/modules/objects/class_socket.cpp
@@ -600,18 +600,18 @@ bool  KviKvsObject_socket::functionConnect(KviKvsObjectFunctionCall *c)
 
 
 #ifdef COMPILE_IPV6_SUPPORT
-	if(kvi_isValidStringIp(m_szRemoteIp) || kvi_isValidStringIp_V6(m_szRemoteIp))
+	if(kvi_isValidStringIp(m_szRemoteIp.utf8().data()) || kvi_isValidStringIp_V6(m_szRemoteIp.utf8().data()))
 #else
-	if(kvi_isValidStringIp(m_szRemoteIp))
+	if(kvi_isValidStringIp(m_szRemoteIp.utf8().data()))
 #endif
 	{
 		tqDebug ("ok connecting");
-		tqDebug ("connectinhg on ip %s ",m_szRemoteIp.latin1());
+		tqDebug ("connectinhg on ip %s ",m_szRemoteIp.local8Bit().data());
 		tqDebug ("non so ip");
 		m_iStatus = KVI_SCRIPT_SOCKET_STATUS_CONNECTING;
 		delayedConnect();
 	} else {
-		tqDebug ("connectinhg on ip %s port %d",m_szRemoteIp.latin1(),m_uRemotePort);
+		tqDebug ("connectinhg on ip %s port %ld",m_szRemoteIp.local8Bit().data(),m_uRemotePort);
 		m_iStatus = KVI_SCRIPT_SOCKET_STATUS_DNS;
 		delayedLookupRemoteIp();
 	}
@@ -658,10 +658,10 @@ bool KviKvsObject_socket::functionListen(KviKvsObjectFunctionCall *c)
 	{
 
 		// Check the address type
-		if(kvi_isValidStringIp(m_szLocalIp))bGotIp = true;
+		if(kvi_isValidStringIp(m_szLocalIp.utf8().data()))bGotIp = true;
 		else {
 #ifdef COMPILE_IPV6_SUPPORT
-			if(kvi_isValidStringIp_V6(m_szLocalIp))
+			if(kvi_isValidStringIp_V6(m_szLocalIp.utf8().data()))
 			{
 				bGotIp = true;
 				m_bIpV6 = true;
@@ -697,9 +697,9 @@ bool KviKvsObject_socket::functionListen(KviKvsObjectFunctionCall *c)
 	if(!m_szLocalIp.isEmpty())
 	{
 #ifdef COMPILE_IPV6_SUPPORT
-		KviSockaddr sa(m_szLocalIp,m_uLocalPort,m_bIpV6,m_bUdp);
+		KviSockaddr sa(m_szLocalIp.utf8().data(),m_uLocalPort,m_bIpV6,m_bUdp);
 #else
-		KviSockaddr sa(m_szLocalIp,m_uLocalPort,false,m_bUdp);
+		KviSockaddr sa(m_szLocalIp.utf8().data(),m_uLocalPort,false,m_bUdp);
 #endif
 		if(!sa.socketAddress())
 		{
@@ -826,7 +826,7 @@ void KviKvsObject_socket::incomingConnection(int)
 	} // else..huh ?... wait for the next notifier call
 }
 
-void KviKvsObject_socket::acceptConnection(kvi_socket_t s,kvi_u32_t uPort,const char * szIp)
+void KviKvsObject_socket::acceptConnection(kvi_socket_t s,kvi_u32_t uPort,const TQString &szIp)
 {
 	reset();
 	m_sock = s;
@@ -868,7 +868,7 @@ void KviKvsObject_socket::doConnect()
 	m_pDelayTimer = 0;
 
 
-	KviSockaddr sa(m_szRemoteIp,m_uRemotePort,!kvi_isValidStringIp(m_szRemoteIp),m_bUdp);
+	KviSockaddr sa(m_szRemoteIp.utf8().data(),m_uRemotePort,!kvi_isValidStringIp(m_szRemoteIp.utf8().data()),m_bUdp);
 
 	if(!sa.socketAddress())
 	{
diff --git a/src/modules/objects/class_socket.h b/src/modules/objects/class_socket.h
index bcb0284f..6b185b10 100644
--- a/src/modules/objects/class_socket.h
+++ b/src/modules/objects/class_socket.h
@@ -92,7 +92,7 @@ protected:
 	void eatInData(unsigned int uLen);
 	unsigned int readGetLength(KviParameterList * params);
 
-	void acceptConnection(kvi_socket_t s,unsigned short int uPort,const char * szIp);
+	void acceptConnection(kvi_socket_t s,unsigned short int uPort,const TQString &szIp);
 
 	void reset();
 protected slots:
@@ -171,7 +171,7 @@ protected:
 	void eatInData(unsigned int uLen);
 	unsigned int readGetLength(KviKvsObjectFunctionCall * params);
 
-	void acceptConnection(kvi_socket_t s,kvi_u32_t uPort,const char * szIp);
+	void acceptConnection(kvi_socket_t s,kvi_u32_t uPort,const TQString &szIp);
 
 	void reset();
 protected slots:
diff --git a/src/modules/objects/class_toolbutton.cpp b/src/modules/objects/class_toolbutton.cpp
index 35a16c20..1a677e99 100644
--- a/src/modules/objects/class_toolbutton.cpp
+++ b/src/modules/objects/class_toolbutton.cpp
@@ -233,9 +233,11 @@ bool KviKvsObject_toolbutton::functionsetTextLabel(KviKvsObjectFunctionCall *c)
 		KVSO_PARAMETER("tooltip",KVS_PT_STRING,KVS_PF_OPTIONAL,szTip)
 	KVSO_PARAMETERS_END(c)
 	if(!widget()) return true;
-
-		if (szTip.isEmpty()) ((TQToolButton *)widget())->setTextLabel(szLabel);
-			else ((TQToolButton *)widget())->setTextLabel(szLabel,szTip);
+	((TQToolButton *)widget())->setTextLabel(szLabel);
+	if (!szTip.isEmpty())
+	{
+		TQToolTip::add(widget(), szTip);
+	}
 	return true;
 }
 bool KviKvsObject_toolbutton::functiontextLabel(KviKvsObjectFunctionCall *c)
diff --git a/src/modules/objects/class_widget.cpp b/src/modules/objects/class_widget.cpp
index e04ce2b1..69f416f1 100644
--- a/src/modules/objects/class_widget.cpp
+++ b/src/modules/objects/class_widget.cpp
@@ -592,7 +592,7 @@ KVSO_END_CONSTRUCTOR(KviKvsObject_widget)
 
 bool KviKvsObject_widget::init(KviKvsRunTimeContext * pContext,KviKvsVariantList * pParams)
 {
-	setObject(new TQWidget(parentScriptWidget(),getName()),true);
+	setObject(new TQWidget(parentScriptWidget(),getName().utf8().data()),true);
 	return true;
 }
 
diff --git a/src/modules/objects/class_wrapper.cpp b/src/modules/objects/class_wrapper.cpp
index f18858ee..9a14f5d8 100644
--- a/src/modules/objects/class_wrapper.cpp
+++ b/src/modules/objects/class_wrapper.cpp
@@ -178,7 +178,7 @@ bool KviKvsObject_wrapper::init(KviKvsRunTimeContext * pContext,KviKvsVariantLis
 
 	return true;
 }
-TQWidget *KviKvsObject_wrapper::findTopLevelWidgetToWrap(const TQString szClass, const TQString szName)
+TQWidget *KviKvsObject_wrapper::findTopLevelWidgetToWrap(const TQString &szClass, const TQString &szName)
 {
 	
 	TQWidgetList *list = g_pApp->topLevelWidgets();
@@ -188,11 +188,11 @@ TQWidget *KviKvsObject_wrapper::findTopLevelWidgetToWrap(const TQString szClass,
 	while( it.current() ) {
 		bool bNameMatch  = false;
 		bool bClassMatch = false;
-		if( szName )
+		if( !szName.isEmpty() )
 			bNameMatch = KviTQString::equalCI(it.current()->name(), szName);
 		else
 			bNameMatch = true;
-		if( szClass )
+		if( !szClass.isEmpty() )
 			bClassMatch = KviTQString::equalCI(it.current()->className(), szClass);
 		else
 			bClassMatch = true;
@@ -208,10 +208,9 @@ TQWidget *KviKvsObject_wrapper::findTopLevelWidgetToWrap(const TQString szClass,
 	return 0;
 }
 
-TQWidget *KviKvsObject_wrapper::findWidgetToWrap(const char *szClass, const char *szName, TQWidget *childOf)
+TQWidget *KviKvsObject_wrapper::findWidgetToWrap(const TQString &szClass, const TQString &szName, TQWidget *childOf)
 {
-
-	TQObjectList *list = childOf->queryList(szClass ? szClass : 0, szName ? szName : 0, false, true);
+	TQObjectList *list = childOf->queryList(!szClass.isEmpty() ? szClass.utf8().data() : 0, !szName.isEmpty() ? szName.utf8().data() : 0, false, true);
 	if( !list ) return 0;
 
 	TQObjectListIt it(*list);
diff --git a/src/modules/objects/class_wrapper.h b/src/modules/objects/class_wrapper.h
index f1707311..ba26424b 100644
--- a/src/modules/objects/class_wrapper.h
+++ b/src/modules/objects/class_wrapper.h
@@ -44,8 +44,8 @@ public:
 	TQWidget * widget() { return (TQWidget *)object(); };
 protected:
 	virtual bool init(KviKvsRunTimeContext * pContext,KviKvsVariantList *pParams);
-	TQWidget * findTopLevelWidgetToWrap(const TQString szClass, const TQString szName);
-	TQWidget * findWidgetToWrap(const char *szClass, const char *szName, TQWidget *childOf);
+	TQWidget * findTopLevelWidgetToWrap(const TQString &szClass, const TQString &szName);
+	TQWidget * findWidgetToWrap(const TQString &szClass, const TQString &szName, TQWidget *childOf);
 
 };
 
diff --git a/src/modules/objects/libkviobjects.cpp b/src/modules/objects/libkviobjects.cpp
index 782b486d..b62b5c50 100644
--- a/src/modules/objects/libkviobjects.cpp
+++ b/src/modules/objects/libkviobjects.cpp
@@ -84,7 +84,7 @@
 #include "class_dockwindow.h"
 #include "class_vbox.h"
 #include "class_hbox.h"
-static void dumpChildObjects(KviWindow *pWnd, TQObject *parent, const char *spacing, bool bWidgetsOnly, KviKvsArray *n, int &idx);
+static void dumpChildObjects(KviWindow *pWnd, TQObject *parent, const TQString &spacing, bool bWidgetsOnly, KviKvsArray *n, int &idx);
 
 static bool objects_module_cleanup(KviModule *m)
 {
@@ -853,7 +853,7 @@ static bool objects_kvs_fnc_listObjects(KviKvsModuleFunctionCall * cmd)
 	return true;
 }
 
-static void dumpChildObjects(KviWindow *pWnd, TQObject *parent, const char *spacing, bool bFlag, KviKvsArray *n, int &idx)
+static void dumpChildObjects(KviWindow *pWnd, TQObject *parent, const TQString &spacing, bool bFlag, KviKvsArray *n, int &idx)
 {
 	const TQObjectList l = parent->childrenListObject();
 	if( l.isEmpty() ) return;
@@ -867,7 +867,7 @@ static void dumpChildObjects(KviWindow *pWnd, TQObject *parent, const char *spac
 			if (bFlag)
 			{
 				pWnd->output(80, "%sPtr %u: object: %c%s%c, class %s",
-					spacing, it.current(), KVI_TEXT_BOLD,
+					spacing.local8Bit().data(), it.current(), KVI_TEXT_BOLD,
 					it.current()->name(), KVI_TEXT_BOLD, it.current()->className()
 				);
 			}
diff --git a/src/modules/options/libkvioptions.cpp b/src/modules/options/libkvioptions.cpp
index bdca2099..8607a684 100644
--- a/src/modules/options/libkvioptions.cpp
+++ b/src/modules/options/libkvioptions.cpp
@@ -193,7 +193,7 @@ static bool options_kvs_cmd_edit(KviKvsModuleCommandCall * c)
 	KVSM_PARAMETERS_BEGIN(c)
 		KVSM_PARAMETER("option",KVS_PT_STRING,0,szOption)
 	KVSM_PARAMETERS_END(c)
-	KviOptionsWidgetInstanceEntry * e = g_pOptionsInstanceManager->findInstanceEntry(szOption);
+	KviOptionsWidgetInstanceEntry * e = g_pOptionsInstanceManager->findInstanceEntry(szOption.utf8().data());
 	if(!e)
 	{
 		c->warning(__tr2qs_ctx("No such options page class name %Q","options"),&szOption);
diff --git a/src/modules/options/optw_messages.cpp b/src/modules/options/optw_messages.cpp
index 9eabcce6..77f853b2 100644
--- a/src/modules/options/optw_messages.cpp
+++ b/src/modules/options/optw_messages.cpp
@@ -47,6 +47,8 @@
 #include "kvi_config.h"
 #include "kvi_filedialog.h"
 
+#include <tuple>
+
 //#warning "Info tips"
 
 #ifdef COMPILE_PSEUDO_TRANSPARENCY
@@ -292,7 +294,7 @@ void KviMessageListViewItem::paintCell(TQPainter * p,const TQColorGroup &,int,in
 	// skip the msgtype prefix
 	TQString txt = (g_msgtypeOptionsTable[m_iOptId].name + 7);
 	txt += " (";
-	txt += __tr2qs_no_xgettext(TQString::fromUtf8(m_pMsgType->type()));
+	txt += __tr2qs_no_xgettext(m_pMsgType->type());
 	txt += ")";
 	p->drawText(24,listView()->itemMargin(),w - 24,height() - (listView()->itemMargin() * 2),TQt::AlignLeft | TQt::AlignVCenter,txt);
 	if(isSelected())
@@ -614,8 +616,7 @@ void KviMessageColorsOptionsWidget::load()
 	//tqDebug("SYMLINKING %s to %s",szGlobal.ptr(),szLocal.ptr());
 	//tqDebug("SYMLINK RETURNS %d (%d)",::symlink(szGlobal.ptr(),szLocal.ptr()));
 	//tqDebug("ERRNO (%d)",errno);
-	// "int _ = " used to silence warning from compiler about unchecked returned values
-	int _ = symlink(szGlobal,szLocal);
+	std::ignore = symlink(szGlobal.utf8().data(),szLocal.utf8().data());
 	// FIXME: Do it also on windows...
 #endif
 
diff --git a/src/modules/perlcore/KVIrc.xs b/src/modules/perlcore/KVIrc.xs
index 017350c5..e8568884 100644
--- a/src/modules/perlcore/KVIrc.xs
+++ b/src/modules/perlcore/KVIrc.xs
@@ -49,7 +49,7 @@ void internalWarning(text)
 			g_lWarningList.append(TQString(text));
 
 
-char * getLocal(varname)
+const char * getLocal(varname)
 	char * varname
 	CODE:
 		TQString tmp;
@@ -82,7 +82,7 @@ void setLocal(varname,value)
 			}
 		}
 
-char * getGlobal(varname)
+const char * getGlobal(varname)
 	char * varname
 	CODE:
 		TQString tmp;
@@ -116,7 +116,7 @@ void setGlobal(varname,value)
 		}
 
 
-char * eval(code)
+const char * eval(code)
 	char * code
 	CODE:
 		if(g_pCurrentKvsContext && code)
diff --git a/src/modules/perlcore/libkviperlcore.cpp b/src/modules/perlcore/libkviperlcore.cpp
index a7c9a282..e4a64f7f 100644
--- a/src/modules/perlcore/libkviperlcore.cpp
+++ b/src/modules/perlcore/libkviperlcore.cpp
@@ -125,7 +125,7 @@ extern "C" void boot_DynaLoader(pTHX_ CV* cv);
 
 extern "C" void xs_init(pTHX)
 {
-	char *file = __FILE__;
+	const char *file = __FILE__;
 	// boot up the DynaLoader
 	newXS("DynaLoader::boot_DynaLoader",boot_DynaLoader,file);
 	// now bootstrap the KVIrc module
@@ -154,8 +154,8 @@ bool KviPerlInterpreter::init()
 	PERL_SET_CONTEXT(m_pInterpreter);
 	PL_perl_destruct_level = 1;
 	perl_construct(m_pInterpreter);
-	char * daArgs[] = { "yo", "-e", "0", "-w" };
-	perl_parse(m_pInterpreter,xs_init,4,daArgs,NULL);
+	const char * daArgs[] = { "yo", "-e", "0", "-w" };
+	perl_parse(m_pInterpreter,xs_init,4,(char**)daArgs,NULL);
 	TQString szInitCode;
 
 	// this part of the code seems to be unnecessary
diff --git a/src/modules/reguser/edituser.cpp b/src/modules/reguser/edituser.cpp
index 2da4c6f9..0d4b21d1 100644
--- a/src/modules/reguser/edituser.cpp
+++ b/src/modules/reguser/edituser.cpp
@@ -405,8 +405,8 @@ KviRegisteredUserEntryDialog::KviRegisteredUserEntryDialog(TQWidget *p,KviRegist
 	m_pAvatar = 0;
 	if(r)
 	{
-		const char * av = r->getProperty("avatar");
-		if(av)
+		const TQString &av = r->getProperty("avatar");
+		if(!av.isEmpty())
 		{
 			m_pAvatar = new KviPixmap(av);
 		}
@@ -761,7 +761,4 @@ void KviRegisteredUserEntryDialog::editAllPropertiesClicked()
 
 }
 
-
-
-
 #include "edituser.moc"
diff --git a/src/modules/reguser/wizard.cpp b/src/modules/reguser/wizard.cpp
index fa453b0a..a2da7c52 100644
--- a/src/modules/reguser/wizard.cpp
+++ b/src/modules/reguser/wizard.cpp
@@ -45,7 +45,7 @@
 extern KVIRC_API KviRegisteredUserDataBase * g_pRegisteredUserDataBase;
 extern KviPointerList<KviRegistrationWizard> * g_pRegistrationWizardList;
 
-KviRegistrationWizard::KviRegistrationWizard(const char * startMask,KviRegisteredUserDataBase * db,TQWidget * par,bool bModal)
+KviRegistrationWizard::KviRegistrationWizard(const TQString &startMask,KviRegisteredUserDataBase * db,TQWidget * par,bool bModal)
 : KviTalWizard(par)
 {
 	m_pDb = db;
@@ -54,7 +54,7 @@ KviRegistrationWizard::KviRegistrationWizard(const char * startMask,KviRegistere
 	
 	m_bModal = bModal;
 
-	KviIrcMask mask(startMask ? startMask : "*!*@*");
+	KviIrcMask mask(!startMask.isEmpty() ? startMask : "*!*@*");
 
 	g_pRegistrationWizardList->append(this);
 
diff --git a/src/modules/reguser/wizard.h b/src/modules/reguser/wizard.h
index 7fd954b4..078676c1 100644
--- a/src/modules/reguser/wizard.h
+++ b/src/modules/reguser/wizard.h
@@ -42,7 +42,7 @@ class KviRegistrationWizard : public KviTalWizard
     TQ_OBJECT
   
 public:
-    KviRegistrationWizard(const char * startMask,KviRegisteredUserDataBase * db = 0,TQWidget * par = 0,bool bModal = false);
+    KviRegistrationWizard(const TQString &startMask,KviRegisteredUserDataBase * db = 0,TQWidget * par = 0,bool bModal = false);
     ~KviRegistrationWizard();
 
 	KviRegisteredUserDataBase * m_pDb;
diff --git a/src/modules/setup/setupwizard.cpp b/src/modules/setup/setupwizard.cpp
index 844e0b93..f6aeecb2 100644
--- a/src/modules/setup/setupwizard.cpp
+++ b/src/modules/setup/setupwizard.cpp
@@ -46,6 +46,8 @@ bool g_bFoundMirc;
 #include <tqlayout.h>
 #include "kvi_tal_hbox.h" 
 
+#include <tuple>
+
 #ifdef COMPILE_ON_WINDOWS
 	#include <windows.h>
 	#include <winnls.h>  // for MultiByteToWideChar
@@ -1001,8 +1003,7 @@ void KviSetupWizard::accept()
 		// Make local->global link
 		TQString localPath = TQString("%1/global").arg(g_pApp->m_szLocalKvircDir);
 		unlink(TQTextCodec::codecForLocale()->fromUnicode(localPath).data());
-		// "int _ = " used to silence warning from compiler about unchecked returned values
-		int _ = symlink(TQTextCodec::codecForLocale()->fromUnicode(g_pApp->m_szGlobalKvircDir).data(),TQTextCodec::codecForLocale()->fromUnicode(localPath).data());
+		std::ignore = symlink(TQTextCodec::codecForLocale()->fromUnicode(g_pApp->m_szGlobalKvircDir).data(),TQTextCodec::codecForLocale()->fromUnicode(localPath).data());
 #endif
 	
 #ifdef COMPILE_TDE_SUPPORT
diff --git a/src/modules/snd/libkvisnd.cpp b/src/modules/snd/libkvisnd.cpp
index 1c3b61f9..7f0db3f6 100644
--- a/src/modules/snd/libkvisnd.cpp
+++ b/src/modules/snd/libkvisnd.cpp
@@ -544,7 +544,7 @@ void KviSoundThread::run()
 			{
 				tqDebug("Can't connect to sound server to play file %s",m_szFileName.local8Bit().data());
 			} else {
-				server->play(m_szFileName);
+				server->play(TQFile::encodeName(m_szFileName).data());
 			}
 			delete server;
 		}
diff --git a/src/modules/spaste/libkvispaste.cpp b/src/modules/spaste/libkvispaste.cpp
index 92a28a31..9f3bc671 100644
--- a/src/modules/spaste/libkvispaste.cpp
+++ b/src/modules/spaste/libkvispaste.cpp
@@ -221,7 +221,7 @@ static bool spaste_kvs_cmd_stop(KviKvsModuleCommandCall * c)
 				while( (item = it.current()) != 0)
 				{
 					++it;
-					if(kvi_strEqualCS(item->window()->id(),c->window()->id()))delete item;
+					if(item->window()->id() == c->window()->id())delete item;
 				}
 			}
 		} else //Delete the spaste with the given id
diff --git a/src/modules/term/termwidget.cpp b/src/modules/term/termwidget.cpp
index e2eb8865..f0a9c24a 100644
--- a/src/modules/term/termwidget.cpp
+++ b/src/modules/term/termwidget.cpp
@@ -87,13 +87,11 @@ KviTermWidget::KviTermWidget(TQWidget * par,KviFrame * lpFrm,bool bIsStandalone)
 			connect(m_pKonsoleWidget,TQ_SIGNAL(destroyed()),this,TQ_SLOT(konsoleDestroyed()));
 //			tqDebug("Widget %d",m_pKonsoleWidget);
 		} else {
-			m_pKonsoleWidget = new TQLabel(this,
-				__tr2qs("Can't create the terminal emulation part"));
+			m_pKonsoleWidget = new TQLabel(__tr2qs("Can't create the terminal emulation part"), this);
 		}
 
 	} else {
-		m_pKonsoleWidget = new TQLabel(this,
-			__tr2qs("Can't retrieve the terminal emulation factory"));
+		m_pKonsoleWidget = new TQLabel(__tr2qs("Can't retrieve the terminal emulation factory"), this);
 	}
 }
 
diff --git a/src/modules/tip/libkvitip.cpp b/src/modules/tip/libkvitip.cpp
index 67afa62f..c69992aa 100644
--- a/src/modules/tip/libkvitip.cpp
+++ b/src/modules/tip/libkvitip.cpp
@@ -148,7 +148,7 @@ KviTipWindow::~KviTipWindow()
 	if(m_pConfig)closeConfig();
 }
 
-bool KviTipWindow::openConfig(const char * filename,bool bEnsureExists)
+bool KviTipWindow::openConfig(const KviStr &filename,bool bEnsureExists)
 {
 	if(m_pConfig)closeConfig();
 
@@ -184,13 +184,13 @@ void KviTipWindow::nextTip()
 		KviStr szLocale = KviLocale::localeName();
 		KviStr szFile;
 		szFile.sprintf("libkvitip_%s.kvc",szLocale.ptr());
-		if(!openConfig(szFile.ptr(),true))
+		if(!openConfig(szFile,true))
 		{
 			szLocale.cutFromFirst('.');
 			szLocale.cutFromFirst('_');
 			szLocale.cutFromFirst('@');
 			szFile.sprintf("libkvitip_%s.kvc",szLocale.ptr());
-			if(!openConfig(szFile.ptr(),true))
+			if(!openConfig(szFile,true))
 			{
 				openConfig("libkvitip.kvc",false);
 			}
diff --git a/src/modules/tip/libkvitip.h b/src/modules/tip/libkvitip.h
index a95ccb24..9a361a4f 100644
--- a/src/modules/tip/libkvitip.h
+++ b/src/modules/tip/libkvitip.h
@@ -64,7 +64,7 @@ protected:
 	virtual void showEvent(TQShowEvent *e);
 	virtual void closeEvent(TQCloseEvent *e);
 public:
-	bool openConfig(const char * filename,bool bEnsureExists = true);
+	bool openConfig(const KviStr &filename,bool bEnsureExists = true);
 	void closeConfig();
 public slots:
 	void nextTip();
diff --git a/src/modules/torrent/tc_ktorrentdcopinterface.cpp b/src/modules/torrent/tc_ktorrentdcopinterface.cpp
index a26074ce..9f7c24da 100644
--- a/src/modules/torrent/tc_ktorrentdcopinterface.cpp
+++ b/src/modules/torrent/tc_ktorrentdcopinterface.cpp
@@ -47,13 +47,11 @@ TORR_IMPLEMENT_DESCRIPTOR(
 )
 
 #define ERROR_MSG \
-	TQCString msg; \
 	if (!findRunningApp(m_szAppId)) \
-		msg = "KTorrent's isn't running!"; \
+		m_lastError = __tr2qs_ctx("KTorrent isn't running!", "torrent"); \
 	else \
-		msg = "Something's wrong here! KTorrent's DCOP interface has probably changed."; \
-	m_lastError = __tr2qs_ctx(TQString(msg), "torrent"); \
-	tqDebug("%s (%s:%d): %s", __PRETTY_FUNCTION__, __FILE__, __LINE__, (const char*)msg); \
+		m_lastError = __tr2qs_ctx("Something's wrong here! KTorrent's DCOP interface has probably changed.", "torrent"); \
+	tqDebug("%s (%s:%d): %s", __PRETTY_FUNCTION__, __FILE__, __LINE__, m_lastError.local8Bit().data());
 
 #define ERROR_MSG_RANGE(I, SIZE) \
 	KviTQString::sprintf(m_lastError, __tr2qs_ctx("Index out of range: %d [0-%ld]!", "torrent"), I, (SIZE>0)?(SIZE-1):0); \
@@ -192,7 +190,7 @@ bool KviKTorrentDCOPInterface::start(int i)
 {
 	CHECK_RANGE_BOOL(i, m_ti.size())
 
-	tqDebug("starting %s [%d]", (const char*)m_ti[i].name, m_ti[i].num);
+	tqDebug("starting %s [%d]", m_ti[i].name.local8Bit().data(), m_ti[i].num);
 	if (!voidRetIntDCOPCall("KTorrent", "start(int)", m_ti[i].num))
 		ERROR_RET_BOOL
 
@@ -203,7 +201,7 @@ bool KviKTorrentDCOPInterface::stop(int i)
 {
 	CHECK_RANGE_BOOL(i, m_ti.size())
 
-	tqDebug("stopping %s [%d]", (const char*)m_ti[i].name, m_ti[i].num);
+	tqDebug("stopping %s [%d]", m_ti[i].name.local8Bit().data(), m_ti[i].num);
 	if (!voidRetIntBoolDCOPCall("KTorrent", "stop(int, bool)", m_ti[i].num, true))
 		ERROR_RET_BOOL
 
@@ -214,7 +212,7 @@ bool KviKTorrentDCOPInterface::announce(int i)
 {
 	CHECK_RANGE_BOOL(i, m_ti.size())
 
-	tqDebug("announcing %s [%d]", (const char*)m_ti[i].name, m_ti[i].num);
+	tqDebug("announcing %s [%d]", m_ti[i].name.local8Bit().data(), m_ti[i].num);
 	if (!voidRetIntDCOPCall("KTorrent", "announce(int)", m_ti[i].num))
 		ERROR_RET_BOOL
 	return true;
diff --git a/src/modules/window/libkviwindow.cpp b/src/modules/window/libkviwindow.cpp
index ee82b9c9..2f3a3c99 100644
--- a/src/modules/window/libkviwindow.cpp
+++ b/src/modules/window/libkviwindow.cpp
@@ -1048,7 +1048,7 @@ static bool window_kvs_fnc_open(KviKvsModuleFunctionCall * c)
 
 	KviUserWindow * wnd = new KviUserWindow(
 		c->window()->frame(),
-		szCaption,
+		szCaption.utf8().data(),
 		iIcon,
 		pConsole,
 		iFlags);
-- 
cgit v1.2.3

