[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground/network/networkkio/ioslave
From: Friedrich W. H. Kossebau <kossebau () kde ! org>
Date: 2009-02-24 23:59:27
Message-ID: 1235519967.651732.26522.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 931219 by kossebau:
changed: give mimetype() a proper implementation, turn nameids into static const \
symbols
M +63 -6 networkslave.cpp
--- trunk/playground/network/networkkio/ioslave/networkslave.cpp #931218:931219
@@ -45,7 +45,10 @@
"inode/vnd.kde.device.workstation"
};
+static const char NetworkMimetype[] = "inode/vnd.kde.network";
+static const char NetworkIconName[] = "network-workgroup";
+
NetworkSlave::NetworkSlave( const QByteArray& name, const QByteArray& poolSocket, \
const QByteArray& programSocket ) : SlaveBase( name, poolSocket, programSocket )
, mNetworkThread( new NetworkThread() )
@@ -104,10 +107,66 @@
{
const NetworkUri networkUri( url );
- mimeType( "inode/directory" );
- finished();
+ mNetworkThread->pause();
+
+ Network* network = mNetworkThread->network();
+
+ bool successfulMimetyping = false;
+ NetworkUri::Type type = networkUri.type();
+kDebug()<<"type="<<networkUri.type()<<"host="<<networkUri.hostName()<<"service="<<networkUri.serviceName()<<"stype="<<networkUri.serviceType();
+
+ if( type == NetworkUri::Domain )
+ {
+ mimeType( NetworkMimetype );
+ finished();
+ successfulMimetyping = true;
+ }
+ else
+ {
+ const QList<NetDevice> deviceList = network->deviceList();
+
+ const QString hostName = networkUri.hostName();
+ foreach( const NetDevice& device, deviceList )
+ {
+ if( device.hostName() == hostName )
+ {
+ if( type == NetworkUri::Device )
+ {
+ mimeType( DeviceMimetype[device.type()] );
+ finished();
+ successfulMimetyping = true;
+ }
+ else if( type == NetworkUri::Service )
+
+ {
+ const QList<NetService> serviceList = device.serviceList();
+
+ const QString serviceName = networkUri.serviceName();
+ const QString serviceType = networkUri.serviceType();
+ foreach( const NetService& service, serviceList )
+ {
+ if( service.name() == serviceName && service.type() == \
serviceType ) + {
+ const QString url = service.url();
+ redirection( url );
+ //mimeType( service.mimetype() );
+ finished();
+ successfulMimetyping = true;
+ break;
+ }
+ }
+ }
+ break;
+ }
+ }
+ }
+ mNetworkThread->unpause();
+
+ if( !successfulMimetyping )
+ error( KIO::ERR_MALFORMED_URL, url.prettyUrl() );
}
+
void NetworkSlave::stat( const KUrl& url )
{
const NetworkUri networkUri( url );
@@ -257,11 +316,9 @@
void NetworkSlave::feedEntryAsNetwork( KIO::UDSEntry* entry )
{
- entry->insert( KIO::UDSEntry::UDS_NAME, "" );
- entry->insert( KIO::UDSEntry::UDS_DISPLAY_NAME, "Network" );
entry->insert( KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR );
- entry->insert( KIO::UDSEntry::UDS_ICON_NAME, "network-workgroup" );
- entry->insert( KIO::UDSEntry::UDS_MIME_TYPE, "inode/vnd.kde.network" );
+ entry->insert( KIO::UDSEntry::UDS_ICON_NAME, NetworkIconName );
+ entry->insert( KIO::UDSEntry::UDS_MIME_TYPE, NetworkMimetype );
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic