diff --git a/src/libs/utils/detailsbutton.cpp b/src/libs/utils/detailsbutton.cpp index 61db8241a66..8c20ea62f68 100644 --- a/src/libs/utils/detailsbutton.cpp +++ b/src/libs/utils/detailsbutton.cpp @@ -83,18 +83,31 @@ void DetailsButton::paintEvent(QPaintEvent *e) Q_UNUSED(e) QPainter p(this); - if (isChecked() || (!HostOsInfo::isMacHost() && underMouse())) { + if (isEnabled() && (isChecked() || (!HostOsInfo::isMacHost() && underMouse()))) { p.save(); p.setOpacity(0.125); p.fillRect(rect(), palette().color(QPalette::Text)); p.restore(); } - if (!creatorTheme()->flag(Theme::FlatProjectsMode)) - qDrawPlainRect(&p, rect(), palette().color(QPalette::Mid)); + if (!creatorTheme()->flag(Theme::FlatProjectsMode)) { + const QColor outlineColor = palette().color(HostOsInfo::isMacHost() ? QPalette::Mid + : QPalette::Midlight); + qDrawPlainRect(&p, rect(), outlineColor); + } - const QRect textRect(spacing, 0, width(), height()); + const QRect textRect(spacing + 3, 0, width(), height()); p.drawText(textRect, Qt::AlignLeft | Qt::AlignVCenter, text()); - const QRect iconRect(width() - spacing - 16, 0, 16, height()); - icon().paint(&p, iconRect); + if (creatorTheme()->flag(Theme::FlatProjectsMode) || HostOsInfo::isMacHost()) { + const QRect iconRect(width() - spacing - 15, 0, 16, height()); + icon().paint(&p, iconRect); + } else { + int arrowsize = 15; + QStyleOption arrowOpt; + arrowOpt.initFrom(this); + arrowOpt.rect = QRect(size().width() - arrowsize - spacing, height() / 2 - arrowsize / 2, + arrowsize, arrowsize); + style()->drawPrimitive(isChecked() ? QStyle::PE_IndicatorArrowUp + : QStyle::PE_IndicatorArrowDown, &arrowOpt, &p, this); + } } diff --git a/src/libs/utils/detailswidget.cpp b/src/libs/utils/detailswidget.cpp index 05450c03dba..e1ad8c19489 100644 --- a/src/libs/utils/detailswidget.cpp +++ b/src/libs/utils/detailswidget.cpp @@ -220,14 +220,18 @@ void DetailsWidget::paintEvent(QPaintEvent *paintEvent) { QWidget::paintEvent(paintEvent); - const QColor bgColor = creatorTheme()->flag(Theme::FlatProjectsMode) ? - creatorTheme()->color(Theme::DetailsWidgetBackgroundColor) - : palette().color(QPalette::Window); - QPainter p(this); - p.fillRect(rect(), bgColor); - if (!creatorTheme()->flag(Theme::FlatProjectsMode)) - qDrawPlainRect(&p, rect(), palette().color(QPalette::Mid)); + if (creatorTheme()->flag(Theme::FlatProjectsMode) || HostOsInfo::isMacHost()) { + const QColor bgColor = creatorTheme()->flag(Theme::FlatProjectsMode) ? + creatorTheme()->color(Theme::DetailsWidgetBackgroundColor) + : palette().color(QPalette::Window); + p.fillRect(rect(), bgColor); + } + if (!creatorTheme()->flag(Theme::FlatProjectsMode)) { + const QColor outlineColor = palette().color(HostOsInfo::isMacHost() ? QPalette::Mid + : QPalette::Midlight); + qDrawPlainRect(&p, rect(), outlineColor); + } } void DetailsWidget::enterEvent(QEnterEvent *event)