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

List:       kde-commits
Subject:    extragear/network/kmldonkey
From:       Gioacchino Mazzurco <gmazzurco89 () gmail ! com>
Date:       2009-06-08 19:23:24
Message-ID: 1244489004.356366.31829.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 979030 by gmazzurco:

a lot of fix and improvement thanks to Aleksey Markelov



 M  +6 -17     kmldonkey/kmldonkey.cpp  
 M  +2 -4      kmlplasma/kmlplasmaapplet.cpp  
 M  +3 -3      kmlplasma/kmlplasmaengine.cpp  
 M  +2 -2      kmlplasma/kmlplasmaengine.h  
 M  +40 -0     libkmldonkey/donkeyprotocol.cpp  
 M  +2 -0      libkmldonkey/donkeyprotocol.h  


--- trunk/extragear/network/kmldonkey/kmldonkey/kmldonkey.cpp #979029:979030
@@ -93,7 +93,6 @@
 #include <hostdialog.h>
 #include <donkeyhost.h>
 #include <emulecollection.h>
-#include <torrenthost.h>
 
 #include <kdeversion.h>
 #include <KShortcutsDialog>
@@ -687,15 +686,7 @@
     qDebug() << filePath;
     if (filePath.isEmpty()) return;
         
-    TorrentHost * torrentSender = new TorrentHost(filePath, \
                donkey->getLocalAddress(), \
                QHostAddress(donkey->getHost()->address()));
-    qDebug() << "submitting file: " << filePath
-        << "local address: " << donkey->getLocalAddress()
-        << "donkey host: " << donkey->getHost()->address();
-    QString url = QString("http://%1:%2/%3")
-        .arg(donkey->getLocalAddress().toString())
-        .arg(torrentSender->serverPort())
-        .arg(QFileInfo(filePath).fileName());
-    donkey->submitUrl(url);
+    donkey->submitUrl( KUrl::fromPath(filePath) );
 }
 
 
@@ -710,18 +701,16 @@
 
 void KMLDonkey::dragEnterEvent(QDragEnterEvent* event)
 {
-    event->accept(Q3UriDrag::canDecode(event));
+    event->setAccepted( KUrl::List::canDecode( event->mimeData() ) );
 }
 
 void KMLDonkey::dropEvent(QDropEvent* event)
 {
-    QStringList uri;
+    if( !KUrl::List::canDecode( event->mimeData() ) )
+        return;
 
-    if (Q3UriDrag::decodeToUnicodeUris(event, uri))
-    {
-        QStringList::Iterator it;
-        for (it = uri.begin(); it != uri.end(); ++it)
-            donkey->submitUrl(*it);
+    foreach ( const KUrl &url, KUrl::List::fromMimeData(event->mimeData()) ) {
+        donkey->submitUrl(url);
     }
 }
 
--- trunk/extragear/network/kmldonkey/kmlplasma/kmlplasmaapplet.cpp #979029:979030
@@ -222,14 +222,12 @@
     if( ! KUrl::List::canDecode(event->mimeData()) )
         return;
 
-    QStringList urls;
-    foreach(const KUrl &url, KUrl::List::fromMimeData(event->mimeData()))
-        urls << url.url();
+    const KUrl::List urls = KUrl::List::fromMimeData(event->mimeData());
 
 #ifdef QT_DEBUG
     bool ok = 
 #endif
-               QMetaObject::invokeMethod(m_engine,"submitUrls",Q_ARG(QStringList,urls));
 +               QMetaObject::invokeMethod(m_engine,"submitUrls",Q_ARG(KUrl::List,urls));
  
     Q_ASSERT(ok);
 
--- trunk/extragear/network/kmldonkey/kmlplasma/kmlplasmaengine.cpp #979029:979030
@@ -176,15 +176,15 @@
     HostDialog::showDialog(0, d->hostManager, d->donkey);
 }
 
-void KmlPlasmaEngine::submitUrl(const QString& url)
+void KmlPlasmaEngine::submitUrl(const KUrl &url)
 {
     kDebug() << "KmlPlasmaEngine::submitUrl url=" << url;
     d->donkey->submitUrl(url);
 }
 
-void KmlPlasmaEngine::submitUrls(const QStringList& urls)
+void KmlPlasmaEngine::submitUrls(const KUrl::List &urls)
 {
-    foreach(const QString &url, urls)
+    foreach(const KUrl &url, urls)
         submitUrl(url);
 }
 
--- trunk/extragear/network/kmldonkey/kmlplasma/kmlplasmaengine.h #979029:979030
@@ -50,8 +50,8 @@
         void configureConnections();
         void connectToHost(const QString& hostname = QString());
 
-        void submitUrl(const QString& url);
-        void submitUrls(const QStringList& urls);
+        void submitUrl(const KUrl& url);
+        void submitUrls(const KUrl::List& urls);
 
     protected Q_SLOTS:
         void connectToHost(HostInterface* host);
--- trunk/extragear/network/kmldonkey/libkmldonkey/donkeyprotocol.cpp #979029:979030
@@ -36,10 +36,13 @@
 #include "hostiface.h"
 #include "donkeyhost.h"
 #include "searchquery.h"
+#include "torrenthost.h"
 
 #include <qregexp.h>
 //Added by qt3to4:
 #include <Q3ValueList>
+#include <QFileInfo>
+#include <QHostAddress>
 #include <kdebug.h>
 
 DonkeyProtocol::DonkeyProtocol(bool poll, QObject *parent)
@@ -980,6 +983,43 @@
     }
 }
 
+void DonkeyProtocol::submitUrl(const KUrl &url)
+{
+    downloadstarted = true;//?
+    const QString scheme = url.scheme().toLower();
+    const bool isTorrent = url.url().endsWith(".torrent",Qt::CaseInsensitive);
+    if ( (scheme.isEmpty() || scheme == "file") && isTorrent ) {
+        //local torrent
+        const QString fileName = url.path();
+        const QHostAddress localAddress = sock.address();
+        const QHostAddress donkeyAddress = QHostAddress(getHost()->address());
+        //XXX: may be improved by using one instance of TorrentHost 
+        //and make distinction inside instead of using instance per file
+        TorrentHost * torrentSender = new TorrentHost(fileName, localAddress, \
donkeyAddress); +        kDebug() << "submitting file: " << fileName
+            << "local address: " << localAddress
+            << "donkey host: " << donkeyAddress;
+
+        KUrl httpUrl;
+        httpUrl.setScheme("http");
+        httpUrl.setHost(localAddress.toString());
+        httpUrl.setPort(torrentSender->serverPort());
+        httpUrl.setPath(QFileInfo(fileName).fileName());
+        //resubmit
+        submitUrl(httpUrl);
+    } else if ( (scheme == "http" || scheme == "ftp") && !isTorrent) {
+        //web file
+        sendConsoleMessage("http \"" + url.url() + "\"");
+    }
+    else {
+        //other
+        DonkeyMessage out(Url);
+        out.writeString(url.url());
+        sock.sendMessage(out);
+    }
+}
+
+
 void DonkeyProtocol::sendMessage(const DonkeyMessage& msg)
 {
     sock.sendMessage(msg);
--- trunk/extragear/network/kmldonkey/libkmldonkey/donkeyprotocol.h #979029:979030
@@ -510,6 +510,8 @@
      */
     void submitUrl(const QString& url);
 
+    void submitUrl(const KUrl &url);
+
     //! Send a DonkeyMessage to the core.
     /*!
      * Dispatch a DonkeyMessage to the core. This is a low level


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

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