2023-10-11 13:25:24 -04:00
|
|
|
// SPDX-FileCopyrightText: 2023 Joshua Goins <josh@redstrate.com>
|
|
|
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
|
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <QObject>
|
|
|
|
#include <QtQml/qqmlregistration.h>
|
|
|
|
|
|
|
|
#include "config.h"
|
|
|
|
#include "profile.h"
|
|
|
|
|
|
|
|
class LauncherSettings : public QObject
|
|
|
|
{
|
|
|
|
Q_OBJECT
|
|
|
|
QML_ELEMENT
|
|
|
|
QML_UNCREATABLE("Use LauncherCore.settings")
|
|
|
|
|
|
|
|
Q_PROPERTY(bool closeWhenLaunched READ closeWhenLaunched WRITE setCloseWhenLaunched NOTIFY closeWhenLaunchedChanged)
|
|
|
|
Q_PROPERTY(bool showNews READ showNews WRITE setShowNews NOTIFY showNewsChanged)
|
|
|
|
Q_PROPERTY(bool showDevTools READ showDevTools WRITE setShowDevTools NOTIFY showDevToolsChanged)
|
|
|
|
Q_PROPERTY(bool keepPatches READ keepPatches WRITE setKeepPatches NOTIFY keepPatchesChanged)
|
|
|
|
Q_PROPERTY(QString dalamudDistribServer READ dalamudDistribServer WRITE setDalamudDistribServer NOTIFY dalamudDistribServerChanged)
|
|
|
|
Q_PROPERTY(QString squareEnixServer READ squareEnixServer WRITE setSquareEnixServer NOTIFY squareEnixServerChanged)
|
|
|
|
Q_PROPERTY(QString squareEnixLoginServer READ squareEnixLoginServer WRITE setSquareEnixLoginServer NOTIFY squareEnixLoginServerChanged)
|
|
|
|
Q_PROPERTY(QString xivApiServer READ xivApiServer WRITE setXivApiServer NOTIFY xivApiServerChanged)
|
|
|
|
Q_PROPERTY(QString preferredProtocol READ preferredProtocol WRITE setPreferredProtocol NOTIFY preferredProtocolChanged)
|
|
|
|
Q_PROPERTY(QString screenshotDir READ screenshotDir WRITE setScreenshotDir NOTIFY screenshotDirChanged)
|
|
|
|
Q_PROPERTY(bool argumentsEncrypted READ argumentsEncrypted WRITE setArgumentsEncrypted NOTIFY encryptedArgumentsChanged)
|
|
|
|
|
|
|
|
public:
|
|
|
|
explicit LauncherSettings(QObject *parent = nullptr);
|
|
|
|
|
|
|
|
[[nodiscard]] bool closeWhenLaunched() const;
|
|
|
|
void setCloseWhenLaunched(bool value);
|
|
|
|
|
|
|
|
[[nodiscard]] bool showNews() const;
|
|
|
|
void setShowNews(bool value);
|
|
|
|
|
|
|
|
[[nodiscard]] bool showDevTools() const;
|
|
|
|
void setShowDevTools(bool value);
|
|
|
|
|
|
|
|
[[nodiscard]] bool keepPatches() const;
|
|
|
|
void setKeepPatches(bool value);
|
|
|
|
|
|
|
|
[[nodiscard]] QString dalamudDistribServer() const;
|
|
|
|
void setDalamudDistribServer(const QString &value);
|
|
|
|
|
|
|
|
[[nodiscard]] QString squareEnixServer() const;
|
|
|
|
void setSquareEnixServer(const QString &value);
|
|
|
|
|
|
|
|
[[nodiscard]] QString squareEnixLoginServer() const;
|
|
|
|
void setSquareEnixLoginServer(const QString &value);
|
|
|
|
|
|
|
|
[[nodiscard]] QString xivApiServer() const;
|
|
|
|
void setXivApiServer(const QString &value);
|
|
|
|
|
|
|
|
[[nodiscard]] QString preferredProtocol() const;
|
|
|
|
void setPreferredProtocol(const QString &value);
|
|
|
|
|
|
|
|
[[nodiscard]] QString screenshotDir() const;
|
|
|
|
void setScreenshotDir(const QString &value);
|
|
|
|
|
|
|
|
[[nodiscard]] bool argumentsEncrypted() const;
|
|
|
|
void setArgumentsEncrypted(bool value);
|
|
|
|
|
2023-12-17 11:23:17 -05:00
|
|
|
[[nodiscard]] QString currentProfile() const;
|
|
|
|
void setCurrentProfile(const QString &value);
|
|
|
|
|
2023-10-11 13:25:24 -04:00
|
|
|
Config *config();
|
|
|
|
|
|
|
|
Q_SIGNALS:
|
|
|
|
void closeWhenLaunchedChanged();
|
|
|
|
void showNewsChanged();
|
|
|
|
void showDevToolsChanged();
|
|
|
|
void keepPatchesChanged();
|
|
|
|
void dalamudDistribServerChanged();
|
|
|
|
void squareEnixServerChanged();
|
|
|
|
void squareEnixLoginServerChanged();
|
|
|
|
void xivApiServerChanged();
|
|
|
|
void preferredProtocolChanged();
|
|
|
|
void screenshotDirChanged();
|
|
|
|
void encryptedArgumentsChanged();
|
|
|
|
|
|
|
|
private:
|
|
|
|
Config *m_config = nullptr;
|
|
|
|
};
|