diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,7 +19,7 @@ set(ACCOUNTSGLIB_DEP_VERSION "1.21") find_package(Qt5 ${QT_REQUIRED_VERSION} CONFIG REQUIRED Core Widgets) -find_package(KF5 ${KF5_MIN_VERSION} REQUIRED KCMUtils I18n CoreAddons DBusAddons Declarative) +find_package(KF5 ${KF5_MIN_VERSION} REQUIRED KCMUtils I18n CoreAddons DBusAddons Declarative Wallet KIO) find_package(AccountsQt5 ${ACCOUNTSQT_DEP_VERSION} CONFIG) set_package_properties(AccountsQt5 PROPERTIES DESCRIPTION "Accounts management library for Qt applications" diff --git a/src/kded/kio-webdav/CMakeLists.txt b/src/kded/kio-webdav/CMakeLists.txt deleted file mode 100644 --- a/src/kded/kio-webdav/CMakeLists.txt +++ /dev/null @@ -1,28 +0,0 @@ - -set(kio-webdav_SRCS - kioservices.cpp - createnetattachjob.cpp - removenetattachjob.cpp - createkioservice.cpp - removekioservice.cpp) - -add_library(kaccounts_kio_webdav_plugin MODULE ${kio-webdav_SRCS}) - -target_link_libraries(kaccounts_kio_webdav_plugin - Qt5::Core -# Qt5::Xml -# Qt5::Widgets -# KF5::CoreAddons -# KF5::ConfigCore -# KF5::Wallet -# KF5::KIOCore -# KF5::I18n - KF5::DBusAddons - kaccounts - ${ACCOUNTSQT_LIBRARIES} - ${SIGNONQT_LIBRARIES} -) - -install (TARGETS kaccounts_carddav_plugin - DESTINATION ${PLUGIN_INSTALL_DIR}/kaccounts/daemonplugins -) diff --git a/src/plugins/CMakeLists.txt b/src/plugins/CMakeLists.txt new file mode 100644 --- /dev/null +++ b/src/plugins/CMakeLists.txt @@ -0,0 +1 @@ +add_subdirectory(kio-webdav) diff --git a/src/plugins/kio-webdav/CMakeLists.txt b/src/plugins/kio-webdav/CMakeLists.txt new file mode 100644 --- /dev/null +++ b/src/plugins/kio-webdav/CMakeLists.txt @@ -0,0 +1,26 @@ +set(kio-webdav_SRCS + kioservices.cpp + createnetattachjob.cpp + removenetattachjob.cpp + createkioservice.cpp + removekioservice.cpp) + +kcoreaddons_add_plugin(kaccounts_kio_webdav_plugin + SOURCES ${kio-webdav_SRCS} + JSON "kio-webdav.json" + INSTALL_NAMESPACE "kaccounts/daemonplugins" + ) + +target_link_libraries(kaccounts_kio_webdav_plugin + Qt5::Core + Qt5::Widgets + KF5::CoreAddons + KF5::ConfigCore + KF5::Wallet + KF5::KIOCore + KF5::I18n + KF5::DBusAddons + kaccounts + ${ACCOUNTSQT_LIBRARIES} + ${SIGNONQT_LIBRARIES} +) diff --git a/src/kded/kio-webdav/createkioservice.h b/src/plugins/kio-webdav/createkioservice.h rename from src/kded/kio-webdav/createkioservice.h rename to src/plugins/kio-webdav/createkioservice.h diff --git a/src/kded/kio-webdav/createkioservice.cpp b/src/plugins/kio-webdav/createkioservice.cpp rename from src/kded/kio-webdav/createkioservice.cpp rename to src/plugins/kio-webdav/createkioservice.cpp --- a/src/kded/kio-webdav/createkioservice.cpp +++ b/src/plugins/kio-webdav/createkioservice.cpp @@ -66,14 +66,15 @@ Accounts::Service service = m_manager->service(m_serviceName); QString host = m_account->value("dav/host").toString(); + QString path = m_account->value("dav/storagePath").toString(); m_account->selectService(service); QString username = data["UserName"].toString(); CreateNetAttachJob *netJob = new CreateNetAttachJob(this); connect(netJob, &CreateNetAttachJob::finished, this, &CreateKioService::netAttachCreated); netJob->setHost(host); - netJob->setPath(m_account->value("dav/path").toString()); + netJob->setPath(path); netJob->setUsername(username); netJob->setPassword(data["Secret"].toString()); netJob->setIcon(service.iconName()); diff --git a/src/kded/kio-webdav/createnetattachjob.h b/src/plugins/kio-webdav/createnetattachjob.h rename from src/kded/kio-webdav/createnetattachjob.h rename to src/plugins/kio-webdav/createnetattachjob.h diff --git a/src/kded/kio-webdav/createnetattachjob.cpp b/src/plugins/kio-webdav/createnetattachjob.cpp rename from src/kded/kio-webdav/createnetattachjob.cpp rename to src/plugins/kio-webdav/createnetattachjob.cpp --- a/src/kded/kio-webdav/createnetattachjob.cpp +++ b/src/plugins/kio-webdav/createnetattachjob.cpp @@ -21,7 +21,7 @@ #include #include -#include +#include #include #include #include @@ -83,8 +83,7 @@ url.setHost(m_host); url.setUserName(m_username); url.setScheme("webdav"); - url = url.adjusted(QUrl::StripTrailingSlash); - url.setPath(url.path() + '/' + m_path); + url.setPath(m_path); if (!m_realm.isEmpty()) { createDesktopFile(url); diff --git a/src/plugins/kio-webdav/kio-webdav.json b/src/plugins/kio-webdav/kio-webdav.json new file mode 100644 --- /dev/null +++ b/src/plugins/kio-webdav/kio-webdav.json @@ -0,0 +1,11 @@ +{ + "KPlugin": { + "Description": "Mount WebDAV shares with KIO", + "EnabledByDefault": true, + "Icon": "system-file-manager", + "Id": "kaccounts_kio_webdav", + "License": "GPL", + "Name": "KIO WebDAV", + "Version": "0.1" + } +} diff --git a/src/kded/kio-webdav/kioservices.h b/src/plugins/kio-webdav/kioservices.h rename from src/kded/kio-webdav/kioservices.h rename to src/plugins/kio-webdav/kioservices.h --- a/src/kded/kio-webdav/kioservices.h +++ b/src/plugins/kio-webdav/kioservices.h @@ -40,7 +40,8 @@ Q_OBJECT public: - explicit KIOServices(QObject* parent =nullptr); + KIOServices(QObject* parent, const QVariantList &args); + ~KIOServices() override; public Q_SLOTS: void onAccountCreated(const Accounts::AccountId accId, const Accounts::ServiceList &serviceList); diff --git a/src/kded/kio-webdav/kioservices.cpp b/src/plugins/kio-webdav/kioservices.cpp rename from src/kded/kio-webdav/kioservices.cpp rename to src/plugins/kio-webdav/kioservices.cpp --- a/src/kded/kio-webdav/kioservices.cpp +++ b/src/plugins/kio-webdav/kioservices.cpp @@ -26,11 +26,17 @@ #include #include -KIOServices::KIOServices(QObject *parent) - : KAccountsDPlugin(parent) +#include + +K_PLUGIN_CLASS_WITH_JSON(KIOServices, "kio-webdav.json") + +KIOServices::KIOServices(QObject *parent, const QVariantList &args) + : KAccountsDPlugin(parent, args) { } +KIOServices::~KIOServices() = default; + void KIOServices::onAccountCreated(const Accounts::AccountId accId, const Accounts::ServiceList &serviceList) { qDebug(); @@ -126,3 +132,5 @@ return QFile::exists(path); } + +#include "kioservices.moc" diff --git a/src/kded/kio-webdav/removekioservice.h b/src/plugins/kio-webdav/removekioservice.h rename from src/kded/kio-webdav/removekioservice.h rename to src/plugins/kio-webdav/removekioservice.h diff --git a/src/kded/kio-webdav/removekioservice.cpp b/src/plugins/kio-webdav/removekioservice.cpp rename from src/kded/kio-webdav/removekioservice.cpp rename to src/plugins/kio-webdav/removekioservice.cpp --- a/src/kded/kio-webdav/removekioservice.cpp +++ b/src/plugins/kio-webdav/removekioservice.cpp @@ -22,8 +22,6 @@ #include #include -#include - RemoveKioService::RemoveKioService(QObject *parent) : KJob(parent) { diff --git a/src/kded/kio-webdav/removenetattachjob.h b/src/plugins/kio-webdav/removenetattachjob.h rename from src/kded/kio-webdav/removenetattachjob.h rename to src/plugins/kio-webdav/removenetattachjob.h diff --git a/src/kded/kio-webdav/removenetattachjob.cpp b/src/plugins/kio-webdav/removenetattachjob.cpp rename from src/kded/kio-webdav/removenetattachjob.cpp rename to src/plugins/kio-webdav/removenetattachjob.cpp diff --git a/src/kded/kio-webdav/tests/CMakeLists.txt b/src/plugins/kio-webdav/tests/CMakeLists.txt rename from src/kded/kio-webdav/tests/CMakeLists.txt rename to src/plugins/kio-webdav/tests/CMakeLists.txt diff --git a/src/kded/kio-webdav/tests/testnetattachjobs.cpp b/src/plugins/kio-webdav/tests/testnetattachjobs.cpp rename from src/kded/kio-webdav/tests/testnetattachjobs.cpp rename to src/plugins/kio-webdav/tests/testnetattachjobs.cpp