summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2017-12-19 09:38:53 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2017-12-19 09:38:53 +0100
commit1fc4fd0a0c067cb9900c8ebda273d65e0d140fd3 (patch)
tree4af7ccd0c6a9c23f86a826e9ea3b442ba3a0dd2b
parent3a19a67f5a8802ad0b69f3945ee5291fef51904a (diff)
downloadkube-1fc4fd0a0c067cb9900c8ebda273d65e0d140fd3.tar.gz
kube-1fc4fd0a0c067cb9900c8ebda273d65e0d140fd3.zip
Custom component metadata mechanism.
-rw-r--r--accounts/maildir/CMakeLists.txt1
-rw-r--r--accounts/maildir/metadata.json3
-rw-r--r--framework/src/CMakeLists.txt3
-rw-r--r--framework/src/accounts/accountfactory.cpp18
4 files changed, 17 insertions, 8 deletions
diff --git a/accounts/maildir/CMakeLists.txt b/accounts/maildir/CMakeLists.txt
index c396b6ba..76ae2c23 100644
--- a/accounts/maildir/CMakeLists.txt
+++ b/accounts/maildir/CMakeLists.txt
@@ -15,4 +15,5 @@ target_link_libraries(maildiraccountplugin
15) 15)
16 16
17install(TARGETS maildiraccountplugin DESTINATION ${QML_INSTALL_DIR}/org/kube/accounts/maildir) 17install(TARGETS maildiraccountplugin DESTINATION ${QML_INSTALL_DIR}/org/kube/accounts/maildir)
18install(FILES metadata.json DESTINATION ${QML_INSTALL_DIR}/org/kube/accounts/maildir)
18install_qml_account(maildir) 19install_qml_account(maildir)
diff --git a/accounts/maildir/metadata.json b/accounts/maildir/metadata.json
new file mode 100644
index 00000000..9f9f106e
--- /dev/null
+++ b/accounts/maildir/metadata.json
@@ -0,0 +1,3 @@
1{
2 "RequiresKeyring": false
3}
diff --git a/framework/src/CMakeLists.txt b/framework/src/CMakeLists.txt
index 09a4c22d..9d4e238e 100644
--- a/framework/src/CMakeLists.txt
+++ b/framework/src/CMakeLists.txt
@@ -12,9 +12,6 @@ set(CMAKE_CXX_VISIBILITY_PRESET default)
12 12
13include_directories(. domain/mime/mimetreeparser domain/ domain/mime) 13include_directories(. domain/mime/mimetreeparser domain/ domain/mime)
14 14
15set(SRCS
16)
17
18add_library(kubeframework SHARED 15add_library(kubeframework SHARED
19 settings/settings.cpp 16 settings/settings.cpp
20 domain/maillistmodel.cpp 17 domain/maillistmodel.cpp
diff --git a/framework/src/accounts/accountfactory.cpp b/framework/src/accounts/accountfactory.cpp
index 2babeb5d..5d3c35fc 100644
--- a/framework/src/accounts/accountfactory.cpp
+++ b/framework/src/accounts/accountfactory.cpp
@@ -21,6 +21,8 @@
21#include <QDebug> 21#include <QDebug>
22#include <QtQml> 22#include <QtQml>
23#include <QFileInfo> 23#include <QFileInfo>
24#include <QJsonDocument>
25#include <QFile>
24 26
25#include <sink/store.h> 27#include <sink/store.h>
26 28
@@ -60,16 +62,22 @@ void AccountFactory::loadPackage()
60 } 62 }
61 return QString{}; 63 return QString{};
62 }(); 64 }();
65 mUiPath.clear();
66 mLoginUi.clear();
67 mRequiresKeyring = false;
63 if (pluginPath.isEmpty()) { 68 if (pluginPath.isEmpty()) {
64 qWarning() << "Failed to load account package: " << "org.kube.accounts." + mAccountType; 69 qWarning() << "Failed to load account package: " << "org.kube.accounts." + mAccountType;
65 mUiPath.clear();
66 mLoginUi.clear();
67 mRequiresKeyring = true;
68 } else { 70 } else {
69 mUiPath = pluginPath + "/AccountSettings.qml"; 71 mUiPath = pluginPath + "/AccountSettings.qml";
70 mLoginUi = pluginPath + "/Login.qml"; 72 mLoginUi = pluginPath + "/Login.qml";
71 //FIXME 73 if (QFileInfo::exists(pluginPath + "/metadata.json")) {
72 mRequiresKeyring = true; 74 QFile file{pluginPath + "/metadata.json"};
75 file.open(QIODevice::ReadOnly);
76 auto json = QJsonDocument::fromJson(file.readAll());
77 mRequiresKeyring = json.object().value("RequiresKeyring").toBool(true);
78 } else {
79 mRequiresKeyring = true;
80 }
73 } 81 }
74 emit accountLoaded(); 82 emit accountLoaded();
75} 83}