| Summary: | 3.4rc1: cannot rename "network folders" | ||
|---|---|---|---|
| Product: | [Unmaintained] kio | Reporter: | Jens <jens-bugs.kde.org> |
| Component: | remote | Assignee: | Kevin Ottens <ervin> |
| Status: | RESOLVED FIXED | ||
| Severity: | normal | ||
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | unspecified | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed/Implemented In: | ||
| Sentry Crash Report: | |||
|
Description
Jens
2005-03-02 00:53:48 UTC
CVS commit by ervin:
We now allow to rename a Network Folder.
I simply forgot to do it earlier. :-)
BUGS:100607
M +17 -0 kio_remote.cpp 1.8
M +1 -0 kio_remote.h 1.6
M +29 -0 remoteimpl.cpp 1.4
M +2 -0 remoteimpl.h 1.3
--- kdebase/kioslave/remote/kio_remote.cpp #1.7:1.8
@@ -193,3 +193,20 @@ void RemoteProtocol::get(const KURL &url
}
+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());
+}
--- kdebase/kioslave/remote/kio_remote.h #1.5:1.6
@@ -35,4 +35,5 @@ public:
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:
--- kdebase/kioslave/remote/remoteimpl.cpp #1.3:1.4
@@ -270,2 +270,31 @@ bool RemoteImpl::deleteNetworkFolder(con
}
+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;
+}
+
+
--- kdebase/kioslave/remote/remoteimpl.h #1.2:1.3
@@ -43,4 +43,6 @@ public:
bool deleteNetworkFolder(const QString &filename) const;
+ bool renameFolders(const QString &src, const QString &dest,
+ bool overwrite) const;
private:
Great (and fast)! Thank you! :-D The rename functionality has been added with F2, but there is no rename option in the right-click menu, as reported here: https://launchpad.net/distros/ubuntu/+source/kubuntu-meta/+bug/35580 |