Qt: support thumbnail icons in stylesheets

This commit is contained in:
Megamouse 2017-09-15 21:03:46 +02:00 committed by Ivan
parent 77a75305c7
commit a358384900
4 changed files with 46 additions and 18 deletions

View File

@ -33,7 +33,6 @@
#include "pad_thread.h" #include "pad_thread.h"
#include "Emu/RSX/Null/NullGSRender.h" #include "Emu/RSX/Null/NullGSRender.h"
#include "Emu/RSX/GL/GLGSRender.h" #include "Emu/RSX/GL/GLGSRender.h"
#include "Emu/Audio/Null/NullAudioThread.h" #include "Emu/Audio/Null/NullAudioThread.h"
@ -292,6 +291,12 @@ void rpcs3_app::OnChangeStyleSheetRequest(const QString& sheetFilePath)
"QLabel#toolbar_icon_color { color: rgba(%1, %2, %3, %4); }") "QLabel#toolbar_icon_color { color: rgba(%1, %2, %3, %4); }")
.arg(tic.red()).arg(tic.green()).arg(tic.blue()).arg(tic.alpha()); .arg(tic.red()).arg(tic.green()).arg(tic.blue()).arg(tic.alpha());
// thumbnail icon color stylesheet
QColor thic = GUI::mw_thumb_icon_color;
QString style_thumbnail_icons = QString(
"QLabel#thumbnail_icon_color { color: rgba(%1, %2, %3, %4); }")
.arg(thic.red()).arg(thic.green()).arg(thic.blue()).arg(thic.alpha());
// gamelist toolbar stylesheet // gamelist toolbar stylesheet
QColor gltic = GUI::gl_tool_icon_color; QColor gltic = GUI::gl_tool_icon_color;
QString style_gamelist_toolbar = QString( QString style_gamelist_toolbar = QString(
@ -311,7 +316,7 @@ void rpcs3_app::OnChangeStyleSheetRequest(const QString& sheetFilePath)
"QLabel#l_controller { color: #434343; }" "QLabel#l_controller { color: #434343; }"
"QLabel#gamegrid_font { font-weight: 600; font-size: 8pt; font-family: Lucida Grande; color: rgba(51, 51, 51, 255); }"); "QLabel#gamegrid_font { font-weight: 600; font-size: 8pt; font-family: Lucida Grande; color: rgba(51, 51, 51, 255); }");
setStyleSheet(style_toolbar + style_toolbar_icons + style_gamelist_toolbar + style_gamelist_icons + style_rest); setStyleSheet(style_toolbar + style_toolbar_icons + style_thumbnail_icons + style_gamelist_toolbar + style_gamelist_icons + style_rest);
} }
else if (file.open(QIODevice::ReadOnly | QIODevice::Text)) else if (file.open(QIODevice::ReadOnly | QIODevice::Text))
{ {

View File

@ -84,10 +84,11 @@ namespace GUI
const QString fs = "FileSystem"; const QString fs = "FileSystem";
const QString gs_frame = "GSFrame"; const QString gs_frame = "GSFrame";
const QColor mw_tool_bar_color = QColor(227, 227, 227, 255); const QColor mw_tool_bar_color = QColor(227, 227, 227, 255);
const QColor mw_tool_icon_color = QColor(64, 64, 64, 255); const QColor mw_tool_icon_color = QColor(64, 64, 64, 255);
const QColor gl_icon_color = QColor(209, 209, 209, 255); const QColor mw_thumb_icon_color = QColor(0, 100, 231, 255);
const QColor gl_tool_icon_color = QColor(0, 100, 231, 255); const QColor gl_icon_color = QColor(209, 209, 209, 255);
const QColor gl_tool_icon_color = QColor(0, 100, 231, 255);
const GUI_SAVE rg_freeze = GUI_SAVE(main_window, "recentGamesFrozen", false); const GUI_SAVE rg_freeze = GUI_SAVE(main_window, "recentGamesFrozen", false);
const GUI_SAVE rg_entries = GUI_SAVE(main_window, "recentGamesNames", QVariant::fromValue(q_pair_list())); const GUI_SAVE rg_entries = GUI_SAVE(main_window, "recentGamesNames", QVariant::fromValue(q_pair_list()));

View File

@ -150,11 +150,6 @@ void main_window::Init()
void main_window::CreateThumbnailToolbar() void main_window::CreateThumbnailToolbar()
{ {
#ifdef _WIN32 #ifdef _WIN32
m_icon_thumb_play = QIcon(":/Icons/play_blue.png");
m_icon_thumb_pause = QIcon(":/Icons/pause_blue.png");
m_icon_thumb_stop = QIcon(":/Icons/stop_blue.png");
m_icon_thumb_restart = QIcon(":/Icons/restart_blue.png");
m_thumb_bar = new QWinThumbnailToolBar(this); m_thumb_bar = new QWinThumbnailToolBar(this);
m_thumb_bar->setWindow(windowHandle()); m_thumb_bar->setWindow(windowHandle());
@ -177,6 +172,8 @@ void main_window::CreateThumbnailToolbar()
m_thumb_bar->addButton(m_thumb_stop); m_thumb_bar->addButton(m_thumb_stop);
m_thumb_bar->addButton(m_thumb_restart); m_thumb_bar->addButton(m_thumb_restart);
RepaintThumbnailIcons();
connect(m_thumb_stop, &QWinThumbnailToolButton::clicked, [=]() { Emu.Stop(); }); connect(m_thumb_stop, &QWinThumbnailToolButton::clicked, [=]() { Emu.Stop(); });
connect(m_thumb_restart, &QWinThumbnailToolButton::clicked, [=]() { Emu.Stop(); Emu.Load(); }); connect(m_thumb_restart, &QWinThumbnailToolButton::clicked, [=]() { Emu.Stop(); Emu.Load(); });
connect(m_thumb_playPause, &QWinThumbnailToolButton::clicked, Pause); connect(m_thumb_playPause, &QWinThumbnailToolButton::clicked, Pause);
@ -706,6 +703,29 @@ void main_window::SaveWindowState()
m_debuggerFrame->SaveSettings(); m_debuggerFrame->SaveSettings();
} }
void main_window::RepaintThumbnailIcons()
{
QColor newColor = GUI::get_Label_Color("thumbnail_icon_color");
auto icon = [&newColor](const QString& path)
{
return gui_settings::colorizedIcon(QPixmap::fromImage(gui_settings::GetOpaqueImageArea(path)), GUI::mw_tool_icon_color, newColor);
};
#ifdef _WIN32
if (!m_thumb_bar) return;
m_icon_thumb_play = icon(":/Icons/play.png");
m_icon_thumb_pause = icon(":/Icons/pause.png");
m_icon_thumb_stop = icon(":/Icons/stop.png");
m_icon_thumb_restart = icon(":/Icons/restart.png");
m_thumb_playPause->setIcon(Emu.IsRunning() ? m_icon_thumb_pause : m_icon_thumb_play);
m_thumb_stop->setIcon(m_icon_thumb_stop);
m_thumb_restart->setIcon(m_icon_thumb_restart);
#endif
}
void main_window::RepaintToolBarIcons() void main_window::RepaintToolBarIcons()
{ {
QColor newColor; QColor newColor;
@ -740,7 +760,7 @@ void main_window::RepaintToolBarIcons()
ui->toolbar_snap ->setIcon(icon(":/Icons/screenshot.png")); ui->toolbar_snap ->setIcon(icon(":/Icons/screenshot.png"));
ui->toolbar_sort ->setIcon(icon(":/Icons/sort.png")); ui->toolbar_sort ->setIcon(icon(":/Icons/sort.png"));
ui->toolbar_stop ->setIcon(icon(":/Icons/stop.png")); ui->toolbar_stop ->setIcon(icon(":/Icons/stop.png"));
if (Emu.IsRunning()) if (Emu.IsRunning())
{ {
ui->toolbar_start->setIcon(m_icon_pause); ui->toolbar_start->setIcon(m_icon_pause);
@ -753,7 +773,7 @@ void main_window::RepaintToolBarIcons()
{ {
ui->toolbar_start->setIcon(m_icon_play); ui->toolbar_start->setIcon(m_icon_play);
} }
if (isFullScreen()) if (isFullScreen())
{ {
ui->toolbar_fullscreen->setIcon(m_icon_fullscreen_on); ui->toolbar_fullscreen->setIcon(m_icon_fullscreen_on);
@ -1058,6 +1078,7 @@ void main_window::RepaintGui()
m_gameListFrame->RepaintToolBarIcons(); m_gameListFrame->RepaintToolBarIcons();
RepaintToolbar(); RepaintToolbar();
RepaintToolBarIcons(); RepaintToolBarIcons();
RepaintThumbnailIcons();
} }
void main_window::RepaintToolbar() void main_window::RepaintToolbar()

View File

@ -47,10 +47,10 @@ class main_window : public QMainWindow
QIcon m_icon_thumb_pause; QIcon m_icon_thumb_pause;
QIcon m_icon_thumb_stop; QIcon m_icon_thumb_stop;
QIcon m_icon_thumb_restart; QIcon m_icon_thumb_restart;
QWinThumbnailToolBar *m_thumb_bar; QWinThumbnailToolBar *m_thumb_bar = nullptr;
QWinThumbnailToolButton *m_thumb_playPause; QWinThumbnailToolButton *m_thumb_playPause = nullptr;
QWinThumbnailToolButton *m_thumb_stop; QWinThumbnailToolButton *m_thumb_stop = nullptr;
QWinThumbnailToolButton *m_thumb_restart; QWinThumbnailToolButton *m_thumb_restart = nullptr;
QStringList m_vulkan_adapters; QStringList m_vulkan_adapters;
#endif #endif
#ifdef _MSC_VER #ifdef _MSC_VER
@ -82,7 +82,6 @@ private Q_SLOTS:
void DecryptSPRXLibraries(); void DecryptSPRXLibraries();
void SaveWindowState(); void SaveWindowState();
void RepaintToolBarIcons();
protected: protected:
void closeEvent(QCloseEvent *event) override; void closeEvent(QCloseEvent *event) override;
@ -91,6 +90,8 @@ protected:
void SetAppIconFromPath(const std::string path); void SetAppIconFromPath(const std::string path);
private: private:
void RepaintToolbar(); void RepaintToolbar();
void RepaintToolBarIcons();
void RepaintThumbnailIcons();
void CreateActions(); void CreateActions();
void CreateConnects(); void CreateConnects();
void CreateDockWindows(); void CreateDockWindows();