46 lines
1.8 KiB
C++
46 lines
1.8 KiB
C++
#pragma once
|
|
#include <QByteArray>
|
|
#include <QString>
|
|
|
|
class QSettings;
|
|
|
|
class ConfigHelper
|
|
{
|
|
public:
|
|
static ConfigHelper& instance();
|
|
static int runElevatedWriteCommandIfRequested();
|
|
static QString executableNameForCurrentPlatform(const QString& configuredValue,
|
|
const QString& fallbackBaseName);
|
|
static bool writeFileWithElevationIfNeeded(const QString& path, const QByteArray& data,
|
|
QString* errorMessage = nullptr);
|
|
static bool removeFileWithElevationIfNeeded(const QString& path, QString* errorMessage = nullptr);
|
|
QString getValue(const QString& section, const QString& key) const;
|
|
bool setValue(const QString& section, const QString& key, const QString& value);
|
|
QString configPath() const;
|
|
QString installRoot() const;
|
|
QString runtimeRoot() const;
|
|
QString dataRoot() const;
|
|
QString dataConfigDir() const;
|
|
QString clientIdentityPath() const;
|
|
QString policyPath() const;
|
|
QString localStatePath() const;
|
|
QString updateRoot() const;
|
|
QString runtimeRelativePath() const;
|
|
QString lastError() const;
|
|
|
|
private:
|
|
ConfigHelper();
|
|
bool migrateLegacyIniIfNeeded();
|
|
void enterRegistryGroup(QSettings& settings) const;
|
|
bool syncRegistryFromConfigFileIfChanged();
|
|
bool sanitizeConfigFileAfterImport(QSettings& settings);
|
|
bool removeRegistryValue(const QString& key) const;
|
|
QString readEmbeddedValue(const QString& key) const;
|
|
bool readRegistryValue(const QString& key, QString* value) const;
|
|
bool writeRegistryValue(const QString& key, const QString& value);
|
|
QString readFileValue(const QString& key) const;
|
|
QString m_configPath;
|
|
QString m_registryInstallId;
|
|
QString m_error;
|
|
};
|