SVN commit 1205728 by weilbach:
Adjusted to new stream dbus interface in KTorrent. Fixes.
M +1 -1 CMakeLists.txt
M +4 -8 interfaces/org.ktorrent.torrent.xml
M +2 -2 kio_magnet.cpp
M +52 -25 ktorrentdbusinterface.cpp
M +3 -0 ktorrentdbusinterface.h
M +1 -1 ktorrenttorrentinterface.cpp
M +6 -13 ktorrenttorrentinterface.h
--- trunk/playground/ioslaves/kio_magnet/CMakeLists.txt #1205727:1205728
@@ -27,7 +27,7 @@
set(kio_magnet_SRCS kio_magnet.cpp ktorrentdbusinterface.cpp dbusthread.cpp
ktorrentcoreinterface.cpp ktorrenttorrentinterface.cpp
- ktorrentgroupinterface.cpp )
+ ktorrenttorrentfilestreaminterface.cpp ktorrentgroupinterface.cpp )
kde4_add_kcfg_files(kio_magnet_SRCS magnetsettings.kcfgc)
--- trunk/playground/ioslaves/kio_magnet/interfaces/org.ktorrent.torrent.xml #1205727:1205728
@@ -158,14 +158,6 @@
-
-
-
-
-
-
-
-
@@ -187,5 +179,9 @@
+
+
+
+
--- trunk/playground/ioslaves/kio_magnet/kio_magnet.cpp #1205727:1205728
@@ -200,7 +200,7 @@
while ( !m_added ) {
if (m_size!=-1) {
totalSize( m_size );
- m_size = -1;
+// m_size = -1;
}
usleep (added_sleep);
}
@@ -245,7 +245,7 @@
return;
}
while (true) {
- if (m_downloaded || m_ktorrentDBusInterface->seek(m_position)) {
+ if (m_downloaded || m_ktorrentDBusInterface->seek(m_position+size)) {
file.seek(m_position);
QByteArray d = file.read(size);
data(d);
--- trunk/playground/ioslaves/kio_magnet/ktorrentdbusinterface.cpp #1205727:1205728
@@ -21,6 +21,9 @@
#include "kio_magnet.h"
#include "dbusthread.h"
#include "ktorrentgroupinterface.h"
+#include "ktorrenttorrentinterface.h"
+#include "ktorrentcoreinterface.h"
+#include "ktorrenttorrentfilestreaminterface.h"
#include "magnetsettings.h"
#include
@@ -44,6 +47,7 @@
KTorrentDBusInterface::KTorrentDBusInterface(MagnetProtocol* slave) :
m_coreInt( 0 )
, m_torrentInt( 0 )
+ , m_streamInt( 0 )
, m_slave( slave )
, m_file( -1 )
, m_fileSize( 0 )
@@ -66,9 +70,9 @@
MagnetSettings::setRunningTorrents(rt);
}
MagnetSettings::self()->writeConfig();
- m_torrentInt->createTorrentFileStream(m_file,false);
delete m_process;
delete m_torrentInt;
+ delete m_streamInt;
// TODO check memory managment
}
@@ -165,9 +169,30 @@
bool KTorrentDBusInterface::seek(qint64 pos)
{
- return m_torrentInt->seekStream(pos);
+ if( !m_streamInt )
+ return false;
+ else
+ return m_streamInt->seek( pos );
}
+bool KTorrentDBusInterface::createFileStream( int file )
+{
+ kDebug();
+ if ( !m_torrentInt ) {
+ kDebug() << "Torrent interface not initialized. This should not happen.";
+ return false;
+ }
+
+ if ( m_torrentInt->createStream( file ) ) {
+ m_streamInt = new org::ktorrent::torrentfilestream( "org.ktorrent.ktorrent",
+ "/torrent/"+m_tor+"/stream",
+ QDBusConnection::sessionBus() );
+ return true;
+ } else {
+ return false;
+ }
+}
+
void KTorrentDBusInterface::load(const KUrl& u)
{
kDebug() << u.url() << " Thread: " << thread();
@@ -200,33 +225,33 @@
m_slave->setPath(m_torrentInt->pathOnDisk());
m_slave->setSize(m_torrentInt->totalSize());
m_coreInt->start(m_tor);
- m_torrentInt->createTorrentFileStream(0,true);
+ createFileStream(0);
} else {
m_torrentInt->setDoNotDownload(m_file, false);
m_slave->setPath(m_torrentInt->filePathOnDisk(m_file));
m_slave->setSize(m_torrentInt->fileSize(m_file));
m_coreInt->start(m_tor);
- m_torrentInt->createTorrentFileStream(m_file,true);
+ createFileStream(m_file);
}
m_slave->added();
} else {
- m_torrentUrl = m_url.queryItem("to");
- KUrl source( m_torrentUrl );
- if (!MagnetSettings::trustedHosts().contains(source.host())) {
- if ( m_slave->messageBox(KIO::SlaveBase::WarningYesNo,
- i18n("The host \"%1\" is not known yet. Do you want to trust its shared sources?")
- .arg(source.host()),
- i18n("Host not known")) != KMessageBox::Yes ) {
- kDebug()<<"host rejected.";
- m_slave->error(KIO::ERR_ABORTED,i18n("Host rejected."));
- m_mutex.unlock();
- return;
- } else {
- QStringList hosts = MagnetSettings::trustedHosts();
- hosts << source.host();
- MagnetSettings::setTrustedHosts(hosts);
- }
- }
+// m_torrentUrl = m_url.queryItem("to");
+// KUrl source( m_torrentUrl );
+// if (!MagnetSettings::trustedHosts().contains(source.host())) {
+// if ( m_slave->messageBox(KIO::SlaveBase::WarningYesNo,
+// i18n("The host \"%1\" is not known yet. Do you want to trust its shared sources?")
+// .arg(source.host()),
+// i18n("Host not known")) != KMessageBox::Yes ) {
+// kDebug()<<"host rejected.";
+// m_slave->error(KIO::ERR_ABORTED,i18n("Host rejected."));
+// m_mutex.unlock();
+// return;
+// } else {
+// QStringList hosts = MagnetSettings::trustedHosts();
+// hosts << source.host();
+// MagnetSettings::setTrustedHosts(hosts);
+// }
+// }
m_coreInt->loadSilently(m_url.url(),"MagnetShare");
}
@@ -254,7 +279,7 @@
void KTorrentDBusInterface::cleanup()
{
kDebug();
- if (!m_torrentInt)
+/* if (!m_torrentInt)
return;
qulonglong totalSize=0;
@@ -270,6 +295,7 @@
mt.removeAll(torrent);
MagnetSettings::setManagedTorrents( mt );
delete torrentInt;
+ torrentInt = 0;
m_coreInt->remove(torrent,true);
kDebug() << "removed " << torrent << " torrent.";
continue;
@@ -302,7 +328,7 @@
}
}
- MagnetSettings::self()->writeConfig();
+ MagnetSettings::self()->writeConfig();*/
}
void KTorrentDBusInterface::slotFinished(const QString& tor)
@@ -312,6 +338,7 @@
void KTorrentDBusInterface::slotTorrentAdded(const QString& tor)
{
+ m_slave->messageBox(KIO::SlaveBase::QuestionYesNo, "TEST", "TEST" );
kDebug()<< tor;
if ( tor != m_tor )
return;
@@ -320,8 +347,8 @@
if ( m_slave->messageBox(KIO::SlaveBase::QuestionYesNo
, i18n( "Do you want to download and share the Torrent: \"%1\"?" ).arg( m_torrentInt->name() )
, i18n( "Magnet-Link confirmation" )) != KMessageBox::Yes ) {
+ m_coreInt->remove(tor,true);
m_slave->error(KIO::ERR_UNKNOWN, i18n("Download of torrent %1 rejected by user.").arg(tor));
- m_coreInt->remove(tor,true);
return;
}
m_coreInt->start(tor);
@@ -350,7 +377,7 @@
}
// TODO stream all torrents for now
- m_torrentInt->createTorrentFileStream(m_file,true);
+ createFileStream(m_file);
m_coreInt->start(m_tor);
--- trunk/playground/ioslaves/kio_magnet/ktorrentdbusinterface.h #1205727:1205728
@@ -22,6 +22,7 @@
#include "ktorrentcoreinterface.h"
#include "ktorrenttorrentinterface.h"
+#include "ktorrenttorrentfilestreaminterface.h"
#include
#include
@@ -55,8 +56,10 @@
void initDBus();
void setupDBus();
void findFile();
+ bool createFileStream( int file );
org::ktorrent::core* m_coreInt;
org::ktorrent::torrent* m_torrentInt;
+ org::ktorrent::torrentfilestream* m_streamInt;
KProcess* m_process;
QDBusConnection* m_bus;
KUrl m_url;
--- trunk/playground/ioslaves/kio_magnet/ktorrenttorrentinterface.cpp #1205727:1205728
@@ -1,6 +1,6 @@
/*
* This file was generated by qdbusxml2cpp version 0.7
- * Command line was: qdbusxml2cpp interfaces/org.ktorrent.torrent.xml -c KTorrentTorrentInterface -p ktorrenttorrentinterface
+ * Command line was: qdbusxml2cpp -c KTorrentTorrentInterface org.ktorrent.torrent.xml -p ktorrenttorrentinterface
*
* qdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
*
--- trunk/playground/ioslaves/kio_magnet/ktorrenttorrentinterface.h #1205727:1205728
@@ -1,6 +1,6 @@
/*
* This file was generated by qdbusxml2cpp version 0.7
- * Command line was: qdbusxml2cpp interfaces/org.ktorrent.torrent.xml -c KTorrentTorrentInterface -p ktorrenttorrentinterface
+ * Command line was: qdbusxml2cpp -c KTorrentTorrentInterface org.ktorrent.torrent.xml -p ktorrenttorrentinterface
*
* qdbusxml2cpp is Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
*
@@ -8,8 +8,8 @@
* Do not edit! All changes made to it will be lost.
*/
-#ifndef KTORRENTTORRENTINTERFACE_H_1289391006
-#define KTORRENTTORRENTINTERFACE_H_1289391006
+#ifndef KTORRENTTORRENTINTERFACE_H_1292059091
+#define KTORRENTTORRENTINTERFACE_H_1292059091
#include
#include
@@ -112,11 +112,11 @@
return asyncCallWithArgumentList(QLatin1String("chunks"), argumentList);
}
- inline QDBusPendingReply<> createTorrentFileStream(uint file_index, bool streaming_mode)
+ inline QDBusPendingReply createStream(uint file_index)
{
QList argumentList;
- argumentList << qVariantFromValue(file_index) << qVariantFromValue(streaming_mode);
- return asyncCallWithArgumentList(QLatin1String("createTorrentFileStream"), argumentList);
+ argumentList << qVariantFromValue(file_index);
+ return asyncCallWithArgumentList(QLatin1String("createStream"), argumentList);
}
inline QDBusPendingReply currentTracker()
@@ -303,13 +303,6 @@
return asyncCallWithArgumentList(QLatin1String("seedersTotal"), argumentList);
}
- inline QDBusPendingReply seekStream(qlonglong pos)
- {
- QList argumentList;
- argumentList << qVariantFromValue(pos);
- return asyncCallWithArgumentList(QLatin1String("seekStream"), argumentList);
- }
-
inline QDBusPendingReply<> setAllowedToStart(bool on)
{
QList argumentList;