| 6f561820 | 2014-03-14 10:32:22 | Francois Andriot |
Fix stale tdeioslave spawned by kdirlister This resolves Bug 1902 |
||
|
M tdeio/tdeio/forwardingslavebase.cpp M tdeio/tdeio/forwardingslavebase.h M tdeio/tdeio/jobclasses.h M tdeio/tdeio/kdirlister.cpp M tdeio/tdeio/kdirlister.h |
||
diff --git a/tdeio/tdeio/forwardingslavebase.cpp b/tdeio/tdeio/forwardingslavebase.cpp
index a55f682..e86aaef 100644
--- a/tdeio/tdeio/forwardingslavebase.cpp
+++ b/tdeio/tdeio/forwardingslavebase.cpp
@@ -364,8 +364,8 @@
void ForwardingSlaveBase::connectLocalURLJob(TDEIO::LocalURLJob *job)
{
connectJob(job);
- connect( job, TQT_SIGNAL( localURL(TDEIO::Job *, const KURL&, bool) ),
- this, TQT_SLOT( slotLocalURL(TDEIO::Job *, const KURL&, bool) ) );
+ connect( job, TQT_SIGNAL( localURL(TDEIO::LocalURLJob *, const KURL&, bool) ),
+ this, TQT_SLOT( slotLocalURL(TDEIO::LocalURLJob *, const KURL&, bool) ) );
}
//////////////////////////////////////////////////////////////////////////////
@@ -464,7 +464,7 @@
canResume(offset);
}
-void ForwardingSlaveBase::slotLocalURL(TDEIO::Job *, const KURL& url, bool)
+void ForwardingSlaveBase::slotLocalURL(TDEIO::LocalURLJob *, const KURL& url, bool)
{
SlaveBase::localURL(url);
}
diff --git a/tdeio/tdeio/forwardingslavebase.h b/tdeio/tdeio/forwardingslavebase.h
index 4d84089..5905fcf 100644
--- a/tdeio/tdeio/forwardingslavebase.h
+++ b/tdeio/tdeio/forwardingslavebase.h
@@ -196,7 +196,7 @@
void slotCanResume (TDEIO::Job *job, TDEIO::filesize_t offset);
// TDEIO::LocalURLJob
- void slotLocalURL(TDEIO::Job *, const KURL&, bool);
+ void slotLocalURL(TDEIO::LocalURLJob *, const KURL&, bool);
};
}
diff --git a/tdeio/tdeio/jobclasses.h b/tdeio/tdeio/jobclasses.h
index 75eb44e..34efee5 100644
--- a/tdeio/tdeio/jobclasses.h
+++ b/tdeio/tdeio/jobclasses.h
@@ -1891,7 +1891,7 @@
* @param url the local url
* @param isLocal true if the returned URL is local, false if not
*/
- void localURL( TDEIO::Job *job, const KURL &url, bool isLocal );
+ void localURL( TDEIO::LocalURLJob *job, const KURL &url, bool isLocal );
protected slots:
void slotLocalURL( const KURL &url, bool isLocal );
diff --git a/tdeio/tdeio/kdirlister.cpp b/tdeio/tdeio/kdirlister.cpp
index bae304f..92022c0 100644
--- a/tdeio/tdeio/kdirlister.cpp
+++ b/tdeio/tdeio/kdirlister.cpp
@@ -1953,7 +1953,7 @@
d->openURL_url[localURLJob] = _url;
d->openURL_keep[localURLJob] = _keep;
d->openURL_reload[localURLJob] = _reload;
- connect(localURLJob, TQT_SIGNAL(localURL(TDEIO::Job*, const KURL&, bool)), this, TQT_SLOT(slotOpenURLGotLocalURL(TDEIO::Job*, const KURL&, bool)));
+ connect(localURLJob, TQT_SIGNAL(localURL(TDEIO::LocalURLJob*, const KURL&, bool)), this, TQT_SLOT(slotOpenURLGotLocalURL(TDEIO::LocalURLJob*, const KURL&, bool)));
connect(localURLJob, TQT_SIGNAL(destroyed()), this, TQT_SLOT(slotLocalURLKIODestroyed()));
}
return true;
@@ -1963,13 +1963,14 @@
}
}
-void KDirLister::slotOpenURLGotLocalURL(TDEIO::Job *job, const KURL& url, bool isLocal) {
+void KDirLister::slotOpenURLGotLocalURL(TDEIO::LocalURLJob *job, const KURL& url, bool isLocal) {
KURL realURL = d->openURL_url[job];
if (isLocal) {
realURL = url;
realURL.setInternalReferenceURL(d->openURL_url[job].url());
d->m_referenceURLMap[d->openURL_url[job].url()] = url.path();
}
+ job->slaveDone();
s_pCache->listDir( this, realURL, d->openURL_keep[job], d->openURL_reload[job] );
d->openURL_url.remove(job);
d->openURL_keep.remove(job);
diff --git a/tdeio/tdeio/kdirlister.h b/tdeio/tdeio/kdirlister.h
index 576ff8b..bc1acbb 100644
--- a/tdeio/tdeio/kdirlister.h
+++ b/tdeio/tdeio/kdirlister.h
@@ -29,7 +29,7 @@
#include <kurl.h>
-namespace TDEIO { class Job; class ListJob; }
+namespace TDEIO { class Job; class LocalURLJob; class ListJob; }
/**
* The dir lister deals with the kiojob used to list and update a directory
@@ -609,7 +609,7 @@
void slotTotalSize( TDEIO::Job *, TDEIO::filesize_t );
void slotProcessedSize( TDEIO::Job *, TDEIO::filesize_t );
void slotSpeed( TDEIO::Job *, unsigned long );
- void slotOpenURLGotLocalURL( TDEIO::Job *, const KURL&, bool );
+ void slotOpenURLGotLocalURL( TDEIO::LocalURLJob*, const KURL&, bool );
void slotLocalURLKIODestroyed( );
private:
|
||