Commit graph

31 commits

Author SHA1 Message Date
fd5c75b03c polish: animate game title opacity transition on hover/current 2026-03-24 11:36:07 +01:00
a74f2a0211 polish: add fade-out exit animation to ConsoleGameDetail
Add startClose() which plays a 160ms InCubic fade-out before emitting close(). Back/Escape triggers now call startClose() instead of close() directly. visible keeps the item rendered during the exit animation via isClosing flag. Launch path bypasses animation (immediate).
2026-03-24 11:36:07 +01:00
5e88cc4f41 polish: add 1px separator below header bar 2026-03-24 11:36:07 +01:00
383857669b polish: add Left/Right key navigation to category rail tab delegates
When a tab delegate has focus, Left/Right now navigates to the adjacent tab and selects it via _applyIndex, mirroring the gamepad LB/RB behavior.
2026-03-24 11:36:07 +01:00
e5f3e2113e polish: backdrop blur crossfades on game navigation
Bind MultiEffect opacity to backdropImg.status so blur fades out when source changes (Image.Loading) and fades in when new image is ready (Image.Ready). Previously opacity was static at 0.38 so the Behavior was never triggered.
2026-03-24 11:36:07 +01:00
f63edc3e55 fix: Hidden tab shows no games; BottomHintBar missing Layout.fillWidth
- showHidden was hardcoded false; GameSortFilterModel uses it as 'show ONLY hidden' so Hidden tab always returned empty
- filterSource also passed 'hidden' as a platform string, filtering everything out; now returns empty string for hidden
- Add Layout.fillWidth to BottomHintBar in ConsoleGameDetail so it lays out correctly in ColumnLayout
2026-03-24 11:36:07 +01:00
c4b9321c64 polish: card hover overlay, reduce cover art shadow bleed
- Add subtle white overlay (4-6% opacity) to GameCard on hover/highlight for clearer feedback
- Reduce ConsoleGameDetail coverArt shadow blur from 0.7 to 0.25 and offset from 12 to 8 to prevent bleeding
2026-03-24 11:36:07 +01:00
2df35e9b81 fix: restore console UI icon visibility, selection highlight, focus transfer
- Force isMask on header Kirigami.Icon contentItems (Search/Import/Settings) so white color is applied regardless of icon theme
- Remove MultiEffect shadow from GameCard (was bleeding far outside card bounds)
- Add gridActive prop to GameCard so selection highlight depends on actual flickable focus, not wrapper focus
- Two-tier selection: full highlight when grid focused, dim border when grid unfocused (card stays visible)
- Focus transfer: gamepad Up from top row emits headerFocusRequested; Down from rail/buttons calls libraryView.restoreFocus()
- Gate gamepad navigation guards on grid.flickable.activeFocus (Maui.GridBrowser internal GridView)
2026-03-24 11:36:07 +01:00
b5e03fe856 Fix hint bar input switching (bind to InputManager.activeInput) 2026-03-24 11:36:07 +01:00
cb69f801bf 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-24 11:36:07 +01:00
84c6795fd6 Ensure MauiKit4plugin builds with alakarte; fix app icon resource path 2026-03-24 11:36:07 +01:00
a0b9ea1832 Integrate MauiKit4/MauiMan4 as submodules, rewrite UI to MAUIkit console shell
- Add MauiMan4 + MauiKit4 submodules pinned at v4.0.2
- Wire both into CMake via CMAKE_FIND_PACKAGE_REDIRECTS_DIR build-tree stub
- Create MauiMan4 header shim for build-tree include layout
- Undefine QT_NO_CAST/QT_NO_FOREACH/QT_NO_KEYWORDS for MauiKit4 targets
- Link alakarte against MauiKit4
- Rewrite Main.qml: Maui.ApplicationWindow, dark console shell, blurred
  game backdrop, category rail, search bar, bottom gamepad hint bar
- Rewrite GameCard.qml: cover-art card with scale+glow focus effects
- Rewrite LibraryView.qml: Maui.GridBrowser with gamepad D-pad navigation
- New ConsoleCategoryRail.qml: horizontal pill category nav with L1/R1
- New ConsoleGameDetail.qml: cinematic full-screen game detail overlay
  with cover art, action buttons, fade-in animation, gamepad hints
2026-03-24 11:35:59 +01:00
e592e7b093 Add Plasma tray, notification inhibition, session control, and flatpak runner
Expand TrayController with daemon health polling every 10 seconds via
D-Bus Ping calls to org.kde.GameCenter1, org.kde.ALaKarte.Runner1, and
org.kde.ALaKarte.Input1. Add menu actions to toggle console behaviors,
notification mirroring, and to restart each daemon via systemctl --user.

Add NotificationInhibitor, owned by App, which calls
org.freedesktop.Notifications Inhibit/UnInhibit on the session bus
whenever the consoleBehaviors config setting changes. The cookie is
released on application quit.

Add consoleBehaviors and mirrorNotifications properties to Config with
KConfig persistence under the [Console] group.

Ship org.kde.alakarte.notifyrc defining GameLaunched, GameExited, and
LaunchFailed notification events so Plasma attributes them correctly in
the notification history.

Extend RunnerManagerDaemon::ResolveLaunch with a flatpak runner branch
that constructs a flatpak run command, translates environment overrides
to --env= arguments, and respects flatpakAppId, flatpakBranch,
flatpakArch, and flatpakArgs from the launch spec.

Add activate_session, switch_to_vt, and terminate_session actions to
the gamecenter KAuth helper and its polkit policy. Each action calls
the corresponding method on org.freedesktop.login1 over the system bus.

Add CouchSidebar.qml, a horizontal source tab bar shown in couch mode
above the library view, exposing the same sourceSelected, settingsRequested,
importRequested, and aboutRequested signals as SidebarView.

Fix duplicate adaptiveFocusRingWidth property in GameCard.qml.
2026-03-22 16:53:09 +01:00
ca19e21661 qml: avoid StackView footer anchor conflicts 2026-02-13 12:52:39 +01:00
b1dc8afd48 qml: fix menu popup visible bool binding 2026-02-13 12:52:28 +01:00
9dbff6fdb8 settings: input service + compatibility UI 2026-02-12 14:48:39 +01:00
c7956eed8b QML: runner inventory, prefix actions, and runner error notifications 2026-02-09 14:03:38 +01:00
ded8ad83da QML: show daemon availability banner
Expose the Game Center daemon availability to the UI and show\nan inline error banner when it is not reachable, with a retry action.
2026-02-06 14:03:22 +01:00
55d5a70656 Persist window size across restarts 2026-02-03 11:22:11 +01:00
aabb8d0f4b Couch Mode: add diagnostics overlay 2026-01-30 11:02:28 +01:00
5b993cff6b QML: fix couch focus/menu scoping and overlays 2026-01-29 19:49:45 +01:00
3ec2badcd7 Media: add per-game screenshots manager and gallery 2026-01-25 14:30:02 +01:00
99406a1989 Core: per-game compatibility and env overrides 2026-01-25 14:19:57 +01:00
49997ed0cb Cleanup: remove redundant QML registrations 2026-01-25 14:08:33 +01:00
e754d88eb0 qml: confirm destructive actions 2026-01-25 10:03:46 +01:00
b961a8cc8f qml: move Settings to pageStack layer
Replace the settings OverlaySheet with a pageStack layer page to avoid header/sidebar overlap. Keep keyboard/gamepad focus navigation and scrolling. Tweak SettingsPage spacing and make grid selection start unselected for better navigation.
2026-01-24 20:50:20 +01:00
24b9ee6491 UI: Add hint bar and UI mode override
Add a bottom hint bar with keyboard/gamepad hints and controller-specific icons.

Also add a UI mode setting (auto/desktop/handheld) to improve the adaptive layout on different form factors.
2026-01-24 13:27:30 +01:00
95a3c20436 Improve game action discoverability
Show Favorite/Hide/Edit/Remove as labeled buttons in the game details sheet so actions remain visible and accessible even on narrow layouts.
2026-01-20 11:00:09 +01:00
ccffb1e49c Fix editing update and dialog state
Ensure editing a game updates the library view and the edit dialog reliably.

- Refresh the model when a Game emits change signals so filtering/sorting stays in sync.
- Reload edit fields on open/game change to avoid stale values after typing.
- Center the edit dialog with an explicit size.
2026-01-20 10:59:29 +01:00
394227f9a5 Refine Settings and About sheets
Make Settings/About sheets easier to dismiss via close affordances and
press-outside behavior.
Lazy-load the AboutPage to avoid KirigamiAddons null window warnings.
Simplify About metadata and provide non-empty license text.
2026-01-20 00:15:28 +01:00
747b02035a alakarte: Initial import
Initial release of A-La-Karte, a unified game launcher for KDE Plasma.

Includes the QML UI, platform importers, AppStream metadata, icons,

and developer documentation.
2026-01-18 13:13:07 +01:00