[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    Backporting 100607 fix?
From:       Kévin_Ottens <ervin () ipsquad ! net>
Date:       2005-03-02 18:56:50
Message-ID: 200503021956.51956.ervin () ipsquad ! net
[Download RAW message or body]

Hi,

Can I backport this fix for KDE 3.4?
I don't know how I missed this one...

Regards.
-- 
Kévin 'ervin' Ottens, http://ervin.ipsquad.net
"Ni le maître sans disciple, Ni le disciple sans maître,
Ne font reculer l'ignorance."

["100607_fix.diff" (text/x-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;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic