[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: kdebase/kioslave/media
From: Kévin Ottens <ervin () ipsquad ! net>
Date: 2004-10-18 16:41:59
Message-ID: 20041018164159.51A6216C37 () office ! kde ! org
[Download RAW message or body]
CVS commit by ervin:
Add the support for launching .desktop files to ioslaves using
ForwardingSlaveBase. If the .desktop file is accessible through
file:/ we give it the corresponding UDS_URL.
M +43 -8 forwardingslavebase.cpp 1.3
M +1 -0 forwardingslavebase.h 1.3
--- kdebase/kioslave/media/forwardingslavebase.cpp #1.2:1.3
@@ -21,4 +21,5 @@
#include <kio/job.h>
#include <kmimetype.h>
+#include <kprotocolinfo.h>
#include <qapplication.h>
@@ -55,4 +56,5 @@ bool ForwardingSlaveBase::internalRewrit
m_processedURL = newURL;
+ m_requestedURL = url;
return result;
}
@@ -60,8 +62,11 @@ bool ForwardingSlaveBase::internalRewrit
void ForwardingSlaveBase::prepareUDSEntry(KIO::UDSEntry &entry, bool listing)
{
+ kdDebug() << "ForwardingSlaveBase::prepareUDSEntry: listing=="
+ << listing << endl;
+
bool mimetype_found = false;
bool name_found = false;
bool url_found = false;
- QString name;
+ QString name, mimetype;
KURL url;
@@ -78,4 +83,5 @@ void ForwardingSlaveBase::prepareUDSEntr
name_found = true;
name = (*it).m_str;
+ kdDebug() << "Name = " << name << endl;
break;
case KIO::UDS_URL:
@@ -87,7 +93,11 @@ void ForwardingSlaveBase::prepareUDSEntr
}
(*it).m_str = new_url.url();
+ kdDebug() << "URL = " << url << endl;
+ kdDebug() << "New URL = " << (*it).m_str << endl;
break;
case KIO::UDS_MIME_TYPE:
mimetype_found = true;
+ mimetype = (*it).m_str;
+ kdDebug() << "Mimetype = " << (*it).m_str << endl;
break;
}
@@ -97,19 +107,44 @@ void ForwardingSlaveBase::prepareUDSEntr
{
KURL new_url = m_processedURL;
- if (name_found && listing)
+ if (url_found && listing)
{
- new_url.addPath(name);
+ new_url.addPath( url.fileName() );
}
- else if (url_found && listing)
+ else if (name_found && listing)
{
- new_url.addPath( url.fileName() );
+ new_url.addPath( name );
}
KMimeType::Ptr mime = KMimeType::findByURL(new_url);
+ mimetype = mime->name();
+
KIO::UDSAtom atom;
atom.m_uds = KIO::UDS_MIME_TYPE;
atom.m_long = 0;
- atom.m_str = mime->name();
+ atom.m_str = mimetype;
entry.append(atom);
+
+ kdDebug() << "New Mimetype = " << mime->name() << endl;
+ }
+
+ if ( mimetype=="application/x-desktop" && name_found
+ && m_processedURL.isLocalFile() )
+ {
+ QString prot_class = KProtocolInfo::protocolClass( mProtocol );
+
+ if ( prot_class==":local" )
+ {
+ KURL new_url = m_processedURL;
+ if (listing)
+ {
+ new_url.addPath( name );
+ }
+
+ KIO::UDSAtom atom;
+ atom.m_uds = KIO::UDS_URL;
+ atom.m_long = 0;
+ atom.m_str = new_url.url();
+ entry.append(atom);
+ }
}
}
--- kdebase/kioslave/media/forwardingslavebase.h #1.2:1.3
@@ -76,4 +76,5 @@ protected:
private:
KURL m_processedURL;
+ KURL m_requestedURL;
bool internalRewriteURL(const KURL &url, KURL &newURL);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic