diff --git a/src/plugins/qmldesigner/CMakeLists.txt b/src/plugins/qmldesigner/CMakeLists.txt index 8c4150bc8db..7bf60b155ad 100644 --- a/src/plugins/qmldesigner/CMakeLists.txt +++ b/src/plugins/qmldesigner/CMakeLists.txt @@ -104,7 +104,6 @@ add_qtc_plugin(QmlDesigner qmldesignericons.h qmldesignerplugin.cpp qmldesignerplugin.h qmldesignerexternaldependencies.cpp qmldesignerexternaldependencies.h - qmldesignerprojectmanager.cpp qmldesignerprojectmanager.h settingspage.cpp settingspage.h shortcutmanager.cpp shortcutmanager.h designermcumanager.cpp designermcumanager.h @@ -133,6 +132,16 @@ if (QTC_STATIC_BUILD AND TARGET QmlDesigner) extend_qtc_target(QmlDesigner PUBLIC_DEPENDS TextEditor) endif() +extend_qtc_plugin(QmlDesigner + PUBLIC_INCLUDES project + SOURCES_PREFIX project + SOURCES + qmldesignerprojectmanager.cpp + qmldesignerprojectmanager.h + projectstorageerrornotifier.cpp + projectstorageerrornotifier.h +) + extend_qtc_plugin(QmlDesigner PUBLIC_INCLUDES instances SOURCES_PREFIX instances diff --git a/src/plugins/qmldesigner/libs/designercore/CMakeLists.txt b/src/plugins/qmldesigner/libs/designercore/CMakeLists.txt index e3d8adb3697..81ce99bb191 100644 --- a/src/plugins/qmldesigner/libs/designercore/CMakeLists.txt +++ b/src/plugins/qmldesigner/libs/designercore/CMakeLists.txt @@ -399,7 +399,6 @@ extend_qtc_library(QmlDesignerCore projectstorageupdater.cpp projectstorageupdater.h projectstorage.cpp projectstorage.h projectstorageerrornotifierinterface.h - projectstorageerrornotifier.cpp projectstorageerrornotifier.h typeannotationreader.cpp typeannotationreader.h qmldocumentparserinterface.h qmltypesparserinterface.h diff --git a/src/plugins/qmldesigner/libs/designercore/projectstorage/projectstorage.h b/src/plugins/qmldesigner/libs/designercore/projectstorage/projectstorage.h index f7a0ad43af1..f11921330f3 100644 --- a/src/plugins/qmldesigner/libs/designercore/projectstorage/projectstorage.h +++ b/src/plugins/qmldesigner/libs/designercore/projectstorage/projectstorage.h @@ -4,7 +4,7 @@ #pragma once #include "commontypecache.h" -#include "projectstorageerrornotifier.h" +#include "projectstorageerrornotifierinterface.h" #include "projectstorageexceptions.h" #include "projectstorageinterface.h" #include "projectstoragetypes.h" diff --git a/src/plugins/qmldesigner/libs/designercore/projectstorage/projectstorageerrornotifier.cpp b/src/plugins/qmldesigner/libs/designercore/projectstorage/projectstorageerrornotifier.cpp deleted file mode 100644 index b722e90dd4f..00000000000 --- a/src/plugins/qmldesigner/libs/designercore/projectstorage/projectstorageerrornotifier.cpp +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (C) 2024 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 - -#include "projectstorageerrornotifier.h" - -#include "sourcepathstorage/sourcepathcache.h" - -namespace QmlDesigner { - -void ProjectStorageErrorNotifier::typeNameCannotBeResolved(Utils::SmallStringView typeName, - SourceId sourceId) -{ - qDebug() << "Missing type name: " << typeName - << " in file: " << m_pathCache.sourcePath(sourceId).toStringView(); -} - -void ProjectStorageErrorNotifier::missingDefaultProperty(Utils::SmallStringView typeName, - Utils::SmallStringView propertyName, - SourceId sourceId) - -{ - qDebug() << "Missing default property: " << propertyName << " in type: " << typeName - << " in file: " << m_pathCache.sourcePath(sourceId).toStringView(); -} - -void ProjectStorageErrorNotifier::propertyNameDoesNotExists(Utils::SmallStringView propertyName, - SourceId sourceId) -{ - qDebug() << "Missing property: " << propertyName - << " in file: " << m_pathCache.sourcePath(sourceId).toStringView(); -} - -void ProjectStorageErrorNotifier::qmlDocumentDoesNotExistsForQmldirEntry(Utils::SmallStringView typeName, - Storage::Version, - SourceId qmlDocumentSourceId, - SourceId qmldirSourceId) -{ - qDebug() << "Not existing Qml Document " - << m_pathCache.sourcePath(qmlDocumentSourceId).toStringView() << " for type " - << typeName << " in file: " << m_pathCache.sourcePath(qmldirSourceId).toStringView(); -} - -} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/libs/designercore/projectstorage/projectstorageupdater.h b/src/plugins/qmldesigner/libs/designercore/projectstorage/projectstorageupdater.h index 364f2c36f86..de042968930 100644 --- a/src/plugins/qmldesigner/libs/designercore/projectstorage/projectstorageupdater.h +++ b/src/plugins/qmldesigner/libs/designercore/projectstorage/projectstorageupdater.h @@ -4,7 +4,7 @@ #pragma once #include "filestatus.h" -#include "projectstorageerrornotifier.h" +#include "projectstorageerrornotifierinterface.h" #include "projectstorageids.h" #include "projectstoragepathwatchernotifierinterface.h" #include "projectstoragepathwatchertypes.h" diff --git a/src/plugins/qmldesigner/project/projectstorageerrornotifier.cpp b/src/plugins/qmldesigner/project/projectstorageerrornotifier.cpp new file mode 100644 index 00000000000..f6fefe2b297 --- /dev/null +++ b/src/plugins/qmldesigner/project/projectstorageerrornotifier.cpp @@ -0,0 +1,74 @@ +// Copyright (C) 2024 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 + +#include "projectstorageerrornotifier.h" + +#include + +#include +#include +#include + +#include + +namespace QmlDesigner { + +namespace { + +void logIssue(ProjectExplorer::Task::TaskType type, const QString &message, const SourcePath &sourcePath) +{ + const Utils::Id category = ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM; + + Utils::FilePath filePath = Utils::FilePath::fromUserInput(sourcePath.toQString()); + ProjectExplorer::Task task(type, message, filePath, -1, category); + ProjectExplorer::TaskHub::addTask(task); + ProjectExplorer::TaskHub::requestPopup(); +} +} // namespace + +void ProjectStorageErrorNotifier::typeNameCannotBeResolved(Utils::SmallStringView typeName, + SourceId sourceId) +{ + const QString typeNameString{typeName}; + + logIssue(ProjectExplorer::Task::Warning, + Tr::tr("Missing type %1 name.").arg(typeNameString), + m_pathCache.sourcePath(sourceId)); +} + +void ProjectStorageErrorNotifier::missingDefaultProperty(Utils::SmallStringView typeName, + Utils::SmallStringView propertyName, + SourceId sourceId) + +{ + const QString typeNameString{typeName}; + const QString propertyNameString{propertyName}; + + logIssue(ProjectExplorer::Task::Warning, + Tr::tr("Missing default property: %1 in type %2.").arg(propertyNameString).arg(typeNameString), + m_pathCache.sourcePath(sourceId)); +} + +void ProjectStorageErrorNotifier::propertyNameDoesNotExists(Utils::SmallStringView propertyName, + SourceId sourceId) +{ + const QString propertyNameString{propertyName}; + + logIssue(ProjectExplorer::Task::Warning, + Tr::tr("Missing property %1 in type %2.").arg(propertyNameString), + m_pathCache.sourcePath(sourceId)); +} + +void ProjectStorageErrorNotifier::qmlDocumentDoesNotExistsForQmldirEntry(Utils::SmallStringView typeName, + Storage::Version, + SourceId qmlDocumentSourceId, + SourceId qmldirSourceId) +{ + const QString typeNameString{typeName}; + const QString missingPath = m_pathCache.sourcePath(qmlDocumentSourceId).toQString(); + logIssue(ProjectExplorer::Task::Warning, + Tr::tr("Not existing Qml Document %1 for type %2.").arg(missingPath).arg(typeNameString), + m_pathCache.sourcePath(qmldirSourceId)); +} + +} // namespace QmlDesigner diff --git a/src/plugins/qmldesigner/libs/designercore/projectstorage/projectstorageerrornotifier.h b/src/plugins/qmldesigner/project/projectstorageerrornotifier.h similarity index 84% rename from src/plugins/qmldesigner/libs/designercore/projectstorage/projectstorageerrornotifier.h rename to src/plugins/qmldesigner/project/projectstorageerrornotifier.h index bea20ce394c..ae720bac693 100644 --- a/src/plugins/qmldesigner/libs/designercore/projectstorage/projectstorageerrornotifier.h +++ b/src/plugins/qmldesigner/project/projectstorageerrornotifier.h @@ -3,15 +3,15 @@ #pragma once -#include "projectstorageerrornotifierinterface.h" +#include + +#include #include -#include namespace QmlDesigner { -class QMLDESIGNERCORE_EXPORT ProjectStorageErrorNotifier final - : public ProjectStorageErrorNotifierInterface +class QMLDESIGNER_EXPORT ProjectStorageErrorNotifier final : public ProjectStorageErrorNotifierInterface { public: ProjectStorageErrorNotifier(PathCacheType &pathCache) diff --git a/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp b/src/plugins/qmldesigner/project/qmldesignerprojectmanager.cpp similarity index 99% rename from src/plugins/qmldesigner/qmldesignerprojectmanager.cpp rename to src/plugins/qmldesigner/project/qmldesignerprojectmanager.cpp index 13fa82b4c72..b9fbf8d3438 100644 --- a/src/plugins/qmldesigner/qmldesignerprojectmanager.cpp +++ b/src/plugins/qmldesigner/project/qmldesignerprojectmanager.cpp @@ -2,6 +2,7 @@ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 #include "qmldesignerprojectmanager.h" +#include "projectstorageerrornotifier.h" #include #include @@ -12,7 +13,6 @@ #include #include #include -#include #include #include #include diff --git a/src/plugins/qmldesigner/qmldesignerprojectmanager.h b/src/plugins/qmldesigner/project/qmldesignerprojectmanager.h similarity index 100% rename from src/plugins/qmldesigner/qmldesignerprojectmanager.h rename to src/plugins/qmldesigner/project/qmldesignerprojectmanager.h diff --git a/tests/unit/tests/testdesignercore/CMakeLists.txt b/tests/unit/tests/testdesignercore/CMakeLists.txt index 5cdb2935e6e..240c6b36390 100644 --- a/tests/unit/tests/testdesignercore/CMakeLists.txt +++ b/tests/unit/tests/testdesignercore/CMakeLists.txt @@ -351,7 +351,6 @@ extend_qtc_library(TestDesignerCore projectstorageupdater.cpp projectstorageupdater.h projectstorage.cpp projectstorage.h projectstorageerrornotifierinterface.h - projectstorageerrornotifier.cpp projectstorageerrornotifier.h typeannotationreader.cpp typeannotationreader.h qmldocumentparserinterface.h qmltypesparserinterface.h