[SCM] kdeconnect packaging branch, master, updated. debian/0.9g-1-1183-g9d69498
Maximiliano Curia
maxy at moszumanska.debian.org
Fri Oct 14 14:28:04 UTC 2016
Gitweb-URL: http://git.debian.org/?p=pkg-kde/kde-extras/kdeconnect.git;a=commitdiff;h=7a214e7
The following commit has been merged in the master branch:
commit 7a214e72eeecf43a31b6e05d2fa2a7b38175c5cb
Author: Albert Vaca <albertvaka at gmail.com>
Date: Fri Oct 10 15:01:21 2014 -0700
SFTP plugin now supports devices with multiple external storages
---
kio/kiokdeconnect.cpp | 46 +++++++++++++++++++-------------------------
plugins/sftp/mounter.cpp | 7 ++++++-
plugins/sftp/sftp_config.cpp | 1 -
plugins/sftp/sftpplugin.cpp | 24 ++++++++++++++++++++---
plugins/sftp/sftpplugin.h | 9 ++++-----
5 files changed, 51 insertions(+), 36 deletions(-)
diff --git a/kio/kiokdeconnect.cpp b/kio/kiokdeconnect.cpp
index 09acd42..b742093 100644
--- a/kio/kiokdeconnect.cpp
+++ b/kio/kiokdeconnect.cpp
@@ -136,44 +136,38 @@ void KioKdeconnect::listDevice()
QDBusReply<bool> mountreply = interface.mountAndWait();
- if (handleDBusError(mountreply, this))
- {
+ if (handleDBusError(mountreply, this)) {
return;
}
- if (!mountreply.value())
- {
+ if (!mountreply.value()) {
error(KIO::ERR_COULD_NOT_MOUNT, i18n("Could not mount device filesystem"));
return;
}
- QDBusReply<QString> urlreply = interface.mountPoint();
+ QDBusReply< QVariantMap > urlreply = interface.getDirectories();
- if (handleDBusError(urlreply, this))
- {
+ if (handleDBusError(urlreply, this)) {
return;
}
- QString url = urlreply.value();
+ QVariantMap urls = urlreply.value();
- KIO::UDSEntry entry;
- entry.insert(KIO::UDSEntry::UDS_NAME, "files");
- entry.insert(KIO::UDSEntry::UDS_DISPLAY_NAME, i18n("Camera pictures"));
- entry.insert(KIO::UDSEntry::UDS_ICON_NAME, "folder");
- entry.insert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR);
- entry.insert(KIO::UDSEntry::UDS_ACCESS, S_IRUSR | S_IRGRP | S_IROTH);
- entry.insert(KIO::UDSEntry::UDS_MIME_TYPE, "");
- entry.insert(KIO::UDSEntry::UDS_URL, url + "/DCIM/Camera");
- listEntry(entry, false);
-
- entry.insert(KIO::UDSEntry::UDS_NAME, "files");
- entry.insert(KIO::UDSEntry::UDS_DISPLAY_NAME, i18n("All files"));
- entry.insert(KIO::UDSEntry::UDS_ICON_NAME, "folder");
- entry.insert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR);
- entry.insert(KIO::UDSEntry::UDS_ACCESS, S_IRUSR | S_IRGRP | S_IROTH);
- entry.insert(KIO::UDSEntry::UDS_MIME_TYPE, "");
- entry.insert(KIO::UDSEntry::UDS_URL, url);
- listEntry(entry, false);
+ for (QVariantMap::iterator it = urls.begin(); it != urls.end(); it++) {
+
+ QString path = it.key();
+ QString name = it.value().toString();
+
+ KIO::UDSEntry entry;
+ entry.insert(KIO::UDSEntry::UDS_NAME, "files");
+ entry.insert(KIO::UDSEntry::UDS_DISPLAY_NAME, name);
+ entry.insert(KIO::UDSEntry::UDS_ICON_NAME, "folder");
+ entry.insert(KIO::UDSEntry::UDS_FILE_TYPE, S_IFDIR);
+ entry.insert(KIO::UDSEntry::UDS_ACCESS, S_IRUSR | S_IRGRP | S_IROTH);
+ entry.insert(KIO::UDSEntry::UDS_MIME_TYPE, "");
+ entry.insert(KIO::UDSEntry::UDS_URL, path);
+ listEntry(entry, false);
+ }
listEntry(KIO::UDSEntry(), true);
infoMessage("");
diff --git a/plugins/sftp/mounter.cpp b/plugins/sftp/mounter.cpp
index 752c3f4..c414f77 100644
--- a/plugins/sftp/mounter.cpp
+++ b/plugins/sftp/mounter.cpp
@@ -120,11 +120,16 @@ void Mounter::onPakcageReceived(const NetworkPackage& np)
QDir().mkpath(mpoint);
const QString program = "sshfs";
+
+ QString path;
+ if (np.has("multiPaths")) path = "/";
+ else path = np.get<QString>("path");
+
const QStringList arguments = QStringList()
<< QString("%1@%2:%3")
.arg(np.get<QString>("user"))
.arg(np.get<QString>("ip"))
- .arg(np.get<QString>("path"))
+ .arg(path)
<< mpoint
<< "-p" << np.get<QString>("port")
<< "-d"
diff --git a/plugins/sftp/sftp_config.cpp b/plugins/sftp/sftp_config.cpp
index 119fe5b..c996dd3 100644
--- a/plugins/sftp/sftp_config.cpp
+++ b/plugins/sftp/sftp_config.cpp
@@ -70,7 +70,6 @@ void SftpConfig::defaults()
Q_EMIT changed(true);
}
-
void SftpConfig::load()
{
KCModule::load();
diff --git a/plugins/sftp/sftpplugin.cpp b/plugins/sftp/sftpplugin.cpp
index a960f6b..53b818a 100644
--- a/plugins/sftp/sftpplugin.cpp
+++ b/plugins/sftp/sftpplugin.cpp
@@ -53,7 +53,7 @@ struct SftpPlugin::Pimpl
SftpPlugin::SftpPlugin(QObject *parent, const QVariantList &args)
: KdeConnectPlugin(parent, args)
- , m_d(new Pimpl)
+ , m_d(new Pimpl())
{
addToDolphin();
kDebug(debugArea()) << "Created device:" << device()->name();
@@ -140,14 +140,26 @@ bool SftpPlugin::startBrowsing()
bool SftpPlugin::receivePackage(const NetworkPackage& np)
{
- if (!(fields_c - np.body().keys().toSet()).isEmpty())
- {
+ if (!(fields_c - np.body().keys().toSet()).isEmpty()) {
// package is invalid
return false;
}
Q_EMIT packageReceived(np);
+ remoteDirectories.clear();
+ if (np.has("multiPaths")) {
+ QStringList paths = np.get<QStringList>("multiPaths",QStringList());
+ QStringList names = np.get<QStringList>("pathNames",QStringList());
+ int size = qMin<int>(names.size(), paths.size());
+ for (int i = 0; i < size; i++) {
+ remoteDirectories.insert(mountPoint() + paths.at(i), names.at(i));
+ }
+ } else {
+ remoteDirectories.insert(mountPoint(), i18n("All files"));
+ remoteDirectories.insert(mountPoint() + "/DCIM/Camera", i18n("Camera pictures"));
+ }
+
return true;
}
@@ -196,3 +208,9 @@ void SftpPlugin::knotify(int type, const QString& text, const QPixmap& icon) con
, KNotification::CloseOnTimeout);
}
+QVariantMap SftpPlugin::getDirectories()
+{
+ return remoteDirectories;
+}
+
+
diff --git a/plugins/sftp/sftpplugin.h b/plugins/sftp/sftpplugin.h
index 9517d8e..8c77d62 100644
--- a/plugins/sftp/sftpplugin.h
+++ b/plugins/sftp/sftpplugin.h
@@ -35,12 +35,10 @@ class SftpPlugin
Q_CLASSINFO("D-Bus Interface", "org.kde.kdeconnect.device.sftp")
public:
-
explicit SftpPlugin(QObject *parent, const QVariantList &args);
virtual ~SftpPlugin();
Q_SIGNALS:
-
void packageReceived(const NetworkPackage& np);
Q_SCRIPTABLE void mounted();
Q_SCRIPTABLE void unmounted();
@@ -53,11 +51,10 @@ public Q_SLOTS:
Q_SCRIPTABLE void unmount();
Q_SCRIPTABLE bool mountAndWait();
Q_SCRIPTABLE bool isMounted() const;
-
+
Q_SCRIPTABLE bool startBrowsing();
Q_SCRIPTABLE QString mountPoint();
-
-
+ Q_SCRIPTABLE QVariantMap getDirectories(); //Actually a QMap<String, String>, but QDBus preffers this
private Q_SLOTS:
void onMounted();
@@ -73,6 +70,8 @@ private:
private:
struct Pimpl;
QScopedPointer<Pimpl> m_d;
+
+ QVariantMap remoteDirectories; //Actually a QMap<String, String>, but QDBus preffers this
};
--
kdeconnect packaging
More information about the pkg-kde-commits
mailing list