forked from qt-creator/qt-creator
ProjectExplorer: Make sure to keep focus on the project tree
... after renaming files. The problem was as follows: - The user renames e.g. a header file myclass.h, resulting in a focus change to a newly created line edit. - We ask them whether myclass.cpp should also be renamed, resulting in a focus change to the message box. - After the message box closes, the line edit gets destroyed before the focus can change back to it. - The focus goes to some random widget. Prevent this by explicitly giving the project tree widget the focus when the line edit gets destroyed. Fixes: QTCREATORBUG-30926 Change-Id: I36ae61219ce59966d3758c4614e3c49d286af160 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -100,6 +100,19 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
void destroyEditor(QWidget *editor, const QModelIndex &index) const final
|
||||
{
|
||||
// QTCREATORBUG-30926
|
||||
for (QWidget *p = editor->parentWidget(); p; p = p->parentWidget()) {
|
||||
if (qobject_cast<ProjectTreeWidget *>(p)) {
|
||||
p->setFocus();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
QStyledItemDelegate::destroyEditor(editor, index);
|
||||
}
|
||||
|
||||
private:
|
||||
ProgressIndicatorPainter *findOrCreateIndicatorPainter(const QModelIndex &index) const
|
||||
{
|
||||
|
Reference in New Issue
Block a user