summaryrefslogtreecommitdiffstats
path: root/framework/src
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src')
-rw-r--r--framework/src/CMakeLists.txt2
-rw-r--r--framework/src/accounts/accountfactory.cpp44
-rw-r--r--framework/src/accounts/accountfactory.h5
3 files changed, 19 insertions, 32 deletions
diff --git a/framework/src/CMakeLists.txt b/framework/src/CMakeLists.txt
index 2febf91b..09a4c22d 100644
--- a/framework/src/CMakeLists.txt
+++ b/framework/src/CMakeLists.txt
@@ -5,7 +5,6 @@ find_package(Sink CONFIG REQUIRED)
5find_package(KAsync CONFIG REQUIRED) 5find_package(KAsync CONFIG REQUIRED)
6find_package(QGpgme CONFIG REQUIRED) 6find_package(QGpgme CONFIG REQUIRED)
7find_package(KF5Codecs CONFIG REQUIRED) 7find_package(KF5Codecs CONFIG REQUIRED)
8find_package(KF5Package CONFIG REQUIRED)
9find_package(KF5Contacts CONFIG REQUIRED) 8find_package(KF5Contacts CONFIG REQUIRED)
10 9
11add_definitions("-Wall -std=c++0x -g") 10add_definitions("-Wall -std=c++0x -g")
@@ -62,7 +61,6 @@ target_link_libraries(kubeframework
62 Qt5::WebEngine 61 Qt5::WebEngine
63 KF5::Codecs 62 KF5::Codecs
64 KF5::Contacts 63 KF5::Contacts
65 KF5::Package
66 KAsync 64 KAsync
67 QGpgme 65 QGpgme
68) 66)
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 @@
19#include "accountfactory.h" 19#include "accountfactory.h"
20 20
21#include <QDebug> 21#include <QDebug>
22#include <QtQml>
23#include <QFileInfo>
22 24
23#include <KPackage/PackageLoader>
24#include <KPackage/Package>
25#include <KPluginMetaData>
26
27#include "settings/settings.h"
28#include <sink/store.h> 25#include <sink/store.h>
29 26
30AccountFactory::AccountFactory(QObject *parent) 27AccountFactory::AccountFactory(QObject *parent)
@@ -32,14 +29,6 @@ AccountFactory::AccountFactory(QObject *parent)
32{ 29{
33} 30}
34 31
35QString AccountFactory::name() const
36{
37 if (mName.isEmpty()) {
38 return tr("Account");
39 }
40 return mName;
41}
42
43void AccountFactory::setAccountId(const QString &accountId) 32void AccountFactory::setAccountId(const QString &accountId)
44{ 33{
45 mAccountId = accountId; 34 mAccountId = accountId;
@@ -60,22 +49,27 @@ void AccountFactory::setAccountType(const QString &type)
60 49
61void AccountFactory::loadPackage() 50void AccountFactory::loadPackage()
62{ 51{
63 auto package = KPackage::PackageLoader::self()->loadPackage("KPackage/GenericQML", "org.kube.accounts." + mAccountType); 52 auto engine = QtQml::qmlEngine(this);
64 if (!package.isValid()) { 53 Q_ASSERT(engine);
54 const QString pluginPath = [&] {
55 for (const auto &p : engine->importPathList()) {
56 const auto path = p + QString::fromLatin1("/org/kube/accounts/") + mAccountType;
57 if (QFileInfo::exists(path)) {
58 return path;
59 }
60 }
61 return QString{};
62 }();
63 if (pluginPath.isEmpty()) {
65 qWarning() << "Failed to load account package: " << "org.kube.accounts." + mAccountType; 64 qWarning() << "Failed to load account package: " << "org.kube.accounts." + mAccountType;
66 mUiPath.clear(); 65 mUiPath.clear();
67 mLoginUi.clear(); 66 mLoginUi.clear();
68 mName.clear();
69 mIcon.clear();
70 mRequiresKeyring = true; 67 mRequiresKeyring = true;
71 emit accountLoaded(); 68 } else {
72 return; 69 mUiPath = pluginPath + "/AccountSettings.qml";
70 mLoginUi = pluginPath + "/Login.qml";
71 //FIXME
72 mRequiresKeyring = true;
73 } 73 }
74 Q_ASSERT(package.isValid());
75 mUiPath = package.filePath("mainscript");
76 mLoginUi = package.filePath("ui", "Login.qml");
77 mName = package.metadata().name();
78 mIcon = package.metadata().iconName();
79 mRequiresKeyring = package.metadata().value("X-KDE-Kube-RequiresKeyring", "True").toLower() == "true";
80 emit accountLoaded(); 74 emit accountLoaded();
81} 75}
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
30 Q_OBJECT 30 Q_OBJECT
31 Q_PROPERTY(QString accountId MEMBER mAccountId WRITE setAccountId); 31 Q_PROPERTY(QString accountId MEMBER mAccountId WRITE setAccountId);
32 Q_PROPERTY(QString accountType MEMBER mAccountType WRITE setAccountType); 32 Q_PROPERTY(QString accountType MEMBER mAccountType WRITE setAccountType);
33 Q_PROPERTY(QString name MEMBER mName READ name NOTIFY accountLoaded);
34 Q_PROPERTY(QString icon MEMBER mIcon NOTIFY accountLoaded);
35 Q_PROPERTY(QString uiPath MEMBER mUiPath NOTIFY accountLoaded); 33 Q_PROPERTY(QString uiPath MEMBER mUiPath NOTIFY accountLoaded);
36 Q_PROPERTY(QString loginUi MEMBER mLoginUi NOTIFY accountLoaded); 34 Q_PROPERTY(QString loginUi MEMBER mLoginUi NOTIFY accountLoaded);
37 Q_PROPERTY(bool requiresKeyring MEMBER mRequiresKeyring NOTIFY accountLoaded); 35 Q_PROPERTY(bool requiresKeyring MEMBER mRequiresKeyring NOTIFY accountLoaded);
@@ -40,7 +38,6 @@ public:
40 38
41 void setAccountId(const QString &); 39 void setAccountId(const QString &);
42 void setAccountType(const QString &); 40 void setAccountType(const QString &);
43 QString name() const;
44 41
45signals: 42signals:
46 void accountLoaded(); 43 void accountLoaded();
@@ -48,8 +45,6 @@ signals:
48private: 45private:
49 void loadPackage(); 46 void loadPackage();
50 QString mAccountId; 47 QString mAccountId;
51 QString mName;
52 QString mIcon;
53 QString mUiPath; 48 QString mUiPath;
54 QString mLoginUi; 49 QString mLoginUi;
55 QByteArray mAccountType; 50 QByteArray mAccountType;