[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdelibs/kio/kio
From:       Dawit Alemayehu <adawit () kde ! org>
Date:       2010-11-13 6:10:21
Message-ID: 20101113061021.24748AC89E () svn ! kde ! org
[Download RAW message or body]

SVN commit 1196358 by adawit:

- Removed the d-ptr from this private class and performed all the associated 
  clean up. There is no point in having a d-ptr in a private class. I do not 
  believe such a change at this point impacts BC, does it ?

- Added a method for setting the status of the network reply.

- Made all the slots private.


 M  +41 -54    accessmanagerreply_p.cpp  
 M  +18 -10    accessmanagerreply_p.h  


--- trunk/KDE/kdelibs/kio/kio/accessmanagerreply_p.cpp #1196357:1196358
@@ -3,6 +3,7 @@
  *
  * Copyright (C) 2008 Alex Merry <alex.merry @ kdemail.net>
  * Copyright (C) 2008 - 2009 Urs Wolfer <uwolfer @ kde.org>
+ * Copyright (C) 2009 - 2010 Dawit Alemayehu <adawit @ kde.org>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -26,97 +27,83 @@
 #include "job.h"
 
 #include <kdebug.h>
-#include <klocale.h>
 
 #include <QtNetwork/QSslConfiguration>
-#include <QtCore/QTimer>
-#include <QtCore/QPointer>
 
+
 namespace KDEPrivate {
 
-class AccessManagerReply::AccessManagerReplyPrivate
-{
-public:
-    AccessManagerReplyPrivate(AccessManagerReply *qq)
-    : q(qq),
-      m_metaDataRead(false) {}
+AccessManagerReply::AccessManagerReply(const QNetworkAccessManager::Operation &op,
+                                       const QNetworkRequest &request,
+                                       KIO::SimpleJob *kioJob,
+                                       QObject *parent)
+                   :QNetworkReply(parent),
+                    m_metaDataRead(false)
 
-    void _k_redirection(KIO::Job *job, const KUrl &url);
-    void _k_percent(KJob *job, unsigned long percent);
-
-    AccessManagerReply *q;
-
-    QPointer<KIO::SimpleJob> m_kioJob;
-    QByteArray m_data;
-    bool m_metaDataRead;
-};
-
-AccessManagerReply::AccessManagerReply(const QNetworkAccessManager::Operation &op, \
                const QNetworkRequest &request, KIO::SimpleJob *kioJob, QObject \
                *parent)
-                   :QNetworkReply(parent), d(new \
                AccessManagerReply::AccessManagerReplyPrivate(this))
-
 {
-    d->m_kioJob = kioJob;
+    m_kioJob = kioJob;
     setRequest(request);
     setOpenMode(QIODevice::ReadOnly);
     setUrl(request.url());
     setOperation(op);
 
-    if (!request.sslConfiguration().isNull()) {
+    if (!request.sslConfiguration().isNull())
         setSslConfiguration(request.sslConfiguration());
-    }
 
-    if (!kioJob) { // a blocked request
-        setError(QNetworkReply::OperationCanceledError, i18n("Blocked request."));
-        QTimer::singleShot(0, this, SIGNAL(finished()));
-    } else {
-        connect(kioJob, SIGNAL(redirection(KIO::Job*, const KUrl&)), \
                SLOT(_k_redirection(KIO::Job*, const KUrl&)));
-        connect(kioJob, SIGNAL(percent(KJob*, unsigned long)), \
                SLOT(_k_percent(KJob*, unsigned long)));
-        connect(kioJob, SIGNAL(result(KJob *)), SLOT(jobDone(KJob *)));
+    if (kioJob) {
+        connect(kioJob, SIGNAL(redirection(KIO::Job*, const KUrl&)), \
SLOT(slotRedirection(KIO::Job*, const KUrl&))); +        connect(kioJob, \
SIGNAL(percent(KJob*, unsigned long)), SLOT(slotPercent(KJob*, unsigned long))); +    \
connect(kioJob, SIGNAL(result(KJob *)), SLOT(slotResult(KJob *)));  
         if (!qobject_cast<KIO::StatJob*>(kioJob)) {
             connect(kioJob, SIGNAL(data(KIO::Job *, const QByteArray &)),
-                SLOT(appendData(KIO::Job *, const QByteArray &)));
+                SLOT(slotData(KIO::Job *, const QByteArray &)));
             connect(kioJob, SIGNAL(mimetype(KIO::Job *, const QString&)),
-                SLOT(setMimeType(KIO::Job *, const QString&)));
+                SLOT(slotMimeType(KIO::Job *, const QString&)));
         }
     }
 }
 
 AccessManagerReply::~AccessManagerReply()
 {
-    delete d;
 }
 
 void AccessManagerReply::abort()
 {
-    if (d->m_kioJob) {
-        d->m_kioJob->kill();
+    if (m_kioJob) {
+        m_kioJob->kill();
     }
 
-    d->m_data.clear();
-    d->m_metaDataRead = false;
+    m_data.clear();
+    m_metaDataRead = false;
 }
 
 qint64 AccessManagerReply::bytesAvailable() const
 {
-    return (QNetworkReply::bytesAvailable() + d->m_data.length());
+    return (QNetworkReply::bytesAvailable() + m_data.length());
 }
 
 qint64 AccessManagerReply::readData(char *data, qint64 maxSize)
 {
-    const qint64 length = qMin(qint64(d->m_data.length()), maxSize);
+    const qint64 length = qMin(qint64(m_data.length()), maxSize);
 
     if (length) {
-        qMemCopy(data, d->m_data.constData(), length);
-        d->m_data.remove(0, length); 
+        qMemCopy(data, m_data.constData(), length);
+        m_data.remove(0, length);
     }
 
     return length;
 }
 
+
+void AccessManagerReply::setStatus(const QString& message, \
QNetworkReply::NetworkError code) +{
+   setError(code, message);
+}
+
 void AccessManagerReply::readHttpResponseHeaders(KIO::Job *job)
 {
-    if (!d->m_metaDataRead) {
+    if (!m_metaDataRead) {
         // Set the HTTP status code...
         const QString responseCode = job->queryMetaData("responsecode");
         if (!responseCode.isEmpty())
@@ -158,24 +145,24 @@
         // Set the returned meta data as attribute...
         setAttribute(static_cast<QNetworkRequest::Attribute>(KIO::AccessManager::MetaData),
  job->metaData().toVariant());
-        d->m_metaDataRead = true;
+        m_metaDataRead = true;
     }
 }
 
-void AccessManagerReply::appendData(KIO::Job *kioJob, const QByteArray &data)
+void AccessManagerReply::slotData(KIO::Job *kioJob, const QByteArray &data)
 {
     readHttpResponseHeaders(kioJob);
-    d->m_data += data;
+    m_data += data;
     emit readyRead();
 }
 
-void AccessManagerReply::setMimeType(KIO::Job *kioJob, const QString &mimeType)
+void AccessManagerReply::slotMimeType(KIO::Job *kioJob, const QString &mimeType)
 {
     Q_UNUSED(kioJob);
     setHeader(QNetworkRequest::ContentTypeHeader, mimeType.toUtf8());
 }
 
-void AccessManagerReply::jobDone(KJob *kJob)
+void AccessManagerReply::slotResult(KJob *kJob)
 {
     int errcode = kJob->error();
     switch (errcode)
@@ -238,7 +225,7 @@
 
     QUrl redirectUrl = \
attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl();  if \
                (redirectUrl.isValid()) {
-        readHttpResponseHeaders(d->m_kioJob);
+        readHttpResponseHeaders(m_kioJob);
         //kDebug( 7044 ) << "HTTP Status code:" << \
attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt();  //kDebug( 7044 ) << \
"Redirecting to" << redirectUrl;  }
@@ -249,16 +236,16 @@
     emit finished();
 }
 
-void AccessManagerReply::AccessManagerReplyPrivate::_k_redirection(KIO::Job* job, \
const KUrl& url) +void AccessManagerReply::slotRedirection(KIO::Job* job, const KUrl& \
url)  {
     Q_UNUSED(job);
-    q->setAttribute(QNetworkRequest::RedirectionTargetAttribute, QUrl(url));
+    setAttribute(QNetworkRequest::RedirectionTargetAttribute, QUrl(url));
 }
 
-void AccessManagerReply::AccessManagerReplyPrivate::_k_percent(KJob *job, unsigned \
long percent) +void AccessManagerReply::slotPercent(KJob *job, unsigned long percent)
 {
     qulonglong bytes = job->totalAmount(KJob::Bytes);
-    emit q->downloadProgress(bytes * ((double)percent / 100), bytes);
+    emit downloadProgress(bytes * ((double)percent / 100), bytes);
 }
 }
 
--- trunk/KDE/kdelibs/kio/kio/accessmanagerreply_p.h #1196357:1196358
@@ -2,6 +2,7 @@
  * This file is part of the KDE project.
  *
  * Copyright (C) 2008 - 2009 Urs Wolfer <uwolfer @ kde.org>
+ * Copyright (C) 2009 - 2010 Dawit Alemayehu <adawit @ kde.org>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -23,6 +24,7 @@
 #ifndef KIO_ACCESSMANAGERREPLY_P_H
 #define KIO_ACCESSMANAGERREPLY_P_H
 
+#include <QtCore/QPointer>
 #include <QtNetwork/QNetworkReply>
 
 namespace KIO
@@ -46,26 +48,32 @@
 {
     Q_OBJECT
 public:
-    AccessManagerReply(const QNetworkAccessManager::Operation &op, const \
QNetworkRequest &request, KIO::SimpleJob *kioJob, QObject *parent); +    \
AccessManagerReply(const QNetworkAccessManager::Operation &op, +                      \
const QNetworkRequest &request, +                       KIO::SimpleJob *kioJob,
+                       QObject *parent);
+    
     virtual ~AccessManagerReply();
     virtual qint64 bytesAvailable() const;
     virtual void abort();
 
-public Q_SLOTS:
-    void appendData(KIO::Job *kioJob, const QByteArray &data);
-    void setMimeType(KIO::Job *kioJob, const QString &mimeType);
-    void jobDone(KJob *kJob);
+    void setStatus(const QString& message, QNetworkReply::NetworkError);
 
 protected:
     virtual qint64 readData(char *data, qint64 maxSize);
     void readHttpResponseHeaders(KIO::Job *);
 
+private Q_SLOTS:
+    void slotData(KIO::Job *kioJob, const QByteArray &data);
+    void slotMimeType(KIO::Job *kioJob, const QString &mimeType);
+    void slotResult(KJob *kJob);
+    void slotRedirection(KIO::Job *job, const KUrl &url);
+    void slotPercent(KJob *job, unsigned long percent);
+    
 private:
-    class AccessManagerReplyPrivate;
-    AccessManagerReplyPrivate* const d;
-
-    Q_PRIVATE_SLOT(d, void _k_redirection(KIO::Job *job, const KUrl &url))
-    Q_PRIVATE_SLOT(d, void _k_percent(KJob *job, unsigned long percent))
+    QByteArray m_data;
+    bool m_metaDataRead;
+    QPointer<KIO::SimpleJob> m_kioJob;
 };
 
 }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic