| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
- // SPDX-License-Identifier: GPL-2.0-or-later
- #pragma once
- #include <vector>
- #include <QDialog>
- #include <QList>
- #include "core/frontend/applets/profile_select.h"
- class ControllerNavigation;
- class GMainWindow;
- class QDialogButtonBox;
- class QGraphicsScene;
- class QLabel;
- class QScrollArea;
- class QStandardItem;
- class QStandardItemModel;
- class QTreeView;
- class QVBoxLayout;
- namespace Core {
- class System;
- }
- namespace Service::Account {
- class ProfileManager;
- }
- class QtProfileSelectionDialog final : public QDialog {
- Q_OBJECT
- public:
- explicit QtProfileSelectionDialog(Core::System& system, QWidget* parent,
- const Core::Frontend::ProfileSelectParameters& parameters);
- ~QtProfileSelectionDialog() override;
- int exec() override;
- void accept() override;
- void reject() override;
- int GetIndex() const;
- private:
- void SelectUser(const QModelIndex& index);
- void SetWindowTitle(const Core::Frontend::ProfileSelectParameters& parameters);
- void SetDialogPurpose(const Core::Frontend::ProfileSelectParameters& parameters);
- int user_index = 0;
- QVBoxLayout* layout;
- QTreeView* tree_view;
- QStandardItemModel* item_model;
- QGraphicsScene* scene;
- std::vector<QList<QStandardItem*>> list_items;
- QVBoxLayout* outer_layout;
- QLabel* instruction_label;
- QScrollArea* scroll_area;
- QDialogButtonBox* buttons;
- Service::Account::ProfileManager& profile_manager;
- ControllerNavigation* controller_navigation = nullptr;
- };
- class QtProfileSelector final : public QObject, public Core::Frontend::ProfileSelectApplet {
- Q_OBJECT
- public:
- explicit QtProfileSelector(GMainWindow& parent);
- ~QtProfileSelector() override;
- void Close() const override;
- void SelectProfile(SelectProfileCallback callback_,
- const Core::Frontend::ProfileSelectParameters& parameters) const override;
- signals:
- void MainWindowSelectProfile(const Core::Frontend::ProfileSelectParameters& parameters) const;
- void MainWindowRequestExit() const;
- private:
- void MainWindowFinishedSelection(std::optional<Common::UUID> uuid);
- mutable SelectProfileCallback callback;
- };
|