mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-07-12 12:45:56 +00:00
initial user management dialog
This commit is contained in:
parent
3da6f25c59
commit
0e2f414cb6
8 changed files with 144 additions and 39 deletions
|
@ -1059,6 +1059,8 @@ set(QT_GUI src/qt_gui/about_dialog.cpp
|
|||
src/qt_gui/gui_settings.h
|
||||
src/qt_gui/settings.cpp
|
||||
src/qt_gui/settings.h
|
||||
src/qt_gui/user_management_dialog.cpp
|
||||
src/qt_gui/user_management_dialog.h
|
||||
${EMULATOR}
|
||||
${RESOURCE_FILES}
|
||||
${TRANSLATIONS}
|
||||
|
|
|
@ -53,6 +53,7 @@ path = [
|
|||
"src/images/refreshlist_icon.png",
|
||||
"src/images/settings_icon.png",
|
||||
"src/images/fullscreen_icon.png",
|
||||
"src/images/users_icon.png",
|
||||
"src/images/stop_icon.png",
|
||||
"src/images/utils_icon.png",
|
||||
"src/images/shadPS4.icns",
|
||||
|
|
BIN
src/images/users_icon.png
Normal file
BIN
src/images/users_icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.6 KiB |
|
@ -27,6 +27,7 @@
|
|||
#ifdef ENABLE_DISCORD_RPC
|
||||
#include "common/discord_rpc_handler.h"
|
||||
#endif
|
||||
#include "user_management_dialog.h"
|
||||
|
||||
MainWindow::MainWindow(QWidget* parent) : QMainWindow(parent), ui(new Ui::MainWindow) {
|
||||
ui->setupUi(this);
|
||||
|
@ -440,6 +441,11 @@ void MainWindow::CreateConnects() {
|
|||
settingsDialog->exec();
|
||||
});
|
||||
|
||||
connect(ui->userManagement, &QAction::triggered, this, [this]() {
|
||||
user_manager_dialog user_manager(this);
|
||||
user_manager.exec();
|
||||
});
|
||||
|
||||
connect(ui->settingsButton, &QPushButton::clicked, this, [this]() {
|
||||
auto settingsDialog = new SettingsDialog(m_gui_settings, m_compat_info, this);
|
||||
|
||||
|
@ -1103,6 +1109,7 @@ void MainWindow::SetUiIcons(bool isWhite) {
|
|||
ui->menuGame_List_Mode->setIcon(RecolorIcon(ui->menuGame_List_Mode->icon(), isWhite));
|
||||
ui->trophyViewerAct->setIcon(RecolorIcon(ui->trophyViewerAct->icon(), isWhite));
|
||||
ui->configureAct->setIcon(RecolorIcon(ui->configureAct->icon(), isWhite));
|
||||
ui->userManagement->setIcon(RecolorIcon(ui->userManagement->icon(), isWhite));
|
||||
ui->addElfFolderAct->setIcon(RecolorIcon(ui->addElfFolderAct->icon(), isWhite));
|
||||
}
|
||||
|
||||
|
|
|
@ -32,6 +32,7 @@ public:
|
|||
#endif
|
||||
QAction* aboutAct;
|
||||
QAction* configureAct;
|
||||
QAction* userManagement;
|
||||
QAction* setThemeDark;
|
||||
QAction* setThemeLight;
|
||||
QAction* setThemeGreen;
|
||||
|
@ -155,6 +156,9 @@ public:
|
|||
configureAct = new QAction(MainWindow);
|
||||
configureAct->setObjectName("configureAct");
|
||||
configureAct->setIcon(QIcon(":images/settings_icon.png"));
|
||||
userManagement = new QAction(MainWindow);
|
||||
userManagement->setObjectName("userManagement");
|
||||
userManagement->setIcon(QIcon(":images/users_icon.png"));
|
||||
setThemeDark = new QAction(MainWindow);
|
||||
setThemeDark->setObjectName("setThemeDark");
|
||||
setThemeDark->setCheckable(true);
|
||||
|
@ -329,6 +333,7 @@ public:
|
|||
menuGame_List_Mode->addAction(setlistModeGridAct);
|
||||
menuGame_List_Mode->addAction(setlistElfAct);
|
||||
menuSettings->addAction(configureAct);
|
||||
menuSettings->addAction(userManagement);
|
||||
menuSettings->addAction(gameInstallPathAct);
|
||||
menuSettings->addAction(menuUtils->menuAction());
|
||||
menuUtils->addAction(downloadCheatsPatchesAct);
|
||||
|
@ -355,6 +360,7 @@ public:
|
|||
#endif
|
||||
aboutAct->setText(QCoreApplication::translate("MainWindow", "About shadPS4", nullptr));
|
||||
configureAct->setText(QCoreApplication::translate("MainWindow", "Configure...", nullptr));
|
||||
userManagement->setText(QCoreApplication::translate("MainWindow", "User Management", nullptr));
|
||||
#if QT_CONFIG(tooltip)
|
||||
#endif // QT_CONFIG(tooltip)
|
||||
menuRecent->setTitle(QCoreApplication::translate("MainWindow", "Recent Games", nullptr));
|
||||
|
|
68
src/qt_gui/user_management_dialog.cpp
Normal file
68
src/qt_gui/user_management_dialog.cpp
Normal file
|
@ -0,0 +1,68 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#include <QDesktopServices>
|
||||
#include <QEvent>
|
||||
#include <QGuiApplication>
|
||||
#include <QHBoxLayout>
|
||||
#include <QHeaderView>
|
||||
#include <QInputDialog>
|
||||
#include <QKeyEvent>
|
||||
#include <QMenu>
|
||||
#include <QMessageBox>
|
||||
#include <QMouseEvent>
|
||||
#include <QPushButton>
|
||||
#include <QRegularExpressionValidator>
|
||||
#include <QScreen>
|
||||
#include "user_management_dialog.h"
|
||||
|
||||
user_manager_dialog::user_manager_dialog(QWidget* parent) : QDialog(parent) {
|
||||
setWindowTitle(tr("User Manager"));
|
||||
setMinimumSize(QSize(500, 400));
|
||||
setModal(true);
|
||||
|
||||
Init();
|
||||
}
|
||||
|
||||
void user_manager_dialog::Init() {
|
||||
// Table
|
||||
m_table = new QTableWidget(this);
|
||||
m_table->setSelectionMode(QAbstractItemView::SelectionMode::SingleSelection);
|
||||
m_table->setSelectionBehavior(QAbstractItemView::SelectRows);
|
||||
m_table->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
m_table->setColumnCount(2);
|
||||
m_table->setCornerButtonEnabled(false);
|
||||
m_table->setAlternatingRowColors(true);
|
||||
m_table->setHorizontalHeaderLabels(QStringList() << tr("User ID") << tr("User Name"));
|
||||
m_table->horizontalHeader()->setDefaultAlignment(Qt::AlignLeft);
|
||||
m_table->horizontalHeader()->setStretchLastSection(true);
|
||||
m_table->horizontalHeader()->setDefaultSectionSize(150);
|
||||
m_table->installEventFilter(this);
|
||||
|
||||
QPushButton* push_remove_user = new QPushButton(tr("&Delete User"), this);
|
||||
push_remove_user->setAutoDefault(false);
|
||||
|
||||
QPushButton* push_create_user = new QPushButton(tr("&Create User"), this);
|
||||
push_create_user->setAutoDefault(false);
|
||||
|
||||
QPushButton* push_rename_user = new QPushButton(tr("&Rename User"), this);
|
||||
push_rename_user->setAutoDefault(false);
|
||||
|
||||
QPushButton* push_close = new QPushButton(tr("&Close"), this);
|
||||
push_close->setAutoDefault(false);
|
||||
|
||||
// Button Layout
|
||||
QHBoxLayout* hbox_buttons = new QHBoxLayout();
|
||||
hbox_buttons->addWidget(push_create_user);
|
||||
hbox_buttons->addWidget(push_rename_user);
|
||||
hbox_buttons->addWidget(push_remove_user);
|
||||
hbox_buttons->addStretch();
|
||||
hbox_buttons->addWidget(push_close);
|
||||
|
||||
// Main Layout
|
||||
QVBoxLayout* vbox_main = new QVBoxLayout();
|
||||
vbox_main->setAlignment(Qt::AlignCenter);
|
||||
vbox_main->addWidget(m_table);
|
||||
vbox_main->addLayout(hbox_buttons);
|
||||
setLayout(vbox_main);
|
||||
}
|
20
src/qt_gui/user_management_dialog.h
Normal file
20
src/qt_gui/user_management_dialog.h
Normal file
|
@ -0,0 +1,20 @@
|
|||
// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project
|
||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QDialog>
|
||||
#include <QTableWidget>
|
||||
|
||||
class user_manager_dialog : public QDialog {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit user_manager_dialog(QWidget* parent = nullptr);
|
||||
|
||||
private:
|
||||
void Init();
|
||||
|
||||
QTableWidget* m_table = nullptr;
|
||||
|
||||
};
|
|
@ -1,41 +1,42 @@
|
|||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file>images/shadps4.ico</file>
|
||||
<file>images/shadps4.png</file>
|
||||
<file>images/about_icon.png</file>
|
||||
<file>images/dump_icon.png</file>
|
||||
<file>images/play_icon.png</file>
|
||||
<file>images/pause_icon.png</file>
|
||||
<file>images/stop_icon.png</file>
|
||||
<file>images/utils_icon.png</file>
|
||||
<file>images/file_icon.png</file>
|
||||
<file>images/folder_icon.png</file>
|
||||
<file>images/themes_icon.png</file>
|
||||
<file>images/iconsize_icon.png</file>
|
||||
<file>images/list_icon.png</file>
|
||||
<file>images/grid_icon.png</file>
|
||||
<file>images/exit_icon.png</file>
|
||||
<file>images/settings_icon.png</file>
|
||||
<file>images/controller_icon.png</file>
|
||||
<file>images/restart_game_icon.png</file>
|
||||
<file>images/update_icon.png</file>
|
||||
<file>images/list_mode_icon.png</file>
|
||||
<file>images/flag_jp.png</file>
|
||||
<file>images/flag_eu.png</file>
|
||||
<file>images/flag_unk.png</file>
|
||||
<file>images/flag_us.png</file>
|
||||
<file>images/flag_world.png</file>
|
||||
<file>images/flag_china.png</file>
|
||||
<file>images/github.png</file>
|
||||
<file>images/discord.png</file>
|
||||
<file>images/ko-fi.png</file>
|
||||
<file>images/youtube.png</file>
|
||||
<file>images/website.png</file>
|
||||
<file>images/ps4_controller.png</file>
|
||||
<file>images/keyboard_icon.png</file>
|
||||
<file>images/KBM.png</file>
|
||||
<file>images/fullscreen_icon.png</file>
|
||||
<file>images/refreshlist_icon.png</file>
|
||||
<file>images/trophy_icon.png</file>
|
||||
</qresource>
|
||||
<qresource prefix="/">
|
||||
<file>images/shadps4.ico</file>
|
||||
<file>images/shadps4.png</file>
|
||||
<file>images/about_icon.png</file>
|
||||
<file>images/dump_icon.png</file>
|
||||
<file>images/play_icon.png</file>
|
||||
<file>images/pause_icon.png</file>
|
||||
<file>images/stop_icon.png</file>
|
||||
<file>images/utils_icon.png</file>
|
||||
<file>images/file_icon.png</file>
|
||||
<file>images/folder_icon.png</file>
|
||||
<file>images/themes_icon.png</file>
|
||||
<file>images/iconsize_icon.png</file>
|
||||
<file>images/list_icon.png</file>
|
||||
<file>images/grid_icon.png</file>
|
||||
<file>images/exit_icon.png</file>
|
||||
<file>images/settings_icon.png</file>
|
||||
<file>images/users_icon.png</file>
|
||||
<file>images/controller_icon.png</file>
|
||||
<file>images/restart_game_icon.png</file>
|
||||
<file>images/update_icon.png</file>
|
||||
<file>images/list_mode_icon.png</file>
|
||||
<file>images/flag_jp.png</file>
|
||||
<file>images/flag_eu.png</file>
|
||||
<file>images/flag_unk.png</file>
|
||||
<file>images/flag_us.png</file>
|
||||
<file>images/flag_world.png</file>
|
||||
<file>images/flag_china.png</file>
|
||||
<file>images/github.png</file>
|
||||
<file>images/discord.png</file>
|
||||
<file>images/ko-fi.png</file>
|
||||
<file>images/youtube.png</file>
|
||||
<file>images/website.png</file>
|
||||
<file>images/ps4_controller.png</file>
|
||||
<file>images/keyboard_icon.png</file>
|
||||
<file>images/KBM.png</file>
|
||||
<file>images/fullscreen_icon.png</file>
|
||||
<file>images/refreshlist_icon.png</file>
|
||||
<file>images/trophy_icon.png</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue