diff --git a/qml/qt6/DatabaseManager.qml b/qml/qt6/DatabaseManager.qml index 5052b0862..59b445e15 100644 --- a/qml/qt6/DatabaseManager.qml +++ b/qml/qt6/DatabaseManager.qml @@ -66,8 +66,11 @@ Rectangle { text: "Import a JSON dump into the active backend (" + backends[actBk].name + ")." } CTextField { label: "Import file" - placeholderText: "/path/to/dbal-export.json"; Layout.fillWidth: true } - CAlert { severity: "warning"; text: "Existing records with matching IDs will be overwritten." } + placeholderText: "/path/to/dbal-export.json" + Layout.fillWidth: true } + CAlert { severity: "warning" + text: "Existing records with matching IDs " + + "will be overwritten." } } } ColumnLayout { @@ -76,17 +79,21 @@ Rectangle { Layout.fillWidth: true; spacing: 12 CText { variant: "h3"; text: "Database Manager" } CStatusBadge { status: "success" - text: Logic.connectedCount(backends) + " / " + backends.length + " connected" } + text: Logic.connectedCount(backends) + " / " + backends.length + + " connected" } CBadge { text: useLiveData ? "Connected to DBAL" : "Mock Data" badgeColor: useLiveData ? Theme.success : Theme.warning } Item { Layout.fillWidth: true } - CButton { text: "Export"; variant: "ghost"; onClicked: showExpDlg = true } - CButton { text: "Import"; variant: "ghost"; onClicked: showImpDlg = true } + CButton { text: "Export" + variant: "ghost"; onClicked: showExpDlg = true } + CButton { text: "Import" + variant: "ghost"; onClicked: showImpDlg = true } } CDatabaseStatsRow { totalRecords: Logic.totalRecords(backends).toLocaleString() totalSize: Logic.formatSize(Logic.totalSize(backends)) - activeBackend: backends[actBk].name; adapterPattern: adPats[root.adPat] + activeBackend: backends[actBk].name + adapterPattern: adPats[root.adPat] } RowLayout { Layout.fillWidth: true; Layout.fillHeight: true; spacing: 16 @@ -96,8 +103,10 @@ Rectangle { Layout.fillWidth: true; Layout.fillHeight: true; spacing: 16 CBackendDetailPanel { backend: backends[selBk]; isActive: selBk === actBk - testingIndex: root.testIdx; backendIndex: selBk; testResult: testRes[selBk] - onTestConnectionRequested: Logic.testConnectionLive(root, dbal, testTimer, selBk) + testingIndex: root.testIdx + backendIndex: selBk; testResult: testRes[selBk] + onTestConnectionRequested: Logic.testConnectionLive(root, + dbal, testTimer, selBk) onSetActiveRequested: actBk = selBk } CDatabaseEnvConfig { diff --git a/qml/qt6/FrontPage.qml b/qml/qt6/FrontPage.qml index ff791f4b5..5903bec9b 100644 --- a/qml/qt6/FrontPage.qml +++ b/qml/qt6/FrontPage.qml @@ -47,18 +47,23 @@ Rectangle { Layout.leftMargin: 40; Layout.rightMargin: 40; spacing: 24 CText { text: "Access Levels"; font.pixelSize: 22 font.weight: Font.Bold; color: onSurface - Layout.fillWidth: true; horizontalAlignment: Text.AlignHCenter } + Layout.fillWidth: true + horizontalAlignment: Text.AlignHCenter } GridLayout { Layout.fillWidth: true; columnSpacing: 12; rowSpacing: 12 - columns: Math.max(1, Math.min(5, Math.floor((parent.width + 12) / 220))) + columns: Math.max(1, Math.min(5, Math.floor((parent.width + + 12) / 220))) Repeater { model: levels delegate: CLevelCard { Layout.fillWidth: true; Layout.preferredHeight: 190 level: modelData.level; name: modelData.name - accent: modelData.accent; desc: modelData.desc; tags: modelData.tags - locked: modelData.level > appWindow.currentLevel; isDark: root.isDark - onClicked: Logic.onLevelClicked(modelData, appWindow) + accent: modelData.accent + desc: modelData.desc; tags: modelData.tags + locked: modelData.level > appWindow.currentLevel + isDark: root.isDark + onClicked: Logic.onLevelClicked(modelData, + appWindow) } } } @@ -66,11 +71,15 @@ Rectangle { ColumnLayout { Layout.fillWidth: true; Layout.topMargin: 48 Layout.leftMargin: 40; Layout.rightMargin: 40; spacing: 24 - CText { text: "Stack"; font.pixelSize: 22; font.weight: Font.Bold - color: onSurface; Layout.fillWidth: true; horizontalAlignment: Text.AlignHCenter } + CText { text: "Stack" + font.pixelSize: 22; font.weight: Font.Bold + color: onSurface + Layout.fillWidth: true + horizontalAlignment: Text.AlignHCenter } GridLayout { Layout.fillWidth: true; columnSpacing: 12; rowSpacing: 12 - columns: Math.max(1, Math.min(3, Math.floor((parent.width + 12) / 260))) + columns: Math.max(1, Math.min(3, Math.floor((parent.width + + 12) / 260))) Repeater { model: techStack delegate: CTechCard { Layout.fillWidth: true name: modelData.name; desc: modelData.desc @@ -80,20 +89,28 @@ Rectangle { ColumnLayout { Layout.fillWidth: true; Layout.topMargin: 48 Layout.leftMargin: 40; Layout.rightMargin: 40; spacing: 20 - CText { text: "Status"; font.pixelSize: 22; font.weight: Font.Bold - color: onSurface; Layout.fillWidth: true; horizontalAlignment: Text.AlignHCenter } + CText { text: "Status" + font.pixelSize: 22; font.weight: Font.Bold + color: onSurface + Layout.fillWidth: true + horizontalAlignment: Text.AlignHCenter } RowLayout { Layout.fillWidth: true; spacing: 10 Repeater { model: services delegate: CServiceStatus { Layout.fillWidth: true - name: modelData.name; status: modelData.status; isDark: root.isDark } } + name: modelData.name + status: modelData.status + isDark: root.isDark } } } } ColumnLayout { Layout.fillWidth: true; Layout.topMargin: 48 Layout.leftMargin: 40; Layout.rightMargin: 40; spacing: 20 - CText { text: "Quick Access"; font.pixelSize: 22; font.weight: Font.Bold - color: onSurface; Layout.fillWidth: true; horizontalAlignment: Text.AlignHCenter } + CText { text: "Quick Access" + font.pixelSize: 22; font.weight: Font.Bold + color: onSurface + Layout.fillWidth: true + horizontalAlignment: Text.AlignHCenter } RowLayout { Layout.fillWidth: true; spacing: 10 Repeater { @@ -103,13 +120,15 @@ Rectangle { username: modelData.user; password: modelData.pass label: modelData.label; level: modelData.level accent: modelData.accent; isDark: root.isDark - onLogin: appWindow.login(modelData.user, modelData.pass) + onLogin: appWindow.login(modelData.user, + modelData.pass) } } } } Item { Layout.preferredHeight: 48 } - CFrontPageFooter { surfaceColor: surfaceContainer; textColor: onSurfaceVariant; isDark: root.isDark } + CFrontPageFooter { surfaceColor: surfaceContainer + textColor: onSurfaceVariant; isDark: root.isDark } } } } diff --git a/qml/qt6/SMTPConfigEditor.qml b/qml/qt6/SMTPConfigEditor.qml index c53e35bdc..4191b8a9d 100644 --- a/qml/qt6/SMTPConfigEditor.qml +++ b/qml/qt6/SMTPConfigEditor.qml @@ -4,7 +4,8 @@ import "qmllib/MetaBuilder" import "qmllib/MetaBuilder/SmtpLogic.js" as Logic Rectangle { id: se; color: "transparent" - property string smtpHost: "smtp.example.com"; property string smtpPort: "587" + property string smtpHost: "smtp.example.com" + property string smtpPort: "587" property string smtpUsername: ""; property string smtpPassword: "" property int encryptionIndex: 1; property var encryptionOptions: [] property string fromName: "MetaBuilder" @@ -77,15 +78,25 @@ Rectangle { connectionStatus: se.connectionStatus onHostEdited: function(v) { smtpHost = v; isDirty = true } onPortEdited: function(v) { smtpPort = v; isDirty = true } - onUsernameEdited: function(v) { smtpUsername = v; isDirty = true } - onPasswordEdited: function(v) { smtpPassword = v; isDirty = true } - onEncryptionEdited: function(i) { encryptionIndex = i; isDirty = true } + onUsernameEdited: function(v) { + smtpUsername = v; isDirty = true + } + onPasswordEdited: function(v) { + smtpPassword = v; isDirty = true + } + onEncryptionEdited: function(i) { + encryptionIndex = i; isDirty = true + } onTestRequested: Logic.testConnection(se, connTimer) } CSmtpSenderForm { fromName: se.fromName; fromEmail: se.fromEmail - onFromNameEdited: function(v) { se.fromName = v; isDirty = true } - onFromEmailEdited: function(v) { se.fromEmail = v; isDirty = true } + onFromNameEdited: function(v) { + se.fromName = v; isDirty = true + } + onFromEmailEdited: function(v) { + se.fromEmail = v; isDirty = true + } } } CSmtpTestEmailForm {