summaryrefslogtreecommitdiff
path: root/src/citron/configuration/configure_profile_manager.h
diff options
context:
space:
mode:
authorZephyron <zephyron@citron-emu.org>2024-12-31 16:19:25 +1000
committerZephyron <zephyron@citron-emu.org>2024-12-31 16:19:25 +1000
commit9427e27e24a7135880ee2881c3c44988e174b41a (patch)
tree83f0062a35be144f6b162eaa823c5b3c7620146e /src/citron/configuration/configure_profile_manager.h
parentb35ae725d20960411e8588b11c12a2d55f86c9d0 (diff)
chore: update project branding to citron
Diffstat (limited to 'src/citron/configuration/configure_profile_manager.h')
-rw-r--r--src/citron/configuration/configure_profile_manager.h90
1 files changed, 90 insertions, 0 deletions
diff --git a/src/citron/configuration/configure_profile_manager.h b/src/citron/configuration/configure_profile_manager.h
new file mode 100644
index 000000000..39560fdd9
--- /dev/null
+++ b/src/citron/configuration/configure_profile_manager.h
@@ -0,0 +1,90 @@
+// SPDX-FileCopyrightText: 2016 Citra Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+#pragma once
+
+#include <functional>
+#include <memory>
+
+#include <QDialog>
+#include <QList>
+#include <QWidget>
+
+namespace Common {
+struct UUID;
+}
+
+namespace Core {
+class System;
+}
+
+class QGraphicsScene;
+class QDialogButtonBox;
+class QLabel;
+class QStandardItem;
+class QStandardItemModel;
+class QTreeView;
+class QVBoxLayout;
+
+namespace Service::Account {
+class ProfileManager;
+}
+
+namespace Ui {
+class ConfigureProfileManager;
+}
+
+class ConfigureProfileManagerDeleteDialog : public QDialog {
+public:
+ explicit ConfigureProfileManagerDeleteDialog(QWidget* parent);
+ ~ConfigureProfileManagerDeleteDialog();
+
+ void SetInfo(const QString& username, const Common::UUID& uuid,
+ std::function<void()> accept_callback);
+
+private:
+ QDialogButtonBox* dialog_button_box;
+ QGraphicsScene* icon_scene;
+ QLabel* label_info;
+};
+
+class ConfigureProfileManager : public QWidget {
+ Q_OBJECT
+
+public:
+ explicit ConfigureProfileManager(Core::System& system_, QWidget* parent = nullptr);
+ ~ConfigureProfileManager() override;
+
+ void ApplyConfiguration();
+
+private:
+ void changeEvent(QEvent* event) override;
+ void RetranslateUI();
+
+ void SetConfiguration();
+
+ void PopulateUserList();
+ void UpdateCurrentUser();
+
+ void SelectUser(const QModelIndex& index);
+ void AddUser();
+ void RenameUser();
+ void ConfirmDeleteUser();
+ void DeleteUser(const Common::UUID& uuid);
+ void SetUserImage();
+
+ QVBoxLayout* layout;
+ QTreeView* tree_view;
+ QStandardItemModel* item_model;
+ QGraphicsScene* scene;
+
+ ConfigureProfileManagerDeleteDialog* confirm_dialog;
+
+ std::vector<QList<QStandardItem*>> list_items;
+
+ std::unique_ptr<Ui::ConfigureProfileManager> ui;
+ bool enabled = false;
+
+ Service::Account::ProfileManager& profile_manager;
+ const Core::System& system;
+};