diff options
| author | 2012-09-29 16:04:34 +0000 | |
|---|---|---|
| committer | 2012-09-29 16:04:34 +0000 | |
| commit | b1fb4f80cce175f20de915469b67c939e282ce1f (patch) | |
| tree | ff364377b3228fd03ac3542a6226a5f021685bae /src | |
| parent | More qt5 porting/warnings (diff) | |
| download | KVIrc-b1fb4f80cce175f20de915469b67c939e282ce1f.tar.gz KVIrc-b1fb4f80cce175f20de915469b67c939e282ce1f.tar.bz2 KVIrc-b1fb4f80cce175f20de915469b67c939e282ce1f.zip | |
More qt5 porting (qprinter and qftp), removed some warnings
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@6263 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src')
| -rw-r--r-- | src/kvilib/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/kvilib/net/KviNetworkAccessManager.cpp | 33 | ||||
| -rw-r--r-- | src/kvilib/net/KviNetworkAccessManager.h | 49 | ||||
| -rw-r--r-- | src/kvirc/ui/KviWebPackageManagementDialog.cpp | 80 | ||||
| -rw-r--r-- | src/kvirc/ui/KviWebPackageManagementDialog.h | 9 | ||||
| -rw-r--r-- | src/modules/objects/KvsObject_painter.cpp | 19 | ||||
| -rw-r--r-- | src/modules/objects/KvsObject_painter.h | 8 |
7 files changed, 117 insertions, 82 deletions
diff --git a/src/kvilib/CMakeLists.txt b/src/kvilib/CMakeLists.txt index ca9a27740..22c2cb6b3 100644 --- a/src/kvilib/CMakeLists.txt +++ b/src/kvilib/CMakeLists.txt @@ -76,6 +76,7 @@ SET(kvilib_SRCS net/KviDnsResolver.cpp net/KviHttpRequest.cpp net/KviNetUtils.cpp + net/KviNetworkAccessManager.cpp net/KviSASL.cpp net/kvi_socket.cpp net/KviSSL.cpp diff --git a/src/kvilib/net/KviNetworkAccessManager.cpp b/src/kvilib/net/KviNetworkAccessManager.cpp new file mode 100644 index 000000000..ad085c40e --- /dev/null +++ b/src/kvilib/net/KviNetworkAccessManager.cpp @@ -0,0 +1,33 @@ +//============================================================================= +// +// File : KviNetworkAccessManager.h +// Creation date : Sat Sep 29 2012 17:15:12 CEST by Fabio Bas +// +// This file is part of the KVIrc irc client distribution +// Copyright (C) 2002-2012 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +// +//============================================================================= + +#include "KviNetworkAccessManager.h" + +KviNetworkAccessManager::KviNetworkAccessManager() +{ +} + +KviNetworkAccessManager::~KviNetworkAccessManager() +{ +} diff --git a/src/kvilib/net/KviNetworkAccessManager.h b/src/kvilib/net/KviNetworkAccessManager.h new file mode 100644 index 000000000..b6ae38132 --- /dev/null +++ b/src/kvilib/net/KviNetworkAccessManager.h @@ -0,0 +1,49 @@ +#ifndef _KVI_NETWORKACCESSMANAGER_H_ +#define _KVI_NETWORKACCESSMANAGER_H_ +//============================================================================= +// +// File : KviNetworkAccessManager.h +// Creation date : Sat Sep 29 2012 17:15:12 CEST by Fabio Bas +// +// This file is part of the KVIrc irc client distribution +// Copyright (C) 2002-2012 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. +// +//============================================================================= + +#include "kvi_settings.h" + +#include <QNetworkAccessManager> +// useful for users of this singleton +#include <QNetworkRequest> +#include <QNetworkReply> + +class KVILIB_API KviNetworkAccessManager +{ +private: + KviNetworkAccessManager(); + ~KviNetworkAccessManager(); +public: + static QNetworkAccessManager* getInstance() + { + static QNetworkAccessManager* pInstance = NULL; + if(!pInstance) + pInstance = new QNetworkAccessManager(); + return pInstance; + } +}; + +#endif //_KVI_NETWORKACCESSMANAGER_H_ diff --git a/src/kvirc/ui/KviWebPackageManagementDialog.cpp b/src/kvirc/ui/KviWebPackageManagementDialog.cpp index ff7ffac97..c90d133a0 100644 --- a/src/kvirc/ui/KviWebPackageManagementDialog.cpp +++ b/src/kvirc/ui/KviWebPackageManagementDialog.cpp @@ -26,7 +26,6 @@ #include "KviWebPackageManagementDialog.h" -#warning KviWebPackageManagementDialog uses QFtp, either port it or drop it #ifdef COMPILE_WEBKIT_SUPPORT #include "KviLocale.h" @@ -36,6 +35,7 @@ #include "KviFileUtils.h" #include "KviIconManager.h" #include "KviMainWindow.h" +#include "KviNetworkAccessManager.h" #include <QDesktopWidget> #include <QToolButton> @@ -48,9 +48,6 @@ #include <QVBoxLayout> #include <QToolBar> #include <QFile> -#if (QT_VERSION < 050000) -#include <QFtp> -#endif #include <QProgressBar> #include <QDir> #include <QWebView> @@ -71,10 +68,6 @@ KviWebPackageManagementDialog::KviWebPackageManagementDialog(QWidget * pParent) m_pLayout->setSpacing(2); setLayout(m_pLayout); -#if (QT_VERSION < 050000) - m_pFtp = NULL; -#endif - m_pFile = NULL; m_bBusy = false; QWidget *pStatus = new QWidget(this); @@ -109,12 +102,6 @@ KviWebPackageManagementDialog::KviWebPackageManagementDialog(QWidget * pParent) KviWebPackageManagementDialog::~KviWebPackageManagementDialog() { - if(m_pFile) - delete m_pFile; -#if (QT_VERSION < 050000) - if(m_pFtp) - delete m_pFtp; -#endif } void KviWebPackageManagementDialog::setPackagePageUrl(const QString &szUrl) @@ -203,25 +190,13 @@ void KviWebPackageManagementDialog::slotLinkClicked(const QUrl &url) { // one download at once m_bBusy = true; -#if (QT_VERSION < 050000) - if(!m_pFtp) - { - m_pFtp = new QFtp(); - connect(m_pFtp,SIGNAL(commandFinished(int,bool)),this,SLOT(slotCommandFinished(int,bool))); - connect(m_pFtp,SIGNAL(dataTransferProgress(qint64,qint64)),this,SLOT(slotDataTransferProgress(qint64,qint64))); - } + + QNetworkRequest req(url); + QNetworkReply *pReply = KviNetworkAccessManager::getInstance()->get(req); + connect(pReply, SIGNAL(finished()), this, SLOT(slotCommandFinished())); + connect(pReply, SIGNAL(downloadProgress(qint64,qint64)), this, SLOT(slotDataTransferProgress(qint64,qint64))); + m_pProgressBar->show(); - QString szUrl = url.toString(); - int iIdx=szUrl.lastIndexOf("/"); - QString szFile = szUrl.right(szUrl.length()-iIdx-1); - m_pFile = new QFile(m_pFtp); - g_pApp->getLocalKvircDirectory(m_szLocalTemporaryPath,KviApplication::Tmp,szFile); - m_pFile->setFileName(m_szLocalTemporaryPath); - m_pFile->open(QIODevice::ReadWrite); - m_pFtp->connectToHost(url.host()); - m_pFtp->login("anonymous","anonymous"); - m_pFtp->get(url.path(),m_pFile); -#endif } else { qDebug("uninstall theme");//to be continued } @@ -242,19 +217,29 @@ void KviWebPackageManagementDialog::slotLoadProgress(int iProgress) m_pProgressBar->setFormat(__tr2qs_ctx("Loading: %p%","theme")); } -void KviWebPackageManagementDialog::slotCommandFinished(int id,bool error) +void KviWebPackageManagementDialog::slotCommandFinished() { -#if (QT_VERSION < 050000) - if(m_pFtp->currentCommand() == QFtp::Get) + QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender()); + + m_pProgressBar->hide(); + m_pProgressBar->setValue(0); + + if (reply) { - m_pProgressBar->hide(); - m_pProgressBar->setValue(0); - if(!error) + if (reply->error() == QNetworkReply::NoError) { - QString szError; - m_pFile->close(); - + //read data from reply + QString szUrl = reply->url().toString(); + int iIdx=szUrl.lastIndexOf("/"); + QString szFile = szUrl.right(szUrl.length()-iIdx-1); + QFile tmpFile; + g_pApp->getLocalKvircDirectory(m_szLocalTemporaryPath,KviApplication::Tmp,szFile); + tmpFile.setFileName(m_szLocalTemporaryPath); + tmpFile.open(QIODevice::ReadWrite); + tmpFile.write(reply->readAll()); + tmpFile.close(); + QString szError; if(!installPackage(m_szLocalTemporaryPath,szError)) { KviMessageBox::information(szError); @@ -263,16 +248,16 @@ void KviWebPackageManagementDialog::slotCommandFinished(int id,bool error) } QFileInfo info(m_szLocalTemporaryPath); - delete m_pFile; - m_pFile = 0; if (info.exists()) KviFileUtils::removeFile(m_szLocalTemporaryPath); m_bBusy = false; - m_pFtp->close(); + } else { + //get http status code + int httpStatus = reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); + KviMessageBox::information(QString("Download failed:%1").arg(reply->errorString())); } + reply->deleteLater(); } - id=0; //to be continued -#endif } void KviWebPackageManagementDialog::showEvent(QShowEvent *) @@ -282,8 +267,5 @@ void KviWebPackageManagementDialog::showEvent(QShowEvent *) move(rect.x() + ((rect.width() - width())/2),rect.y() + ((rect.height() - height())/2)); } - - - #endif //COMPILE_WEBKIT_SUPPORT diff --git a/src/kvirc/ui/KviWebPackageManagementDialog.h b/src/kvirc/ui/KviWebPackageManagementDialog.h index 012d014c1..4fecd701d 100644 --- a/src/kvirc/ui/KviWebPackageManagementDialog.h +++ b/src/kvirc/ui/KviWebPackageManagementDialog.h @@ -36,9 +36,6 @@ class QToolBar; class QVBoxLayout; class QWebView; class QFile; -#if (QT_VERSION < 050000) -class QFtp; -#endif class QProgressBar; class QUrl; @@ -70,10 +67,6 @@ private: QToolBar * m_pToolBar; QVBoxLayout *m_pLayout; QWebView * m_pWebView; - QFile *m_pFile; -#if (QT_VERSION < 050000) - QFtp *m_pFtp; -#endif bool m_bBusy; QProgressBar *m_pProgressBar; QString m_szPackagePageUrl; @@ -90,7 +83,7 @@ protected slots: void slotLoadFinished(bool ok); void slotLoadProgress(int iProgress); void slotDataTransferProgress(qint64 iDone,qint64 iTotal); - void slotCommandFinished(int id,bool error); + void slotCommandFinished(); void slotLinkClicked(const QUrl &url); }; // class KviWebPackageManagementDialog diff --git a/src/modules/objects/KvsObject_painter.cpp b/src/modules/objects/KvsObject_painter.cpp index 8e31810b1..968e9434c 100644 --- a/src/modules/objects/KvsObject_painter.cpp +++ b/src/modules/objects/KvsObject_painter.cpp @@ -33,9 +33,7 @@ #include "KviError.h" #include "KviIconManager.h" #include "KviMemory.h" -#if (QT_VERSION < 0x050000) - #include <QPrintDialog> -#endif +#include <QPrintDialog> #include <QTextDocument> #include <QIcon> @@ -622,9 +620,7 @@ KVSO_BEGIN_CONSTRUCTOR(KvsObject_painter,KviKvsObject) m_pPainter = new QPainter(); bDonotdeleteinternalqpainter=false; -#if (QT_VERSION < 0x050000) m_pPrinter = 0 ; -#endif m_pDeviceObject=0; m_pPainterPath=0; m_pGradient=0; @@ -639,10 +635,8 @@ KVSO_BEGIN_DESTRUCTOR(KvsObject_painter) m_pGradient=0; if (m_pPainter && !bDonotdeleteinternalqpainter) delete m_pPainter; m_pPainter = 0; -#if (QT_VERSION < 0x050000) if (m_pPrinter) delete m_pPrinter; m_pPrinter = 0; -#endif KVSO_END_CONSTRUCTOR(KvsObject_painter) @@ -1164,10 +1158,6 @@ KVSO_CLASS_FUNCTION(painter,begin) { QString szDev; v->asString(szDev); -#if (QT_VERSION >= 0x050000) - c->warning(__tr2qs_ctx("No valid paint device","objects")); - return true; -#else if(KviQString::equalCI(szDev,"printer") || KviQString::equalCI(szDev,"pdf")) { if (m_pPrinter) delete m_pPrinter; @@ -1202,7 +1192,6 @@ KVSO_CLASS_FUNCTION(painter,begin) } m_pPainter->begin(m_pPrinter); return true; -#endif } else if (v->isHObject()) { v->asHObject(hObject); pObject=KviKvsKernel::instance()->objectController()->lookupObject(hObject); @@ -1245,13 +1234,11 @@ void KvsObject_painter::detachDevice() if(!m_pDeviceObject)return; disconnect(m_pDeviceObject,SIGNAL(aboutToDie()),this,SLOT(detachDevice())); m_pPainter->end(); -#if (QT_VERSION < 0x050000) if (m_pPrinter) { delete m_pPrinter; m_pPrinter=0; } -#endif m_pDeviceObject = 0; } @@ -1262,13 +1249,11 @@ KVSO_CLASS_FUNCTION(painter,end) if(!m_pDeviceObject) { m_pPainter->end(); -#if (QT_VERSION < 0x050000) if (m_pPrinter) { delete m_pPrinter; m_pPrinter=0; } -#endif } else detachDevice(); return true; @@ -1281,13 +1266,11 @@ KVSO_CLASS_FUNCTION(painter,beginPdf) KVSO_PARAMETERS_BEGIN(c) KVSO_PARAMETER("file_name",KVS_PT_STRING,0,szFileName) KVSO_PARAMETERS_END(c) -#if (QT_VERSION < 0x050000) if (m_pPrinter) delete m_pPrinter; m_pPrinter=new QPrinter();//QPrinter::HighResolution); m_pPrinter->setOutputFormat(QPrinter::PdfFormat); m_pPrinter->setOutputFileName(szFileName); m_pPainter->begin(m_pPrinter); -#endif return true; } diff --git a/src/modules/objects/KvsObject_painter.h b/src/modules/objects/KvsObject_painter.h index dc69396d4..33b131176 100644 --- a/src/modules/objects/KvsObject_painter.h +++ b/src/modules/objects/KvsObject_painter.h @@ -25,12 +25,8 @@ // //============================================================================= -#warning QPrinter support in KvsObject_painter needs Qt5PrintSupport module: cmake rules, ifdefs, etc - #include "object_macros.h" -#if (QT_VERSION < 0x050000) - #include <QPrinter> -#endif +#include <QPrinter> #include <QPainter> #include <QPaintDevice> @@ -44,9 +40,7 @@ class KvsObject_painter : public KviKvsObject public: KVSO_DECLARE_OBJECT(KvsObject_painter) protected: -#if (QT_VERSION < 0x050000) QPrinter * m_pPrinter; -#endif bool bDonotdeleteinternalqpainter; QPainter * m_pPainter; QMatrix m_pMatrix; |
