diff --git a/CMakeLists.txt b/CMakeLists.txt index af9e95e..9bfcd7f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,54 +1,54 @@ project(KAccounts) cmake_minimum_required(VERSION 2.8.12) set(QT_REQUIRED_VERSION "5.7.0") set(KF5_MIN_VERSION "5.4.0") find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) set(RELEASE_SERVICE_VERSION_MAJOR "20") set(RELEASE_SERVICE_VERSION_MINOR "07") set(RELEASE_SERVICE_VERSION_MICRO "70") set(KACCOUNTS_VERSION "${RELEASE_SERVICE_VERSION_MAJOR}.${RELEASE_SERVICE_VERSION_MINOR}.${RELEASE_SERVICE_VERSION_MICRO}") set(KACCOUNTS_SOVERSION "1") set(ACCOUNTSQT_DEP_VERSION "1.13") set(SIGNONQT_DEP_VERSION "8.55") 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" URL "https://gitlab.com/accounts-sso/libaccounts-qt" TYPE REQUIRED PURPOSE "Required for building this module") find_package(SignOnQt5 ${SIGNONQT_DEP_VERSION} CONFIG) set_package_properties(SignOnQt5 PROPERTIES DESCRIPTION "D-Bus service which performs user authentication on behalf of its clients" URL "https://gitlab.com/accounts-sso/signond" TYPE REQUIRED PURPOSE "Required for building this module") add_definitions (-DTRANSLATION_DOMAIN=\"kaccounts-integration\" -DQT_NO_KEYWORDS -DQT_NO_FOREACH) include(KDEInstallDirs) include(KDECMakeSettings) include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) include(KDECompilerSettings NO_POLICY_SCOPE) include(ECMInstallIcons) include(FeatureSummary) include(ECMSetupVersion) include(ECMGenerateHeaders) include(GenerateExportHeader) include(ECMPackageConfigHelpers) include_directories(${ACCOUNTSQT_INCLUDE_DIRS} ${SIGNONQT_INCLUDE_DIRS}) add_subdirectory(src) feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES) diff --git a/src/kded/kio-webdav/CMakeLists.txt b/src/kded/kio-webdav/CMakeLists.txt deleted file mode 100644 index f5f5ad4..0000000 --- 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 index 0000000..f6ecb68 --- /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 index 0000000..b059441 --- /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.cpp b/src/plugins/kio-webdav/createkioservice.cpp similarity index 97% rename from src/kded/kio-webdav/createkioservice.cpp rename to src/plugins/kio-webdav/createkioservice.cpp index 647b1c4..5d21e2c 100644 --- a/src/kded/kio-webdav/createkioservice.cpp +++ b/src/plugins/kio-webdav/createkioservice.cpp @@ -1,118 +1,119 @@ /************************************************************************************* * Copyright (C) 2013 by Alejandro Fiestas Olivares * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License * * as published by the Free Software Foundation; either version 2 * * of the License, or (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * *************************************************************************************/ #include "createkioservice.h" #include "createnetattachjob.h" #include "../lib/getcredentialsjob.h" #include #include #include CreateKioService::CreateKioService(QObject *parent) : KJob(parent) { m_manager = KAccounts::accountsManager(); } CreateKioService::~CreateKioService() { delete m_account; } void CreateKioService::start() { QMetaObject::invokeMethod(this, "createKioService", Qt::QueuedConnection); } void CreateKioService::createKioService() { qDebug(); m_account = m_manager->account(m_accountId); GetCredentialsJob *job = new GetCredentialsJob(m_accountId, QString(), QString(), this); connect(job, &GetCredentialsJob::finished, this, &CreateKioService::gotCredentials); job->setServiceType(m_serviceType); job->start(); } void CreateKioService::gotCredentials(KJob *job) { qDebug(); if (job->error()) { setError(job->error()); setErrorText(job->errorText()); emitResult(); return; } GetCredentialsJob *gjob = qobject_cast(job); QVariantMap data = gjob->credentialsData(); 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()); netJob->setUniqueId(QString::number(m_accountId) + "_" + m_serviceName); netJob->setName(m_manager->provider(service.provider()).displayName() + " " + service.displayName()); netJob->start(); } void CreateKioService::netAttachCreated(KJob *job) { emitResult(); } Accounts::AccountId CreateKioService::accountId() const { return m_accountId; } void CreateKioService::setAccountId(const Accounts::AccountId accId) { m_accountId = accId; } QString CreateKioService::serviceName() const { return m_serviceName; } void CreateKioService::setServiceName(const QString &serviceName) { m_serviceName = serviceName; } QString CreateKioService::serviceType() const { return m_serviceType; } void CreateKioService::setServiceType(const QString &serviceType) { m_serviceType = serviceType; } diff --git a/src/kded/kio-webdav/createkioservice.h b/src/plugins/kio-webdav/createkioservice.h similarity index 100% rename from src/kded/kio-webdav/createkioservice.h rename to src/plugins/kio-webdav/createkioservice.h diff --git a/src/kded/kio-webdav/createnetattachjob.cpp b/src/plugins/kio-webdav/createnetattachjob.cpp similarity index 98% rename from src/kded/kio-webdav/createnetattachjob.cpp rename to src/plugins/kio-webdav/createnetattachjob.cpp index 043ad65..8d3d807 100644 --- a/src/kded/kio-webdav/createnetattachjob.cpp +++ b/src/plugins/kio-webdav/createnetattachjob.cpp @@ -1,247 +1,246 @@ /************************************************************************************* * Copyright (C) 2012 by Alejandro Fiestas Olivares * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License * * as published by the Free Software Foundation; either version 2 * * of the License, or (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * *************************************************************************************/ #include "createnetattachjob.h" #include #include -#include +#include #include #include #include #include #include #include #include #include using namespace KWallet; CreateNetAttachJob::CreateNetAttachJob(QObject *parent) : KJob(parent) , m_wallet(0) { } CreateNetAttachJob::~CreateNetAttachJob() { delete m_wallet; } void CreateNetAttachJob::start() { QMetaObject::invokeMethod(this, "createNetAttach", Qt::QueuedConnection); } void CreateNetAttachJob::createNetAttach() { qDebug(); WId windowId = 0; if (qApp->activeWindow()) { windowId = qApp->activeWindow()->winId(); } m_wallet = Wallet::openWallet(Wallet::NetworkWallet(), windowId, Wallet::Asynchronous); connect(m_wallet, &KWallet::Wallet::walletOpened, this, &CreateNetAttachJob::walletOpened); } void CreateNetAttachJob::walletOpened(bool opened) { qDebug(); if (!opened) { setError(-1); setErrorText("Can't open wallet"); emitResult(); return; } getRealm(); } void CreateNetAttachJob::getRealm() { qDebug(); QUrl url; 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); return; } KIO::TransferJob *job = KIO::get(url , KIO::NoReload, KIO::HideProgressInfo); connect(job, &KIO::TransferJob::finished, this, &CreateNetAttachJob::gotRealm); KIO::MetaData data; data.insert("PropagateHttpHeader", "true"); job->setMetaData(data); job->setUiDelegate(0); job->start(); } void CreateNetAttachJob::gotRealm(KJob *job) { KIO::TransferJob *hJob = qobject_cast(job); QRegExp rx("www-authenticate: Basic realm=\"(\\S+)\"\n"); QString headers = hJob->metaData().value("HTTP-Headers"); if (rx.indexIn(headers) != -1) { m_realm = rx.cap(1); } createDesktopFile(hJob->url()); } void CreateNetAttachJob::createDesktopFile(const QUrl &url) { qDebug(); QString path = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation); path.append(QStringLiteral("/remoteview/")); QDir saveDir(path); if (!saveDir.exists()) { if (!saveDir.mkpath(path)) { qWarning() << "Directory" << path << "for storage couldn't be created!"; } } path += m_uniqueId + ".desktop"; qDebug() << "Creating knetAttach place"; qDebug() << path; qDebug() << url.host(); qDebug() << url.toString(); KConfig _desktopFile( path, KConfig::SimpleConfig ); KConfigGroup desktopFile(&_desktopFile, "Desktop Entry"); desktopFile.writeEntry("Icon", m_icon); desktopFile.writeEntry("Name", m_name); desktopFile.writeEntry("Type", "Link"); desktopFile.writeEntry("URL", url.toString()); // desktopFile.writeEntry("Charset", url.fileEncoding()); desktopFile.sync(); QString walletUrl(url.scheme()); walletUrl.append("-"); walletUrl.append(m_username); walletUrl.append("@"); walletUrl.append(url.host()); walletUrl.append(":-1-");//Overwrite the first option QMap info; info["login"] = m_username; info["password"] = m_password; m_wallet->setFolder("Passwords"); if (!m_realm.isEmpty()) { m_wallet->writeMap(walletUrl + m_realm, info); } m_wallet->writeMap(walletUrl + "webdav", info); m_wallet->sync(); org::kde::KDirNotify::emitFilesAdded(QUrl("remote:/")); emitResult(); } QString CreateNetAttachJob::host() const { return m_host; } void CreateNetAttachJob::setHost(const QString &host) { m_host = host; } QString CreateNetAttachJob::path() const { return m_path; } void CreateNetAttachJob::setPath(const QString& path) { m_path = path; } QString CreateNetAttachJob::realm() const { return m_realm; } void CreateNetAttachJob::setRealm(const QString &realm) { m_realm = realm; } QString CreateNetAttachJob::name() const { return m_name; } void CreateNetAttachJob::setName(const QString& name) { m_name = name; } QString CreateNetAttachJob::username() const { return m_username; } void CreateNetAttachJob::setUsername(const QString &username) { m_username = username; } QString CreateNetAttachJob::password() const { return m_password; } void CreateNetAttachJob::setPassword(const QString &password) { m_password = password; } QString CreateNetAttachJob::uniqueId() const { return m_uniqueId; } void CreateNetAttachJob::setUniqueId(const QString& uniqueId) { m_uniqueId = uniqueId; } QString CreateNetAttachJob::icon() const { return m_icon; } void CreateNetAttachJob::setIcon(const QString &icon) { m_icon = icon; } diff --git a/src/kded/kio-webdav/createnetattachjob.h b/src/plugins/kio-webdav/createnetattachjob.h similarity index 100% rename from src/kded/kio-webdav/createnetattachjob.h rename to src/plugins/kio-webdav/createnetattachjob.h diff --git a/src/plugins/kio-webdav/kio-webdav.json b/src/plugins/kio-webdav/kio-webdav.json new file mode 100644 index 0000000..3915658 --- /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.cpp b/src/plugins/kio-webdav/kioservices.cpp similarity index 94% rename from src/kded/kio-webdav/kioservices.cpp rename to src/plugins/kio-webdav/kioservices.cpp index 4f684b8..1691043 100644 --- a/src/kded/kio-webdav/kioservices.cpp +++ b/src/plugins/kio-webdav/kioservices.cpp @@ -1,128 +1,136 @@ /************************************************************************************* * Copyright (C) 2013 by Alejandro Fiestas Olivares * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License * * as published by the Free Software Foundation; either version 2 * * of the License, or (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * *************************************************************************************/ #include "kioservices.h" #include "createnetattachjob.h" #include "createkioservice.h" #include "removekioservice.h" #include #include #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(); for (const Accounts::Service &service : serviceList) { if (service.serviceType() != QLatin1String("dav-storage")) { qDebug() << "Ignoring: " << service.serviceType(); continue; } if (isEnabled(accId, service.name())) { qDebug() << "Already configured: " << service.name(); continue; } qDebug() << "Creating: " << service.name() << "Of type: " << service.serviceType(); enableService(accId, service); } } void KIOServices::onAccountRemoved(const Accounts::AccountId accId) { qDebug(); QString accountId = QString::number(accId) + "_"; QString path = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation); path.append(QStringLiteral("/remoteview/")); QDirIterator i(path, QDir::NoDotAndDotDot | QDir::Files); while (i.hasNext()) { i.next(); if (!i.fileName().startsWith(accountId)) { continue; } QString serviceName = i.fileName(); qDebug() << "Removing: " << serviceName; serviceName = serviceName.mid(accountId.count(), serviceName.indexOf(QLatin1String(".desktop")) - accountId.count()); qDebug() << "Removing N: " << serviceName; disableService(accId, serviceName); } } void KIOServices::onServiceEnabled(const Accounts::AccountId accId, const Accounts::Service &service) { if (service.serviceType() != QLatin1String("dav-storage")) { qDebug() << "Ignoring: " << service.serviceType(); return; } if (isEnabled(accId, service.name())) { qDebug() << "Already configured: " << service.name(); return; } enableService(accId, service); } void KIOServices::onServiceDisabled(const Accounts::AccountId accId, const Accounts::Service &service) { if (service.serviceType() != QLatin1String("dav-storage")) { qDebug() << "Ignoring: " << service.serviceType(); return; } if (!isEnabled(accId, service.name())) { qDebug() << "Already not configured: " << service.name(); return; } disableService(accId, service.name()); } void KIOServices::enableService(const Accounts::AccountId accId, const Accounts::Service &service) { CreateKioService *job = new CreateKioService(this); job->setAccountId(accId); job->setServiceName(service.name()); job->setServiceType(service.serviceType()); job->start(); } void KIOServices::disableService(const Accounts::AccountId accId, const QString &serviceName) { RemoveKioService *job = new RemoveKioService(this); job->setServiceName(serviceName); job->setAccountId(accId); job->start(); } bool KIOServices::isEnabled(const Accounts::AccountId accId, const QString &serviceName) { QString uniqueId(QString::number(accId) + "_" + serviceName); QString path = QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation); path += QStringLiteral("/remoteview/") + uniqueId + QStringLiteral(".desktop"); return QFile::exists(path); } + +#include "kioservices.moc" diff --git a/src/kded/kio-webdav/kioservices.h b/src/plugins/kio-webdav/kioservices.h similarity index 96% rename from src/kded/kio-webdav/kioservices.h rename to src/plugins/kio-webdav/kioservices.h index 42743f0..97145ea 100644 --- a/src/kded/kio-webdav/kioservices.h +++ b/src/plugins/kio-webdav/kioservices.h @@ -1,57 +1,58 @@ /************************************************************************************* * Copyright (C) 2013 by Alejandro Fiestas Olivares * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License * * as published by the Free Software Foundation; either version 2 * * of the License, or (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * *************************************************************************************/ #ifndef KIO_SERVICES_H #define KIO_SERVICES_H #include "kaccountsdplugin.h" #include #include #include #include #include class KJob; class AkonadiAccounts; namespace Accounts { class Manager; } class KIOServices : public KAccountsDPlugin { 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); void onAccountRemoved(const Accounts::AccountId accId); void onServiceEnabled(const Accounts::AccountId accId, const Accounts::Service &service); void onServiceDisabled(const Accounts::AccountId accId, const Accounts::Service &service); private: void enableService(const Accounts::AccountId accId, const Accounts::Service &service); void disableService(const Accounts::AccountId accId, const QString &serviceName); bool isEnabled(const Accounts::AccountId accId, const QString &serviceName); }; #endif //KIO_SERVICES_H diff --git a/src/kded/kio-webdav/removekioservice.cpp b/src/plugins/kio-webdav/removekioservice.cpp similarity index 99% rename from src/kded/kio-webdav/removekioservice.cpp rename to src/plugins/kio-webdav/removekioservice.cpp index 95fb7d8..bc063a9 100644 --- a/src/kded/kio-webdav/removekioservice.cpp +++ b/src/plugins/kio-webdav/removekioservice.cpp @@ -1,76 +1,74 @@ /************************************************************************************* * Copyright (C) 2013 by Alejandro Fiestas Olivares * * * * This program is free software; you can redistribute it and/or * * modify it under the terms of the GNU General Public License * * as published by the Free Software Foundation; either version 2 * * of the License, or (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the Free Software * * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA * *************************************************************************************/ #include "removekioservice.h" #include "removenetattachjob.h" #include #include -#include - RemoveKioService::RemoveKioService(QObject *parent) : KJob(parent) { } void RemoveKioService::start() { QMetaObject::invokeMethod(this, "removeKioService", Qt::QueuedConnection); } void RemoveKioService::removeKioService() { qDebug(); RemoveNetAttachJob *job = new RemoveNetAttachJob(this); job->setUniqueId(QString::number(m_accountId) + "_" + m_serviceName); connect(job, &RemoveNetAttachJob::finished, this, &RemoveKioService::removeNetAatachFinished); job->start(); } void RemoveKioService::removeNetAatachFinished(KJob *job) { qDebug(); if (job->error()) { setError(job->error()); setErrorText(job->errorText()); } emitResult(); } Accounts::AccountId RemoveKioService::accountId() const { return m_accountId; } void RemoveKioService::setAccountId(const Accounts::AccountId &accId) { m_accountId = accId; } QString RemoveKioService::serviceName() const { return m_serviceName; } void RemoveKioService::setServiceName(const QString &serviceName) { m_serviceName = serviceName; } diff --git a/src/kded/kio-webdav/removekioservice.h b/src/plugins/kio-webdav/removekioservice.h similarity index 100% rename from src/kded/kio-webdav/removekioservice.h rename to src/plugins/kio-webdav/removekioservice.h diff --git a/src/kded/kio-webdav/removenetattachjob.cpp b/src/plugins/kio-webdav/removenetattachjob.cpp similarity index 100% rename from src/kded/kio-webdav/removenetattachjob.cpp rename to src/plugins/kio-webdav/removenetattachjob.cpp diff --git a/src/kded/kio-webdav/removenetattachjob.h b/src/plugins/kio-webdav/removenetattachjob.h similarity index 100% rename from src/kded/kio-webdav/removenetattachjob.h rename to src/plugins/kio-webdav/removenetattachjob.h diff --git a/src/kded/kio-webdav/tests/CMakeLists.txt b/src/plugins/kio-webdav/tests/CMakeLists.txt similarity index 100% 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 similarity index 100% rename from src/kded/kio-webdav/tests/testnetattachjobs.cpp rename to src/plugins/kio-webdav/tests/testnetattachjobs.cpp