mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-04-20 19:45:20 +00:00
Merge branch 'master' of github.com:daviDarthemis/rpcs3-debug
This commit is contained in:
commit
fc5162a02f
9 changed files with 92 additions and 58 deletions
|
@ -22,7 +22,7 @@ LOG_CHANNEL(sys_fs);
|
|||
|
||||
lv2_fs_mount_point g_mp_sys_dev_usb{"/dev_usb", "CELL_FS_FAT", "CELL_FS_IOS:USB_MASS_STORAGE", 512, 0x100, 4096, lv2_mp_flag::no_uid_gid};
|
||||
lv2_fs_mount_point g_mp_sys_dev_dvd{"/dev_ps2disc", "CELL_FS_ISO9660", "CELL_FS_IOS:PATA1_BDVD_DRIVE", 2048, 0x100, 32768, lv2_mp_flag::read_only + lv2_mp_flag::no_uid_gid, &g_mp_sys_dev_usb};
|
||||
lv2_fs_mount_point g_mp_sys_dev_bdvd{"/dev_bdvd", "CELL_FS_ISO9660", "CELL_FS_IOS:PATA0_BDVD_DRIVE", 2048, 0x4D955, 65536, lv2_mp_flag::read_only + lv2_mp_flag::no_uid_gid, &g_mp_sys_dev_dvd};
|
||||
lv2_fs_mount_point g_mp_sys_dev_bdvd{"/dev_bdvd", "CELL_FS_ISO9660", "CELL_FS_IOS:PATA0_BDVD_DRIVE", 2048, 0x4D955, 2048, lv2_mp_flag::read_only + lv2_mp_flag::no_uid_gid, &g_mp_sys_dev_dvd};
|
||||
lv2_fs_mount_point g_mp_sys_dev_hdd1{"/dev_hdd1", "CELL_FS_FAT", "CELL_FS_UTILITY:HDD1", 512, 0x3FFFF8, 32768, lv2_mp_flag::no_uid_gid + lv2_mp_flag::cache, &g_mp_sys_dev_bdvd};
|
||||
lv2_fs_mount_point g_mp_sys_dev_hdd0{"/dev_hdd0", "CELL_FS_UFS", "CELL_FS_UTILITY:HDD0", 512, 0x24FAEA98, 4096, {}, &g_mp_sys_dev_hdd1};
|
||||
lv2_fs_mount_point g_mp_sys_dev_flash3{"/dev_flash3", "CELL_FS_FAT", "CELL_FS_IOS:BUILTIN_FLSH3", 512, 0x400, 8192, lv2_mp_flag::no_uid_gid, &g_mp_sys_dev_hdd0}; // TODO confirm
|
||||
|
|
|
@ -161,18 +161,10 @@ bool gui_application::Init()
|
|||
{
|
||||
welcome_dialog* welcome = new welcome_dialog(m_gui_settings, false);
|
||||
|
||||
bool use_dark_theme = false;
|
||||
|
||||
connect(welcome, &QDialog::accepted, this, [&]()
|
||||
if (welcome->exec() == QDialog::Rejected)
|
||||
{
|
||||
use_dark_theme = welcome->does_user_want_dark_theme();
|
||||
});
|
||||
|
||||
welcome->exec();
|
||||
|
||||
if (use_dark_theme)
|
||||
{
|
||||
m_gui_settings->SetValue(gui::m_currentStylesheet, "Darker Style by TheMitoSan");
|
||||
// If the agreement on RPCS3's usage conditions was not accepted by the user, ask the main window to gracefully terminate
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -87,10 +87,11 @@ namespace gui
|
|||
return q_string_pair(path, title.simplified()); // simplified() forces single line text
|
||||
}
|
||||
|
||||
const QString Settings = "CurrentSettings";
|
||||
const QString Settings = "CurrentSettings";
|
||||
const QString DefaultStylesheet = "default";
|
||||
const QString NoStylesheet = "none";
|
||||
const QString NativeStylesheet = "native";
|
||||
const QString NoStylesheet = "none";
|
||||
const QString NativeStylesheet = "native";
|
||||
const QString DarkStylesheet = "Darker Style by TheMitoSan";
|
||||
|
||||
const QString main_window = "main_window";
|
||||
const QString game_list = "GameList";
|
||||
|
|
|
@ -1848,12 +1848,29 @@ void main_window::SaveWindowState() const
|
|||
// Save gui settings
|
||||
m_gui_settings->SetValue(gui::mw_geometry, saveGeometry(), false);
|
||||
m_gui_settings->SetValue(gui::mw_windowState, saveState(), false);
|
||||
m_gui_settings->SetValue(gui::mw_mwState, m_mw->saveState(), true);
|
||||
|
||||
// Save column settings
|
||||
m_game_list_frame->SaveSettings();
|
||||
// Save splitter state
|
||||
m_debugger_frame->SaveSettings();
|
||||
// NOTE:
|
||||
//
|
||||
// This method is also invoked in case the gui_application::Init() method failed ("false" was returned)
|
||||
// to initialize some modules leaving other modules uninitialized (NULL pointed).
|
||||
// So, the following checks on NULL pointer are provided before accessing the related module's object
|
||||
|
||||
if (m_mw)
|
||||
{
|
||||
m_gui_settings->SetValue(gui::mw_mwState, m_mw->saveState(), true);
|
||||
}
|
||||
|
||||
if (m_game_list_frame)
|
||||
{
|
||||
// Save column settings
|
||||
m_game_list_frame->SaveSettings();
|
||||
}
|
||||
|
||||
if (m_debugger_frame)
|
||||
{
|
||||
// Save splitter state
|
||||
m_debugger_frame->SaveSettings();
|
||||
}
|
||||
}
|
||||
|
||||
void main_window::RepaintThumbnailIcons()
|
||||
|
|
|
@ -150,11 +150,13 @@ namespace gui
|
|||
|
||||
static inline Qt::ColorScheme color_scheme()
|
||||
{
|
||||
// use the QGuiApplication's properties to report the default GUI color scheme
|
||||
return QGuiApplication::styleHints()->colorScheme();
|
||||
}
|
||||
|
||||
static inline bool dark_mode_active()
|
||||
{
|
||||
// "true" if the default GUI color scheme is dark. "false" otherwise
|
||||
return color_scheme() == Qt::ColorScheme::Dark;
|
||||
}
|
||||
|
||||
|
|
|
@ -19,16 +19,12 @@ welcome_dialog::welcome_dialog(std::shared_ptr<gui_settings> gui_settings, bool
|
|||
ui->setupUi(this);
|
||||
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
setWindowFlag(Qt::WindowCloseButtonHint, is_manual_show);
|
||||
setWindowFlag(Qt::WindowCloseButtonHint, false); // disable the close button shown on the dialog's top right corner
|
||||
layout()->setSizeConstraint(QLayout::SetFixedSize);
|
||||
|
||||
ui->okay->setEnabled(is_manual_show);
|
||||
ui->i_have_read->setChecked(is_manual_show);
|
||||
ui->i_have_read->setEnabled(!is_manual_show);
|
||||
ui->do_not_show->setEnabled(!is_manual_show);
|
||||
ui->do_not_show->setChecked(!m_gui_settings->GetValue(gui::ib_show_welcome).toBool());
|
||||
ui->use_dark_theme->setChecked(gui::utils::dark_mode_active());
|
||||
ui->icon_label->load(QStringLiteral(":/rpcs3.svg"));
|
||||
ui->label_3->setText(tr(
|
||||
|
||||
ui->label_desc->setText(tr(
|
||||
R"(
|
||||
<p style="white-space: nowrap;">
|
||||
RPCS3 is an open-source Sony PlayStation 3 emulator and debugger.<br>
|
||||
|
@ -50,33 +46,44 @@ welcome_dialog::welcome_dialog(std::shared_ptr<gui_settings> gui_settings, bool
|
|||
)"
|
||||
).arg(gui::utils::get_link_style()));
|
||||
|
||||
#ifdef __APPLE__
|
||||
ui->create_applications_menu_shortcut->setText(tr("&Create Launchpad shortcut"));
|
||||
ui->use_dark_theme->setVisible(false);
|
||||
ui->use_dark_theme->setEnabled(false);
|
||||
#else
|
||||
#ifndef _WIN32
|
||||
ui->create_applications_menu_shortcut->setText(tr("&Create Application Menu shortcut"));
|
||||
#endif
|
||||
|
||||
ui->use_dark_theme->setVisible(!is_manual_show);
|
||||
ui->use_dark_theme->setEnabled(!is_manual_show);
|
||||
ui->use_dark_theme->setChecked(gui::utils::dark_mode_active());
|
||||
#endif
|
||||
|
||||
ui->accept->setEnabled(is_manual_show);
|
||||
ui->reject->setVisible(!is_manual_show);
|
||||
ui->i_have_read->setVisible(!is_manual_show);
|
||||
ui->i_have_read->setChecked(is_manual_show);
|
||||
ui->show_at_startup->setChecked(m_gui_settings->GetValue(gui::ib_show_welcome).toBool());
|
||||
|
||||
if (!is_manual_show)
|
||||
{
|
||||
connect(ui->i_have_read, &QCheckBox::clicked, this, [this](bool checked)
|
||||
{
|
||||
ui->okay->setEnabled(checked);
|
||||
});
|
||||
|
||||
connect(ui->do_not_show, &QCheckBox::clicked, this, [this](bool checked)
|
||||
{
|
||||
m_gui_settings->SetValue(gui::ib_show_welcome, QVariant(!checked));
|
||||
ui->accept->setEnabled(checked);
|
||||
ui->reject->setEnabled(!checked);
|
||||
});
|
||||
}
|
||||
|
||||
connect(ui->okay, &QPushButton::clicked, this, &QDialog::accept);
|
||||
connect(ui->show_at_startup, &QCheckBox::clicked, this, [this](bool checked)
|
||||
{
|
||||
m_gui_settings->SetValue(gui::ib_show_welcome, QVariant(checked));
|
||||
});
|
||||
|
||||
#ifdef _WIN32
|
||||
ui->create_applications_menu_shortcut->setText(tr("&Create Start Menu shortcut"));
|
||||
#elif defined(__APPLE__)
|
||||
ui->create_applications_menu_shortcut->setText(tr("&Create Launchpad shortcut"));
|
||||
ui->use_dark_theme->setVisible(false);
|
||||
#else
|
||||
ui->create_applications_menu_shortcut->setText(tr("&Create Application Menu shortcut"));
|
||||
#endif
|
||||
connect(ui->accept, &QPushButton::clicked, this, &QDialog::accept); // trigger "accept" signal (setting also dialog's result code to QDialog::Accepted)
|
||||
connect(ui->reject, &QPushButton::clicked, this, &QDialog::reject); // trigger "reject" signal (setting also dialog's result code to QDialog::Rejected)
|
||||
|
||||
layout()->setSizeConstraint(QLayout::SetFixedSize);
|
||||
|
||||
connect(this, &QDialog::finished, this, [this]()
|
||||
connect(this, &QDialog::accepted, this, [this]() // "accept" signal's event handler
|
||||
{
|
||||
if (ui->create_desktop_shortcut->isChecked())
|
||||
{
|
||||
|
@ -88,7 +95,16 @@ welcome_dialog::welcome_dialog(std::shared_ptr<gui_settings> gui_settings, bool
|
|||
gui::utils::create_shortcut("RPCS3", "", "", "RPCS3", ":/rpcs3.svg", fs::get_temp_dir(), gui::utils::shortcut_location::applications);
|
||||
}
|
||||
|
||||
m_user_wants_dark_theme = ui->use_dark_theme->isChecked();
|
||||
if (ui->use_dark_theme->isChecked() && ui->use_dark_theme->isEnabled()) // if checked and also on initial welcome dialog
|
||||
{
|
||||
m_gui_settings->SetValue(gui::m_currentStylesheet, gui::DarkStylesheet);
|
||||
}
|
||||
});
|
||||
|
||||
connect(this, &QDialog::rejected, this, [this]() // "reject" signal's event handler
|
||||
{
|
||||
// if the agreement on RPCS3's usage conditions was not accepted by the user, always display the initial welcome dialog at next startup
|
||||
m_gui_settings->SetValue(gui::ib_show_welcome, QVariant(true));
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
@ -17,12 +17,7 @@ public:
|
|||
explicit welcome_dialog(std::shared_ptr<gui_settings> gui_settings, bool is_manual_show, QWidget* parent = nullptr);
|
||||
~welcome_dialog();
|
||||
|
||||
bool does_user_want_dark_theme() const
|
||||
{
|
||||
return m_user_wants_dark_theme;
|
||||
}
|
||||
private:
|
||||
std::unique_ptr<Ui::welcome_dialog> ui;
|
||||
std::shared_ptr<gui_settings> m_gui_settings;
|
||||
bool m_user_wants_dark_theme = false;
|
||||
};
|
||||
|
|
|
@ -103,7 +103,7 @@
|
|||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<widget class="QLabel" name="label_desc">
|
||||
<property name="font">
|
||||
<font>
|
||||
<family>Arial</family>
|
||||
|
@ -201,7 +201,7 @@
|
|||
<item>
|
||||
<widget class="QCheckBox" name="use_dark_theme">
|
||||
<property name="text">
|
||||
<string>Use Dark Theme (Can Be Configured Later)</string>
|
||||
<string>Use Dark Theme (can be configured later)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -233,7 +233,7 @@
|
|||
<number>0</number>
|
||||
</property>
|
||||
<item alignment="Qt::AlignLeft">
|
||||
<widget class="QPushButton" name="okay">
|
||||
<widget class="QPushButton" name="accept">
|
||||
<property name="text">
|
||||
<string>Continue</string>
|
||||
</property>
|
||||
|
@ -242,6 +242,16 @@
|
|||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item alignment="Qt::AlignLeft">
|
||||
<widget class="QPushButton" name="reject">
|
||||
<property name="text">
|
||||
<string>Exit</string>
|
||||
</property>
|
||||
<property name="autoDefault">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="button_layout_left">
|
||||
<property name="orientation">
|
||||
|
@ -276,9 +286,9 @@
|
|||
</spacer>
|
||||
</item>
|
||||
<item alignment="Qt::AlignLeft">
|
||||
<widget class="QCheckBox" name="do_not_show">
|
||||
<widget class="QCheckBox" name="show_at_startup">
|
||||
<property name="text">
|
||||
<string>Do not show again</string>
|
||||
<string>Show at startup</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
|
|
@ -27,10 +27,11 @@ namespace utils
|
|||
|
||||
#include "Utilities/sync.h"
|
||||
#include "Utilities/StrFmt.h"
|
||||
#include <sys/utsname.h>
|
||||
|
||||
#ifdef __linux__
|
||||
|
||||
#include <sys/utsname.h>
|
||||
|
||||
bool is_kernel_at_least(int required_major, int required_minor, int required_patch)
|
||||
{
|
||||
struct utsname buf {};
|
||||
|
|
Loading…
Add table
Reference in a new issue