ModelEditor: Minor refactoring of ComponentViewController

Change-Id: I6c54c694e77b377b9c0d0d2a4abe41d6976ede09
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
Jochen Becher
2018-10-09 21:12:27 +02:00
parent b0fb6537f9
commit fc6f9e07cb
4 changed files with 20 additions and 17 deletions

View File

@@ -344,7 +344,7 @@ void ComponentViewController::doCreateComponentModel(const QString &filePath, qm
case CppTools::ProjectFile::CXXHeader:
case CppTools::ProjectFile::ObjCHeader:
case CppTools::ProjectFile::ObjCXXHeader:
isSource = scanHeaders && !isProxyHeader(file);
isSource = scanHeaders && !d->pxnodeUtilities->isProxyHeader(file);
break;
case CppTools::ProjectFile::Unclassified:
case CppTools::ProjectFile::Unsupported:
@@ -374,20 +374,5 @@ void ComponentViewController::doCreateComponentModel(const QString &filePath, qm
}
}
bool ComponentViewController::isProxyHeader(const QString &file) const
{
CppTools::CppModelManager *cppModelManager = CppTools::CppModelManager::instance();
CPlusPlus::Snapshot snapshot = cppModelManager->snapshot();
CPlusPlus::Document::Ptr document = snapshot.document(file);
if (document) {
QList<CPlusPlus::Document::Include> includes = document->resolvedIncludes();
if (includes.count() != 1)
return false;
return QFileInfo(includes.at(0).resolvedFileName()).fileName() == QFileInfo(file).fileName();
}
return false;
}
} // namespace Internal
} // namespace ModelEditor

View File

@@ -64,7 +64,6 @@ public:
private:
void doCreateComponentModel(const QString &filePath, qmt::MDiagram *diagram,
const QString &anchorFolder, bool scanHeaders);
bool isProxyHeader(const QString &file) const;
ComponentViewControllerPrivate *d;
};

View File

@@ -30,6 +30,9 @@
#include "qmt/tasks/diagramscenecontroller.h"
#include "qmt/model_controller/modelcontroller.h"
#include <cpptools/cppmodelmanager.h>
#include <cplusplus/CppDocument.h>
#include <projectexplorer/projectnodes.h>
#include <utils/qtcassert.h>
@@ -234,5 +237,20 @@ qmt::MObject *PxNodeUtilities::findSameObject(const QStringList &relativeElement
return nullptr;
}
bool PxNodeUtilities::isProxyHeader(const QString &file) const
{
CppTools::CppModelManager *cppModelManager = CppTools::CppModelManager::instance();
CPlusPlus::Snapshot snapshot = cppModelManager->snapshot();
CPlusPlus::Document::Ptr document = snapshot.document(file);
if (document) {
QList<CPlusPlus::Document::Include> includes = document->resolvedIncludes();
if (includes.count() != 1)
return false;
return QFileInfo(includes.at(0).resolvedFileName()).fileName() == QFileInfo(file).fileName();
}
return false;
}
} // namespace Internal
} // namespace ModelEditor

View File

@@ -56,6 +56,7 @@ public:
const QStringList &relativeElements);
qmt::MObject *findSameObject(const QStringList &relativeElements,
const qmt::MObject *object);
bool isProxyHeader(const QString &file) const;
private:
PxNodeUtilitiesPrivate *d;