summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@theqtcompany.com>2016-03-16 12:28:31 +0100
committerEike Ziller <eike.ziller@theqtcompany.com>2016-03-18 12:59:36 +0000
commita029aafdf0b612192a5e2a09fcb410b1ab67d880 (patch)
tree91ae254acccae42469472c796a8c6237d8b7de03
parentf393da34513b37dc61591214b5279184c360c89e (diff)
downloadqt-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.cpp24
-rw-r--r--src/plugins/coreplugin/fancytabwidget.h1
-rw-r--r--src/plugins/coreplugin/mainwindow.cpp8
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();