stylesheets: add custom color to gamepad

This commit is contained in:
Megamouse 2017-08-22 09:20:18 +02:00 committed by Ivan
parent 37bc2b3bb9
commit c7c0139788
6 changed files with 29 additions and 12 deletions

View file

@ -319,6 +319,7 @@ void rpcs3_app::OnChangeStyleSheetRequest(const QString& sheetFilePath)
// other objects' stylesheet
QString style_rest = QString(
"QWidget#header_section { background-color: #ffffff; }"
"QLabel#l_controller { color: #434343; }"
"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);

View file

@ -76,9 +76,23 @@ q_pair_list gui_settings::Var2List(const QVariant& var)
return list;
}
QIcon gui_settings::colorizedIcon(const QIcon& icon, const QColor& oldColor, const QColor& newColor, bool useSpecialMasks)
QIcon gui_settings::colorizedIcon(const QIcon& icon, const QColor& oldColor, const QColor& newColor, bool useSpecialMasks, bool colorizeAll)
{
QPixmap pixmap = icon.pixmap(icon.availableSizes().at(0));
return QIcon(colorizedPixmap(icon.pixmap(icon.availableSizes().at(0)), oldColor, newColor, useSpecialMasks, colorizeAll));
}
QPixmap gui_settings::colorizedPixmap(const QPixmap& old_pixmap, const QColor& oldColor, const QColor& newColor, bool useSpecialMasks, bool colorizeAll)
{
QPixmap pixmap = old_pixmap;
if (colorizeAll)
{
QBitmap mask = pixmap.createMaskFromColor(Qt::transparent, Qt::MaskInColor);
pixmap.fill(newColor);
pixmap.setMask(mask);
return pixmap;
}
QBitmap mask = pixmap.createMaskFromColor(oldColor, Qt::MaskOutColor);
pixmap.fill(newColor);
pixmap.setMask(mask);
@ -96,19 +110,19 @@ QIcon gui_settings::colorizedIcon(const QIcon& icon, const QColor& oldColor, con
};
QColor colorS1(Qt::white);
QPixmap pixmapS1 = icon.pixmap(icon.availableSizes().at(0));
QPixmap pixmapS1 = old_pixmap;
QBitmap maskS1 = pixmapS1.createMaskFromColor(colorS1, Qt::MaskOutColor);
pixmapS1.fill(colorS1);
pixmapS1.setMask(maskS1);
QColor colorS2(0, 173, 246, 255);
QPixmap pixmapS2 = icon.pixmap(icon.availableSizes().at(0));
QPixmap pixmapS2 = old_pixmap;
QBitmap maskS2 = pixmapS2.createMaskFromColor(colorS2, Qt::MaskOutColor);
pixmapS2.fill(saturatedColor(newColor, 0.6f));
pixmapS2.setMask(maskS2);
QColor colorS3(0, 132, 244, 255);
QPixmap pixmapS3 = icon.pixmap(icon.availableSizes().at(0));
QPixmap pixmapS3 = old_pixmap;
QBitmap maskS3 = pixmapS3.createMaskFromColor(colorS3, Qt::MaskOutColor);
pixmapS3.fill(saturatedColor(newColor, 0.3f));
pixmapS3.setMask(maskS3);
@ -119,8 +133,7 @@ QIcon gui_settings::colorizedIcon(const QIcon& icon, const QColor& oldColor, con
painter.drawPixmap(QPoint(0, 0), pixmapS3);
painter.end();
}
return QIcon(pixmap);
return pixmap;
}
void gui_settings::SetValue(const GUI_SAVE& entry, const QVariant& value)

View file

@ -180,7 +180,8 @@ public:
@param newColor the desired color for the new icon
@param useSpecialMasks only used for icons with white parts and disc game icon
*/
static QIcon colorizedIcon(const QIcon& icon, const QColor& oldColor, const QColor& newColor, bool useSpecialMasks = false);
static QIcon colorizedIcon(const QIcon& icon, const QColor& oldColor, const QColor& newColor, bool useSpecialMasks = false, bool colorizeAll = false);
static QPixmap colorizedPixmap(const QPixmap& old_pixmap, const QColor& oldColor, const QColor& newColor, bool useSpecialMasks = false, bool colorizeAll = false);
public Q_SLOTS:
void Reset(bool removeMeta = false);

View file

@ -1153,7 +1153,7 @@ void main_window::CreateConnects()
connect(ui->confSystemAct, &QAction::triggered, [=]() { openSettings(4); });
connect(ui->confPadAct, &QAction::triggered, this, [=](){
pad_settings_dialog dlg(this);
pad_settings_dialog dlg(guiSettings, this);
dlg.exec();
});
connect(ui->confAutopauseManagerAct, &QAction::triggered, [=](){
@ -1305,7 +1305,7 @@ void main_window::CreateConnects()
ui->toolbar_fullscreen->setIcon(icon_fullscreen_off);
}
});
connect(ui->toolbar_controls, &QAction::triggered, [=]() { pad_settings_dialog dlg(this); dlg.exec(); });
connect(ui->toolbar_controls, &QAction::triggered, [=]() { pad_settings_dialog dlg(guiSettings, this); dlg.exec(); });
connect(ui->toolbar_config, &QAction::triggered, [=]() { openSettings(0); });
connect(ui->toolbar_list, &QAction::triggered, [=]() { ui->setlistModeListAct->trigger(); });
connect(ui->toolbar_grid, &QAction::triggered, [=]() { ui->setlistModeGridAct->trigger(); });

View file

@ -18,7 +18,7 @@ static const int PadButtonWidth = 60;
extern keyboard_pad_config g_kbpad_config;
pad_settings_dialog::pad_settings_dialog(QWidget *parent) : QDialog(parent), ui(new Ui::pad_settings_dialog)
pad_settings_dialog::pad_settings_dialog(std::shared_ptr<gui_settings> gui_settings, QWidget *parent) : QDialog(parent), ui(new Ui::pad_settings_dialog)
{
ui->setupUi(this);
@ -67,6 +67,7 @@ pad_settings_dialog::pad_settings_dialog(QWidget *parent) : QDialog(parent), ui(
g_kbpad_config.load();
UpdateLabel();
ui->l_controller->setPixmap(gui_settings->colorizedPixmap(*ui->l_controller->pixmap(), QColor(), GUI::get_Label_Color("l_controller"), false, true));
ui->l_controller->setMaximumSize(ui->gb_description->sizeHint().width(), ui->l_controller->maximumHeight() * ui->gb_description->sizeHint().width() / ui->l_controller->maximumWidth());
layout()->setSizeConstraint(QLayout::SetFixedSize);
}

View file

@ -9,6 +9,7 @@
#include "Emu/Io/PadHandler.h"
#include "stdafx.h"
#include "Emu/System.h"
#include "gui_settings.h"
enum button_ids
{
@ -69,7 +70,7 @@ private:
public:
// TODO get Init to work
virtual void Init(const u32 max_connect) override;
explicit pad_settings_dialog(QWidget *parent = 0);
explicit pad_settings_dialog(std::shared_ptr<gui_settings> gui_settings, QWidget *parent = 0);
~pad_settings_dialog();
void keyPressEvent(QKeyEvent *keyEvent) override;
void UpdateLabel();