diff options
author | Tobias Markmann <tm@ayena.de> | 2015-02-23 12:09:55 (GMT) |
---|---|---|
committer | Tobias Markmann <tm@ayena.de> | 2015-02-23 12:09:55 (GMT) |
commit | e963c5e939f4e1b7cd8f8d653ec2d1cadbec4a8d (patch) | |
tree | ec2c5b9faa0e6f9c647f11722c0865f8b4bb1dd8 /Swift/QtUI/Trellis/QtDynamicGridLayout.cpp | |
parent | 8718d29202d5df23cd979055b8be8a2d28d82301 (diff) | |
download | swift-e963c5e939f4e1b7cd8f8d653ec2d1cadbec4a8d.zip swift-e963c5e939f4e1b7cd8f8d653ec2d1cadbec4a8d.tar.bz2 |
Fix chat window title showing wrong chat titleswift-3.0beta1
Setup an application wide focus handler which updates the title if a
focus change to a QtTabWidget happened.
Test-Information:
Tested on OS X 10.9.5 with Qt 5.4.0.
Change-Id: Ib2e2f4c4a93deddb286350bdef685eb7aee504c9
Diffstat (limited to 'Swift/QtUI/Trellis/QtDynamicGridLayout.cpp')
-rw-r--r-- | Swift/QtUI/Trellis/QtDynamicGridLayout.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/Swift/QtUI/Trellis/QtDynamicGridLayout.cpp b/Swift/QtUI/Trellis/QtDynamicGridLayout.cpp index e0bfa33..cc3208b 100644 --- a/Swift/QtUI/Trellis/QtDynamicGridLayout.cpp +++ b/Swift/QtUI/Trellis/QtDynamicGridLayout.cpp @@ -8,6 +8,8 @@ #include <cassert> +#include <QApplication> +#include <QEvent> #include <QLayoutItem> #include <QGridLayout> #include <QtDebug> @@ -23,6 +25,7 @@ QtDynamicGridLayout::QtDynamicGridLayout(QWidget* parent, bool enableDND) : QWid gridLayout_ = new QGridLayout(this); setContentsMargins(0,0,0,0); setDimensions(QSize(1,1)); + connect(qApp, SIGNAL(focusChanged(QWidget*, QWidget*)), this, SLOT(handleApplicationFocusChanged(QWidget*,QWidget*))); } QtDynamicGridLayout::~QtDynamicGridLayout() { @@ -103,6 +106,17 @@ int QtDynamicGridLayout::indexOf(const QWidget* widget) const { return -1; } +void QtDynamicGridLayout::handleApplicationFocusChanged(QWidget*, QWidget* newFocus) { + if (newFocus) { + if (isAncestorOf(newFocus)) { + QtTabbable *newTab = dynamic_cast<QtTabbable*>(newFocus->parentWidget()); + if (newTab) { + onCurrentIndexChanged(currentIndex()); + } + } + } +} + int QtDynamicGridLayout::currentIndex() const { return indexOf(currentWidget()); } |