mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2025-03-01 10:33:28 +00:00
* Refactor config API * Corrections * Test Qt 6.8 * Revert "Test Qt 6.8" This reverts commit eceebec49ecf1a3eda281a0630a9a7577b44ef0a. * Corrections 2 * Update Changelog * Add configFilter element for getconfig call * Do not create errors for DB updates when in read-only mode * Have configuration migration and validation before Hyperion starts * Correct Tests * Corrections * Add migration items * Correct windows build * Ensure that first instance as default one exists * Remove dependency between AuthManager and SSDPHandler * Correct typos * Address CodeQL findings * Replace CamkeSettings by Presets and provide debug scenarios
43 lines
1.5 KiB
C++
43 lines
1.5 KiB
C++
#ifndef DBCONFGMANAGER_H
|
|
#define DBConfigManager_H
|
|
|
|
#include <db/DBManager.h>
|
|
#include "db/SettingsTable.h"
|
|
#include "db/InstanceTable.h"
|
|
|
|
class DBConfigManager : public DBManager
|
|
{
|
|
public:
|
|
DBConfigManager(QObject* parent = nullptr);
|
|
|
|
QPair<bool, QStringList> importJson(const QString& configFile);
|
|
bool exportJson(const QString& path = "") const;
|
|
|
|
QJsonObject getConfiguration(const QList<quint8>& instances = {}, const QStringList& instanceFilteredTypes = {}, const QStringList& globalFilterTypes = {} ) const;
|
|
|
|
QPair<bool, QStringList> validateConfiguration();
|
|
QPair<bool, QStringList> validateConfiguration(QJsonObject& config, bool doCorrections = false);
|
|
|
|
QPair<bool, QStringList> addMissingDefaults();
|
|
|
|
QPair<bool, QStringList> updateConfiguration();
|
|
QPair<bool, QStringList> updateConfiguration(QJsonObject& config, bool doCorrections = false);
|
|
|
|
QPair<bool, QStringList> migrateConfiguration();
|
|
|
|
private:
|
|
// Function to import global settings from the configuration
|
|
bool importGlobalSettings(const QJsonObject& config, QStringList& errorList);
|
|
|
|
// Function to import all instances from the configuration
|
|
bool importInstances(const QJsonObject& config, QStringList& errorList);
|
|
|
|
// Function to import a single instance
|
|
bool importInstance(InstanceTable& instanceTable, const QJsonObject& instanceConfig, quint8 instanceIdx, QStringList& errorList);
|
|
|
|
// Function to import settings for a specific instance
|
|
bool importInstanceSettings(SettingsTable& settingsTable, const QJsonObject& instanceSettings, QStringList& errorList);
|
|
};
|
|
|
|
#endif // DBCONFGMANAGER_H
|