diff options
Diffstat (limited to 'src/plugins/autotest/testcodeparser.h')
-rw-r--r-- | src/plugins/autotest/testcodeparser.h | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/src/plugins/autotest/testcodeparser.h b/src/plugins/autotest/testcodeparser.h index efd0d602e4a..2dd81d93d60 100644 --- a/src/plugins/autotest/testcodeparser.h +++ b/src/plugins/autotest/testcodeparser.h @@ -6,10 +6,10 @@ #include "itestparser.h" #include <qmljs/qmljsdocument.h> + +#include <utils/futuresynchronizer.h> #include <utils/id.h> -#include <QFutureWatcher> -#include <QMap> #include <QObject> #include <QTimer> @@ -18,9 +18,9 @@ class QThreadPool; QT_END_NAMESPACE namespace ProjectExplorer { class Project; } +namespace Tasking { class TaskTree; } namespace Autotest { - namespace Internal { class TestCodeParser : public QObject @@ -35,6 +35,7 @@ public: }; TestCodeParser(); + ~TestCodeParser(); void setState(State state); State state() const { return m_parserState; } @@ -48,11 +49,11 @@ public: signals: void aboutToPerformFullParse(); - void testParseResultReady(const TestParseResultPtr result); + void testParseResultReady(const TestParseResultPtr result); // TODO: pass list of results? void parsingStarted(); void parsingFinished(); void parsingFailed(); - void requestRemoval(const Utils::FilePath &filePath); + void requestRemoval(const QSet<Utils::FilePath> &filePaths); void requestRemoveAllFrameworkItems(); public: @@ -65,15 +66,15 @@ public: void aboutToShutdown(); private: - bool postponed(const Utils::FilePaths &fileList); - void scanForTests(const Utils::FilePaths &fileList = Utils::FilePaths(), + bool postponed(const QSet<Utils::FilePath> &fileList); + void scanForTests(const QSet<Utils::FilePath> &filePaths = {}, const QList<ITestParser *> &parsers = {}); // qml files must be handled slightly different void onDocumentUpdated(const Utils::FilePath &fileName, bool isQmlFile = false); void onTaskStarted(Utils::Id type); void onAllTasksFinished(Utils::Id type); - void onFinished(); + void onFinished(bool success); void onPartialParsingFinished(); void parsePostponedFiles(); void releaseParserInternals(); @@ -83,21 +84,21 @@ private: bool m_parsingHasFailed = false; bool m_codeModelParsing = false; - enum class UpdateType { - NoUpdate, - PartialUpdate, - FullUpdate - } m_postponedUpdateType = UpdateType::NoUpdate; + enum class UpdateType { NoUpdate, PartialUpdate, FullUpdate }; + UpdateType m_postponedUpdateType = UpdateType::NoUpdate; bool m_dirty = false; bool m_singleShotScheduled = false; bool m_reparseTimerTimedOut = false; QSet<Utils::FilePath> m_postponedFiles; State m_parserState = Idle; - QFutureWatcher<TestParseResultPtr> m_futureWatcher; QList<ITestParser *> m_testCodeParsers; // ptrs are still owned by TestFrameworkManager QTimer m_reparseTimer; QSet<ITestParser *> m_updateParsers; - QThreadPool *m_threadPool = nullptr; + Utils::FutureSynchronizer m_futureSynchronizer; + std::unique_ptr<Tasking::TaskTree> m_taskTree; + QHash<Utils::FilePath, int> m_qmlEditorRev; + + QElapsedTimer m_parsingTimer; }; } // namespace Internal |