a-la-karte/src/platformimporter.h
Marco Allegretti 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

34 lines
881 B
C++

// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: 2024 A-La-Karte Contributors
#pragma once
#include <QList>
#include <QObject>
#include <QStringList>
#include "game.h"
class PlatformImporter : public QObject
{
Q_OBJECT
public:
explicit PlatformImporter(QObject *parent = nullptr);
virtual ~PlatformImporter() = default;
virtual QString platformName() const = 0;
virtual QString platformId() const = 0;
virtual bool isAvailable() const = 0;
virtual QList<Game *> importGames() = 0;
Q_SIGNALS:
void importProgress(int current, int total);
void importError(const QString &error);
protected:
QString findExecutable(const QString &name) const;
bool directoryExists(const QString &path) const;
QString expandPath(const QString &path) const;
static bool hasGameCategory(const QStringList &categories);
};