summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2017-04-05 13:00:21 +0200
committerChristian Mollekopf <chrigi_1@fastmail.fm>2017-04-05 13:00:21 +0200
commit5755ad47145d2985ba74354961b4127d82c516f6 (patch)
treeaa6af562b7e587be895ff5a4355270f82f3ea180
parente78224a7d9ccf70aadde8c0bff1cab72e8cb7438 (diff)
downloadkube-5755ad47145d2985ba74354961b4127d82c516f6.tar.gz
kube-5755ad47145d2985ba74354961b4127d82c516f6.zip
A single framework plugin
-rw-r--r--accounts/gmail/CMakeLists.txt2
-rw-r--r--accounts/gmail/package/contents/ui/GmailSettings.qml1
-rw-r--r--accounts/imap/CMakeLists.txt4
-rw-r--r--accounts/imap/package/contents/ui/ImapAccountSettings.qml1
-rw-r--r--accounts/kolabnow/CMakeLists.txt4
-rw-r--r--accounts/kolabnow/package/contents/ui/KolabnowAccountSettings.qml1
-rw-r--r--accounts/maildir/CMakeLists.txt4
-rw-r--r--accounts/maildir/package/contents/ui/MaildirAccountSettings.qml7
-rw-r--r--components/CMakeLists.txt1
-rw-r--r--components/accounts/contents/ui/AccountWizard.qml4
-rw-r--r--components/accounts/contents/ui/AccountWizardPage.qml21
-rw-r--r--components/accounts/contents/ui/CreateGmail.qml18
-rw-r--r--components/mail/contents/ui/Mail.qml116
-rw-r--r--components/mailviewer/contents/ui/TextContent.qml3
-rw-r--r--framework/CMakeLists.txt61
-rw-r--r--framework/accounts/accountsplugin.cpp1
-rw-r--r--framework/actions/actionplugin.cpp1
-rw-r--r--framework/domain/CMakeLists.txt2
-rw-r--r--framework/domain/actions/tests/CMakeLists.txt2
-rw-r--r--framework/domain/mailplugin.cpp2
-rw-r--r--framework/frameworkplugin.cpp72
-rw-r--r--framework/frameworkplugin.h33
-rw-r--r--framework/notifications/notificationplugin.cpp1
-rw-r--r--framework/qml/AccountSwitcher.qml25
-rw-r--r--framework/qml/AttachmentDelegate.qml7
-rw-r--r--framework/qml/AutocompleteLineEdit.qml7
-rw-r--r--framework/qml/Button.qml5
-rw-r--r--framework/qml/ConversationView.qml116
-rw-r--r--framework/qml/EditAccount.qml9
-rw-r--r--framework/qml/EditAccountDialog.qml4
-rw-r--r--framework/qml/FocusComposer.qml4
-rw-r--r--framework/qml/FolderListView.qml44
-rw-r--r--framework/qml/MailListView.qml67
-rw-r--r--framework/qml/MailViewer.qml4
-rw-r--r--framework/qml/NotificationPopup.qml (renamed from framework/qml/Notification.qml)5
-rw-r--r--framework/qml/Outbox.qml33
-rw-r--r--framework/qml/OverlayDialog.qml5
-rw-r--r--framework/qml/People.qml112
-rw-r--r--framework/qml/PositiveButton.qml11
-rw-r--r--framework/qmldir8
-rw-r--r--framework/settings/settingsplugin.cpp1
41 files changed, 468 insertions, 361 deletions
diff --git a/accounts/gmail/CMakeLists.txt b/accounts/gmail/CMakeLists.txt
index 8c6a8f61..ca9bcae7 100644
--- a/accounts/gmail/CMakeLists.txt
+++ b/accounts/gmail/CMakeLists.txt
@@ -37,7 +37,7 @@ set(SRCS
37 37
38add_library(gmailaccountplugin SHARED ${SRCS}) 38add_library(gmailaccountplugin SHARED ${SRCS})
39qt5_use_modules(gmailaccountplugin Core Quick Qml) 39qt5_use_modules(gmailaccountplugin Core Quick Qml)
40target_link_libraries(gmailaccountplugin sink settingsplugin mailplugin) 40target_link_libraries(gmailaccountplugin sink frameworkplugin)
41 41
42kpackage_install_package(package org.kube.accounts.gmail "genericqml") 42kpackage_install_package(package org.kube.accounts.gmail "genericqml")
43 43
diff --git a/accounts/gmail/package/contents/ui/GmailSettings.qml b/accounts/gmail/package/contents/ui/GmailSettings.qml
index 33dafe8d..ea6ac9e3 100644
--- a/accounts/gmail/package/contents/ui/GmailSettings.qml
+++ b/accounts/gmail/package/contents/ui/GmailSettings.qml
@@ -23,7 +23,6 @@ import QtQuick.Layouts 1.1
23 23
24import org.kde.kirigami 1.0 as Kirigami 24import org.kde.kirigami 1.0 as Kirigami
25 25
26import org.kube.framework.settings 1.0 as KubeSettings
27import org.kube.accounts.gmail 1.0 as GmailAccount 26import org.kube.accounts.gmail 1.0 as GmailAccount
28 27
29Item { 28Item {
diff --git a/accounts/imap/CMakeLists.txt b/accounts/imap/CMakeLists.txt
index f6c4a49e..ecaae493 100644
--- a/accounts/imap/CMakeLists.txt
+++ b/accounts/imap/CMakeLists.txt
@@ -37,11 +37,11 @@ set(SRCS
37 37
38add_library(imapaccountplugin SHARED ${SRCS}) 38add_library(imapaccountplugin SHARED ${SRCS})
39qt5_use_modules(imapaccountplugin Core Quick Qml) 39qt5_use_modules(imapaccountplugin Core Quick Qml)
40target_link_libraries(imapaccountplugin sink settingsplugin mailplugin) 40target_link_libraries(imapaccountplugin sink frameworkplugin)
41 41
42add_library(imapaccount_static STATIC ${SRCS}) 42add_library(imapaccount_static STATIC ${SRCS})
43qt5_use_modules(imapaccount_static Core Quick Qml) 43qt5_use_modules(imapaccount_static Core Quick Qml)
44target_link_libraries(imapaccount_static sink settingsplugin mailplugin) 44target_link_libraries(imapaccount_static sink frameworkplugin)
45add_subdirectory(tests) 45add_subdirectory(tests)
46 46
47kpackage_install_package(package org.kube.accounts.imap "genericqml") 47kpackage_install_package(package org.kube.accounts.imap "genericqml")
diff --git a/accounts/imap/package/contents/ui/ImapAccountSettings.qml b/accounts/imap/package/contents/ui/ImapAccountSettings.qml
index e7834368..b448ac3c 100644
--- a/accounts/imap/package/contents/ui/ImapAccountSettings.qml
+++ b/accounts/imap/package/contents/ui/ImapAccountSettings.qml
@@ -23,7 +23,6 @@ import QtQuick.Layouts 1.1
23 23
24import org.kde.kirigami 1.0 as Kirigami 24import org.kde.kirigami 1.0 as Kirigami
25 25
26import org.kube.framework.settings 1.0 as KubeSettings
27import org.kube.accounts.imap 1.0 as ImapAccount 26import org.kube.accounts.imap 1.0 as ImapAccount
28 27
29Item { 28Item {
diff --git a/accounts/kolabnow/CMakeLists.txt b/accounts/kolabnow/CMakeLists.txt
index 1167db71..6dd264ce 100644
--- a/accounts/kolabnow/CMakeLists.txt
+++ b/accounts/kolabnow/CMakeLists.txt
@@ -37,11 +37,11 @@ set(SRCS
37 37
38add_library(kolabnowaccountplugin SHARED ${SRCS}) 38add_library(kolabnowaccountplugin SHARED ${SRCS})
39qt5_use_modules(kolabnowaccountplugin Core Quick Qml) 39qt5_use_modules(kolabnowaccountplugin Core Quick Qml)
40target_link_libraries(kolabnowaccountplugin sink settingsplugin mailplugin) 40target_link_libraries(kolabnowaccountplugin sink frameworkplugin)
41 41
42add_library(kolabnowaccount_static STATIC ${SRCS}) 42add_library(kolabnowaccount_static STATIC ${SRCS})
43qt5_use_modules(kolabnowaccount_static Core Quick Qml) 43qt5_use_modules(kolabnowaccount_static Core Quick Qml)
44target_link_libraries(kolabnowaccount_static sink settingsplugin mailplugin) 44target_link_libraries(kolabnowaccount_static sink frameworkplugin)
45# add_subdirectory(tests) 45# add_subdirectory(tests)
46 46
47kpackage_install_package(package org.kube.accounts.kolabnow "genericqml") 47kpackage_install_package(package org.kube.accounts.kolabnow "genericqml")
diff --git a/accounts/kolabnow/package/contents/ui/KolabnowAccountSettings.qml b/accounts/kolabnow/package/contents/ui/KolabnowAccountSettings.qml
index 46d197fa..2cb4086f 100644
--- a/accounts/kolabnow/package/contents/ui/KolabnowAccountSettings.qml
+++ b/accounts/kolabnow/package/contents/ui/KolabnowAccountSettings.qml
@@ -23,7 +23,6 @@ import QtQuick.Layouts 1.1
23 23
24import org.kde.kirigami 1.0 as Kirigami 24import org.kde.kirigami 1.0 as Kirigami
25 25
26import org.kube.framework.settings 1.0 as KubeSettings
27import org.kube.accounts.kolabnow 1.0 as KolabnowAccount 26import org.kube.accounts.kolabnow 1.0 as KolabnowAccount
28 27
29Item { 28Item {
diff --git a/accounts/maildir/CMakeLists.txt b/accounts/maildir/CMakeLists.txt
index afdf660d..cb93551d 100644
--- a/accounts/maildir/CMakeLists.txt
+++ b/accounts/maildir/CMakeLists.txt
@@ -37,11 +37,11 @@ set(SRCS
37 37
38add_library(maildiraccountplugin SHARED ${SRCS}) 38add_library(maildiraccountplugin SHARED ${SRCS})
39qt5_use_modules(maildiraccountplugin Core Quick Qml) 39qt5_use_modules(maildiraccountplugin Core Quick Qml)
40target_link_libraries(maildiraccountplugin sink settingsplugin mailplugin) 40target_link_libraries(maildiraccountplugin sink frameworkplugin)
41 41
42add_library(maildiraccount_static STATIC ${SRCS}) 42add_library(maildiraccount_static STATIC ${SRCS})
43qt5_use_modules(maildiraccount_static Core Quick Qml) 43qt5_use_modules(maildiraccount_static Core Quick Qml)
44target_link_libraries(maildiraccount_static sink settingsplugin mailplugin) 44target_link_libraries(maildiraccount_static sink frameworkplugin)
45add_subdirectory(tests) 45add_subdirectory(tests)
46 46
47kpackage_install_package(package org.kube.accounts.maildir "genericqml") 47kpackage_install_package(package org.kube.accounts.maildir "genericqml")
diff --git a/accounts/maildir/package/contents/ui/MaildirAccountSettings.qml b/accounts/maildir/package/contents/ui/MaildirAccountSettings.qml
index 2e7b6d8a..f191c82c 100644
--- a/accounts/maildir/package/contents/ui/MaildirAccountSettings.qml
+++ b/accounts/maildir/package/contents/ui/MaildirAccountSettings.qml
@@ -25,7 +25,6 @@ import QtQuick.Dialogs 1.0 as Dialogs
25 25
26import org.kde.kirigami 1.0 as Kirigami 26import org.kde.kirigami 1.0 as Kirigami
27 27
28import org.kube.framework.settings 1.0 as KubeSettings
29import org.kube.accounts.maildir 1.0 as MaildirAccount 28import org.kube.accounts.maildir 1.0 as MaildirAccount
30 29
31Item { 30Item {
@@ -57,8 +56,8 @@ Item {
57 fill: parent 56 fill: parent
58 } 57 }
59 columns: 2 58 columns: 2
60 columnSpacing: KubeTheme.Units.largeSpacing 59 columnSpacing: Kube.Units.largeSpacing
61 rowSpacing: KubeTheme.Units.largeSpacing 60 rowSpacing: Kube.Units.largeSpacing
62 61
63 Controls.Label { 62 Controls.Label {
64 text: "Title of Account" 63 text: "Title of Account"
@@ -88,7 +87,7 @@ Item {
88 } 87 }
89 88
90 Controls.Button { 89 Controls.Button {
91 iconName: KubeTheme.Icons.folder 90 iconName: Kube.Icons.folder
92 91
93 onClicked: { 92 onClicked: {
94 fileDialogComponent.createObject(parent) 93 fileDialogComponent.createObject(parent)
diff --git a/components/CMakeLists.txt b/components/CMakeLists.txt
index e0b64501..e339a700 100644
--- a/components/CMakeLists.txt
+++ b/components/CMakeLists.txt
@@ -32,4 +32,3 @@ endmacro(install_component)
32install_component(mail) 32install_component(mail)
33install_component(accounts) 33install_component(accounts)
34install_component(mailviewer) 34install_component(mailviewer)
35install_component(theme)
diff --git a/components/accounts/contents/ui/AccountWizard.qml b/components/accounts/contents/ui/AccountWizard.qml
index 802f44a3..877a9d33 100644
--- a/components/accounts/contents/ui/AccountWizard.qml
+++ b/components/accounts/contents/ui/AccountWizard.qml
@@ -20,7 +20,7 @@ import QtQuick 2.7
20import QtQuick.Layouts 1.1 20import QtQuick.Layouts 1.1
21import QtQuick.Controls 2.0 as Controls2 21import QtQuick.Controls 2.0 as Controls2
22import org.kde.kirigami 1.0 as Kirigami 22import org.kde.kirigami 1.0 as Kirigami
23import org.kube.components.theme 1.0 as KubeTheme 23import org.kube.framework 1.0 as Kube
24 24
25Controls2.Popup { 25Controls2.Popup {
26 id: popup 26 id: popup
@@ -50,7 +50,7 @@ Controls2.Popup {
50 Kirigami.Heading { 50 Kirigami.Heading {
51 id: heading 51 id: heading
52 text: "Select your new account type" 52 text: "Select your new account type"
53 color: KubeTheme.Colors.highlightColor 53 color: Kube.Colors.highlightColor
54 } 54 }
55 55
56 ColumnLayout { 56 ColumnLayout {
diff --git a/components/accounts/contents/ui/AccountWizardPage.qml b/components/accounts/contents/ui/AccountWizardPage.qml
index 034c8fd5..a4dc7e25 100644
--- a/components/accounts/contents/ui/AccountWizardPage.qml
+++ b/components/accounts/contents/ui/AccountWizardPage.qml
@@ -22,21 +22,20 @@ import QtQuick.Layouts 1.1
22import QtQuick.Controls 1.4 as Controls 22import QtQuick.Controls 1.4 as Controls
23import QtQuick.Controls 2.0 as Controls2 23import QtQuick.Controls 2.0 as Controls2
24import org.kde.kirigami 1.0 as Kirigami 24import org.kde.kirigami 1.0 as Kirigami
25import org.kube.framework 1.0 as Kube
25 26
26import org.kube.framework.accounts 1.0 as KubeAccounts
27import org.kube.components.theme 1.0 as KubeTheme
28 27
29Item { 28Item {
30 id: root 29 id: root
31 property string accountType 30 property string accountType
32 31
33 KubeAccounts.AccountFactory { 32 Kube.AccountFactory {
34 id: accountFactory 33 id: accountFactory
35 accountType: root.accountType 34 accountType: root.accountType
36 } 35 }
37 36
38 Controls.ToolButton { 37 Controls.ToolButton {
39 iconName: KubeTheme.Icons.goBack 38 iconName: Kube.Icons.goBack
40 tooltip: "go back" 39 tooltip: "go back"
41 onClicked: { 40 onClicked: {
42 stack.pop() 41 stack.pop()
@@ -48,13 +47,13 @@ Item {
48 47
49 anchors { 48 anchors {
50 fill: parent 49 fill: parent
51 margins: KubeTheme.Units.largeSpacing * 2 50 margins: Kube.Units.largeSpacing * 2
52 } 51 }
53 52
54 Kirigami.Heading { 53 Kirigami.Heading {
55 id: heading 54 id: heading
56 text: loader.item.heading 55 text: loader.item.heading
57 color: KubeTheme.Colors.highlightColor 56 color: Kube.Colors.highlightColor
58 } 57 }
59 58
60 Kirigami.Label { 59 Kirigami.Label {
@@ -67,7 +66,7 @@ Item {
67 66
68 width: parent.width 67 width: parent.width
69 text: loader.item.subheadline 68 text: loader.item.subheadline
70 color: KubeTheme.Colors.disabledTextColor 69 color: Kube.Colors.disabledTextColor
71 wrapMode: Text.Wrap 70 wrapMode: Text.Wrap
72 } 71 }
73 72
@@ -77,7 +76,7 @@ Item {
77 top:subHeadline.bottom 76 top:subHeadline.bottom
78 left: parent.left 77 left: parent.left
79 right: parent.right 78 right: parent.right
80 topMargin: KubeTheme.Units.largeSpacing * 2 79 topMargin: Kube.Units.largeSpacing * 2
81 } 80 }
82 81
83 Loader { 82 Loader {
@@ -105,12 +104,12 @@ Item {
105 bottom: parent.bottom 104 bottom: parent.bottom
106 left: parent.left 105 left: parent.left
107 right: parent.right 106 right: parent.right
108 topMargin: KubeTheme.Units.largeSpacing * 2 107 topMargin: Kube.Units.largeSpacing * 2
109 } 108 }
110 109
111 columns: 2 110 columns: 2
112 columnSpacing: KubeTheme.Units.largeSpacing 111 columnSpacing: Kube.Units.largeSpacing
113 rowSpacing: KubeTheme.Units.largeSpacing 112 rowSpacing: Kube.Units.largeSpacing
114 113
115 Item { 114 Item {
116 Layout.fillHeight: true 115 Layout.fillHeight: true
diff --git a/components/accounts/contents/ui/CreateGmail.qml b/components/accounts/contents/ui/CreateGmail.qml
index 2b29f9ee..f16cd027 100644
--- a/components/accounts/contents/ui/CreateGmail.qml
+++ b/components/accounts/contents/ui/CreateGmail.qml
@@ -22,17 +22,15 @@ import QtQuick.Controls 1.4 as Controls
22import QtQuick.Controls 2.0 as Controls2 22import QtQuick.Controls 2.0 as Controls2
23import org.kde.kirigami 1.0 as Kirigami 23import org.kde.kirigami 1.0 as Kirigami
24 24
25import org.kube.framework.accounts 1.0 as KubeAccounts
26import org.kube.components.theme 1.0 as KubeTheme
27 25
28Item { 26Item {
29 27
30 KubeAccounts.GmailController { 28 Kube.GmailController {
31 id: account 29 id: account
32 } 30 }
33 31
34 Controls.ToolButton { 32 Controls.ToolButton {
35 iconName: KubeTheme.Icons.goBack 33 iconName: Kube.Icons.goBack
36 34
37 tooltip: "go back" 35 tooltip: "go back"
38 36
@@ -46,14 +44,14 @@ Item {
46 44
47 anchors { 45 anchors {
48 fill: parent 46 fill: parent
49 margins: KubeTheme.Units.largeSpacing * 2 47 margins: Kube.Units.largeSpacing * 2
50 } 48 }
51 49
52 Kirigami.Heading { 50 Kirigami.Heading {
53 id: heading 51 id: heading
54 text: "Connect your Gmail account" 52 text: "Connect your Gmail account"
55 53
56 color: KubeTheme.Colors.highlightColor 54 color: Kube.Colors.highlightColor
57 } 55 }
58 56
59 Kirigami.Label { 57 Kirigami.Label {
@@ -68,7 +66,7 @@ Item {
68 66
69 text: "To let Kube access your account, fill in email address, username, password and give the account a title that will be displayed inside Kube." 67 text: "To let Kube access your account, fill in email address, username, password and give the account a title that will be displayed inside Kube."
70 68
71 color: KubeTheme.Colors.disabledTextColor 69 color: Kube.Colors.disabledTextColor
72 70
73 wrapMode: Text.Wrap 71 wrapMode: Text.Wrap
74 } 72 }
@@ -79,12 +77,12 @@ Item {
79 bottom: parent.bottom 77 bottom: parent.bottom
80 left: parent.left 78 left: parent.left
81 right: parent.right 79 right: parent.right
82 topMargin: KubeTheme.Units.largeSpacing * 2 80 topMargin: Kube.Units.largeSpacing * 2
83 } 81 }
84 82
85 columns: 2 83 columns: 2
86 columnSpacing: KubeTheme.Units.largeSpacing 84 columnSpacing: Kube.Units.largeSpacing
87 rowSpacing: KubeTheme.Units.largeSpacing 85 rowSpacing: Kube.Units.largeSpacing
88 86
89 Controls.Label { 87 Controls.Label {
90 text: "Title of Account" 88 text: "Title of Account"
diff --git a/components/mail/contents/ui/Mail.qml b/components/mail/contents/ui/Mail.qml
index c7491d36..7cabf9a9 100644
--- a/components/mail/contents/ui/Mail.qml
+++ b/components/mail/contents/ui/Mail.qml
@@ -23,14 +23,8 @@ import QtQuick.Layouts 1.1
23 23
24import QtQuick.Controls 2.0 as Controls2 24import QtQuick.Controls 2.0 as Controls2
25 25
26import org.kube.framework.actions 1.0 as KubeAction 26import org.kube.framework 1.0 as Kube
27import org.kube.framework.settings 1.0 as KubeSettings
28import org.kube.framework.domain 1.0 as KubeFramework
29import org.kube.framework.notifications 1.0 as KubeNotifications
30import org.kube.framework.accounts 1.0 as KubeAccountsFramework
31import org.kube.components 1.0 as KubeComponents
32import org.kube.components.accounts 1.0 as KubeAccounts 27import org.kube.components.accounts 1.0 as KubeAccounts
33import org.kube.components.theme 1.0 as KubeTheme
34 28
35Controls2.ApplicationWindow { 29Controls2.ApplicationWindow {
36 id: app 30 id: app
@@ -42,11 +36,11 @@ Controls2.ApplicationWindow {
42 36
43 visible: true 37 visible: true
44 38
45 KubeNotifications.NotificationHandler { 39 Kube.NotificationHandler {
46 id: notificationHandler 40 id: notificationHandler
47 function handler(n) { 41 function handler(n) {
48 console.warn("We got a notification: ", n.message) 42 console.warn("We got a notification: ", n.message)
49 if (n.type == KubeNotifications.Notification.Warning) { 43 if (n.type == Kube.Notification.Warning) {
50 console.warn("And it's a warning!", n.type) 44 console.warn("And it's a warning!", n.type)
51 } 45 }
52 notificationPopup.notify(n.message); 46 notificationPopup.notify(n.message);
@@ -54,7 +48,7 @@ Controls2.ApplicationWindow {
54 } 48 }
55 49
56 //BEGIN Actions 50 //BEGIN Actions
57 KubeAction.Context { 51 Kube.Context {
58 id: maillistcontext 52 id: maillistcontext
59 property variant mail 53 property variant mail
60 property bool isDraft 54 property bool isDraft
@@ -62,7 +56,7 @@ Controls2.ApplicationWindow {
62 isDraft: mailListView.isDraft 56 isDraft: mailListView.isDraft
63 } 57 }
64 58
65 KubeAction.Action { 59 Kube.Action {
66 id: replyAction 60 id: replyAction
67 actionId: "org.kde.kube.actions.reply" 61 actionId: "org.kde.kube.actions.reply"
68 context: maillistcontext 62 context: maillistcontext
@@ -70,7 +64,7 @@ Controls2.ApplicationWindow {
70 //END Actions 64 //END Actions
71 65
72 //BEGIN ActionHandler 66 //BEGIN ActionHandler
73 KubeAction.ActionHandler { 67 Kube.ActionHandler {
74 actionId: "org.kde.kube.actions.reply" 68 actionId: "org.kde.kube.actions.reply"
75 function isReady(context) { 69 function isReady(context) {
76 return context.mail ? true : false; 70 return context.mail ? true : false;
@@ -82,7 +76,7 @@ Controls2.ApplicationWindow {
82 } 76 }
83 } 77 }
84 78
85 KubeAction.ActionHandler { 79 Kube.ActionHandler {
86 actionId: "org.kde.kube.actions.edit" 80 actionId: "org.kde.kube.actions.edit"
87 function isReady(context) { 81 function isReady(context) {
88 return context.mail && context.isDraft; 82 return context.mail && context.isDraft;
@@ -95,7 +89,7 @@ Controls2.ApplicationWindow {
95 //END ActionHandler 89 //END ActionHandler
96 90
97 //Controller 91 //Controller
98 KubeFramework.MailController { 92 Kube.MailController {
99 id: mailController 93 id: mailController
100 Binding on threadLeader { 94 Binding on threadLeader {
101 //!! checks for the availability of the type 95 //!! checks for the availability of the type
@@ -104,7 +98,7 @@ Controls2.ApplicationWindow {
104 } 98 }
105 } 99 }
106 100
107 KubeFramework.FolderController { 101 Kube.FolderController {
108 id: folderController 102 id: folderController
109 Binding on folder { 103 Binding on folder {
110 //!! checks for the availability of the type 104 //!! checks for the availability of the type
@@ -114,7 +108,7 @@ Controls2.ApplicationWindow {
114 } 108 }
115 109
116 //Model 110 //Model
117 KubeAccountsFramework.AccountsModel { 111 Kube.AccountsModel {
118 id: currentAccountModel 112 id: currentAccountModel
119 accountId: accountSwitcher.accountId 113 accountId: accountSwitcher.accountId
120 } 114 }
@@ -144,7 +138,7 @@ Controls2.ApplicationWindow {
144 Rectangle { 138 Rectangle {
145 anchors.fill: parent 139 anchors.fill: parent
146 140
147 color: KubeTheme.Colors.backgroundColor 141 color: Kube.Colors.backgroundColor
148 } 142 }
149 //END background 143 //END background
150 144
@@ -159,11 +153,11 @@ Controls2.ApplicationWindow {
159 width: app.width 153 width: app.width
160 154
161 Rectangle { 155 Rectangle {
162 width: KubeTheme.Units.gridUnit * 10 156 width: Kube.Units.gridUnit * 10
163 Layout.maximumWidth: app.width * 0.25 157 Layout.maximumWidth: app.width * 0.25
164 Layout.minimumWidth: KubeTheme.Units.gridUnit * 5 158 Layout.minimumWidth: Kube.Units.gridUnit * 5
165 159
166 color: KubeTheme.Colors.textColor 160 color: Kube.Colors.textColor
167 161
168 Controls2.ToolBar { 162 Controls2.ToolBar {
169 id: toolBar 163 id: toolBar
@@ -177,18 +171,18 @@ Controls2.ApplicationWindow {
177 RowLayout { 171 RowLayout {
178 anchors.centerIn: parent 172 anchors.centerIn: parent
179 173
180 spacing: KubeTheme.Units.largeSpacing 174 spacing: Kube.Units.largeSpacing
181 175
182 KubeComponents.AccountSwitcher { 176 Kube.AccountSwitcher {
183 id: accountSwitcher 177 id: accountSwitcher
184 iconName: KubeTheme.Icons.menu 178 iconName: Kube.Icons.menu
185 height: KubeTheme.Units.gridUnit * 1.5 179 height: Kube.Units.gridUnit * 1.5
186 width: height 180 width: height
187 } 181 }
188 182
189 ToolButton { 183 ToolButton {
190 iconName: KubeTheme.Icons.user 184 iconName: Kube.Icons.user
191 height: KubeTheme.Units.gridUnit * 1.5 185 height: Kube.Units.gridUnit * 1.5
192 width: height 186 width: height
193 187
194 onClicked: { 188 onClicked: {
@@ -197,8 +191,8 @@ Controls2.ApplicationWindow {
197 } 191 }
198 192
199 ToolButton { 193 ToolButton {
200 iconName: KubeTheme.Icons.search 194 iconName: Kube.Icons.search
201 height: KubeTheme.Units.gridUnit * 1.5 195 height: Kube.Units.gridUnit * 1.5
202 width: height 196 width: height
203 197
204 onClicked: { 198 onClicked: {
@@ -208,14 +202,14 @@ Controls2.ApplicationWindow {
208 } 202 }
209 } 203 }
210 204
211 KubeComponents.PositiveButton { 205 Kube.PositiveButton {
212 id: newMailButton 206 id: newMailButton
213 207
214 anchors { 208 anchors {
215 top: toolBar.bottom 209 top: toolBar.bottom
216 left: parent.left 210 left: parent.left
217 right: parent.right 211 right: parent.right
218 margins: KubeTheme.Units.largeSpacing 212 margins: Kube.Units.largeSpacing
219 } 213 }
220 214
221 text: qsTr("New Email") 215 text: qsTr("New Email")
@@ -228,7 +222,7 @@ Controls2.ApplicationWindow {
228 Item { 222 Item {
229 id: accountName 223 id: accountName
230 224
231 KubeFramework.FolderController { 225 Kube.FolderController {
232 id: accountNameFolderController 226 id: accountNameFolderController
233 accountId: accountSwitcher.accountId 227 accountId: accountSwitcher.accountId
234 } 228 }
@@ -247,11 +241,11 @@ Controls2.ApplicationWindow {
247 241
248 anchors { 242 anchors {
249 top: newMailButton.bottom 243 top: newMailButton.bottom
250 topMargin: KubeTheme.Units.smallSpacing 244 topMargin: Kube.Units.smallSpacing
251 } 245 }
252 246
253 width: parent.width 247 width: parent.width
254 height: KubeTheme.Units.gridUnit * 2 248 height: Kube.Units.gridUnit * 2
255 249
256 MouseArea { 250 MouseArea {
257 anchors.fill: parent 251 anchors.fill: parent
@@ -264,40 +258,40 @@ Controls2.ApplicationWindow {
264 Repeater { 258 Repeater {
265 model: currentAccountModel 259 model: currentAccountModel
266 Row { 260 Row {
267 spacing: KubeTheme.Units.smallSpacing 261 spacing: Kube.Units.smallSpacing
268 anchors { 262 anchors {
269 bottom: parent.bottom 263 bottom: parent.bottom
270 left: parent.left 264 left: parent.left
271 leftMargin: KubeTheme.Units.smallSpacing 265 leftMargin: Kube.Units.smallSpacing
272 } 266 }
273 Layout.fillHeight: true 267 Layout.fillHeight: true
274 268
275 Text { 269 Text {
276 text: model.name 270 text: model.name
277 font.weight: Font.DemiBold 271 font.weight: Font.DemiBold
278 color: KubeTheme.Colors.highlightedTextColor 272 color: Kube.Colors.highlightedTextColor
279 } 273 }
280 274
281 KubeComponents.Icon { 275 Kube.Icon {
282 id: statusIcon 276 id: statusIcon
283 visible: false 277 visible: false
284 iconName: "" 278 iconName: ""
285 states: [ 279 states: [
286 State { 280 State {
287 name: "busy"; when: model.status == KubeAccountsFramework.AccountsModel.BusyStatus 281 name: "busy"; when: model.status == Kube.AccountsModel.BusyStatus
288 PropertyChanges { target: statusIcon; iconName: KubeTheme.Icons.busy; visible: true } 282 PropertyChanges { target: statusIcon; iconName: Kube.Icons.busy; visible: true }
289 }, 283 },
290 State { 284 State {
291 name: "error"; when: model.status == KubeAccountsFramework.AccountsModel.ErrorStatus 285 name: "error"; when: model.status == Kube.AccountsModel.ErrorStatus
292 PropertyChanges { target: statusIcon; iconName: KubeTheme.Icons.error; visible: true } 286 PropertyChanges { target: statusIcon; iconName: Kube.Icons.error; visible: true }
293 }, 287 },
294 State { 288 State {
295 name: "checkmark"; when: model.status == KubeAccountsFramework.AccountsModel.ConnectedStatus 289 name: "checkmark"; when: model.status == Kube.AccountsModel.ConnectedStatus
296 PropertyChanges { target: statusIcon; iconName: KubeTheme.Icons.connected; visible: true } 290 PropertyChanges { target: statusIcon; iconName: Kube.Icons.connected; visible: true }
297 }, 291 },
298 State { 292 State {
299 name: "disconnected"; when: model.status == KubeAccountsFramework.AccountsModel.OfflineStatus 293 name: "disconnected"; when: model.status == Kube.AccountsModel.OfflineStatus
300 PropertyChanges { target: statusIcon; iconName: KubeTheme.Icons.noNetworkConnection; visible: true } 294 PropertyChanges { target: statusIcon; iconName: Kube.Icons.noNetworkConnection; visible: true }
301 } 295 }
302 ] 296 ]
303 } 297 }
@@ -305,12 +299,12 @@ Controls2.ApplicationWindow {
305 } 299 }
306 } 300 }
307 301
308 KubeComponents.FolderListView { 302 Kube.FolderListView {
309 id: folderListView 303 id: folderListView
310 304
311 anchors { 305 anchors {
312 top: accountName.bottom 306 top: accountName.bottom
313 topMargin: KubeTheme.Units.smallSpacing 307 topMargin: Kube.Units.smallSpacing
314 bottom: statusBar.top 308 bottom: statusBar.top
315 left: parent.left 309 left: parent.left
316 right: parent.right 310 right: parent.right
@@ -323,13 +317,13 @@ Controls2.ApplicationWindow {
323 Item { 317 Item {
324 id: statusBar 318 id: statusBar
325 anchors { 319 anchors {
326 topMargin: KubeTheme.Units.smallSpacing 320 topMargin: Kube.Units.smallSpacing
327 bottom: outbox.top 321 bottom: outbox.top
328 left: parent.left 322 left: parent.left
329 right: parent.right 323 right: parent.right
330 } 324 }
331 325
332 height: KubeTheme.Units.gridUnit 326 height: Kube.Units.gridUnit
333 327
334 Repeater { 328 Repeater {
335 model: currentAccountModel 329 model: currentAccountModel
@@ -337,10 +331,10 @@ Controls2.ApplicationWindow {
337 id: statusText 331 id: statusText
338 anchors.centerIn: parent 332 anchors.centerIn: parent
339 visible: false 333 visible: false
340 color: KubeTheme.Colors.highlightedTextColor 334 color: Kube.Colors.highlightedTextColor
341 states: [ 335 states: [
342 State { 336 State {
343 name: "disconnected"; when: model.status == KubeAccountsFramework.AccountsModel.OfflineStatus 337 name: "disconnected"; when: model.status == Kube.AccountsModel.OfflineStatus
344 PropertyChanges { target: statusText; text: "Offline"; visible: true } 338 PropertyChanges { target: statusText; text: "Offline"; visible: true }
345 } 339 }
346 ] 340 ]
@@ -348,7 +342,7 @@ Controls2.ApplicationWindow {
348 } 342 }
349 } 343 }
350 344
351 KubeComponents.Outbox { 345 Kube.Outbox {
352 id: outbox 346 id: outbox
353 347
354 anchors { 348 anchors {
@@ -356,21 +350,21 @@ Controls2.ApplicationWindow {
356 left: parent.left 350 left: parent.left
357 right: parent.right 351 right: parent.right
358 } 352 }
359 height: KubeTheme.Units.gridUnit * 1.5 353 height: Kube.Units.gridUnit * 1.5
360 } 354 }
361 } 355 }
362 356
363 KubeComponents.MailListView { 357 Kube.MailListView {
364 id: mailListView 358 id: mailListView
365 parentFolder: folderListView.currentFolder 359 parentFolder: folderListView.currentFolder
366 width: KubeTheme.Units.gridUnit * 20 360 width: Kube.Units.gridUnit * 20
367 height: parent.height 361 height: parent.height
368 Layout.maximumWidth: app.width * 0.4 362 Layout.maximumWidth: app.width * 0.4
369 Layout.minimumWidth: KubeTheme.Units.gridUnit * 10 363 Layout.minimumWidth: Kube.Units.gridUnit * 10
370 focus: true 364 focus: true
371 } 365 }
372 366
373 KubeComponents.ConversationView { 367 Kube.ConversationView {
374 id: mailView 368 id: mailView
375 mail: mailListView.currentMail 369 mail: mailListView.currentMail
376 Layout.fillWidth: true 370 Layout.fillWidth: true
@@ -379,7 +373,7 @@ Controls2.ApplicationWindow {
379 //END Main content 373 //END Main content
380 374
381 //BEGIN Composer 375 //BEGIN Composer
382 KubeComponents.FocusComposer { 376 Kube.FocusComposer {
383 id: composer 377 id: composer
384 378
385 height: app.height * 0.85 379 height: app.height * 0.85
@@ -403,7 +397,7 @@ Controls2.ApplicationWindow {
403 //END AccountWizard 397 //END AccountWizard
404 398
405 //BEGIN Notification 399 //BEGIN Notification
406 KubeComponents.Notification { 400 Kube.NotificationPopup {
407 id: notificationPopup 401 id: notificationPopup
408 402
409 anchors { 403 anchors {
@@ -418,7 +412,7 @@ Controls2.ApplicationWindow {
418 id: search 412 id: search
419 413
420 width: app.width * 0.6 414 width: app.width * 0.6
421 height: KubeTheme.Units.gridUnit * 3 415 height: Kube.Units.gridUnit * 3
422 416
423 x: app.width * 0.2 417 x: app.width * 0.2
424 y: app.height * 0.2 418 y: app.height * 0.2
@@ -447,7 +441,7 @@ Controls2.ApplicationWindow {
447 //END Search 441 //END Search
448 442
449 //BEGIN People 443 //BEGIN People
450 KubeComponents.People { 444 Kube.People {
451 id: people 445 id: people
452 446
453 height: app.height * 0.85 447 height: app.height * 0.85
diff --git a/components/mailviewer/contents/ui/TextContent.qml b/components/mailviewer/contents/ui/TextContent.qml
index 8494e4e3..f65e85b6 100644
--- a/components/mailviewer/contents/ui/TextContent.qml
+++ b/components/mailviewer/contents/ui/TextContent.qml
@@ -17,7 +17,6 @@
17*/ 17*/
18 18
19import QtQuick 2.7 19import QtQuick 2.7
20import org.kube.components.theme 1.0 as KubeTheme
21 20
22Item { 21Item {
23 id: textItem 22 id: textItem
@@ -47,7 +46,7 @@ Item {
47 text: model.content 46 text: model.content
48 wrapMode: Text.WordWrap 47 wrapMode: Text.WordWrap
49 48
50 color: model.embeded ? KubeTheme.Colors.diabledTextColor : KubeTheme.Colors.textColor 49 color: model.embeded ? Kube.Colors.diabledTextColor : Kube.Colors.textColor
51 } 50 }
52 51
53 //BEGIN debug 52 //BEGIN debug
diff --git a/framework/CMakeLists.txt b/framework/CMakeLists.txt
index ebe308c6..fda9b0a2 100644
--- a/framework/CMakeLists.txt
+++ b/framework/CMakeLists.txt
@@ -22,6 +22,7 @@ find_package(Sink CONFIG REQUIRED)
22find_package(KAsync CONFIG REQUIRED) 22find_package(KAsync CONFIG REQUIRED)
23find_package(QGpgme CONFIG REQUIRED) 23find_package(QGpgme CONFIG REQUIRED)
24find_package(KF5Codecs CONFIG REQUIRED) 24find_package(KF5Codecs CONFIG REQUIRED)
25find_package(KF5Package CONFIG REQUIRED)
25 26
26set(CMAKE_AUTOMOC ON) 27set(CMAKE_AUTOMOC ON)
27add_definitions("-Wall -std=c++0x -g") 28add_definitions("-Wall -std=c++0x -g")
@@ -34,18 +35,66 @@ enable_testing()
34set(SINK_RESOURCE_PLUGINS_PATH ${QT_PLUGIN_INSTALL_DIR}/sink/resources) 35set(SINK_RESOURCE_PLUGINS_PATH ${QT_PLUGIN_INSTALL_DIR}/sink/resources)
35set(FRAMEWORK_INSTALL_DIR ${QML_INSTALL_DIR}/org/kube/framework) 36set(FRAMEWORK_INSTALL_DIR ${QML_INSTALL_DIR}/org/kube/framework)
36 37
37install(DIRECTORY qml DESTINATION ${FRAMEWORK_INSTALL_DIR}) 38install(DIRECTORY qml/ DESTINATION ${FRAMEWORK_INSTALL_DIR})
38install(FILES qmldir DESTINATION ${FRAMEWORK_INSTALL_DIR}) 39install(FILES qmldir DESTINATION ${FRAMEWORK_INSTALL_DIR})
39 40
41set(SRCS
42 frameworkplugin.cpp
43 actions/action.cpp
44 actions/actionhandler.cpp
45 actions/actionbroker.cpp
46 actions/actionresult.cpp
47 actions/context.cpp
48 settings/settings.cpp
49 domain/attachmentmodel.cpp
50 domain/maillistmodel.cpp
51 domain/folderlistmodel.cpp
52 domain/actions/sinkactions.cpp
53 domain/objecttreesource.cpp
54 domain/stringhtmlwriter.cpp
55 domain/composercontroller.cpp
56 domain/messageparser.cpp
57 domain/messageparser_new.cpp
58 domain/messageparser_old.cpp
59 domain/mailtemplates.cpp
60 domain/modeltest.cpp
61 domain/retriever.cpp
62 domain/outboxmodel.cpp
63 domain/identitiesmodel.cpp
64 domain/recepientautocompletionmodel.cpp
65 domain/settings/accountsettings.cpp
66 domain/selector.cpp
67 domain/completer.cpp
68 domain/controller.cpp
69 domain/outboxcontroller.cpp
70 domain/mailcontroller.cpp
71 domain/foldercontroller.cpp
72 domain/mouseproxy.cpp
73 domain/contactcontroller.cpp
74 domain/peoplemodel.cpp
75 accounts/accountfactory.cpp
76 accounts/accountsmodel.cpp
77 notifications/notificationhandler.cpp
78)
79
80add_library(frameworkplugin SHARED ${SRCS})
81
82qt5_use_modules(frameworkplugin Core Quick Qml WebKitWidgets Test)
83target_link_libraries(frameworkplugin sink mimetreeparser KF5::MimeTreeParser KF5::Codecs KF5::Package KAsync)
84
85install(TARGETS frameworkplugin DESTINATION ${FRAMEWORK_INSTALL_DIR})
86
40# The actions framework 87# The actions framework
41add_subdirectory(actions) 88#add_subdirectory(actions)
42# The settings framework 89# The settings framework
43add_subdirectory(settings) 90#add_subdirectory(settings)
44# Domain specific domain logic 91# Domain specific domain logic
45add_subdirectory(domain) 92#add_subdirectory(domain)
46# The accounts framework 93# The accounts framework
47add_subdirectory(accounts) 94#add_subdirectory(accounts)
48# The notifications framework 95# The notifications framework
49add_subdirectory(notifications) 96#add_subdirectory(notifications)
97add_subdirectory(domain/actions/tests)
98add_subdirectory(domain/mimetreeparser)
50 99
51feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES) 100feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)
diff --git a/framework/accounts/accountsplugin.cpp b/framework/accounts/accountsplugin.cpp
index e980d5f3..211898d9 100644
--- a/framework/accounts/accountsplugin.cpp
+++ b/framework/accounts/accountsplugin.cpp
@@ -25,7 +25,6 @@
25 25
26void AccountsPlugin::registerTypes (const char *uri) 26void AccountsPlugin::registerTypes (const char *uri)
27{ 27{
28 Q_ASSERT(uri == QLatin1String("org.kube.framework.accounts"));
29 qmlRegisterType<AccountFactory>(uri, 1, 0, "AccountFactory"); 28 qmlRegisterType<AccountFactory>(uri, 1, 0, "AccountFactory");
30 qmlRegisterType<AccountsModel>(uri, 1, 0, "AccountsModel"); 29 qmlRegisterType<AccountsModel>(uri, 1, 0, "AccountsModel");
31} 30}
diff --git a/framework/actions/actionplugin.cpp b/framework/actions/actionplugin.cpp
index 05852d2e..b55504fc 100644
--- a/framework/actions/actionplugin.cpp
+++ b/framework/actions/actionplugin.cpp
@@ -9,7 +9,6 @@
9 9
10void KubePlugin::registerTypes (const char *uri) 10void KubePlugin::registerTypes (const char *uri)
11{ 11{
12 Q_ASSERT(uri == QLatin1String("org.kube.framework.actions"));
13 qmlRegisterType<Kube::Context>(uri, 1, 0, "Context"); 12 qmlRegisterType<Kube::Context>(uri, 1, 0, "Context");
14 qmlRegisterType<Kube::Action>(uri, 1, 0, "Action"); 13 qmlRegisterType<Kube::Action>(uri, 1, 0, "Action");
15 qmlRegisterType<Kube::ActionHandler>(uri, 1, 0, "ActionHandler"); 14 qmlRegisterType<Kube::ActionHandler>(uri, 1, 0, "ActionHandler");
diff --git a/framework/domain/CMakeLists.txt b/framework/domain/CMakeLists.txt
index 38e0eb12..e1482301 100644
--- a/framework/domain/CMakeLists.txt
+++ b/framework/domain/CMakeLists.txt
@@ -34,8 +34,8 @@ add_library(mailplugin SHARED ${mailplugin_SRCS})
34qt5_use_modules(mailplugin Core Quick Qml WebKitWidgets Test) 34qt5_use_modules(mailplugin Core Quick Qml WebKitWidgets Test)
35target_link_libraries(mailplugin actionplugin settingsplugin sink mimetreeparser KF5::MimeTreeParser KF5::Codecs KF5::Package KAsync) 35target_link_libraries(mailplugin actionplugin settingsplugin sink mimetreeparser KF5::MimeTreeParser KF5::Codecs KF5::Package KAsync)
36 36
37add_subdirectory(actions/tests)
38 37
39install(TARGETS mailplugin DESTINATION ${FRAMEWORK_INSTALL_DIR}) 38install(TARGETS mailplugin DESTINATION ${FRAMEWORK_INSTALL_DIR})
40 39
40add_subdirectory(actions/tests)
41add_subdirectory(mimetreeparser) 41add_subdirectory(mimetreeparser)
diff --git a/framework/domain/actions/tests/CMakeLists.txt b/framework/domain/actions/tests/CMakeLists.txt
index dc9d01b1..2c34d628 100644
--- a/framework/domain/actions/tests/CMakeLists.txt
+++ b/framework/domain/actions/tests/CMakeLists.txt
@@ -3,4 +3,4 @@ cmake_policy(SET CMP0063 NEW)
3add_executable(sinkactiontest sinkactiontest.cpp) 3add_executable(sinkactiontest sinkactiontest.cpp)
4add_test(sinkactiontest sinkactiontest) 4add_test(sinkactiontest sinkactiontest)
5qt5_use_modules(sinkactiontest Core Test Concurrent) 5qt5_use_modules(sinkactiontest Core Test Concurrent)
6target_link_libraries(sinkactiontest sink actionplugin KF5::Mime mailplugin) 6target_link_libraries(sinkactiontest sink frameworkplugin KF5::Mime)
diff --git a/framework/domain/mailplugin.cpp b/framework/domain/mailplugin.cpp
index 12b9a7ce..b32832e0 100644
--- a/framework/domain/mailplugin.cpp
+++ b/framework/domain/mailplugin.cpp
@@ -37,8 +37,6 @@
37 37
38void MailPlugin::registerTypes (const char *uri) 38void MailPlugin::registerTypes (const char *uri)
39{ 39{
40 Q_ASSERT(uri == QLatin1String("org.kube.framework.domain"));
41
42 qmlRegisterType<FolderListModel>(uri, 1, 0, "FolderListModel"); 40 qmlRegisterType<FolderListModel>(uri, 1, 0, "FolderListModel");
43 qmlRegisterType<MailListModel>(uri, 1, 0, "MailListModel"); 41 qmlRegisterType<MailListModel>(uri, 1, 0, "MailListModel");
44 qmlRegisterType<ComposerController>(uri, 1, 0, "ComposerController"); 42 qmlRegisterType<ComposerController>(uri, 1, 0, "ComposerController");
diff --git a/framework/frameworkplugin.cpp b/framework/frameworkplugin.cpp
new file mode 100644
index 00000000..f491bae7
--- /dev/null
+++ b/framework/frameworkplugin.cpp
@@ -0,0 +1,72 @@
1/*
2 Copyright (c) 2016 Michael Bohlender <michael.bohlender@kdemail.net>
3 Copyright (c) 2016 Christian Mollekopf <mollekopf@kolabsys.com>
4
5 This library is free software; you can redistribute it and/or modify it
6 under the terms of the GNU Library General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or (at your
8 option) any later version.
9
10 This library is distributed in the hope that it will be useful, but WITHOUT
11 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13 License for more details.
14
15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to the
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18 02110-1301, USA.
19*/
20
21#include "frameworkplugin.h"
22
23#include "domain/maillistmodel.h"
24#include "domain/folderlistmodel.h"
25#include "domain/composercontroller.h"
26#include "domain/messageparser.h"
27#include "domain/retriever.h"
28#include "domain/outboxmodel.h"
29#include "domain/outboxcontroller.h"
30#include "domain/mailcontroller.h"
31#include "domain/foldercontroller.h"
32#include "domain/mouseproxy.h"
33#include "domain/contactcontroller.h"
34#include "domain/peoplemodel.h"
35#include "accounts/accountsmodel.h"
36#include "accounts/accountfactory.h"
37#include "settings/settings.h"
38#include "notifications/notificationhandler.h"
39#include "actions/action.h"
40#include "actions/context.h"
41#include "actions/actionhandler.h"
42#include "actions/actionresult.h"
43
44#include <QtQml>
45
46void FrameworkPlugin::registerTypes (const char *uri)
47{
48 qmlRegisterType<FolderListModel>(uri, 1, 0, "FolderListModel");
49 qmlRegisterType<MailListModel>(uri, 1, 0, "MailListModel");
50 qmlRegisterType<ComposerController>(uri, 1, 0, "ComposerController");
51 qmlRegisterType<MessageParser>(uri, 1, 0, "MessageParser");
52 qmlRegisterType<Retriever>(uri, 1, 0, "Retriever");
53 qmlRegisterType<OutboxController>(uri, 1, 0, "OutboxController");
54 qmlRegisterType<OutboxModel>(uri, 1, 0, "OutboxModel");
55 qmlRegisterType<MailController>(uri, 1, 0, "MailController");
56 qmlRegisterType<FolderController>(uri, 1, 0, "FolderController");
57 qmlRegisterType<MouseProxy>(uri, 1, 0, "MouseProxy");
58 qmlRegisterType<ContactController>(uri, 1, 0,"ContactController");
59 qmlRegisterType<PeopleModel>(uri, 1, 0,"PeopleModel");
60
61 qmlRegisterType<AccountFactory>(uri, 1, 0, "AccountFactory");
62 qmlRegisterType<AccountsModel>(uri, 1, 0, "AccountsModel");
63
64 qmlRegisterType<Kube::Settings>(uri, 1, 0, "Settings");
65 qmlRegisterType<Kube::NotificationHandler>(uri, 1, 0, "NotificationHandler");
66 qmlRegisterType<Kube::Notification>(uri, 1, 0, "Notification");
67
68 qmlRegisterType<Kube::Context>(uri, 1, 0, "Context");
69 qmlRegisterType<Kube::Action>(uri, 1, 0, "Action");
70 qmlRegisterType<Kube::ActionHandler>(uri, 1, 0, "ActionHandler");
71 qmlRegisterType<Kube::ActionResult>(uri, 1, 0, "ActionResult");
72}
diff --git a/framework/frameworkplugin.h b/framework/frameworkplugin.h
new file mode 100644
index 00000000..519e0ba9
--- /dev/null
+++ b/framework/frameworkplugin.h
@@ -0,0 +1,33 @@
1/*
2 Copyright (c) 2016 Michael Bohlender <michael.bohlender@kdemail.net>
3 Copyright (c) 2016 Christian Mollekopf <mollekopf@kolabsys.com>
4
5 This library is free software; you can redistribute it and/or modify it
6 under the terms of the GNU Library General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or (at your
8 option) any later version.
9
10 This library is distributed in the hope that it will be useful, but WITHOUT
11 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
13 License for more details.
14
15 You should have received a copy of the GNU Library General Public License
16 along with this library; see the file COPYING.LIB. If not, write to the
17 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18 02110-1301, USA.
19*/
20
21#pragma once
22
23#include <QQmlEngine>
24#include <QQmlExtensionPlugin>
25
26class FrameworkPlugin : public QQmlExtensionPlugin
27{
28 Q_OBJECT
29 Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
30
31public:
32 virtual void registerTypes(const char *uri);
33};
diff --git a/framework/notifications/notificationplugin.cpp b/framework/notifications/notificationplugin.cpp
index a7a9aa5b..54548464 100644
--- a/framework/notifications/notificationplugin.cpp
+++ b/framework/notifications/notificationplugin.cpp
@@ -24,7 +24,6 @@
24 24
25void NotificationPlugin::registerTypes (const char *uri) 25void NotificationPlugin::registerTypes (const char *uri)
26{ 26{
27 Q_ASSERT(uri == QLatin1String("org.kube.framework.notifications"));
28 qmlRegisterType<Kube::NotificationHandler>(uri, 1, 0, "NotificationHandler"); 27 qmlRegisterType<Kube::NotificationHandler>(uri, 1, 0, "NotificationHandler");
29 qmlRegisterType<Kube::Notification>(uri, 1, 0, "Notification"); 28 qmlRegisterType<Kube::Notification>(uri, 1, 0, "Notification");
30} 29}
diff --git a/framework/qml/AccountSwitcher.qml b/framework/qml/AccountSwitcher.qml
index 0cd91adc..dd33c940 100644
--- a/framework/qml/AccountSwitcher.qml
+++ b/framework/qml/AccountSwitcher.qml
@@ -24,11 +24,8 @@ import QtQuick.Controls 1.4 as Controls
24import QtQml 2.2 as QtQml 24import QtQml 2.2 as QtQml
25 25
26import org.kde.kirigami 1.0 as Kirigami 26import org.kde.kirigami 1.0 as Kirigami
27import org.kube.framework 1.0 as Kube
27 28
28import org.kube.framework.domain 1.0 as KubeFramework
29import org.kube.framework.accounts 1.0 as KubeAccounts
30import org.kube.components 1.0 as KubeComponents
31import org.kube.components.theme 1.0 as KubeTheme
32 29
33Controls.ToolButton { 30Controls.ToolButton {
34 id: accountSwitcher 31 id: accountSwitcher
@@ -38,12 +35,12 @@ Controls.ToolButton {
38 35
39 width: parent.width 36 width: parent.width
40 37
41 KubeFramework.FolderController { 38 Kube.FolderController {
42 id: folderController 39 id: folderController
43 accountId: accountId 40 accountId: accountId
44 } 41 }
45 42
46 KubeAccounts.AccountsModel { 43 Kube.AccountsModel {
47 id: accountsModel 44 id: accountsModel
48 } 45 }
49 46
@@ -88,7 +85,7 @@ Controls.ToolButton {
88 } 85 }
89 } 86 }
90 87
91 KubeComponents.PositiveButton { 88 Kube.PositiveButton {
92 id: newAccountButton 89 id: newAccountButton
93 90
94 anchors { 91 anchors {
@@ -170,16 +167,16 @@ Controls.ToolButton {
170 enabled: false 167 enabled: false
171 states: [ 168 states: [
172 State { 169 State {
173 name: "busy"; when: model.status == KubeAccountsFramework.AccountsModel.BusyStatus 170 name: "busy"; when: model.status == Kube.AccountsModel.BusyStatus
174 PropertyChanges { target: statusIcon; iconName: KubeTheme.Icons.busy; visible: true } 171 PropertyChanges { target: statusIcon; iconName: Kube.Icons.busy; visible: true }
175 }, 172 },
176 State { 173 State {
177 name: "error"; when: model.status == KubeAccountsFramework.AccountsModel.ErrorStatus 174 name: "error"; when: model.status == Kube.AccountsModel.ErrorStatus
178 PropertyChanges { target: statusIcon; iconName: KubeTheme.Icons.error; visible: true } 175 PropertyChanges { target: statusIcon; iconName: Kube.Icons.error; visible: true }
179 }, 176 },
180 State { 177 State {
181 name: "checkmark"; when: model.status == KubeAccountsFramework.AccountsModel.ConnectedStatus 178 name: "checkmark"; when: model.status == Kube.AccountsModel.ConnectedStatus
182 PropertyChanges { target: statusIcon; iconName: KubeTheme.Icons.connected; visible: true } 179 PropertyChanges { target: statusIcon; iconName: Kube.Icons.connected; visible: true }
183 } 180 }
184 ] 181 ]
185 } 182 }
@@ -203,7 +200,7 @@ Controls.ToolButton {
203 200
204 Component { 201 Component {
205 id: editAccountComponent 202 id: editAccountComponent
206 KubeComponents.EditAccountDialog { 203 Kube.EditAccountDialog {
207 anchors.fill: parent 204 anchors.fill: parent
208 } 205 }
209 } 206 }
diff --git a/framework/qml/AttachmentDelegate.qml b/framework/qml/AttachmentDelegate.qml
index a589c9f3..9241efac 100644
--- a/framework/qml/AttachmentDelegate.qml
+++ b/framework/qml/AttachmentDelegate.qml
@@ -19,7 +19,6 @@
19import QtQuick 2.7 19import QtQuick 2.7
20import QtQuick.Layouts 1.1 20import QtQuick.Layouts 1.1
21import org.kde.kirigami 1.0 as Kirigami 21import org.kde.kirigami 1.0 as Kirigami
22import org.kube.components.theme 1.0 as KubeTheme
23 22
24Item { 23Item {
25 id: root 24 id: root
@@ -34,7 +33,7 @@ Item {
34 anchors.fill: parent 33 anchors.fill: parent
35 34
36 id: background 35 id: background
37 color: KubeTheme.Colors.disabledTextColor 36 color: Kube.Colors.disabledTextColor
38 } 37 }
39 38
40 RowLayout { 39 RowLayout {
@@ -50,7 +49,7 @@ Item {
50 height: Kirigami.Units.gridUnit 49 height: Kirigami.Units.gridUnit
51 width: Kirigami.Units.gridUnit 50 width: Kirigami.Units.gridUnit
52 51
53 color: KubeTheme.Colors.backgroundColor 52 color: Kube.Colors.backgroundColor
54 53
55 Kirigami.Icon { 54 Kirigami.Icon {
56 height: parent.height 55 height: parent.height
@@ -62,7 +61,7 @@ Item {
62 61
63 Text { 62 Text {
64 text: root.name 63 text: root.name
65 color: KubeTheme.Colors.backgroundColor 64 color: Kube.Colors.backgroundColor
66 } 65 }
67 } 66 }
68} 67}
diff --git a/framework/qml/AutocompleteLineEdit.qml b/framework/qml/AutocompleteLineEdit.qml
index 64e5940f..c9b8e708 100644
--- a/framework/qml/AutocompleteLineEdit.qml
+++ b/framework/qml/AutocompleteLineEdit.qml
@@ -21,7 +21,6 @@ import QtQuick.Controls 2.0 as Controls2
21import QtQuick.Layouts 1.1 21import QtQuick.Layouts 1.1
22 22
23import org.kde.kirigami 1.0 as Kirigami 23import org.kde.kirigami 1.0 as Kirigami
24import org.kube.components.theme 1.0 as KubeTheme
25 24
26Controls2.TextField { 25Controls2.TextField {
27 id: textField 26 id: textField
@@ -93,8 +92,8 @@ Controls2.TextField {
93 height: listView.contentHeight 92 height: listView.contentHeight
94 width: textField.width 93 width: textField.width
95 94
96 border.color: KubeTheme.Colors.textColor 95 border.color: Kube.Colors.textColor
97 color: KubeTheme.Colors.backgroundColor 96 color: Kube.Colors.backgroundColor
98 97
99 radius: 5 98 radius: 5
100 ListView { 99 ListView {
@@ -132,7 +131,7 @@ Controls2.TextField {
132 131
133 Text{ 132 Text{
134 text: model.text 133 text: model.text
135 color: listDelegate.checked ? KubeTheme.Colors.highlightedTextColor : KubeTheme.Colors.textColor 134 color: listDelegate.checked ? Kube.Colors.highlightedTextColor : Kube.Colors.textColor
136 } 135 }
137 } 136 }
138 } 137 }
diff --git a/framework/qml/Button.qml b/framework/qml/Button.qml
index 948312b0..4df1492a 100644
--- a/framework/qml/Button.qml
+++ b/framework/qml/Button.qml
@@ -17,14 +17,13 @@
17 */ 17 */
18 18
19import QtQuick 2.7 19import QtQuick 2.7
20import org.kube.components.theme 1.0 as KubeTheme
21 20
22Rectangle { 21Rectangle {
23 id: root 22 id: root
24 23
25 signal clicked() 24 signal clicked()
26 property alias text: text.text 25 property alias text: text.text
27 property color textColor: KubeTheme.Colors.highlightedTextColor 26 property color textColor: Kube.Colors.highlightedTextColor
28 property string iconName: "" 27 property string iconName: ""
29 property alias implicitHeight: content.implicitHeight 28 property alias implicitHeight: content.implicitHeight
30 property alias implicitWidth: content.implicitWidth 29 property alias implicitWidth: content.implicitWidth
@@ -36,7 +35,7 @@ Rectangle {
36 Row { 35 Row {
37 id: content 36 id: content
38 anchors.centerIn: parent 37 anchors.centerIn: parent
39 spacing: KubeTheme.Units.smallSpacing 38 spacing: Kube.Units.smallSpacing
40 Text { 39 Text {
41 id: text 40 id: text
42 anchors.verticalCenter: parent.verticalCenter 41 anchors.verticalCenter: parent.verticalCenter
diff --git a/framework/qml/ConversationView.qml b/framework/qml/ConversationView.qml
index 4196ebbd..fc940e39 100644
--- a/framework/qml/ConversationView.qml
+++ b/framework/qml/ConversationView.qml
@@ -21,13 +21,11 @@ import QtQuick.Controls 1.3 as Controls1
21import QtQuick.Controls 2 21import QtQuick.Controls 2
22import QtQuick.Layouts 1.1 22import QtQuick.Layouts 1.1
23import org.kde.kirigami 1.0 as Kirigami 23import org.kde.kirigami 1.0 as Kirigami
24import org.kube.framework 1.0 as Kube
24 25
25import QtQml 2.2 as QtQml 26import QtQml 2.2 as QtQml
26 27
27import org.kube.framework.domain 1.0 as KubeFramework
28import org.kube.framework.actions 1.0 as KubeAction
29 28
30import org.kube.components.theme 1.0 as KubeTheme
31 29
32Rectangle { 30Rectangle {
33 id: root 31 id: root
@@ -44,7 +42,7 @@ Rectangle {
44 currentMail = null; 42 currentMail = null;
45 } 43 }
46 44
47 color: KubeTheme.Colors.backgroundColor 45 color: Kube.Colors.backgroundColor
48 46
49 ListView { 47 ListView {
50 id: listView 48 id: listView
@@ -79,18 +77,18 @@ Rectangle {
79 77
80 clip: true 78 clip: true
81 79
82 model: KubeFramework.MailListModel { 80 model: Kube.MailListModel {
83 mail: root.mail 81 mail: root.mail
84 } 82 }
85 83
86 header: Item { 84 header: Item {
87 height: KubeTheme.Units.gridUnit * 0.5 85 height: Kube.Units.gridUnit * 0.5
88 width: parent.width 86 width: parent.width
89 87
90 } 88 }
91 89
92 footer: Item { 90 footer: Item {
93 height: KubeTheme.Units.gridUnit 91 height: Kube.Units.gridUnit
94 width: parent.width 92 width: parent.width
95 } 93 }
96 94
@@ -144,7 +142,7 @@ Rectangle {
144 //which will break lot's of things. 142 //which will break lot's of things.
145 cacheBuffer: 100000 143 cacheBuffer: 100000
146 144
147 KubeFramework.MailController { 145 Kube.MailController {
148 id: mailController 146 id: mailController
149 Binding on mail { 147 Binding on mail {
150 //!! checks for the availability of the type 148 //!! checks for the availability of the type
@@ -167,7 +165,7 @@ Rectangle {
167 165
168 //Intercept all scroll events, 166 //Intercept all scroll events,
169 //necessary due to the webengineview 167 //necessary due to the webengineview
170 KubeFramework.MouseProxy { 168 Kube.MouseProxy {
171 anchors.fill: parent 169 anchors.fill: parent
172 target: listView 170 target: listView
173 forwardWheelEvents: true 171 forwardWheelEvents: true
@@ -185,14 +183,14 @@ Rectangle {
185 } 183 }
186 } 184 }
187 185
188 height: sheet.height + KubeTheme.Units.gridUnit 186 height: sheet.height + Kube.Units.gridUnit
189 width: parent.width 187 width: parent.width
190 188
191 Rectangle { 189 Rectangle {
192 id: sheet 190 id: sheet
193 anchors.centerIn: parent 191 anchors.centerIn: parent
194 implicitHeight: header.height + attachments.height + body.height + incompleteBody.height + footer.height + KubeTheme.Units.largeSpacing 192 implicitHeight: header.height + attachments.height + body.height + incompleteBody.height + footer.height + Kube.Units.largeSpacing
195 width: parent.width - KubeTheme.Units.gridUnit * 2 193 width: parent.width - Kube.Units.gridUnit * 2
196 194
197 //Overlay for non-active mails 195 //Overlay for non-active mails
198 Rectangle { 196 Rectangle {
@@ -203,7 +201,7 @@ Rectangle {
203 opacity: 0.2 201 opacity: 0.2
204 } 202 }
205 203
206 color: KubeTheme.Colors.viewBackgroundColor 204 color: Kube.Colors.viewBackgroundColor
207 205
208 //BEGIN header 206 //BEGIN header
209 Item { 207 Item {
@@ -213,10 +211,10 @@ Rectangle {
213 top: parent.top 211 top: parent.top
214 left: parent.left 212 left: parent.left
215 right: parent.right 213 right: parent.right
216 margins: KubeTheme.Units.largeSpacing 214 margins: Kube.Units.largeSpacing
217 } 215 }
218 216
219 height: headerContent.height + KubeTheme.Units.smallSpacing 217 height: headerContent.height + Kube.Units.smallSpacing
220 218
221 states: [ 219 states: [
222 State { 220 State {
@@ -250,7 +248,7 @@ Rectangle {
250 text: Qt.formatDateTime(model.date, "dd MMM yyyy hh:mm") 248 text: Qt.formatDateTime(model.date, "dd MMM yyyy hh:mm")
251 249
252 font.pointSize: Kirigami.Theme.defaultFont.pointSize * 0.7 250 font.pointSize: Kirigami.Theme.defaultFont.pointSize * 0.7
253 color: KubeTheme.Colors.textColor 251 color: Kube.Colors.textColor
254 opacity: 0.75 252 opacity: 0.75
255 } 253 }
256 254
@@ -262,7 +260,7 @@ Rectangle {
262 horizontalCenter: parent.horizontalCenter 260 horizontalCenter: parent.horizontalCenter
263 } 261 }
264 262
265 //spacing: KubeTheme.Units.smallSpacing 263 //spacing: Kube.Units.smallSpacing
266 264
267 width: parent.width 265 width: parent.width
268 266
@@ -271,7 +269,7 @@ Rectangle {
271 269
272 width: parent.width 270 width: parent.width
273 271
274 spacing: KubeTheme.Units.smallSpacing 272 spacing: Kube.Units.smallSpacing
275 clip: true 273 clip: true
276 274
277 Text { 275 Text {
@@ -280,7 +278,7 @@ Rectangle {
280 text: model.senderName 278 text: model.senderName
281 279
282 font.weight: Font.DemiBold 280 font.weight: Font.DemiBold
283 color: KubeTheme.Colors.textColor 281 color: Kube.Colors.textColor
284 opacity: 0.75 282 opacity: 0.75
285 } 283 }
286 284
@@ -288,10 +286,10 @@ Rectangle {
288 286
289 text: model.sender 287 text: model.sender
290 288
291 width: parent.width - senderName.width - date_label.width - KubeTheme.Units.largeSpacing 289 width: parent.width - senderName.width - date_label.width - Kube.Units.largeSpacing
292 elide: Text.ElideRight 290 elide: Text.ElideRight
293 291
294 color: KubeTheme.Colors.textColor 292 color: Kube.Colors.textColor
295 opacity: 0.75 293 opacity: 0.75
296 294
297 clip: true 295 clip: true
@@ -307,7 +305,7 @@ Rectangle {
307 305
308 elide: Text.ElideRight 306 elide: Text.ElideRight
309 307
310 color: KubeTheme.Colors.textColor 308 color: Kube.Colors.textColor
311 opacity: 0.75 309 opacity: 0.75
312 font.italic: true 310 font.italic: true
313 } 311 }
@@ -315,49 +313,49 @@ Rectangle {
315 Text { 313 Text {
316 id: recipients 314 id: recipients
317 315
318 width: parent.width - goDown.width - KubeTheme.Units.smallSpacing 316 width: parent.width - goDown.width - Kube.Units.smallSpacing
319 317
320 text:"to: "+ model.to + " " + model.cc + " " + model.bcc 318 text:"to: "+ model.to + " " + model.cc + " " + model.bcc
321 319
322 elide: Text.ElideRight 320 elide: Text.ElideRight
323 321
324 color: KubeTheme.Colors.textColor 322 color: Kube.Colors.textColor
325 opacity: 0.75 323 opacity: 0.75
326 } 324 }
327 325
328 Text { 326 Text {
329 id: to 327 id: to
330 328
331 width: parent.width - goDown.width - KubeTheme.Units.smallSpacing 329 width: parent.width - goDown.width - Kube.Units.smallSpacing
332 330
333 text:"to: " + model.to 331 text:"to: " + model.to
334 332
335 wrapMode: Text.WordWrap 333 wrapMode: Text.WordWrap
336 color: KubeTheme.Colors.textColor 334 color: Kube.Colors.textColor
337 opacity: 0.75 335 opacity: 0.75
338 } 336 }
339 337
340 Text { 338 Text {
341 id: cc 339 id: cc
342 340
343 width: parent.width - goDown.width - KubeTheme.Units.smallSpacing 341 width: parent.width - goDown.width - Kube.Units.smallSpacing
344 342
345 text:"cc: " + model.cc 343 text:"cc: " + model.cc
346 344
347 wrapMode: Text.WordWrap 345 wrapMode: Text.WordWrap
348 color: KubeTheme.Colors.textColor 346 color: Kube.Colors.textColor
349 opacity: 0.75 347 opacity: 0.75
350 } 348 }
351 349
352 Text { 350 Text {
353 id: bcc 351 id: bcc
354 352
355 width: parent.width - goDown.width - KubeTheme.Units.smallSpacing 353 width: parent.width - goDown.width - Kube.Units.smallSpacing
356 354
357 text:"bcc: " + model.bcc 355 text:"bcc: " + model.bcc
358 356
359 wrapMode: Text.WordWrap 357 wrapMode: Text.WordWrap
360 color: KubeTheme.Colors.textColor 358 color: Kube.Colors.textColor
361 opacity: 0.75 359 opacity: 0.75
362 } 360 }
363 361
@@ -369,15 +367,15 @@ Rectangle {
369 right: seperator.right 367 right: seperator.right
370 } 368 }
371 369
372 height: KubeTheme.Units.gridUnit 370 height: Kube.Units.gridUnit
373 width: height 371 width: height
374 372
375 color: KubeTheme.Colors.backgroundColor 373 color: Kube.Colors.backgroundColor
376 374
377 Controls1.ToolButton { 375 Controls1.ToolButton {
378 anchors.fill: parent 376 anchors.fill: parent
379 377
380 iconName: KubeTheme.Icons.goDown 378 iconName: Kube.Icons.goDown
381 } 379 }
382 } 380 }
383 381
@@ -387,15 +385,15 @@ Rectangle {
387 right: seperator.right 385 right: seperator.right
388 } 386 }
389 387
390 height: KubeTheme.Units.gridUnit 388 height: Kube.Units.gridUnit
391 width: height 389 width: height
392 390
393 color: KubeTheme.Colors.backgroundColor 391 color: Kube.Colors.backgroundColor
394 392
395 Controls1.ToolButton { 393 Controls1.ToolButton {
396 anchors.fill: parent 394 anchors.fill: parent
397 395
398 iconName: header.state === "details" ? KubeTheme.Icons.goUp : KubeTheme.Icons.goDown 396 iconName: header.state === "details" ? Kube.Icons.goUp : Kube.Icons.goDown
399 397
400 onClicked: { 398 onClicked: {
401 header.state === "details" ? header.state = "small" : header.state = "details" 399 header.state === "details" ? header.state = "small" : header.state = "details"
@@ -414,7 +412,7 @@ Rectangle {
414 412
415 height: 1 413 height: 1
416 414
417 color: KubeTheme.Colors.textColor 415 color: Kube.Colors.textColor
418 opacity: 0.5 416 opacity: 0.5
419 } 417 }
420 } 418 }
@@ -425,14 +423,14 @@ Rectangle {
425 423
426 anchors { 424 anchors {
427 top: header.bottom 425 top: header.bottom
428 topMargin: KubeTheme.Units.smallSpacing 426 topMargin: Kube.Units.smallSpacing
429 right: header.right 427 right: header.right
430 } 428 }
431 429
432 width: header.width - KubeTheme.Units.largeSpacing 430 width: header.width - Kube.Units.largeSpacing
433 431
434 layoutDirection: Qt.RightToLeft 432 layoutDirection: Qt.RightToLeft
435 spacing: KubeTheme.Units.smallSpacing 433 spacing: Kube.Units.smallSpacing
436 clip: true 434 clip: true
437 435
438 Repeater { 436 Repeater {
@@ -456,12 +454,12 @@ Rectangle {
456 top: header.bottom 454 top: header.bottom
457 left: header.left 455 left: header.left
458 right: header.right 456 right: header.right
459 leftMargin: KubeTheme.Units.largeSpacing 457 leftMargin: Kube.Units.largeSpacing
460 rightMargin: KubeTheme.Units.largeSpacing 458 rightMargin: Kube.Units.largeSpacing
461 topMargin: Math.max(attachments.height, KubeTheme.Units.largeSpacing) 459 topMargin: Math.max(attachments.height, Kube.Units.largeSpacing)
462 } 460 }
463 461
464 width: header.width - KubeTheme.Units.largeSpacing * 2 462 width: header.width - Kube.Units.largeSpacing * 2
465 height: desiredHeight 463 height: desiredHeight
466 464
467 message: model.mimeMessage 465 message: model.mimeMessage
@@ -474,21 +472,21 @@ Rectangle {
474 top: header.bottom 472 top: header.bottom
475 left: header.left 473 left: header.left
476 right: header.right 474 right: header.right
477 leftMargin: KubeTheme.Units.largeSpacing 475 leftMargin: Kube.Units.largeSpacing
478 rightMargin: KubeTheme.Units.largeSpacing 476 rightMargin: Kube.Units.largeSpacing
479 topMargin: Math.max(attachments.height, KubeTheme.Units.largeSpacing) 477 topMargin: Math.max(attachments.height, Kube.Units.largeSpacing)
480 } 478 }
481 visible: model.incomplete 479 visible: model.incomplete
482 text: "Incomplete body..." 480 text: "Incomplete body..."
483 color: KubeTheme.Colors.textColor 481 color: Kube.Colors.textColor
484 enabled: false 482 enabled: false
485 states: [ 483 states: [
486 State { 484 State {
487 name: "inprogress"; when: model.status == KubeFramework.MailListModel.InProgressStatus 485 name: "inprogress"; when: model.status == Kube.MailListModel.InProgressStatus
488 PropertyChanges { target: incompleteBody; text: "Downloading message..." } 486 PropertyChanges { target: incompleteBody; text: "Downloading message..." }
489 }, 487 },
490 State { 488 State {
491 name: "error"; when: model.status == KubeFramework.MailListModel.ErrorStatus 489 name: "error"; when: model.status == Kube.MailListModel.ErrorStatus
492 PropertyChanges { target: incompleteBody; text: "Failed to download message..." } 490 PropertyChanges { target: incompleteBody; text: "Failed to download message..." }
493 } 491 }
494 ] 492 ]
@@ -498,23 +496,23 @@ Rectangle {
498 496
499 anchors.bottom: parent.bottom 497 anchors.bottom: parent.bottom
500 498
501 height: KubeTheme.Units.gridUnit * 2 499 height: Kube.Units.gridUnit * 2
502 width: parent.width 500 width: parent.width
503 501
504 Text { 502 Text {
505 anchors{ 503 anchors{
506 verticalCenter: parent.verticalCenter 504 verticalCenter: parent.verticalCenter
507 left: parent.left 505 left: parent.left
508 leftMargin: KubeTheme.Units.largeSpacing 506 leftMargin: Kube.Units.largeSpacing
509 } 507 }
510 508
511 KubeFramework.MailController { 509 Kube.MailController {
512 id: mailController 510 id: mailController
513 mail: model.mail 511 mail: model.mail
514 } 512 }
515 513
516 text: model.trash ? qsTr("Delete Mail") : qsTr("Move to trash") 514 text: model.trash ? qsTr("Delete Mail") : qsTr("Move to trash")
517 color: KubeTheme.Colors.textColor 515 color: Kube.Colors.textColor
518 opacity: 0.5 516 opacity: 0.5
519 enabled: model.trash ? mailController.removeAction.enabled : mailController.moveToTrashAction.enabled 517 enabled: model.trash ? mailController.removeAction.enabled : mailController.moveToTrashAction.enabled
520 MouseArea { 518 MouseArea {
@@ -535,10 +533,10 @@ Rectangle {
535 anchors{ 533 anchors{
536 verticalCenter: parent.verticalCenter 534 verticalCenter: parent.verticalCenter
537 right: parent.right 535 right: parent.right
538 rightMargin: KubeTheme.Units.largeSpacing 536 rightMargin: Kube.Units.largeSpacing
539 } 537 }
540 538
541 KubeAction.Context { 539 Kube.Context {
542 id: mailcontext 540 id: mailcontext
543 property variant mail 541 property variant mail
544 property bool isDraft 542 property bool isDraft
@@ -546,19 +544,19 @@ Rectangle {
546 isDraft: model.draft 544 isDraft: model.draft
547 } 545 }
548 546
549 KubeAction.Action { 547 Kube.Action {
550 id: replyAction 548 id: replyAction
551 actionId: "org.kde.kube.actions.reply" 549 actionId: "org.kde.kube.actions.reply"
552 context: maillistcontext 550 context: maillistcontext
553 } 551 }
554 552
555 KubeAction.Action { 553 Kube.Action {
556 id: editAction 554 id: editAction
557 actionId: "org.kde.kube.actions.edit" 555 actionId: "org.kde.kube.actions.edit"
558 context: maillistcontext 556 context: maillistcontext
559 } 557 }
560 558
561 iconName: model.draft ? KubeTheme.Icons.edit : KubeTheme.Icons.replyToSender 559 iconName: model.draft ? Kube.Icons.edit : Kube.Icons.replyToSender
562 onClicked: { 560 onClicked: {
563 if (model.draft) { 561 if (model.draft) {
564 editAction.execute() 562 editAction.execute()
diff --git a/framework/qml/EditAccount.qml b/framework/qml/EditAccount.qml
index 8618ec91..a9a8c1ad 100644
--- a/framework/qml/EditAccount.qml
+++ b/framework/qml/EditAccount.qml
@@ -22,15 +22,14 @@ import QtQuick.Layouts 1.1
22import QtQuick.Controls 1.4 as Controls 22import QtQuick.Controls 1.4 as Controls
23import QtQuick.Controls 2.0 as Controls2 23import QtQuick.Controls 2.0 as Controls2
24import org.kde.kirigami 1.0 as Kirigami 24import org.kde.kirigami 1.0 as Kirigami
25import org.kube.framework 1.0 as Kube
25 26
26import org.kube.framework.accounts 1.0 as KubeAccounts
27import org.kube.components.theme 1.0 as KubeTheme
28 27
29Item { 28Item {
30 id: root 29 id: root
31 property string accountId 30 property string accountId
32 31
33 KubeAccounts.AccountFactory { 32 Kube.AccountFactory {
34 id: accountFactory 33 id: accountFactory
35 accountId: root.accountId 34 accountId: root.accountId
36 } 35 }
@@ -45,7 +44,7 @@ Item {
45 Kirigami.Heading { 44 Kirigami.Heading {
46 id: heading 45 id: heading
47 text: loader.item.heading 46 text: loader.item.heading
48 color: KubeTheme.Colors.highlightColor 47 color: Kube.Colors.highlightColor
49 } 48 }
50 49
51 Kirigami.Label { 50 Kirigami.Label {
@@ -58,7 +57,7 @@ Item {
58 57
59 width: parent.width 58 width: parent.width
60 text: loader.item.subheadline 59 text: loader.item.subheadline
61 color: KubeTheme.Colors.disabledTextColor 60 color: Kube.Colors.disabledTextColor
62 wrapMode: Text.Wrap 61 wrapMode: Text.Wrap
63 } 62 }
64 63
diff --git a/framework/qml/EditAccountDialog.qml b/framework/qml/EditAccountDialog.qml
index a7461640..ab256839 100644
--- a/framework/qml/EditAccountDialog.qml
+++ b/framework/qml/EditAccountDialog.qml
@@ -20,10 +20,10 @@ import QtQuick 2.4
20import QtQuick.Layouts 1.1 20import QtQuick.Layouts 1.1
21 21
22import org.kde.kirigami 1.0 as Kirigami 22import org.kde.kirigami 1.0 as Kirigami
23import org.kube.framework 1.0 as Kube
23 24
24import org.kube.components 1.0 as KubeComponents
25 25
26KubeComponents.OverlayDialog { 26Kube.OverlayDialog {
27 id: dialog 27 id: dialog
28 28
29 property variant accountId 29 property variant accountId
diff --git a/framework/qml/FocusComposer.qml b/framework/qml/FocusComposer.qml
index 902309a8..823ed32f 100644
--- a/framework/qml/FocusComposer.qml
+++ b/framework/qml/FocusComposer.qml
@@ -21,14 +21,14 @@ import QtQuick.Layouts 1.1
21import QtQuick.Controls 2.0 as Controls2 21import QtQuick.Controls 2.0 as Controls2
22 22
23import org.kde.kirigami 1.0 as Kirigami 23import org.kde.kirigami 1.0 as Kirigami
24import org.kube.framework 1.0 as Kube
24 25
25import org.kube.framework.domain 1.0 as KubeFramework
26 26
27Controls2.Popup { 27Controls2.Popup {
28 id: root 28 id: root
29 29
30 //Controller 30 //Controller
31 KubeFramework.ComposerController { 31 Kube.ComposerController {
32 id: composerController 32 id: composerController
33 onDone: { 33 onDone: {
34 clear(); 34 clear();
diff --git a/framework/qml/FolderListView.qml b/framework/qml/FolderListView.qml
index b35b52ed..39cc8ba4 100644
--- a/framework/qml/FolderListView.qml
+++ b/framework/qml/FolderListView.qml
@@ -22,9 +22,7 @@ import QtQuick.Controls.Styles 1.4
22import QtQuick.Layouts 1.1 22import QtQuick.Layouts 1.1
23 23
24import org.kde.kirigami 1.0 as Kirigami 24import org.kde.kirigami 1.0 as Kirigami
25import org.kube.components 1.0 as KubeComponents 25import org.kube.framework 1.0 as Kube
26import org.kube.components.theme 1.0 as KubeTheme
27import org.kube.framework.domain 1.0 as KubeFramework
28 26
29Rectangle { 27Rectangle {
30 id: root 28 id: root
@@ -32,9 +30,9 @@ Rectangle {
32 property variant currentFolder: null 30 property variant currentFolder: null
33 property variant accountId 31 property variant accountId
34 32
35 color: KubeTheme.Colors.textColor 33 color: Kube.Colors.textColor
36 34
37 KubeFramework.FolderController { 35 Kube.FolderController {
38 id: folderController 36 id: folderController
39 Binding on folder { 37 Binding on folder {
40 //!! checks for the availability of the type 38 //!! checks for the availability of the type
@@ -71,14 +69,14 @@ Rectangle {
71 role: "name" 69 role: "name"
72 } 70 }
73 71
74 model: KubeFramework.FolderListModel { 72 model: Kube.FolderListModel {
75 id: folderListModel 73 id: folderListModel
76 accountId: root.accountId 74 accountId: root.accountId
77 } 75 }
78 76
79 onCurrentIndexChanged: { 77 onCurrentIndexChanged: {
80 model.fetchMore(currentIndex) 78 model.fetchMore(currentIndex)
81 root.currentFolder = model.data(currentIndex, KubeFramework.FolderListModel.DomainObject) 79 root.currentFolder = model.data(currentIndex, Kube.FolderListModel.DomainObject)
82 } 80 }
83 81
84 alternatingRowColors: false 82 alternatingRowColors: false
@@ -90,7 +88,7 @@ Rectangle {
90 onClicked: { 88 onClicked: {
91 var index = parent.indexAt(mouse.x, mouse.y) 89 var index = parent.indexAt(mouse.x, mouse.y)
92 if (index.valid) { 90 if (index.valid) {
93 folderController.folder = treeView.model.data(index, KubeFramework.FolderListModel.DomainObject) 91 folderController.folder = treeView.model.data(index, Kube.FolderListModel.DomainObject)
94 contextMenu.popup() 92 contextMenu.popup()
95 } 93 }
96 } 94 }
@@ -99,7 +97,7 @@ Rectangle {
99 style: TreeViewStyle { 97 style: TreeViewStyle {
100 98
101 rowDelegate: Rectangle { 99 rowDelegate: Rectangle {
102 color: styleData.selected ? KubeTheme.Colors.highlightColor : KubeTheme.Colors.textColor 100 color: styleData.selected ? Kube.Colors.highlightColor : Kube.Colors.textColor
103 101
104 height: Kirigami.Units.gridUnit * 1.5 102 height: Kirigami.Units.gridUnit * 1.5
105 width: 20 103 width: 20
@@ -107,7 +105,7 @@ Rectangle {
107 } 105 }
108 106
109 frame: Rectangle { 107 frame: Rectangle {
110 color: KubeTheme.Colors.textColor 108 color: Kube.Colors.textColor
111 } 109 }
112 110
113 branchDelegate: Item { 111 branchDelegate: Item {
@@ -118,7 +116,7 @@ Rectangle {
118 116
119 anchors.centerIn: parent 117 anchors.centerIn: parent
120 118
121 color: KubeTheme.Colors.viewBackgroundColor 119 color: Kube.Colors.viewBackgroundColor
122 text: styleData.isExpanded ? "-" : "+" 120 text: styleData.isExpanded ? "-" : "+"
123 } 121 }
124 122
@@ -127,14 +125,14 @@ Rectangle {
127 125
128 itemDelegate: Rectangle { 126 itemDelegate: Rectangle {
129 127
130 color: styleData.selected ? KubeTheme.Colors.highlightColor : KubeTheme.Colors.textColor 128 color: styleData.selected ? Kube.Colors.highlightColor : Kube.Colors.textColor
131 129
132 DropArea { 130 DropArea {
133 anchors.fill: parent 131 anchors.fill: parent
134 132
135 Rectangle { 133 Rectangle {
136 anchors.fill: parent 134 anchors.fill: parent
137 color: KubeTheme.Colors.viewBackgroundColor 135 color: Kube.Colors.viewBackgroundColor
138 136
139 opacity: 0.3 137 opacity: 0.3
140 138
@@ -162,34 +160,34 @@ Rectangle {
162 160
163 text: styleData.value 161 text: styleData.value
164 162
165 color: KubeTheme.Colors.viewBackgroundColor 163 color: Kube.Colors.viewBackgroundColor
166 } 164 }
167 KubeComponents.Icon { 165 Kube.Icon {
168 id: statusIcon 166 id: statusIcon
169 visible: false 167 visible: false
170 iconName: "" 168 iconName: ""
171 states: [ 169 states: [
172 State { 170 State {
173 name: "busy"; when: model.status == KubeFramework.FolderListModel.InProgressStatus 171 name: "busy"; when: model.status == Kube.FolderListModel.InProgressStatus
174 PropertyChanges { target: statusIcon; iconName: KubeTheme.Icons.busy ; visible: styleData.selected } 172 PropertyChanges { target: statusIcon; iconName: Kube.Icons.busy ; visible: styleData.selected }
175 }, 173 },
176 State { 174 State {
177 name: "error"; when: model.status == KubeFramework.FolderListModel.ErrorStatus 175 name: "error"; when: model.status == Kube.FolderListModel.ErrorStatus
178 //The error status should only be visible for a moment, otherwise we'll eventually always show errors everywhere. 176 //The error status should only be visible for a moment, otherwise we'll eventually always show errors everywhere.
179 PropertyChanges { target: statusIcon; iconName: KubeTheme.Icons.error; visible: styleData.selected } 177 PropertyChanges { target: statusIcon; iconName: Kube.Icons.error; visible: styleData.selected }
180 }, 178 },
181 State { 179 State {
182 name: "checkmark"; when: model.status == KubeFramework.FolderListModel.SuccessStatus 180 name: "checkmark"; when: model.status == Kube.FolderListModel.SuccessStatus
183 //The success status should only be visible for a moment, otherwise we'll eventually always show checkmarks everywhere. 181 //The success status should only be visible for a moment, otherwise we'll eventually always show checkmarks everywhere.
184 PropertyChanges { target: statusIcon; iconName: KubeTheme.Icons.success; visible: styleData.selected } 182 PropertyChanges { target: statusIcon; iconName: Kube.Icons.success; visible: styleData.selected }
185 } 183 }
186 ] 184 ]
187 } 185 }
188 } 186 }
189 } 187 }
190 188
191 backgroundColor: KubeTheme.Colors.textColor 189 backgroundColor: Kube.Colors.textColor
192 highlightedTextColor: KubeTheme.Colors.highlightedTextColor 190 highlightedTextColor: Kube.Colors.highlightedTextColor
193 } 191 }
194 } 192 }
195} 193}
diff --git a/framework/qml/MailListView.qml b/framework/qml/MailListView.qml
index 2d5d6601..28386442 100644
--- a/framework/qml/MailListView.qml
+++ b/framework/qml/MailListView.qml
@@ -21,8 +21,7 @@ import QtQuick.Controls 2.0
21import QtQuick.Controls 1.4 as Controls 21import QtQuick.Controls 1.4 as Controls
22import QtQuick.Layouts 1.1 22import QtQuick.Layouts 1.1
23 23
24import org.kube.components.theme 1.0 as KubeTheme 24import org.kube.framework 1.0 as Kube
25import org.kube.framework.domain 1.0 as KubeFramework
26 25
27Item { 26Item {
28 id: root 27 id: root
@@ -44,10 +43,10 @@ Item {
44 Row { 43 Row {
45 anchors.centerIn: parent 44 anchors.centerIn: parent
46 45
47 spacing: KubeTheme.Units.smallSpacing 46 spacing: Kube.Units.smallSpacing
48 47
49 Controls.ToolButton { 48 Controls.ToolButton {
50 iconName: KubeTheme.Icons.markAsRead 49 iconName: Kube.Icons.markAsRead
51 text: qsTr("Mark As Read") 50 text: qsTr("Mark As Read")
52 enabled: mailController.markAsReadAction.enabled 51 enabled: mailController.markAsReadAction.enabled
53 tooltip: qsTr("mark mail as read") 52 tooltip: qsTr("mark mail as read")
@@ -57,7 +56,7 @@ Item {
57 } 56 }
58 57
59 Controls.ToolButton { 58 Controls.ToolButton {
60 iconName: KubeTheme.Icons.markImportant 59 iconName: Kube.Icons.markImportant
61 text: qsTr("Mark Important") 60 text: qsTr("Mark Important")
62 enabled: mailController.markAsImportantAction.enabled 61 enabled: mailController.markAsImportantAction.enabled
63 tooltip: qsTr("mark mail as important") 62 tooltip: qsTr("mark mail as important")
@@ -67,7 +66,7 @@ Item {
67 } 66 }
68 67
69 Controls.ToolButton { 68 Controls.ToolButton {
70 iconName: KubeTheme.Icons.moveToTrash 69 iconName: Kube.Icons.moveToTrash
71 text: qsTr("Delete Mail") 70 text: qsTr("Delete Mail")
72 enabled: mailController.moveToTrashAction.enabled 71 enabled: mailController.moveToTrashAction.enabled
73 tooltip: qsTr("delete email") 72 tooltip: qsTr("delete email")
@@ -77,7 +76,7 @@ Item {
77 } 76 }
78 77
79 Controls.ToolButton { 78 Controls.ToolButton {
80 iconName: KubeTheme.Icons.undo 79 iconName: Kube.Icons.undo
81 text: qsTr("Restore Mail") 80 text: qsTr("Restore Mail")
82 enabled: mailController.restoreFromTrashAction.enabled 81 enabled: mailController.restoreFromTrashAction.enabled
83 tooltip: qsTr("restore email") 82 tooltip: qsTr("restore email")
@@ -132,7 +131,7 @@ Item {
132 root.isDraft = currentItem.currentData.draft; 131 root.isDraft = currentItem.currentData.draft;
133 } 132 }
134 133
135 model: KubeFramework.MailListModel { 134 model: Kube.MailListModel {
136 parentFolder: root.parentFolder 135 parentFolder: root.parentFolder
137 filter: root.filterString 136 filter: root.filterString
138 } 137 }
@@ -151,7 +150,7 @@ Item {
151 property variant mail : model.domainObject 150 property variant mail : model.domainObject
152 151
153 width: scrollbar.visible ? listView.width - scrollbar.width : listView.width 152 width: scrollbar.visible ? listView.width - scrollbar.width : listView.width
154 height: KubeTheme.Units.gridUnit * 5 153 height: Kube.Units.gridUnit * 5
155 154
156 states: [ 155 states: [
157 State { 156 State {
@@ -163,31 +162,31 @@ Item {
163 PropertyChanges {target: delegateRoot; parent: root} 162 PropertyChanges {target: delegateRoot; parent: root}
164 163
165 PropertyChanges {target: delegateRoot; opacity: 0.7} 164 PropertyChanges {target: delegateRoot; opacity: 0.7}
166 PropertyChanges {target: background; color: KubeTheme.Colors.highlightColor} 165 PropertyChanges {target: background; color: Kube.Colors.highlightColor}
167 PropertyChanges {target: subject; color: KubeTheme.Colors.highlightedTextColor} 166 PropertyChanges {target: subject; color: Kube.Colors.highlightedTextColor}
168 PropertyChanges {target: sender; color: KubeTheme.Colors.highlightedTextColor} 167 PropertyChanges {target: sender; color: Kube.Colors.highlightedTextColor}
169 PropertyChanges {target: date; color: KubeTheme.Colors.highlightedTextColor} 168 PropertyChanges {target: date; color: Kube.Colors.highlightedTextColor}
170 PropertyChanges {target: threadCounter; color: KubeTheme.Colors.highlightedTextColor} 169 PropertyChanges {target: threadCounter; color: Kube.Colors.highlightedTextColor}
171 }, 170 },
172 State { 171 State {
173 name: "selected" 172 name: "selected"
174 when: listView.currentIndex == index && !mouseArea.drag.active 173 when: listView.currentIndex == index && !mouseArea.drag.active
175 174
176 PropertyChanges {target: background; color: KubeTheme.Colors.highlightColor} 175 PropertyChanges {target: background; color: Kube.Colors.highlightColor}
177 PropertyChanges {target: subject; color: KubeTheme.Colors.highlightedTextColor} 176 PropertyChanges {target: subject; color: Kube.Colors.highlightedTextColor}
178 PropertyChanges {target: sender; color: KubeTheme.Colors.highlightedTextColor} 177 PropertyChanges {target: sender; color: Kube.Colors.highlightedTextColor}
179 PropertyChanges {target: date; color: KubeTheme.Colors.highlightedTextColor} 178 PropertyChanges {target: date; color: Kube.Colors.highlightedTextColor}
180 PropertyChanges {target: threadCounter; color: KubeTheme.Colors.highlightedTextColor} 179 PropertyChanges {target: threadCounter; color: Kube.Colors.highlightedTextColor}
181 }, 180 },
182 State { 181 State {
183 name: "hovered" 182 name: "hovered"
184 when: mouseArea.containsMouse && !mouseArea.drag.active 183 when: mouseArea.containsMouse && !mouseArea.drag.active
185 184
186 PropertyChanges {target: background; color: KubeTheme.Colors.highlightColor; opacity: 0.7} 185 PropertyChanges {target: background; color: Kube.Colors.highlightColor; opacity: 0.7}
187 PropertyChanges {target: subject; color: KubeTheme.Colors.highlightedTextColor} 186 PropertyChanges {target: subject; color: Kube.Colors.highlightedTextColor}
188 PropertyChanges {target: sender; color: KubeTheme.Colors.highlightedTextColor} 187 PropertyChanges {target: sender; color: Kube.Colors.highlightedTextColor}
189 PropertyChanges {target: date; color: KubeTheme.Colors.highlightedTextColor} 188 PropertyChanges {target: date; color: Kube.Colors.highlightedTextColor}
190 PropertyChanges {target: threadCounter; color: KubeTheme.Colors.highlightedTextColor} 189 PropertyChanges {target: threadCounter; color: Kube.Colors.highlightedTextColor}
191 } 190 }
192 ] 191 ]
193 192
@@ -215,9 +214,9 @@ Item {
215 214
216 anchors.fill: parent 215 anchors.fill: parent
217 216
218 color: KubeTheme.Colors.viewBackgroundColor 217 color: Kube.Colors.viewBackgroundColor
219 218
220 border.color: KubeTheme.Colors.backgroundColor 219 border.color: Kube.Colors.backgroundColor
221 border.width: 1 220 border.width: 1
222 } 221 }
223 222
@@ -229,24 +228,24 @@ Item {
229 bottom: parent.bottom 228 bottom: parent.bottom
230 left: parent.left 229 left: parent.left
231 right: parent.right 230 right: parent.right
232 margins: KubeTheme.Units.smallSpacing 231 margins: Kube.Units.smallSpacing
233 } 232 }
234 233
235 Column { 234 Column {
236 anchors { 235 anchors {
237 verticalCenter: parent.verticalCenter 236 verticalCenter: parent.verticalCenter
238 left: parent.left 237 left: parent.left
239 leftMargin: KubeTheme.Units.largeSpacing 238 leftMargin: Kube.Units.largeSpacing
240 } 239 }
241 240
242 Text{ 241 Text{
243 id: subject 242 id: subject
244 243
245 text: model.subject 244 text: model.subject
246 color: model.unread ? KubeTheme.Colors.highlightColor : KubeTheme.Colors.textColor 245 color: model.unread ? Kube.Colors.highlightColor : Kube.Colors.textColor
247 246
248 maximumLineCount: 2 247 maximumLineCount: 2
249 width: content.width - KubeTheme.Units.gridUnit * 3 248 width: content.width - Kube.Units.gridUnit * 3
250 wrapMode: Text.WrapAnywhere 249 wrapMode: Text.WrapAnywhere
251 elide: Text.ElideRight 250 elide: Text.ElideRight
252 } 251 }
@@ -256,8 +255,8 @@ Item {
256 255
257 text: model.senderName 256 text: model.senderName
258 font.italic: true 257 font.italic: true
259 color: KubeTheme.Colors.textColor 258 color: Kube.Colors.textColor
260 width: delegateRoot.width - KubeTheme.Units.gridUnit * 3 259 width: delegateRoot.width - Kube.Units.gridUnit * 3
261 elide: Text.ElideRight 260 elide: Text.ElideRight
262 } 261 }
263 } 262 }
@@ -271,7 +270,7 @@ Item {
271 } 270 }
272 text: Qt.formatDateTime(model.date, "dd MMM yyyy") 271 text: Qt.formatDateTime(model.date, "dd MMM yyyy")
273 font.italic: true 272 font.italic: true
274 color: KubeTheme.Colors.disabledTextColor 273 color: Kube.Colors.disabledTextColor
275 font.pointSize: 9 274 font.pointSize: 9
276 } 275 }
277 276
@@ -282,7 +281,7 @@ Item {
282 right: parent.right 281 right: parent.right
283 } 282 }
284 text: model.threadSize 283 text: model.threadSize
285 color: model.unread ? KubeTheme.Colors.highlightColor : KubeTheme.Colors.disabledTextColor 284 color: model.unread ? Kube.Colors.highlightColor : Kube.Colors.disabledTextColor
286 visible: model.threadSize > 1 285 visible: model.threadSize > 1
287 } 286 }
288 } 287 }
diff --git a/framework/qml/MailViewer.qml b/framework/qml/MailViewer.qml
index 4ee170bd..487da576 100644
--- a/framework/qml/MailViewer.qml
+++ b/framework/qml/MailViewer.qml
@@ -20,8 +20,8 @@ import QtQuick 2.4
20import QtQuick.Controls 1.4 as Controls1 20import QtQuick.Controls 1.4 as Controls1
21import QtQuick.Layouts 1.1 21import QtQuick.Layouts 1.1
22 22
23import org.kube.framework.domain 1.0 as KubeFramework
24import org.kube.components.mailviewer 1.0 as MV 23import org.kube.components.mailviewer 1.0 as MV
24import org.kube.framework 1.0 as Kube
25 25
26Item { 26Item {
27 id: root 27 id: root
@@ -67,7 +67,7 @@ Item {
67 model: messageParser.newTree 67 model: messageParser.newTree
68 } 68 }
69 69
70 KubeFramework.MessageParser { 70 Kube.MessageParser {
71 id: messageParser 71 id: messageParser
72 message: root.message 72 message: root.message
73 } 73 }
diff --git a/framework/qml/Notification.qml b/framework/qml/NotificationPopup.qml
index 15291c43..2a336f36 100644
--- a/framework/qml/Notification.qml
+++ b/framework/qml/NotificationPopup.qml
@@ -2,7 +2,6 @@ import QtQuick 2.0
2import QtQuick.Controls 2.0 2import QtQuick.Controls 2.0
3 3
4import org.kde.kirigami 1.0 as Kirigami 4import org.kde.kirigami 1.0 as Kirigami
5import org.kube.components.theme 1.0 as KubeTheme
6 5
7 6
8MouseArea { 7MouseArea {
@@ -26,7 +25,7 @@ MouseArea {
26 25
27 function notify(text) { 26 function notify(text) {
28 popup.title = text 27 popup.title = text
29 bg.color = KubeTheme.Colors.textColor 28 bg.color = Kube.Colors.textColor
30 show() 29 show()
31 } 30 }
32 31
@@ -73,7 +72,7 @@ MouseArea {
73 72
74 font.pixelSize: 16 73 font.pixelSize: 16
75 74
76 color: KubeTheme.Colors.highlightedTextColor 75 color: Kube.Colors.highlightedTextColor
77 horizontalAlignment: Text.AlignHCenter 76 horizontalAlignment: Text.AlignHCenter
78 elide: Text.ElideRight 77 elide: Text.ElideRight
79 wrapMode: Text.Wrap 78 wrapMode: Text.Wrap
diff --git a/framework/qml/Outbox.qml b/framework/qml/Outbox.qml
index 19646459..6b0a1650 100644
--- a/framework/qml/Outbox.qml
+++ b/framework/qml/Outbox.qml
@@ -22,27 +22,24 @@ import QtQuick.Controls 2.0
22import QtQuick.Controls 1.3 as Controls 22import QtQuick.Controls 1.3 as Controls
23 23
24import org.kde.kirigami 1.0 as Kirigami 24import org.kde.kirigami 1.0 as Kirigami
25import org.kube.framework 1.0 as Kube
25 26
26import org.kube.framework.actions 1.0 as KubeAction
27import org.kube.framework.domain 1.0 as KubeFramework
28import org.kube.components 1.0 as KubeComponents
29import org.kube.components.theme 1.0 as KubeTheme
30 27
31KubeComponents.Button { 28Kube.Button {
32 id: root 29 id: root
33 30
34 text: outboxModel.count > 0 ? "Outbox (" + outboxModel.count + ")" : "Outbox" 31 text: outboxModel.count > 0 ? "Outbox (" + outboxModel.count + ")" : "Outbox"
35 color: "transparent" 32 color: "transparent"
36 textColor: KubeTheme.Colors.highlightedTextColor 33 textColor: Kube.Colors.highlightedTextColor
37 iconName: "" 34 iconName: ""
38 states: [ 35 states: [
39 State { 36 State {
40 name: "busy"; when: outboxModel.status == KubeFramework.OutboxModel.InProgressStatus 37 name: "busy"; when: outboxModel.status == Kube.OutboxModel.InProgressStatus
41 PropertyChanges { target: root; iconName: KubeTheme.Icons.busy } 38 PropertyChanges { target: root; iconName: Kube.Icons.busy }
42 }, 39 },
43 State { 40 State {
44 name: "error"; when: outboxModel.status == KubeFramework.OutboxModel.ErrorStatus 41 name: "error"; when: outboxModel.status == Kube.OutboxModel.ErrorStatus
45 PropertyChanges { target: root; iconName: KubeTheme.Icons.error } 42 PropertyChanges { target: root; iconName: Kube.Icons.error }
46 } 43 }
47 ] 44 ]
48 45
@@ -50,11 +47,11 @@ KubeComponents.Button {
50 dialog.visible = dialog.visible ? false : true 47 dialog.visible = dialog.visible ? false : true
51 } 48 }
52 49
53 KubeFramework.OutboxController { 50 Kube.OutboxController {
54 id: outboxController 51 id: outboxController
55 } 52 }
56 53
57 KubeFramework.OutboxModel { 54 Kube.OutboxModel {
58 id: outboxModel 55 id: outboxModel
59 } 56 }
60 57
@@ -91,8 +88,8 @@ KubeComponents.Button {
91 height: Kirigami.Units.gridUnit * 3 88 height: Kirigami.Units.gridUnit * 3
92 width: listView.width 89 width: listView.width
93 90
94 color: KubeTheme.Colors.viewBackgroundColor 91 color: Kube.Colors.viewBackgroundColor
95 border.color: KubeTheme.Colors.backgroundColor 92 border.color: Kube.Colors.backgroundColor
96 border.width: 1 93 border.width: 1
97 94
98 Label { 95 Label {
@@ -104,16 +101,16 @@ KubeComponents.Button {
104 } 101 }
105 text: model.subject 102 text: model.subject
106 103
107 color: KubeTheme.Colors.textColor 104 color: Kube.Colors.textColor
108 opacity: 1 105 opacity: 1
109 states: [ 106 states: [
110 State { 107 State {
111 name: "inprogress"; when: model.status == KubeFramework.OutboxModel.InProgressStatus 108 name: "inprogress"; when: model.status == Kube.OutboxModel.InProgressStatus
112 PropertyChanges { target: subjectLabel; text: "Sending: " + model.subject } 109 PropertyChanges { target: subjectLabel; text: "Sending: " + model.subject }
113 }, 110 },
114 State { 111 State {
115 name: "error"; when: model.status == KubeFramework.OutboxModel.ErrorStatus 112 name: "error"; when: model.status == Kube.OutboxModel.ErrorStatus
116 PropertyChanges { target: subjectLabel; color: KubeTheme.Colors.warningColor } 113 PropertyChanges { target: subjectLabel; color: Kube.Colors.warningColor }
117 } 114 }
118 ] 115 ]
119 } 116 }
diff --git a/framework/qml/OverlayDialog.qml b/framework/qml/OverlayDialog.qml
index 760fb12e..10004f8d 100644
--- a/framework/qml/OverlayDialog.qml
+++ b/framework/qml/OverlayDialog.qml
@@ -22,9 +22,6 @@ import QtQuick.Layouts 1.1
22 22
23import org.kde.kirigami 1.0 as Kirigami 23import org.kde.kirigami 1.0 as Kirigami
24 24
25import org.kube.framework.settings 1.0 as KubeSettings
26import org.kube.framework.domain 1.0 as KubeFramework
27import org.kube.components.theme 1.0 as KubeTheme
28 25
29Item { 26Item {
30 id: root 27 id: root
@@ -55,7 +52,7 @@ Item {
55 height: root.height * 0.8 52 height: root.height * 0.8
56 width: root.width * 0.8 53 width: root.width * 0.8
57 54
58 color: KubeTheme.Colors.backgroundColor 55 color: Kube.Colors.backgroundColor
59 56
60 MouseArea { 57 MouseArea {
61 anchors.fill: parent 58 anchors.fill: parent
diff --git a/framework/qml/People.qml b/framework/qml/People.qml
index 182cce94..8ccd174d 100644
--- a/framework/qml/People.qml
+++ b/framework/qml/People.qml
@@ -23,9 +23,7 @@ import QtQuick.Controls 1.4 as Controls
23import QtQuick.Layouts 1.1 23import QtQuick.Layouts 1.1
24 24
25import org.kde.kirigami 1.0 as Kirigami 25import org.kde.kirigami 1.0 as Kirigami
26import org.kube.components.theme 1.0 as KubeTheme 26import org.kube.framework 1.0 as Kube
27import org.kube.framework.domain 1.0 as KubeFramework
28
29 27
30 28
31Popup { 29Popup {
@@ -49,7 +47,7 @@ Popup {
49 47
50 anchors.verticalCenter: parent.verticalCenter 48 anchors.verticalCenter: parent.verticalCenter
51 49
52 iconName: KubeTheme.Icons.goBack 50 iconName: Kube.Icons.goBack
53 51
54 onClicked: stack.pop() 52 onClicked: stack.pop()
55 53
@@ -69,11 +67,11 @@ Popup {
69 67
70 anchors { 68 anchors {
71 right: parent.right 69 right: parent.right
72 rightMargin: KubeTheme.Units.smallSpacing 70 rightMargin: Kube.Units.smallSpacing
73 verticalCenter: parent.verticalCenter 71 verticalCenter: parent.verticalCenter
74 } 72 }
75 73
76 iconName: KubeTheme.Icons.addNew 74 iconName: Kube.Icons.addNew
77 } 75 }
78 } 76 }
79 77
@@ -98,7 +96,7 @@ Popup {
98 96
99 Rectangle { 97 Rectangle {
100 id: peoplePageRoot 98 id: peoplePageRoot
101 color: KubeTheme.Colors.viewBackgroundColor 99 color: Kube.Colors.viewBackgroundColor
102 100
103 Flickable { 101 Flickable {
104 102
@@ -117,25 +115,25 @@ Popup {
117 115
118 anchors { 116 anchors {
119 top: parent.top 117 top: parent.top
120 topMargin: KubeTheme.Units.largeSpacing 118 topMargin: Kube.Units.largeSpacing
121 left: parent.left 119 left: parent.left
122 leftMargin: KubeTheme.Units.largeSpacing 120 leftMargin: Kube.Units.largeSpacing
123 } 121 }
124 122
125 spacing: KubeTheme.Units.largeSpacing 123 spacing: Kube.Units.largeSpacing
126 width: peoplePageRoot.width - KubeTheme.Units.largeSpacing * 2 124 width: peoplePageRoot.width - Kube.Units.largeSpacing * 2
127 125
128 Repeater { 126 Repeater {
129 127
130 model: KubeFramework.PeopleModel { 128 model: Kube.PeopleModel {
131 filter: searchBar.text 129 filter: searchBar.text
132 } 130 }
133 131
134 delegate: Rectangle { 132 delegate: Rectangle {
135 id: delegateRoot 133 id: delegateRoot
136 134
137 height: KubeTheme.Units.gridUnit * 3 135 height: Kube.Units.gridUnit * 3
138 width: KubeTheme.Units.gridUnit * 10 136 width: Kube.Units.gridUnit * 10
139 137
140 border.width: 1 138 border.width: 1
141 border.color: "lightgrey" 139 border.color: "lightgrey"
@@ -164,24 +162,24 @@ Popup {
164 162
165 anchors { 163 anchors {
166 left: avatarPlaceholder.right 164 left: avatarPlaceholder.right
167 margins: KubeTheme.Units.smallSpacing 165 margins: Kube.Units.smallSpacing
168 verticalCenter: parent.verticalCenter 166 verticalCenter: parent.verticalCenter
169 } 167 }
170 168
171 Text { 169 Text {
172 width: delegateRoot.width - avatarPlaceholder.width - KubeTheme.Units.smallSpacing * 2 170 width: delegateRoot.width - avatarPlaceholder.width - Kube.Units.smallSpacing * 2
173 171
174 text: model.firstName 172 text: model.firstName
175 elide: Text.ElideRight 173 elide: Text.ElideRight
176 color: KubeTheme.Colors.textColor 174 color: Kube.Colors.textColor
177 } 175 }
178 176
179 Text { 177 Text {
180 width: delegateRoot.width - avatarPlaceholder.width - KubeTheme.Units.smallSpacing * 2 178 width: delegateRoot.width - avatarPlaceholder.width - Kube.Units.smallSpacing * 2
181 179
182 text: model.lastName 180 text: model.lastName
183 elide: Text.ElideRight 181 elide: Text.ElideRight
184 color: KubeTheme.Colors.textColor 182 color: Kube.Colors.textColor
185 } 183 }
186 } 184 }
187 } 185 }
@@ -198,19 +196,19 @@ Popup {
198 Rectangle { 196 Rectangle {
199 id: personPageRoot 197 id: personPageRoot
200 198
201 KubeFramework.ContactController { 199 Kube.ContactController {
202 id: contactController 200 id: contactController
203 contact: popup.currentContact 201 contact: popup.currentContact
204 } 202 }
205 203
206 color: KubeTheme.Colors.viewBackgroundColor 204 color: Kube.Colors.viewBackgroundColor
207 205
208 Item { 206 Item {
209 207
210 anchors { 208 anchors {
211 top: parent.top 209 top: parent.top
212 left: parent.left 210 left: parent.left
213 leftMargin: KubeTheme.Units.largeSpacing 211 leftMargin: Kube.Units.largeSpacing
214 } 212 }
215 213
216 width: parent.width 214 width: parent.width
@@ -231,17 +229,17 @@ Popup {
231 229
232 width: personPageRoot.width 230 width: personPageRoot.width
233 231
234 spacing: KubeTheme.Units.largeSpacing 232 spacing: Kube.Units.largeSpacing
235 233
236 Item { 234 Item {
237 width: parent.width 235 width: parent.width
238 height: KubeTheme.Units.smallSpacing 236 height: Kube.Units.smallSpacing
239 } 237 }
240 238
241 Item { 239 Item {
242 240
243 height: KubeTheme.Units.gridUnit * 8 241 height: Kube.Units.gridUnit * 8
244 width: personPageRoot.width - KubeTheme.Units.largeSpacing 242 width: personPageRoot.width - Kube.Units.largeSpacing
245 243
246 Rectangle { 244 Rectangle {
247 id: avatar 245 id: avatar
@@ -258,7 +256,7 @@ Popup {
258 anchors { 256 anchors {
259 top: avatar.top 257 top: avatar.top
260 left: avatar.right 258 left: avatar.right
261 leftMargin: KubeTheme.Units.largeSpacing 259 leftMargin: Kube.Units.largeSpacing
262 } 260 }
263 261
264 text: contactController.name //"Michael Tester" 262 text: contactController.name //"Michael Tester"
@@ -270,7 +268,7 @@ Popup {
270 anchors { 268 anchors {
271 top: nameLabel.bottom 269 top: nameLabel.bottom
272 left: avatar.right 270 left: avatar.right
273 leftMargin: KubeTheme.Units.largeSpacing 271 leftMargin: Kube.Units.largeSpacing
274 } 272 }
275 273
276 text: "CIO" 274 text: "CIO"
@@ -282,11 +280,11 @@ Popup {
282 anchors { 280 anchors {
283 bottom: avatar.bottom 281 bottom: avatar.bottom
284 left: avatar.right 282 left: avatar.right
285 leftMargin: KubeTheme.Units.largeSpacing 283 leftMargin: Kube.Units.largeSpacing
286 } 284 }
287 285
288 height: KubeTheme.Units.gridUnit * 3 286 height: Kube.Units.gridUnit * 3
289 width: KubeTheme.Units.gridUnit * 10 287 width: Kube.Units.gridUnit * 10
290 288
291 border.width: 1 289 border.width: 1
292 border.color: "lightgrey" 290 border.color: "lightgrey"
@@ -304,12 +302,12 @@ Popup {
304 anchors { 302 anchors {
305 verticalCenter: av.verticalCenter 303 verticalCenter: av.verticalCenter
306 left: av.right 304 left: av.right
307 leftMargin: KubeTheme.Units.smallSpacing 305 leftMargin: Kube.Units.smallSpacing
308 } 306 }
309 307
310 text: "Sauerkraut AG" 308 text: "Sauerkraut AG"
311 309
312 color: KubeTheme.Colors.textColor 310 color: Kube.Colors.textColor
313 } 311 }
314 } 312 }
315 } 313 }
@@ -317,65 +315,65 @@ Popup {
317 Flow { 315 Flow {
318 id: emails 316 id: emails
319 317
320 width: personPageRoot.width - KubeTheme.Units.largeSpacing 318 width: personPageRoot.width - Kube.Units.largeSpacing
321 319
322 Repeater { 320 Repeater {
323 321
324 model: contactController.emails 322 model: contactController.emails
325 323
326 Row { 324 Row {
327 spacing: KubeTheme.Units.smallSpacing 325 spacing: Kube.Units.smallSpacing
328 Text { text: "(main)" } 326 Text { text: "(main)" }
329 Text { text: modelData ; color: KubeTheme.Colors.highlightColor } 327 Text { text: modelData ; color: Kube.Colors.highlightColor }
330 Item { width: KubeTheme.Units.smallSpacing; height: 1 } 328 Item { width: Kube.Units.smallSpacing; height: 1 }
331 } 329 }
332 } 330 }
333 331
334 Row { 332 Row {
335 spacing: KubeTheme.Units.smallSpacing 333 spacing: Kube.Units.smallSpacing
336 Text { text: "(alias)"} 334 Text { text: "(alias)"}
337 Text { text: "test.testerson@gmail.com"; color: KubeTheme.Colors.highlightColor } 335 Text { text: "test.testerson@gmail.com"; color: Kube.Colors.highlightColor }
338 Item { width: KubeTheme.Units.smallSpacing; height: 1 } 336 Item { width: Kube.Units.smallSpacing; height: 1 }
339 } 337 }
340 338
341 Row { 339 Row {
342 spacing: KubeTheme.Units.smallSpacing 340 spacing: Kube.Units.smallSpacing
343 Text { text: "(private)"} 341 Text { text: "(private)"}
344 Text { text: "test@gmail.com"; color: KubeTheme.Colors.highlightColor } 342 Text { text: "test@gmail.com"; color: Kube.Colors.highlightColor }
345 Item { width: KubeTheme.Units.smallSpacing; height: 1 } 343 Item { width: Kube.Units.smallSpacing; height: 1 }
346 } 344 }
347 } 345 }
348 346
349 Flow { 347 Flow {
350 id: phone 348 id: phone
351 349
352 width: personPageRoot.width - KubeTheme.Units.largeSpacing 350 width: personPageRoot.width - Kube.Units.largeSpacing
353 spacing: KubeTheme.Units.smallSpacing 351 spacing: Kube.Units.smallSpacing
354 352
355 Row { 353 Row {
356 spacing: KubeTheme.Units.smallSpacing 354 spacing: Kube.Units.smallSpacing
357 Text { text: "(inhouse)"} 355 Text { text: "(inhouse)"}
358 Text { text: "+49812324932"; opacity: 0.6 } 356 Text { text: "+49812324932"; opacity: 0.6 }
359 Item { width: KubeTheme.Units.smallSpacing; height: 1 } 357 Item { width: Kube.Units.smallSpacing; height: 1 }
360 } 358 }
361 Row { 359 Row {
362 spacing: KubeTheme.Units.smallSpacing 360 spacing: Kube.Units.smallSpacing
363 Text { text: "(mobile)"} 361 Text { text: "(mobile)"}
364 Text { text: "+49812324932"; opacity: 0.6 } 362 Text { text: "+49812324932"; opacity: 0.6 }
365 Item { width: KubeTheme.Units.smallSpacing; height: 1 } 363 Item { width: Kube.Units.smallSpacing; height: 1 }
366 } 364 }
367 Row { 365 Row {
368 spacing: KubeTheme.Units.smallSpacing 366 spacing: Kube.Units.smallSpacing
369 Text { text: "(private)"} 367 Text { text: "(private)"}
370 Text { text: "+49812324932"; opacity: 0.6 } 368 Text { text: "+49812324932"; opacity: 0.6 }
371 Item { width: KubeTheme.Units.smallSpacing; height: 1 } 369 Item { width: Kube.Units.smallSpacing; height: 1 }
372 } 370 }
373 } 371 }
374 372
375 Column { 373 Column {
376 id: address 374 id: address
377 375
378 width: personPageRoot.width - KubeTheme.Units.largeSpacing 376 width: personPageRoot.width - Kube.Units.largeSpacing
379 377
380 Text { text: "Albertstrasse 35a"} 378 Text { text: "Albertstrasse 35a"}
381 Text { text: "81767 Teststadt"} 379 Text { text: "81767 Teststadt"}
@@ -386,7 +384,7 @@ Popup {
386// 384//
387// width: parent.width 385// width: parent.width
388// 386//
389// spacing: KubeTheme.Units.smallSpacing 387// spacing: Kube.Units.smallSpacing
390// 388//
391// Text { 389// Text {
392// 390//
@@ -396,7 +394,7 @@ Popup {
396// GroupGrid { 394// GroupGrid {
397// id: groups 395// id: groups
398// 396//
399// width: root.width - KubeTheme.Units.largeSpacing 397// width: root.width - Kube.Units.largeSpacing
400// 398//
401// model: GroupModel1 {} 399// model: GroupModel1 {}
402// } 400// }
@@ -406,7 +404,7 @@ Popup {
406// 404//
407// width: parent.width 405// width: parent.width
408// 406//
409// spacing: KubeTheme.Units.smallSpacing 407// spacing: Kube.Units.smallSpacing
410// 408//
411// Text { 409// Text {
412// id: commonPeopleLabel 410// id: commonPeopleLabel
@@ -417,7 +415,7 @@ Popup {
417// PeopleGrid { 415// PeopleGrid {
418// id: commonPeople 416// id: commonPeople
419// 417//
420// width: root.width - KubeTheme.Units.largeSpacing 418// width: root.width - Kube.Units.largeSpacing
421// 419//
422// model: PeopleModel2 {} 420// model: PeopleModel2 {}
423// } 421// }
@@ -425,7 +423,7 @@ Popup {
425 423
426 Item { 424 Item {
427 width: parent.width 425 width: parent.width
428 height: KubeTheme.Units.largeSpacing 426 height: Kube.Units.largeSpacing
429 } 427 }
430 } 428 }
431 } 429 }
diff --git a/framework/qml/PositiveButton.qml b/framework/qml/PositiveButton.qml
index 83063668..37ddae51 100644
--- a/framework/qml/PositiveButton.qml
+++ b/framework/qml/PositiveButton.qml
@@ -17,14 +17,13 @@
17 */ 17 */
18 18
19import QtQuick 2.7 19import QtQuick 2.7
20import QtQuick.Controls 2.1 as Controls 20import QtQuick.Controls 2.0 as Controls
21import org.kube.components.theme 1.0 as KubeTheme
22 21
23Controls.AbstractButton { 22Controls.AbstractButton {
24 id: root 23 id: root
25 24
26 width: mainText.implicitWidth + KubeTheme.Units.largeSpacing * 2 25 width: mainText.implicitWidth + Kube.Units.largeSpacing * 2
27 height: mainText.implicitHeight + KubeTheme.Units.smallSpacing * 2 26 height: mainText.implicitHeight + Kube.Units.smallSpacing * 2
28 27
29 clip: true 28 clip: true
30 29
@@ -33,7 +32,7 @@ Controls.AbstractButton {
33 32
34 anchors.fill: parent 33 anchors.fill: parent
35 34
36 color: KubeTheme.Colors.positveColor 35 color: Kube.Colors.positveColor
37 } 36 }
38 37
39 Text { 38 Text {
@@ -41,7 +40,7 @@ Controls.AbstractButton {
41 40
42 anchors.centerIn: parent 41 anchors.centerIn: parent
43 42
44 color: KubeTheme.Colors.highlightedTextColor 43 color: Kube.Colors.highlightedTextColor
45 text: root.text 44 text: root.text
46 } 45 }
47} 46}
diff --git a/framework/qmldir b/framework/qmldir
index ad148543..b09567b6 100644
--- a/framework/qmldir
+++ b/framework/qmldir
@@ -11,7 +11,7 @@ EditAccountDialog 1.0 EditAccountDialog.qml
11OverlayDialog 1.0 OverlayDialog.qml 11OverlayDialog 1.0 OverlayDialog.qml
12Outbox 1.0 Outbox.qml 12Outbox 1.0 Outbox.qml
13People 1.0 People.qml 13People 1.0 People.qml
14Notification 1.0 Notification.qml 14NotificationPopup 1.0 Notification.qml
15Icon 1.0 Icon.qml 15Icon 1.0 Icon.qml
16Button 1.0 Button.qml 16Button 1.0 Button.qml
17PositiveButton 1.0 PositiveButton.qml 17PositiveButton 1.0 PositiveButton.qml
@@ -19,8 +19,4 @@ singleton Colors 1.0 Colors.qml
19singleton Icons 1.0 Icons.qml 19singleton Icons 1.0 Icons.qml
20singleton Units 1.0 Units.qml 20singleton Units 1.0 Units.qml
21 21
22plugin mailplugin 22plugin frameworkplugin
23plugin actionplugin
24plugin notificationplugin
25plugin settingsplugin
26plugin accountsplugin
diff --git a/framework/settings/settingsplugin.cpp b/framework/settings/settingsplugin.cpp
index 3a582d1f..c081b213 100644
--- a/framework/settings/settingsplugin.cpp
+++ b/framework/settings/settingsplugin.cpp
@@ -9,7 +9,6 @@
9 9
10void SettingsPlugin::registerTypes (const char *uri) 10void SettingsPlugin::registerTypes (const char *uri)
11{ 11{
12 Q_ASSERT(uri == QLatin1String("org.kube.framework.settings"));
13 12
14 // qmlRegisterType<ResourceListModel>(); 13 // qmlRegisterType<ResourceListModel>();
15 // qmlRegisterType<ResourcesController>(uri, 1, 0, "Resources"); 14 // qmlRegisterType<ResourcesController>(uri, 1, 0, "Resources");