fix(ui): restore navigation when viewing the About page

Keep a compact header navigation bar visible on the About page so users
can return to station browsing. Make the sidebar logo navigate home and
add World to the compact header navigation.
This commit is contained in:
Sebastian Palencsar
2026-06-27 13:26:32 +02:00
parent 5d54d2fbe2
commit e219b060a4
5 changed files with 160 additions and 69 deletions

View File

@@ -184,7 +184,7 @@ ApplicationWindow {
Rectangle { Rectangle {
id: headerPanel id: headerPanel
height: currentPage === "about" && !root.compactMode ? 1 : headerContent.implicitHeight + 18 height: headerContent.implicitHeight + 18
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
anchors.top: parent.top anchors.top: parent.top
@@ -206,13 +206,12 @@ ApplicationWindow {
anchors.fill: parent anchors.fill: parent
anchors.margins: 9 anchors.margins: 9
spacing: 8 spacing: 8
visible: !(currentPage === "about" && !root.compactMode)
HeaderNavigation { HeaderNavigation {
Layout.fillWidth: true Layout.fillWidth: true
app: root app: root
compactMode: root.compactMode compactMode: root.compactMode
visible: root.compactMode visible: root.compactMode || currentPage === "about"
} }
Rectangle { Rectangle {
@@ -220,7 +219,7 @@ ApplicationWindow {
Layout.preferredHeight: 1 Layout.preferredHeight: 1
color: BearTheme.cardBorder color: BearTheme.cardBorder
opacity: 0.6 opacity: 0.6
visible: root.compactMode visible: root.compactMode || currentPage === "about"
} }
SearchToolbar { SearchToolbar {

View File

@@ -13,13 +13,66 @@ Item {
required property var app required property var app
required property bool compactMode required property bool compactMode
implicitWidth: compactNav.implicitWidth implicitWidth: root.compactMode ? compactNav.implicitWidth : desktopNav.implicitWidth
implicitHeight: compactNav.implicitHeight implicitHeight: root.compactMode ? compactNav.implicitHeight : desktopNav.implicitHeight
RowLayout {
id: desktopNav
anchors.left: parent.left
anchors.right: parent.right
visible: !root.compactMode
spacing: 8
Button {
text: qsTr("Top")
highlighted: app.currentPage === "top"
onClicked: app.navigateToTop()
}
Button {
text: qsTr("DE")
highlighted: app.currentPage === "german"
onClicked: app.navigateToGerman()
}
Button {
text: qsTr("NL")
highlighted: app.currentPage === "dutch"
onClicked: app.navigateToDutch()
}
Button {
text: qsTr("World")
highlighted: app.currentPage === "world"
onClicked: app.navigateToWorld()
}
Button {
text: qsTr("Favorites")
highlighted: app.currentPage === "favorites"
onClicked: app.navigateToFavorites()
}
Button {
text: qsTr("History")
highlighted: app.currentPage === "history"
onClicked: app.navigateToHistory()
}
Item { Layout.fillWidth: true }
Button {
text: qsTr("About")
highlighted: app.currentPage === "about"
onClicked: app.navigateToAbout()
}
}
ColumnLayout { ColumnLayout {
id: compactNav id: compactNav
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
visible: root.compactMode
spacing: 8 spacing: 8
RowLayout { RowLayout {
@@ -93,6 +146,12 @@ Item {
highlighted: app.currentPage === "history" highlighted: app.currentPage === "history"
onClicked: app.navigateToHistory() onClicked: app.navigateToHistory()
} }
Button {
text: qsTr("World")
highlighted: app.currentPage === "world"
onClicked: app.navigateToWorld()
}
} }
} }
} }

View File

@@ -23,28 +23,37 @@ Rectangle {
anchors.margins: 20 anchors.margins: 20
spacing: 14 spacing: 14
RowLayout { MouseArea {
Layout.fillWidth: true Layout.fillWidth: true
spacing: 10
Layout.bottomMargin: 8 Layout.bottomMargin: 8
height: brandRow.implicitHeight
hoverEnabled: true
cursorShape: Qt.PointingHandCursor
onClicked: app.navigateToTop()
Image { RowLayout {
Layout.preferredWidth: 34 id: brandRow
Layout.preferredHeight: 34 anchors.fill: parent
source: "qrc:/assets/app/bearwave.png" spacing: 10
fillMode: Image.PreserveAspectFit
smooth: true
mipmap: true
}
Image { Image {
Layout.fillWidth: true Layout.preferredWidth: 34
Layout.preferredHeight: 28 Layout.preferredHeight: 34
source: "qrc:/assets/app/bearwave_line.png" source: "qrc:/assets/app/bearwave.png"
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
horizontalAlignment: Image.AlignLeft smooth: true
smooth: true mipmap: true
mipmap: true }
Image {
Layout.fillWidth: true
Layout.preferredHeight: 28
source: "qrc:/assets/app/bearwave_line.png"
fillMode: Image.PreserveAspectFit
horizontalAlignment: Image.AlignLeft
smooth: true
mipmap: true
}
} }
} }

View File

@@ -45,8 +45,8 @@
</message> </message>
<message> <message>
<location filename="../src/qml/components/AboutPage.qml" line="25"/> <location filename="../src/qml/components/AboutPage.qml" line="25"/>
<source>Build</source> <source>Build</source>
<translation>Build-Nr.</translation> <translation>Build-Nr.</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/AboutPage.qml" line="30"/> <location filename="../src/qml/components/AboutPage.qml" line="30"/>
@@ -146,7 +146,7 @@
<message> <message>
<location filename="../src/qml/components/AboutPage.qml" line="224"/> <location filename="../src/qml/components/AboutPage.qml" line="224"/>
<source>BearWave uses the following frameworks, services, and desktop standards. These components are not relicensed by BearWave.</source> <source>BearWave uses the following frameworks, services, and desktop standards. These components are not relicensed by BearWave.</source>
<translation>BearWave nutzt die folgenden Rahmenwerke, Dienste und Desktop-Standards. Diese Komponenten werden nicht durch BearWave neu lizenziert.</translation> <translation>BearWave nutzt die folgenden Rahmenwerke, Dienste und Desktop-Standards. Diese Komponenten werden nicht durch BearWave neu lizenziert.</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/AboutPage.qml" line="298"/> <location filename="../src/qml/components/AboutPage.qml" line="298"/>
@@ -236,13 +236,13 @@
</message> </message>
<message> <message>
<location filename="../src/qml/theme/BearTheme.qml" line="30"/> <location filename="../src/qml/theme/BearTheme.qml" line="30"/>
<source>News / Talk</source> <source>News / Talk</source>
<translation>Nachrichten / Talk</translation> <translation>Nachrichten / Talk</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/theme/BearTheme.qml" line="31"/> <location filename="../src/qml/theme/BearTheme.qml" line="31"/>
<source>Soundtracks</source> <source>Soundtracks</source>
<translation>Filmmusik</translation> <translation>Filmmusik</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/theme/BearTheme.qml" line="32"/> <location filename="../src/qml/theme/BearTheme.qml" line="32"/>
@@ -291,27 +291,38 @@
<context> <context>
<name>HeaderNavigation</name> <name>HeaderNavigation</name>
<message> <message>
<location filename="../src/qml/components/HeaderNavigation.qml" line="68"/> <location filename="../src/qml/components/HeaderNavigation.qml" line="27"/>
<location filename="../src/qml/components/HeaderNavigation.qml" line="121"/>
<source>Top</source> <source>Top</source>
<translation>Top</translation> <translation>Top</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/HeaderNavigation.qml" line="74"/> <location filename="../src/qml/components/HeaderNavigation.qml" line="33"/>
<location filename="../src/qml/components/HeaderNavigation.qml" line="127"/>
<source>DE</source> <source>DE</source>
<translation>DE</translation> <translation>DE</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/HeaderNavigation.qml" line="80"/> <location filename="../src/qml/components/HeaderNavigation.qml" line="39"/>
<location filename="../src/qml/components/HeaderNavigation.qml" line="133"/>
<source>NL</source> <source>NL</source>
<translation>NL</translation> <translation>NL</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/HeaderNavigation.qml" line="86"/> <location filename="../src/qml/components/HeaderNavigation.qml" line="45"/>
<location filename="../src/qml/components/HeaderNavigation.qml" line="151"/>
<source>World</source>
<translation>Welt</translation>
</message>
<message>
<location filename="../src/qml/components/HeaderNavigation.qml" line="51"/>
<location filename="../src/qml/components/HeaderNavigation.qml" line="139"/>
<source>Favorites</source> <source>Favorites</source>
<translation>Favoriten</translation> <translation>Favoriten</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/HeaderNavigation.qml" line="92"/> <location filename="../src/qml/components/HeaderNavigation.qml" line="57"/>
<location filename="../src/qml/components/HeaderNavigation.qml" line="145"/>
<source>History</source> <source>History</source>
<translation>Verlauf</translation> <translation>Verlauf</translation>
</message> </message>
@@ -320,9 +331,10 @@
<translation type="obsolete">Manuell +</translation> <translation type="obsolete">Manuell +</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/HeaderNavigation.qml" line="46"/> <location filename="../src/qml/components/HeaderNavigation.qml" line="65"/>
<source>About</source> <location filename="../src/qml/components/HeaderNavigation.qml" line="99"/>
<translation>Info</translation> <source>About</source>
<translation>Info</translation>
</message> </message>
<message> <message>
<source>Resume</source> <source>Resume</source>
@@ -345,7 +357,7 @@
<translation>BearWave</translation> <translation>BearWave</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/Main.qml" line="245"/> <location filename="../src/qml/Main.qml" line="244"/>
<source>Error: </source> <source>Error: </source>
<translation>Fehler: </translation> <translation>Fehler: </translation>
</message> </message>
@@ -553,42 +565,42 @@
<context> <context>
<name>SidebarNavigation</name> <name>SidebarNavigation</name>
<message> <message>
<location filename="../src/qml/components/SidebarNavigation.qml" line="52"/> <location filename="../src/qml/components/SidebarNavigation.qml" line="61"/>
<source>Stations</source> <source>Stations</source>
<translation>Sender</translation> <translation>Sender</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/SidebarNavigation.qml" line="64"/> <location filename="../src/qml/components/SidebarNavigation.qml" line="73"/>
<source>Top Global</source> <source>Top Global</source>
<translation>Weltweite Top-Sender</translation> <translation>Weltweite Top-Sender</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/SidebarNavigation.qml" line="71"/> <location filename="../src/qml/components/SidebarNavigation.qml" line="80"/>
<source>Germany</source> <source>Germany</source>
<translation>Deutschland</translation> <translation>Deutschland</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/SidebarNavigation.qml" line="78"/> <location filename="../src/qml/components/SidebarNavigation.qml" line="87"/>
<source>Netherlands</source> <source>Netherlands</source>
<translation>Niederlande</translation> <translation>Niederlande</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/SidebarNavigation.qml" line="93"/> <location filename="../src/qml/components/SidebarNavigation.qml" line="102"/>
<source>Library</source> <source>Library</source>
<translation>Mediathek</translation> <translation>Mediathek</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/SidebarNavigation.qml" line="106"/> <location filename="../src/qml/components/SidebarNavigation.qml" line="115"/>
<source>Favorites</source> <source>Favorites</source>
<translation>Favoriten</translation> <translation>Favoriten</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/SidebarNavigation.qml" line="113"/> <location filename="../src/qml/components/SidebarNavigation.qml" line="122"/>
<source>History</source> <source>History</source>
<translation>Verlauf</translation> <translation>Verlauf</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/SidebarNavigation.qml" line="85"/> <location filename="../src/qml/components/SidebarNavigation.qml" line="94"/>
<source>Worldwide</source> <source>Worldwide</source>
<translation>Weltweit</translation> <translation>Weltweit</translation>
</message> </message>
@@ -605,17 +617,17 @@
<translation type="vanished">MEDIATHEK</translation> <translation type="vanished">MEDIATHEK</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/SidebarNavigation.qml" line="127"/> <location filename="../src/qml/components/SidebarNavigation.qml" line="136"/>
<source>Add Station</source> <source>Add Station</source>
<translation>Sender hinzufügen</translation> <translation>Sender hinzufügen</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/SidebarNavigation.qml" line="134"/> <location filename="../src/qml/components/SidebarNavigation.qml" line="143"/>
<source>About BearWave</source> <source>About BearWave</source>
<translation>Über BearWave</translation> <translation>Über BearWave</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/SidebarNavigation.qml" line="142"/> <location filename="../src/qml/components/SidebarNavigation.qml" line="151"/>
<source>Resume</source> <source>Resume</source>
<translation>Fortsetzen</translation> <translation>Fortsetzen</translation>
</message> </message>

View File

@@ -299,27 +299,38 @@
<context> <context>
<name>HeaderNavigation</name> <name>HeaderNavigation</name>
<message> <message>
<location filename="../src/qml/components/HeaderNavigation.qml" line="68"/> <location filename="../src/qml/components/HeaderNavigation.qml" line="27"/>
<location filename="../src/qml/components/HeaderNavigation.qml" line="121"/>
<source>Top</source> <source>Top</source>
<translation>Топ</translation> <translation>Топ</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/HeaderNavigation.qml" line="74"/> <location filename="../src/qml/components/HeaderNavigation.qml" line="33"/>
<location filename="../src/qml/components/HeaderNavigation.qml" line="127"/>
<source>DE</source> <source>DE</source>
<translation>DE</translation> <translation>DE</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/HeaderNavigation.qml" line="80"/> <location filename="../src/qml/components/HeaderNavigation.qml" line="39"/>
<location filename="../src/qml/components/HeaderNavigation.qml" line="133"/>
<source>NL</source> <source>NL</source>
<translation>NL</translation> <translation>NL</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/HeaderNavigation.qml" line="86"/> <location filename="../src/qml/components/HeaderNavigation.qml" line="45"/>
<location filename="../src/qml/components/HeaderNavigation.qml" line="151"/>
<source>World</source>
<translation>Мир</translation>
</message>
<message>
<location filename="../src/qml/components/HeaderNavigation.qml" line="51"/>
<location filename="../src/qml/components/HeaderNavigation.qml" line="139"/>
<source>Favorites</source> <source>Favorites</source>
<translation>Избранные</translation> <translation>Избранные</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/HeaderNavigation.qml" line="92"/> <location filename="../src/qml/components/HeaderNavigation.qml" line="57"/>
<location filename="../src/qml/components/HeaderNavigation.qml" line="145"/>
<source>History</source> <source>History</source>
<translation>История</translation> <translation>История</translation>
</message> </message>
@@ -328,7 +339,8 @@
<translation type="vanished">Вручную +</translation> <translation type="vanished">Вручную +</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/HeaderNavigation.qml" line="46"/> <location filename="../src/qml/components/HeaderNavigation.qml" line="65"/>
<location filename="../src/qml/components/HeaderNavigation.qml" line="99"/>
<source>About</source> <source>About</source>
<translation>О BearWave</translation> <translation>О BearWave</translation>
</message> </message>
@@ -353,7 +365,7 @@
<translation>BearWave</translation> <translation>BearWave</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/Main.qml" line="245"/> <location filename="../src/qml/Main.qml" line="244"/>
<source>Error: </source> <source>Error: </source>
<translation>Ошибка: </translation> <translation>Ошибка: </translation>
</message> </message>
@@ -561,42 +573,42 @@
<context> <context>
<name>SidebarNavigation</name> <name>SidebarNavigation</name>
<message> <message>
<location filename="../src/qml/components/SidebarNavigation.qml" line="52"/> <location filename="../src/qml/components/SidebarNavigation.qml" line="61"/>
<source>Stations</source> <source>Stations</source>
<translation>Станции</translation> <translation>Станции</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/SidebarNavigation.qml" line="64"/> <location filename="../src/qml/components/SidebarNavigation.qml" line="73"/>
<source>Top Global</source> <source>Top Global</source>
<translation>Всемирный топ</translation> <translation>Всемирный топ</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/SidebarNavigation.qml" line="71"/> <location filename="../src/qml/components/SidebarNavigation.qml" line="80"/>
<source>Germany</source> <source>Germany</source>
<translation>Германия</translation> <translation>Германия</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/SidebarNavigation.qml" line="78"/> <location filename="../src/qml/components/SidebarNavigation.qml" line="87"/>
<source>Netherlands</source> <source>Netherlands</source>
<translation>Нидерланды</translation> <translation>Нидерланды</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/SidebarNavigation.qml" line="93"/> <location filename="../src/qml/components/SidebarNavigation.qml" line="102"/>
<source>Library</source> <source>Library</source>
<translation>Библиотека</translation> <translation>Библиотека</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/SidebarNavigation.qml" line="106"/> <location filename="../src/qml/components/SidebarNavigation.qml" line="115"/>
<source>Favorites</source> <source>Favorites</source>
<translation>Избранные</translation> <translation>Избранные</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/SidebarNavigation.qml" line="113"/> <location filename="../src/qml/components/SidebarNavigation.qml" line="122"/>
<source>History</source> <source>History</source>
<translation>История</translation> <translation>История</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/SidebarNavigation.qml" line="85"/> <location filename="../src/qml/components/SidebarNavigation.qml" line="94"/>
<source>Worldwide</source> <source>Worldwide</source>
<translation>Весь мир</translation> <translation>Весь мир</translation>
</message> </message>
@@ -605,17 +617,17 @@
<translation type="obsolete">Поиск</translation> <translation type="obsolete">Поиск</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/SidebarNavigation.qml" line="127"/> <location filename="../src/qml/components/SidebarNavigation.qml" line="136"/>
<source>Add Station</source> <source>Add Station</source>
<translation>Добавить станцию</translation> <translation>Добавить станцию</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/SidebarNavigation.qml" line="134"/> <location filename="../src/qml/components/SidebarNavigation.qml" line="143"/>
<source>About BearWave</source> <source>About BearWave</source>
<translation>О BearWave</translation> <translation>О BearWave</translation>
</message> </message>
<message> <message>
<location filename="../src/qml/components/SidebarNavigation.qml" line="142"/> <location filename="../src/qml/components/SidebarNavigation.qml" line="151"/>
<source>Resume</source> <source>Resume</source>
<translation>Продолжить</translation> <translation>Продолжить</translation>
</message> </message>