diff options
| author | 2008-03-31 22:52:24 +0000 | |
|---|---|---|
| committer | 2008-03-31 22:52:24 +0000 | |
| commit | 5b60feb962905e860d604f06b0ffd8eb8508adb0 (patch) | |
| tree | 5bcb73a00bbd61ca211dd1771c7c8ed687733625 | |
| parent | applied patch for mocs; quick fix (diff) | |
| download | KVIrc-5b60feb962905e860d604f06b0ffd8eb8508adb0.tar.gz KVIrc-5b60feb962905e860d604f06b0ffd8eb8508adb0.tar.bz2 KVIrc-5b60feb962905e860d604f06b0ffd8eb8508adb0.zip | |
cleaned code & small ports
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@1361 17fca916-40b9-46aa-a4ea-0a15b648b75c
44 files changed, 330 insertions, 1623 deletions
@@ -12,72 +12,12 @@ src/kvilib/ext kvi_crypt.h kvi_dcophelper.cpp kvi_dcophelper.h - - kvi_draganddrop.h kvi_garbage.cpp kvi_garbage.h - kvi_imagelib.cpp - kvi_imagelib.h - kvi_md5.cpp - kvi_md5.h - - kvi_osinfo.cpp - kvi_osinfo.h - kvi_parameterlist.cpp - kvi_parameterlist.h - kvi_pixmap.cpp - kvi_pixmap.h - kvi_proxydb.cpp - kvi_proxydb.h - kvi_regchan.cpp - kvi_regchan.h kvi_regusersdb.cpp kvi_regusersdb.h - kvi_sharedfiles.cpp - kvi_sharedfiles.h - kvi_stringconversion.cpp - kvi_stringconversion.h - kvi_xlib.h -src/kvilib/file - kvi_file.cpp - kvi_file.h - kvi_fileutils.cpp - kvi_fileutils.h - kvi_packagefile.cpp - kvi_packagefile.h -src/kvilib/irc - kvi_avatar.cpp - kvi_avatar.h - kvi_avatarcache.cpp - kvi_avatarcache.h - kvi_ircmask.cpp - kvi_ircmask.h - kvi_ircserver.cpp - kvi_ircserver.h - kvi_ircserverdb.cpp - kvi_ircserverdb.h - kvi_ircuserdb.cpp - kvi_ircuserdb.h - kvi_mirccntrl.cpp - kvi_mirccntrl.h - kvi_nickserv.cpp - kvi_nickserv.h - kvi_useridentity.cpp - kvi_useridentity.h src/kvilib/net - kvi_dns.cpp - kvi_dns.h - kvi_http.cpp kvi_http.h - kvi_netutils.cpp - kvi_netutils.h - kvi_socket.cpp - kvi_socket.h - kvi_sockettype.h - kvi_ssl.cpp - kvi_ssl.h - kvi_url.cpp - kvi_url.h src/kvilib/system kvi_byteorder.h kvi_env.cpp @@ -462,8 +402,6 @@ src/kvirc/ui kvi_dynamictooltip.h kvi_filedialog.cpp kvi_filedialog.h - kvi_frame.cpp - kvi_frame.h kvi_historywin.cpp kvi_historywin.h kvi_htmldialog.cpp diff --git a/src/kvilib/build/Makefile.am b/src/kvilib/build/Makefile.am index cf580b820..867d4879f 100644 --- a/src/kvilib/build/Makefile.am +++ b/src/kvilib/build/Makefile.am @@ -45,7 +45,6 @@ libkvilib4_la_SOURCES = \ ../ext/kvi_doublebuffer.cpp \ ../ext/kvi_garbage.cpp \ ../ext/kvi_osinfo.cpp \ - ../ext/kvi_imagelib.cpp \ ../ext/kvi_md5.cpp \ ../ext/kvi_mediatype.cpp \ ../ext/kvi_miscutils.cpp \ @@ -138,7 +137,6 @@ headers_HEADERS = \ ../ext/kvi_draganddrop.h \ ../ext/kvi_osinfo.h \ ../ext/kvi_garbage.h \ - ../ext/kvi_imagelib.h \ ../ext/kvi_md5.h \ ../ext/kvi_mediatype.h \ ../ext/kvi_miscutils.h \ diff --git a/src/kvilib/ext/kvi_imagelib.cpp b/src/kvilib/ext/kvi_imagelib.cpp deleted file mode 100644 index 88083c98d..000000000 --- a/src/kvilib/ext/kvi_imagelib.cpp +++ /dev/null @@ -1,138 +0,0 @@ -//============================================================================= -// -// File : kvi_imagelib.cpp -// Creation date : Wed Jul 21 1999 16:41:26 by Szymon Stefanek -// -// This file is part of the KVirc irc client distribution -// Copyright (C) 1999-2000 Szymon Stefanek (pragma at kvirc dot net) -// -// This program is FREE software. You can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your opinion) any later version. -// -// This program is distributed in the HOPE that it will be USEFUL, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, write to the Free Software Foundation, -// Inc. ,59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// -//============================================================================= - -#define __KVILIB__ - -#include <qnamespace.h> - -#include "kvi_imagelib.h" -#include "kvi_fileutils.h" -#include "kvi_locale.h" -#include "kvi_memmove.h" - -#include <qpixmap.h> - - -//KviImageLibrary::KviImageLibrary(const QPixmap &pixmap,int imageWidth,int imageHeight) -//{ -// if(pixmap.isNull())m_pLibrary=0; -// else m_pLibrary=new QPixmap(pixmap); -// setImageSize(imageWidth,imageHeight); -//} - -KviImageLibrary::KviImageLibrary(const QString &path,int imageWidth,int imageHeight) -{ - m_pLibrary=0; - loadLibrary(path); - setImageSize(imageWidth,imageHeight); -} - -KviImageLibrary::KviImageLibrary(const QString &path1,const QString &path2,int imageWidth,int imageHeight) -{ - m_pLibrary=0; - if(KviFileUtils::fileExists(path1)) - { - loadLibrary(path1); - if(m_pLibrary==0)loadLibrary(path2); - } else loadLibrary(path2); - setImageSize(imageWidth,imageHeight); -} - - -KviImageLibrary::~KviImageLibrary() -{ - unloadLibrary(); -} - -void KviImageLibrary::unloadLibrary() -{ - if(m_pLibrary)delete m_pLibrary; - m_pLibrary=0; -} - -bool KviImageLibrary::setImageSize(int imageWidth,int imageHeight) -{ - m_iWidth=((imageWidth>0) ? imageWidth : 16); - m_iHeight=((imageHeight>0) ? imageHeight : 16); - return true; -} - -bool KviImageLibrary::loadLibrary(const QString &path) -{ - if(m_pLibrary)delete m_pLibrary; - m_pLibrary=new QImage(path); - if(m_pLibrary->isNull()) - { - delete m_pLibrary; - m_pLibrary=0; - debug("WARNING : Can not load image library %s",KviQString::toUtf8(path).data()); - } - return (m_pLibrary != 0); -} - -int KviImageLibrary::imageCount() -{ - if(!m_pLibrary)return 0; - if((m_iWidth<1)||(m_iHeight<1))return 0; - int nRows=m_pLibrary->width()/m_iWidth; - return ( nRows * (m_pLibrary->height()/m_iHeight)); -} - -QPixmap KviImageLibrary::getImage(int zeroBasedIndex) -{ - if((zeroBasedIndex >= imageCount())||(zeroBasedIndex < 0)||(m_pLibrary->depth() < 8)) - { - QPixmap image(32,32); - image.fill(); //White fill - return image; - } - - // Im per row is not zero...because imageCount returned non zero. - int imPerRow=(m_pLibrary->width() / m_iWidth); - int xOffset=(zeroBasedIndex % imPerRow) * m_iWidth; - int yOffset=(zeroBasedIndex / imPerRow) * m_iHeight; - -#ifdef COMPILE_USE_QT4 - QImage image(m_iWidth,m_iHeight,m_pLibrary->format()); -#else - QImage image(m_iWidth,m_iHeight,m_pLibrary->depth()); -#endif - - int d = image.depth() / 8; -#ifndef COMPILE_USE_QT4 - if(d == 4)image.setAlphaBuffer(true); // Qt 4.x should manage it automagically -#endif - //Copy the image data - //bitBlt(&image,0,0,m_pLibrary,xOffset,yOffset,m_iWidth,m_iHeight,Qt::CopyROP,false); - - for(int i=0;i<m_iHeight;i++) - kvi_memmove(image.scanLine(i),m_pLibrary->scanLine(i + yOffset) + (xOffset * d),m_iWidth * d); - -#ifdef COMPILE_USE_QT4 - QPixmap p = QPixmap::fromImage(image); -#else - QPixmap p(image); -#endif - return p; -} diff --git a/src/kvilib/ext/kvi_imagelib.h b/src/kvilib/ext/kvi_imagelib.h deleted file mode 100644 index 64f750f78..000000000 --- a/src/kvilib/ext/kvi_imagelib.h +++ /dev/null @@ -1,73 +0,0 @@ -#ifndef _KVI_IMAGELIB_H_ -#define _KVI_IMAGELIB_H_ - -// -// File : kvi_imagelib.h -// Creation date : Wed Jul 21 1999 16:41:26 by Szymon Stefanek -// -// This file is part of the KVirc irc client distribution -// Copyright (C) 1999-2000 Szymon Stefanek (pragma at kvirc dot net) -// -// This program is FREE software. You can redistribute it and/or -// modify it under the terms of the GNU General Public License -// as published by the Free Software Foundation; either version 2 -// of the License, or (at your opinion) any later version. -// -// This program is distributed in the HOPE that it will be USEFUL, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -// See the GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, write to the Free Software Foundation, -// Inc. ,59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -// - -// -// A class to manage multiple image libraries. -// The library is in fact a big image that contains -// several rows of other smaller images of the same size. -// The images inside the 'library' are indexed in the following way: -// -// ------------- -// |...|...|...| -// |.0.|.1.|.2.| -// ------------- -// |...|...|...| -// |.3.|.4.|.5.| -// ------------- -// |...|...|...| -// -// The 'library' image should have the size that is a multiple -// of the single image size. If not , the remaining part is ignored. -// The first image starts always in the left upper corner. -// - -// WARNING: This class will be removed in the near future. Don't use it. - -#include "kvi_settings.h" - -#include <qimage.h> - -class KVILIB_API KviImageLibrary -{ -public: // Consruction & Destruction -// KviImageLibrary(const QPixmap &pixmap,int imageWidth,int imageHeight); - KviImageLibrary(const QString &path,int imageWidth,int imageHeight); - KviImageLibrary(const QString &path1,const QString &path2,int imageWidth,int imageHeight); - ~KviImageLibrary(); -public: // Fields - QImage *m_pLibrary; - int m_iWidth; - int m_iHeight; -public: // Methods - bool loadLibrary(const QString &path); - void unloadLibrary(); - int imageCount(); - bool libraryLoaded(){ return (m_pLibrary != 0); }; - QImage *getLibrary(){ return m_pLibrary; }; - QPixmap getImage(int zeroBasedIndex); - bool setImageSize(int imageWidth,int imageHeight); -}; - -#endif //_KVI_IMAGELIB_H_INCLUDED_ diff --git a/src/kvilib/ext/kvi_osinfo.cpp b/src/kvilib/ext/kvi_osinfo.cpp index 6753bb67b..68a089bb5 100644 --- a/src/kvilib/ext/kvi_osinfo.cpp +++ b/src/kvilib/ext/kvi_osinfo.cpp @@ -507,4 +507,3 @@ namespace KviOsInfo return KviQString::empty;
}
}
-
diff --git a/src/kvilib/ext/kvi_osinfo.h b/src/kvilib/ext/kvi_osinfo.h index 7409ddd12..a36fb5642 100644 --- a/src/kvilib/ext/kvi_osinfo.h +++ b/src/kvilib/ext/kvi_osinfo.h @@ -27,7 +27,7 @@ #include "kvi_settings.h" -#include <qstring.h> +#include <QString> namespace KviOsInfo { diff --git a/src/kvilib/ext/kvi_parameterlist.h b/src/kvilib/ext/kvi_parameterlist.h index fe01d66f4..49058c905 100644 --- a/src/kvilib/ext/kvi_parameterlist.h +++ b/src/kvilib/ext/kvi_parameterlist.h @@ -26,11 +26,11 @@ #include "kvi_settings.h" #include "kvi_heapobject.h" #include "kvi_string.h" - #include "kvi_pointerlist.h" -#include <qrect.h> -#include <qpoint.h> -#include <qsize.h> + +#include <QRect> +#include <QPoint> +#include <QSize> class KVILIB_API KviParameterList : public KviPointerList<KviStr>, public KviHeapObject { diff --git a/src/kvilib/ext/kvi_pixmap.cpp b/src/kvilib/ext/kvi_pixmap.cpp index 7fb6990a4..8d31b4e96 100644 --- a/src/kvilib/ext/kvi_pixmap.cpp +++ b/src/kvilib/ext/kvi_pixmap.cpp @@ -30,7 +30,7 @@ #include "kvi_pixmap.h" #include "kvi_qstring.h" -#include <qpainter.h> +#include <QPainter> KviPixmap::KviPixmap() { diff --git a/src/kvilib/ext/kvi_pixmap.h b/src/kvilib/ext/kvi_pixmap.h index 7ac5f9140..a96989657 100644 --- a/src/kvilib/ext/kvi_pixmap.h +++ b/src/kvilib/ext/kvi_pixmap.h @@ -28,7 +28,8 @@ #include "kvi_settings.h" #include "kvi_string.h" -#include <qpixmap.h> + +#include <QPixmap> class KVILIB_API KviPixmap { diff --git a/src/kvilib/ext/kvi_proxydb.h b/src/kvilib/ext/kvi_proxydb.h index 16a323406..1eff641d2 100644 --- a/src/kvilib/ext/kvi_proxydb.h +++ b/src/kvilib/ext/kvi_proxydb.h @@ -24,11 +24,11 @@ // #include "kvi_settings.h" - #include "kvi_string.h" #include "kvi_inttypes.h" #include "kvi_pointerlist.h" -#include <qstringlist.h> + +#include <QStringList> class KVILIB_API KviProxy { diff --git a/src/kvilib/ext/kvi_regchan.cpp b/src/kvilib/ext/kvi_regchan.cpp index bd763877b..3cc56bbf3 100644 --- a/src/kvilib/ext/kvi_regchan.cpp +++ b/src/kvilib/ext/kvi_regchan.cpp @@ -178,4 +178,3 @@ void KviRegisteredChannelDataBase::add(KviRegisteredChannel * c) } l->append(c); } - diff --git a/src/kvilib/ext/kvi_regchan.h b/src/kvilib/ext/kvi_regchan.h index 2848ffb73..df974ac7e 100644 --- a/src/kvilib/ext/kvi_regchan.h +++ b/src/kvilib/ext/kvi_regchan.h @@ -28,7 +28,6 @@ #include "kvi_heapobject.h" #include "kvi_string.h" #include "kvi_pointerlist.h" - #include "kvi_pointerhashtable.h" class KVILIB_API KviRegisteredChannel : public KviHeapObject diff --git a/src/kvilib/ext/kvi_sharedfiles.cpp b/src/kvilib/ext/kvi_sharedfiles.cpp index dcb9464ec..a6babc7ef 100644 --- a/src/kvilib/ext/kvi_sharedfiles.cpp +++ b/src/kvilib/ext/kvi_sharedfiles.cpp @@ -30,7 +30,7 @@ #include "kvi_config.h" #include "kvi_fileutils.h" -#include <qfileinfo.h> +#include <QFileInfo> // TODO: Match servers that the file requests come from // TODO: Max number of downloads ? @@ -86,12 +86,8 @@ KviSharedFile::KviSharedFile(const QString &szName,const QString &szAbsPath,cons m_szUserMask = szUserMask; m_expireTime = expireTime; m_uFileSize = uFileSize; -#ifdef COMPILE_USE_QT4 - // QT4ROX: Because they have finally moved the functionality of QString::contains() to QString::count(), and QString::contains() now does the right job + m_uWildCount = m_szUserMask.count('*'); -#else - m_uWildCount = m_szUserMask.contains('*'); -#endif m_uNonWildCount = m_szUserMask.length() - m_uWildCount; } @@ -388,4 +384,3 @@ void KviSharedFilesManager::save(const QString &filename) } cfg.writeEntry("NEntries",idx); } - diff --git a/src/kvilib/ext/kvi_sharedfiles.h b/src/kvilib/ext/kvi_sharedfiles.h index c01a58426..68777d38e 100644 --- a/src/kvilib/ext/kvi_sharedfiles.h +++ b/src/kvilib/ext/kvi_sharedfiles.h @@ -34,7 +34,7 @@ #include "kvi_pointerhashtable.h" #include <time.h> -#include <qtimer.h> +#include <QTimer> class KVILIB_API KviSharedFile : public KviHeapObject diff --git a/src/kvilib/ext/kvi_stringconversion.cpp b/src/kvilib/ext/kvi_stringconversion.cpp index 7b6cc299a..ab2368cd5 100644 --- a/src/kvilib/ext/kvi_stringconversion.cpp +++ b/src/kvilib/ext/kvi_stringconversion.cpp @@ -266,12 +266,7 @@ namespace KviStringConversion bool fromString(const QString & szValue,QStringList &buffer) { -#ifdef COMPILE_USE_QT4 buffer = szValue.split(","); -#else - buffer = QStringList::split(",",szValue); -#endif return true; } - } diff --git a/src/kvilib/ext/kvi_stringconversion.h b/src/kvilib/ext/kvi_stringconversion.h index e9d7f8c73..910182a39 100644 --- a/src/kvilib/ext/kvi_stringconversion.h +++ b/src/kvilib/ext/kvi_stringconversion.h @@ -30,11 +30,11 @@ #include "kvi_pixmap.h" #include "kvi_msgtype.h" -#include <qrect.h> -#include <qcolor.h> -#include <qfont.h> -#include <qstringlist.h> -#include <qstring.h> +#include <QRect> +#include <QColor> +#include <QFont> +#include <QStringList> +#include <QString> namespace KviStringConversion diff --git a/src/kvilib/file/kvi_file.cpp b/src/kvilib/file/kvi_file.cpp index b1abd48e1..c4a6bf712 100644 --- a/src/kvilib/file/kvi_file.cpp +++ b/src/kvilib/file/kvi_file.cpp @@ -45,23 +45,14 @@ KviFile::~KviFile() bool KviFile::openForReading() { -#ifdef COMPILE_USE_QT4 return open(QFile::ReadOnly); -#else - return open(IO_ReadOnly); -#endif } bool KviFile::openForWriting(bool bAppend) { -#ifdef COMPILE_USE_QT4 return open(QFile::WriteOnly | (bAppend ? QFile::Append : QFile::Truncate)); -#else - return open(IO_WriteOnly | (bAppend ? IO_Append : IO_Truncate)); -#endif } - bool KviFile::save(const QByteArray &bData) { if(!save((kvi_u32_t)(bData.size())))return false; @@ -77,27 +68,6 @@ bool KviFile::load(QByteArray &bData) return true; } -#ifndef COMPILE_USE_QT4 - -bool KviFile::save(const KviQCString &szData) -{ - if(!save((kvi_u32_t)(szData.length())))return false; - return (writeBlock(szData.data(),szData.length()) == ((int)(szData.length()))); -} - -bool KviFile::load(KviQCString &szData) -{ - kvi_u32_t iLen; - if(!load(iLen))return false; - szData.resize(iLen + 1); // this would allocate one extra byte with Qt 4.x... - if(readBlock((char *)(szData.data()),iLen) != iLen)return false; - *(szData.data() + iLen) = 0; - return true; -} - -#endif - - bool KviFile::save(const QString &szData) { KviQCString c = KviQString::toUtf8(szData); @@ -165,7 +135,6 @@ bool KviFile::load(kvi_u64_t &t) return true; } - bool KviFile::save(kvi_u16_t t) { #ifndef LOCAL_CPU_LITTLE_ENDIAN @@ -193,7 +162,6 @@ bool KviFile::load(kvi_u8_t &t) return (readBlock((char *)(&t),sizeof(kvi_u8_t)) == sizeof(kvi_u8_t)); } - bool KviFile::save(KviPointerList<KviStr> * pData) { if(!save((int)(pData->count())))return false; @@ -253,4 +221,3 @@ bool KviFile::skipFirst(const KviStr &t,unsigned int maxdist) } return false; } - diff --git a/src/kvilib/file/kvi_file.h b/src/kvilib/file/kvi_file.h index 38a1ecba5..064c36f3c 100644 --- a/src/kvilib/file/kvi_file.h +++ b/src/kvilib/file/kvi_file.h @@ -33,7 +33,7 @@ #include "kvi_inttypes.h" #include "kvi_qcstring.h" -#include <qfile.h> +#include <QFile> #include <time.h> #define kvi_file_offset_t qlonglong diff --git a/src/kvilib/file/kvi_fileutils.cpp b/src/kvilib/file/kvi_fileutils.cpp index 9a701db09..a42dcfcd7 100644 --- a/src/kvilib/file/kvi_fileutils.cpp +++ b/src/kvilib/file/kvi_fileutils.cpp @@ -31,11 +31,11 @@ #include "kvi_file.h"
#include "kvi_malloc.h"
-#include <qdir.h>
-#include <qfileinfo.h>
+#include <QDir>
+#include <QFileInfo>
#include <qglobal.h>
-#include <qtextcodec.h>
-#include <qtextstream.h>
+#include <QTextCodec>
+#include <QTextStream>
namespace KviFileUtils
@@ -105,11 +105,7 @@ namespace KviFileUtils QString createdDir;
#ifdef COMPILE_ON_WINDOWS
-#ifdef COMPILE_USE_QT4
int idx = dir.indexOf(':');
-#else
- int idx = dir.find(':');
-#endif
if(idx == 1)
{
createdDir = dir.left(2);
@@ -213,20 +209,12 @@ namespace KviFileUtils {
#ifdef COMPILE_ON_WINDOWS
szPath.replace('/',"\\");
-#ifdef COMPILE_USE_QT4
szPath.replace("\\\\","\\");
-#else
- while(szPath.find("\\\\") != -1)szPath.replace("\\\\","\\");
-#endif
// FIXME: Use the default drive here ?
if(szPath.startsWith("\\"))szPath.prepend("C:");
#else
szPath.replace('\\',"/");
-#ifdef COMPILE_USE_QT4
szPath.replace("//","/");
-#else
- while(KviQString::find(szPath,"//") != -1)szPath.replace("//","/");
-#endif
// deal with windows paths
if((szPath.length() > 2) && (szPath.at(0) != QChar('/')))
{
@@ -235,11 +223,7 @@ namespace KviFileUtils szPath.remove(0,2);
}
}
-#ifdef COMPILE_USE_QT4
szPath=QDir::cleanPath(szPath);
-#else
- szPath=QDir::cleanDirPath(szPath);
-#endif
#endif
}
@@ -386,7 +370,6 @@ namespace KviFileUtils return readFile(szPath,szBuffer,uMaxSize);
}
-
QString extractFileName(const QString &szFileNameWithPath)
{
return QFileInfo(szFileNameWithPath).fileName();
@@ -501,5 +484,3 @@ bool kvi_readLine(QFile *f,KviStr &str) str=szBuff;
return szBuff.isNull() ? 1 : 0;
}
-
-
diff --git a/src/kvilib/file/kvi_fileutils.h b/src/kvilib/file/kvi_fileutils.h index 2e3689cbf..fd5115acf 100644 --- a/src/kvilib/file/kvi_fileutils.h +++ b/src/kvilib/file/kvi_fileutils.h @@ -26,8 +26,8 @@ #include "kvi_settings.h" #include "kvi_string.h" -#include <qfile.h> -#include <qstringlist.h> +#include <QFile> +#include <QStringList> #include <time.h> diff --git a/src/kvilib/file/kvi_packagefile.cpp b/src/kvilib/file/kvi_packagefile.cpp index 8b62f9249..093fbcf46 100644 --- a/src/kvilib/file/kvi_packagefile.cpp +++ b/src/kvilib/file/kvi_packagefile.cpp @@ -30,10 +30,9 @@ #include "kvi_locale.h" #include "kvi_inttypes.h" -#include <qprogressdialog.h> -#include <qlabel.h> - -#include <qdir.h> +#include <QProgressDialog> +#include <QLabel> +#include <QDir> #ifdef COMPILE_ZLIB_SUPPORT #include <zlib.h> @@ -128,11 +127,8 @@ KviPackageIOEngine::~KviPackageIOEngine() bool KviPackageIOEngine::updateProgress(int iProgress,const QString &szLabel) { if(!m_pProgressDialog)return true; -#ifdef COMPILE_USE_QT4 + m_pProgressDialog->setValue(iProgress); -#else - m_pProgressDialog->setProgress(iProgress); -#endif m_pProgressDialogLabel->setText(szLabel); qApp->processEvents(); if(m_pProgressDialog->wasCanceled()) @@ -145,14 +141,10 @@ bool KviPackageIOEngine::updateProgress(int iProgress,const QString &szLabel) void KviPackageIOEngine::showProgressDialog(const QString &szCaption,int iTotalSteps) { -#ifdef COMPILE_USE_QT4 m_pProgressDialog = new QProgressDialog(QString(""),__tr2qs("Cancel"),0,iTotalSteps,0); m_pProgressDialog->setModal(true); m_pProgressDialog->setWindowTitle(szCaption); -#else - m_pProgressDialog = new QProgressDialog(QString(""),__tr2qs("Cancel"),iTotalSteps,0,"",true); - m_pProgressDialog->setCaption(szCaption); -#endif + m_pProgressDialogLabel = new QLabel(m_pProgressDialog); m_pProgressDialogLabel->setMaximumSize(500,300); m_pProgressDialog->setLabel(m_pProgressDialogLabel); @@ -234,67 +226,36 @@ bool KviPackageWriter::addFileInternal(const QFileInfo * fi,const QString &szLoc bool KviPackageWriter::addDirectory(const QString &szLocalDirectoryName,const QString &szTargetDirectoryPrefix,kvi_u32_t uAddFileFlags) { QDir d(szLocalDirectoryName); -#ifdef COMPILE_USE_QT4 QDir::Filters iFlags; -#else - int iFlags; -#endif + iFlags = QDir::Files | QDir::Readable; if(!(uAddFileFlags & FollowSymLinks)) iFlags |= QDir::NoSymLinks; // QT4SUX: Because the QDir::entryInfoList() breaks really a lot of code by returning an object that behaves in a _totally_ different way.. it's also much slower - -#ifdef COMPILE_USE_QT4 int j; QFileInfoList sl = d.entryInfoList(iFlags); for(j=0;j<sl.size();j++) { -#else - const QFileInfoList * sl = d.entryInfoList(iFlags); - if(!sl)return false; - QFileInfoListIterator it(*sl); - while(QFileInfo * fi = it.current()) - { -#endif QString szSFileName = szLocalDirectoryName; KviQString::ensureLastCharIs(szSFileName,QChar(KVI_PATH_SEPARATOR_CHAR)); -#ifdef COMPILE_USE_QT4 QFileInfo slowCopy = sl.at(j); szSFileName += slowCopy.fileName(); -#else - szSFileName += fi->fileName(); -#endif + QString szDFileName = szTargetDirectoryPrefix; KviQString::ensureLastCharIs(szDFileName,QChar(KVI_PATH_SEPARATOR_CHAR)); -#ifdef COMPILE_USE_QT4 szDFileName += slowCopy.fileName(); if(!addFileInternal(&slowCopy,szSFileName,szDFileName,uAddFileFlags)) return false; -#else - szDFileName += fi->fileName(); - if(!addFileInternal(fi,szSFileName,szDFileName,uAddFileFlags)) - return false; -#endif -#ifndef COMPILE_USE_QT4 - ++it; -#endif } iFlags = QDir::Dirs | QDir::Readable; if(!(uAddFileFlags & FollowSymLinks)) iFlags |= QDir::NoSymLinks; sl = d.entryInfoList(iFlags); -#ifdef COMPILE_USE_QT4 + for(j=0;j<sl.size();j++) { QString szDir = sl.at(j).fileName(); -#else - if(!sl)return false; - QFileInfoListIterator it2(*sl); - while(QFileInfo * fi2 = it2.current()) - { - QString szDir = fi2->fileName(); -#endif if(!KviQString::equalCS(szDir,"..") && !KviQString::equalCS(szDir,".")) { QString szSDirName = szLocalDirectoryName; @@ -306,16 +267,10 @@ bool KviPackageWriter::addDirectory(const QString &szLocalDirectoryName,const QS if(!addDirectory(szSDirName,szDDirName,uAddFileFlags)) return false; } -#ifndef COMPILE_USE_QT4 - ++it2; -#endif } - return true; } - - #define BUFFER_SIZE 32768 bool KviPackageWriter::packFile(KviFile * pFile,DataField * pDataField) @@ -338,8 +293,8 @@ bool KviPackageWriter::packFile(KviFile * pFile,DataField * pDataField) // Flags #ifdef COMPILE_ZLIB_SUPPORT kvi_u32_t uFlags = pDataField->m_bFileAllowCompression ? - (uSize > 64 ? KVI_PACKAGE_DATAFIELD_FLAG_FILE_DEFLATE : 0) - : 0; + (uSize > 64 ? KVI_PACKAGE_DATAFIELD_FLAG_FILE_DEFLATE : 0) + : 0; #else kvi_u32_t uFlags = 0; #endif @@ -435,8 +390,6 @@ bool KviPackageWriter::packFile(KviFile * pFile,DataField * pDataField) if(!updateProgress(m_iCurrentProgress,szPrg)) return false; // aborted } - - } } @@ -1023,6 +976,3 @@ bool KviPackageReader::unpackInternal(const QString &szLocalFileName,const QStri return true; } - - - diff --git a/src/kvilib/irc/kvi_avatar.cpp b/src/kvilib/irc/kvi_avatar.cpp index 3735c2f9d..f361daa31 100644 --- a/src/kvilib/irc/kvi_avatar.cpp +++ b/src/kvilib/irc/kvi_avatar.cpp @@ -27,7 +27,7 @@ #include "kvi_avatar.h" #include "kvi_qstring.h" -#include <qimage.h> +#include <QImage> /* @@ -153,13 +153,7 @@ QPixmap * KviAvatar::scaledPixmap(unsigned int w,unsigned int h) scaleW = (scaleH * curW) / curH; } -#ifdef COMPILE_USE_QT4 m_pScaledPixmap = new QPixmap(m_pPixmap->scaled(scaleW,scaleH)); -#else - QImage img = m_pPixmap->convertToImage(); - m_pScaledPixmap = new QPixmap(); - m_pScaledPixmap->convertFromImage(img.smoothScale(scaleW,scaleH)); -#endif return m_pScaledPixmap; } diff --git a/src/kvilib/irc/kvi_avatar.h b/src/kvilib/irc/kvi_avatar.h index dd71ef913..2e29679c1 100644 --- a/src/kvilib/irc/kvi_avatar.h +++ b/src/kvilib/irc/kvi_avatar.h @@ -29,7 +29,7 @@ #include "kvi_heapobject.h" #include "kvi_settings.h" -#include <qpixmap.h> +#include <QPixmap> class KVILIB_API KviAvatar : public KviHeapObject { diff --git a/src/kvilib/irc/kvi_ircmask.cpp b/src/kvilib/irc/kvi_ircmask.cpp index 50afe3ded..3ff198711 100644 --- a/src/kvilib/irc/kvi_ircmask.cpp +++ b/src/kvilib/irc/kvi_ircmask.cpp @@ -299,11 +299,7 @@ bool KviIrcMask::hasNumericHost() const else { if((uc < '0') || (uc > '9')) { -#ifdef COMPILE_USE_QT4 uc = p->toUpper().unicode(); -#else - uc = p->upper().unicode(); -#endif if((uc < 'A') || (uc > 'F'))return false; } } diff --git a/src/kvilib/irc/kvi_ircmask.h b/src/kvilib/irc/kvi_ircmask.h index bded395c7..47372d45e 100644 --- a/src/kvilib/irc/kvi_ircmask.h +++ b/src/kvilib/irc/kvi_ircmask.h @@ -158,7 +158,4 @@ private: bool hasMaskedIp() const; }; - - - #endif //_KVI_IRCMASK_H_ diff --git a/src/kvilib/irc/kvi_ircserver.cpp b/src/kvilib/irc/kvi_ircserver.cpp index 373738ed4..aac7aad94 100644 --- a/src/kvilib/irc/kvi_ircserver.cpp +++ b/src/kvilib/irc/kvi_ircserver.cpp @@ -315,7 +315,6 @@ void KviIrcServer::save(KviConfig * cfg,const QString &prefix) } - KviIrcNetwork::KviIrcNetwork(const KviIrcNetwork &src) { m_pChannelList = 0; @@ -350,7 +349,6 @@ void KviIrcNetwork::setNickServRuleSet(KviNickServRuleSet * s) m_pNickServRuleSet = s; } - void KviIrcNetwork::copyFrom(const KviIrcNetwork &src) { m_szName = src.m_szName; @@ -370,4 +368,3 @@ void KviIrcNetwork::copyFrom(const KviIrcNetwork &src) if(src.m_pNickServRuleSet)m_pNickServRuleSet = new KviNickServRuleSet(*(src.m_pNickServRuleSet)); else m_pNickServRuleSet = 0; } - diff --git a/src/kvilib/irc/kvi_ircserver.h b/src/kvilib/irc/kvi_ircserver.h index 975b50c5d..426aac264 100644 --- a/src/kvilib/irc/kvi_ircserver.h +++ b/src/kvilib/irc/kvi_ircserver.h @@ -30,7 +30,7 @@ #include "kvi_qstring.h" #include "kvi_pointerlist.h" -#include <qstringlist.h> +#include <QStringList> class KviConfig; class KviNickServRuleSet; @@ -90,7 +90,7 @@ public: const QString & ipAddress() const { return m_szIp; }; const QString & password() const { return m_szPass; }; const QString & nickName() const { return m_szNick; }; - const QString & initUMode() const { return m_szInitUMode; }; + const QString & initUMode() const { return m_szInitUMode; }; const QString & hostName() const { return m_szHostname; }; const QString & ip() const { return m_szIp; }; const QString & onLoginCommand() const { return m_szOnLoginCommand; }; @@ -118,7 +118,7 @@ public: void setNickName(const QString &n){ m_szNick = n; }; void setRealName(const QString &r){ m_szRealName = r; }; void setEncoding(const QString &e){ m_szEncoding = e; }; - void setInitUMode(const QString &u){ m_szInitUMode = u; }; + void setInitUMode(const QString &u){ m_szInitUMode = u; }; void setOnConnectCommand(const QString &cmd){ m_szOnConnectCommand = cmd; }; void setOnLoginCommand(const QString &cmd){ m_szOnLoginCommand = cmd; }; void setLinkFilter(const QString &f){ m_szLinkFilter = f; }; @@ -168,7 +168,7 @@ protected: QString m_szRealName; // preferred real name QString m_szOnConnectCommand; // the command to run on connect QString m_szOnLoginCommand; // the command to run after login - QStringList * m_pChannelList; // Channels to auto join + QStringList * m_pChannelList; // Channels to auto join KviNickServRuleSet * m_pNickServRuleSet; // set of nick serv rules bool m_bAutoConnect; // autoconnect QString m_szUserIdentityId; // The user identity to use for this server: if empty diff --git a/src/kvilib/irc/kvi_ircserverdb.cpp b/src/kvilib/irc/kvi_ircserverdb.cpp index 274a1e6de..ff8e3cfa7 100644 --- a/src/kvilib/irc/kvi_ircserverdb.cpp +++ b/src/kvilib/irc/kvi_ircserverdb.cpp @@ -25,10 +25,10 @@ #define __KVILIB__ -#include <qapplication.h> -#include <qlayout.h> -#include <qmessagebox.h> -#include <qcheckbox.h> +#include <QApplication> +#include <QLayout> +#include <QMessageBox> +#include <QCheckBox> #include "kvi_ircserverdb.h" #include "kvi_config.h" @@ -80,14 +80,6 @@ KviIrcServer * KviIrcServerDataBaseRecord::currentServer() } - - - - - - - - KviIrcServerDataBase::KviIrcServerDataBase() { m_pRecords = new KviPointerHashTable<QString,KviIrcServerDataBaseRecord>(17,false); @@ -184,13 +176,8 @@ bool KviIrcServerDataBase::makeCurrentBestServerInNetwork(const QString &szNetNa for(KviIrcServer * s = r->m_pServerList->first();s;s = r->m_pServerList->next()) { -#ifdef COMPILE_USE_QT4 if(s->m_szDescription.contains("random",Qt::CaseInsensitive) || (s->m_szDescription.contains("round",Qt::CaseInsensitive) && s->m_szDescription.contains("robin",Qt::CaseInsensitive))) -#else - if(s->m_szDescription.contains("random",false) || - (s->m_szDescription.contains("round",false) && s->m_szDescription.contains("robin",false))) -#endif { r->setCurrentServer(s); return true; @@ -343,11 +330,7 @@ search_finished: if(!(bIsValidIpV4 || bIsValidIpV6)) { // is it a valid hostname ? (must contain at least one dot) -#ifdef COMPILE_USE_QT4 if(!d->szServer.contains('.')) -#else - if(d->szServer.contains('.') < 1) -#endif { // assume it is a network name! KviIrcServerDataBaseRecord * r = m_pRecords->find(d->szServer); @@ -387,7 +370,7 @@ search_finished: s->setLinkFilter(d->szLinkFilter); s->m_szPass= d->szPass; s->m_szNick= d->szNick; - s->m_szInitUMode = d->szInitUMode; + s->m_szInitUMode = d->szInitUMode; s->setIpV6(d->bIpV6); s->setUseSSL(d->bSSL); r->insertServer(s); @@ -398,7 +381,7 @@ search_finished: } void parseMircServerRecord(QString entry,QString& szNet, - QString& szDescription,QString& szHost,QString& szPort,bool& bSsl,kvi_u32_t& uPort) +QString& szDescription,QString& szHost,QString& szPort,bool& bSsl,kvi_u32_t& uPort) { bSsl = false; int idx = KviQString::find(entry,"SERVER:"); @@ -641,6 +624,3 @@ void KviIrcServerDataBase::save(const QString &filename) ++it; } } - - - diff --git a/src/kvilib/irc/kvi_ircserverdb.h b/src/kvilib/irc/kvi_ircserverdb.h index 403908d90..dac2ab296 100644 --- a/src/kvilib/irc/kvi_ircserverdb.h +++ b/src/kvilib/irc/kvi_ircserverdb.h @@ -66,9 +66,6 @@ public: }; - - - class KVILIB_API KviIrcServerDataBase { public: @@ -108,9 +105,4 @@ public: bool makeCurrentBestServerInNetwork(const QString &szNetName,KviIrcServerDataBaseRecord * d,QString &szError); }; - - - - - #endif //_KVI_IRCSERVERDB_H_ diff --git a/src/kvilib/irc/kvi_ircuserdb.cpp b/src/kvilib/irc/kvi_ircuserdb.cpp index 77aa0cc7a..ba15b8116 100644 --- a/src/kvilib/irc/kvi_ircuserdb.cpp +++ b/src/kvilib/irc/kvi_ircuserdb.cpp @@ -49,7 +49,7 @@ KviIrcUserEntry::KviIrcUserEntry(const QString &user,const QString &host) } void KviIrcUserEntry::setRealName(const QString &rn) -{ +{ m_szRealName = rn; m_szRealName = KviQString::trimmed(m_szRealName); if(m_szRealName.length()>=3) @@ -238,7 +238,7 @@ void KviIrcUserDataBase::setupConnectionWithReguserDb() void KviIrcUserDataBase::registeredUserRemoved(const QString& user) { KviPointerHashTableIterator<QString,KviIrcUserEntry> it( *m_pDict ); - for( ; it.current(); ++it ) + for( ; it.current(); ++it ) { if(it.current()->m_szRegisteredUserName==user) { @@ -252,7 +252,7 @@ void KviIrcUserDataBase::registeredUserChanged(const QString& user) { //the same as above KviPointerHashTableIterator<QString,KviIrcUserEntry> it( *m_pDict ); - for( ; it.current(); ++it ) + for( ; it.current(); ++it ) { if(it.current()->m_szRegisteredUserName==user) { @@ -265,7 +265,7 @@ void KviIrcUserDataBase::registeredUserChanged(const QString& user) void KviIrcUserDataBase::registeredUserAdded(const QString& user) { KviPointerHashTableIterator<QString,KviIrcUserEntry> it( *m_pDict ); - for( ; it.current(); ++it ) + for( ; it.current(); ++it ) { if(it.current()->m_szRegisteredUserName.isEmpty()) { @@ -277,7 +277,7 @@ void KviIrcUserDataBase::registeredUserAdded(const QString& user) void KviIrcUserDataBase::registeredDatabaseCleared() { KviPointerHashTableIterator<QString,KviIrcUserEntry> it( *m_pDict ); - for( ; it.current(); ++it ) + for( ; it.current(); ++it ) { it.current()->m_szRegisteredUserName=""; it.current()->m_bNotFoundRegUserLoockup=false; diff --git a/src/kvilib/irc/kvi_ircuserdb.h b/src/kvilib/irc/kvi_ircuserdb.h index e616fc1c0..ab7add86b 100644 --- a/src/kvilib/irc/kvi_ircuserdb.h +++ b/src/kvilib/irc/kvi_ircuserdb.h @@ -26,9 +26,7 @@ //============================================================================= #include "kvi_settings.h" - #include "kvi_pointerhashtable.h" - #include "kvi_string.h" #include "kvi_avatar.h" #include "kvi_regusersdb.h" diff --git a/src/kvilib/irc/kvi_mirccntrl.cpp b/src/kvilib/irc/kvi_mirccntrl.cpp index f2caf5627..128399eb6 100644 --- a/src/kvilib/irc/kvi_mirccntrl.cpp +++ b/src/kvilib/irc/kvi_mirccntrl.cpp @@ -303,5 +303,3 @@ namespace KviMircCntrl return ret; } } - - diff --git a/src/kvilib/irc/kvi_mirccntrl.h b/src/kvilib/irc/kvi_mirccntrl.h index 906bf9692..b4c83d9ea 100644 --- a/src/kvilib/irc/kvi_mirccntrl.h +++ b/src/kvilib/irc/kvi_mirccntrl.h @@ -145,7 +145,7 @@ //29 (0001 1101) GS (Group separator) #define KVI_TEXT_ICON 0x1d -#ifndef _KVI_MIRCCNTRL_CPP_ +#ifndef _KVI_MIRCCNTRL_CPP_ extern KVILIB_API const char * getColorBytes(const char *data_ptr,unsigned char *byte_1,unsigned char *byte_2); extern KVILIB_API const kvi_wchar_t * getColorBytesW(const kvi_wchar_t *data_ptr,unsigned char *byte_1,unsigned char *byte_2); extern KVILIB_API unsigned int getUnicodeColorBytes(const QString &szData,unsigned int charIdx,unsigned char *byte_1,unsigned char *byte_2); diff --git a/src/kvilib/irc/kvi_nickserv.cpp b/src/kvilib/irc/kvi_nickserv.cpp index 49ccf7ba1..3fc0e8d68 100644 --- a/src/kvilib/irc/kvi_nickserv.cpp +++ b/src/kvilib/irc/kvi_nickserv.cpp @@ -29,7 +29,7 @@ #include "kvi_config.h" #include "kvi_ircmask.h" -#include <qregexp.h> +#include <QRegExp> @@ -203,19 +203,11 @@ KviNickServRule * KviNickServRuleSet::matchRule(const QString &szNick,const KviI if(!KviQString::matchStringCI(r->registeredNick(),szNick,false,true)) continue; if(!szServer.isEmpty()) { -#ifdef COMPILE_USE_QT4 QRegExp res(r->serverMask(),Qt::CaseInsensitive,QRegExp::Wildcard); -#else - QRegExp res(r->serverMask(),false,true); -#endif if(!res.exactMatch(szServer))continue; } if(!nickServ->matchedBy(KviIrcMask(r->nickServMask())))continue; -#ifdef COMPILE_USE_QT4 QRegExp re(r->messageRegexp(),Qt::CaseInsensitive,QRegExp::Wildcard); -#else - QRegExp re(r->messageRegexp(),false,true); -#endif if(re.exactMatch(szMsg))return r; } return 0; @@ -306,7 +298,3 @@ KviNickServRule * KviNickServRule::createInstance(const QString &szRegisteredNic { return new KviNickServRule(szRegisteredNick,szNickServMask,szMessageRegexp,szIdentifyCommand,szServerMask); } - - - - diff --git a/src/kvilib/irc/kvi_useridentity.cpp b/src/kvilib/irc/kvi_useridentity.cpp index c896930c1..9a49a5b09 100644 --- a/src/kvilib/irc/kvi_useridentity.cpp +++ b/src/kvilib/irc/kvi_useridentity.cpp @@ -248,5 +248,3 @@ void KviUserIdentityManager::releaseWorkingCopy(KviUserIdentityManager * pWorkin { if(pWorkingCopy)delete pWorkingCopy; } - - diff --git a/src/kvilib/net/kvi_dns.cpp b/src/kvilib/net/kvi_dns.cpp index d3bbfd3ae..0e2480235 100644 --- a/src/kvilib/net/kvi_dns.cpp +++ b/src/kvilib/net/kvi_dns.cpp @@ -347,8 +347,6 @@ void KviDnsThread::run() } - - KviDns::KviDns() : QObject() { @@ -366,7 +364,6 @@ KviDns::~KviDns() if(m_pAuxData)debug("You're leaking memory man! m_pAuxData is non 0!"); } - bool KviDns::isRunning() const { return (m_state == Busy); @@ -447,4 +444,3 @@ bool KviDns::event(QEvent *e) } return QObject::event(e); } - diff --git a/src/kvilib/net/kvi_http.cpp b/src/kvilib/net/kvi_http.cpp index 91b02bd84..528b19925 100644 --- a/src/kvilib/net/kvi_http.cpp +++ b/src/kvilib/net/kvi_http.cpp @@ -274,11 +274,7 @@ bool KviHttpRequest::event(QEvent *e) case KVI_HTTP_REQUEST_THREAD_EVENT_REQUESTSENT: { QString * req = ((KviThreadDataEvent<QString> *)e)->getData(); -#ifdef COMPILE_USE_QT4 QStringList sl = req->split("\r\n"); -#else - QStringList sl = QStringList::split("\r\n",*req); -#endif emit requestSent(sl); delete req; return true; @@ -453,9 +449,6 @@ bool KviHttpRequest::openFile() } - - - bool KviHttpRequest::processHeader(KviStr &szHeader) { int idx = szHeader.findFirstIdx("\r\n"); @@ -855,21 +848,6 @@ check_stream_length: return; } - - - - - - - - - - - - - - - KviHttpRequestThread::KviHttpRequestThread( KviHttpRequest * r, const QString &szHost, @@ -1437,4 +1415,3 @@ void KviHttpRequestThread::runInternal() if(!readDataStep())return; } } - diff --git a/src/kvilib/net/kvi_http.h b/src/kvilib/net/kvi_http.h index 23fbf407a..643e87e63 100644 --- a/src/kvilib/net/kvi_http.h +++ b/src/kvilib/net/kvi_http.h @@ -36,7 +36,7 @@ #include <qobject.h> #include "kvi_pointerhashtable.h" #include "kvi_file.h" -#include <qstringlist.h> +#include <QStringList> class KviDns; class KviSSL; diff --git a/src/kvilib/net/kvi_netutils.cpp b/src/kvilib/net/kvi_netutils.cpp index 4ddb8b701..062ad28c6 100644 --- a/src/kvilib/net/kvi_netutils.cpp +++ b/src/kvilib/net/kvi_netutils.cpp @@ -1,47 +1,25 @@ //============================================================================= - // - // File : kvi_netutlis.cpp - // Creation date : Sun Jun 18 2000 18:37:27 by Szymon Stefanek - // - // This file is part of the KVirc irc client distribution - // Copyright (C) 1999-2000 Szymon Stefanek (pragma at kvirc dot net) - // - // This program is FREE software. You can redistribute it and/or - // modify it under the terms of the GNU General Public License - // as published by the Free Software Foundation; either version 2 - // of the License, or (at your opinion) any later version. - // - // This program is distributed in the HOPE that it will be USEFUL, - // but WITHOUT ANY WARRANTY; without even the implied warranty of - // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - // See the GNU General Public License for more details. - // - // You should have received a copy of the GNU General Public License - // along with this program. If not, write to the Free Software Foundation, - // Inc. ,59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - // - //============================================================================= // AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARGH! @@ -49,909 +27,476 @@ // the ugly windows "text mode" files #define __KVILIB__ - - - - - #define _KVI_NETUTILS_CPP_ - - #include "kvi_netutils.h" - #include "kvi_memmove.h" -#include <qstringlist.h> +#include <QStringList> #ifndef COMPILE_ON_WINDOWS - -#include <sys/time.h> // struct timeval - + #include <sys/time.h> // struct timeval #endif - - #include <sys/types.h> - - - #include "kvi_qstring.h" - - #ifndef COMPILE_ON_WINDOWS - #include <unistd.h> - #include <netdb.h> - #endif - - #ifdef COMPILE_GET_INTERFACE_ADDRESS - #include <sys/ioctl.h> - #include <net/if.h> #endif //COMPILE_GET_INTERFACE_ADDRESS - - #ifndef HAVE_INET_ATON - - - // FIXME: #warning "Your system lacks the inet_aton function," - // FIXME: #warning "you're trying to compile this file without" - // FIXME: #warning "the config.h created by the configure script," - // FIXME: #warning "Using own internal implementation of inet_aton." - - #include <ctype.h> - - - - // Need own inet_aton implementation - - - -// - +// // Check whether "cp" is a valid ascii representation - // of an Internet address and convert to a binary address. - // Returns 1 if the address is valid, 0 if not. - // This replaces inet_addr, the return value from which - // cannot distinguish between failure and a local broadcast address. - // - // Original code comes from the ircd source. - // - - bool kvi_stringIpToBinaryIp(const char *szIp,struct in_addr *address) - { - register unsigned long val; - register int base, n; - register char c; - unsigned int parts[4]; - register unsigned int *pp = parts; - if(!szIp)return false; - c = *szIp; - for(;;){ - // Collect number up to ``.''. - // Values are specified as for C: - // 0x=hex, 0=octal, isdigit=decimal. - if(!isdigit(c))return false; - val = 0; - base = 10; if(c == '0'){ - c = *++szIp; - if((c == 'x')||(c == 'X'))base = 16, c = *++szIp; - else base = 8; - } for (;;) { - if(isascii(c) && isdigit(c)) { - val = (val * base) + (c - '0'); - c = *++szIp; - } else if (base == 16 && isascii(c) && isxdigit(c)) { - val = (val << 4) | (c + 10 - (islower(c) ? 'a' : 'A')); - c = *++szIp; - } else break; - } if(c == '.'){ - // Internet format: - // a.b.c.d - // a.b.c (with c treated as 16 bits) - // a.b (with b treated as 24 bits) if(pp >= (parts + 3)) return false; - *pp++ = val; - c = *++szIp; - } else break; - } // Check for trailing characters. - if ((c != '\0') && (!isascii(c) || !isspace(c)))return false; // Concact the address according to - // the number of parts specified. - n = pp - parts + 1; switch (n) { - - case 0: return false; // initial nondigit - - case 1: break; // a -- 32 bits - - case 2: // a.b -- 8.24 bits - - if(val > 0xffffff) return false; - - val |= parts[0] << 24; - - break; - - case 3: // a.b.c -- 8.8.16 bits - - if(val > 0xffff)return false; - - val |= (parts[0] << 24) | (parts[1] << 16); - - break; - - case 4: // a.b.c.d -- 8.8.8.8 bits - - if(val > 0xff)return false; - - val |= (parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8); - - break; - + case 0: return false; // initial nondigit + case 1: break; // a -- 32 bits + case 2: // a.b -- 8.24 bits + if(val > 0xffffff) return false; + val |= parts[0] << 24; + break; + case 3: // a.b.c -- 8.8.16 bits + if(val > 0xffff)return false; + val |= (parts[0] << 24) | (parts[1] << 16); + break; + case 4: // a.b.c.d -- 8.8.8.8 bits + if(val > 0xff)return false; + val |= (parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8); + break; } if(address)address->s_addr = htonl(val); - return true; } - - #else //!HAVE_INET_ATON - - bool kvi_stringIpToBinaryIp(const char *szIp,struct in_addr *address) - { - if(!szIp)return false; - return (inet_aton(szIp,address) != 0); - } - - - #endif //!HAVE_INET_ATON #ifndef HAVE_INET_NTOA - - // FIXME: #warning "Your system lacks the inet_ntoa function," - // FIXME: #warning "you're trying to compile this file without" - // FIXME: #warning "the config.h created by the configure script," - // FIXME: #warning "Using own internal implementation of inet_ntoa." - - // - // Original code comes from the ircd source. - // - bool kvi_binaryIpToStringIp(struct in_addr in,QString &szBuffer) - { - unsigned char *s = (unsigned char *)∈ - int a,b,c,d; - a = (int)*s++; - b = (int)*s++; - c = (int)*s++; - d = (int)*s; szBuffer.sprintf("%d.%d.%d.%d", a,b,c,d ); - return true; - } - - #else //HAVE_INET_NTOA - - bool kvi_binaryIpToStringIp(struct in_addr in,QString &szBuffer) - { - // FIXME: #warning "This is NOT thread safe!" char * ptr = inet_ntoa(in); - if(!ptr)return false; - szBuffer = ptr; - return true; - } - - #endif //HAVE_INET_NTOA - - bool kvi_isValidStringIp(const char *szIp) - { - struct in_addr address; - if(!szIp)return false; - if(!isdigit(*szIp))return false; - return kvi_stringIpToBinaryIp(szIp,&address); - } - - - - #ifdef COMPILE_IPV6_SUPPORT - - #ifdef COMPILE_ON_WINDOWS - - - //#include <stdlib.h> - //#include <sys/socket.h> - //#include <arpa/inet.h>/ - //#include <errno.h> - //#include "dietfeatures.h" - - static unsigned int scan_ip6(const char *s,char ip[16]) - { + unsigned int i; + unsigned int len=0; + unsigned long u; - unsigned int i; - - unsigned int len=0; - - unsigned long u; - - - - char suffix[16]; - - unsigned int prefixlen=0; - - unsigned int suffixlen=0; - - - - for (i=0; i<16; i++) ip[i]=0; - - - - for (;;) { - - if (*s == ':') { - - len++; - - if (s[1] == ':') { /* Found "::", skip to part 2 */ - - s+=2; - - len++; - - break; - - } - - s++; - - } - - { - - char *tmp; - - u=strtoul(s,&tmp,16); - - i=tmp-s; - - } - - - - if (!i) return 0; - - if (prefixlen==12 && s[i]=='.') { - - /* the last 4 bytes may be written as IPv4 address */ - - if (kvi_stringIpToBinaryIp(s,(struct in_addr*)(ip+12))) - - return i+len; - - else - - return 0; - - } - - ip[prefixlen++] = (u >> 8); - - ip[prefixlen++] = (u & 255); - - s += i; len += i; - - if (prefixlen==16) - - return len; - - } - - - -/* part 2, after "::" */ - - for (;;) { - - if (*s == ':') { - - if (suffixlen==0) - - break; - - s++; - - len++; - - } else if (suffixlen!=0) - - break; - - { - - char *tmp; - - u=strtol(s,&tmp,16); - - i=tmp-s; - - } - - if (!i) { - - if (*s) len--; - - break; - - } - - if (suffixlen+prefixlen<=12 && s[i]=='.') { - - if (kvi_stringIpToBinaryIp(s,(struct in_addr*)(suffix+suffixlen))) { - - suffixlen+=4; - - len+=(unsigned int)strlen(s); - - break; - - } else - - prefixlen=12-suffixlen; /* make end-of-loop test true */ - - } + char suffix[16]; + unsigned int prefixlen=0; + unsigned int suffixlen=0; - suffix[suffixlen++] = (u >> 8); + for (i=0; i<16; i++) ip[i]=0; - suffix[suffixlen++] = (u & 255); + for (;;) { + if (*s == ':') { + len++; + if (s[1] == ':') { /* Found "::", skip to part 2 */ + s+=2; + len++; + break; + } + s++; + } - s += i; len += i; + { + char *tmp; + u=strtoul(s,&tmp,16); + i=tmp-s; + } - if (prefixlen+suffixlen==16) + if (!i) return 0; + if (prefixlen==12 && s[i]=='.') { + /* the last 4 bytes may be written as IPv4 address */ + if (kvi_stringIpToBinaryIp(s,(struct in_addr*)(ip+12))) + return i+len; + else + return 0; + } - break; + ip[prefixlen++] = (u >> 8); + ip[prefixlen++] = (u & 255); + + s += i; len += i; - } + if (prefixlen==16) return len; + } - for (i=0; i<suffixlen; i++) + /* part 2, after "::" */ + + for (;;) { + if (*s == ':') { + if (suffixlen==0) break; + s++; + len++; + } else if (suffixlen!=0) break; + + { + char *tmp; + u=strtol(s,&tmp,16); + i=tmp-s; + } + + if (!i) { + if (*s) len--; + break; + } + + if (suffixlen+prefixlen<=12 && s[i]=='.') { + + if (kvi_stringIpToBinaryIp(s,(struct in_addr*)(suffix+suffixlen))) { + suffixlen+=4; + len+=(unsigned int)strlen(s); + break; + } else prefixlen=12-suffixlen; /* make end-of-loop test true */ + } - ip[16-suffixlen+i] = suffix[i]; + suffix[suffixlen++] = (u >> 8); + suffix[suffixlen++] = (u & 255); + s += i; len += i; + if (prefixlen+suffixlen==16) break; + } - return len; + for (i=0; i<suffixlen; i++) + ip[16-suffixlen+i] = suffix[i]; + return len; } - - #ifndef WIN2K - - - int inet_pton(int AF, const char *CP, void *BUF) { - - int len; - - if (AF==AF_INET) { - - if (!kvi_stringIpToBinaryIp(CP,(struct in_addr*)BUF)) - - return 0; - - } else if (AF==AF_INET6) { - - if (CP[len=scan_ip6(CP,(char *)BUF)]) - - return 0; - - } else { - - errno=WSAEPFNOSUPPORT; - - return -1; - - } - - return 1; - + int len; + if (AF==AF_INET) { + if (!kvi_stringIpToBinaryIp(CP,(struct in_addr*)BUF)) + return 0; + } else if (AF==AF_INET6) { + if (CP[len=scan_ip6(CP,(char *)BUF)]) + return 0; + } else { + errno=WSAEPFNOSUPPORT; + return -1; + } + return 1; } - - - #endif //WIN2K - - //#include <sys/socket.h> - //#include <arpa/inet.h> - - //extern char *inet_ntoa_r(struct in_addr in,char* buf); - - static const unsigned char V4mappedprefix[12]={0,0,0,0,0,0,0,0,0,0,0xff,0xff}; - - static char tohex(char hexdigit) { - - return hexdigit>9?hexdigit+'a'-10:hexdigit+'0'; - + return hexdigit>9?hexdigit+'a'-10:hexdigit+'0'; } - - static int fmt_xlong(char* s,unsigned int i) - { - - char* bak=s; - - *s=tohex((i>>12)&0xf); if (s!=bak || *s!='0') ++s; - - *s=tohex((i>>8)&0xf); if (s!=bak || *s!='0') ++s; - - *s=tohex((i>>4)&0xf); if (s!=bak || *s!='0') ++s; - - *s=tohex(i&0xf); - - return s-bak+1; - + char* bak=s; + *s=tohex((i>>12)&0xf); if (s!=bak || *s!='0') ++s; + *s=tohex((i>>8)&0xf); if (s!=bak || *s!='0') ++s; + *s=tohex((i>>4)&0xf); if (s!=bak || *s!='0') ++s; + *s=tohex(i&0xf); + return s-bak+1; } - - static unsigned int i2a(char* dest,unsigned int x) - { + register unsigned int tmp=x; + register unsigned int len=0; - register unsigned int tmp=x; - - register unsigned int len=0; - - if (x>=100) { *dest++=tmp/100+'0'; tmp=tmp%100; ++len; } - - if (x>=10) { *dest++=tmp/10+'0'; tmp=tmp%10; ++len; } - - *dest++=tmp+'0'; - - return len+1; - + if (x>=100) { *dest++=tmp/100+'0'; tmp=tmp%100; ++len; } + if (x>=10) { *dest++=tmp/10+'0'; tmp=tmp%10; ++len; } + *dest++=tmp+'0'; + return len+1; } - - char *inet_ntoa_r(struct in_addr in,char* buf) - { + unsigned int len; + unsigned char *ip=(unsigned char*)∈ - unsigned int len; - - unsigned char *ip=(unsigned char*)∈ - - len=i2a(buf,ip[0]); buf[len]='.'; ++len; - - len+=i2a(buf+ len,ip[1]); buf[len]='.'; ++len; - - len+=i2a(buf+ len,ip[2]); buf[len]='.'; ++len; - - len+=i2a(buf+ len,ip[3]); buf[len]=0; - - return buf; - + len=i2a(buf,ip[0]); buf[len]='.'; ++len; + len+=i2a(buf+ len,ip[1]); buf[len]='.'; ++len; + len+=i2a(buf+ len,ip[2]); buf[len]='.'; ++len; + len+=i2a(buf+ len,ip[3]); buf[len]=0; + return buf; } - - - - unsigned int fmt_ip6(char *s,const char ip[16]) - { - unsigned int len; - unsigned int i; - unsigned int temp; - unsigned int compressing; // 0 not compressing , 1 compressing now , 2 already compressed once - - len = 0; - compressing = 0; - - for(int j=0;j<16;j+=2) - { - if (j==12 && !memcmp(ip,V4mappedprefix,12)) - { - inet_ntoa_r(*(struct in_addr*)(ip+12),s); - temp=(unsigned int)strlen(s); - return len+temp; - } temp = ((unsigned long) (unsigned char) ip[j] << 8) + (unsigned long) (unsigned char) ip[j+1]; if(temp == 0) - { - if(compressing == 0) - { - compressing=1; - if (j==0) - { - *s++=':'; - ++len; - } - } - } else { - if(compressing == 1) - { - compressing=2; // don't do it again - *s++=':'; ++len; - } i = fmt_xlong(s,temp); - len += i; - s += i; if (j<14) - { - *s++ = ':'; - ++len; - } - } - } if(compressing == 1) - { - *s++=':'; - ++len; - } *s=0; - return len; - } - - const char* inet_ntop(int AF, const void *CP, char *BUF, size_t LEN) - { - char buf[100]; - size_t len; if (AF==AF_INET) - { - inet_ntoa_r(*(struct in_addr*)CP,buf); - len=strlen(buf); - } else if (AF==AF_INET6) { - len=fmt_ip6(buf,(char *)CP); - - } else - - return 0; + } else return 0; if (len<LEN) - { - strcpy(BUF,buf); - return BUF; - } - return 0; - } - - - - - - - - - - - #endif - - - - bool kvi_stringIpToBinaryIp_V6(const char *szIp,struct in6_addr *address) - { - if(!szIp)return false; - return (inet_pton(AF_INET6,szIp,(void *)address) == 1); - } - - bool kvi_isValidStringIp_V6(const char *szIp) - { - struct in6_addr address; - if(!szIp)return false; - return kvi_stringIpToBinaryIp_V6(szIp,&address); - } - - - - - - bool kvi_binaryIpToStringIp_V6(struct in6_addr in,QString &szBuffer) - { - char buf[46]; - bool bRet = inet_ntop(AF_INET6,(void *)&in,buf,46); szBuffer= buf; - return bRet; - } - - - #endif - - #include <errno.h> - - bool kvi_select(int fd,bool * bCanRead,bool * bCanWrite,int iUSecs) - { - // FIXME: This stuff should DIE! - fd_set rs; - fd_set ws; - FD_ZERO(&rs); - FD_ZERO(&ws); - FD_SET(fd,&rs); - FD_SET(fd,&ws); - struct timeval tv; tv.tv_sec = 0; - tv.tv_usec = iUSecs; int ret = select(fd + 1,&rs,&ws,0,&tv); - if(ret < 1)return false; // EINTR or ENOSTUFFATALL *bCanRead = FD_ISSET(fd,&rs); - *bCanWrite = FD_ISSET(fd,&ws); return true; - } - - namespace KviNetUtils - { - bool stringIpToBinaryIp(const QString &szStringIp,struct in_addr * address) { #ifndef HAVE_INET_ATON @@ -984,43 +529,25 @@ namespace KviNetUtils bool isValidStringIp(const QString &szIp) - { - struct in_addr address; - if(szIp.isEmpty())return false; - if(!szIp[0].isNumber())return false; - return stringIpToBinaryIp(szIp,&address); - } - #ifdef COMPILE_IPV6_SUPPORT - bool stringIpToBinaryIp_V6(const QString &szStringIp,struct in6_addr * address) - { - return (inet_pton(AF_INET6,KviQString::toUtf8(szStringIp).data(),(void *)address) == 1); - } - - bool isValidStringIp_V6(const QString &szIp) - { - struct in6_addr address; - if(szIp.isEmpty())return false; - return stringIpToBinaryIp_V6(szIp,&address); - } bool binaryIpToStringIp_V6(struct in6_addr in,QString &szBuffer) @@ -1030,304 +557,161 @@ namespace KviNetUtils szBuffer= buf; return bRet; } - #endif //COMPILE_IPV6_SUPPORT - - bool binaryIpToStringIp(struct in_addr in,QString &szBuffer) - { - char * ptr = inet_ntoa(in); - if(!ptr)return false; - szBuffer = ptr; - return true; - } - - bool isRoutableIpString(const QString &szIpString) - { - struct in_addr a; - if(szIpString.isEmpty())return false; - stringIpToBinaryIp(szIpString,&a); - return isRoutableIp((const char *)&a); - } - - bool isRoutableIp(const char * ipaddr) - { - if(!ipaddr)return false; - const unsigned char * ip = (const unsigned char *)ipaddr; - if(ip[0] == 0)return false; // old-style broadcast - if(ip[0] == 10)return false; // Class A VPN - if(ip[0] == 127)return false; // loopback - if((ip[0] == 172) && (ip[1] >= 16) && (ip[1] <= 31))return false; // Class B VPN - if((ip[0] == 192) && (ip[1] == 168))return false; // Class C VPN - if((ip[0] == 169) && (ip[1] == 254))return false; // APIPA - if((ip[0] == 192) && (ip[1] == 0) && (ip[2] == 2))return false; // Class B VPN - if(ip[0] >= 224)return false; // class D multicast and class E reserved - - return true; - } - - bool getInterfaceAddress(const QString &szInterfaceName,QString &szBuffer) - { #ifdef COMPILE_GET_INTERFACE_ADDRESS - struct sockaddr *sa; - struct sockaddr_in *sin; - struct ifreq ifr; - int len = szInterfaceName.length(); - if(len > (IFNAMSIZ - 1))return false; // invalid interface anyway - - kvi_memmove(ifr.ifr_name,KviQString::toUtf8(szInterfaceName).data(),len + 1); - - int fd = socket(AF_INET,SOCK_STREAM,0); - if(fd < 0)return false; - - if(ioctl(fd,SIOCGIFADDR,&ifr) == -1)return false; // supports only IPV4 ? - - close(fd); - - sa = (struct sockaddr *)&(ifr.ifr_addr); - - if (sa->sa_family != AF_INET) return false; sin = (struct sockaddr_in*) sa; - return binaryIpToStringIp(sin->sin_addr,szBuffer); // (this seems to work for AF_INET only anyway) - #else //!COMPILE_GET_INTERFACE_ADDRESS - return false; - #endif //!COMPILE_GET_INTERFACE_ADDRESS - } - - void formatNetworkBandwidthString(QString &szBuffer,unsigned int uBytesPerSec) - { - if(uBytesPerSec > (1024 * 1024)) - { - unsigned int uMB = uBytesPerSec / (1024 * 1024); - unsigned int uRem = ((uBytesPerSec % (1024 * 1024)) * 100) / (1024 * 1024); KviQString::sprintf(szBuffer,"%u.%u%u MB/s",uMB,uRem / 10,uRem % 10); return; - } if(uBytesPerSec >= 1024) - { - unsigned int uKB = uBytesPerSec / 1024; - unsigned int uRem = ((uBytesPerSec % 1024) * 100) / 1024; KviQString::sprintf(szBuffer,"%u.%u%u KB/s",uKB,uRem / 10,uRem % 10); return; - } KviQString::sprintf(szBuffer,"%u B/s",uBytesPerSec); } - - - - - }; - - bool kvi_getInterfaceAddress(const char * ifname,QString &buffer) - { - debug("kvi_getInterfaceAddress is deprecated: use KviNetUtils::getInterfaceAddress"); - QString szRet; - bool bRes = KviNetUtils::getInterfaceAddress(QString(ifname),szRet); - buffer = szRet; - return bRes; - } - - bool kvi_isRoutableIpString(const char * ipstring) - { - struct in_addr a; - if(!ipstring)return false; - kvi_stringIpToBinaryIp(ipstring,&a); - return kvi_isRoutableIp((const char *)&a); - } - - bool kvi_isRoutableIp(const char * ipaddr) - { - if(!ipaddr)return false; - const unsigned char * ip = (const unsigned char *)ipaddr; if(ip[0] == 0)return false; // old-style broadcast - if(ip[0] == 10)return false; // Class A VPN - if(ip[0] == 127)return false; // loopback - if((ip[0] == 172) && (ip[1] >= 16) && (ip[1] <= 31))return false; // Class B VPN - if((ip[0] == 192) && (ip[1] == 168))return false; // Class C VPN - if((ip[0] == 169) && (ip[1] == 254))return false; // APIPA - if((ip[0] == 192) && (ip[1] == 0) && (ip[2] == 2))return false; // Class B VPN - if(ip[0] >= 224)return false; // class D multicast and class E reserved - - return true; - } - - bool kvi_getLocalHostAddress(QString &buffer) - { - // This will work only on windoze... - char buf[1024]; - if(gethostname(buf,1024) != 0)return false; - struct hostent * h = gethostbyname(buf); - if(!h)return false; - QString tmp; - int i=0; - while(h->h_addr_list[i]) - { - if(kvi_binaryIpToStringIp(*((struct in_addr *)(h->h_addr_list[i])),tmp)) - { - if(kvi_isRoutableIp(h->h_addr_list[i])) - { - buffer = tmp; - return true; - } - } - i++; - } buffer = tmp; - return true; - } - - - - - - - - - - KviSockaddr::KviSockaddr(const char * szIpAddress,kvi_u32_t uPort,bool bIpV6,bool bUdp) - { struct addrinfo hints; kvi_memset((void *)&hints,0,sizeof(hints)); @@ -1344,10 +728,8 @@ KviSockaddr::KviSockaddr(const char * szIpAddress,kvi_u32_t uPort,bool bIpV6,boo m_pData = 0; KviStr szPort(KviStr::Format,"%u",uPort); getaddrinfo(szIpAddress,szPort.ptr(),&hints,(struct addrinfo **)&m_pData); - } - KviSockaddr::KviSockaddr(kvi_u32_t uPort,bool bIpV6,bool bUdp) // passive sockaddr { @@ -1364,87 +746,46 @@ KviSockaddr::KviSockaddr(kvi_u32_t uPort,bool bIpV6,bool bUdp) // passive sockad m_pData = 0; KviStr szPort(KviStr::Format,"%u",uPort); getaddrinfo(0,szPort.ptr(),&hints,(struct addrinfo **)&m_pData); - } - - KviSockaddr::~KviSockaddr() - { - if(m_pData) - { - freeaddrinfo((struct addrinfo *)m_pData); - m_pData = 0; - } - } - - struct sockaddr * KviSockaddr::socketAddress() - { - if(!m_pData)return 0; - return ((struct addrinfo *)m_pData)->ai_addr; - } - - size_t KviSockaddr::addressLength() - { - if(!m_pData)return 0; - return ((struct addrinfo *)m_pData)->ai_addrlen; - } - - int KviSockaddr::addressFamily() - { - if(!m_pData)return 0; - return ((struct addrinfo *)m_pData)->ai_family; - } - - bool KviSockaddr::isIpV6() - { - if(!m_pData)return false; - #ifdef COMPILE_IPV6_SUPPORT - return false; - #else - return (addressFamily() == AF_INET6); - #endif - } - - kvi_u32_t KviSockaddr::port() - { if(!m_pData)return 0; #ifdef COMPILE_IPV6_SUPPORT @@ -1461,44 +802,24 @@ kvi_u32_t KviSockaddr::port() #else return ntohs(((struct sockaddr_in *)(((struct addrinfo *)m_pData)->ai_addr))->sin_port); #endif - } - - bool KviSockaddr::getStringAddress(QString &szBuffer) - { - if(!m_pData)return 0; - #ifdef COMPILE_IPV6_SUPPORT - switch(((struct addrinfo *)m_pData)->ai_family) - { - case AF_INET: - return kvi_binaryIpToStringIp(((struct sockaddr_in *)(((struct addrinfo *)m_pData)->ai_addr))->sin_addr,szBuffer); - break; - case AF_INET6: - return kvi_binaryIpToStringIp_V6(((struct sockaddr_in6 *)(((struct addrinfo *)m_pData)->ai_addr))->sin6_addr,szBuffer); - break; - } return false; - #else - return kvi_binaryIpToStringIp(((struct sockaddr_in *)(((struct addrinfo *)m_pData)->ai_addr))->sin_addr,szBuffer); - #endif - } - diff --git a/src/kvilib/system/kvi_locale.cpp b/src/kvilib/system/kvi_locale.cpp index e137eb9c1..2ca96bc0c 100644 --- a/src/kvilib/system/kvi_locale.cpp +++ b/src/kvilib/system/kvi_locale.cpp @@ -34,12 +34,9 @@ #include "kvi_locale.h" #include <qglobal.h> //for debug() -#include <qtextcodec.h> -#include <qdir.h> - -#ifdef COMPILE_USE_QT4 - #include <qlocale.h> -#endif +#include <QTextCodec> +#include <QDir> +#include <QLocale> #include "kvi_string.h" #include "kvi_qcstring.h" @@ -105,165 +102,155 @@ typedef unsigned int gunichar; static const char * fast_validate (const char *str) - { - gunichar val = 0; - gunichar min = 0; - const gchar *p; - - for (p = str; *p; p++) - { - if (*(guchar *)p < 128) - /* done */; - else - { - const gchar *last; - - last = p; - if ((*(guchar *)p & 0xe0) == 0xc0) /* 110xxxxx */ - { - if ((*(guchar *)p & 0x1e) == 0) - goto error; - p++; - if ((*(guchar *)p & 0xc0) != 0x80) /* 10xxxxxx */ - goto error; - } - else - { - if ((*(guchar *)p & 0xf0) == 0xe0) /* 1110xxxx */ - { - min = (1 << 11); - val = *(guchar *)p & 0x0f; - goto TWO_REMAINING; - } - else if ((*(guchar *)p & 0xf8) == 0xf0) /* 11110xxx */ - { - min = (1 << 16); - val = *(guchar *)p & 0x07; - } - else - goto error; - - p++; - CONTINUATION_CHAR; - TWO_REMAINING: - p++; - CONTINUATION_CHAR; - p++; - CONTINUATION_CHAR; - - if (val < min) - goto error; + gunichar val = 0; + gunichar min = 0; + const gchar *p; - if (!UNICODE_VALID(val)) - goto error; - } - - continue; - - error: - return last; - } - } + for (p = str; *p; p++) + { + if (*(guchar *)p < 128) + /* done */; + else + { + const gchar *last; + + last = p; + if ((*(guchar *)p & 0xe0) == 0xc0) /* 110xxxxx */ + { + if ((*(guchar *)p & 0x1e) == 0) + goto error; + p++; + if ((*(guchar *)p & 0xc0) != 0x80) /* 10xxxxxx */ + goto error; + } + else + { + if ((*(guchar *)p & 0xf0) == 0xe0) /* 1110xxxx */ + { + min = (1 << 11); + val = *(guchar *)p & 0x0f; + goto TWO_REMAINING; + } + else if ((*(guchar *)p & 0xf8) == 0xf0) /* 11110xxx */ + { + min = (1 << 16); + val = *(guchar *)p & 0x07; + } + else goto error; + + p++; + CONTINUATION_CHAR; + TWO_REMAINING: + p++; + CONTINUATION_CHAR; + p++; + CONTINUATION_CHAR; + + if (val < min) goto error; + + if (!UNICODE_VALID(val)) goto error; + } + + continue; - return p; + error: + return last; + } + } + + return p; } static const gchar * -fast_validate_len (const char *str, - gssize max_len) - +fast_validate_len (const char *str, gssize max_len) { - gunichar val = 0; - gunichar min = 0; - const gchar *p; - - for (p = str; (max_len < 0 || (p - str) < max_len) && *p; p++) - { - if (*(guchar *)p < 128) - /* done */; - else - { - const gchar *last; - - last = p; - if ((*(guchar *)p & 0xe0) == 0xc0) /* 110xxxxx */ - { - if (max_len >= 0 && max_len - (p - str) < 2) - goto error; - - if ((*(guchar *)p & 0x1e) == 0) - goto error; - p++; - if ((*(guchar *)p & 0xc0) != 0x80) /* 10xxxxxx */ - goto error; - } - else - { - if ((*(guchar *)p & 0xf0) == 0xe0) /* 1110xxxx */ - { - if (max_len >= 0 && max_len - (p - str) < 3) - goto error; - - min = (1 << 11); - val = *(guchar *)p & 0x0f; - goto TWO_REMAINING; - } - else if ((*(guchar *)p & 0xf8) == 0xf0) /* 11110xxx */ - { - if (max_len >= 0 && max_len - (p - str) < 4) - goto error; + gunichar val = 0; + gunichar min = 0; + const gchar *p; - min = (1 << 16); - val = *(guchar *)p & 0x07; - } - else - goto error; - - p++; - CONTINUATION_CHAR; - TWO_REMAINING: - p++; - CONTINUATION_CHAR; - p++; - CONTINUATION_CHAR; - - if (val < min) - goto error; - if (!UNICODE_VALID(val)) - goto error; - } - - continue; - - error: - return last; - } - } - - return p; + for (p = str; (max_len < 0 || (p - str) < max_len) && *p; p++) + { + if (*(guchar *)p < 128) + /* done */; + else + { + const gchar *last; + + last = p; + if ((*(guchar *)p & 0xe0) == 0xc0) /* 110xxxxx */ + { + if (max_len >= 0 && max_len - (p - str) < 2) + goto error; + + if ((*(guchar *)p & 0x1e) == 0) + goto error; + p++; + if ((*(guchar *)p & 0xc0) != 0x80) /* 10xxxxxx */ + goto error; + } + else + { + if ((*(guchar *)p & 0xf0) == 0xe0) /* 1110xxxx */ + { + if (max_len >= 0 && max_len - (p - str) < 3) + goto error; + + min = (1 << 11); + val = *(guchar *)p & 0x0f; + goto TWO_REMAINING; + } + else if ((*(guchar *)p & 0xf8) == 0xf0) /* 11110xxx */ + { + if (max_len >= 0 && max_len - (p - str) < 4) + goto error; + + min = (1 << 16); + val = *(guchar *)p & 0x07; + } + else + goto error; + + p++; + CONTINUATION_CHAR; + TWO_REMAINING: + p++; + CONTINUATION_CHAR; + p++; + CONTINUATION_CHAR; + + if (val < min) goto error; + if (!UNICODE_VALID(val)) goto error; + } + + continue; + + error: + return last; + } + } + + return p; } static bool g_utf8_validate (const char *str, gssize max_len, const gchar **end) - { - const gchar *p; - - if (max_len < 0) - p = fast_validate (str); - else - p = fast_validate_len (str, max_len); - - if (end) - *end = p; - - if ((max_len >= 0 && p != str + max_len) || - (max_len < 0 && *p != '\0')) - return false; - else - return true; + const gchar *p; + + if (max_len < 0) + p = fast_validate (str); + else + p = fast_validate_len (str, max_len); + + if (end) *end = p; + + if ((max_len >= 0 && p != str + max_len) || + (max_len < 0 && *p != '\0')) + return false; + else + return true; } /////////////////////////////////////////////////////////////////////////////////////////////// @@ -307,7 +294,6 @@ public: virtual int mibEnum () const { return 0; }; -#ifdef COMPILE_USE_QT4 virtual QByteArray name() const { return m_szName; }; protected: virtual QByteArray convertFromUnicode(const QChar * input,int number,ConverterState * state) const @@ -319,55 +305,6 @@ protected: if(g_utf8_validate(chars,len,NULL))return g_pUtf8TextCodec->toUnicode(chars,len,state); return m_pRecvCodec->toUnicode(chars,len,state); } -#else -public: - virtual const char * mimeName () const { return m_pRecvCodec->mimeName(); }; - virtual const char * name () const { return m_szName.data(); }; - virtual QTextDecoder * makeDecoder () const { return m_pRecvCodec->makeDecoder(); }; - virtual QTextEncoder * makeEncoder () const { return m_pSendCodec->makeEncoder(); }; - QCString fromUnicode (const QString & uc) const { return m_pSendCodec->fromUnicode(uc); }; - virtual QCString fromUnicode (const QString & uc,int & lenInOut) const { return m_pSendCodec->fromUnicode(uc,lenInOut); }; - QString toUnicode(const char * chars) const - { - if(g_utf8_validate(chars,-1,NULL))return g_pUtf8TextCodec->toUnicode(chars); - return m_pRecvCodec->toUnicode(chars); - }; - virtual QString toUnicode(const char * chars,int len) const - { - if(g_utf8_validate(chars,len,NULL))return g_pUtf8TextCodec->toUnicode(chars,len); - return m_pRecvCodec->toUnicode(chars,len); - }; - QString toUnicode(const QByteArray & a,int len) const - { - if(g_utf8_validate(a.data(),len,NULL))return g_pUtf8TextCodec->toUnicode(a,len); - return m_pRecvCodec->toUnicode(a,len); - }; - QString toUnicode(const QByteArray & a) const - { - if(g_utf8_validate(a.data(),a.size(),NULL))return g_pUtf8TextCodec->toUnicode(a); - return m_pRecvCodec->toUnicode(a); - }; - QString toUnicode(const QCString & a,int len) const - { - if(g_utf8_validate(a.data(),len,NULL))return g_pUtf8TextCodec->toUnicode(a,len); - return m_pRecvCodec->toUnicode(a,len); - }; - QString toUnicode(const QCString & a) const - { - if(g_utf8_validate(a.data(),-1,NULL))return g_pUtf8TextCodec->toUnicode(a); - return m_pRecvCodec->toUnicode(a); - }; - - virtual bool canEncode(QChar ch) const { return m_pSendCodec->canEncode(ch); }; - virtual bool canEncode(const QString &s) const { return m_pSendCodec->canEncode(s); }; - virtual int heuristicContentMatch(const char * chars,int len) const - { - int iii = g_pUtf8TextCodec->heuristicContentMatch(chars,len); - if(iii < 0)return m_pRecvCodec->heuristicContentMatch(chars,len); - return iii; - } - virtual int heuristicNameMatch(const char * hint) const { return 0; }; -#endif }; static KviPointerHashTable<const char *,KviSmartTextCodec> * g_pSmartCodecDict = 0; @@ -574,7 +511,7 @@ bool KviMessageCatalogue::load(const QString& name) // Check again for broken *.mo files int expectedFileSize = KVI_SWAP_IF_NEEDED(bMustSwap,transDescriptor[numberOfStrings - 1].offset) + - KVI_SWAP_IF_NEEDED(bMustSwap,transDescriptor[numberOfStrings - 1].length); + KVI_SWAP_IF_NEEDED(bMustSwap,transDescriptor[numberOfStrings - 1].length); if(fSize < (unsigned int)expectedFileSize) { @@ -679,9 +616,6 @@ const QString & KviMessageCatalogue::translateToQString(const char *text) return *(aux->m_pQTranslation); } - - - namespace KviLocale { #ifndef QT_NO_BIG_CODECS @@ -690,8 +624,6 @@ namespace KviLocale #define NUM_ENCODINGS 85 #endif - - static EncodingDescription supported_encodings[]= { { "UTF-8" , 0 , 0 , "8-bit Unicode" }, @@ -956,11 +888,8 @@ namespace KviLocale { // first of all try to find out the current locale g_szLang=""; -#ifdef COMPILE_USE_QT4 QString szLangFile=QString("%1/.kvirc_force_locale").arg(QDir::homePath()); -#else - QString szLangFile=QString("%1/.kvirc_force_locale").arg(QDir::homeDirPath()); -#endif + if(KviFileUtils::fileExists(szLangFile)) { QString szTmp; @@ -968,11 +897,7 @@ namespace KviLocale g_szLang=szTmp; } if(g_szLang.isEmpty())g_szLang = kvi_getenv("KVIRC_LANG"); -#ifdef COMPILE_USE_QT4 if(g_szLang.isEmpty())g_szLang = QLocale::system().name(); -#else - if(g_szLang.isEmpty())g_szLang = QTextCodec::locale(); -#endif if(g_szLang.isEmpty())g_szLang = kvi_getenv("LC_MESSAGES"); if(g_szLang.isEmpty())g_szLang = kvi_getenv("LANG"); if(g_szLang.isEmpty())g_szLang = "en"; @@ -1079,11 +1004,7 @@ namespace KviLocale }; KviTranslator::KviTranslator(QObject * par,const char * nam) -#ifdef COMPILE_USE_QT4 : QTranslator(par) -#else -: QTranslator(par,nam) -#endif { } @@ -1091,13 +1012,11 @@ KviTranslator::~KviTranslator() { } -#ifdef COMPILE_USE_QT4 QString KviTranslator::translate(const char *context,const char * message,const char * comment) const { // we ignore contexts and comments for qt translations return g_pMainCatalogue->translateToQString(message); } -#endif QString KviTranslator::find(const char *context,const char * message) const { @@ -1105,14 +1024,6 @@ QString KviTranslator::find(const char *context,const char * message) const return g_pMainCatalogue->translateToQString(message); } -#ifndef COMPILE_USE_QT4 -QTranslatorMessage KviTranslator::findMessage(const char * context,const char * sourceText,const char * comment) const -{ - // we ignore contexts for qt translations - return QTranslatorMessage(context,sourceText,comment,g_pMainCatalogue->translateToQString(sourceText)); -} -#endif - #if 0 // a fake table that will force these translations @@ -1185,7 +1096,5 @@ static QString fake_translations_table[]= __tr2qs("All Files"), __tr2qs("&OK"), __tr2qs("&Cancel") - } - #endif diff --git a/src/kvilib/system/kvi_locale.h b/src/kvilib/system/kvi_locale.h index 33bb65e08..fb87438ca 100644 --- a/src/kvilib/system/kvi_locale.h +++ b/src/kvilib/system/kvi_locale.h @@ -31,7 +31,7 @@ #include "kvi_string.h" #include "kvi_pointerhashtable.h" -#include <qapplication.h> +#include <QApplication> class QTextCodec; class KviMessageCatalogue; @@ -121,8 +121,8 @@ public: #define __tr2qs_ctx_no_xgettext(__text__,__context__) KviLocale::translateToQString(__text__,__context__) #define __tr2qs_no_lookup(__text__) __text__ -#include <qtranslator.h> -#include <qstring.h> +#include <QTranslator> +#include <QString> class KVILIB_API KviTranslator : public QTranslator { diff --git a/src/kvilib/system/kvi_time.h b/src/kvilib/system/kvi_time.h index 98cc4e331..4d7ee3219 100644 --- a/src/kvilib/system/kvi_time.h +++ b/src/kvilib/system/kvi_time.h @@ -26,8 +26,8 @@ //============================================================================= #include "kvi_settings.h" -#include <qstring.h> +#include <QString> #include <time.h> // for time() diff --git a/src/kvirc/kernel/kvi_iconmanager.cpp b/src/kvirc/kernel/kvi_iconmanager.cpp index f76bb6b97..5c3cc655b 100644 --- a/src/kvirc/kernel/kvi_iconmanager.cpp +++ b/src/kvirc/kernel/kvi_iconmanager.cpp @@ -28,7 +28,6 @@ #include "kvi_iconmanager.h" -#include "kvi_imagelib.h" #include "kvi_app.h" #include "kvi_settings.h" #include "kvi_defaults.h" @@ -36,18 +35,12 @@ #include "kvi_fileutils.h" #include "kvi_options.h" -#include <qlayout.h> -#include <qlabel.h> +#include <QLayout> +#include <QLabel> +#include <QCursor> +#include <QEvent> +#include <QCloseEvent> -#ifndef COMPILE_USE_QT4 - // In Qt.4 we need to use QMimeData ? - #include <qdragobject.h> -#endif -#include <qcursor.h> - -#ifdef COMPILE_USE_QT4 - #include <qevent.h> -#endif // kvi_app.cpp extern QPixmap * g_pUserChanStatePixmap; @@ -352,11 +345,7 @@ static const char * g_szIconNames[KVI_NUM_SMALL_ICONS]= }; KviIconWidget::KviIconWidget() -#ifdef COMPILE_USE_QT4 : QWidget(0,"global_icon_widget" /*,WType_TopLevel | WStyle_Customize | WStyle_Title | WStyle_StaysOnTop | WStyle_DialogBorder | WStyle_SysMenu | WStyle_Minimize*/) -#else -: QWidget(0,"global_icon_widget",WType_TopLevel | WStyle_Customize | WStyle_Title | WStyle_StaysOnTop | WStyle_DialogBorder | WStyle_SysMenu | WStyle_Minimize) -#endif { init(); } @@ -840,39 +829,8 @@ QPixmap * KviIconManager::loadSmallIcon(int idx) if(idx >= KVI_NUM_SMALL_ICONS)return 0; if(idx < 0)return 0; - - // COMPATIBILITY ENTRY: To be removed in some time. - // This part loads the old smallicon library format kvi_smallicon_*.png - // to preserve backward compatibility with old themes. - // We lookup such files ONLY in the themes directories. - - QString szFileName = KVI_SMALLICONS_IMAGELIB_PREFIX; - - int fileidx = idx / 16; - - if(fileidx >= 10)KviQString::appendFormatted(szFileName,"%d.png",fileidx); - else KviQString::appendFormatted(szFileName,"0%d.png",fileidx); - - QString buffer; - if(g_pApp->findImageThemeOnlyCompat(buffer,szFileName)) - { - KviImageLibrary l1(buffer,16,16); - - int offset = fileidx * 16; - - for(int i=0;i<16;i++) - { - int io = i + offset; - if(io >= KVI_NUM_SMALL_ICONS)break; - if(m_smallIcons[io])delete m_smallIcons[io]; - m_smallIcons[io] = new QPixmap(l1.getImage(i)); - } - - return m_smallIcons[idx]; - } - - // otherwise we use the NEW method: separate small icons in the "coresmall" subdirectory. QString szPath; + QString buffer; KviQString::sprintf(szPath,KVI_SMALLICONS_PREFIX "%s.png",g_szIconNames[idx]); g_pApp->findSmallIcon(buffer,szPath); @@ -924,4 +882,3 @@ void KviIconManager::cacheCleanup() #ifndef COMPILE_USE_STANDALONE_MOC_SOURCES #include "kvi_iconmanager.moc" #endif //!COMPILE_USE_STANDALONE_MOC_SOURCES - diff --git a/src/kvirc/ui/kvi_channel.h b/src/kvirc/ui/kvi_channel.h index cd06db5d0..bec8f3425 100644 --- a/src/kvirc/ui/kvi_channel.h +++ b/src/kvirc/ui/kvi_channel.h @@ -25,8 +25,6 @@ //============================================================================= #include "kvi_settings.h" - - #include "kvi_console.h" #include "kvi_window.h" #include "kvi_string.h" @@ -36,10 +34,10 @@ #include "kvi_time.h" #include "kvi_modew.h" #include "kvi_valuelist.h" - -#include <qdatetime.h> #include "kvi_pointerhashtable.h" -#include <qstringlist.h> + +#include <QDateTime> +#include <QStringList> class KviConsole; class QSplitter; |
