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

List:       kde-commits
Subject:    playground/base/nepomuk-kde/kioslaves/tags
From:       Sebastian Trueg <sebastian () trueg ! de>
Date:       2008-01-22 14:39:42
Message-ID: 1201012782.235254.1695.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 764768 by trueg:

Code Cleanup

 M  +71 -69    kio_tags.cpp  
 M  +2 -0      kio_tags.h  


--- trunk/playground/base/nepomuk-kde/kioslaves/tags/kio_tags.cpp #764767:764768
@@ -35,33 +35,22 @@
 
 using namespace KIO;
 
-extern "C"
-{
-    KDE_EXPORT int kdemain( int argc, char **argv )
-    {
-        KAboutData about( "kio_tags", 0, ki18n("kio_tags"), 0);
-        KCmdLineArgs::init( &about );
 
-        KApplication app;
+namespace {
+    KIO::UDSEntry createUDSEntryForTag( const Nepomuk::Tag& tag ) {
+        // create a virtual folder stat thingi
+        KIO::UDSEntry uds;
+        uds.insert( KIO::UDSEntry::UDS_NAME, tag.genericLabel() );
 
-        kDebug(7102) << "Starting tags slave " << getpid();
+        // FIXME: add this once we have the data
+        //   uds.insert( KIO::UDS_CREATION_TIME, date );
 
-        if (argc != 4) {
-            kError() << "Usage: kio_tags protocol domain-socket1 domain-socket2";
-            exit(-1);
-        }
+        uds.insert( KIO::UDSEntry::UDS_ACCESS, 0700 );
+        uds.insert( KIO::UDSEntry::UDS_USER, KUser().loginName() );
+        uds.insert( KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR );
+        uds.insert( KIO::UDSEntry::UDS_MIME_TYPE, QString::fromLatin1( \
"inode/directory" ) );  
-        if ( Nepomuk::ResourceManager::instance()->init() ) {
-            kError() << "Unable to initialized KMetaData.";
-            exit( -1 );
-        }
-
-        Nepomuk::TagsProtocol slave(argv[2], argv[3]);
-        slave.dispatchLoop();
-
-        kDebug(7102) << "Tags slave Done";
-
-        return 0;
+        return uds;
     }
 }
 
@@ -252,26 +241,15 @@
         QString tag;
         if ( splitUrl( url, tag, path ) ) {
             if ( path.isEmpty() ) {
-                // create a virtual folder stat thingi
-                KIO::UDSEntry uds;
-                uds.insert( KIO::UDSEntry::UDS_NAME, tag );
-                uds.insert( KIO::UDSEntry::UDS_URL, Tag( tag \
                ).resourceUri().toString() );
-
-                // FIXME: add this once we have the data
-                //   uds.insert( KIO::UDS_CREATION_TIME, date );
-
-                uds.insert( KIO::UDSEntry::UDS_ACCESS, 0700 );
-                uds.insert( KIO::UDSEntry::UDS_USER, KUser().loginName() );
-                uds.insert( KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR );
-                uds.insert( KIO::UDSEntry::UDS_MIME_TYPE, QString::fromLatin1( \
                "inode/directory" ) );
-
-                statEntry( uds );
-                finished();
+                statEntry( createUDSEntryForTag( Tag( tag ) ) );
             }
             else {
-                ForwardingSlaveBase::mimetype( url );
+                KUrl newUrl;
+                rewriteUrl( url, newUrl );
+                statEntry( statFile( newUrl ) );
             }
         }
+        finished();
     }
 }
 
@@ -342,22 +320,7 @@
 
     for ( QList<Tag>::iterator it = tags.begin();
           it != tags.end(); ++it ) {
-        Tag& tag = *it;
-
-        // create a virtual folder stat thingi
-        KIO::UDSEntry uds;
-        uds.insert( KIO::UDSEntry::UDS_NAME, tag.genericLabel() );
-//        uds.insert( KIO::UDSEntry::UDS_URL, tag.resourceUri().toString() );
-
-        // FIXME: add this once we have the data
-        //   uds.insert( KIO::UDS_CREATION_TIME, date );
-
-        uds.insert( KIO::UDSEntry::UDS_ACCESS, 0700 );
-        uds.insert( KIO::UDSEntry::UDS_USER, KUser().loginName() );
-        uds.insert( KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR );
-        uds.insert( KIO::UDSEntry::UDS_MIME_TYPE, QString::fromLatin1( \
                "inode/directory" ) );
-
-        listEntry( uds, false );
+        listEntry( createUDSEntryForTag( *it ), false );
     }
 
     listEntry( KIO::UDSEntry(), true );
@@ -380,22 +343,32 @@
         const Resource& res = *it;
         // FIXME: use the File class
         if ( res.hasProperty( Soprano::Vocabulary::Xesam::url().toString() ) ) {
-            m_currentUrl = KUrl( res.property( \
                Soprano::Vocabulary::Xesam::url().toString() ).toString() );
-
-            KIO::StatJob* job = KIO::stat( m_currentUrl, false );
-            connect( job, SIGNAL( result(KJob *) ),
-                     this, SLOT( slotResult(KJob *) ) );
-            connect( job, SIGNAL( redirection(KIO::Job *, const KUrl &) ),
-                     this, SLOT( slotRedirection(KIO::Job *, const KUrl &) ) );
-
-            m_eventLoop.exec();
+            listEntry( statFile( KUrl( res.property( \
Soprano::Vocabulary::Xesam::url().toString() ).toString() ) ), false );  }
     }
 
+    listEntry( KIO::UDSEntry(), true );
     finished();
 }
 
 
+KIO::UDSEntry Nepomuk::TagsProtocol::statFile( const KUrl& url )
+{
+    m_currentUrl = url;
+    m_currentUDS.clear();
+
+    KIO::StatJob* job = KIO::stat( m_currentUrl, false );
+    connect( job, SIGNAL( result(KJob *) ),
+             this, SLOT( slotResult(KJob *) ) );
+    connect( job, SIGNAL( redirection(KIO::Job *, const KUrl &) ),
+             this, SLOT( slotRedirection(KIO::Job *, const KUrl &) ) );
+
+    m_eventLoop.exec();
+
+    return m_currentUDS;
+}
+
+
 // taken from ForwardingSlaveBase
 void Nepomuk::TagsProtocol::slotResult( KJob* job )
 {
@@ -408,14 +381,11 @@
         if ( stat_job != 0 ) {
             // FIXME: The name is not unique here! This is a problem especially for
             // rewriteUrl since then the URL is also not unique
-            KIO::UDSEntry uds = stat_job->statResult();
-            uds.insert( KIO::UDSEntry::UDS_LOCAL_PATH, m_currentUrl.path() );
-            listEntry( uds, false );
+            m_currentUDS = stat_job->statResult();
+            m_currentUDS.insert( KIO::UDSEntry::UDS_LOCAL_PATH, m_currentUrl.path() \
);  }
     }
 
-    listEntry( KIO::UDSEntry(), true );
-
     m_eventLoop.exit();
 }
 
@@ -433,4 +403,36 @@
     m_eventLoop.exit();
 }
 
+
+
+extern "C"
+{
+    KDE_EXPORT int kdemain( int argc, char **argv )
+    {
+        KAboutData about( "kio_tags", 0, ki18n("kio_tags"), 0);
+        KCmdLineArgs::init( &about );
+
+        KApplication app;
+
+        kDebug(7102) << "Starting tags slave " << getpid();
+
+        if (argc != 4) {
+            kError() << "Usage: kio_tags protocol domain-socket1 domain-socket2";
+            exit(-1);
+        }
+
+        if ( Nepomuk::ResourceManager::instance()->init() ) {
+            kError() << "Unable to initialized KMetaData.";
+            exit( -1 );
+        }
+
+        Nepomuk::TagsProtocol slave(argv[2], argv[3]);
+        slave.dispatchLoop();
+
+        kDebug(7102) << "Tags slave Done";
+
+        return 0;
+    }
+}
+
 #include "kio_tags.moc"
--- trunk/playground/base/nepomuk-kde/kioslaves/tags/kio_tags.h #764767:764768
@@ -92,9 +92,11 @@
         bool splitUrl( const KUrl& url, QString& tag, QString& path, bool \
signalError = true );  void listTags();
         void listTag( const QString& tag );
+        KIO::UDSEntry statFile( const KUrl& url );
 
         QString m_currentTag;
         KUrl m_currentUrl;
+        KIO::UDSEntry m_currentUDS;
 
         QEventLoop m_eventLoop;
     };


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

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