From kde-core-devel Wed Mar 02 18:56:50 2005 From: =?iso-8859-15?q?K=E9vin_Ottens?= Date: Wed, 02 Mar 2005 18:56:50 +0000 To: kde-core-devel Subject: Backporting 100607 fix? Message-Id: <200503021956.51956.ervin () ipsquad ! net> X-MARC-Message: https://marc.info/?l=kde-core-devel&m=110978928731440 MIME-Version: 1 Content-Type: multipart/mixed; boundary="--Boundary-00=_zxgJCrqfdoujEe+" --Boundary-00=_zxgJCrqfdoujEe+ Content-Type: text/plain; charset="iso-8859-15" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Hi, Can I backport this fix for KDE 3.4? I don't know how I missed this one... Regards. =2D-=20 K=E9vin 'ervin' Ottens, http://ervin.ipsquad.net "Ni le ma=EEtre sans disciple, Ni le disciple sans ma=EEtre, Ne font reculer l'ignorance." --Boundary-00=_zxgJCrqfdoujEe+ Content-Type: text/x-diff; charset="iso-8859-15"; name="100607_fix.diff" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="100607_fix.diff" Index: kio_remote.cpp =================================================================== RCS file: /home/kde/kdebase/kioslave/remote/kio_remote.cpp,v retrieving revision 1.7 diff -u -p -u -r1.7 kio_remote.cpp --- kio_remote.cpp 7 Feb 2005 10:54:27 -0000 1.7 +++ kio_remote.cpp 2 Mar 2005 18:45:14 -0000 @@ -192,4 +192,21 @@ void RemoteProtocol::get(const KURL &url error(KIO::ERR_MALFORMED_URL, url.prettyURL()); } +void RemoteProtocol::rename(const KURL &src, const KURL &dest, + bool overwrite) +{ + if (src.protocol()!="remote" || dest.protocol()!="remote" + || m_impl.isWizardURL(src) || m_impl.isWizardURL(dest)) + { + error(KIO::ERR_UNSUPPORTED_ACTION, src.prettyURL()); + return; + } + if (m_impl.renameFolders(src.fileName(), dest.fileName(), overwrite)) + { + finished(); + return; + } + + error(KIO::ERR_CANNOT_RENAME, src.prettyURL()); +} Index: kio_remote.h =================================================================== RCS file: /home/kde/kdebase/kioslave/remote/kio_remote.h,v retrieving revision 1.5 diff -u -p -u -r1.5 kio_remote.h --- kio_remote.h 7 Feb 2005 10:54:27 -0000 1.5 +++ kio_remote.h 2 Mar 2005 18:45:14 -0000 @@ -34,6 +34,7 @@ public: virtual void stat(const KURL &url); virtual void del(const KURL &url, bool isFile); virtual void get(const KURL &url); + virtual void rename(const KURL &src, const KURL &dest, bool overwrite); private: void listRoot(); Index: remoteimpl.cpp =================================================================== RCS file: /home/kde/kdebase/kioslave/remote/remoteimpl.cpp,v retrieving revision 1.3 diff -u -p -u -r1.3 remoteimpl.cpp --- remoteimpl.cpp 7 Feb 2005 12:10:48 -0000 1.3 +++ remoteimpl.cpp 2 Mar 2005 18:45:14 -0000 @@ -269,3 +269,32 @@ bool RemoteImpl::deleteNetworkFolder(con return false; } +bool RemoteImpl::renameFolders(const QString &src, const QString &dest, + bool overwrite) const +{ + kdDebug() << "RemoteImpl::renameFolders: " + << src << ", " << dest << endl; + + QString directory; + if (findDirectory(src+".desktop", directory)) + { + if (!overwrite && QFile::exists(directory+dest+".desktop")) + { + return false; + } + + kdDebug() << "Renaming " << directory << src << ".desktop"<< endl; + QDir dir(directory); + bool res = dir.rename(src+".desktop", dest+".desktop"); + if (res) + { + KDesktopFile desktop(directory+dest+".desktop"); + desktop.writeEntry("Name", dest); + } + return res; + } + + return false; +} + + Index: remoteimpl.h =================================================================== RCS file: /home/kde/kdebase/kioslave/remote/remoteimpl.h,v retrieving revision 1.2 diff -u -p -u -r1.2 remoteimpl.h --- remoteimpl.h 7 Feb 2005 10:54:27 -0000 1.2 +++ remoteimpl.h 2 Mar 2005 18:45:14 -0000 @@ -42,6 +42,8 @@ public: QString findDesktopFile(const QString &filename) const; bool deleteNetworkFolder(const QString &filename) const; + bool renameFolders(const QString &src, const QString &dest, + bool overwrite) const; private: bool findDirectory(const QString &filename, QString &directory) const; --Boundary-00=_zxgJCrqfdoujEe+--