fix hidden icons

This commit is contained in:
shun-iwasawa 2021-04-03 22:58:54 +09:00 committed by manongjohn
parent 818f80a99f
commit b077dd37b3
3 changed files with 8 additions and 5 deletions

View file

@ -116,7 +116,8 @@ QPixmap DVAPI recolorPixmap(
QPixmap pixmap, QColor color = Preferences::instance()->getIconTheme()
? Qt::black
: Qt::white);
QIcon DVAPI createQIcon(const char *iconSVGName, bool useFullOpacity = false);
QIcon DVAPI createQIcon(const char *iconSVGName, bool useFullOpacity = false,
bool isForMenuItem = false);
QIcon DVAPI createQIconPNG(const char *iconPNGName);
QIcon DVAPI createQIconOnOffPNG(const char *iconPNGName, bool withOver = true);
QIcon DVAPI createTemporaryIconFromName(const char *commandName);

View file

@ -1434,7 +1434,7 @@ QAction *MainWindow::createAction(const char *id, const char *name,
#endif
// do nothing for other platforms
} else
action->setIcon(createQIcon(iconSVGName));
action->setIcon(createQIcon(iconSVGName, false, true));
action->setIconVisibleInMenu(false);
addAction(action);
#ifdef MACOSX
@ -2984,7 +2984,7 @@ void MainWindow::defineActions() {
menuAct =
createMiscAction(MI_RefreshTree, QT_TR_NOOP("Refresh Folder Tree"), "");
menuAct->setIconText(tr("Refresh"));
menuAct->setIcon(createQIcon("refresh"));
menuAct->setIcon(createQIcon("refresh", false, true));
createMiscAction("A_FxSchematicToggle",
QT_TR_NOOP("Toggle FX/Stage schematic"), "");
// createAction(MI_SavePreview, QT_TR_NOOP("&Save Preview"), "");

View file

@ -267,7 +267,8 @@ QPixmap recolorPixmap(QPixmap pixmap, QColor color) {
//-----------------------------------------------------------------------------
QIcon createQIcon(const char *iconSVGName, bool useFullOpacity) {
QIcon createQIcon(const char *iconSVGName, bool useFullOpacity,
bool isForMenuItem) {
static int devPixRatio = getDevPixRatio();
QIcon themeIcon = QIcon::fromTheme(iconSVGName);
@ -321,7 +322,8 @@ QIcon createQIcon(const char *iconSVGName, bool useFullOpacity) {
#ifdef _WIN32
bool showIconInMenu = Preferences::instance()->getBoolValue(showIconsInMenu);
// set transparent icon
if (themeIconPixmap.size() == QSize(16 * devPixRatio, 16 * devPixRatio) &&
if (isForMenuItem &&
themeIconPixmap.size() == QSize(16 * devPixRatio, 16 * devPixRatio) &&
!showIconInMenu) {
static QPixmap emptyPm(16 * devPixRatio, 16 * devPixRatio);
emptyPm.fill(Qt::transparent);