[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: extragear/multimedia/amarok/src/portabledevices/kioslaves
From: Jeff Mitchell <kde-dev () emailgoeshere ! com>
Date: 2007-07-23 21:31:56
Message-ID: 1185226316.599053.22647.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 691538 by mitchell:
Stub rename function, including non-working attempt at setting friendly name (due to \
KIO stupidity)
M +17 -2 mtp_backend/pmpkioslave_mtpbackend.cpp
M +2 -0 mtp_backend/pmpkioslave_mtpbackend.h
M +2 -0 pmpbackend.h
M +0 -1 pmpdevice.cpp
M +1 -0 pmpdevice.h
M +51 -3 pmpkioslave.cpp
M +1 -0 pmpkioslave.h
--- trunk/extragear/multimedia/amarok/src/portabledevices/kioslaves/mtp_backend/pmpkioslave_mtpbackend.cpp \
#691537:691538 @@ -116,6 +116,14 @@
return friendlyName;
}
+void
+MTPBackend::setFriendlyName( const QString &name )
+{
+ kDebug() << "Setting MTPBackend friendly name" << endl;
+ if( LIBMTP_Set_Friendlyname( m_device, name.toUtf8() ) != 0 )
+ m_slave->warning( "Failed to set friendly name on the device!" );
+}
+
QString
MTPBackend::getModelName()
{
@@ -152,11 +160,19 @@
m_slave->listEntry( entry, false );
}
m_slave->listEntry( KIO::UDSEntry(), true );
- emit m_slave->finished();
}
}
void
+MTPBackend::rename( const KUrl &src, const KUrl &dest, bool overwrite )
+{
+ Q_UNUSED( src );
+ Q_UNUSED( dest );
+ Q_UNUSED( overwrite );
+ //make sure they're renaming playlists to playlists, tracks to tracks, etc...
+}
+
+void
MTPBackend::stat( const KUrl &url )
{
QString path = getFilePath( url );
@@ -166,7 +182,6 @@
entry[ KIO::UDS_FILE_TYPE ] = S_IFDIR;
entry[ KIO::UDS_ACCESS ] = S_IRUSR | S_IRGRP | S_IROTH;
m_slave->statEntry( entry );
- emit m_slave->finished();
}
#include "pmpkioslave_mtpbackend.moc"
--- trunk/extragear/multimedia/amarok/src/portabledevices/kioslaves/mtp_backend/pmpkioslave_mtpbackend.h \
#691537:691538 @@ -37,12 +37,14 @@
virtual ~MTPBackend();
void initialize();
QString getFriendlyName();
+ void setFriendlyName( const QString &name );
QString getModelName();
protected:
void get( const KUrl &url );
void listDir( const KUrl &url );
void stat( const KUrl &url );
+ void rename( const KUrl &src, const KUrl &dest, bool overwrite );
private:
LIBMTP_mtpdevice_t *m_deviceList;
--- trunk/extragear/multimedia/amarok/src/portabledevices/kioslaves/pmpbackend.h \
#691537:691538 @@ -39,10 +39,12 @@
virtual void setSolidDevice( const Solid::Device &device ) { m_solidDevice = \
device; } virtual QString getFriendlyName() const { return QString(); }
+ virtual void setFriendlyName( const QString &name ) = 0;
virtual QString getModelName() const { return QString(); }
virtual void get( const KUrl &url ) = 0;
virtual void listDir( const KUrl &url ) = 0;
virtual void stat( const KUrl &url ) = 0;
+ virtual void rename( const KUrl &src, const KUrl &dest, bool overwrite ) = \
0;
protected:
QString getFilePath( const KUrl &url ) const;
--- trunk/extragear/multimedia/amarok/src/portabledevices/kioslaves/pmpdevice.cpp \
#691537:691538 @@ -26,7 +26,6 @@
void
PMPDevice::initialize()
{
-
if( !m_device.isValid() )
{
m_slave->error( KIO::ERR_CANNOT_OPEN_FOR_READING,
--- trunk/extragear/multimedia/amarok/src/portabledevices/kioslaves/pmpdevice.h \
#691537:691538 @@ -25,6 +25,7 @@
class PMPDevice
{
public:
+ PMPDevice() { m_slave = 0; m_device = Solid::Device(); }
PMPDevice( PMPProtocol *slave, const Solid::Device &device ) { m_slave = \
slave; m_device = device; } ~PMPDevice() { delete m_backend; }
--- trunk/extragear/multimedia/amarok/src/portabledevices/kioslaves/pmpkioslave.cpp \
#691537:691538 @@ -88,7 +88,10 @@
PMPProtocol::get( const KUrl &url )
{
kDebug() << endl << endl << "Entering get with url = " << url << endl << endl;
- getBackendForUrl( url )->get( url );
+ if( getBackendForUrl( url ) )
+ getBackendForUrl( url )->get( url );
+
+ emit finished();
kDebug() << endl << endl << "Leaving get with url = " << url << endl << endl;
}
@@ -143,12 +146,51 @@
kDebug() << "Calling backend's listDir" << endl;
kDebug() << "udiFromUrl( url ) = " << udiFromUrl( url ) << endl;
kDebug() << "m_devices[udiFromUrl( url )] = " << m_devices[udiFromUrl( url \
)] << endl;
- getBackendForUrl( url )->listDir( url );
+ if( getBackendForUrl( url ) )
+ getBackendForUrl( url )->listDir( url );
}
+
+ emit finished();
kDebug() << endl << endl << "Leaving listDir with url = " << url << endl << \
endl; }
void
+PMPProtocol::rename( const KUrl &src, const KUrl &dest, bool overwrite )
+{
+ QString srcPath = src.path( KUrl::RemoveTrailingSlash );
+ QString destPath = dest.path( KUrl::RemoveTrailingSlash );
+ while( srcPath[0] == '/' )
+ srcPath.remove( 0, 1 );
+ while( destPath[0] == '/' )
+ destPath.remove( 0, 1 );
+ //Check to see if they're trying to set a friendly name
+ //i.e. only top-level paths
+ kDebug() << endl << "srcPath = " << srcPath << endl << "destPath = " << destPath \
<< endl; + if( srcPath.indexOf( '/' ) == -1 && destPath.indexOf( '/' ) == -1 )
+ {
+ QString srcName = udiFromUrl( src );
+ QString dstName = udiFromUrl( dest );
+ if( m_devices.contains( dstName ) )
+ warning( "Destination name cannot be the same as a Solid UDI!" );
+ else if ( getBackendForUrl( src ) )
+ getBackendForUrl( src )->setFriendlyName( destPath );
+ emit finished();
+ return;
+ }
+ if( udiFromUrl( src ) != udiFromUrl( dest ) )
+ {
+ //this shouldn't ever happen...
+ warning( "Could not rename file, files cannot be renamed across devices!" );
+ emit finished();
+ return;
+ }
+ if( getBackendForUrl( src ) )
+ getBackendForUrl( src )->rename( src, dest, overwrite );
+
+ emit finished();
+}
+
+void
PMPProtocol::stat( const KUrl &url )
{
kDebug() << endl << endl << "Entering stat with url = " << url << endl << endl;
@@ -160,9 +202,12 @@
entry[ KIO::UDS_ACCESS ] = S_IRUSR | S_IRGRP | S_IROTH;
statEntry( entry );
emit finished();
+ return;
}
- else
+ else if( getBackendForUrl( url ) )
getBackendForUrl( url )->stat( url );
+
+ emit finished();
kDebug() << endl << endl << "Leaving stat with url = " << url << endl << endl;
}
@@ -229,7 +274,10 @@
{
kDebug() << "udiFromUrl = " << udiFromUrl( url ) << endl;
if( !m_devices.contains( udiFromUrl( url ) ) )
+ {
error( KIO::ERR_CANNOT_OPEN_FOR_READING, "portable media player : Invalid \
URL (backend doesn't exist)" ); + return 0;
+ }
return m_devices[udiFromUrl( url )]->backend();
}
--- trunk/extragear/multimedia/amarok/src/portabledevices/kioslaves/pmpkioslave.h \
#691537:691538 @@ -49,6 +49,7 @@
void get( const KUrl &url );
void listDir( const KUrl &url );
+ void rename( const KUrl &src, const KUrl &dest, bool overwrite );
void stat( const KUrl &url );
private:
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic