forked from qt-creator/qt-creator
FancyMainWindow: Qt5-ify
Change-Id: I93b951db5c6d7d98940a9731db26a4a9be21bdef Reviewed-by: Eike Ziller <eike.ziller@digia.com>
This commit is contained in:
@@ -198,8 +198,6 @@ public:
|
|||||||
|
|
||||||
class DockWidget : public QDockWidget
|
class DockWidget : public QDockWidget
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
DockWidget(QWidget *inner, QWidget *parent)
|
DockWidget(QWidget *inner, QWidget *parent)
|
||||||
: QDockWidget(parent), m_inner(inner)
|
: QDockWidget(parent), m_inner(inner)
|
||||||
@@ -219,15 +217,23 @@ public:
|
|||||||
m_timer.setSingleShot(true);
|
m_timer.setSingleShot(true);
|
||||||
m_timer.setInterval(500);
|
m_timer.setInterval(500);
|
||||||
|
|
||||||
connect(&m_timer, SIGNAL(timeout()), this, SLOT(handleMouseTimeout()));
|
connect(&m_timer, &QTimer::timeout, this, &DockWidget::handleMouseTimeout);
|
||||||
|
|
||||||
connect(this, SIGNAL(topLevelChanged(bool)), this, SLOT(handleToplevelChanged(bool)));
|
connect(this, &QDockWidget::topLevelChanged, this, &DockWidget::handleToplevelChanged);
|
||||||
|
|
||||||
|
connect(toggleViewAction(), &QAction::triggered,
|
||||||
|
[this]() {
|
||||||
|
if (isVisible())
|
||||||
|
raise();
|
||||||
|
});
|
||||||
|
|
||||||
auto origFloatButton = findChild<QAbstractButton *>(QLatin1String("qt_dockwidget_floatbutton"));
|
auto origFloatButton = findChild<QAbstractButton *>(QLatin1String("qt_dockwidget_floatbutton"));
|
||||||
connect(m_titleBar->m_floatButton, SIGNAL(clicked()), origFloatButton, SIGNAL(clicked()));
|
connect(m_titleBar->m_floatButton, &QAbstractButton::clicked,
|
||||||
|
origFloatButton, &QAbstractButton::clicked);
|
||||||
|
|
||||||
auto origCloseButton = findChild<QAbstractButton *>(QLatin1String("qt_dockwidget_closebutton"));
|
auto origCloseButton = findChild<QAbstractButton *>(QLatin1String("qt_dockwidget_closebutton"));
|
||||||
connect(m_titleBar->m_closeButton, SIGNAL(clicked()), origCloseButton, SIGNAL(clicked()));
|
connect(m_titleBar->m_closeButton, &QAbstractButton::clicked,
|
||||||
|
origCloseButton, &QAbstractButton::clicked);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool eventFilter(QObject *, QEvent *event)
|
bool eventFilter(QObject *, QEvent *event)
|
||||||
@@ -257,7 +263,7 @@ public:
|
|||||||
QDockWidget::leaveEvent(event);
|
QDockWidget::leaveEvent(event);
|
||||||
}
|
}
|
||||||
|
|
||||||
Q_SLOT void handleMouseTimeout()
|
void handleMouseTimeout()
|
||||||
{
|
{
|
||||||
QPoint dist = m_startPos - QCursor::pos();
|
QPoint dist = m_startPos - QCursor::pos();
|
||||||
if (!isFloating() && dist.manhattanLength() < 4) {
|
if (!isFloating() && dist.manhattanLength() < 4) {
|
||||||
@@ -265,7 +271,7 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Q_SLOT void handleToplevelChanged(bool floating)
|
void handleToplevelChanged(bool floating)
|
||||||
{
|
{
|
||||||
if (!floating)
|
if (!floating)
|
||||||
m_titleBar->setActive(false);
|
m_titleBar->setActive(false);
|
||||||
@@ -312,8 +318,8 @@ FancyMainWindowPrivate::FancyMainWindowPrivate() :
|
|||||||
FancyMainWindow::FancyMainWindow(QWidget *parent) :
|
FancyMainWindow::FancyMainWindow(QWidget *parent) :
|
||||||
QMainWindow(parent), d(new FancyMainWindowPrivate)
|
QMainWindow(parent), d(new FancyMainWindowPrivate)
|
||||||
{
|
{
|
||||||
connect(&d->m_resetLayoutAction, SIGNAL(triggered()),
|
connect(&d->m_resetLayoutAction, &QAction::triggered,
|
||||||
this, SIGNAL(resetLayout()));
|
this, &FancyMainWindow::resetLayout);
|
||||||
}
|
}
|
||||||
|
|
||||||
FancyMainWindow::~FancyMainWindow()
|
FancyMainWindow::~FancyMainWindow()
|
||||||
@@ -328,30 +334,19 @@ QDockWidget *FancyMainWindow::addDockForWidget(QWidget *widget)
|
|||||||
QTC_CHECK(widget->windowTitle().size());
|
QTC_CHECK(widget->windowTitle().size());
|
||||||
|
|
||||||
auto dockWidget = new DockWidget(widget, this);
|
auto dockWidget = new DockWidget(widget, this);
|
||||||
connect(dockWidget->toggleViewAction(), SIGNAL(triggered()),
|
|
||||||
this, SLOT(onDockActionTriggered()), Qt::QueuedConnection);
|
connect(dockWidget, &QDockWidget::visibilityChanged,
|
||||||
connect(dockWidget, SIGNAL(visibilityChanged(bool)),
|
[this, dockWidget](bool visible) {
|
||||||
this, SLOT(onDockVisibilityChange(bool)));
|
if (d->m_handleDockVisibilityChanges)
|
||||||
|
dockWidget->setProperty(dockWidgetActiveState, visible);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
dockWidget->setProperty(dockWidgetActiveState, true);
|
dockWidget->setProperty(dockWidgetActiveState, true);
|
||||||
|
|
||||||
return dockWidget;
|
return dockWidget;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FancyMainWindow::onDockActionTriggered()
|
|
||||||
{
|
|
||||||
QDockWidget *dw = qobject_cast<QDockWidget *>(sender()->parent());
|
|
||||||
if (dw) {
|
|
||||||
if (dw->isVisible())
|
|
||||||
dw->raise();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void FancyMainWindow::onDockVisibilityChange(bool visible)
|
|
||||||
{
|
|
||||||
if (d->m_handleDockVisibilityChanges)
|
|
||||||
sender()->setProperty(dockWidgetActiveState, visible);
|
|
||||||
}
|
|
||||||
|
|
||||||
void FancyMainWindow::setTrackingEnabled(bool enabled)
|
void FancyMainWindow::setTrackingEnabled(bool enabled)
|
||||||
{
|
{
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
@@ -495,5 +490,3 @@ void FancyMainWindow::setToolBarDockWidget(QDockWidget *dock)
|
|||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Utils
|
} // namespace Utils
|
||||||
|
|
||||||
#include "fancymainwindow.moc"
|
|
||||||
|
|||||||
@@ -72,23 +72,18 @@ public:
|
|||||||
QDockWidget *toolBarDockWidget() const;
|
QDockWidget *toolBarDockWidget() const;
|
||||||
void setToolBarDockWidget(QDockWidget *dock);
|
void setToolBarDockWidget(QDockWidget *dock);
|
||||||
|
|
||||||
|
void setDockActionsVisible(bool v);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
// Emitted by resetLayoutAction(). Connect to a slot
|
// Emitted by resetLayoutAction(). Connect to a slot
|
||||||
// restoring the default layout.
|
// restoring the default layout.
|
||||||
void resetLayout();
|
void resetLayout();
|
||||||
|
|
||||||
public slots:
|
|
||||||
void setDockActionsVisible(bool v);
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void hideEvent(QHideEvent *event);
|
void hideEvent(QHideEvent *event);
|
||||||
void showEvent(QShowEvent *event);
|
void showEvent(QShowEvent *event);
|
||||||
void contextMenuEvent(QContextMenuEvent *event);
|
void contextMenuEvent(QContextMenuEvent *event);
|
||||||
|
|
||||||
private slots:
|
|
||||||
void onDockActionTriggered();
|
|
||||||
void onDockVisibilityChange(bool);
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void handleVisibilityChanged(bool visible);
|
void handleVisibilityChanged(bool visible);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user