2026-03-23 09:12:20 +00:00
|
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
|
// SPDX-FileCopyrightText: 2026 A-La-Karte Contributors
|
|
|
|
|
|
|
|
|
|
import QtQuick
|
|
|
|
|
import QtQuick.Controls as QQC2
|
|
|
|
|
import QtQuick.Layouts
|
Fix console UI regressions: icons, hint bar, category rail, dialog
- ConsoleCategoryRail: port from CouchSidebar using Kirigami.Icon +
IconWithResourceFallback, radius: smallSpacing (not pill), Hidden
source, Import+Settings buttons with tooltips, App.gameModel.gameAt()
- Main.qml: use BottomHintBar component, wire sourceSelected/
settingsRequested/importRequested signals, flat ToolButton for search,
declare GameEditDialog as proper child, remove Maui.ContextualMenu
- GameCard: Maui.Icon -> Kirigami.Icon, Maui.Theme -> Kirigami.Theme
- ConsoleGameDetail: Maui.Icon -> Kirigami.Icon, Maui.Theme ->
Kirigami.Theme, replace broken inline hint rows with BottomHintBar
2026-03-23 09:31:26 +00:00
|
|
|
import org.kde.kirigami as Kirigami
|
2026-03-23 09:12:20 +00:00
|
|
|
import org.kde.alakarte
|
Fix console UI regressions: icons, hint bar, category rail, dialog
- ConsoleCategoryRail: port from CouchSidebar using Kirigami.Icon +
IconWithResourceFallback, radius: smallSpacing (not pill), Hidden
source, Import+Settings buttons with tooltips, App.gameModel.gameAt()
- Main.qml: use BottomHintBar component, wire sourceSelected/
settingsRequested/importRequested signals, flat ToolButton for search,
declare GameEditDialog as proper child, remove Maui.ContextualMenu
- GameCard: Maui.Icon -> Kirigami.Icon, Maui.Theme -> Kirigami.Theme
- ConsoleGameDetail: Maui.Icon -> Kirigami.Icon, Maui.Theme ->
Kirigami.Theme, replace broken inline hint rows with BottomHintBar
2026-03-23 09:31:26 +00:00
|
|
|
import "components"
|
2026-03-23 09:12:20 +00:00
|
|
|
|
|
|
|
|
Item {
|
|
|
|
|
id: root
|
|
|
|
|
|
Fix console UI regressions: icons, hint bar, category rail, dialog
- ConsoleCategoryRail: port from CouchSidebar using Kirigami.Icon +
IconWithResourceFallback, radius: smallSpacing (not pill), Hidden
source, Import+Settings buttons with tooltips, App.gameModel.gameAt()
- Main.qml: use BottomHintBar component, wire sourceSelected/
settingsRequested/importRequested signals, flat ToolButton for search,
declare GameEditDialog as proper child, remove Maui.ContextualMenu
- GameCard: Maui.Icon -> Kirigami.Icon, Maui.Theme -> Kirigami.Theme
- ConsoleGameDetail: Maui.Icon -> Kirigami.Icon, Maui.Theme ->
Kirigami.Theme, replace broken inline hint rows with BottomHintBar
2026-03-23 09:31:26 +00:00
|
|
|
property string currentSource: "all"
|
2026-03-23 09:12:20 +00:00
|
|
|
|
Fix console UI regressions: icons, hint bar, category rail, dialog
- ConsoleCategoryRail: port from CouchSidebar using Kirigami.Icon +
IconWithResourceFallback, radius: smallSpacing (not pill), Hidden
source, Import+Settings buttons with tooltips, App.gameModel.gameAt()
- Main.qml: use BottomHintBar component, wire sourceSelected/
settingsRequested/importRequested signals, flat ToolButton for search,
declare GameEditDialog as proper child, remove Maui.ContextualMenu
- GameCard: Maui.Icon -> Kirigami.Icon, Maui.Theme -> Kirigami.Theme
- ConsoleGameDetail: Maui.Icon -> Kirigami.Icon, Maui.Theme ->
Kirigami.Theme, replace broken inline hint rows with BottomHintBar
2026-03-23 09:31:26 +00:00
|
|
|
signal sourceSelected(string source)
|
|
|
|
|
signal settingsRequested()
|
|
|
|
|
signal importRequested()
|
2026-03-23 09:12:20 +00:00
|
|
|
|
|
|
|
|
function selectNext() {
|
Fix console UI regressions: icons, hint bar, category rail, dialog
- ConsoleCategoryRail: port from CouchSidebar using Kirigami.Icon +
IconWithResourceFallback, radius: smallSpacing (not pill), Hidden
source, Import+Settings buttons with tooltips, App.gameModel.gameAt()
- Main.qml: use BottomHintBar component, wire sourceSelected/
settingsRequested/importRequested signals, flat ToolButton for search,
declare GameEditDialog as proper child, remove Maui.ContextualMenu
- GameCard: Maui.Icon -> Kirigami.Icon, Maui.Theme -> Kirigami.Theme
- ConsoleGameDetail: Maui.Icon -> Kirigami.Icon, Maui.Theme ->
Kirigami.Theme, replace broken inline hint rows with BottomHintBar
2026-03-23 09:31:26 +00:00
|
|
|
if (sourceModel.count <= 0) return
|
|
|
|
|
let i = (tabList.currentIndex + 1) % sourceModel.count
|
|
|
|
|
_applyIndex(i)
|
2026-03-23 09:12:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function selectPrevious() {
|
Fix console UI regressions: icons, hint bar, category rail, dialog
- ConsoleCategoryRail: port from CouchSidebar using Kirigami.Icon +
IconWithResourceFallback, radius: smallSpacing (not pill), Hidden
source, Import+Settings buttons with tooltips, App.gameModel.gameAt()
- Main.qml: use BottomHintBar component, wire sourceSelected/
settingsRequested/importRequested signals, flat ToolButton for search,
declare GameEditDialog as proper child, remove Maui.ContextualMenu
- GameCard: Maui.Icon -> Kirigami.Icon, Maui.Theme -> Kirigami.Theme
- ConsoleGameDetail: Maui.Icon -> Kirigami.Icon, Maui.Theme ->
Kirigami.Theme, replace broken inline hint rows with BottomHintBar
2026-03-23 09:31:26 +00:00
|
|
|
if (sourceModel.count <= 0) return
|
|
|
|
|
let i = tabList.currentIndex - 1
|
|
|
|
|
if (i < 0) i = sourceModel.count - 1
|
|
|
|
|
_applyIndex(i)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function _applyIndex(i) {
|
|
|
|
|
tabList.currentIndex = i
|
|
|
|
|
let item = sourceModel.get(i)
|
|
|
|
|
if (item) {
|
|
|
|
|
root.currentSource = item.sourceId
|
|
|
|
|
root.sourceSelected(item.sourceId)
|
|
|
|
|
tabList.positionViewAtIndex(i, ListView.Contain)
|
2026-03-23 09:12:20 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
Fix console UI regressions: icons, hint bar, category rail, dialog
- ConsoleCategoryRail: port from CouchSidebar using Kirigami.Icon +
IconWithResourceFallback, radius: smallSpacing (not pill), Hidden
source, Import+Settings buttons with tooltips, App.gameModel.gameAt()
- Main.qml: use BottomHintBar component, wire sourceSelected/
settingsRequested/importRequested signals, flat ToolButton for search,
declare GameEditDialog as proper child, remove Maui.ContextualMenu
- GameCard: Maui.Icon -> Kirigami.Icon, Maui.Theme -> Kirigami.Theme
- ConsoleGameDetail: Maui.Icon -> Kirigami.Icon, Maui.Theme ->
Kirigami.Theme, replace broken inline hint rows with BottomHintBar
2026-03-23 09:31:26 +00:00
|
|
|
function iconInfoForPlatform(platformName) {
|
|
|
|
|
let p = (platformName || "").toLowerCase()
|
|
|
|
|
if (p.includes("steam")) return { source: "com.valvesoftware.Steam", fallback: "steam", resourceFallback: Qt.resolvedUrl("icons/brand/steam-symbolic.svg") }
|
|
|
|
|
if (p.includes("itch")) return { source: "io.itch.itch", fallback: "applications-games", resourceFallback: Qt.resolvedUrl("icons/brand/itchdotio-symbolic.svg") }
|
|
|
|
|
if (p.includes("retroarch")) return { source: "org.libretro.RetroArch", fallback: "applications-games", resourceFallback: Qt.resolvedUrl("icons/brand/retroarch-symbolic.svg") }
|
|
|
|
|
if (p.includes("lutris")) return { source: "lutris", fallback: "applications-games", resourceFallback: "" }
|
|
|
|
|
if (p.includes("heroic")) return { source: "com.heroicgameslauncher.hgl", fallback: "applications-games", resourceFallback: "" }
|
|
|
|
|
if (p.includes("bottles")) return { source: "com.usebottles.bottles", fallback: "application-x-executable", resourceFallback: "" }
|
|
|
|
|
if (p.includes("flatpak")) return { source: "flatpak-discover", fallback: "applications-games", resourceFallback: "" }
|
|
|
|
|
if (p.includes("desktop")) return { source: "user-desktop", fallback: "computer", resourceFallback: "" }
|
|
|
|
|
if (p.includes("legendary")) return { source: "legendary", fallback: "applications-games", resourceFallback: "" }
|
|
|
|
|
return { source: "applications-games", fallback: "applications-games", resourceFallback: "" }
|
2026-03-23 09:12:20 +00:00
|
|
|
}
|
|
|
|
|
|
Fix console UI regressions: icons, hint bar, category rail, dialog
- ConsoleCategoryRail: port from CouchSidebar using Kirigami.Icon +
IconWithResourceFallback, radius: smallSpacing (not pill), Hidden
source, Import+Settings buttons with tooltips, App.gameModel.gameAt()
- Main.qml: use BottomHintBar component, wire sourceSelected/
settingsRequested/importRequested signals, flat ToolButton for search,
declare GameEditDialog as proper child, remove Maui.ContextualMenu
- GameCard: Maui.Icon -> Kirigami.Icon, Maui.Theme -> Kirigami.Theme
- ConsoleGameDetail: Maui.Icon -> Kirigami.Icon, Maui.Theme ->
Kirigami.Theme, replace broken inline hint rows with BottomHintBar
2026-03-23 09:31:26 +00:00
|
|
|
onCurrentSourceChanged: {
|
|
|
|
|
for (let i = 0; i < sourceModel.count; ++i) {
|
|
|
|
|
if (sourceModel.get(i).sourceId === currentSource) {
|
|
|
|
|
tabList.currentIndex = i
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
}
|
2026-03-23 09:12:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ListModel {
|
Fix console UI regressions: icons, hint bar, category rail, dialog
- ConsoleCategoryRail: port from CouchSidebar using Kirigami.Icon +
IconWithResourceFallback, radius: smallSpacing (not pill), Hidden
source, Import+Settings buttons with tooltips, App.gameModel.gameAt()
- Main.qml: use BottomHintBar component, wire sourceSelected/
settingsRequested/importRequested signals, flat ToolButton for search,
declare GameEditDialog as proper child, remove Maui.ContextualMenu
- GameCard: Maui.Icon -> Kirigami.Icon, Maui.Theme -> Kirigami.Theme
- ConsoleGameDetail: Maui.Icon -> Kirigami.Icon, Maui.Theme ->
Kirigami.Theme, replace broken inline hint rows with BottomHintBar
2026-03-23 09:31:26 +00:00
|
|
|
id: sourceModel
|
|
|
|
|
Component.onCompleted: refresh()
|
2026-03-23 09:12:20 +00:00
|
|
|
|
Fix console UI regressions: icons, hint bar, category rail, dialog
- ConsoleCategoryRail: port from CouchSidebar using Kirigami.Icon +
IconWithResourceFallback, radius: smallSpacing (not pill), Hidden
source, Import+Settings buttons with tooltips, App.gameModel.gameAt()
- Main.qml: use BottomHintBar component, wire sourceSelected/
settingsRequested/importRequested signals, flat ToolButton for search,
declare GameEditDialog as proper child, remove Maui.ContextualMenu
- GameCard: Maui.Icon -> Kirigami.Icon, Maui.Theme -> Kirigami.Theme
- ConsoleGameDetail: Maui.Icon -> Kirigami.Icon, Maui.Theme ->
Kirigami.Theme, replace broken inline hint rows with BottomHintBar
2026-03-23 09:31:26 +00:00
|
|
|
function refresh() {
|
2026-03-23 09:12:20 +00:00
|
|
|
clear()
|
Fix console UI regressions: icons, hint bar, category rail, dialog
- ConsoleCategoryRail: port from CouchSidebar using Kirigami.Icon +
IconWithResourceFallback, radius: smallSpacing (not pill), Hidden
source, Import+Settings buttons with tooltips, App.gameModel.gameAt()
- Main.qml: use BottomHintBar component, wire sourceSelected/
settingsRequested/importRequested signals, flat ToolButton for search,
declare GameEditDialog as proper child, remove Maui.ContextualMenu
- GameCard: Maui.Icon -> Kirigami.Icon, Maui.Theme -> Kirigami.Theme
- ConsoleGameDetail: Maui.Icon -> Kirigami.Icon, Maui.Theme ->
Kirigami.Theme, replace broken inline hint rows with BottomHintBar
2026-03-23 09:31:26 +00:00
|
|
|
let allCount = 0, favCount = 0, hiddenCount = 0
|
|
|
|
|
let sources = {}
|
|
|
|
|
|
|
|
|
|
for (let i = 0; i < App.gameModel.rowCount(); i++) {
|
|
|
|
|
let game = App.gameModel.gameAt(i)
|
|
|
|
|
if (!game) continue
|
|
|
|
|
if (game.hidden) { hiddenCount++; continue }
|
|
|
|
|
allCount++
|
|
|
|
|
if (game.favorite) favCount++
|
|
|
|
|
let p = game.platform
|
|
|
|
|
sources[p] = (sources[p] || 0) + 1
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
append({ name: i18n("All"), sourceId: "all", icon: "view-list-icons", fallback: "applications-games", resourceFallback: "", count: allCount })
|
|
|
|
|
append({ name: i18n("Favorites"), sourceId: "favorites", icon: "bookmark-new", fallback: "bookmark-new", resourceFallback: "", count: favCount })
|
|
|
|
|
append({ name: i18n("Hidden"), sourceId: "hidden", icon: "view-hidden", fallback: "view-hidden", resourceFallback: "", count: hiddenCount })
|
|
|
|
|
|
|
|
|
|
for (let platform in sources) {
|
|
|
|
|
let info = root.iconInfoForPlatform(platform)
|
|
|
|
|
append({ name: platform, sourceId: platform, icon: info.source, fallback: info.fallback, resourceFallback: info.resourceFallback, count: sources[platform] })
|
2026-03-23 09:12:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for (let j = 0; j < count; ++j) {
|
Fix console UI regressions: icons, hint bar, category rail, dialog
- ConsoleCategoryRail: port from CouchSidebar using Kirigami.Icon +
IconWithResourceFallback, radius: smallSpacing (not pill), Hidden
source, Import+Settings buttons with tooltips, App.gameModel.gameAt()
- Main.qml: use BottomHintBar component, wire sourceSelected/
settingsRequested/importRequested signals, flat ToolButton for search,
declare GameEditDialog as proper child, remove Maui.ContextualMenu
- GameCard: Maui.Icon -> Kirigami.Icon, Maui.Theme -> Kirigami.Theme
- ConsoleGameDetail: Maui.Icon -> Kirigami.Icon, Maui.Theme ->
Kirigami.Theme, replace broken inline hint rows with BottomHintBar
2026-03-23 09:31:26 +00:00
|
|
|
if (get(j).sourceId === root.currentSource) {
|
|
|
|
|
tabList.currentIndex = j
|
2026-03-23 09:12:20 +00:00
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Connections {
|
|
|
|
|
target: App.gameModel
|
Fix console UI regressions: icons, hint bar, category rail, dialog
- ConsoleCategoryRail: port from CouchSidebar using Kirigami.Icon +
IconWithResourceFallback, radius: smallSpacing (not pill), Hidden
source, Import+Settings buttons with tooltips, App.gameModel.gameAt()
- Main.qml: use BottomHintBar component, wire sourceSelected/
settingsRequested/importRequested signals, flat ToolButton for search,
declare GameEditDialog as proper child, remove Maui.ContextualMenu
- GameCard: Maui.Icon -> Kirigami.Icon, Maui.Theme -> Kirigami.Theme
- ConsoleGameDetail: Maui.Icon -> Kirigami.Icon, Maui.Theme ->
Kirigami.Theme, replace broken inline hint rows with BottomHintBar
2026-03-23 09:31:26 +00:00
|
|
|
function onCountChanged() { sourceModel.refresh() }
|
2026-03-23 09:12:20 +00:00
|
|
|
}
|
Fix console UI regressions: icons, hint bar, category rail, dialog
- ConsoleCategoryRail: port from CouchSidebar using Kirigami.Icon +
IconWithResourceFallback, radius: smallSpacing (not pill), Hidden
source, Import+Settings buttons with tooltips, App.gameModel.gameAt()
- Main.qml: use BottomHintBar component, wire sourceSelected/
settingsRequested/importRequested signals, flat ToolButton for search,
declare GameEditDialog as proper child, remove Maui.ContextualMenu
- GameCard: Maui.Icon -> Kirigami.Icon, Maui.Theme -> Kirigami.Theme
- ConsoleGameDetail: Maui.Icon -> Kirigami.Icon, Maui.Theme ->
Kirigami.Theme, replace broken inline hint rows with BottomHintBar
2026-03-23 09:31:26 +00:00
|
|
|
Connections {
|
|
|
|
|
target: App
|
|
|
|
|
function onImportCompleted() { sourceModel.refresh() }
|
2026-03-23 09:12:20 +00:00
|
|
|
}
|
|
|
|
|
|
Fix console UI regressions: icons, hint bar, category rail, dialog
- ConsoleCategoryRail: port from CouchSidebar using Kirigami.Icon +
IconWithResourceFallback, radius: smallSpacing (not pill), Hidden
source, Import+Settings buttons with tooltips, App.gameModel.gameAt()
- Main.qml: use BottomHintBar component, wire sourceSelected/
settingsRequested/importRequested signals, flat ToolButton for search,
declare GameEditDialog as proper child, remove Maui.ContextualMenu
- GameCard: Maui.Icon -> Kirigami.Icon, Maui.Theme -> Kirigami.Theme
- ConsoleGameDetail: Maui.Icon -> Kirigami.Icon, Maui.Theme ->
Kirigami.Theme, replace broken inline hint rows with BottomHintBar
2026-03-23 09:31:26 +00:00
|
|
|
RowLayout {
|
2026-03-23 09:12:20 +00:00
|
|
|
anchors.fill: parent
|
Fix console UI regressions: icons, hint bar, category rail, dialog
- ConsoleCategoryRail: port from CouchSidebar using Kirigami.Icon +
IconWithResourceFallback, radius: smallSpacing (not pill), Hidden
source, Import+Settings buttons with tooltips, App.gameModel.gameAt()
- Main.qml: use BottomHintBar component, wire sourceSelected/
settingsRequested/importRequested signals, flat ToolButton for search,
declare GameEditDialog as proper child, remove Maui.ContextualMenu
- GameCard: Maui.Icon -> Kirigami.Icon, Maui.Theme -> Kirigami.Theme
- ConsoleGameDetail: Maui.Icon -> Kirigami.Icon, Maui.Theme ->
Kirigami.Theme, replace broken inline hint rows with BottomHintBar
2026-03-23 09:31:26 +00:00
|
|
|
spacing: 0
|
|
|
|
|
|
|
|
|
|
QQC2.ScrollView {
|
|
|
|
|
Layout.fillWidth: true
|
|
|
|
|
Layout.fillHeight: true
|
|
|
|
|
QQC2.ScrollBar.horizontal.policy: QQC2.ScrollBar.AlwaysOff
|
|
|
|
|
QQC2.ScrollBar.vertical.policy: QQC2.ScrollBar.AlwaysOff
|
|
|
|
|
|
|
|
|
|
ListView {
|
|
|
|
|
id: tabList
|
|
|
|
|
model: sourceModel
|
|
|
|
|
orientation: ListView.Horizontal
|
|
|
|
|
spacing: Kirigami.Units.smallSpacing
|
|
|
|
|
leftMargin: Kirigami.Units.largeSpacing
|
|
|
|
|
rightMargin: Kirigami.Units.largeSpacing
|
|
|
|
|
topMargin: Kirigami.Units.smallSpacing
|
|
|
|
|
bottomMargin: Kirigami.Units.smallSpacing
|
|
|
|
|
clip: true
|
|
|
|
|
|
|
|
|
|
delegate: QQC2.ItemDelegate {
|
|
|
|
|
id: tabDelegate
|
|
|
|
|
width: implicitWidth
|
|
|
|
|
height: tabList.height - tabList.topMargin - tabList.bottomMargin
|
|
|
|
|
|
|
|
|
|
readonly property bool isActive: model.sourceId === root.currentSource
|
|
|
|
|
|
|
|
|
|
background: Rectangle {
|
|
|
|
|
radius: Kirigami.Units.smallSpacing
|
|
|
|
|
color: tabDelegate.isActive ? Kirigami.Theme.highlightColor
|
|
|
|
|
: (tabDelegate.hovered ? Kirigami.Theme.alternateBackgroundColor : "transparent")
|
|
|
|
|
opacity: tabDelegate.isActive ? 0.22 : (tabDelegate.hovered ? 0.12 : 0.0)
|
|
|
|
|
|
|
|
|
|
Rectangle {
|
|
|
|
|
anchors.bottom: parent.bottom
|
|
|
|
|
anchors.left: parent.left
|
|
|
|
|
anchors.right: parent.right
|
|
|
|
|
height: 2
|
|
|
|
|
radius: 1
|
|
|
|
|
color: Kirigami.Theme.highlightColor
|
|
|
|
|
visible: tabDelegate.isActive
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Behavior on opacity { NumberAnimation { duration: Kirigami.Units.shortDuration } }
|
2026-03-23 09:12:20 +00:00
|
|
|
}
|
|
|
|
|
|
Fix console UI regressions: icons, hint bar, category rail, dialog
- ConsoleCategoryRail: port from CouchSidebar using Kirigami.Icon +
IconWithResourceFallback, radius: smallSpacing (not pill), Hidden
source, Import+Settings buttons with tooltips, App.gameModel.gameAt()
- Main.qml: use BottomHintBar component, wire sourceSelected/
settingsRequested/importRequested signals, flat ToolButton for search,
declare GameEditDialog as proper child, remove Maui.ContextualMenu
- GameCard: Maui.Icon -> Kirigami.Icon, Maui.Theme -> Kirigami.Theme
- ConsoleGameDetail: Maui.Icon -> Kirigami.Icon, Maui.Theme ->
Kirigami.Theme, replace broken inline hint rows with BottomHintBar
2026-03-23 09:31:26 +00:00
|
|
|
leftPadding: Kirigami.Units.mediumSpacing
|
|
|
|
|
rightPadding: Kirigami.Units.mediumSpacing
|
|
|
|
|
|
|
|
|
|
contentItem: RowLayout {
|
|
|
|
|
spacing: Kirigami.Units.smallSpacing
|
|
|
|
|
|
|
|
|
|
IconWithResourceFallback {
|
|
|
|
|
primary: model.icon
|
|
|
|
|
secondary: model.fallback
|
|
|
|
|
resourceFallback: model.resourceFallback ? Qt.resolvedUrl(model.resourceFallback) : ""
|
|
|
|
|
Layout.preferredWidth: Kirigami.Units.iconSizes.small
|
|
|
|
|
Layout.preferredHeight: Kirigami.Units.iconSizes.small
|
|
|
|
|
color: tabDelegate.isActive ? Kirigami.Theme.highlightColor : Kirigami.Theme.textColor
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QQC2.Label {
|
|
|
|
|
text: model.name
|
|
|
|
|
color: tabDelegate.isActive ? Kirigami.Theme.highlightColor : Kirigami.Theme.textColor
|
|
|
|
|
font.bold: tabDelegate.isActive
|
|
|
|
|
elide: Text.ElideRight
|
|
|
|
|
maximumLineCount: 1
|
|
|
|
|
}
|
2026-03-23 09:12:20 +00:00
|
|
|
}
|
|
|
|
|
|
Fix console UI regressions: icons, hint bar, category rail, dialog
- ConsoleCategoryRail: port from CouchSidebar using Kirigami.Icon +
IconWithResourceFallback, radius: smallSpacing (not pill), Hidden
source, Import+Settings buttons with tooltips, App.gameModel.gameAt()
- Main.qml: use BottomHintBar component, wire sourceSelected/
settingsRequested/importRequested signals, flat ToolButton for search,
declare GameEditDialog as proper child, remove Maui.ContextualMenu
- GameCard: Maui.Icon -> Kirigami.Icon, Maui.Theme -> Kirigami.Theme
- ConsoleGameDetail: Maui.Icon -> Kirigami.Icon, Maui.Theme ->
Kirigami.Theme, replace broken inline hint rows with BottomHintBar
2026-03-23 09:31:26 +00:00
|
|
|
onClicked: {
|
|
|
|
|
root.currentSource = model.sourceId
|
|
|
|
|
root.sourceSelected(model.sourceId)
|
|
|
|
|
}
|
2026-03-23 09:12:20 +00:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
Fix console UI regressions: icons, hint bar, category rail, dialog
- ConsoleCategoryRail: port from CouchSidebar using Kirigami.Icon +
IconWithResourceFallback, radius: smallSpacing (not pill), Hidden
source, Import+Settings buttons with tooltips, App.gameModel.gameAt()
- Main.qml: use BottomHintBar component, wire sourceSelected/
settingsRequested/importRequested signals, flat ToolButton for search,
declare GameEditDialog as proper child, remove Maui.ContextualMenu
- GameCard: Maui.Icon -> Kirigami.Icon, Maui.Theme -> Kirigami.Theme
- ConsoleGameDetail: Maui.Icon -> Kirigami.Icon, Maui.Theme ->
Kirigami.Theme, replace broken inline hint rows with BottomHintBar
2026-03-23 09:31:26 +00:00
|
|
|
|
|
|
|
|
Kirigami.Separator { Layout.fillHeight: true }
|
|
|
|
|
|
|
|
|
|
QQC2.ToolButton {
|
|
|
|
|
icon.name: "document-import"
|
|
|
|
|
onClicked: root.importRequested()
|
|
|
|
|
Layout.fillHeight: true
|
|
|
|
|
flat: true
|
|
|
|
|
QQC2.ToolTip.text: i18n("Import Games")
|
|
|
|
|
QQC2.ToolTip.visible: hovered
|
|
|
|
|
QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QQC2.ToolButton {
|
|
|
|
|
icon.name: "configure"
|
|
|
|
|
onClicked: root.settingsRequested()
|
|
|
|
|
Layout.fillHeight: true
|
|
|
|
|
flat: true
|
|
|
|
|
QQC2.ToolTip.text: i18n("Settings")
|
|
|
|
|
QQC2.ToolTip.visible: hovered
|
|
|
|
|
QQC2.ToolTip.delay: Kirigami.Units.toolTipDelay
|
|
|
|
|
}
|
2026-03-23 09:12:20 +00:00
|
|
|
}
|
|
|
|
|
}
|