summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI/Trellis/QtDynamicGridLayout.cpp')
-rw-r--r--Swift/QtUI/Trellis/QtDynamicGridLayout.cpp9
1 files changed, 9 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
@@ -376,12 +376,20 @@ void QtDynamicGridLayout::handleTabCloseRequested(int index) {
index += tabWidget->count();
}
}
}
}
+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++) {
QLayoutItem* layoutItem = gridLayout_->itemAtPosition(y, x);
QtTabWidget* tabWidget = dynamic_cast<QtTabWidget*>(layoutItem->widget());
assert(tabWidget);
@@ -419,12 +427,13 @@ QtTabWidget* QtDynamicGridLayout::createDNDTabWidget(QWidget* parent) {
/*For Macs, change the tab rendering.*/
tab->setDocumentMode(true);
/*Closable tabs are only in Qt4.5 and later*/
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
return tab;
}