aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/autotest/testcodeparser.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/autotest/testcodeparser.h')
-rw-r--r--src/plugins/autotest/testcodeparser.h31
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