2026-01-18 12:13:07 +00:00
|
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
|
// SPDX-FileCopyrightText: 2026 A-La-Karte Contributors
|
|
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
|
|
#include <QObject>
|
|
|
|
|
#include <QQmlEngine>
|
|
|
|
|
|
|
|
|
|
class Config : public QObject
|
|
|
|
|
{
|
|
|
|
|
Q_OBJECT
|
|
|
|
|
QML_ELEMENT
|
|
|
|
|
|
|
|
|
|
Q_PROPERTY(ViewMode viewMode READ viewMode WRITE setViewMode NOTIFY viewModeChanged)
|
2026-01-24 12:27:30 +00:00
|
|
|
Q_PROPERTY(UiMode uiMode READ uiMode WRITE setUiMode NOTIFY uiModeChanged)
|
2026-01-18 12:13:07 +00:00
|
|
|
Q_PROPERTY(int gridSize READ gridSize WRITE setGridSize NOTIFY gridSizeChanged)
|
|
|
|
|
Q_PROPERTY(bool showPlatformBadges READ showPlatformBadges WRITE setShowPlatformBadges NOTIFY showPlatformBadgesChanged)
|
|
|
|
|
Q_PROPERTY(bool autoImportOnStartup READ autoImportOnStartup WRITE setAutoImportOnStartup NOTIFY autoImportOnStartupChanged)
|
|
|
|
|
Q_PROPERTY(bool importSteam READ importSteam WRITE setImportSteam NOTIFY importSteamChanged)
|
|
|
|
|
Q_PROPERTY(bool importLutris READ importLutris WRITE setImportLutris NOTIFY importLutrisChanged)
|
|
|
|
|
Q_PROPERTY(bool importHeroic READ importHeroic WRITE setImportHeroic NOTIFY importHeroicChanged)
|
|
|
|
|
Q_PROPERTY(bool importDesktop READ importDesktop WRITE setImportDesktop NOTIFY importDesktopChanged)
|
|
|
|
|
Q_PROPERTY(bool importBottles READ importBottles WRITE setImportBottles NOTIFY importBottlesChanged)
|
|
|
|
|
Q_PROPERTY(bool importFlatpak READ importFlatpak WRITE setImportFlatpak NOTIFY importFlatpakChanged)
|
|
|
|
|
Q_PROPERTY(bool importItch READ importItch WRITE setImportItch NOTIFY importItchChanged)
|
|
|
|
|
Q_PROPERTY(bool importLegendary READ importLegendary WRITE setImportLegendary NOTIFY importLegendaryChanged)
|
|
|
|
|
Q_PROPERTY(bool importRetroArch READ importRetroArch WRITE setImportRetroArch NOTIFY importRetroArchChanged)
|
|
|
|
|
Q_PROPERTY(bool exitAfterLaunch READ exitAfterLaunch WRITE setExitAfterLaunch NOTIFY exitAfterLaunchChanged)
|
|
|
|
|
Q_PROPERTY(bool highQualityImages READ highQualityImages WRITE setHighQualityImages NOTIFY highQualityImagesChanged)
|
|
|
|
|
Q_PROPERTY(bool animatedCovers READ animatedCovers WRITE setAnimatedCovers NOTIFY animatedCoversChanged)
|
|
|
|
|
Q_PROPERTY(bool coverLaunchesGame READ coverLaunchesGame WRITE setCoverLaunchesGame NOTIFY coverLaunchesGameChanged)
|
|
|
|
|
Q_PROPERTY(QString theme READ theme WRITE setTheme NOTIFY themeChanged)
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
enum ViewMode {
|
|
|
|
|
GridView,
|
|
|
|
|
ListView,
|
|
|
|
|
CompactView
|
|
|
|
|
};
|
|
|
|
|
Q_ENUM(ViewMode)
|
|
|
|
|
|
2026-01-24 12:27:30 +00:00
|
|
|
enum UiMode {
|
|
|
|
|
Auto,
|
|
|
|
|
Desktop,
|
2026-01-29 18:49:27 +00:00
|
|
|
Couch
|
2026-01-24 12:27:30 +00:00
|
|
|
};
|
|
|
|
|
Q_ENUM(UiMode)
|
|
|
|
|
|
2026-01-18 12:13:07 +00:00
|
|
|
explicit Config(QObject *parent = nullptr);
|
|
|
|
|
|
|
|
|
|
ViewMode viewMode() const;
|
|
|
|
|
void setViewMode(ViewMode mode);
|
|
|
|
|
|
2026-01-24 12:27:30 +00:00
|
|
|
UiMode uiMode() const;
|
|
|
|
|
void setUiMode(UiMode mode);
|
|
|
|
|
|
2026-01-18 12:13:07 +00:00
|
|
|
int gridSize() const;
|
|
|
|
|
void setGridSize(int size);
|
|
|
|
|
|
|
|
|
|
bool showPlatformBadges() const;
|
|
|
|
|
void setShowPlatformBadges(bool show);
|
|
|
|
|
|
|
|
|
|
bool autoImportOnStartup() const;
|
|
|
|
|
void setAutoImportOnStartup(bool import);
|
|
|
|
|
|
|
|
|
|
bool importSteam() const;
|
|
|
|
|
void setImportSteam(bool import);
|
|
|
|
|
|
|
|
|
|
bool importLutris() const;
|
|
|
|
|
void setImportLutris(bool import);
|
|
|
|
|
|
|
|
|
|
bool importHeroic() const;
|
|
|
|
|
void setImportHeroic(bool import);
|
|
|
|
|
|
|
|
|
|
bool importDesktop() const;
|
|
|
|
|
void setImportDesktop(bool import);
|
|
|
|
|
|
|
|
|
|
bool importBottles() const;
|
|
|
|
|
void setImportBottles(bool import);
|
|
|
|
|
|
|
|
|
|
bool importFlatpak() const;
|
|
|
|
|
void setImportFlatpak(bool import);
|
|
|
|
|
|
|
|
|
|
bool importItch() const;
|
|
|
|
|
void setImportItch(bool import);
|
|
|
|
|
|
|
|
|
|
bool importLegendary() const;
|
|
|
|
|
void setImportLegendary(bool import);
|
|
|
|
|
|
|
|
|
|
bool importRetroArch() const;
|
|
|
|
|
void setImportRetroArch(bool import);
|
|
|
|
|
|
|
|
|
|
bool exitAfterLaunch() const;
|
|
|
|
|
void setExitAfterLaunch(bool exit);
|
|
|
|
|
|
|
|
|
|
bool coverLaunchesGame() const;
|
|
|
|
|
void setCoverLaunchesGame(bool launch);
|
|
|
|
|
|
|
|
|
|
bool highQualityImages() const;
|
|
|
|
|
void setHighQualityImages(bool hq);
|
|
|
|
|
|
|
|
|
|
bool animatedCovers() const;
|
|
|
|
|
void setAnimatedCovers(bool animated);
|
|
|
|
|
|
|
|
|
|
QString theme() const;
|
|
|
|
|
void setTheme(const QString &theme);
|
|
|
|
|
|
|
|
|
|
Q_INVOKABLE void save();
|
|
|
|
|
Q_INVOKABLE void load();
|
|
|
|
|
Q_INVOKABLE void resetToDefaults();
|
|
|
|
|
|
|
|
|
|
Q_SIGNALS:
|
|
|
|
|
void viewModeChanged();
|
2026-01-24 12:27:30 +00:00
|
|
|
void uiModeChanged();
|
2026-01-18 12:13:07 +00:00
|
|
|
void gridSizeChanged();
|
|
|
|
|
void showPlatformBadgesChanged();
|
|
|
|
|
void autoImportOnStartupChanged();
|
|
|
|
|
void importSteamChanged();
|
|
|
|
|
void importLutrisChanged();
|
|
|
|
|
void importHeroicChanged();
|
|
|
|
|
void importDesktopChanged();
|
|
|
|
|
void importBottlesChanged();
|
|
|
|
|
void importFlatpakChanged();
|
|
|
|
|
void importItchChanged();
|
|
|
|
|
void importLegendaryChanged();
|
|
|
|
|
void importRetroArchChanged();
|
|
|
|
|
void exitAfterLaunchChanged();
|
|
|
|
|
void highQualityImagesChanged();
|
|
|
|
|
void animatedCoversChanged();
|
|
|
|
|
void coverLaunchesGameChanged();
|
|
|
|
|
void themeChanged();
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
ViewMode m_viewMode = GridView;
|
2026-01-24 12:27:30 +00:00
|
|
|
UiMode m_uiMode = Auto;
|
2026-01-18 12:13:07 +00:00
|
|
|
int m_gridSize = 180;
|
|
|
|
|
bool m_showPlatformBadges = true;
|
|
|
|
|
bool m_autoImportOnStartup = false;
|
|
|
|
|
bool m_importSteam = true;
|
|
|
|
|
bool m_importLutris = true;
|
|
|
|
|
bool m_importHeroic = true;
|
|
|
|
|
bool m_importDesktop = true;
|
|
|
|
|
bool m_importBottles = true;
|
|
|
|
|
bool m_importFlatpak = true;
|
|
|
|
|
bool m_importItch = true;
|
|
|
|
|
bool m_importLegendary = true;
|
|
|
|
|
bool m_importRetroArch = true;
|
|
|
|
|
bool m_exitAfterLaunch = false;
|
|
|
|
|
bool m_coverLaunchesGame = false;
|
|
|
|
|
bool m_highQualityImages = true;
|
|
|
|
|
bool m_animatedCovers = false;
|
|
|
|
|
QString m_theme;
|
|
|
|
|
};
|