From 1f62cf29d038e1dfd9bd56505ecaae10ca14b60b Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Mon, 18 Dec 2017 20:32:57 +0100 Subject: Accounts without kpackage --- framework/src/accounts/accountfactory.cpp | 44 +++++++++++++------------------ framework/src/accounts/accountfactory.h | 5 ---- 2 files changed, 19 insertions(+), 30 deletions(-) (limited to 'framework/src/accounts') diff --git a/framework/src/accounts/accountfactory.cpp b/framework/src/accounts/accountfactory.cpp index 1af07ac6..2babeb5d 100644 --- a/framework/src/accounts/accountfactory.cpp +++ b/framework/src/accounts/accountfactory.cpp @@ -19,12 +19,9 @@ #include "accountfactory.h" #include +#include +#include -#include -#include -#include - -#include "settings/settings.h" #include AccountFactory::AccountFactory(QObject *parent) @@ -32,14 +29,6 @@ AccountFactory::AccountFactory(QObject *parent) { } -QString AccountFactory::name() const -{ - if (mName.isEmpty()) { - return tr("Account"); - } - return mName; -} - void AccountFactory::setAccountId(const QString &accountId) { mAccountId = accountId; @@ -60,22 +49,27 @@ void AccountFactory::setAccountType(const QString &type) void AccountFactory::loadPackage() { - auto package = KPackage::PackageLoader::self()->loadPackage("KPackage/GenericQML", "org.kube.accounts." + mAccountType); - if (!package.isValid()) { + auto engine = QtQml::qmlEngine(this); + Q_ASSERT(engine); + const QString pluginPath = [&] { + for (const auto &p : engine->importPathList()) { + const auto path = p + QString::fromLatin1("/org/kube/accounts/") + mAccountType; + if (QFileInfo::exists(path)) { + return path; + } + } + return QString{}; + }(); + if (pluginPath.isEmpty()) { qWarning() << "Failed to load account package: " << "org.kube.accounts." + mAccountType; mUiPath.clear(); mLoginUi.clear(); - mName.clear(); - mIcon.clear(); mRequiresKeyring = true; - emit accountLoaded(); - return; + } else { + mUiPath = pluginPath + "/AccountSettings.qml"; + mLoginUi = pluginPath + "/Login.qml"; + //FIXME + mRequiresKeyring = true; } - Q_ASSERT(package.isValid()); - mUiPath = package.filePath("mainscript"); - mLoginUi = package.filePath("ui", "Login.qml"); - mName = package.metadata().name(); - mIcon = package.metadata().iconName(); - mRequiresKeyring = package.metadata().value("X-KDE-Kube-RequiresKeyring", "True").toLower() == "true"; emit accountLoaded(); } diff --git a/framework/src/accounts/accountfactory.h b/framework/src/accounts/accountfactory.h index f49d475c..429559a1 100644 --- a/framework/src/accounts/accountfactory.h +++ b/framework/src/accounts/accountfactory.h @@ -30,8 +30,6 @@ class AccountFactory : public QObject Q_OBJECT Q_PROPERTY(QString accountId MEMBER mAccountId WRITE setAccountId); Q_PROPERTY(QString accountType MEMBER mAccountType WRITE setAccountType); - Q_PROPERTY(QString name MEMBER mName READ name NOTIFY accountLoaded); - Q_PROPERTY(QString icon MEMBER mIcon NOTIFY accountLoaded); Q_PROPERTY(QString uiPath MEMBER mUiPath NOTIFY accountLoaded); Q_PROPERTY(QString loginUi MEMBER mLoginUi NOTIFY accountLoaded); Q_PROPERTY(bool requiresKeyring MEMBER mRequiresKeyring NOTIFY accountLoaded); @@ -40,7 +38,6 @@ public: void setAccountId(const QString &); void setAccountType(const QString &); - QString name() const; signals: void accountLoaded(); @@ -48,8 +45,6 @@ signals: private: void loadPackage(); QString mAccountId; - QString mName; - QString mIcon; QString mUiPath; QString mLoginUi; QByteArray mAccountType; -- cgit v1.2.3