summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2015-01-19 15:39:54 (GMT)
committerSwift Review <review@swift.im>2015-02-09 22:05:06 (GMT)
commit6a4e622d9c406ea45bcc8c9740f666ad4a7e589f (patch)
tree917e8b041cb3cbf3af18e82001b57b5e770fdb6f /Swift/QtUI/Trellis
parent672e56cd731d1cbc08941bf98d76699cd9fc4514 (diff)
downloadswift-6a4e622d9c406ea45bcc8c9740f666ad4a7e589f.zip
swift-6a4e622d9c406ea45bcc8c9740f666ad4a7e589f.tar.bz2
Fix focus handling bug with regard to tab changing
QtChatWindow: Require now parameter is set in QtChatWindow::qAppFocusChanged which is required so only the visible tab that is changed to gets focus. QtDynamicGridLayout: A change of tab in a QTabWidget set focus on the new tab even if the QTabWidget has no keyboard focus. Test-Information: Tested on Mac OS X 10.9.5 and Qt 5.4.0. Change-Id: I3d9d230c7753f1898b251b49c06fe7318ad953fb
Diffstat (limited to 'Swift/QtUI/Trellis')
-rw-r--r--Swift/QtUI/Trellis/QtDynamicGridLayout.cpp9
-rw-r--r--Swift/QtUI/Trellis/QtDynamicGridLayout.h1
2 files changed, 10 insertions, 0 deletions
diff --git a/Swift/QtUI/Trellis/QtDynamicGridLayout.cpp b/Swift/QtUI/Trellis/QtDynamicGridLayout.cpp
index f9ce295..18abecd 100644
--- a/Swift/QtUI/Trellis/QtDynamicGridLayout.cpp
+++ b/Swift/QtUI/Trellis/QtDynamicGridLayout.cpp
@@ -379,6 +379,14 @@ void QtDynamicGridLayout::handleTabCloseRequested(int index) {
}
}
+void QtDynamicGridLayout::handleTabCurrentChanged(int index) {
+ if (index >= 0) {
+ QTabWidget *sendingTabWidget = dynamic_cast<QTabWidget*>(sender());
+ assert(sendingTabWidget);
+ sendingTabWidget->widget(index)->setFocus();
+ }
+}
+
void QtDynamicGridLayout::updateTabPositions() {
for (int y = 0; y < gridLayout_->rowCount(); y++) {
for (int x = 0; x < gridLayout_->columnCount(); x++) {
@@ -422,6 +430,7 @@ QtTabWidget* QtDynamicGridLayout::createDNDTabWidget(QWidget* parent) {
tab->setTabsClosable(true);
tab->setMovable(true);
connect(tab, SIGNAL(tabCloseRequested(int)), this, SLOT(handleTabCloseRequested(int)));
+ connect(tab, SIGNAL(currentChanged(int)), this, SLOT(handleTabCurrentChanged(int)));
#else
#warning Qt 4.5 or later is needed. Trying anyway, some things will be disabled.
#endif
diff --git a/Swift/QtUI/Trellis/QtDynamicGridLayout.h b/Swift/QtUI/Trellis/QtDynamicGridLayout.h
index 0a8a0b6..3b798bd 100644
--- a/Swift/QtUI/Trellis/QtDynamicGridLayout.h
+++ b/Swift/QtUI/Trellis/QtDynamicGridLayout.h
@@ -61,6 +61,7 @@ namespace Swift {
private slots:
void handleTabCloseRequested(int index);
+ void handleTabCurrentChanged(int index);
private:
void moveTab(QtTabWidget* tabWidget, int oldIndex, int newIndex);