Skip to content

Commit a6ed435

Browse files
Implemented workaround for blurry icons in latest Qt versions
1 parent 1fccb94 commit a6ed435

File tree

3 files changed

+22
-11
lines changed

3 files changed

+22
-11
lines changed

src/DockAreaTitleBar.cpp

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,13 @@ void DockAreaTitleBarPrivate::createButtons()
116116
TabsMenuButton->setObjectName("tabsMenuButton");
117117
TabsMenuButton->setAutoRaise(true);
118118
TabsMenuButton->setPopupMode(QToolButton::InstantPopup);
119-
TabsMenuButton->setIcon(_this->style()->standardIcon(QStyle::SP_TitleBarUnshadeButton));
119+
120+
QIcon MenuIcon;
121+
QPixmap normalPixmap = _this->style()->standardPixmap(
122+
QStyle::SP_TitleBarUnshadeButton, 0, TabsMenuButton);
123+
MenuIcon.addPixmap(internal::createTransparentPixmap(normalPixmap, 0.25), QIcon::Disabled);
124+
MenuIcon.addPixmap(normalPixmap, QIcon::Normal);
125+
TabsMenuButton->setIcon(MenuIcon);
120126

121127
QMenu* TabsMenu = new QMenu(TabsMenuButton);
122128
#ifndef QT_NO_TOOLTIP
@@ -139,7 +145,11 @@ void DockAreaTitleBarPrivate::createButtons()
139145
#ifndef QT_NO_TOOLTIP
140146
UndockButton->setToolTip(QObject::tr("Detach Group"));
141147
#endif
142-
UndockButton->setIcon(_this->style()->standardIcon(QStyle::SP_TitleBarNormalButton));
148+
QIcon UndockIcon;
149+
normalPixmap = _this->style()->standardPixmap(QStyle::SP_TitleBarNormalButton, 0, UndockButton);
150+
UndockIcon.addPixmap(internal::createTransparentPixmap(normalPixmap, 0.25), QIcon::Disabled);
151+
UndockIcon.addPixmap(normalPixmap, QIcon::Normal);
152+
UndockButton->setIcon(UndockIcon);
143153
UndockButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
144154
TopLayout->addWidget(UndockButton, 0);
145155
_this->connect(UndockButton, SIGNAL(clicked()), SLOT(onUndockButtonClicked()));
@@ -148,11 +158,11 @@ void DockAreaTitleBarPrivate::createButtons()
148158
CloseButton->setObjectName("closeButton");
149159
CloseButton->setAutoRaise(true);
150160

151-
// The standard icons do not look good on high DPI screens
152-
QIcon CloseIcon = _this->style()->standardIcon(QStyle::SP_TitleBarCloseButton);
153-
QPixmap normalPixmap = _this->style()->standardPixmap(QStyle::SP_TitleBarCloseButton, 0, CloseButton);
154-
QPixmap disabledPixmap = internal::createTransparentPixmap(normalPixmap, 0.25);
155-
CloseIcon.addPixmap(disabledPixmap, QIcon::Disabled);
161+
// The standard icons does not look good on high DPI screens
162+
QIcon CloseIcon;// = _this->style()->standardIcon(QStyle::SP_TitleBarCloseButton);
163+
normalPixmap = _this->style()->standardPixmap(QStyle::SP_TitleBarCloseButton, 0, CloseButton);
164+
CloseIcon.addPixmap(internal::createTransparentPixmap(normalPixmap, 0.25), QIcon::Disabled);
165+
CloseIcon.addPixmap(normalPixmap, QIcon::Normal);
156166

157167
CloseButton->setIcon(CloseIcon);
158168
#ifndef QT_NO_TOOLTIP
@@ -166,6 +176,7 @@ void DockAreaTitleBarPrivate::createButtons()
166176
}
167177
#endif
168178
CloseButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
179+
CloseButton->setIconSize(QSize(16, 16));
169180
TopLayout->addWidget(CloseButton, 0);
170181
_this->connect(CloseButton, SIGNAL(clicked()), SLOT(onCloseButtonClicked()));
171182
}

src/DockWidgetTab.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,10 +146,10 @@ void DockWidgetTabPrivate::createLayout()
146146
CloseButton = new tCloseButton();
147147
CloseButton->setObjectName("tabCloseButton");
148148
// The standard icons do does not look good on high DPI screens
149-
QIcon CloseIcon = _this->style()->standardIcon(QStyle::SP_TitleBarCloseButton);
149+
QIcon CloseIcon;
150150
QPixmap normalPixmap = _this->style()->standardPixmap(QStyle::SP_TitleBarCloseButton, 0, CloseButton);
151-
QPixmap disabledPixmap = internal::createTransparentPixmap(normalPixmap, 0.25);
152-
CloseIcon.addPixmap(disabledPixmap, QIcon::Disabled);
151+
CloseIcon.addPixmap(normalPixmap, QIcon::Normal);
152+
CloseIcon.addPixmap(internal::createTransparentPixmap(normalPixmap, 0.25), QIcon::Disabled);
153153
CloseButton->setIcon(CloseIcon);
154154
CloseButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
155155
CloseButton->setVisible(false);

src/stylesheets/default.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ ads--CDockWidget
6363
#closeButton,
6464
#undockButton
6565
{
66-
padding: 0 -2px;
66+
padding: 0px -2px;
6767
}
6868

6969

0 commit comments

Comments
 (0)