revert: restore About dialog layout; minimal ScrollView width fix only

Put back the original About UI. Only change license label width binding
(availableWidth → width) and ScrollBar policy to avoid the open crash.
This commit is contained in:
Sebastian Palencsar
2026-06-22 17:32:59 +02:00
parent a9f286bfde
commit 315b5b60b5

View File

@@ -14,12 +14,6 @@ Dialog {
property string appVersion: Qt.application.version property string appVersion: Qt.application.version
property string buildId: "?" property string buildId: "?"
title: qsTr("About BearWave")
modal: true
anchors.centerIn: parent
width: compactMode ? 360 : 480
standardButtons: Dialog.Ok
readonly property string versionLine: { readonly property string versionLine: {
var version = root.appVersion var version = root.appVersion
if (version === undefined || version === null || version === "") if (version === undefined || version === null || version === "")
@@ -30,13 +24,25 @@ Dialog {
return qsTr("Version") + " " + String(version) + " · " + qsTr("build") + " " + String(build) return qsTr("Version") + " " + String(version) + " · " + qsTr("build") + " " + String(build)
} }
modal: true
anchors.centerIn: parent
width: compactMode ? 360 : 520
height: compactMode ? 560 : 680
standardButtons: Dialog.Ok
contentItem: ColumnLayout { contentItem: ColumnLayout {
spacing: 12 spacing: 16
ColumnLayout {
Layout.alignment: Qt.AlignHCenter
spacing: 6
Image { Image {
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
Layout.preferredWidth: 72 Layout.preferredWidth: 72
Layout.preferredHeight: 72 Layout.preferredHeight: 72
sourceSize.width: 72
sourceSize.height: 72
source: "qrc:/assets/app/bearwave.png" source: "qrc:/assets/app/bearwave.png"
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
smooth: true smooth: true
@@ -47,14 +53,14 @@ Dialog {
text: qsTr("BearWave") text: qsTr("BearWave")
color: BearTheme.textMain color: BearTheme.textMain
font.bold: true font.bold: true
font.pixelSize: 22 font.pixelSize: 26
} }
Label { Label {
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
text: qsTr("Internet Radio Player for KDE") text: qsTr("Internet Radio Player for KDE")
color: BearTheme.textMuted color: BearTheme.textMuted
font.pixelSize: 13 font.pixelSize: 14
} }
Label { Label {
@@ -63,42 +69,144 @@ Dialog {
color: BearTheme.textMuted color: BearTheme.textMuted
font.pixelSize: 12 font.pixelSize: 12
} }
}
ColumnLayout {
Layout.alignment: Qt.AlignHCenter
spacing: 8
Layout.topMargin: 8
Layout.bottomMargin: 8
Label { Label {
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
text: qsTr("Author: Sebastian Palencsár") text: qsTr("Author: Sebastian Palencsár")
color: BearTheme.textMain color: BearTheme.textMain
font.pixelSize: 13 font.bold: true
font.pixelSize: 14
} }
RowLayout { RowLayout {
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
spacing: 12 spacing: 16
Button { ToolButton {
text: qsTr("Website") Layout.preferredWidth: 40
Layout.preferredHeight: 40
onClicked: Qt.openUrlExternally("https://palencsar.pro") onClicked: Qt.openUrlExternally("https://palencsar.pro")
ToolTip.visible: hovered
ToolTip.text: qsTr("Open website")
contentItem: Item {
Image {
anchors.centerIn: parent
width: 19
height: 19
source: "qrc:/assets/ui/globe.svg"
fillMode: Image.PreserveAspectFit
smooth: true
}
}
background: Rectangle {
radius: 20
color: parent.hovered ? "#274261" : "#1f3147"
border.color: BearTheme.cardBorder
border.width: 1
}
} }
Button { ToolButton {
text: qsTr("GitHub") Layout.preferredWidth: 40
Layout.preferredHeight: 40
onClicked: Qt.openUrlExternally("https://github.com/spalencsar") onClicked: Qt.openUrlExternally("https://github.com/spalencsar")
ToolTip.visible: hovered
ToolTip.text: qsTr("Open GitHub")
contentItem: Item {
Image {
anchors.centerIn: parent
width: 19
height: 19
source: "qrc:/assets/ui/github.svg"
fillMode: Image.PreserveAspectFit
smooth: true
}
}
background: Rectangle {
radius: 20
color: parent.hovered ? "#274261" : "#1f3147"
border.color: BearTheme.cardBorder
border.width: 1
}
} }
Button { ToolButton {
text: qsTr("LinkedIn") Layout.preferredWidth: 40
Layout.preferredHeight: 40
onClicked: Qt.openUrlExternally("https://www.linkedin.com/in/spalencsar/") onClicked: Qt.openUrlExternally("https://www.linkedin.com/in/spalencsar/")
ToolTip.visible: hovered
ToolTip.text: qsTr("Open LinkedIn")
contentItem: Item {
Image {
anchors.centerIn: parent
width: 19
height: 19
source: "qrc:/assets/ui/linkedin.svg"
fillMode: Image.PreserveAspectFit
smooth: true
}
}
background: Rectangle {
radius: 20
color: parent.hovered ? "#274261" : "#1f3147"
border.color: BearTheme.cardBorder
border.width: 1
}
}
} }
} }
ColumnLayout {
Layout.fillWidth: true
Layout.fillHeight: true
spacing: 8
RowLayout {
Layout.fillWidth: true
Label { Label {
Layout.fillWidth: true Layout.fillWidth: true
Layout.preferredWidth: root.width - 48 text: qsTr("GNU GPLv3 License")
color: BearTheme.textMain
font.bold: true
}
Label {
text: qsTr("Copyright (c) 2026")
color: BearTheme.textMuted color: BearTheme.textMuted
font.pixelSize: 10 font.pixelSize: 11
}
}
Rectangle {
Layout.fillWidth: true
Layout.fillHeight: true
Layout.minimumHeight: 140
radius: 8
color: "#101a26"
border.color: BearTheme.cardBorder
ScrollView {
id: licenseScroll
anchors.fill: parent
anchors.margins: 10
clip: true
ScrollBar.vertical.policy: ScrollBar.AsNeeded
Label {
width: Math.max(licenseScroll.width, 1)
color: BearTheme.textMain
font.pixelSize: 11
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
horizontalAlignment: Text.AlignHCenter text: "This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>."
text: qsTr("Licensed under GNU GPLv3-or-later. Copyright (c) 2026 Sebastian Palencsar.") }
}
}
} }
} }
} }