diff --git a/src/libs/utils/stylehelper.cpp b/src/libs/utils/stylehelper.cpp index 4d9d98eaef087e0114a39924be8988d2ef33cd0e..9bb00b1b4e8e07b691b6423e5d790d1ff936b729 100644 --- a/src/libs/utils/stylehelper.cpp +++ b/src/libs/utils/stylehelper.cpp @@ -70,6 +70,15 @@ qreal StyleHelper::sidebarFontSize() return HostOsInfo::isMacHost() ? 10 : 7.5; } +QColor StyleHelper::notTooBrightHighlightColor() +{ + QColor highlightColor = qApp->palette().highlight().color(); + if (0.5 * highlightColor.saturationF() + 0.75 - highlightColor.valueF() < 0) + highlightColor.setHsvF(highlightColor.hsvHueF(), 0.1 + highlightColor.saturationF() * 2.0, highlightColor.valueF()); + return highlightColor; +} + + QPalette StyleHelper::sidebarFontPalette(const QPalette &original) { QPalette palette = original; diff --git a/src/libs/utils/stylehelper.h b/src/libs/utils/stylehelper.h index 72ffb9b3c14bcc20cb5ff4b0a7eb2b0c15796396..8be341c21f49060ea63f610b4bfdb8a8384dc0d0 100644 --- a/src/libs/utils/stylehelper.h +++ b/src/libs/utils/stylehelper.h @@ -70,6 +70,8 @@ public: static QColor sidebarHighlight() { return QColor(255, 255, 255, 40); } static QColor sidebarShadow() { return QColor(0, 0, 0, 40); } + static QColor notTooBrightHighlightColor(); + // Sets the base color and makes sure all top level widgets are updated static void setBaseColor(const QColor &color); diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp index 32933e9aabfd093c170b54f4b05fa0ebaa5607dc..9c46e2ac371f269e3dfb450b9f861dd66daeb6f6 100644 --- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp +++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp @@ -31,6 +31,8 @@ #include <utils/fileutils.h> #include <utils/qtcassert.h> +#include <utils/stylehelper.h> + #include <coreplugin/coreconstants.h> #include <coreplugin/icore.h> #include "itemlibrarymodel.h" @@ -84,11 +86,7 @@ ItemLibraryWidget::ItemLibraryWidget(QWidget *parent) : rootContext->setContextProperty(QStringLiteral("itemLibraryIconWidth"), m_itemIconSize.width()); rootContext->setContextProperty(QStringLiteral("itemLibraryIconHeight"), m_itemIconSize.height()); - QColor highlightColor = palette().highlight().color(); - if (0.5*highlightColor.saturationF()+0.75-highlightColor.valueF() < 0) - highlightColor.setHsvF(highlightColor.hsvHueF(),0.1 + highlightColor.saturationF()*2.0, highlightColor.valueF()); - m_itemsView->rootContext()->setContextProperty(QStringLiteral("highlightColor"), highlightColor); - + m_itemsView->rootContext()->setContextProperty(QStringLiteral("highlightColor"), Utils::StyleHelper::notTooBrightHighlightColor()); /* create Resources view and its model */ m_resourcesFileSystemModel = new QFileSystemModel(this); diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp b/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp index 1eacd49fe1949db161fec6d5de622437975532d3..7a9b2a36818990659053c1c35f10d8adfc8abfbb 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatortreeview.cpp @@ -36,6 +36,9 @@ #include "qproxystyle.h" #include "metainfo.h" + +#include <utils/stylehelper.h> + #include <QLineEdit> #include <QPen> #include <QPixmapCache> @@ -47,13 +50,10 @@ namespace QmlDesigner { void drawSelectionBackground(QPainter *painter, const QStyleOption &option) { - QWidget colorReference; - painter->save(); QLinearGradient gradient; - QColor highlightColor = colorReference.palette().highlight().color(); - if (0.5*highlightColor.saturationF()+0.75-highlightColor.valueF() < 0) - highlightColor.setHsvF(highlightColor.hsvHueF(),0.1 + highlightColor.saturationF()*2.0, highlightColor.valueF()); + + QColor highlightColor = Utils::StyleHelper::notTooBrightHighlightColor(); gradient.setColorAt(0, highlightColor.lighter(130)); gradient.setColorAt(1, highlightColor.darker(130)); gradient.setStart(option.rect.topLeft()); diff --git a/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp b/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp index 69af261ef57bb81268a8059b48a236ef1c75e17a..9caa3b645405cacb50b9d29f373358f2b5f8db92 100644 --- a/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp +++ b/src/plugins/qmldesigner/components/stateseditor/stateseditorwidget.cpp @@ -36,6 +36,7 @@ #include <coreplugin/icore.h> #include <utils/qtcassert.h> +#include <utils/stylehelper.h> #include <QApplication> @@ -103,10 +104,8 @@ StatesEditorWidget::StatesEditorWidget(StatesEditorView *statesEditorView, State container->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); m_quickView->rootContext()->setContextProperty(QStringLiteral("statesEditorModel"), statesEditorModel); - QColor highlightColor = palette().highlight().color(); - if (0.5*highlightColor.saturationF()+0.75-highlightColor.valueF() < 0) - highlightColor.setHsvF(highlightColor.hsvHueF(),0.1 + highlightColor.saturationF()*2.0, highlightColor.valueF()); - m_quickView->rootContext()->setContextProperty(QStringLiteral("highlightColor"), highlightColor); + m_quickView->rootContext()->setContextProperty(QStringLiteral("highlightColor"), Utils::StyleHelper::notTooBrightHighlightColor()); + m_quickView->rootContext()->setContextProperty("canAddNewStates", true);