Commit graph

14 commits

Author SHA1 Message Date
3357e48cc7 Import: Avoid re-importing sources
Skip sources that already have imported games and avoid importing
platforms that are disabled in settings.

Remove imported games when a source is disabled so the library stays in
sync with user preferences.
2026-01-24 13:53:12 +01:00
9c3c0e1dfd Import: Improve Heroic cover handling
Prefer cached cover images when available and import sideload apps.

Also accept Legendary-only setups and normalize cover metadata from the
Heroic configuration.
2026-01-24 13:51:53 +01:00
0897aa8769 Core: Fix Game object lifetime
Use deleteLater() for Game and QProcess objects to avoid deleting
QObject instances at unsafe times.

Add helpers to detect/remove games by platform prefix, used by the
import workflow to avoid re-importing content.
2026-01-24 13:50:54 +01:00
05abbf329b Import: Filter non-game Steam entries
Ignore Steam runtime/redistributable entries and other non-game content.

Also skip manifests that are not fully installed and ensure the install
folder exists before importing.
2026-01-24 13:49:59 +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
24c0137fff Input: Use SDL3 for gamepad navigation
Implement SDL3-based gamepad handling and expose controller-specific button labels to QML.
2026-01-24 13:22:57 +01:00
40f1c5ff38 Build: Require SDL3
Link against SDL3 and support building against a locally provided SDL3 source tree via ALAKARTE_SDL3_SOURCE_DIR.
2026-01-24 13:20:46 +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
946baee9cf Fix app icon resource aliasing
Set the Qt resource alias before qt_add_resources.
This ensures the embedded app icon is resolvable at runtime and avoids
fallback icons rendering incorrectly.
2026-01-20 00:14:45 +01:00
58f69e6717 Fix library persistence and duplicate handling
Ensure persistence operates on the full game list, not filtered rows.
Deduplicate imported entries by stable game ID to prevent missing games
and regressions when importing from multiple sources.
2026-01-20 00:13:11 +01:00
e468f53c91 Fix desktop and Flatpak game detection
Use KDesktopFile/KConfigGroup to parse .desktop files reliably.
This avoids Categories parsing pitfalls and improves detection of KDE
stock games. Centralize game-category matching and use stable IDs
based on the full desktop-file basename.
2026-01-20 00:12:12 +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