From 55db42fe2cc10795c137e9f8338bdf084d1f9cba Mon Sep 17 00:00:00 2001 From: Tim Jenssen Date: Wed, 26 Oct 2016 15:33:06 +0200 Subject: [PATCH] QmlDesigner: remove styling of the output pane Setting objectnames to reduce possible influence to other widgets. Introduce a background QWidget to set the background color. AutofillBackground was not working for unclear reason. Change-Id: I4acd5b7ed5ff9d63b5320b133a82099c5888b839 Task-number: QTCREATORBUG-17172 Reviewed-by: Thomas Hartmann --- .../components/resources/centerwidget.css | 4 +- src/plugins/qmldesigner/designmodewidget.cpp | 21 +++--- src/plugins/qmldesigner/qmldesignerplugin.pri | 2 - src/plugins/qmldesigner/qmldesignerplugin.qbs | 2 - .../styledoutputpaneplaceholder.cpp | 65 ------------------- .../qmldesigner/styledoutputpaneplaceholder.h | 46 ------------- 6 files changed, 15 insertions(+), 125 deletions(-) delete mode 100644 src/plugins/qmldesigner/styledoutputpaneplaceholder.cpp delete mode 100644 src/plugins/qmldesigner/styledoutputpaneplaceholder.h diff --git a/src/plugins/qmldesigner/components/resources/centerwidget.css b/src/plugins/qmldesigner/components/resources/centerwidget.css index dd60f7f7186..fd2b8f6d1b1 100644 --- a/src/plugins/qmldesigner/components/resources/centerwidget.css +++ b/src/plugins/qmldesigner/components/resources/centerwidget.css @@ -1,4 +1,4 @@ -QWidget { +QWidget#backgroundWidget { background-color: creatorTheme.QmlDesignerTabDark } @@ -15,7 +15,7 @@ QTabBar::tab:selected { color: creatorTheme.QmlDesignerTabDark; } -QTabBar::tab { +QTabBar#centralTabBar::tab { width: 16px; height: 80px; diff --git a/src/plugins/qmldesigner/designmodewidget.cpp b/src/plugins/qmldesigner/designmodewidget.cpp index 2f2a9b67d58..3c4349bd624 100644 --- a/src/plugins/qmldesigner/designmodewidget.cpp +++ b/src/plugins/qmldesigner/designmodewidget.cpp @@ -25,7 +25,7 @@ #include "designmodewidget.h" -#include "styledoutputpaneplaceholder.h" +#include #include "qmldesignerplugin.h" #include "crumblebar.h" #include "documentwarningwidget.h" @@ -492,20 +492,25 @@ static Core::MiniSplitter *createCentralSplitter(const QList &widget outputPlaceholderSplitter->setStretchFactor(1, 0); outputPlaceholderSplitter->setOrientation(Qt::Vertical); - auto outputPanePlaceholder = new StyledOutputpanePlaceHolder(Core::Constants::MODE_DESIGN, outputPlaceholderSplitter); + auto outputPanePlaceholder = new Core::OutputPanePlaceHolder(Core::Constants::MODE_DESIGN, outputPlaceholderSplitter); QTabWidget* tabWidget = createWidgetsInTabWidget(centralWidgetInfos); tabWidget->setObjectName("centralTabWidget"); tabWidget->setTabPosition(QTabWidget::East); - tabWidget->setTabBarAutoHide(true); + tabWidget->tabBar()->setObjectName("centralTabBar"); - outputPlaceholderSplitter->addWidget(tabWidget); - - outputPlaceholderSplitter->addWidget(outputPanePlaceholder); + QWidget *backgroundWidget = new QWidget(); + backgroundWidget->setObjectName("backgroundWidget"); + backgroundWidget->setLayout(new QVBoxLayout()); + backgroundWidget->layout()->setMargin(0); + backgroundWidget->layout()->addWidget(tabWidget); QByteArray sheet = Utils::FileReader::fetchQrc(":/qmldesigner/centerwidget.css"); - tabWidget->setStyleSheet(Theming::replaceCssColors(QString::fromUtf8(sheet))); - outputPlaceholderSplitter->setStyleSheet(Theming::replaceCssColors(QString::fromUtf8(sheet))); + backgroundWidget->setStyleSheet(Theming::replaceCssColors(QString::fromUtf8(sheet))); + + outputPlaceholderSplitter->addWidget(backgroundWidget); + outputPlaceholderSplitter->addWidget(outputPanePlaceholder); + return outputPlaceholderSplitter; } diff --git a/src/plugins/qmldesigner/qmldesignerplugin.pri b/src/plugins/qmldesigner/qmldesignerplugin.pri index b9be0d0a558..b900f8d883e 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.pri +++ b/src/plugins/qmldesigner/qmldesignerplugin.pri @@ -7,7 +7,6 @@ HEADERS += $$PWD/qmldesignerconstants.h \ $$PWD/designmodecontext.h \ $$PWD/documentmanager.h \ $$PWD/documentwarningwidget.h \ - $$PWD/styledoutputpaneplaceholder.h \ $$PWD/qmldesignericons.h \ $$PWD/openuiqmlfiledialog.h @@ -19,7 +18,6 @@ SOURCES += $$PWD/qmldesignerplugin.cpp \ $$PWD/designmodecontext.cpp \ $$PWD/documentmanager.cpp \ $$PWD/documentwarningwidget.cpp \ - $$PWD/styledoutputpaneplaceholder.cpp \ $$PWD/openuiqmlfiledialog.cpp FORMS += $$PWD/settingspage.ui \ diff --git a/src/plugins/qmldesigner/qmldesignerplugin.qbs b/src/plugins/qmldesigner/qmldesignerplugin.qbs index 8e24fd09a7f..e593a32b3d3 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.qbs +++ b/src/plugins/qmldesigner/qmldesignerplugin.qbs @@ -646,8 +646,6 @@ Project { "settingspage.ui", "shortcutmanager.cpp", "shortcutmanager.h", - "styledoutputpaneplaceholder.cpp", - "styledoutputpaneplaceholder.h", ] } } diff --git a/src/plugins/qmldesigner/styledoutputpaneplaceholder.cpp b/src/plugins/qmldesigner/styledoutputpaneplaceholder.cpp deleted file mode 100644 index b8793740fbe..00000000000 --- a/src/plugins/qmldesigner/styledoutputpaneplaceholder.cpp +++ /dev/null @@ -1,65 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#include "styledoutputpaneplaceholder.h" -#include "theming.h" - -#include - -#include -#include - -namespace QmlDesigner { -namespace Internal { - -StyledOutputpanePlaceHolder::StyledOutputpanePlaceHolder(Core::Id mode, QSplitter *parent) - : Core::OutputPanePlaceHolder(mode, parent) -{ - QByteArray sheet = Utils::FileReader::fetchQrc(":/qmldesigner/scrollbar.css"); - m_customStylesheet = Theming::replaceCssColors(QString::fromUtf8(sheet)); -} - -void StyledOutputpanePlaceHolder::childEvent(QChildEvent *event) -{ - Core::OutputPanePlaceHolder::childEvent(event); - - if (event->type() == QEvent::ChildAdded) { - if (QWidget *child = qobject_cast(event->child())) { - QList widgets = child->findChildren(); - if (!widgets.isEmpty()) - widgets.first()->parentWidget()->setStyleSheet(m_customStylesheet); - } - } else if (event->type() == QEvent::ChildRemoved) { - QWidget *child = qobject_cast(event->child()); - if (child) { - QList widgets = child->findChildren(); - if (!widgets.isEmpty()) - widgets.first()->parentWidget()->setStyleSheet(QString()); - } - } -} - -} // namespace Internal -} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/styledoutputpaneplaceholder.h b/src/plugins/qmldesigner/styledoutputpaneplaceholder.h deleted file mode 100644 index c55830115d8..00000000000 --- a/src/plugins/qmldesigner/styledoutputpaneplaceholder.h +++ /dev/null @@ -1,46 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of Qt Creator. -** -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -****************************************************************************/ - -#pragma once - -#include - -namespace QmlDesigner { -namespace Internal { - -class StyledOutputpanePlaceHolder : public Core::OutputPanePlaceHolder -{ -public: - explicit StyledOutputpanePlaceHolder(Core::Id mode, QSplitter *parent = 0); - -protected: - void childEvent(QChildEvent *event) override;; - -private: - QString m_customStylesheet; -}; - -} // namespace Internal -} // namespace QmlDesigner