From 91eca666b5491041c2d095d599b75830c56530dc Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Thu, 10 Mar 2016 12:17:06 +0100 Subject: Removed unnecessary stuff from AccountFactory and load data from plugin metadata. --- framework/domain/accountfactory.cpp | 40 ++++++++++--------------------------- framework/domain/accountfactory.h | 22 ++++++++++---------- 2 files changed, 23 insertions(+), 39 deletions(-) diff --git a/framework/domain/accountfactory.cpp b/framework/domain/accountfactory.cpp index d54f70a2..af37710a 100644 --- a/framework/domain/accountfactory.cpp +++ b/framework/domain/accountfactory.cpp @@ -18,11 +18,11 @@ */ #include "accountfactory.h" -#include -#include #include #include +#include +#include AccountFactory::AccountFactory(QObject *parent) : QObject(parent) @@ -30,19 +30,11 @@ AccountFactory::AccountFactory(QObject *parent) } -QString AccountFactory::name() const +void AccountFactory::setAccountId(const QString &accountId) { - return "Maildir"; -} - -QString AccountFactory::icon() const -{ - return "icon"; -} - -QVariant AccountFactory::ui() const -{ - return createComponent(getAccountType()); + qWarning() << "setting account id: " << accountId; + mAccountId = accountId; + loadPackage(); } QByteArray AccountFactory::getAccountType() const @@ -50,23 +42,13 @@ QByteArray AccountFactory::getAccountType() const return "maildir"; } -QString AccountFactory::uiPath() const +void AccountFactory::loadPackage() { auto accountType = getAccountType(); auto package = KPackage::PackageLoader::self()->loadPackage("KPackage/GenericQML", "org.kube.accounts." + accountType); Q_ASSERT(package.isValid()); - return package.filePath("mainscript"); -} - -QVariant AccountFactory::createComponent(const QByteArray &accountType) const const -{ - qWarning() << "Trying to load accounts package " << accountType << mAccountId; - auto engine = qmlEngine(this); - Q_ASSERT(engine); - auto component = new QQmlComponent(engine, QUrl::fromLocalFile(uiPath()), QQmlComponent::PreferSynchronous); - for (const auto &error : component->errors()) { - qWarning() << error.toString(); - } - Q_ASSERT(component->isReady()); - return QVariant::fromValue(component); + mUiPath = package.filePath("mainscript"); + mName = package.metadata().name(); + mIcon = package.metadata().iconName(); + emit accountLoaded(); } diff --git a/framework/domain/accountfactory.h b/framework/domain/accountfactory.h index 0c6afe50..1da32885 100644 --- a/framework/domain/accountfactory.h +++ b/framework/domain/accountfactory.h @@ -28,21 +28,23 @@ class AccountFactory : public QObject { Q_OBJECT - Q_PROPERTY(QString accountId MEMBER mAccountId); - Q_PROPERTY(QString name READ name); - Q_PROPERTY(QString icon READ icon); - Q_PROPERTY(QVariant ui READ ui); - Q_PROPERTY(QString uiPath READ uiPath); + Q_PROPERTY(QString accountId MEMBER mAccountId WRITE setAccountId); + Q_PROPERTY(QString name MEMBER mName NOTIFY accountLoaded); + Q_PROPERTY(QString icon MEMBER mIcon NOTIFY accountLoaded); + Q_PROPERTY(QString uiPath MEMBER mUiPath NOTIFY accountLoaded); public: explicit AccountFactory(QObject *parent = Q_NULLPTR); - QString name() const; - QString icon() const; - QVariant ui() const; - QString uiPath() const; + void setAccountId(const QString &); + +signals: + void accountLoaded(); - Q_INVOKABLE QVariant createComponent(const QByteArray &accountType) const; private: + void loadPackage(); QByteArray getAccountType() const; QString mAccountId; + QString mName; + QString mIcon; + QString mUiPath; }; -- cgit v1.2.3