[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