Hi all,
After latest patches about focuspolicy (I've completely removed handling of tab & backtab from qt, now LCL controls that part), we have pending problem with QTabWidget. QTabWidget::keyPressEvent(QKeyEvent *e) drive us into problem since it handles Tab key before that event is passed to LCL, and sets focus to tabbar.Original code is here (shorten)
void QTabWidget::keyPressEvent(QKeyEvent *e)
{
Q_D(QTabWidget);
if (((e->key() == Qt::Key_Tab || e->key() == Qt::Key_Backtab) &&
count() > 1 && e->modifiers() & Qt::ControlModifier)
page = 0;
}
if (d->tabs->isTabEnabled(page)) {
setCurrentIndex(page);
break;
}.... blablablbalbla
}
if (!qApp->focusWidget()) <--------- THIS IS PROBLEM d->tabs->setFocus(); <--------- THIS IS PROBLEM
} else {
e->ignore();
}}
So, QT always handles tab key at this place, and if qApp->focusWidget() returns NULL our focus is jailed into tabbar, and we must use mouse to get out of tabbar. That's because we set QtClickFocus on all widgets with TabStop=TRUE, and tabbar searches for widget with QtStrongFocus or QtTabFocus.
So, in short - we have two solutions:
1.QLCLTabWidget which overrides keyPressEvent().
2.Write completely new TQtTabWidget from stratch.
Den ?
zeljko
