diff options
author | Eike Ziller <eike.ziller@theqtcompany.com> | 2016-03-16 12:28:31 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@theqtcompany.com> | 2016-03-18 12:59:36 +0000 |
commit | a029aafdf0b612192a5e2a09fcb410b1ab67d880 (patch) | |
tree | 91ae254acccae42469472c796a8c6237d8b7de03 | |
parent | f393da34513b37dc61591214b5279184c360c89e (diff) | |
download | qt-creator-a029aafdf0b612192a5e2a09fcb410b1ab67d880.tar.gz |
Move handling of color dialog that is opened from mode selector
It doesn't really make sense to have that handling deep in the
FancyTabWidget.
Change-Id: If4b4b9b9c3cbc49c25091982b398fb18f9bf87c2
Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
-rw-r--r-- | src/plugins/coreplugin/fancytabwidget.cpp | 24 | ||||
-rw-r--r-- | src/plugins/coreplugin/fancytabwidget.h | 1 | ||||
-rw-r--r-- | src/plugins/coreplugin/mainwindow.cpp | 8 |
3 files changed, 22 insertions, 11 deletions
diff --git a/src/plugins/coreplugin/fancytabwidget.cpp b/src/plugins/coreplugin/fancytabwidget.cpp index 0bdb4be8cc..5085baeb68 100644 --- a/src/plugins/coreplugin/fancytabwidget.cpp +++ b/src/plugins/coreplugin/fancytabwidget.cpp @@ -33,7 +33,6 @@ #include <QDebug> -#include <QColorDialog> #include <QHBoxLayout> #include <QVBoxLayout> #include <QMouseEvent> @@ -393,23 +392,22 @@ bool FancyTabBar::isTabEnabled(int index) const class FancyColorButton : public QWidget { + Q_OBJECT + public: - FancyColorButton(QWidget *parent) - : m_parent(parent) + explicit FancyColorButton(QWidget *parent = 0) + : QWidget(parent) { setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Preferred); } void mousePressEvent(QMouseEvent *ev) { - if (ev->modifiers() & Qt::ShiftModifier) { - QColor color = QColorDialog::getColor(StyleHelper::requestedBaseColor(), m_parent); - if (color.isValid()) - StyleHelper::setBaseColor(color); - } + emit clicked(ev->button(), ev->modifiers()); } -private: - QWidget *m_parent; + +signals: + void clicked(Qt::MouseButton button, Qt::KeyboardModifiers modifiers); }; ////// @@ -430,7 +428,9 @@ FancyTabWidget::FancyTabWidget(QWidget *parent) QHBoxLayout *layout = new QHBoxLayout(bar); layout->setMargin(0); layout->setSpacing(0); - layout->addWidget(new FancyColorButton(this)); + auto fancyButton = new FancyColorButton(this); + connect(fancyButton, &FancyColorButton::clicked, this, &FancyTabWidget::topAreaClicked); + layout->addWidget(fancyButton); selectionLayout->addWidget(bar); selectionLayout->addWidget(m_tabBar, 1); @@ -571,3 +571,5 @@ bool FancyTabWidget::isTabEnabled(int index) const { return m_tabBar->isTabEnabled(index); } + +#include "fancytabwidget.moc" diff --git a/src/plugins/coreplugin/fancytabwidget.h b/src/plugins/coreplugin/fancytabwidget.h index cb14adf4af..b871af08c6 100644 --- a/src/plugins/coreplugin/fancytabwidget.h +++ b/src/plugins/coreplugin/fancytabwidget.h @@ -162,6 +162,7 @@ public: signals: void currentAboutToShow(int index); void currentChanged(int index); + void topAreaClicked(Qt::MouseButton button, Qt::KeyboardModifiers modifiers); public slots: void setCurrentIndex(int index); diff --git a/src/plugins/coreplugin/mainwindow.cpp b/src/plugins/coreplugin/mainwindow.cpp index 1da372d3a1..374cb87da1 100644 --- a/src/plugins/coreplugin/mainwindow.cpp +++ b/src/plugins/coreplugin/mainwindow.cpp @@ -79,6 +79,7 @@ #include <QApplication> #include <QCloseEvent> +#include <QColorDialog> #include <QDebug> #include <QDir> #include <QFileInfo> @@ -175,6 +176,13 @@ MainWindow::MainWindow() : setCorner(Qt::BottomRightCorner, Qt::BottomDockWidgetArea); m_modeManager = new ModeManager(this, m_modeStack); + connect(m_modeStack, &FancyTabWidget::topAreaClicked, this, [](Qt::MouseButton, Qt::KeyboardModifiers modifiers) { + if (modifiers & Qt::ShiftModifier) { + QColor color = QColorDialog::getColor(StyleHelper::requestedBaseColor(), ICore::dialogParent()); + if (color.isValid()) + StyleHelper::setBaseColor(color); + } + }); registerDefaultContainers(); registerDefaultActions(); |