Utils/all: Move mime constants into a central place

They are reasonably standardized, and generally usable cross-plugin,
so this can help to avoid a few cross-plugin compiletime dependencies.

Change-Id: Icb2b010c3e12dee69df54ab16f6f8e90d9cffba6
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
hjk
2023-10-19 17:17:37 +02:00
parent fc7c11fb65
commit 6685f0255d
68 changed files with 396 additions and 355 deletions

View File

@@ -57,6 +57,7 @@
#include <utils/infolabel.h>
#include <utils/itemviews.h>
#include <utils/layoutbuilder.h>
#include <utils/mimeconstants.h>
#include <utils/progressindicator.h>
#include <utils/qtcassert.h>
#include <utils/stringutils.h>
@@ -1875,7 +1876,7 @@ CMakeBuildConfigurationFactory::CMakeBuildConfigurationFactory()
registerBuildConfiguration<CMakeBuildConfiguration>(Constants::CMAKE_BUILDCONFIGURATION_ID);
setSupportedProjectType(CMakeProjectManager::Constants::CMAKE_PROJECT_ID);
setSupportedProjectMimeTypeName(Constants::CMAKE_PROJECT_MIMETYPE);
setSupportedProjectMimeTypeName(Utils::Constants::CMAKE_PROJECT_MIMETYPE);
setBuildGenerator([](const Kit *k, const FilePath &projectPath, bool forSetup) {
QList<BuildInfo> result;

View File

@@ -23,8 +23,6 @@
#include <coreplugin/messagemanager.h>
#include <coreplugin/progressmanager/progressmanager.h>
#include <cppeditor/cppeditorconstants.h>
#include <projectexplorer/extracompiler.h>
#include <projectexplorer/kitaspects.h>
#include <projectexplorer/projectexplorer.h>
@@ -38,15 +36,13 @@
#include <qmljs/qmljsmodelmanagerinterface.h>
#include <qmljstools/qmljstoolsconstants.h>
#include <qtsupport/qtcppkitinfo.h>
#include <qtsupport/qtsupportconstants.h>
#include <utils/algorithm.h>
#include <utils/checkablemessagebox.h>
#include <utils/fileutils.h>
#include <utils/macroexpander.h>
#include <utils/mimeconstants.h>
#include <utils/process.h>
#include <utils/qtcassert.h>
@@ -100,8 +96,8 @@ CMakeBuildSystem::CMakeBuildSystem(CMakeBuildConfiguration *bc)
if (type == FileType::Unknown) {
if (mimeType.isValid()) {
const QString mt = mimeType.name();
if (mt == CMakeProjectManager::Constants::CMAKE_PROJECT_MIMETYPE
|| mt == CMakeProjectManager::Constants::CMAKE_MIMETYPE)
if (mt == Utils::Constants::CMAKE_PROJECT_MIMETYPE
|| mt == Utils::Constants::CMAKE_MIMETYPE)
type = FileType::Project;
}
}
@@ -239,17 +235,18 @@ static QString newFilesForFunction(const std::string &cmakeFunction,
FilePaths qmlFiles;
for (const auto &file : filePaths) {
using namespace Utils::Constants;
const auto mimeType = Utils::mimeTypeForFile(file);
if (mimeType.matchesName(CppEditor::Constants::CPP_SOURCE_MIMETYPE)
|| mimeType.matchesName(CppEditor::Constants::CPP_HEADER_MIMETYPE)
|| mimeType.matchesName(CppEditor::Constants::OBJECTIVE_C_SOURCE_MIMETYPE)
|| mimeType.matchesName(CppEditor::Constants::OBJECTIVE_CPP_SOURCE_MIMETYPE)) {
if (mimeType.matchesName(CPP_SOURCE_MIMETYPE)
|| mimeType.matchesName(CPP_HEADER_MIMETYPE)
|| mimeType.matchesName(OBJECTIVE_C_SOURCE_MIMETYPE)
|| mimeType.matchesName(OBJECTIVE_CPP_SOURCE_MIMETYPE)) {
sourceFiles << file;
} else if (mimeType.matchesName(QmlJSTools::Constants::QML_MIMETYPE)
|| mimeType.matchesName(QmlJSTools::Constants::QMLUI_MIMETYPE)
|| mimeType.matchesName(QmlJSTools::Constants::QMLPROJECT_MIMETYPE)
|| mimeType.matchesName(QmlJSTools::Constants::JS_MIMETYPE)
|| mimeType.matchesName(QmlJSTools::Constants::JSON_MIMETYPE)) {
} else if (mimeType.matchesName(QML_MIMETYPE)
|| mimeType.matchesName(QMLUI_MIMETYPE)
|| mimeType.matchesName(QMLPROJECT_MIMETYPE)
|| mimeType.matchesName(JS_MIMETYPE)
|| mimeType.matchesName(JSON_MIMETYPE)) {
qmlFiles << file;
} else {
resourceFiles << file;

View File

@@ -15,15 +15,19 @@
#include <coreplugin/actionmanager/actioncontainer.h>
#include <coreplugin/actionmanager/actionmanager.h>
#include <coreplugin/coreplugintr.h>
#include <projectexplorer/buildconfiguration.h>
#include <projectexplorer/buildsystem.h>
#include <projectexplorer/project.h>
#include <projectexplorer/projectmanager.h>
#include <projectexplorer/projecttree.h>
#include <projectexplorer/target.h>
#include <texteditor/basehoverhandler.h>
#include <texteditor/textdocument.h>
#include <texteditor/texteditoractionhandler.h>
#include <utils/mimeconstants.h>
#include <utils/textutils.h>
#include <utils/tooltip/tooltip.h>
@@ -411,7 +415,7 @@ static TextDocument *createCMakeDocument()
{
auto doc = new TextDocument;
doc->setId(Constants::CMAKE_EDITOR_ID);
doc->setMimeType(QLatin1String(Constants::CMAKE_MIMETYPE));
doc->setMimeType(Utils::Constants::CMAKE_MIMETYPE);
return doc;
}
@@ -505,8 +509,8 @@ CMakeEditorFactory::CMakeEditorFactory()
{
setId(Constants::CMAKE_EDITOR_ID);
setDisplayName(::Core::Tr::tr("CMake Editor"));
addMimeType(Constants::CMAKE_MIMETYPE);
addMimeType(Constants::CMAKE_PROJECT_MIMETYPE);
addMimeType(Utils::Constants::CMAKE_MIMETYPE);
addMimeType(Utils::Constants::CMAKE_PROJECT_MIMETYPE);
setEditorCreator([] { return new CMakeEditor; });
setEditorWidgetCreator([] { return new CMakeEditorWidget; });

View File

@@ -17,8 +17,11 @@
#include <projectexplorer/projectnodes.h>
#include <projectexplorer/target.h>
#include <projectexplorer/taskhub.h>
#include <qtsupport/qtkitaspect.h>
#include <utils/mimeconstants.h>
using namespace ProjectExplorer;
using namespace Utils;
using namespace CMakeProjectManager::Internal;
@@ -29,7 +32,7 @@ namespace CMakeProjectManager {
\class CMakeProject
*/
CMakeProject::CMakeProject(const FilePath &fileName)
: Project(Constants::CMAKE_MIMETYPE, fileName)
: Project(Utils::Constants::CMAKE_MIMETYPE, fileName)
{
setId(CMakeProjectManager::Constants::CMAKE_PROJECT_ID);
setProjectLanguages(Core::Context(ProjectExplorer::Constants::CXX_LANGUAGE_ID));

View File

@@ -6,8 +6,6 @@
namespace CMakeProjectManager {
namespace Constants {
const char CMAKE_MIMETYPE[] = "text/x-cmake";
const char CMAKE_PROJECT_MIMETYPE[] = "text/x-cmake-project";
const char CMAKE_EDITOR_ID[] = "CMakeProject.CMakeEditor";
const char RUN_CMAKE[] = "CMakeProject.RunCMake";
const char RUN_CMAKE_PROFILER[] = "CMakeProject.RunCMakeProfiler";

View File

@@ -28,6 +28,7 @@
#include <texteditor/formattexteditor.h>
#include <texteditor/snippets/snippetprovider.h>
#include <utils/mimeconstants.h>
#include <utils/fsengine/fileiconprovider.h>
#include <utils/parameteraction.h>
@@ -82,7 +83,7 @@ void CMakeProjectPlugin::initialize()
TextEditor::SnippetProvider::registerGroup(Constants::CMAKE_SNIPPETS_GROUP_ID,
Tr::tr("CMake", "SnippetProvider"));
ProjectManager::registerProjectType<CMakeProject>(Constants::CMAKE_PROJECT_MIMETYPE);
ProjectManager::registerProjectType<CMakeProject>(Utils::Constants::CMAKE_PROJECT_MIMETYPE);
//register actions
Command *command = ActionManager::registerAction(&d->buildTargetContextAction,

View File

@@ -16,6 +16,7 @@
#include <utils/algorithm.h>
#include <utils/icon.h>
#include <utils/mimeconstants.h>
#include <utils/mimeutils.h>
#include <utils/process.h>
#include <utils/qtcassert.h>
@@ -68,8 +69,8 @@ static CMakeFileResult extractCMakeFilesData(const QFuture<void> &cancelFuture,
absolute.path = sfn;
const auto mimeType = Utils::mimeTypeForFile(info.path);
if (mimeType.matchesName(Constants::CMAKE_MIMETYPE)
|| mimeType.matchesName(Constants::CMAKE_PROJECT_MIMETYPE)) {
if (mimeType.matchesName(Utils::Constants::CMAKE_MIMETYPE)
|| mimeType.matchesName(Utils::Constants::CMAKE_PROJECT_MIMETYPE)) {
expected_str<QByteArray> fileContent = sfn.fileContents();
std::string errorString;
if (fileContent) {
@@ -445,9 +446,9 @@ static RawProjectParts generateRawProjectParts(const QFuture<void> &cancelFuture
const QString headerMimeType = [&]() -> QString {
if (ci.language == "C") {
return CppEditor::Constants::C_HEADER_MIMETYPE;
return Utils::Constants::C_HEADER_MIMETYPE;
} else if (ci.language == "CXX") {
return CppEditor::Constants::CPP_HEADER_MIMETYPE;
return Utils::Constants::CPP_HEADER_MIMETYPE;
}
return {};
}();