Locator: Fix locator behavior with qt5

Task-number: QTCREATORBUG-10013

Change-Id: I2bf55cfa2fe1e11bac56cced765789566b659469
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
Daniel Teske
2013-08-20 17:57:05 +02:00
parent b8bd672365
commit 3416ecc594

View File

@@ -97,13 +97,10 @@ public:
QSize preferredSize() const { return m_preferredSize; } QSize preferredSize() const { return m_preferredSize; }
void focusOutEvent (QFocusEvent * event) { void focusOutEvent (QFocusEvent * event) {
if (Utils::HostOsInfo::isWindowsHost()) {
if (event->reason() == Qt::ActiveWindowFocusReason) if (event->reason() == Qt::ActiveWindowFocusReason)
hide(); hide();
} else {
QTreeView::focusOutEvent(event); QTreeView::focusOutEvent(event);
} }
}
void next() { void next() {
int index = currentIndex().row(); int index = currentIndex().row();
@@ -400,14 +397,9 @@ bool LocatorWidget::eventFilter(QObject *obj, QEvent *event)
} }
} }
} else if (obj == m_fileLineEdit && event->type() == QEvent::FocusOut) { } else if (obj == m_fileLineEdit && event->type() == QEvent::FocusOut) {
bool hideList = true;
if (Utils::HostOsInfo::isWindowsHost()) {
QFocusEvent *fev = static_cast<QFocusEvent*>(event); QFocusEvent *fev = static_cast<QFocusEvent*>(event);
if (fev->reason() == Qt::ActiveWindowFocusReason && if (fev->reason() != Qt::ActiveWindowFocusReason
!(fev->reason() == Qt::ActiveWindowFocusReason && !m_completionList->isActiveWindow())) || (fev->reason() == Qt::ActiveWindowFocusReason && !m_completionList->isActiveWindow())) {
hideList = false;
}
if (hideList) {
m_completionList->hide(); m_completionList->hide();
m_fileLineEdit->clearFocus(); m_fileLineEdit->clearFocus();
} }