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

@ -20,7 +20,11 @@ import QtQuick 2.13
import QtQuick.Layouts 1.12
import QtQuick.Controls 2.13
import Proton 4.0
ColumnLayout {
id: root
property var user
property var backend
@ -29,9 +33,10 @@ ColumnLayout {
Layout.fillHeight: true
//Layout.fillWidth: true
property var colorScheme
property ColorScheme colorScheme
TextField {
colorScheme: root.colorScheme
Layout.fillWidth: true
text: user !== undefined ? user.username : ""
@ -41,39 +46,57 @@ ColumnLayout {
}
}
RowLayout {
ColumnLayout {
Layout.fillWidth: true
Button {
//Layout.fillWidth: true
Switch {
id: userLoginSwitch
colorScheme: root.colorScheme
text: "Login"
enabled: user !== undefined && !user.loggedIn && user.username.length > 0
text: "LoggedIn"
enabled: user !== undefined && user.username.length > 0
onClicked: {
if (user === backend.loginUser) {
var newUserObject = backend.userComponent.createObject(backend, {username: user.username, loggedIn: true})
backend.users.append( { object: newUserObject } )
checked: user ? user.loggedIn : false
user.username = ""
user.resetLoginRequests()
onCheckedChanged: {
if (!user) {
return
}
user.loggedIn = true
user.resetLoginRequests()
if (checked) {
if (user === backend.loginUser) {
var newUserObject = backend.userComponent.createObject(backend, {username: user.username, loggedIn: true, setupGuideSeen: user.setupGuideSeen})
backend.users.append( { object: newUserObject } )
user.username = ""
user.resetLoginRequests()
return
}
user.loggedIn = true
user.resetLoginRequests()
return
} else {
user.loggedIn = false
user.resetLoginRequests()
}
}
}
Button {
//Layout.fillWidth: true
Switch {
colorScheme: root.colorScheme
text: "Logout"
enabled: user !== undefined && user.loggedIn && user.username.length > 0
text: "Setup guide seen"
enabled: user !== undefined && user.username.length > 0
onClicked: {
user.loggedIn = false
user.resetLoginRequests()
checked: user ? user.setupGuideSeen : false
onCheckedChanged: {
if (!user) {
return
}
user.setupGuideSeen = checked
}
}
}
@ -83,6 +106,7 @@ ColumnLayout {
Layout.fillWidth: true
Label {
colorScheme: root.colorScheme
id: loginLabel
text: "Login:"
@ -90,6 +114,7 @@ ColumnLayout {
}
Button {
colorScheme: root.colorScheme
text: "name/pass error"
enabled: user !== undefined && user.isLoginRequested && !user.isLogin2FARequested && !user.isLogin2PasswordProvided
@ -100,6 +125,7 @@ ColumnLayout {
}
Button {
colorScheme: root.colorScheme
text: "free user error"
enabled: user !== undefined && user.isLoginRequested
onClicked: {
@ -109,6 +135,7 @@ ColumnLayout {
}
Button {
colorScheme: root.colorScheme
text: "connection error"
enabled: user !== undefined && user.isLoginRequested
onClicked: {
@ -122,6 +149,7 @@ ColumnLayout {
Layout.fillWidth: true
Label {
colorScheme: root.colorScheme
id: faLabel
text: "2FA:"
@ -129,6 +157,7 @@ ColumnLayout {
}
Button {
colorScheme: root.colorScheme
text: "request"
enabled: user !== undefined && user.isLoginRequested && !user.isLogin2FARequested && !user.isLogin2PasswordRequested
@ -139,6 +168,7 @@ ColumnLayout {
}
Button {
colorScheme: root.colorScheme
text: "error"
enabled: user !== undefined && user.isLogin2FAProvided && !(user.isLogin2PasswordRequested && !user.isLogin2PasswordProvided)
@ -149,6 +179,7 @@ ColumnLayout {
}
Button {
colorScheme: root.colorScheme
text: "Abort"
enabled: user !== undefined && user.isLogin2FAProvided && !(user.isLogin2PasswordRequested && !user.isLogin2PasswordProvided)
@ -163,6 +194,7 @@ ColumnLayout {
Layout.fillWidth: true
Label {
colorScheme: root.colorScheme
id: passLabel
text: "2 Password:"
@ -170,6 +202,7 @@ ColumnLayout {
}
Button {
colorScheme: root.colorScheme
text: "request"
enabled: user !== undefined && user.isLoginRequested && !user.isLogin2PasswordRequested && !(user.isLogin2FARequested && !user.isLogin2FAProvided)
@ -180,6 +213,7 @@ ColumnLayout {
}
Button {
colorScheme: root.colorScheme
text: "error"
enabled: user !== undefined && user.isLogin2PasswordProvided && !(user.isLogin2FARequested && !user.isLogin2FAProvided)
@ -191,6 +225,7 @@ ColumnLayout {
}
Button {
colorScheme: root.colorScheme
text: "Abort"
enabled: user !== undefined && user.isLogin2PasswordProvided && !(user.isLogin2FARequested && !user.isLogin2FAProvided)

View File

@ -24,7 +24,7 @@ import Proton 4.0
ColumnLayout {
id: root
property var colorScheme
property ColorScheme colorScheme
property var backend
property alias currentIndex: usersListView.currentIndex
@ -46,10 +46,10 @@ ColumnLayout {
anchors.margins: 10
Label {
colorScheme: root.colorScheme
text: modelData.username
anchors.margins: 10
anchors.fill: parent
color: root.colorScheme.text_norm
MouseArea {
anchors.fill: parent
@ -69,14 +69,25 @@ ColumnLayout {
Layout.fillWidth: true
Button {
colorScheme: root.colorScheme
text: "+"
onClicked: {
var newUserObject = backend.userComponent.createObject(backend, { username: "test@protonmail.com", loggedIn: false } )
var newUserObject = backend.userComponent.createObject(backend)
newUserObject.username = backend.loginUser.username.length > 0 ? backend.loginUser.username : "test@protonmail.com"
newUserObject.loggedIn = true
newUserObject.setupGuideSeen = true // backend.loginUser.setupGuideSeen
backend.loginUser.username = ""
backend.loginUser.loggedIn = false
backend.loginUser.setupGuideSeen = false
backend.users.append( { object: newUserObject } )
}
}
Button {
colorScheme: root.colorScheme
text: "-"
enabled: usersListView.currentIndex != 0