Decouple code parser and model

Additionally some minor refactorings to increase readability.

Change-Id: I0be120fcedcf31dbb0116d84f0d3c23cf95e7d91
Reviewed-by: Andre Poenitz <andre.poenitz@theqtcompany.com>
This commit is contained in:
Christian Stenger
2015-02-05 16:07:45 +01:00
parent 61c50e4aa3
commit 2ce99680b2
7 changed files with 387 additions and 367 deletions

View File

@@ -19,6 +19,9 @@
#ifndef TESTCODEPARSER_H
#define TESTCODEPARSER_H
#include "testtreeitem.h"
#include "testtreemodel.h"
#include <cplusplus/CppDocument.h>
#include <qmljs/qmljsdocument.h>
@@ -35,8 +38,6 @@ namespace Internal {
struct TestCodeLocationAndType;
class TestInfo;
class TestTreeModel;
class TestTreeItem;
class TestCodeParser : public QObject
{
@@ -46,6 +47,14 @@ public:
virtual ~TestCodeParser();
signals:
void cacheCleared();
void testItemCreated(const TestTreeItem &item, TestTreeModel::Type type);
void testItemsCreated(const QList<TestTreeItem> &itemList, TestTreeModel::Type type);
void testItemModified(TestTreeItem tItem, TestTreeModel::Type type, const QString &file);
void testItemsRemoved(const QString &filePath, TestTreeModel::Type type);
void unnamedQuickTestsUpdated(const QString &filePath, const QString &mainFile,
const QMap<QString, TestCodeLocationAndType> &functions);
void unnamedQuickTestsRemoved(const QString &filePath);
public slots:
void emitUpdateTestTree();
@@ -63,16 +72,15 @@ private:
void clearMaps();
void removeTestsIfNecessary(const QString &fileName);
void removeTestsIfNecessaryByProFile(const QString &proFile);
void removeUnnamedQuickTests(const QString &fileName, const QStringList &testFunctions);
void recreateUnnamedQuickTest(const QMap<QString, TestCodeLocationAndType> &testFunctions,
const QString &mainFile, TestTreeItem *rootItem);
void onTaskStarted(Core::Id type);
void onAllTasksFinished(Core::Id type);
void updateModelAndCppDocMap(CPlusPlus::Document::Ptr document, const QString &declFileName,
TestTreeItem *testItem, TestTreeItem *rootItem);
void updateModelAndQuickDocMap(QmlJS::Document::Ptr qmlDoc, const QString &currentQmlJSFile,
const QString &referencingFileName,
TestTreeItem *testItem, TestTreeItem *rootItem);
void updateUnnamedQuickTests(const QString &fileName, const QString &mainFile,
const QMap<QString, TestCodeLocationAndType> &functions);
void updateModelAndCppDocMap(CPlusPlus::Document::Ptr document,
const QString &declaringFile, TestTreeItem &testItem);
void updateModelAndQuickDocMap(QmlJS::Document::Ptr document,
const QString &referencingFile, TestTreeItem &testItem);
TestTreeModel *m_model;
QMap<QString, TestInfo> m_cppDocMap;