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

List:       kde-commits
Subject:    branches/KDE/4.3/kdelibs/kio/kio
From:       Dawit Alemayehu <adawit () kde ! org>
Date:       2009-09-24 23:08:47
Message-ID: 1253833727.535602.27858.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1027857 by adawit:

- Added attribute enumerations to make it easier to identify KDE/KIO specific ones.
- Propagate error codes that cannot mapped into QNetworkReply::NetworkError through 
  QNetworkRequest's attribute system.


 M  +2 -2      accessmanager.cpp  
 M  +10 -0     accessmanager.h  
 M  +8 -4      accessmanagerreply_p.cpp  


--- branches/KDE/4.3/kdelibs/kio/kio/accessmanager.cpp #1027856:1027857
@@ -116,7 +116,7 @@
           kioJob->addMetaData("content-type", "Content-Type: \
application/x-www-form-urlencoded");  }
 
-    kDebug () << "Job '" << kioJob << "' started...";
+    //kDebug () << "Job '" << kioJob << "' started...";
     return reply;
 }
 
@@ -126,7 +126,7 @@
     KIO::MetaData metaData;
 
     // Add the user-specified meta data first...
-    QVariant userMetaData = request.attribute (QNetworkRequest::User);
+    QVariant userMetaData = request.attribute \
(static_cast<QNetworkRequest::Attribute>(MetaData));  if (userMetaData.isValid() && \
userMetaData.type() == QVariant::Map) {  metaData += userMetaData.toMap();
     }
--- branches/KDE/4.3/kdelibs/kio/kio/accessmanager.h #1027856:1027857
@@ -24,6 +24,7 @@
 #define KIO_ACCESSMANAGER_H
 
 #include <QtNetwork/QNetworkAccessManager>
+#include <QtNetwork/QNetworkRequest>
 
 #include <kio/global.h>
 
@@ -42,6 +43,15 @@
 {
     Q_OBJECT
 public:
+    /*!
+      Extensions to QNetworkRequest::Attribute enums.
+      @since 4.3.2
+    */
+    enum Attribute {
+        MetaData = QNetworkRequest::User, /** < Used to send KIO MetaData back and \
forth. type: QVariant::Map. */ +        KioError /**< Used to send KIO error codes \
that cannot be mapped into QNetworkReply::NetworkError. type: QVariant::Int */ +    \
}; +
     AccessManager(QObject *parent);
     virtual ~AccessManager();
     /** 
--- branches/KDE/4.3/kdelibs/kio/kio/accessmanagerreply_p.cpp #1027856:1027857
@@ -22,6 +22,7 @@
  */
 
 #include "accessmanagerreply_p.h"
+#include "accessmanager.h"
 
 #include <kdebug.h>
 #include <job.h>
@@ -158,7 +159,8 @@
 
 void AccessManagerReply::jobDone(KJob *kJob)
 {
-    switch (kJob->error())
+    const int errcode = kJob->error();
+    switch (errcode)
     {
         case 0:
             setError(QNetworkReply::NoError, kJob->errorText());
@@ -200,12 +202,12 @@
             break;
         case KIO::ERR_COULD_NOT_AUTHENTICATE:
             setError(QNetworkReply::AuthenticationRequiredError, kJob->errorText());
-            kDebug() << kJob->error();
+            kDebug() << errcode;
             break;
         case KIO::ERR_UNSUPPORTED_PROTOCOL:
         case KIO::ERR_NO_SOURCE_PROTOCOL:
             setError(QNetworkReply::ProtocolUnknownError, kJob->errorText());
-            kDebug() << kJob->error();
+            kDebug() << errcode;
             break;
         case KIO::ERR_UNSUPPORTED_ACTION:
             setError(QNetworkReply::ProtocolInvalidOperationError, \
kJob->errorText()); @@ -213,7 +215,8 @@
             break;
         default:
             setError(QNetworkReply::UnknownNetworkError, errorString());
-            kDebug() << kJob->error();
+            setAttribute(static_cast<QNetworkRequest::Attribute>(KIO::AccessManager::KioError), \
errcode); +            kDebug() << errcode;
     }
 
     emit finished();
@@ -228,6 +231,7 @@
     // temporary one assume code 302 which is most often used
     if (q->attribute(QNetworkRequest::HttpStatusCodeAttribute).isNull())
         q->setAttribute(QNetworkRequest::HttpStatusCodeAttribute, 302);
+
     q->setAttribute(QNetworkRequest::RedirectionTargetAttribute, QUrl(url));
     emit q->finished();
 }


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

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