GODT-22: Facelift

- GODT-1199: Add menu to status window
- GODT-22: use ColorImage instead of IconLabel
- GODT-22: remove banners from MainWindow
- GODT-1199: Fix separator width
- GODT-1199: Fix StatusWindow button position
- GODT-1198: Open main window on startup if no users
- GODT-1199: Fix avatar text color
- GODT-1198: refactor main window layout
- GODT-22: add missing components to qmldir
- GODT-22: refactor components having Layout as root item
- GODT-22: add more user controls
- GODT-1199: Add status window resize and maximum height
- GODT-22: WIP: notification arch
- GODT-22: Notifications WIP
- GODT-22: Fix notification filter, topmost notification
- GODT-1199: Add notifications to status window
- GODT-22: Add strict typization to colorScheme variable
- GODT-1198: WIP Notifications, dialogs and banners
- GODT-22: Add backend notifications (Banners & Dialogs)

D
This commit is contained in:
Alexander Bilyak
2021-08-04 14:00:31 +02:00
committed by Jakub
parent 6bd0739013
commit 0a9748a15d
51 changed files with 3277 additions and 1056 deletions

View File

@ -18,92 +18,107 @@
import QtQuick 2.13
import QtQuick.Layouts 1.12
import QtQuick.Controls 2.12
import QtQuick.Controls.impl 2.12
import Proton 4.0
RowLayout {
Item {
id:root
property var colorScheme
property var window
property ColorScheme colorScheme
property var backend
property var user: { "username": "janedoe@protonmail.com" }
property var user
ColumnLayout {
Layout.fillHeight: true
Layout.leftMargin: 80
Layout.rightMargin: 80
Layout.topMargin: 30
Layout.bottomMargin: 70
signal dismissed()
ProtonLabel {
text: qsTr("Set up email client")
font.weight: ProtonStyle.fontWidth_700
state: "heading"
}
implicitHeight: children[0].implicitHeight
implicitWidth: children[0].implicitWidth
ProtonLabel {
text: user.username
color: root.colorScheme.text_weak
state: "lead"
}
RowLayout {
anchors.fill: parent
spacing: 0
ProtonLabel {
Layout.topMargin: 32
text: qsTr("Choose an email client")
font.weight: ProtonStyle.fontWidth_600
state: "body"
}
ColumnLayout {
Layout.fillHeight: true
Layout.leftMargin: 80
Layout.rightMargin: 80
Layout.topMargin: 30
Layout.bottomMargin: 70
spacing: 0
ListModel {
id: clients
ListElement{name : "Apple Mail" ; iconSource : "./icons/ic-apple-mail.svg" }
ListElement{name : "Microsoft Outlook" ; iconSource : "./icons/ic-microsoft-outlook.svg" }
ListElement{name : "Mozilla Thunderbird" ; iconSource : "./icons/ic-mozilla-thunderbird.svg" }
ListElement{name : "Other" ; iconSource : "./icons/ic-other-mail-clients.svg" }
}
Label {
colorScheme: root.colorScheme
text: qsTr("Set up email client")
type: Label.LabelType.Heading
}
Label {
colorScheme: root.colorScheme
text: user ? user.username : ""
color: root.colorScheme.text_weak
type: Label.LabelType.Lead
}
Label {
colorScheme: root.colorScheme
Layout.topMargin: 32
text: qsTr("Choose an email client")
type: Label.LabelType.Body_semibold
}
ListModel {
id: clients
ListElement{name : "Apple Mail" ; iconSource : "./icons/ic-apple-mail.svg" }
ListElement{name : "Microsoft Outlook" ; iconSource : "./icons/ic-microsoft-outlook.svg" }
ListElement{name : "Mozilla Thunderbird" ; iconSource : "./icons/ic-mozilla-thunderbird.svg" }
ListElement{name : "Other" ; iconSource : "./icons/ic-other-mail-clients.svg" }
}
Repeater {
model: clients
Repeater {
model: clients
ColumnLayout {
RowLayout {
Layout.topMargin: 12
Layout.bottomMargin: 12
Layout.leftMargin: 16
Layout.rightMargin: 16
ColumnLayout {
RowLayout {
Layout.topMargin: 12
Layout.bottomMargin: 12
Layout.leftMargin: 16
Layout.rightMargin: 16
IconLabel {
icon.source: model.iconSource
icon.height: 36
ColorImage {
source: model.iconSource
height: 36
}
Label {
colorScheme: root.colorScheme
Layout.leftMargin: 12
text: model.name
type: Label.LabelType.Body
}
}
ProtonLabel {
Layout.leftMargin: 12
text: model.name
state: "body"
Rectangle {
Layout.fillWidth: true
Layout.preferredHeight: 1
color: root.colorScheme.border_weak
}
}
Rectangle {
Layout.fillWidth: true
Layout.preferredHeight: 1
color: root.colorScheme.border_weak
}
}
}
Item { Layout.fillHeight: true }
Item { Layout.fillHeight: true }
Button {
text: qsTr("Set up later")
flat: true
Button {
colorScheme: root.colorScheme
text: qsTr("Set up later")
flat: true
onClicked: {
root.window.showSetup = false
root.reset()
onClicked: {
user.setupGuideSeen = true
root.dismissed()
}
}
}
}