From c7fe1d5ea43e7b47bc21eade4914623be935219b Mon Sep 17 00:00:00 2001 From: Christian Mollekopf Date: Sat, 18 Aug 2018 17:23:29 +0200 Subject: Account name from metadata.json --- accounts/generic/CMakeLists.txt | 1 + accounts/generic/metadata.json | 4 ++++ accounts/gmail/CMakeLists.txt | 1 + accounts/gmail/metadata.json | 4 ++++ accounts/imap/CMakeLists.txt | 1 + accounts/imap/metadata.json | 4 ++++ accounts/kolabnow/CMakeLists.txt | 1 + accounts/kolabnow/metadata.json | 4 ++++ accounts/maildir/metadata.json | 1 + components/accounts/qml/AccountWizard.qml | 6 +++++- framework/src/accounts/accountfactory.cpp | 3 +++ framework/src/accounts/accountfactory.h | 2 ++ 12 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 accounts/generic/metadata.json create mode 100644 accounts/gmail/metadata.json create mode 100644 accounts/imap/metadata.json create mode 100644 accounts/kolabnow/metadata.json diff --git a/accounts/generic/CMakeLists.txt b/accounts/generic/CMakeLists.txt index f609c2e1..5d485a67 100644 --- a/accounts/generic/CMakeLists.txt +++ b/accounts/generic/CMakeLists.txt @@ -20,4 +20,5 @@ target_link_libraries(genericaccountplugin ) install(TARGETS genericaccountplugin DESTINATION ${QML_INSTALL_DIR}/org/kube/accounts/generic) +install(FILES metadata.json DESTINATION ${QML_INSTALL_DIR}/org/kube/accounts/generic) install_qml_account(generic) diff --git a/accounts/generic/metadata.json b/accounts/generic/metadata.json new file mode 100644 index 00000000..d89b1b67 --- /dev/null +++ b/accounts/generic/metadata.json @@ -0,0 +1,4 @@ +{ + "Name": "Custom", + "RequiresKeyring": true +} diff --git a/accounts/gmail/CMakeLists.txt b/accounts/gmail/CMakeLists.txt index 42b95a45..f8baee04 100644 --- a/accounts/gmail/CMakeLists.txt +++ b/accounts/gmail/CMakeLists.txt @@ -15,4 +15,5 @@ target_link_libraries(gmailaccountplugin ) install(TARGETS gmailaccountplugin DESTINATION ${QML_INSTALL_DIR}/org/kube/accounts/gmail) +install(FILES metadata.json DESTINATION ${QML_INSTALL_DIR}/org/kube/accounts/gmail) install_qml_account(gmail) diff --git a/accounts/gmail/metadata.json b/accounts/gmail/metadata.json new file mode 100644 index 00000000..68c06971 --- /dev/null +++ b/accounts/gmail/metadata.json @@ -0,0 +1,4 @@ +{ + "Name": "GMail", + "RequiresKeyring": true +} diff --git a/accounts/imap/CMakeLists.txt b/accounts/imap/CMakeLists.txt index 97399490..80aa6a0c 100644 --- a/accounts/imap/CMakeLists.txt +++ b/accounts/imap/CMakeLists.txt @@ -20,4 +20,5 @@ target_link_libraries(imapaccountplugin ) install(TARGETS imapaccountplugin DESTINATION ${QML_INSTALL_DIR}/org/kube/accounts/imap) +install(FILES metadata.json DESTINATION ${QML_INSTALL_DIR}/org/kube/accounts/imap) install_qml_account(imap) diff --git a/accounts/imap/metadata.json b/accounts/imap/metadata.json new file mode 100644 index 00000000..f47e4792 --- /dev/null +++ b/accounts/imap/metadata.json @@ -0,0 +1,4 @@ +{ + "Name": "IMAP", + "RequiresKeyring": true +} diff --git a/accounts/kolabnow/CMakeLists.txt b/accounts/kolabnow/CMakeLists.txt index 92beab1c..a2eda818 100644 --- a/accounts/kolabnow/CMakeLists.txt +++ b/accounts/kolabnow/CMakeLists.txt @@ -15,4 +15,5 @@ target_link_libraries(kolabnowaccountplugin ) install(TARGETS kolabnowaccountplugin DESTINATION ${QML_INSTALL_DIR}/org/kube/accounts/kolabnow) +install(FILES metadata.json DESTINATION ${QML_INSTALL_DIR}/org/kube/accounts/kolabnow) install_qml_account(kolabnow) diff --git a/accounts/kolabnow/metadata.json b/accounts/kolabnow/metadata.json new file mode 100644 index 00000000..28c64235 --- /dev/null +++ b/accounts/kolabnow/metadata.json @@ -0,0 +1,4 @@ +{ + "Name": "Kolab Now", + "RequiresKeyring": true +} diff --git a/accounts/maildir/metadata.json b/accounts/maildir/metadata.json index 9f9f106e..8a674538 100644 --- a/accounts/maildir/metadata.json +++ b/accounts/maildir/metadata.json @@ -1,3 +1,4 @@ { + "Name": "Maildir", "RequiresKeyring": false } diff --git a/components/accounts/qml/AccountWizard.qml b/components/accounts/qml/AccountWizard.qml index b928fd8b..eb259aa6 100644 --- a/components/accounts/qml/AccountWizard.qml +++ b/components/accounts/qml/AccountWizard.qml @@ -72,8 +72,12 @@ Kube.Popup { delegate: Kube.Button { objectName: "accountTypeButton" + modelData Layout.fillWidth: true - text: modelData + text: accountFactory.accountName onClicked: stack.push(wizardPage.createObject(stack, {accountType:modelData})) + Kube.AccountFactory { + id: accountFactory + accountType: modelData + } } } } diff --git a/framework/src/accounts/accountfactory.cpp b/framework/src/accounts/accountfactory.cpp index 7f3f046d..c3c3a170 100644 --- a/framework/src/accounts/accountfactory.cpp +++ b/framework/src/accounts/accountfactory.cpp @@ -64,17 +64,20 @@ void AccountFactory::loadPackage() }(); mUiPath.clear(); mLoginUi.clear(); + mAccountName.clear(); mRequiresKeyring = false; if (pluginPath.isEmpty()) { qWarning() << "Failed to load account package: " << "org.kube.accounts." + mAccountType; } else { mUiPath = QUrl::fromLocalFile(pluginPath + "/AccountSettings.qml"); mLoginUi = QUrl::fromLocalFile(pluginPath + "/Login.qml"); + mAccountName = mAccountType; if (QFileInfo::exists(pluginPath + "/metadata.json")) { QFile file{pluginPath + "/metadata.json"}; file.open(QIODevice::ReadOnly); auto json = QJsonDocument::fromJson(file.readAll()); mRequiresKeyring = json.object().value("RequiresKeyring").toBool(true); + mAccountName = json.object().value("Name").toString(); } else { mRequiresKeyring = true; } diff --git a/framework/src/accounts/accountfactory.h b/framework/src/accounts/accountfactory.h index 10acfbc1..b183f8fe 100644 --- a/framework/src/accounts/accountfactory.h +++ b/framework/src/accounts/accountfactory.h @@ -32,6 +32,7 @@ class KUBE_EXPORT AccountFactory : public QObject Q_OBJECT Q_PROPERTY(QString accountId MEMBER mAccountId WRITE setAccountId); Q_PROPERTY(QString accountType MEMBER mAccountType WRITE setAccountType); + Q_PROPERTY(QString accountName MEMBER mAccountName NOTIFY accountLoaded); Q_PROPERTY(QUrl uiPath MEMBER mUiPath NOTIFY accountLoaded); Q_PROPERTY(QUrl loginUi MEMBER mLoginUi NOTIFY accountLoaded); Q_PROPERTY(bool requiresKeyring MEMBER mRequiresKeyring NOTIFY accountLoaded); @@ -47,6 +48,7 @@ signals: private: void loadPackage(); QString mAccountId; + QString mAccountName; QUrl mUiPath; QUrl mLoginUi; QByteArray mAccountType; -- cgit v1.2.3