mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-04-20 19:45:20 +00:00
Improved welcome dialog
This commit is contained in:
parent
24655fd975
commit
33c50109dc
4 changed files with 76 additions and 32 deletions
|
@ -161,7 +161,11 @@ bool gui_application::Init()
|
|||
{
|
||||
welcome_dialog* welcome = new welcome_dialog(m_gui_settings, false);
|
||||
|
||||
welcome->exec();
|
||||
if (welcome->exec() == QDialog::Rejected)
|
||||
{
|
||||
// if the agreement on RPCS3's usage conditions was not accecped by the user, ask the main window to softly terminate
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Check maxfiles
|
||||
|
|
|
@ -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 != nullptr)
|
||||
{
|
||||
m_gui_settings->SetValue(gui::mw_mwState, m_mw->saveState(), true);
|
||||
}
|
||||
|
||||
if (m_game_list_frame != nullptr)
|
||||
{
|
||||
// Save column settings
|
||||
m_game_list_frame->SaveSettings();
|
||||
}
|
||||
|
||||
if (m_debugger_frame != nullptr)
|
||||
{
|
||||
// Save splitter state
|
||||
m_debugger_frame->SaveSettings();
|
||||
}
|
||||
}
|
||||
|
||||
void main_window::RepaintThumbnailIcons()
|
||||
|
|
|
@ -19,17 +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->setEnabled(!is_manual_show);
|
||||
ui->i_have_read->setChecked(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->setEnabled(!is_manual_show);
|
||||
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>
|
||||
|
@ -51,11 +46,33 @@ 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->do_not_show->setVisible(!is_manual_show);
|
||||
ui->do_not_show->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);
|
||||
ui->accept->setEnabled(checked);
|
||||
ui->reject->setEnabled(!checked);
|
||||
});
|
||||
|
||||
connect(ui->do_not_show, &QCheckBox::clicked, this, [this](bool checked)
|
||||
|
@ -64,20 +81,10 @@ welcome_dialog::welcome_dialog(std::shared_ptr<gui_settings> gui_settings, bool
|
|||
});
|
||||
}
|
||||
|
||||
connect(ui->okay, &QPushButton::clicked, this, &QDialog::accept);
|
||||
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)
|
||||
|
||||
#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
|
||||
|
||||
layout()->setSizeConstraint(QLayout::SetFixedSize);
|
||||
|
||||
connect(this, &QDialog::accepted, this, [this]()
|
||||
connect(this, &QDialog::accepted, this, [this]() // "accept" signal's event handler
|
||||
{
|
||||
if (ui->create_desktop_shortcut->isChecked())
|
||||
{
|
||||
|
@ -94,6 +101,12 @@ welcome_dialog::welcome_dialog(std::shared_ptr<gui_settings> gui_settings, bool
|
|||
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 accecped by the user, always display the initial welcome dialog at next startup
|
||||
m_gui_settings->SetValue(gui::ib_show_welcome, QVariant(true));
|
||||
});
|
||||
}
|
||||
|
||||
welcome_dialog::~welcome_dialog()
|
||||
|
|
|
@ -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">
|
||||
|
|
Loading…
Add table
Reference in a new issue