Commit 1b834925 authored by Aleix Pol Gonzalez's avatar Aleix Pol Gonzalez 🐧
Browse files

Make most kde-runtime compile "en masse"

Using KDE4Support, that is, but still it will be useful to figure out what
goes in given the status.
parent 1d655975
......@@ -20,35 +20,35 @@ set_package_properties(LibSSH PROPERTIES DESCRIPTION "the SSH library with SFTP
add_subdirectory( about )
add_subdirectory( bookmarks )
# add_subdirectory( cgi )
# add_subdirectory( filter )
add_subdirectory( cgi )
add_subdirectory( filter )
add_subdirectory( info )
# add_subdirectory( archive )
# add_subdirectory( settings )
# add_subdirectory( applications )
add_subdirectory( archive )
add_subdirectory( settings )
add_subdirectory( applications )
add_subdirectory( trash )
# if(NOT WIN32)
# add_subdirectory( network )
# endif(NOT WIN32)
# add_subdirectory( remote )
# add_subdirectory( desktop )
# add_subdirectory( recentdocuments )
# add_subdirectory( fish )
if(NOT WIN32)
add_subdirectory( network )
endif()
add_subdirectory( remote )
add_subdirectory( desktop )
add_subdirectory( recentdocuments )
add_subdirectory( fish )
add_subdirectory( thumbnail )
# add_subdirectory( docfilter )
# if (LIBSSH_FOUND)
# add_subdirectory(sftp)
# endif (LIBSSH_FOUND)
#
add_subdirectory( docfilter )
if (LIBSSH_FOUND)
add_subdirectory(sftp)
endif (LIBSSH_FOUND)
if(NOT WIN32)
# add_subdirectory( floppy )
# add_subdirectory( finger )
add_subdirectory( floppy )
add_subdirectory( finger )
add_subdirectory( man )
# check_include_files(rpc/rpc.h HAVE_RPC_RPC_H)
# add_feature_info("NFS kioslave" HAVE_RPC_RPC_H "The RPC library is needed to build the NFS kioslave")
# if(HAVE_RPC_RPC_H)
# add_subdirectory( nfs )
# endif(HAVE_RPC_RPC_H)
check_include_files(rpc/rpc.h HAVE_RPC_RPC_H)
add_feature_info("NFS kioslave" HAVE_RPC_RPC_H "The RPC library is needed to build the NFS kioslave")
if(HAVE_RPC_RPC_H)
add_subdirectory( nfs )
endif()
endif(NOT WIN32)
if(SAMBA_FOUND)
......
########### kio_applications ###############
add_library(kio_applications MODULE kio_applications.cpp)
target_link_libraries(kio_applications KF5::KIOCore )
target_link_libraries(kio_applications KF5::KDE4Support KF5::KIOCore)
install(TARGETS kio_applications DESTINATION ${PLUGIN_INSTALL_DIR} )
########### install files ###############
install( FILES programs.protocol applications.protocol DESTINATION ${SERVICES_INSTALL_DIR} )
......@@ -26,6 +26,7 @@
#include <kservice.h>
#include <kservicegroup.h>
#include <kstandarddirs.h>
#include <KUrl>
class ApplicationsProtocol : public KIO::SlaveBase
{
......@@ -33,9 +34,9 @@ public:
enum RunMode { ProgramsMode, ApplicationsMode };
ApplicationsProtocol(const QByteArray &protocol, const QByteArray &pool, const QByteArray &app);
virtual ~ApplicationsProtocol();
virtual void get( const KUrl& url );
virtual void stat(const KUrl& url);
virtual void listDir(const KUrl& url);
virtual void get( const QUrl& url );
virtual void stat(const QUrl& url);
virtual void listDir(const QUrl& url);
private:
RunMode m_runMode;
......@@ -93,7 +94,7 @@ ApplicationsProtocol::~ApplicationsProtocol()
{
}
void ApplicationsProtocol::get( const KUrl & url )
void ApplicationsProtocol::get( const QUrl & url )
{
KService::Ptr service = KService::serviceByDesktopName(url.fileName());
if (service && service->isValid()) {
......@@ -101,16 +102,18 @@ void ApplicationsProtocol::get( const KUrl & url )
redirection(redirUrl);
finished();
} else {
error( KIO::ERR_IS_DIRECTORY, url.prettyUrl() );
error( KIO::ERR_IS_DIRECTORY, url.toDisplayString() );
}
}
void ApplicationsProtocol::stat(const KUrl& url)
void ApplicationsProtocol::stat(const QUrl& url)
{
KIO::UDSEntry entry;
QString servicePath( url.path( KUrl::AddTrailingSlash ) );
QString servicePath( url.path() );
if(!servicePath.endsWith('/'))
servicePath.append('/');
servicePath.remove(0, 1); // remove starting '/'
KServiceGroup::Ptr grp = KServiceGroup::group(servicePath);
......@@ -133,9 +136,11 @@ void ApplicationsProtocol::stat(const KUrl& url)
}
void ApplicationsProtocol::listDir(const KUrl& url)
void ApplicationsProtocol::listDir(const QUrl& url)
{
QString groupPath = url.path( KUrl::AddTrailingSlash );
QString groupPath = url.path();
if(!groupPath.endsWith('/'))
groupPath.append('/');
groupPath.remove(0, 1); // remove starting '/'
KServiceGroup::Ptr grp = KServiceGroup::group(groupPath);
......@@ -150,7 +155,7 @@ void ApplicationsProtocol::listDir(const KUrl& url)
foreach (const KSycocaEntry::Ptr &e, grp->entries(true, true)) {
if (e->isType(KST_KServiceGroup)) {
KServiceGroup::Ptr g(KServiceGroup::Ptr::staticCast(e));
KServiceGroup::Ptr g(e);
QString groupCaption = g->caption();
kDebug() << "ADDING SERVICE GROUP WITH PATH " << g->relPath();
......@@ -172,7 +177,7 @@ void ApplicationsProtocol::listDir(const KUrl& url)
createDirEntry(entry, groupCaption, dirUrl.url(), "inode/directory", g->icon());
} else {
KService::Ptr service(KService::Ptr::staticCast(e));
KService::Ptr service(e);
kDebug() << "the entry name is" << service->desktopEntryName()
<< "with path" << service->entryPath();
......
add_subdirectory(tests)
########### kio_archive ###############
set(kio_archive_SRCS kio_archive.cpp )
add_library(kio_archive MODULE ${kio_archive_SRCS})
target_link_libraries(kio_archive KF5::KIOCore )
add_library(kio_archive MODULE kio_archive.cpp)
target_link_libraries(kio_archive KF5::KIOCore KF5::Archive KF5::KDE4Support)
install(TARGETS kio_archive DESTINATION ${PLUGIN_INSTALL_DIR} )
install( FILES tar.protocol ar.protocol zip.protocol DESTINATION ${SERVICES_INSTALL_DIR} )
......
......@@ -74,7 +74,7 @@ ArchiveProtocol::~ArchiveProtocol()
delete m_archiveFile;
}
bool ArchiveProtocol::checkNewFile( const KUrl & url, QString & path, KIO::Error& errorNum )
bool ArchiveProtocol::checkNewFile( const QUrl & url, QString & path, KIO::Error& errorNum )
{
#ifndef Q_WS_WIN
QString fullPath = url.path();
......@@ -172,17 +172,17 @@ bool ArchiveProtocol::checkNewFile( const KUrl & url, QString & path, KIO::Error
}
// Open new file
if ( url.protocol() == "tar" ) {
if ( url.scheme() == "tar" ) {
kDebug(7109) << "Opening KTar on" << archiveFile;
m_archiveFile = new KTar( archiveFile );
} else if ( url.protocol() == "ar" ) {
} else if ( url.scheme() == "ar" ) {
kDebug(7109) << "Opening KAr on " << archiveFile;
m_archiveFile = new KAr( archiveFile );
} else if ( url.protocol() == "zip" ) {
} else if ( url.scheme() == "zip" ) {
kDebug(7109) << "Opening KZip on " << archiveFile;
m_archiveFile = new KZip( archiveFile );
} else {
kWarning(7109) << "Protocol" << url.protocol() << "not supported by this IOSlave" ;
kWarning(7109) << "Protocol" << url.scheme() << "not supported by this IOSlave" ;
errorNum = KIO::ERR_UNSUPPORTED_PROTOCOL;
return false;
}
......@@ -218,14 +218,14 @@ void ArchiveProtocol::createUDSEntry( const KArchiveEntry * archiveEntry, UDSEnt
entry.insert( KIO::UDSEntry::UDS_NAME, archiveEntry->name() );
entry.insert( KIO::UDSEntry::UDS_FILE_TYPE, archiveEntry->permissions() & S_IFMT ); // keep file type only
entry.insert( KIO::UDSEntry::UDS_SIZE, archiveEntry->isFile() ? ((KArchiveFile *)archiveEntry)->size() : 0L );
entry.insert( KIO::UDSEntry::UDS_MODIFICATION_TIME, archiveEntry->date());
entry.insert( KIO::UDSEntry::UDS_MODIFICATION_TIME, archiveEntry->date().toTime_t());
entry.insert( KIO::UDSEntry::UDS_ACCESS, archiveEntry->permissions() & 07777 ); // keep permissions only
entry.insert( KIO::UDSEntry::UDS_USER, archiveEntry->user());
entry.insert( KIO::UDSEntry::UDS_GROUP, archiveEntry->group());
entry.insert( KIO::UDSEntry::UDS_LINK_DEST, archiveEntry->symLinkTarget());
}
void ArchiveProtocol::listDir( const KUrl & url )
void ArchiveProtocol::listDir( const QUrl & url )
{
kDebug( 7109 ) << "ArchiveProtocol::listDir" << url.url();
......@@ -239,13 +239,13 @@ void ArchiveProtocol::listDir( const KUrl & url )
// Therefore give a more specific error message
error( KIO::ERR_SLAVE_DEFINED,
i18n( "Could not open the file, probably due to an unsupported file format.\n%1",
url.prettyUrl() ) );
url.toDisplayString() ) );
return;
}
else if ( errorNum != ERR_IS_DIRECTORY )
{
// We have any other error
error( errorNum, url.prettyUrl() );
error( errorNum, url.toDisplayString() );
return;
}
// It's a real dir -> redirect
......@@ -262,7 +262,7 @@ void ArchiveProtocol::listDir( const KUrl & url )
if ( path.isEmpty() )
{
KUrl redir( url.protocol() + QString::fromLatin1( ":/") );
KUrl redir( url.scheme() + QString::fromLatin1( ":/") );
kDebug( 7109 ) << "url.path()=" << url.path();
redir.setPath( url.path() + QString::fromLatin1("/") );
kDebug( 7109 ) << "ArchiveProtocol::listDir: redirection" << redir.url();
......@@ -280,12 +280,12 @@ void ArchiveProtocol::listDir( const KUrl & url )
const KArchiveEntry* e = root->entry( path );
if ( !e )
{
error( KIO::ERR_DOES_NOT_EXIST, url.prettyUrl() );
error( KIO::ERR_DOES_NOT_EXIST, url.toDisplayString() );
return;
}
if ( ! e->isDirectory() )
{
error( KIO::ERR_IS_FILE, url.prettyUrl() );
error( KIO::ERR_IS_FILE, url.toDisplayString() );
return;
}
dir = (KArchiveDirectory*)e;
......@@ -320,7 +320,7 @@ void ArchiveProtocol::listDir( const KUrl & url )
kDebug( 7109 ) << "ArchiveProtocol::listDir done";
}
void ArchiveProtocol::stat( const KUrl & url )
void ArchiveProtocol::stat( const QUrl & url )
{
QString path;
UDSEntry entry;
......@@ -335,13 +335,13 @@ void ArchiveProtocol::stat( const KUrl & url )
// Therefore give a more specific error message
error( KIO::ERR_SLAVE_DEFINED,
i18n( "Could not open the file, probably due to an unsupported file format.\n%1",
url.prettyUrl() ) );
url.toDisplayString() ) );
return;
}
else if ( errorNum != ERR_IS_DIRECTORY )
{
// We have any other error
error( errorNum, url.prettyUrl() );
error( errorNum, url.toDisplayString() );
return;
}
// Real directory. Return just enough information for KRun to work
......@@ -358,7 +358,7 @@ void ArchiveProtocol::stat( const KUrl & url )
if ( KDE_stat( QFile::encodeName( fullPath ), &buff ) == -1 )
{
// Should not happen, as the file was already stated by checkNewFile
error( KIO::ERR_COULD_NOT_STAT, url.prettyUrl() );
error( KIO::ERR_COULD_NOT_STAT, url.toDisplayString() );
return;
}
......@@ -385,7 +385,7 @@ void ArchiveProtocol::stat( const KUrl & url )
}
if ( !archiveEntry )
{
error( KIO::ERR_DOES_NOT_EXIST, url.prettyUrl() );
error( KIO::ERR_DOES_NOT_EXIST, url.toDisplayString() );
return;
}
......@@ -395,7 +395,7 @@ void ArchiveProtocol::stat( const KUrl & url )
finished();
}
void ArchiveProtocol::get( const KUrl & url )
void ArchiveProtocol::get( const QUrl & url )
{
kDebug( 7109 ) << "ArchiveProtocol::get" << url.url();
......@@ -409,13 +409,13 @@ void ArchiveProtocol::get( const KUrl & url )
// Therefore give a more specific error message
error( KIO::ERR_SLAVE_DEFINED,
i18n( "Could not open the file, probably due to an unsupported file format.\n%1",
url.prettyUrl() ) );
url.toDisplayString() ) );
return;
}
else
{
// We have any other error
error( errorNum, url.prettyUrl() );
error( errorNum, url.toDisplayString() );
return;
}
}
......@@ -425,12 +425,12 @@ void ArchiveProtocol::get( const KUrl & url )
if ( !archiveEntry )
{
error( KIO::ERR_DOES_NOT_EXIST, url.prettyUrl() );
error( KIO::ERR_DOES_NOT_EXIST, url.toDisplayString() );
return;
}
if ( archiveEntry->isDirectory() )
{
error( KIO::ERR_IS_DIRECTORY, url.prettyUrl() );
error( KIO::ERR_IS_DIRECTORY, url.toDisplayString() );
return;
}
const KArchiveFile* archiveFileEntry = static_cast<const KArchiveFile *>(archiveEntry);
......@@ -459,13 +459,13 @@ void ArchiveProtocol::get( const KUrl & url )
{
error( KIO::ERR_SLAVE_DEFINED,
i18n( "The archive file could not be opened, perhaps because the format is unsupported.\n%1" ,
url.prettyUrl() ) );
url.toDisplayString() ) );
return;
}
if ( !io->open( QIODevice::ReadOnly ) )
{
error( KIO::ERR_CANNOT_OPEN_FOR_READING, url.prettyUrl() );
error( KIO::ERR_CANNOT_OPEN_FOR_READING, url.toDisplayString() );
delete io;
return;
}
......@@ -481,7 +481,7 @@ void ArchiveProtocol::get( const KUrl & url )
if ( buffer.isEmpty() && bufferSize > 0 )
{
// Something went wrong
error( KIO::ERR_OUT_OF_MEMORY, url.prettyUrl() );
error( KIO::ERR_OUT_OF_MEMORY, url.toDisplayString() );
delete io;
return;
}
......@@ -503,7 +503,7 @@ void ArchiveProtocol::get( const KUrl & url )
if ( read != bufferSize )
{
kWarning(7109) << "Read" << read << "bytes but expected" << bufferSize ;
error( KIO::ERR_COULD_NOT_READ, url.prettyUrl() );
error( KIO::ERR_COULD_NOT_READ, url.toDisplayString() );
delete io;
return;
}
......
......@@ -34,9 +34,9 @@ public:
ArchiveProtocol( const QByteArray &pool, const QByteArray &app );
virtual ~ArchiveProtocol();
virtual void listDir( const KUrl & url );
virtual void stat( const KUrl & url );
virtual void get( const KUrl & url );
virtual void listDir( const QUrl & url );
virtual void stat( const QUrl & url );
virtual void get( const QUrl & url );
private:
void createRootUDSEntry( KIO::UDSEntry & entry );
......@@ -49,7 +49,7 @@ private:
* \param errNum KIO error number (undefined if the function returns true)
* \return true if file was found, false if there was an error
*/
bool checkNewFile( const KUrl & url, QString & path, KIO::Error& errorNum );
bool checkNewFile( const QUrl & url, QString & path, KIO::Error& errorNum );
KArchive * m_archiveFile;
QString m_archiveName;
......
set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} )
add_executable(testkioarchive testkioarchive.cpp)
target_link_libraries(testkioarchive KF5::KIOCore Qt5::Test)
target_link_libraries(testkioarchive KF5::KIOCore KF5::KDE4Support KF5::Archive Qt5::Test)
ecm_mark_as_test(testkioarchive)
add_test(testkioarchive testkioarchive)
add_subdirectory( kcmcgi )
add_library(kio_cgi MODULE cgi.cpp)
target_link_libraries(kio_cgi KF5::KIOCore KF5::KDE4Support)
########### next target ###############
set(kio_cgi_PART_SRCS cgi.cpp )
add_library(kio_cgi MODULE ${kio_cgi_PART_SRCS})
target_link_libraries(kio_cgi KF5::KIOCore )
install(TARGETS kio_cgi DESTINATION ${PLUGIN_INSTALL_DIR} )
########### install files ###############
install( FILES cgi.protocol DESTINATION ${SERVICES_INSTALL_DIR} )
install(TARGETS kio_cgi DESTINATION ${PLUGIN_INSTALL_DIR} )
install(FILES cgi.protocol DESTINATION ${SERVICES_INSTALL_DIR} )
......@@ -50,7 +50,7 @@ CgiProtocol::~CgiProtocol()
kDebug(7124) << "CgiProtocol::~CgiProtocol";
}
void CgiProtocol::get( const KUrl& url )
void CgiProtocol::get( const QUrl& url )
{
kDebug(7124) << "CgiProtocol::get()";
kDebug(7124) << " URL: " << url.url();
......
......@@ -32,7 +32,7 @@ class CgiProtocol : public KIO::SlaveBase
CgiProtocol( const QByteArray &pool, const QByteArray &app );
virtual ~CgiProtocol();
virtual void get( const KUrl& url );
virtual void get( const QUrl& url );
// virtual void mimetype( const KUrl& url );
......
########### next target ###############
set(kcm_cgi_PART_SRCS kcmcgi.cpp )
add_library(kcm_cgi MODULE ${kcm_cgi_PART_SRCS})
target_link_libraries(kcm_cgi KF5::KIOCore )
add_library(kcm_cgi MODULE kcmcgi.cpp)
target_link_libraries(kcm_cgi KF5::KDE4Support KF5::KIOCore KF5::ConfigGui)
install(TARGETS kcm_cgi DESTINATION ${PLUGIN_INSTALL_DIR} )
########### install files ###############
install( FILES kcmcgi.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
......@@ -20,6 +20,7 @@
#include <KAboutData>
#include <KConfig>
#include <KConfigGroup>
#include <KFileDialog>
#include <KPluginFactory>
#include <KPluginLoader>
......@@ -31,18 +32,15 @@
#include <QPushButton>
#include <QVBoxLayout>
#include "kcmcgi.moc"
K_PLUGIN_FACTORY(KCMCgiFactory, registerPlugin<KCMCgi>();)
K_EXPORT_PLUGIN(KCMCgiFactory("kcmcgi"))
KCMCgi::KCMCgi(QWidget *parent, const QVariantList &)
: KCModule(KCMCgiFactory::componentData(), parent)
: KCModule(parent)
{
setButtons(Default|Apply|Help);
QVBoxLayout *topLayout = new QVBoxLayout(this);
topLayout->setSpacing(KDialog::spacingHint());
QGroupBox *topBox = new QGroupBox(i18n("Paths to Local CGI Programs"), this);
QVBoxLayout *vbox = new QVBoxLayout;
......@@ -54,7 +52,6 @@ KCMCgi::KCMCgi(QWidget *parent, const QVariantList &)
vbox->addWidget(mListBox);
KHBox *buttonBox = new KHBox( topBox );
buttonBox->setSpacing( KDialog::spacingHint() );
mAddButton = new QPushButton( i18n("Add..."), buttonBox );
connect( mAddButton, SIGNAL( clicked() ), SLOT( addPath() ) );
......@@ -70,11 +67,11 @@ KCMCgi::KCMCgi(QWidget *parent, const QVariantList &)
updateButton();
KAboutData *about =
new KAboutData( I18N_NOOP("kcmcgi"), 0,
ki18n("CGI KIO Slave Control Module"),
0, KLocalizedString(), KAboutData::License_GPL,
ki18n("(c) 2002 Cornelius Schumacher") );
i18n("CGI KIO Slave Control Module"),
0, QString(), KAboutData::License_GPL,
i18n("(c) 2002 Cornelius Schumacher") );
about->addAuthor( ki18n("Cornelius Schumacher"), KLocalizedString(), "schumacher@kde.org" );
about->addAuthor( i18n("Cornelius Schumacher"), QString(), "schumacher@kde.org" );
setAboutData(about);
}
......@@ -148,3 +145,5 @@ QString KCMCgi::quickHelp() const
"In this control module you can configure the paths that "
"are searched for CGI scripts.");
}
#include "kcmcgi.moc"
add_subdirectory(tests)
########### next target ###############
set(kio_desktop_PART_SRCS kio_desktop.cpp)
add_library(kio_desktop MODULE kio_desktop.cpp)
add_library(kio_desktop MODULE ${kio_desktop_PART_SRCS})
target_link_libraries(kio_desktop KF5::KIOCore)
target_link_libraries(kio_desktop KF5::KIOCore KF5::KDE4Support)
install(TARGETS kio_desktop DESTINATION ${PLUGIN_INSTALL_DIR} )
########### next target ###############
set(kded_desktopnotifier_PART_SRCS desktopnotifier.cpp )
add_library(kded_desktopnotifier MODULE ${kded_desktopnotifier_PART_SRCS})
add_library(kded_desktopnotifier MODULE desktopnotifier.cpp)
target_link_libraries(kded_desktopnotifier KF5::KIOCore)
target_link_libraries(kded_desktopnotifier KF5::KIOCore KF5::DBusAddons KF5::KDE4Support)
install(TARGETS kded_desktopnotifier DESTINATION ${PLUGIN_INSTALL_DIR} )
......
......@@ -56,7 +56,7 @@ void DesktopNotifier::dirty(const QString &path)
if (path.startsWith(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + '/' + "Trash/files")) {
// Trigger an update of the trash icon
if (QFile::exists(KGlobalSettings::desktopPath() + "/trash.desktop"))
org::kde::KDirNotify::emitFilesChanged(QStringList() << "desktop:/trash.desktop");
org::kde::KDirNotify::emitFilesChanged(QList<QUrl>() << QUrl("desktop:/trash.desktop"));
} else {
// Emitting FilesAdded forces a re-read of the dir
KUrl url("desktop:/");
......@@ -66,3 +66,4 @@ void DesktopNotifier::dirty(const QString &path)
}
}
#include <desktopnotifier.moc>
......@@ -25,6 +25,9 @@
#include <KDesktopFile>
#include <KGlobalSettings>
#include <KStandardDirs>
#include <KGlobal>
#include <KUrl>
#include <kdeversion.h>
#include <kio/udsentry.h>
......@@ -149,16 +152,14 @@ void DesktopProtocol::checkLocalInstall()
#endif
}
bool DesktopProtocol::rewriteUrl(const KUrl &url, KUrl &newUrl)
bool DesktopProtocol::rewriteUrl(const QUrl &url, QUrl &newUrl)
{
newUrl.setProtocol("file");
newUrl.setPath(KGlobalSettings::desktopPath());
newUrl.addPath(url.path());
newUrl.setScheme("file");
newUrl.setPath(KGlobalSettings::desktopPath() + '/' + url.path());
return true;
}
void DesktopProtocol::listDir(const KUrl &url)
void DesktopProtocol::listDir(const QUrl &url)
{
KIO::ForwardingSlaveBase::listDir(url);
......@@ -212,12 +213,12 @@ void DesktopProtocol::prepareUDSEntry(KIO::UDSEntry &entry, bool listing) const
entry.insert(KIO::UDSEntry::UDS_TARGET_URL, entry.stringValue(KIO::UDSEntry::UDS_LOCAL_PATH));
}
void DesktopProtocol::rename(const KUrl &src, const KUrl &dest, KIO::JobFlags flags)
void DesktopProtocol::rename(const QUrl &src, const QUrl &dest, KIO::JobFlags flags)
{
KUrl url;
rewriteUrl(src, url);
if (src.protocol() != "desktop" || dest.protocol() != "desktop" ||
if (src.scheme() != "desktop" || dest.scheme() != "desktop" ||
!KDesktopFile::isDesktopFile(url.path()))
{
ForwardingSlaveBase::rename(src, dest, flags);
......