From 3abe2a72eab8534ba4ce25a3bb1015139964a987 Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Thu, 21 Mar 2013 19:24:34 +0100 Subject: [PATCH] UicCodeModelSupport: Make the code not so eager to run uic processes Instead mostly postpone it until the contents are needed. Task-number: QTCREATORBUG-9149 Change-Id: I83167537e97fbd965531d990c8073409ff7b0b32 Reviewed-by: Eike Ziller --- .../cmakeuicodemodelsupport.h | 1 + src/plugins/cpptools/abstracteditorsupport.h | 4 +- .../cpptools/uicodecompletionsupport.cpp | 47 ++++++++++++++----- .../cpptools/uicodecompletionsupport.h | 9 ++-- .../qt4projectmanager/qtuicodemodelsupport.h | 1 + 5 files changed, 47 insertions(+), 15 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.h b/src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.h index 13188dd8180..0e2261a8023 100644 --- a/src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.h +++ b/src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.h @@ -42,6 +42,7 @@ class CMakeProject; class CMakeUiCodeModelSupport : public CppTools::UiCodeModelSupport { + Q_OBJECT public: CMakeUiCodeModelSupport(CPlusPlus::CppModelManagerInterface *modelmanager, CMakeProject *project, diff --git a/src/plugins/cpptools/abstracteditorsupport.h b/src/plugins/cpptools/abstracteditorsupport.h index e52eebf319e..858f893cb82 100644 --- a/src/plugins/cpptools/abstracteditorsupport.h +++ b/src/plugins/cpptools/abstracteditorsupport.h @@ -33,6 +33,7 @@ #include "cpptools_global.h" #include +#include namespace CPlusPlus { class CppModelManagerInterface; @@ -40,8 +41,9 @@ class CppModelManagerInterface; namespace CppTools { -class CPPTOOLS_EXPORT AbstractEditorSupport +class CPPTOOLS_EXPORT AbstractEditorSupport : public QObject { + Q_OBJECT public: explicit AbstractEditorSupport(CPlusPlus::CppModelManagerInterface *modelmanager); virtual ~AbstractEditorSupport(); diff --git a/src/plugins/cpptools/uicodecompletionsupport.cpp b/src/plugins/cpptools/uicodecompletionsupport.cpp index b9e2f7bdde5..54403f9a93f 100644 --- a/src/plugins/cpptools/uicodecompletionsupport.cpp +++ b/src/plugins/cpptools/uicodecompletionsupport.cpp @@ -44,11 +44,12 @@ UiCodeModelSupport::UiCodeModelSupport(CppModelManagerInterface *modelmanager, : AbstractEditorSupport(modelmanager), m_sourceName(source), m_fileName(uiHeaderFile), - m_initialized(false), - m_running(false) + m_state(BARE) { if (debug) qDebug()<<"ctor UiCodeModelSupport for"< m_waitingForStart; }; } // CppTools diff --git a/src/plugins/qt4projectmanager/qtuicodemodelsupport.h b/src/plugins/qt4projectmanager/qtuicodemodelsupport.h index 7816da191d2..d09e2f91265 100644 --- a/src/plugins/qt4projectmanager/qtuicodemodelsupport.h +++ b/src/plugins/qt4projectmanager/qtuicodemodelsupport.h @@ -42,6 +42,7 @@ namespace Internal { class Qt4UiCodeModelSupport : public CppTools::UiCodeModelSupport { + Q_OBJECT public: Qt4UiCodeModelSupport(CPlusPlus::CppModelManagerInterface *modelmanager, Qt4Project *project,