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
|
|
|
|
|
2024-07-04 20:53:06 -04:00
|
|
|
#include <QtQml>
|
2023-10-11 13:25:24 -04:00
|
|
|
|
|
|
|
#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 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)
|
2024-06-29 20:46:08 -04:00
|
|
|
Q_PROPERTY(QString mainServer READ mainServer WRITE setMainServer NOTIFY mainServerChanged)
|
2023-10-11 13:25:24 -04:00
|
|
|
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)
|
2024-04-19 20:37:51 -04:00
|
|
|
Q_PROPERTY(bool enableRenderDocCapture READ enableRenderDocCapture WRITE setEnableRenderDocCapture NOTIFY enableRenderDocCaptureChanged)
|
2024-07-28 11:17:30 -04:00
|
|
|
Q_PROPERTY(bool enableSync READ enableSync WRITE setEnableSync NOTIFY enableSyncChanged)
|
2023-10-11 13:25:24 -04:00
|
|
|
|
|
|
|
public:
|
|
|
|
explicit LauncherSettings(QObject *parent = nullptr);
|
|
|
|
|
|
|
|
[[nodiscard]] bool closeWhenLaunched() const;
|
|
|
|
void setCloseWhenLaunched(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);
|
2024-07-28 22:29:46 -04:00
|
|
|
Q_INVOKABLE QString defaultDalamudDistribServer() const;
|
2023-10-11 13:25:24 -04:00
|
|
|
|
|
|
|
[[nodiscard]] QString squareEnixServer() const;
|
|
|
|
void setSquareEnixServer(const QString &value);
|
2024-07-28 22:29:46 -04:00
|
|
|
Q_INVOKABLE QString defaultSquareEnixServer() const;
|
2023-10-11 13:25:24 -04:00
|
|
|
|
|
|
|
[[nodiscard]] QString squareEnixLoginServer() const;
|
|
|
|
void setSquareEnixLoginServer(const QString &value);
|
2024-07-28 22:29:46 -04:00
|
|
|
Q_INVOKABLE QString defaultSquareEnixLoginServer() const;
|
2023-10-11 13:25:24 -04:00
|
|
|
|
2024-06-29 20:46:08 -04:00
|
|
|
[[nodiscard]] QString mainServer() const;
|
|
|
|
void setMainServer(const QString &value);
|
2024-07-28 22:29:46 -04:00
|
|
|
Q_INVOKABLE QString defaultMainServer() const;
|
2023-10-11 13:25:24 -04:00
|
|
|
|
|
|
|
[[nodiscard]] QString preferredProtocol() const;
|
|
|
|
void setPreferredProtocol(const QString &value);
|
2024-07-28 22:29:46 -04:00
|
|
|
Q_INVOKABLE QString defaultPreferredProtocol() const;
|
2023-10-11 13:25:24 -04:00
|
|
|
|
|
|
|
[[nodiscard]] QString screenshotDir() const;
|
|
|
|
void setScreenshotDir(const QString &value);
|
|
|
|
|
|
|
|
[[nodiscard]] bool argumentsEncrypted() const;
|
|
|
|
void setArgumentsEncrypted(bool value);
|
|
|
|
|
2024-04-19 20:37:51 -04:00
|
|
|
[[nodiscard]] bool enableRenderDocCapture() const;
|
|
|
|
void setEnableRenderDocCapture(bool value);
|
|
|
|
|
2023-12-17 11:23:17 -05:00
|
|
|
[[nodiscard]] QString currentProfile() const;
|
|
|
|
void setCurrentProfile(const QString &value);
|
|
|
|
|
2024-07-28 11:17:30 -04:00
|
|
|
[[nodiscard]] bool enableSync() const;
|
|
|
|
void setEnableSync(bool enabled);
|
|
|
|
|
2023-10-11 13:25:24 -04:00
|
|
|
Config *config();
|
|
|
|
|
|
|
|
Q_SIGNALS:
|
|
|
|
void closeWhenLaunchedChanged();
|
|
|
|
void showDevToolsChanged();
|
|
|
|
void keepPatchesChanged();
|
|
|
|
void dalamudDistribServerChanged();
|
|
|
|
void squareEnixServerChanged();
|
|
|
|
void squareEnixLoginServerChanged();
|
2024-06-29 20:46:08 -04:00
|
|
|
void mainServerChanged();
|
2023-10-11 13:25:24 -04:00
|
|
|
void preferredProtocolChanged();
|
|
|
|
void screenshotDirChanged();
|
|
|
|
void encryptedArgumentsChanged();
|
2024-04-19 20:37:51 -04:00
|
|
|
void enableRenderDocCaptureChanged();
|
2024-07-28 11:17:30 -04:00
|
|
|
void enableSyncChanged();
|
2023-10-11 13:25:24 -04:00
|
|
|
|
|
|
|
private:
|
|
|
|
Config *m_config = nullptr;
|
2025-02-01 10:20:39 -05:00
|
|
|
};
|