ProjectExplorer: Fix compile for Qt version less than 5.4

Change-Id: Ic2500d009d2195d19651ac691c42d55a612fde04
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
This commit is contained in:
Christian Stenger
2014-12-18 10:12:38 +01:00
parent 7b226fffd7
commit dfa76d74e0
2 changed files with 39 additions and 22 deletions

View File

@@ -289,12 +289,7 @@ void ProjectTree::foldersAboutToBeRemoved(FolderNode *, const QList<FolderNode*>
void ProjectTree::foldersRemoved() void ProjectTree::foldersRemoved()
{ {
QTimer::singleShot(0, [this]() { QTimer::singleShot(0, this, SLOT(updateFromFocusResetFolderSingleShot()));
if (m_resetCurrentNodeFolder) {
updateFromFocus(true);
m_resetCurrentNodeFolder = false;
}
});
} }
void ProjectTree::filesAboutToBeRemoved(FolderNode *, const QList<FileNode*> &list) void ProjectTree::filesAboutToBeRemoved(FolderNode *, const QList<FileNode*> &list)
@@ -306,12 +301,7 @@ void ProjectTree::filesAboutToBeRemoved(FolderNode *, const QList<FileNode*> &li
void ProjectTree::filesRemoved() void ProjectTree::filesRemoved()
{ {
QTimer::singleShot(0, [this]() { QTimer::singleShot(0, this, SLOT(updateFromFocusResetFileSingleShot()));
if (m_resetCurrentNodeFile) {
updateFromFocus(true);
m_resetCurrentNodeFile = false;
}
});
} }
void ProjectTree::aboutToRemoveProject(Project *project) void ProjectTree::aboutToRemoveProject(Project *project)
@@ -322,20 +312,12 @@ void ProjectTree::aboutToRemoveProject(Project *project)
void ProjectTree::projectRemoved() void ProjectTree::projectRemoved()
{ {
QTimer::singleShot(0, [this]() { QTimer::singleShot(0, this, SLOT(updateFromFocusResetProjectSingleShot()));
updateFromFocus(true);
m_resetCurrentNodeProject = false;
});
} }
void ProjectTree::nodesAdded() void ProjectTree::nodesAdded()
{ {
QTimer::singleShot(0, [this]() { QTimer::singleShot(0, this, SLOT(updateFromDocumentManagerSingleShot()));
if (Utils::anyOf(m_projectTreeWidgets, &ProjectTreeWidget::hasFocus))
return;
updateFromDocumentManager();
});
} }
void ProjectTree::updateExternalFileWarning() void ProjectTree::updateExternalFileWarning()
@@ -374,3 +356,32 @@ bool ProjectTree::hasFocus(ProjectTreeWidget *widget)
{ {
return widget && widget->focusWidget() && widget->focusWidget()->hasFocus(); return widget && widget->focusWidget() && widget->focusWidget()->hasFocus();
} }
void ProjectTree::updateFromFocusResetFileSingleShot()
{
if (m_resetCurrentNodeFile) {
updateFromFocus(true);
m_resetCurrentNodeFile = false;
}
}
void ProjectTree::updateFromFocusResetFolderSingleShot()
{
if (m_resetCurrentNodeFolder) {
updateFromFocus(true);
m_resetCurrentNodeFolder = false;
}
}
void ProjectTree::updateFromFocusResetProjectSingleShot()
{
updateFromFocus(true);
m_resetCurrentNodeProject = false;
}
void ProjectTree::updateFromDocumentManagerSingleShot()
{
if (Utils::anyOf(m_projectTreeWidgets, &ProjectTreeWidget::hasFocus))
return;
updateFromDocumentManager();
}

View File

@@ -90,7 +90,13 @@ private:
void updateExternalFileWarning(); void updateExternalFileWarning();
static bool hasFocus(Internal::ProjectTreeWidget *widget); static bool hasFocus(Internal::ProjectTreeWidget *widget);
private slots: // use lambdas for the following when minimum Qt is 5.4
void updateFromFocusResetFileSingleShot();
void updateFromFocusResetFolderSingleShot();
void updateFromFocusResetProjectSingleShot();
void updateFromDocumentManagerSingleShot();
private:
static ProjectTree *s_instance; static ProjectTree *s_instance;
QList<Internal::ProjectTreeWidget *> m_projectTreeWidgets; QList<Internal::ProjectTreeWidget *> m_projectTreeWidgets;
Node *m_currentNode; Node *m_currentNode;