|
|
|
@ -24,15 +24,15 @@ namespace Filelight
|
|
|
|
|
const KURL url;
|
|
|
|
|
/// the directory on which we are operating
|
|
|
|
|
Directory *directory;
|
|
|
|
|
/// so we can reference the tqparent store
|
|
|
|
|
Store *tqparent;
|
|
|
|
|
/// so we can reference the parent store
|
|
|
|
|
Store *parent;
|
|
|
|
|
/// directories in this directory that need to be scanned before we can propagate()
|
|
|
|
|
List stores;
|
|
|
|
|
|
|
|
|
|
Store()
|
|
|
|
|
: directory( 0 ), tqparent( 0 ) {}
|
|
|
|
|
: directory( 0 ), parent( 0 ) {}
|
|
|
|
|
Store( const KURL &u, const TQString &name, Store *s )
|
|
|
|
|
: url( u ), directory( new Directory( name.local8Bit() + '/' ) ), tqparent( s ) {}
|
|
|
|
|
: url( u ), directory( new Directory( name.local8Bit() + '/' ) ), parent( s ) {}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Store*
|
|
|
|
@ -42,13 +42,13 @@ namespace Filelight
|
|
|
|
|
|
|
|
|
|
debug() << "propagate: " << url << endl;
|
|
|
|
|
|
|
|
|
|
if( tqparent ) {
|
|
|
|
|
tqparent->directory->append( directory );
|
|
|
|
|
if( tqparent->stores.isEmpty() ) {
|
|
|
|
|
return tqparent->propagate();
|
|
|
|
|
if( parent ) {
|
|
|
|
|
parent->directory->append( directory );
|
|
|
|
|
if( parent->stores.isEmpty() ) {
|
|
|
|
|
return parent->propagate();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
return tqparent;
|
|
|
|
|
return parent;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//we reached the root, let's get our next directory scanned
|
|
|
|
@ -61,14 +61,14 @@ namespace Filelight
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
RemoteLister::RemoteLister( const KURL &url, TQWidget *tqparent )
|
|
|
|
|
RemoteLister::RemoteLister( const KURL &url, TQWidget *parent )
|
|
|
|
|
: KDirLister( true /*don't fetch mimetypes*/ )
|
|
|
|
|
, m_root( new Store( url, url.url(), 0 ) )
|
|
|
|
|
, m_store( m_root )
|
|
|
|
|
{
|
|
|
|
|
setAutoUpdate( false ); //don't use KDirWatchers
|
|
|
|
|
setShowingDotFiles( true ); //stupid KDirLister API function names
|
|
|
|
|
setMainWindow( tqparent );
|
|
|
|
|
setMainWindow( parent );
|
|
|
|
|
|
|
|
|
|
//use TQT_SIGNAL(result(KIO::Job*)) instead and then use Job::error()
|
|
|
|
|
connect( this, TQT_SIGNAL(completed()), TQT_SLOT(completed()) );
|
|
|
|
@ -84,7 +84,7 @@ namespace Filelight
|
|
|
|
|
|
|
|
|
|
TQCustomEvent *e = new TQCustomEvent( 1000 );
|
|
|
|
|
e->setData( tree );
|
|
|
|
|
TQApplication::postEvent( tqparent(), e );
|
|
|
|
|
TQApplication::postEvent( parent(), e );
|
|
|
|
|
|
|
|
|
|
delete m_root;
|
|
|
|
|
}
|
|
|
|
@ -126,7 +126,7 @@ namespace Filelight
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if( m_store->stores.isEmpty() )
|
|
|
|
|
//no directories to scan, so we need to append ourselves to the tqparent directory
|
|
|
|
|
//no directories to scan, so we need to append ourselves to the parent directory
|
|
|
|
|
//propagate() will return the next ancestor that has stores left to be scanned, or root if we are done
|
|
|
|
|
m_store = m_store->propagate();
|
|
|
|
|
|
|
|
|
|