mirror of
https://github.com/RPCS3/rpcs3.git
synced 2024-11-26 04:32:35 +01:00
stylesheets: make UI Colors optional
This commit is contained in:
parent
e6a07e80d7
commit
fff62df6a2
@ -49,7 +49,8 @@
|
||||
"gui": {
|
||||
"configs": "Only useful to developers.\nIf unsure, don't use this option.",
|
||||
"stylesheets": "Only useful to developers.\nIf unsure, don't use this option.",
|
||||
"show_welcome": "Shows the initial welcome screen upon starting RPCS3."
|
||||
"show_welcome": "Shows the initial welcome screen upon starting RPCS3.",
|
||||
"custom_colors": "Prioritize custom user interface colors over properties set in stylesheet."
|
||||
},
|
||||
"misc": {
|
||||
"exitOnStop": "Automatically close RPCS3 when closing a game, or when a game closes itself.",
|
||||
|
@ -299,6 +299,7 @@ void rpcs3_app::OnChangeStyleSheetRequest(const QString& sheetFilePath)
|
||||
setStyleSheet(file.readAll());
|
||||
file.close();
|
||||
}
|
||||
GUI::stylesheet = styleSheet();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -849,7 +849,16 @@ void game_list_frame::SetSearchText(const QString& text)
|
||||
|
||||
void game_list_frame::RepaintToolBarIcons()
|
||||
{
|
||||
QColor newColor = xgui_settings->GetValue(GUI::gl_toolIconColor).value<QColor>();
|
||||
QColor newColor;
|
||||
|
||||
if (xgui_settings->GetValue(GUI::m_enableUIColors).toBool())
|
||||
{
|
||||
newColor = GUI::get_Label_Color("gamelist_toolbar_icon_color");
|
||||
}
|
||||
else
|
||||
{
|
||||
newColor = xgui_settings->GetValue(GUI::gl_toolIconColor).value<QColor>();
|
||||
}
|
||||
|
||||
m_catActHDD.colored = gui_settings::colorizedIcon(QIcon(":/Icons/hdd_blue.png"), GUI::gl_tool_icon_color, newColor, true);
|
||||
m_catActDisc.colored = gui_settings::colorizedIcon(QIcon(":/Icons/disc_blue.png"), GUI::gl_tool_icon_color, newColor, true);
|
||||
|
@ -299,7 +299,7 @@ QString gui_settings::GetCurrentStylesheetPath()
|
||||
{
|
||||
QString stylesheet = GetValue(GUI::m_currentStylesheet).toString();
|
||||
|
||||
if (stylesheet == "default")
|
||||
if (stylesheet == GUI::Default)
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
@ -8,6 +8,7 @@
|
||||
#include <QSize>
|
||||
#include <QColor>
|
||||
#include <QBitmap>
|
||||
#include <QLabel>
|
||||
|
||||
struct GUI_SAVE
|
||||
{
|
||||
@ -35,6 +36,8 @@ typedef QList<q_size_pair> q_size_list;
|
||||
|
||||
namespace GUI
|
||||
{
|
||||
static QString stylesheet;
|
||||
|
||||
const QSize gl_icon_size_min = QSize(40, 22);
|
||||
const QSize gl_icon_size_small = QSize(80, 44);
|
||||
const QSize gl_icon_size_medium = QSize(160, 88);
|
||||
@ -42,12 +45,22 @@ namespace GUI
|
||||
|
||||
const int gl_max_slider_pos = 100;
|
||||
|
||||
inline int get_Index(const QSize& current) {
|
||||
inline int get_Index(const QSize& current)
|
||||
{
|
||||
int size_delta = gl_icon_size_max.width() - gl_icon_size_min.width();
|
||||
int current_delta = current.width() - gl_icon_size_min.width();
|
||||
return gl_max_slider_pos * current_delta / size_delta;
|
||||
};
|
||||
|
||||
inline QColor get_Label_Color(const QString& objectName, QPalette::ColorRole colorRole = QPalette::Foreground)
|
||||
{
|
||||
QLabel dummy_color;
|
||||
dummy_color.setObjectName(objectName);
|
||||
dummy_color.ensurePolished();
|
||||
return dummy_color.palette().color(colorRole);
|
||||
};
|
||||
|
||||
const QString Default = QObject::tr("default");
|
||||
const QString main_window = "main_window";
|
||||
const QString game_list = "GameList";
|
||||
const QString logger = "Logger";
|
||||
@ -117,9 +130,10 @@ namespace GUI
|
||||
const GUI_SAVE d_splitterState = GUI_SAVE( debugger, "splitterState", QByteArray());
|
||||
|
||||
const GUI_SAVE m_currentConfig = GUI_SAVE(meta, "currentConfig", QObject::tr("CurrentSettings"));
|
||||
const GUI_SAVE m_currentStylesheet = GUI_SAVE(meta, "currentStylesheet", QObject::tr("default"));
|
||||
const GUI_SAVE m_currentStylesheet = GUI_SAVE(meta, "currentStylesheet", Default);
|
||||
const GUI_SAVE m_saveNotes = GUI_SAVE(meta, "saveNotes", QVariantMap());
|
||||
const GUI_SAVE m_showDebugTab = GUI_SAVE(meta, "showDebugTab", false);
|
||||
const GUI_SAVE m_enableUIColors = GUI_SAVE(meta, "enableUIColors", false);
|
||||
|
||||
const GUI_SAVE gs_disableMouse = GUI_SAVE(gs_frame, "disableMouse", false);
|
||||
const GUI_SAVE gs_resize = GUI_SAVE(gs_frame, "resize", false);
|
||||
|
@ -70,8 +70,6 @@ void main_window::Init()
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
// Load Icons: This needs to happen before any actions or buttons are created
|
||||
RepaintToolBarIcons();
|
||||
appIcon = QIcon(":/rpcs3.ico");
|
||||
|
||||
// add toolbar widgets (crappy Qt designer is not able to)
|
||||
@ -100,6 +98,8 @@ void main_window::Init()
|
||||
|
||||
Q_EMIT RequestGlobalStylesheetChange(guiSettings->GetCurrentStylesheetPath());
|
||||
ConfigureGuiFromSettings(true);
|
||||
RepaintToolBarIcons();
|
||||
gameListFrame->RepaintToolBarIcons();
|
||||
|
||||
if (!utils::has_ssse3())
|
||||
{
|
||||
@ -694,7 +694,16 @@ void main_window::SaveWindowState()
|
||||
|
||||
void main_window::RepaintToolBarIcons()
|
||||
{
|
||||
QColor newColor = guiSettings->GetValue(GUI::mw_toolIconColor).value<QColor>();
|
||||
QColor newColor;
|
||||
|
||||
if (guiSettings->GetValue(GUI::m_enableUIColors).toBool())
|
||||
{
|
||||
newColor = GUI::get_Label_Color("toolbar_icon_color");
|
||||
}
|
||||
else
|
||||
{
|
||||
newColor = guiSettings->GetValue(GUI::mw_toolIconColor).value<QColor>();
|
||||
}
|
||||
|
||||
icon_play = gui_settings::colorizedIcon(QIcon(":/Icons/play.png"), GUI::mw_tool_icon_color, newColor);
|
||||
icon_pause = gui_settings::colorizedIcon(QIcon(":/Icons/pause.png"), GUI::mw_tool_icon_color, newColor);
|
||||
@ -1026,14 +1035,23 @@ void main_window::AddRecentAction(const q_string_pair& entry)
|
||||
|
||||
void main_window::RepaintToolbar()
|
||||
{
|
||||
QColor tbc = guiSettings->GetValue(GUI::mw_toolBarColor).value<QColor>();
|
||||
ui->toolBar->setStyleSheet(styleSheet().append(
|
||||
"QToolBar { background-color: rgba(%1, %2, %3, %4); }"
|
||||
"QToolBar::separator {background-color: rgba(%5, %6, %7, %8); width: 1px; margin-top: 2px; margin-bottom: 2px;}"
|
||||
"QSlider { background-color: rgba(%1, %2, %3, %4); }"
|
||||
"QLineEdit { background-color: rgba(%1, %2, %3, %4); }")
|
||||
.arg(tbc.red()).arg(tbc.green()).arg(tbc.blue()).arg(tbc.alpha())
|
||||
.arg(tbc.red() - 20).arg(tbc.green() - 20).arg(tbc.blue() - 20).arg(tbc.alpha() - 20));
|
||||
if (guiSettings->GetValue(GUI::m_enableUIColors).toBool())
|
||||
{
|
||||
ui->toolBar->setStyleSheet(GUI::stylesheet);
|
||||
}
|
||||
else
|
||||
{
|
||||
QColor tbc = guiSettings->GetValue(GUI::mw_toolBarColor).value<QColor>();
|
||||
|
||||
ui->toolBar->setStyleSheet(GUI::stylesheet + QString(
|
||||
"QToolBar { background-color: rgba(%1, %2, %3, %4); }"
|
||||
"QToolBar::separator {background-color: rgba(%5, %6, %7, %8); width: 1px; margin-top: 2px; margin-bottom: 2px;}"
|
||||
"QSlider { background-color: rgba(%1, %2, %3, %4); }"
|
||||
"QLineEdit { background-color: rgba(%1, %2, %3, %4); }")
|
||||
.arg(tbc.red()).arg(tbc.green()).arg(tbc.blue()).arg(tbc.alpha())
|
||||
.arg(tbc.red() - 20).arg(tbc.green() - 20).arg(tbc.blue() - 20).arg(tbc.alpha() - 20)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
void main_window::CreateActions()
|
||||
@ -1116,7 +1134,14 @@ void main_window::CreateConnects()
|
||||
connect(&dlg, &settings_dialog::ToolBarRepaintRequest, this, &main_window::RepaintToolBarIcons);
|
||||
connect(&dlg, &settings_dialog::ToolBarRepaintRequest, gameListFrame, &game_list_frame::RepaintToolBarIcons);
|
||||
connect(&dlg, &settings_dialog::accepted, [this](){
|
||||
gameListFrame->RepaintIcons(guiSettings->GetValue(GUI::gl_iconColor).value<QColor>());
|
||||
if (guiSettings->GetValue(GUI::m_enableUIColors).toBool())
|
||||
{
|
||||
gameListFrame->RepaintIcons(GUI::get_Label_Color("gamelist_icon_background_color"));
|
||||
}
|
||||
else
|
||||
{
|
||||
gameListFrame->RepaintIcons(guiSettings->GetValue(GUI::gl_iconColor).value<QColor>());
|
||||
}
|
||||
RepaintToolbar();
|
||||
});
|
||||
dlg.exec();
|
||||
|
@ -669,6 +669,8 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> xSettings, const
|
||||
|
||||
ui->cb_show_welcome->setToolTip(json_emu_gui["show_welcome"].toString());
|
||||
|
||||
ui->cb_custom_colors->setToolTip(json_emu_gui["custom_colors"].toString());
|
||||
|
||||
xemu_settings->EnhanceCheckBox(ui->exitOnStop, emu_settings::ExitRPCS3OnFinish);
|
||||
ui->exitOnStop->setToolTip(json_emu_misc["exitOnStop"].toString());
|
||||
|
||||
@ -691,6 +693,13 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> xSettings, const
|
||||
{
|
||||
ui->cb_show_welcome->setChecked(xgui_settings->GetValue(GUI::ib_show_welcome).toBool());
|
||||
|
||||
bool enableUIColors = xgui_settings->GetValue(GUI::m_enableUIColors).toBool();
|
||||
ui->cb_custom_colors->setChecked(enableUIColors);
|
||||
ui->pb_gl_icon_color->setEnabled(enableUIColors);
|
||||
ui->pb_gl_tool_icon_color->setEnabled(enableUIColors);
|
||||
ui->pb_tool_bar_color->setEnabled(enableUIColors);
|
||||
ui->pb_tool_icon_color->setEnabled(enableUIColors);
|
||||
|
||||
connect(ui->okButton, &QAbstractButton::clicked, [this]() {
|
||||
// Only attempt to load a config if changes occurred.
|
||||
if (m_startingConfig != xgui_settings->GetValue(GUI::m_currentConfig).toString())
|
||||
@ -707,8 +716,8 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> xSettings, const
|
||||
QMessageBox::Yes | QMessageBox::No, QMessageBox::No) == QMessageBox::Yes)
|
||||
{
|
||||
xgui_settings->Reset(true);
|
||||
xgui_settings->ChangeToConfig(tr("default"));
|
||||
Q_EMIT GuiStylesheetRequest(tr("default"));
|
||||
xgui_settings->ChangeToConfig(GUI::Default);
|
||||
Q_EMIT GuiStylesheetRequest(GUI::Default);
|
||||
Q_EMIT GuiSettingsSyncRequest();
|
||||
AddConfigs();
|
||||
AddStylesheets();
|
||||
@ -719,6 +728,13 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> xSettings, const
|
||||
connect(ui->pb_apply_stylesheet, &QAbstractButton::clicked, this, &settings_dialog::OnApplyStylesheet);
|
||||
connect(ui->pb_open_folder, &QAbstractButton::clicked, [=]() {QDesktopServices::openUrl(xgui_settings->GetSettingsDir()); });
|
||||
connect(ui->cb_show_welcome, &QCheckBox::clicked, [=](bool val) {xgui_settings->SetValue(GUI::ib_show_welcome, val); });
|
||||
connect(ui->cb_custom_colors, &QCheckBox::clicked, [=](bool val) {
|
||||
xgui_settings->SetValue(GUI::m_enableUIColors, val);
|
||||
ui->pb_gl_icon_color->setEnabled(val);
|
||||
ui->pb_gl_tool_icon_color->setEnabled(val);
|
||||
ui->pb_tool_bar_color->setEnabled(val);
|
||||
ui->pb_tool_icon_color->setEnabled(val);
|
||||
});
|
||||
auto colorDialog = [&](const GUI_SAVE& color, const QString& title, QPushButton *button){
|
||||
QColor oldColor = xgui_settings->GetValue(color).value<QColor>();
|
||||
QColorDialog dlg(oldColor, this);
|
||||
@ -858,11 +874,11 @@ void settings_dialog::AddConfigs()
|
||||
{
|
||||
ui->combo_configs->clear();
|
||||
|
||||
ui->combo_configs->addItem(tr("default"));
|
||||
ui->combo_configs->addItem(GUI::Default);
|
||||
|
||||
for (QString entry : xgui_settings->GetConfigEntries())
|
||||
{
|
||||
if (entry != tr("default"))
|
||||
if (entry != GUI::Default)
|
||||
{
|
||||
ui->combo_configs->addItem(entry);
|
||||
}
|
||||
@ -886,20 +902,19 @@ void settings_dialog::AddStylesheets()
|
||||
{
|
||||
ui->combo_stylesheets->clear();
|
||||
|
||||
ui->combo_stylesheets->addItem(tr("default"));
|
||||
ui->combo_stylesheets->addItem(GUI::Default);
|
||||
|
||||
for (QString entry : xgui_settings->GetStylesheetEntries())
|
||||
{
|
||||
if (entry != tr("default"))
|
||||
if (entry != GUI::Default)
|
||||
{
|
||||
ui->combo_stylesheets->addItem(entry);
|
||||
}
|
||||
}
|
||||
|
||||
QString currentSelection = xgui_settings->GetValue(GUI::m_currentStylesheet).toString();
|
||||
m_startingStylesheet = currentSelection;
|
||||
m_startingStylesheet = xgui_settings->GetValue(GUI::m_currentStylesheet).toString();
|
||||
|
||||
int index = ui->combo_stylesheets->findText(currentSelection);
|
||||
int index = ui->combo_stylesheets->findText(m_startingStylesheet);
|
||||
if (index != -1)
|
||||
{
|
||||
ui->combo_stylesheets->setCurrentIndex(index);
|
||||
|
@ -1200,9 +1200,16 @@
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>UI Colors (difficult in stylesheets)</string>
|
||||
<string>UI Colors</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_13">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cb_custom_colors">
|
||||
<property name="text">
|
||||
<string>Use custom UI Colors</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_tool_bar_color">
|
||||
<property name="text">
|
||||
|
Loading…
Reference in New Issue
Block a user