diff --git a/cmake/QtCreatorAPI.cmake b/cmake/QtCreatorAPI.cmake index 6da6bdbcd15..6787e4bd886 100644 --- a/cmake/QtCreatorAPI.cmake +++ b/cmake/QtCreatorAPI.cmake @@ -400,7 +400,7 @@ function(add_qtc_plugin target_name) get_property(_v TARGET "${i}" PROPERTY _arg_VERSION) endif() string(APPEND _arg_DEPENDENCY_STRING - " { \"Name\" : \"${i}\", \"Version\" : \"${_v}\" }" + " { \"Id\" : \"${i}\", \"Version\" : \"${_v}\" }" ) endforeach(i) foreach(i IN LISTS _arg_PLUGIN_RECOMMENDS) @@ -411,7 +411,7 @@ function(add_qtc_plugin target_name) get_property(_v TARGET "${i}" PROPERTY _arg_VERSION) endif() string(APPEND _arg_DEPENDENCY_STRING - " { \"Name\" : \"${i}\", \"Version\" : \"${_v}\", \"Type\" : \"optional\" }" + " { \"Id\" : \"${i}\", \"Version\" : \"${_v}\", \"Type\" : \"optional\" }" ) endforeach(i) foreach(i IN LISTS _arg_PLUGIN_TEST_DEPENDS) @@ -420,7 +420,7 @@ function(add_qtc_plugin target_name) endif() set(_v ${IDE_VERSION}) string(APPEND _arg_DEPENDENCY_STRING - " { \"Name\" : \"${i}\", \"Version\" : \"${_v}\", \"Type\" : \"test\" }" + " { \"Id\" : \"${i}\", \"Version\" : \"${_v}\", \"Type\" : \"test\" }" ) endforeach(i) list(LENGTH _arg_PLUGIN_MANUAL_DEPENDS manualdep_len) @@ -430,11 +430,11 @@ function(add_qtc_plugin target_name) foreach (i RANGE 0 ${manualdep_maxindex} 3) math(EXPR dep_version_i "${i} + 1") math(EXPR dep_type_i "${i} + 2") - list(GET _arg_PLUGIN_MANUAL_DEPENDS ${i} dep_name) + list(GET _arg_PLUGIN_MANUAL_DEPENDS ${i} dep_id) list(GET _arg_PLUGIN_MANUAL_DEPENDS ${dep_version_i} dep_version) list(GET _arg_PLUGIN_MANUAL_DEPENDS ${dep_type_i} dep_type) string(APPEND _arg_DEPENDENCY_STRING - " { \"Name\" : \"${dep_name}\", \"Version\" : \"${dep_version}\", \"Type\" : \"${dep_type}\" }" + " { \"Id\" : \"${dep_id}\", \"Version\" : \"${dep_version}\", \"Type\" : \"${dep_type}\" }" ) endforeach() endif() diff --git a/doc/qtcreator/src/howto/creator-only/creator-cli.qdoc b/doc/qtcreator/src/howto/creator-only/creator-cli.qdoc index a0e9129c6b9..49d4958149b 100644 --- a/doc/qtcreator/src/howto/creator-only/creator-cli.qdoc +++ b/doc/qtcreator/src/howto/creator-only/creator-cli.qdoc @@ -59,7 +59,7 @@ \li Disable the startup check for a previously crashed \QC instance. \row - \li -load + \li -load \li Enable the specified plugin and all plugins that it depends on. You can combine \c -load and \c -noload options and specify both options multiple times to enable and disable several plugins. @@ -70,7 +70,7 @@ \li Enable all plugins. \row - \li -noload + \li -noload \li Disable the specified plugin and all plugins that depend on it. \row diff --git a/doc/qtcreatordev/examples/exampleplugin/Example.json.in b/doc/qtcreatordev/examples/exampleplugin/Example.json.in index b6867bb5167..e2149098d68 100644 --- a/doc/qtcreatordev/examples/exampleplugin/Example.json.in +++ b/doc/qtcreatordev/examples/exampleplugin/Example.json.in @@ -1,10 +1,12 @@ { //! [1] + "Id" : "example", "Name" : "Example", "Version" : "0.0.1", "CompatVersion" : "0.0.1", //! [1] //! [2] + "VendorId" : "mycompany", "Vendor" : "MyCompany", "Copyright" : "(C) MyCompany", "License" : "Put short license information here", diff --git a/doc/qtcreatordev/src/first-plugin.qdoc b/doc/qtcreatordev/src/first-plugin.qdoc index 0e45e17759f..4f483f3cd74 100644 --- a/doc/qtcreatordev/src/first-plugin.qdoc +++ b/doc/qtcreatordev/src/first-plugin.qdoc @@ -255,8 +255,8 @@ \snippet exampleplugin/Example.json.in 3 The \c {IDE_PLUGIN_DEPENDENCIES} variable is automatically replaced by the - dependency information in \c {QTC_PLUGIN_DEPENDS} and - \c {QTC_PLUGIN_RECOMMENDS} from your plugin's \c {.pro} file. + dependency information in \c {PLUGIN_DEPENDS} amd \c {PLUGIN_RECOMMENDS} + from your plugin's \c {add_qtc_plugin()} call in its \c {CMakeLists.txt} file. \section1 Plugin Class diff --git a/doc/qtcreatordev/src/plugin-metadata.qdoc b/doc/qtcreatordev/src/plugin-metadata.qdoc index 9963aae4e36..d91bf52c4f2 100644 --- a/doc/qtcreatordev/src/plugin-metadata.qdoc +++ b/doc/qtcreatordev/src/plugin-metadata.qdoc @@ -17,7 +17,7 @@ \section2 Main Keys The main keys that are used to identify your your plugin and define default loading behavior, - consist of the mandatory keys \c Name and \c Version, and the optional keys \c CompatVersion, + consist of the mandatory keys \c Id and \c Version, and the optional keys \c CompatVersion, \c Experimental, \c DisabledByDefault, \c Required and \c Platform. \table \header @@ -25,10 +25,14 @@ \li Value Type \li Meaning \row - \li Name + \li Id \li String \li This is used as an identifier for the plugin and can e.g. be referenced in other plugin's dependencies. + \row + \li Name + \li String + \li This is used as the display name of your plugin in the UI. \row \li Version \li String @@ -146,36 +150,37 @@ these other plugins are loaded before this plugin. Dependencies are declared with the key \c Dependency, which contains an array of JSON objects - with required keys \c Name and \c Version, and optional key \c Type. + with required keys \c Id and \c Version, and optional key \c Type. The following formulas illustrate how the dependency information is matched. - In the formulas the name of the required plugin (as defined in the \c Name of the dependency - object) is denoted as \c DependencyName + In the formulas the Id of the required plugin (as defined in the \c Id of the dependency + object) is denoted as \c DependencyId and the required version of the plugin is denoted as \c DependencyVersion. - A plugin with given \c Name, \c Version and \c CompatVersion + A plugin with given \c Id, \c Version and \c CompatVersion as defined in the plugin meta data matches the dependency if \list - \li its \c Name matches \c DependencyName, and + \li its \c Id matches \c DependencyId, and \li \c {CompatVersion <= DependencyVersion <= Version}. \endlist For example a dependency \code { - "Name" : "SomeOtherPlugin", + "Id" : "someotherplugin", "Version" : "2.3.0_2" } \endcode would be matched by a plugin with \code { + "Id" : "someotherplugin", "Name" : "SomeOtherPlugin", "Version" : "3.1.0", "CompatVersion" : "2.2.0", ... } \endcode - since the name matches, and the version \c{2.3.0_2} given in the dependency tag + since the id matches, and the version \c{2.3.0_2} given in the dependency tag lies in the range of \c{2.2.0} and \c{3.1.0}. \table @@ -196,9 +201,9 @@ \li Value Type \li Meaning \row - \li Name + \li Id \li String - \li The name of the plugin, on which this plugin relies. + \li The Id of the plugin, on which this plugin relies. \row \li Version \li String @@ -298,9 +303,11 @@ \code { + "Id" : "test", "Name" : "Test", "Version" : "1.0.1", "CompatVersion" : "1.0.0", + "VendorId" : "mycompany", "Vendor" : "My Company", "Copyright" : "(C) 2016 MyCompany", "License" : [ @@ -323,8 +330,8 @@ } ], "Dependencies" : [ - { "Name" : "SomeOtherPlugin", "Version" : "2.3.0_2" }, - { "Name" : "EvenOther", "Version" : "1.0.0" } + { "Id" : "someotherplugin", "Version" : "2.3.0_2" }, + { "Id" : "evenother", "Version" : "1.0.0" } ] } \endcode diff --git a/qbs/modules/pluginjson/pluginjson.qbs b/qbs/modules/pluginjson/pluginjson.qbs index 43d5e7f0012..fd296325877 100644 --- a/qbs/modules/pluginjson/pluginjson.qbs +++ b/qbs/modules/pluginjson/pluginjson.qbs @@ -60,7 +60,7 @@ Module { var depdeps = deps[d].dependencies; for (var dd in depdeps) { if (depdeps[dd].name == 'pluginjson') { - cmd.plugin_depends.push(deps[d].name); + cmd.plugin_depends.push(deps[d].id); break; } } @@ -87,13 +87,13 @@ Module { vars['QTC_PLUGIN_REVISION'] = product.vcs ? (product.vcs.repoState || "") : ""; var deplist = []; for (i in plugin_depends) { - deplist.push(" { \"Name\" : \"" + plugin_depends[i] + "\", \"Version\" : \"" + qtcVersion + "\" }"); + deplist.push(" { \"Id\" : \"" + plugin_depends[i] + "\", \"Version\" : \"" + qtcVersion + "\" }"); } for (i in plugin_recommends) { - deplist.push(" { \"Name\" : \"" + plugin_recommends[i] + "\", \"Version\" : \"" + qtcVersion + "\", \"Type\" : \"optional\" }"); + deplist.push(" { \"Id\" : \"" + plugin_recommends[i] + "\", \"Version\" : \"" + qtcVersion + "\", \"Type\" : \"optional\" }"); } for (i in plugin_test_depends) { - deplist.push(" { \"Name\" : \"" + plugin_test_depends[i] + "\", \"Version\" : \"" + qtcVersion + "\", \"Type\" : \"test\" }"); + deplist.push(" { \"Id\" : \"" + plugin_test_depends[i] + "\", \"Version\" : \"" + qtcVersion + "\", \"Type\" : \"test\" }"); } deplist = deplist.join(",\n") vars['IDE_PLUGIN_DEPENDENCIES'] = "\"Dependencies\" : [\n" + deplist + "\n ]"; @@ -109,4 +109,3 @@ Module { } } } - diff --git a/share/qtcreator/lua-plugins/ai_asistant/ai_asistant.lua b/share/qtcreator/lua-plugins/ai_asistant/ai_asistant.lua index d86b1280e46..edd73a325ef 100644 --- a/share/qtcreator/lua-plugins/ai_asistant/ai_asistant.lua +++ b/share/qtcreator/lua-plugins/ai_asistant/ai_asistant.lua @@ -1,9 +1,11 @@ -- Copyright (C) 2024 The Qt Company Ltd. -- SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 return { - Name = "AIAssistant", + Id = "aiassistant", + Name = "Qt AI Assistant", Version = "1.0.0", CompatVersion = "1.0.0", + VendorId = "theqtcompany", Vendor = "The Qt Company", Category = "Language Client", Description = "Qt AI Assistant", @@ -17,8 +19,8 @@ You also need one of the following valid Qt licenses: Qt for Application Develop You will need access to a LLM for the suggestions. You can use a subscription to a commercial, cloud-hosted LLM, a privately hosted or on-premise LLM, or a Small Language Model running locally on your computer. ]], Dependencies = { - { Name = "Lua", Version = "14.0.0" }, - { Name = "LuaLanguageClient", Version = "14.0.0" } + { Id = "lua", Version = "14.0.0" }, + { Id = "lualanguageclient", Version = "14.0.0" } }, hooks = { editors = { diff --git a/share/qtcreator/lua-plugins/luals/luals.lua b/share/qtcreator/lua-plugins/luals/luals.lua index 5a68388dd06..ed41112748a 100644 --- a/share/qtcreator/lua-plugins/luals/luals.lua +++ b/share/qtcreator/lua-plugins/luals/luals.lua @@ -1,9 +1,11 @@ -- Copyright (C) 2024 The Qt Company Ltd. -- SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 return { - Name = "LuaLanguageServer", + Id = "lualanguageserver", + Name = "Lua Language Server", Version = "1.0.0", CompatVersion = "1.0.0", + VendorId = "theqtcompany", Vendor = "The Qt Company", Category = "Language Client", Description = "The Lua Language Server", @@ -14,8 +16,8 @@ This plugin provides the Lua Language Server. It will try to install it if it is not found. ]], Dependencies = { - { Name = "Lua", Version = "14.0.0" }, - { Name = "LuaLanguageClient", Version = "14.0.0" } + { Id = "lua", Version = "14.0.0" }, + { Id = "lualanguageclient", Version = "14.0.0" } }, setup = function() require 'init'.setup() diff --git a/share/qtcreator/lua-plugins/luatests/luatests.lua b/share/qtcreator/lua-plugins/luatests/luatests.lua index e85f0d95278..7cf36c79bc5 100644 --- a/share/qtcreator/lua-plugins/luatests/luatests.lua +++ b/share/qtcreator/lua-plugins/luatests/luatests.lua @@ -1,9 +1,11 @@ -- Copyright (C) 2024 The Qt Company Ltd. -- SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 return { - Name = "LuaTests", + Id = "luatests", + Name = "Lua Tests", Version = "1.0.0", CompatVersion = "1.0.0", + VendorId = "theqtcompany", Vendor = "The Qt Company", Category = "Tests", DisabledByDefault = true, @@ -13,7 +15,7 @@ return { It has tests for (almost) all functionality exposed by the API. ]], Dependencies = { - { Name = "Lua", Version = "14.0.0" } + { Id = "lua", Version = "14.0.0" } }, setup = function() require 'tests'.setup() end, printToOutputPane = true, diff --git a/share/qtcreator/lua-plugins/rustls/rustls.lua b/share/qtcreator/lua-plugins/rustls/rustls.lua index 7e0056de25f..5465b289bd2 100644 --- a/share/qtcreator/lua-plugins/rustls/rustls.lua +++ b/share/qtcreator/lua-plugins/rustls/rustls.lua @@ -1,9 +1,11 @@ -- Copyright (C) 2024 The Qt Company Ltd. -- SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 return { - Name = "RustLanguageServer", + Id = "rustlanguageserver", + Name = "Rust Language Server", Version = "1.0.0", CompatVersion = "1.0.0", + VendorId = "theqtcompany", Vendor = "The Qt Company", Category = "Language Client", Description = "The Rust Language Server", @@ -14,8 +16,8 @@ This plugin provides the Rust Language Server. It will try to install it if it is not found. ]], Dependencies = { - { Name = "Lua", Version = "14.0.0" }, - { Name = "LuaLanguageClient", Version = "14.0.0" } + { Id = "lua", Version = "14.0.0" }, + { Id = "lualanguageclient", Version = "14.0.0" } }, setup = function() require 'init'.setup() diff --git a/share/qtcreator/lua-plugins/tellajoke/tellajoke.lua b/share/qtcreator/lua-plugins/tellajoke/tellajoke.lua index 4b0d020d175..357eb9f4a6b 100644 --- a/share/qtcreator/lua-plugins/tellajoke/tellajoke.lua +++ b/share/qtcreator/lua-plugins/tellajoke/tellajoke.lua @@ -41,14 +41,16 @@ local function setup() end return { + Id = "tellajoke", Name = "Tell A Joke", Version = "1.0.0", CompatVersion = "1.0.0", + VendorId = "theqtcompany", Vendor = "The Qt Company", Category = "Fun", Description = "This plugin adds an action that tells a joke.", Dependencies = { - { Name = "Lua", Version = "14.0.0" }, + { Id = "lua", Version = "14.0.0" }, }, setup = setup, } --[[@as QtcPlugin]] diff --git a/src/libs/extensionsystem/optionsparser.cpp b/src/libs/extensionsystem/optionsparser.cpp index 21dfba16ecb..711b2d0f66d 100644 --- a/src/libs/extensionsystem/optionsparser.cpp +++ b/src/libs/extensionsystem/optionsparser.cpp @@ -109,18 +109,18 @@ bool OptionsParser::checkForTestOptions() }); } else { QStringList args = m_currentArg.split(QLatin1Char(',')); - const QString pluginName = args.takeFirst(); - if (PluginSpec *spec = m_pmPrivate->pluginByName(pluginName)) { + const QString pluginId = args.takeFirst(); + if (PluginSpec *spec = m_pmPrivate->pluginById(pluginId.toLower())) { if (m_pmPrivate->containsTestSpec(spec)) { if (m_errorString) - *m_errorString = Tr::tr("The plugin \"%1\" is specified twice for testing.").arg(pluginName); + *m_errorString = Tr::tr("The plugin \"%1\" is specified twice for testing.").arg(pluginId); m_hasError = true; } else { m_pmPrivate->testSpecs.emplace_back(spec, args); } } else { if (m_errorString) - *m_errorString = Tr::tr("The plugin \"%1\" does not exist.").arg(pluginName); + *m_errorString = Tr::tr("The plugin \"%1\" does not exist.").arg(pluginId); m_hasError = true; } } @@ -128,7 +128,7 @@ bool OptionsParser::checkForTestOptions() return true; } else if (m_currentArg == QLatin1String(NOTEST_OPTION)) { if (nextToken(RequiredToken)) { - if (PluginSpec *spec = m_pmPrivate->pluginByName(m_currentArg)) { + if (PluginSpec *spec = m_pmPrivate->pluginById(m_currentArg.toLower())) { if (!m_pmPrivate->containsTestSpec(spec)) { if (m_errorString) *m_errorString = Tr::tr("The plugin \"%1\" is not tested.").arg(m_currentArg); @@ -179,7 +179,7 @@ bool OptionsParser::checkForLoadOption() spec->setForceEnabled(true); m_isDependencyRefreshNeeded = true; } else { - PluginSpec *spec = m_pmPrivate->pluginByName(m_currentArg); + PluginSpec *spec = m_pmPrivate->pluginById(m_currentArg.toLower()); if (!spec) { if (m_errorString) *m_errorString = Tr::tr("The plugin \"%1\" does not exist.").arg(m_currentArg); @@ -204,7 +204,7 @@ bool OptionsParser::checkForNoLoadOption() spec->setForceDisabled(true); m_isDependencyRefreshNeeded = true; } else { - PluginSpec *spec = m_pmPrivate->pluginByName(m_currentArg); + PluginSpec *spec = m_pmPrivate->pluginById(m_currentArg.toLower()); if (!spec) { if (m_errorString) *m_errorString = Tr::tr("The plugin \"%1\" does not exist.").arg(m_currentArg); diff --git a/src/libs/extensionsystem/plugindetailsview.cpp b/src/libs/extensionsystem/plugindetailsview.cpp index 389f8a513a8..e6e2f471625 100644 --- a/src/libs/extensionsystem/plugindetailsview.cpp +++ b/src/libs/extensionsystem/plugindetailsview.cpp @@ -43,10 +43,12 @@ class PluginDetailsViewPrivate public: PluginDetailsViewPrivate(PluginDetailsView *detailsView) : q(detailsView) + , id(createContentsLabel()) , name(createContentsLabel()) , version(createContentsLabel()) , compatVersion(createContentsLabel()) , vendor(createContentsLabel()) + , vendorId(createContentsLabel()) , component(createContentsLabel()) , url(createContentsLabel()) , documentationUrl(createContentsLabel()) @@ -62,10 +64,12 @@ public: // clang-format off Form { + Tr::tr("ID:"), id, br, Tr::tr("Name:"), name, br, Tr::tr("Version:"), version, br, Tr::tr("Compatibility version:"), compatVersion, br, Tr::tr("Vendor:"), vendor, br, + Tr::tr("VendorId:"), vendorId, br, Tr::tr("Group:"), component, br, Tr::tr("URL:"), url, br, Tr::tr("Documentation:"), documentationUrl, br, @@ -83,10 +87,12 @@ public: PluginDetailsView *q = nullptr; + QLabel *id = nullptr; QLabel *name = nullptr; QLabel *version = nullptr; QLabel *compatVersion = nullptr; QLabel *vendor = nullptr; + QLabel *vendorId = nullptr; QLabel *component = nullptr; QLabel *url = nullptr; QLabel *documentationUrl = nullptr; @@ -140,6 +146,7 @@ PluginDetailsView::~PluginDetailsView() */ void PluginDetailsView::update(PluginSpec *spec) { + d->id->setText(spec->id()); d->name->setText(spec->name()); const QString revision = spec->revision(); const QString versionString = spec->version() @@ -147,6 +154,7 @@ void PluginDetailsView::update(PluginSpec *spec) d->version->setText(versionString); d->compatVersion->setText(spec->compatVersion()); d->vendor->setText(spec->vendor()); + d->vendorId->setText(spec->vendorId()); d->component->setText(spec->category().isEmpty() ? Tr::tr("None") : spec->category()); const auto toHtmlLink = [](const QString &url) { return QString::fromLatin1("%1").arg(url); diff --git a/src/libs/extensionsystem/pluginerroroverview.cpp b/src/libs/extensionsystem/pluginerroroverview.cpp index bc2b60e790b..b590fa6b419 100644 --- a/src/libs/extensionsystem/pluginerroroverview.cpp +++ b/src/libs/extensionsystem/pluginerroroverview.cpp @@ -8,6 +8,7 @@ #include "pluginmanager.h" #include "pluginspec.h" +#include #include #include @@ -79,7 +80,8 @@ PluginErrorOverview::PluginErrorOverview(QWidget *parent) for (PluginSpec *spec : PluginManager::plugins()) { // only show errors on startup if plugin is enabled. if (spec->hasError() && spec->isEffectivelyEnabled()) { - QListWidgetItem *item = new QListWidgetItem(spec->name()); + const QString name = spec->displayName(); + QListWidgetItem *item = new QListWidgetItem(name); item->setData(Qt::UserRole, QVariant::fromValue(spec)); pluginList->addItem(item); } diff --git a/src/libs/extensionsystem/pluginmanager.cpp b/src/libs/extensionsystem/pluginmanager.cpp index bc30f954f93..bb1a683d5d3 100644 --- a/src/libs/extensionsystem/pluginmanager.cpp +++ b/src/libs/extensionsystem/pluginmanager.cpp @@ -772,9 +772,15 @@ void PluginManager::formatPluginOptions(QTextStream &str, int optionIndentation, for (PluginSpec *ps : std::as_const(d->pluginSpecs)) { const PluginSpec::PluginArgumentDescriptions pargs = ps->argumentDescriptions(); if (!pargs.empty()) { - str << "\nPlugin: " << ps->name() << '\n'; + str << "\nPlugin: " << ps->id() << '\n'; for (const PluginArgumentDescription &pad : pargs) - formatOption(str, pad.name, pad.parameter, pad.description, optionIndentation, descriptionIndentation); + formatOption( + str, + pad.name, + pad.parameter, + pad.description, + optionIndentation, + descriptionIndentation); } } } @@ -1006,18 +1012,24 @@ void PluginManagerPrivate::writeSettings() settings->setValueWithDefault(C_FORCEENABLED_PLUGINS, tempForceEnabledPlugins); } +static inline QStringList toLower(const QStringList &list) +{ + return Utils::transform(list, [](const QString &s) { return s.toLower(); }); +} + /*! \internal */ void PluginManagerPrivate::readSettings() { if (globalSettings) { - defaultDisabledPlugins = globalSettings->value(C_IGNORED_PLUGINS).toStringList(); - defaultEnabledPlugins = globalSettings->value(C_FORCEENABLED_PLUGINS).toStringList(); + defaultDisabledPlugins = toLower(globalSettings->value(C_IGNORED_PLUGINS).toStringList()); + defaultEnabledPlugins = toLower( + globalSettings->value(C_FORCEENABLED_PLUGINS).toStringList()); } if (settings) { - disabledPlugins = settings->value(C_IGNORED_PLUGINS).toStringList(); - forceEnabledPlugins = settings->value(C_FORCEENABLED_PLUGINS).toStringList(); + disabledPlugins = toLower(settings->value(C_IGNORED_PLUGINS).toStringList()); + forceEnabledPlugins = toLower(settings->value(C_FORCEENABLED_PLUGINS).toStringList()); } } @@ -1053,7 +1065,7 @@ void PluginManagerPrivate::checkForDuplicatePlugins() { QHash seen; for (PluginSpec *spec : pluginSpecs) { - if (PluginSpec *other = seen.value(spec->name())) { + if (PluginSpec *other = seen.value(spec->id())) { // Plugin with same name already there. We do not know, which version is the right one, // keep it simple and fail both (if enabled). if (spec->isEffectivelyEnabled() && other->isEffectivelyEnabled()) { @@ -1063,7 +1075,8 @@ void PluginManagerPrivate::checkForDuplicatePlugins() other->setError(error); } } else { - seen.insert(spec->name(), spec); + if (!spec->id().isEmpty()) + seen.insert(spec->id(), spec); } } } @@ -1551,15 +1564,15 @@ public: + ".lock"; } - static std::optional lockedPluginName(PluginManagerPrivate *pm) + static std::optional lockedPluginId(PluginManagerPrivate *pm) { const QString lockFilePath = LockFile::filePath(pm); if (QFileInfo::exists(lockFilePath)) { QFile f(lockFilePath); if (f.open(QIODevice::ReadOnly)) { - const auto pluginName = QString::fromUtf8(f.readLine()).trimmed(); + const auto pluginId = QString::fromUtf8(f.readLine()).trimmed(); f.close(); - return pluginName; + return pluginId; } else { qCDebug(pluginLog) << "Lock file" << lockFilePath << "exists but is not readable"; } @@ -1591,9 +1604,9 @@ void PluginManagerPrivate::checkForProblematicPlugins() { if (!enableCrashCheck) return; - const std::optional pluginName = LockFile::lockedPluginName(this); - if (pluginName) { - PluginSpec *spec = pluginByName(*pluginName); + const std::optional pluginId = LockFile::lockedPluginId(this); + if (pluginId) { + PluginSpec *spec = pluginById(*pluginId); if (spec && !spec->isRequired()) { const QSet dependents = PluginManager::pluginsRequiringPlugin(spec); auto dependentsNames = Utils::transform(dependents, &PluginSpec::name); @@ -1763,16 +1776,16 @@ void PluginManagerPrivate::addPlugins(const PluginSpecs &specs) for (PluginSpec *spec : specs) { // defaultDisabledPlugins and defaultEnabledPlugins from install settings // is used to override the defaults read from the plugin spec - if (spec->isEnabledByDefault() && defaultDisabledPlugins.contains(spec->name())) { + if (spec->isEnabledByDefault() && defaultDisabledPlugins.contains(spec->id())) { spec->setEnabledByDefault(false); spec->setEnabledBySettings(false); - } else if (!spec->isEnabledByDefault() && defaultEnabledPlugins.contains(spec->name())) { + } else if (!spec->isEnabledByDefault() && defaultEnabledPlugins.contains(spec->id())) { spec->setEnabledByDefault(true); spec->setEnabledBySettings(true); } - if (!spec->isEnabledByDefault() && forceEnabledPlugins.contains(spec->name())) + if (!spec->isEnabledByDefault() && forceEnabledPlugins.contains(spec->id())) spec->setEnabledBySettings(true); - if (spec->isEnabledByDefault() && disabledPlugins.contains(spec->name())) + if (spec->isEnabledByDefault() && disabledPlugins.contains(spec->id())) spec->setEnabledBySettings(false); pluginCategories[spec->category()].append(spec); @@ -1838,10 +1851,9 @@ PluginSpec *PluginManagerPrivate::pluginForOption(const QString &option, bool *r // Look in the plugins for an option *requiresArgument = false; for (PluginSpec *spec : std::as_const(pluginSpecs)) { - PluginArgumentDescription match = Utils::findOrDefault(spec->argumentDescriptions(), - [option](PluginArgumentDescription pad) { - return pad.name == option; - }); + PluginArgumentDescription match = Utils::findOrDefault( + spec->argumentDescriptions(), + [option](PluginArgumentDescription pad) { return pad.name == option; }); if (!match.name.isEmpty()) { *requiresArgument = !match.parameter.isEmpty(); return spec; @@ -1850,9 +1862,10 @@ PluginSpec *PluginManagerPrivate::pluginForOption(const QString &option, bool *r return nullptr; } -PluginSpec *PluginManagerPrivate::pluginByName(const QString &name) const +PluginSpec *PluginManagerPrivate::pluginById(const QString &id) const { - return Utils::findOrDefault(pluginSpecs, [name](PluginSpec *spec) { return spec->name() == name; }); + QTC_CHECK(id.isLower()); // Plugin ids are always lower case. So the id argument should be too. + return Utils::findOrDefault(pluginSpecs, [id](PluginSpec *spec) { return spec->id() == id; }); } void PluginManagerPrivate::increaseProfilingVerbosity() diff --git a/src/libs/extensionsystem/pluginmanager_p.h b/src/libs/extensionsystem/pluginmanager_p.h index 5a7064c464c..877a56c2e51 100644 --- a/src/libs/extensionsystem/pluginmanager_p.h +++ b/src/libs/extensionsystem/pluginmanager_p.h @@ -117,7 +117,7 @@ public: // Look in argument descriptions of the specs for the option. PluginSpec *pluginForOption(const QString &option, bool *requiresArgument) const; - PluginSpec *pluginByName(const QString &name) const; + PluginSpec *pluginById(const QString &id) const; static void addTestCreator(IPlugin *plugin, const std::function &testCreator); diff --git a/src/libs/extensionsystem/pluginspec.cpp b/src/libs/extensionsystem/pluginspec.cpp index 610f6d9c78d..0b97430a1f6 100644 --- a/src/libs/extensionsystem/pluginspec.cpp +++ b/src/libs/extensionsystem/pluginspec.cpp @@ -139,7 +139,7 @@ namespace ExtensionSystem { */ size_t qHash(const PluginDependency &value) { - return qHash(value.name); + return qHash(value.id); } /*! @@ -147,7 +147,7 @@ size_t qHash(const PluginDependency &value) */ bool PluginDependency::operator==(const PluginDependency &other) const { - return name == other.name && version == other.version && type == other.type; + return id == other.id && version == other.version && type == other.type; } static QString typeString(PluginDependency::Type type) @@ -168,7 +168,7 @@ static QString typeString(PluginDependency::Type type) */ QString PluginDependency::toString() const { - return name + " (" + version + typeString(type) + ")"; + return id + " (" + version + typeString(type) + ")"; } namespace Internal { @@ -186,9 +186,11 @@ class PluginSpecPrivate public: ExtensionSystem::PerformanceData performanceData; + QString id; QString name; QString version; QString compatVersion; + QString vendorId; QString vendor; QString category; QString description; @@ -254,6 +256,26 @@ QString PluginSpec::name() const return d->name; } +/*! + Returns the plugin display name. This is valid after the PluginSpec::Read + state is reached. +*/ +QString PluginSpec::id() const +{ + return d->id; +} + +/*! + Returns either name(), or id() if name() is empty. If both are empty, returns "". +*/ +QString PluginSpec::displayName() const +{ + return Utils::findOr( + QStringList{name(), id(), filePath().fileName()}, + "", + std::not_fn(&QString::isEmpty)); +} + /*! Returns the plugin version. This is valid after the PluginSpec::Read state is reached. @@ -281,6 +303,15 @@ QString PluginSpec::vendor() const return d->vendor; } +/*! + Returns the display name of the plugins vendor. This is valid after the PluginSpec::Read + state is reached. +*/ +QString PluginSpec::vendorId() const +{ + return d->vendorId; +} + /*! Returns the plugin copyright. This is valid after the PluginSpec::Read state is reached. @@ -576,7 +607,7 @@ QString PluginSpec::errorString() const */ bool PluginSpec::provides(PluginSpec *spec, const PluginDependency &dependency) const { - if (QString::compare(dependency.name, spec->name(), Qt::CaseInsensitive) != 0) + if (QString::compare(dependency.id, spec->id(), Qt::CaseInsensitive) != 0) return false; return (versionCompare(spec->version(), dependency.version) >= 0) @@ -674,6 +705,7 @@ PluginSpecs PluginSpec::enableDependenciesIndirectly(bool enableTestDependencies namespace { const char PLUGIN_METADATA[] = "MetaData"; const char PLUGIN_NAME[] = "Name"; + const char PLUGIN_ID[] = "Id"; const char PLUGIN_VERSION[] = "Version"; const char PLUGIN_COMPATVERSION[] = "CompatVersion"; const char PLUGIN_REQUIRED[] = "Required"; @@ -682,6 +714,7 @@ namespace { const char PLUGIN_DEPRECATED[] = "Deprecated"; const char PLUGIN_SOFTLOADABLE[] = "SoftLoadable"; const char VENDOR[] = "Vendor"; + const char VENDOR_ID[] = "VendorId"; const char COPYRIGHT[] = "Copyright"; const char LICENSE[] = "License"; const char DESCRIPTION[] = "Description"; @@ -691,7 +724,7 @@ namespace { const char CATEGORY[] = "Category"; const char PLATFORM[] = "Platform"; const char DEPENDENCIES[] = "Dependencies"; - const char DEPENDENCY_NAME[] = "Name"; + const char DEPENDENCY_ID[] = "Id"; const char DEPENDENCY_VERSION[] = "Version"; const char DEPENDENCY_TYPE[] = "Type"; const char DEPENDENCY_TYPE_SOFT[] = "optional"; @@ -807,108 +840,145 @@ expected_str CppPluginSpec::readMetaData(const QJsonObject &pluginMetaData return PluginSpec::readMetaData(value.toObject()); } +template +struct Invert +{ + T &value; + Invert(T &value) + : value(value) + {} + Invert &operator=(const T &other) + { + value = !other; + return *this; + } +}; + +template +using copy_assign_t = decltype(std::declval() = std::declval()); + Utils::expected_str PluginSpecPrivate::readMetaData(const QJsonObject &data) { metaData = data; - QJsonValue value = metaData.value(QLatin1String(PLUGIN_NAME)); - if (value.isUndefined()) - return reportError(msgValueMissing(PLUGIN_NAME)); - if (!value.isString()) - return reportError(msgValueIsNotAString(PLUGIN_NAME)); - name = value.toString(); + auto assign = [&data](QString &member, const char *fieldName) -> expected_str { + QJsonValue value = data.value(QLatin1String(fieldName)); + if (value.isUndefined()) + return make_unexpected(msgValueMissing(fieldName)); + if (!value.isString()) + return make_unexpected(msgValueIsNotAString(fieldName)); + member = value.toString(); + return {}; + }; + + auto assignOr = + [&data](auto &&member, const char *fieldName, auto &&defaultValue) -> expected_str { + QJsonValue value = data.value(QLatin1String(fieldName)); + if (value.isUndefined()) + member = defaultValue; + else { + constexpr bool isBool = std::is_assignable::value; + constexpr bool isString = std::is_assignable::value; + + static_assert(isString || isBool, "Unsupported type"); + + if constexpr (isString) { + if (!value.isString()) + return make_unexpected(msgValueIsNotAString(fieldName)); + member = value.toString(); + } else if constexpr (isBool) { + if (!value.isBool()) + return make_unexpected(msgValueIsNotABool(fieldName)); + member = value.toBool(); + } + } + return {}; + }; + + auto assignMultiLine = [&data](QString &member, const char *fieldName) -> expected_str { + QJsonValue value = data.value(QLatin1String(fieldName)); + if (value.isUndefined()) + return {}; + if (!readMultiLineString(value, &member)) + return make_unexpected(msgValueIsNotAMultilineString(fieldName)); + return {}; + }; + + if (auto r = assign(id, PLUGIN_ID); !r.has_value()) + return reportError(r.error()); + + if (!id.isLower()) + return reportError(::ExtensionSystem::Tr::tr("Plugin id \"%1\" must be lowercase").arg(id)); + + if (auto r = assignOr(name, PLUGIN_NAME, id); !r.has_value()) + return reportError(r.error()); + + if (auto r = assign(version, PLUGIN_VERSION); !r.has_value()) + return reportError(r.error()); - value = metaData.value(QLatin1String(PLUGIN_VERSION)); - if (value.isUndefined()) - return reportError(msgValueMissing(PLUGIN_VERSION)); - if (!value.isString()) - return reportError(msgValueIsNotAString(PLUGIN_VERSION)); - version = value.toString(); if (!PluginSpec::isValidVersion(version)) return reportError(msgInvalidFormat(PLUGIN_VERSION, version)); - value = metaData.value(QLatin1String(PLUGIN_COMPATVERSION)); - if (!value.isUndefined() && !value.isString()) - return reportError(msgValueIsNotAString(PLUGIN_COMPATVERSION)); - compatVersion = value.toString(version); - if (!value.isUndefined() && !PluginSpec::isValidVersion(compatVersion)) + if (auto r = assignOr(compatVersion, PLUGIN_COMPATVERSION, version); !r.has_value()) + return reportError(r.error()); + if (!PluginSpec::isValidVersion(compatVersion)) return reportError(msgInvalidFormat(PLUGIN_COMPATVERSION, compatVersion)); - value = metaData.value(QLatin1String(PLUGIN_REQUIRED)); - if (!value.isUndefined() && !value.isBool()) - return reportError(msgValueIsNotABool(PLUGIN_REQUIRED)); - required = value.toBool(false); + if (auto r = assignOr(required, PLUGIN_REQUIRED, false); !r.has_value()) + return reportError(r.error()); qCDebug(pluginLog) << "required =" << required; - value = metaData.value(QLatin1String(PLUGIN_EXPERIMENTAL)); - if (!value.isUndefined() && !value.isBool()) - return reportError(msgValueIsNotABool(PLUGIN_EXPERIMENTAL)); - experimental = value.toBool(false); + if (auto r = assignOr(experimental, PLUGIN_EXPERIMENTAL, false); !r.has_value()) + return reportError(r.error()); qCDebug(pluginLog) << "experimental =" << experimental; - value = metaData.value(QLatin1String(PLUGIN_DEPRECATED)); - if (!value.isUndefined() && !value.isBool()) - return reportError(msgValueIsNotABool(PLUGIN_DEPRECATED)); - deprecated = value.toBool(false); + if (auto r = assignOr(deprecated, PLUGIN_DEPRECATED, false); !r.has_value()) + return reportError(r.error()); qCDebug(pluginLog) << "deprecated =" << deprecated; - value = metaData.value(QLatin1String(PLUGIN_DISABLED_BY_DEFAULT)); - if (!value.isUndefined() && !value.isBool()) - return reportError(msgValueIsNotABool(PLUGIN_DISABLED_BY_DEFAULT)); - enabledByDefault = !value.toBool(experimental || deprecated); - qCDebug(pluginLog) << "enabledByDefault =" << enabledByDefault; + if (auto r + = assignOr(Invert(enabledByDefault), PLUGIN_DISABLED_BY_DEFAULT, experimental || deprecated); + !r.has_value()) + return reportError(r.error()); + qCDebug(pluginLog) << "enabledByDefault =" << enabledByDefault; enabledBySettings = enabledByDefault; - value = metaData.value(QLatin1String(PLUGIN_SOFTLOADABLE)); - if (!value.isUndefined() && !value.isBool()) - return reportError(msgValueIsNotABool(PLUGIN_SOFTLOADABLE)); - softLoadable = value.toBool(false); + if (auto r = assignOr(softLoadable, PLUGIN_SOFTLOADABLE, false); !r.has_value()) + return reportError(r.error()); qCDebug(pluginLog) << "softLoadable =" << softLoadable; - value = metaData.value(QLatin1String(VENDOR)); - if (!value.isUndefined() && !value.isString()) - return reportError(msgValueIsNotAString(VENDOR)); - vendor = value.toString(); + if (auto r = assign(vendorId, VENDOR_ID); !r.has_value()) + return reportError(r.error()); - value = metaData.value(QLatin1String(COPYRIGHT)); - if (!value.isUndefined() && !value.isString()) - return reportError(msgValueIsNotAString(COPYRIGHT)); - copyright = value.toString(); + if (auto r = assignOr(vendor, VENDOR, vendorId); !r.has_value()) + return reportError(r.error()); - value = metaData.value(QLatin1String(DESCRIPTION)); - if (!value.isUndefined() && !readMultiLineString(value, &description)) - return reportError(msgValueIsNotAString(DESCRIPTION)); + if (auto r = assignOr(copyright, COPYRIGHT, QString{}); !r.has_value()) + return reportError(r.error()); - value = metaData.value(QLatin1String(LONGDESCRIPTION)); - if (!value.isUndefined() && !readMultiLineString(value, &longDescription)) - return reportError(msgValueIsNotAString(LONGDESCRIPTION)); + if (auto r = assignMultiLine(description, DESCRIPTION); !r.has_value()) + return reportError(r.error()); - value = metaData.value(QLatin1String(URL)); - if (!value.isUndefined() && !value.isString()) - return reportError(msgValueIsNotAString(URL)); - url = value.toString(); + if (auto r = assignMultiLine(longDescription, LONGDESCRIPTION); !r.has_value()) + return reportError(r.error()); - value = metaData.value(QLatin1String(DOCUMENTATIONURL)); - if (!value.isUndefined() && !value.isString()) - return reportError(msgValueIsNotAString(DOCUMENTATIONURL)); - documentationUrl = value.toString(); + if (auto r = assignOr(url, URL, QString{}); !r.has_value()) + return reportError(r.error()); - value = metaData.value(QLatin1String(CATEGORY)); - if (!value.isUndefined() && !value.isString()) - return reportError(msgValueIsNotAString(CATEGORY)); - category = value.toString(); + if (auto r = assignOr(documentationUrl, DOCUMENTATIONURL, QString{}); !r.has_value()) + return reportError(r.error()); - value = metaData.value(QLatin1String(LICENSE)); - if (!value.isUndefined() && !readMultiLineString(value, &license)) - return reportError(msgValueIsNotAMultilineString(LICENSE)); + if (auto r = assignOr(category, CATEGORY, QString{}); !r.has_value()) + return reportError(r.error()); - value = metaData.value("Revision"); - if (!value.isUndefined() && !value.isString()) - return reportError(msgValueIsNotAString("Revision")); - revision = value.toString(); + if (auto r = assignMultiLine(license, LICENSE); !r.has_value()) + return reportError(r.error()); - value = metaData.value(QLatin1String(PLATFORM)); + if (auto r = assignOr(revision, "Revision", QString{}); !r.has_value()) + return reportError(r.error()); + + QJsonValue value = metaData.value(QLatin1String(PLATFORM)); if (!value.isUndefined() && !value.isString()) return reportError(msgValueIsNotAString(PLATFORM)); const QString platformSpec = value.toString().trimmed(); @@ -930,18 +1000,16 @@ Utils::expected_str PluginSpecPrivate::readMetaData(const QJsonObject &dat return reportError(msgValueIsNotAObjectArray(DEPENDENCIES)); QJsonObject dependencyObject = v.toObject(); PluginDependency dep; - value = dependencyObject.value(QLatin1String(DEPENDENCY_NAME)); + value = dependencyObject.value(QLatin1String(DEPENDENCY_ID)); if (value.isUndefined()) { return reportError( - ::ExtensionSystem::Tr::tr("Dependency: %1") - .arg(msgValueMissing(DEPENDENCY_NAME))); + ::ExtensionSystem::Tr::tr("Dependency: %1").arg(msgValueMissing(DEPENDENCY_ID))); } if (!value.isString()) { - return reportError( - ::ExtensionSystem::Tr::tr("Dependency: %1") - .arg(msgValueIsNotAString(DEPENDENCY_NAME))); + return reportError(::ExtensionSystem::Tr::tr("Dependency: %1") + .arg(msgValueIsNotAString(DEPENDENCY_ID))); } - dep.name = value.toString(); + dep.id = value.toString(); value = dependencyObject.value(QLatin1String(DEPENDENCY_VERSION)); if (!value.isUndefined() && !value.isString()) { return reportError( @@ -1098,7 +1166,7 @@ bool PluginSpec::resolveDependencies(const PluginSpecs &specs) if (dependency.type == PluginDependency::Required) { const QString error = ::ExtensionSystem::Tr::tr( "Could not resolve dependency '%1(%2)'") - .arg(dependency.name, dependency.version); + .arg(dependency.id, dependency.version); if (hasError()) setError(errorString() + '\n' + error); else diff --git a/src/libs/extensionsystem/pluginspec.h b/src/libs/extensionsystem/pluginspec.h index 480fbad4d36..c133f260092 100644 --- a/src/libs/extensionsystem/pluginspec.h +++ b/src/libs/extensionsystem/pluginspec.h @@ -39,13 +39,13 @@ struct EXTENSIONSYSTEM_EXPORT PluginDependency enum Type { Required, Optional, Test }; PluginDependency() : type(Required) {} - PluginDependency(const QString &name, const QString &version, Type type = Required) - : name(name) + PluginDependency(const QString &id, const QString &version, Type type = Required) + : id(id) , version(version) , type(type) {} - QString name; + QString id; QString version; Type type; bool operator==(const PluginDependency &other) const; @@ -96,9 +96,11 @@ public: // information read from the plugin, valid after 'Read' state is reached virtual QString name() const; + virtual QString id() const; virtual QString version() const; virtual QString compatVersion() const; virtual QString vendor() const; + virtual QString vendorId() const; virtual QString copyright() const; virtual QString license() const; virtual QString description() const; @@ -109,6 +111,8 @@ public: virtual QString revision() const; virtual QRegularExpression platformSpecification() const; + virtual QString displayName() const; + virtual bool isAvailableForHostPlatform() const; virtual bool isRequired() const; virtual bool isExperimental() const; diff --git a/src/libs/extensionsystem/pluginview.cpp b/src/libs/extensionsystem/pluginview.cpp index 24ec0a969d5..9aa8f5f7d0f 100644 --- a/src/libs/extensionsystem/pluginview.cpp +++ b/src/libs/extensionsystem/pluginview.cpp @@ -96,24 +96,29 @@ public: QVariant data(int column, int role) const override { switch (column) { - case NameColumn: + case NameColumn: { + const QString displayName = m_spec->displayName(); if (role == Qt::DisplayRole) { - if (m_spec->isDeprecated()) { - //: %1 is a plugin name - return Tr::tr("%1 (deprecated)").arg(m_spec->name()); - } - //: %1 is a plugin name - return m_spec->isExperimental() ? Tr::tr("%1 (experimental)").arg(m_spec->name()) - : m_spec->name(); + QStringList decoration; + if (m_spec->isDeprecated()) + decoration.append(Tr::tr("deprecated")); + if (m_spec->isExperimental()) + decoration.append(Tr::tr("experimental")); + + if (decoration.isEmpty()) + return displayName; + return QString::fromLatin1("%1 (%2)") + .arg(displayName, decoration.join(QLatin1Char(','))); } if (role == SortRole) - return m_spec->name(); + return displayName; if (role == Qt::ToolTipRole) { QString toolTip; if (!m_spec->isAvailableForHostPlatform()) toolTip = Tr::tr("Path: %1\nPlugin is not available on this platform."); else if (m_spec->isEnabledIndirectly()) - toolTip = Tr::tr("Path: %1\nPlugin is enabled as dependency of an enabled plugin."); + toolTip = Tr::tr( + "Path: %1\nPlugin is enabled as dependency of an enabled plugin."); else if (m_spec->isForceEnabled()) toolTip = Tr::tr("Path: %1\nPlugin is enabled by command line argument."); else if (m_spec->isForceDisabled()) @@ -130,6 +135,7 @@ public: return i; } break; + } case LoadedColumn: if (!m_spec->isAvailableForHostPlatform()) { diff --git a/src/plugins/android/Android.json.in b/src/plugins/android/Android.json.in index 6af8f226113..3dc4a079030 100644 --- a/src/plugins/android/Android.json.in +++ b/src/plugins/android/Android.json.in @@ -1,7 +1,9 @@ { + "Id" : "android", "Name" : "Android", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "kdenecessitas", "Vendor" : "KDE Necessitas", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/appstatisticsmonitor/AppStatisticsMonitor.json.in b/src/plugins/appstatisticsmonitor/AppStatisticsMonitor.json.in index 26202be6843..db79186dd99 100644 --- a/src/plugins/appstatisticsmonitor/AppStatisticsMonitor.json.in +++ b/src/plugins/appstatisticsmonitor/AppStatisticsMonitor.json.in @@ -1,9 +1,11 @@ { + "Id" : "appstatisticsmonitor", "Name" : "AppStatisticsMonitor", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "Experimental" : true, "DisabledByDefault" : ${APPSTATISTICSMONITOR_DISABLEDBYDEFAULT}, + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/autotest/AutoTest.json.in b/src/plugins/autotest/AutoTest.json.in index 51fd5f32916..d428327c7b3 100644 --- a/src/plugins/autotest/AutoTest.json.in +++ b/src/plugins/autotest/AutoTest.json.in @@ -1,23 +1,25 @@ { -"Name" : "AutoTest", -"Version" : "${IDE_VERSION}", -"CompatVersion" : "${IDE_VERSION_COMPAT}", -"Vendor" : "The Qt Company Ltd", -"Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", -"License" : [ "Commercial Usage", -"", -"Licensees holding valid Qt Commercial licenses may use this plugin in accordance with the Qt Commercial License Agreement provided with the Software or, alternatively, in accordance with the terms contained in a written agreement between you and The Qt Company.", -"", -"GNU General Public License Usage", -"", -"Alternatively, this file may be used under the terms of the GNU General Public License version 3 as published by the Free Software Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT included in the packaging of this file. Please review the following information to ensure the GNU General Public License requirements will be met: https://www.gnu.org/licenses/gpl-3.0.html." -], -"Description" : "Create code based tests and build system based tests.", -"LongDescription" : [ - "Code based testing offers special handling for particular testing frameworks that strongly ties to the underlying code models or specialized parsers.", - "Build system based testing is independent from any testing frameworks. It retrieves information directly from the underlying build system and uses it or even the build system as such to execute the respective tests." -], -"Url" : "https://www.qt.io", -"DocumentationUrl" : "https://doc.qt.io/qtcreator/creator-how-tos.html#test", -${IDE_PLUGIN_DEPENDENCIES} + "Id" : "autotest", + "Name" : "AutoTest", + "Version" : "${IDE_VERSION}", + "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", + "Vendor" : "The Qt Company Ltd", + "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", + "License" : [ "Commercial Usage", + "", + "Licensees holding valid Qt Commercial licenses may use this plugin in accordance with the Qt Commercial License Agreement provided with the Software or, alternatively, in accordance with the terms contained in a written agreement between you and The Qt Company.", + "", + "GNU General Public License Usage", + "", + "Alternatively, this file may be used under the terms of the GNU General Public License version 3 as published by the Free Software Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT included in the packaging of this file. Please review the following information to ensure the GNU General Public License requirements will be met: https://www.gnu.org/licenses/gpl-3.0.html." + ], + "Description" : "Create code based tests and build system based tests.", + "LongDescription" : [ + "Code based testing offers special handling for particular testing frameworks that strongly ties to the underlying code models or specialized parsers.", + "Build system based testing is independent from any testing frameworks. It retrieves information directly from the underlying build system and uses it or even the build system as such to execute the respective tests." + ], + "Url" : "https://www.qt.io", + "DocumentationUrl" : "https://doc.qt.io/qtcreator/creator-how-tos.html#test", + ${IDE_PLUGIN_DEPENDENCIES} } diff --git a/src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.json.in b/src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.json.in index b64808b0ed3..2251b7f37c0 100644 --- a/src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.json.in +++ b/src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.json.in @@ -1,8 +1,10 @@ { + "Id" : "autotoolsprojectmanager", "Name" : "AutotoolsProjectManager", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "DisabledByDefault" : true, + "VendorId" : "openismusgmbh", "Vendor" : "Openismus GmbH", "Copyright" : "(C) 2016 Openismus GmbH, (C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/axivion/Axivion.json.in b/src/plugins/axivion/Axivion.json.in index ee670efbf25..60b10cff387 100644 --- a/src/plugins/axivion/Axivion.json.in +++ b/src/plugins/axivion/Axivion.json.in @@ -1,9 +1,11 @@ { + "Id" : "axivion", "Name" : "Axivion", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "Revision" : "${QTC_PLUGIN_REVISION}", "Experimental" : true, + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/baremetal/BareMetal.json.in b/src/plugins/baremetal/BareMetal.json.in index 1f019bd34aa..5eba5fee636 100644 --- a/src/plugins/baremetal/BareMetal.json.in +++ b/src/plugins/baremetal/BareMetal.json.in @@ -1,8 +1,10 @@ { + "Id" : "baremetal", "Name" : "BareMetal", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "Experimental" : true, + "VendorId" : "timsander", "Vendor" : "Tim Sander", "Copyright" : "(C) 2016 Tim Sander, (C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/bazaar/Bazaar.json.in b/src/plugins/bazaar/Bazaar.json.in index 19f5b47e7c4..d2ea7edcd0d 100644 --- a/src/plugins/bazaar/Bazaar.json.in +++ b/src/plugins/bazaar/Bazaar.json.in @@ -1,7 +1,9 @@ { + "Id" : "bazaar", "Name" : "Bazaar", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "huguesdelorme", "Vendor" : "Hugues Delorme", "Copyright" : "(C) 2016 Hugues Delorme, (C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/beautifier/Beautifier.json.in b/src/plugins/beautifier/Beautifier.json.in index 1dfd6387b0f..4a76b251d22 100644 --- a/src/plugins/beautifier/Beautifier.json.in +++ b/src/plugins/beautifier/Beautifier.json.in @@ -1,8 +1,10 @@ { + "Id" : "beautifier", "Name" : "Beautifier", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "Experimental" : true, + "VendorId" : "lorenzhaas", "Vendor" : "Lorenz Haas", "Copyright" : "(C) 2017 Lorenz Haas, (C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/bineditor/BinEditor.json.in b/src/plugins/bineditor/BinEditor.json.in index db1f9981df1..878d9c41cbd 100644 --- a/src/plugins/bineditor/BinEditor.json.in +++ b/src/plugins/bineditor/BinEditor.json.in @@ -1,7 +1,9 @@ { + "Id" : "bineditor", "Name" : "BinEditor", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/boot2qt/Boot2Qt.json.in b/src/plugins/boot2qt/Boot2Qt.json.in index 52f13d7f8c7..3a2243278dd 100644 --- a/src/plugins/boot2qt/Boot2Qt.json.in +++ b/src/plugins/boot2qt/Boot2Qt.json.in @@ -1,8 +1,10 @@ { + "Id" : "boot2qt", "Name" : "Boot2Qt", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "DisabledByDefault" : true, + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/clangcodemodel/ClangCodeModel.json.in b/src/plugins/clangcodemodel/ClangCodeModel.json.in index 5b86fa5b752..c8c823ec5af 100644 --- a/src/plugins/clangcodemodel/ClangCodeModel.json.in +++ b/src/plugins/clangcodemodel/ClangCodeModel.json.in @@ -1,7 +1,9 @@ { + "Id" : "clangcodemodel", "Name" : "ClangCodeModel", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/clangformat/ClangFormat.json.in b/src/plugins/clangformat/ClangFormat.json.in index 1cd66288a72..0a8604b1613 100644 --- a/src/plugins/clangformat/ClangFormat.json.in +++ b/src/plugins/clangformat/ClangFormat.json.in @@ -1,7 +1,9 @@ { + "Id" : "clangformat", "Name" : "ClangFormat", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/clangtools/ClangTools.json.in b/src/plugins/clangtools/ClangTools.json.in index 68ec90490cb..195a1204e65 100644 --- a/src/plugins/clangtools/ClangTools.json.in +++ b/src/plugins/clangtools/ClangTools.json.in @@ -1,7 +1,9 @@ { + "Id" : "clangtools", "Name" : "ClangTools", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/classview/ClassView.json.in b/src/plugins/classview/ClassView.json.in index f87343a8b52..53dc00fc35c 100644 --- a/src/plugins/classview/ClassView.json.in +++ b/src/plugins/classview/ClassView.json.in @@ -1,7 +1,9 @@ { + "Id" : "classview", "Name" : "ClassView", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) 2016 Denis Mingulov, (C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/clearcase/ClearCase.json.in b/src/plugins/clearcase/ClearCase.json.in index 32f76ab4aaa..9d44a70dff0 100644 --- a/src/plugins/clearcase/ClearCase.json.in +++ b/src/plugins/clearcase/ClearCase.json.in @@ -1,9 +1,11 @@ { + "Id" : "clearcase", "Name" : "ClearCase", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "DisabledByDefault" : true, "Platform" : "^(Linux|Windows)", + "VendorId" : "audiocodes", "Vendor" : "AudioCodes", "Copyright" : "(C) 2016 AudioCodes Ltd., (C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/cmakeprojectmanager/CMakeProjectManager.json.in b/src/plugins/cmakeprojectmanager/CMakeProjectManager.json.in index 43f8fa96f80..72ecd3aa03e 100644 --- a/src/plugins/cmakeprojectmanager/CMakeProjectManager.json.in +++ b/src/plugins/cmakeprojectmanager/CMakeProjectManager.json.in @@ -1,7 +1,9 @@ { + "Id" : "cmakeprojectmanager", "Name" : "CMakeProjectManager", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/coco/Coco.json.in b/src/plugins/coco/Coco.json.in index 73fcaa5b953..c6e0a9b28fc 100644 --- a/src/plugins/coco/Coco.json.in +++ b/src/plugins/coco/Coco.json.in @@ -1,8 +1,10 @@ { + "Id" : "coco", "Name" : "Coco", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "Experimental" : true, + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/compilationdatabaseprojectmanager/CompilationDatabaseProjectManager.json.in b/src/plugins/compilationdatabaseprojectmanager/CompilationDatabaseProjectManager.json.in index b1fd5eb24d8..8370e041ce8 100644 --- a/src/plugins/compilationdatabaseprojectmanager/CompilationDatabaseProjectManager.json.in +++ b/src/plugins/compilationdatabaseprojectmanager/CompilationDatabaseProjectManager.json.in @@ -1,8 +1,10 @@ { + "Id" : "compilationdatabaseprojectmanager", "Name" : "CompilationDatabaseProjectManager", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "Experimental" : true, + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/compilerexplorer/CompilerExplorer.json.in b/src/plugins/compilerexplorer/CompilerExplorer.json.in index 06f0486f18d..8f2913b28ff 100644 --- a/src/plugins/compilerexplorer/CompilerExplorer.json.in +++ b/src/plugins/compilerexplorer/CompilerExplorer.json.in @@ -1,9 +1,11 @@ { + "Id" : "compilerexplorer", "Name" : "CompilerExplorer", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "DisabledByDefault" : true, "SoftLoadable" : true, + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/conan/Conan.json.in b/src/plugins/conan/Conan.json.in index 64337ec3640..4f44d450d4e 100644 --- a/src/plugins/conan/Conan.json.in +++ b/src/plugins/conan/Conan.json.in @@ -1,7 +1,9 @@ { + "Id" : "conan", "Name" : "Conan", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "jochenseemann", "Vendor" : "Jochen Seemann", "Copyright" : "(C) 2018 Jochen Seemann, (C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/copilot/Copilot.json.in b/src/plugins/copilot/Copilot.json.in index aafd74450bb..bdaac68451a 100644 --- a/src/plugins/copilot/Copilot.json.in +++ b/src/plugins/copilot/Copilot.json.in @@ -1,8 +1,10 @@ { + "Id" : "copilot", "Name" : "Copilot", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "DisabledByDefault" : true, + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/coreplugin/Core.json.in b/src/plugins/coreplugin/Core.json.in index aa99a3a586c..1d5c5cecf16 100644 --- a/src/plugins/coreplugin/Core.json.in +++ b/src/plugins/coreplugin/Core.json.in @@ -1,8 +1,10 @@ { + "Id" : "core", "Name" : "Core", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "Required" : true, + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/coreplugin/loggingviewer.cpp b/src/plugins/coreplugin/loggingviewer.cpp index 427b0a064c3..060e8b0ffff 100644 --- a/src/plugins/coreplugin/loggingviewer.cpp +++ b/src/plugins/coreplugin/loggingviewer.cpp @@ -92,6 +92,7 @@ signals: private: LogCategoryRegistry() = default; + ~LogCategoryRegistry() { QLoggingCategory::installFilter(s_oldFilter); } void onFilter(QLoggingCategory *category) { diff --git a/src/plugins/cpaster/CodePaster.json.in b/src/plugins/cpaster/CodePaster.json.in index dcd7be2dbd3..a4475494b75 100644 --- a/src/plugins/cpaster/CodePaster.json.in +++ b/src/plugins/cpaster/CodePaster.json.in @@ -1,7 +1,9 @@ { + "Id" : "codepaster", "Name" : "CodePaster", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/cppcheck/Cppcheck.json.in b/src/plugins/cppcheck/Cppcheck.json.in index 77448e66155..114037f794d 100644 --- a/src/plugins/cppcheck/Cppcheck.json.in +++ b/src/plugins/cppcheck/Cppcheck.json.in @@ -1,8 +1,10 @@ { + "Id" : "cppcheck", "Name" : "Cppcheck", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "Experimental" : true, + "VendorId" : "sergeymorozov", "Vendor" : "Sergey Morozov", "Copyright" : "(C) 2018 Sergey Morozov, (C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/cppeditor/CppEditor.json.in b/src/plugins/cppeditor/CppEditor.json.in index 72e308a97b3..db01681ffc8 100644 --- a/src/plugins/cppeditor/CppEditor.json.in +++ b/src/plugins/cppeditor/CppEditor.json.in @@ -1,7 +1,9 @@ { + "Id" : "cppeditor", "Name" : "CppEditor", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/ctfvisualizer/CtfVisualizer.json.in b/src/plugins/ctfvisualizer/CtfVisualizer.json.in index e47d7c24535..e44a8b2c73b 100644 --- a/src/plugins/ctfvisualizer/CtfVisualizer.json.in +++ b/src/plugins/ctfvisualizer/CtfVisualizer.json.in @@ -1,8 +1,10 @@ { + "Id" : "ctfvisualizer", "Name" : "CtfVisualizer", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "Vendor" : "KDAB Group, www.kdab.com", + "VendorId" : "kdab", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com", "License" : [ "Commercial Usage", "", diff --git a/src/plugins/cvs/CVS.json.in b/src/plugins/cvs/CVS.json.in index 90755120834..4c948dc890b 100644 --- a/src/plugins/cvs/CVS.json.in +++ b/src/plugins/cvs/CVS.json.in @@ -1,7 +1,9 @@ { + "Id" : "cvs", "Name" : "CVS", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/debugger/Debugger.json.in b/src/plugins/debugger/Debugger.json.in index 973ca18130f..2979ee738de 100644 --- a/src/plugins/debugger/Debugger.json.in +++ b/src/plugins/debugger/Debugger.json.in @@ -1,7 +1,9 @@ { + "Id" : "debugger", "Name" : "Debugger", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/designer/Designer.json.in b/src/plugins/designer/Designer.json.in index ecd76cc269d..596a505ee34 100644 --- a/src/plugins/designer/Designer.json.in +++ b/src/plugins/designer/Designer.json.in @@ -1,7 +1,9 @@ { + "Id" : "designer", "Name" : "Designer", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/diffeditor/DiffEditor.json.in b/src/plugins/diffeditor/DiffEditor.json.in index 894c8e38a3a..6836f2d7711 100644 --- a/src/plugins/diffeditor/DiffEditor.json.in +++ b/src/plugins/diffeditor/DiffEditor.json.in @@ -1,7 +1,9 @@ { + "Id" : "diffeditor", "Name" : "DiffEditor", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/docker/Docker.json.in b/src/plugins/docker/Docker.json.in index 53ecf428f24..6ceb198ddba 100644 --- a/src/plugins/docker/Docker.json.in +++ b/src/plugins/docker/Docker.json.in @@ -1,7 +1,9 @@ { + "Id" : "docker", "Name" : "Docker", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/effectcomposer/EffectComposer.json.in b/src/plugins/effectcomposer/EffectComposer.json.in index 619fda7f014..0f851a1391d 100644 --- a/src/plugins/effectcomposer/EffectComposer.json.in +++ b/src/plugins/effectcomposer/EffectComposer.json.in @@ -1,7 +1,9 @@ { + "Id" : "effectcomposer", "Name" : "EffectComposer", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", @@ -13,4 +15,3 @@ "DisabledByDefault" : true, ${IDE_PLUGIN_DEPENDENCIES} } - diff --git a/src/plugins/emacskeys/EmacsKeys.json.in b/src/plugins/emacskeys/EmacsKeys.json.in index d9a61354394..04f348891d5 100644 --- a/src/plugins/emacskeys/EmacsKeys.json.in +++ b/src/plugins/emacskeys/EmacsKeys.json.in @@ -1,9 +1,11 @@ { + "Id" : "emacskeys", "Name" : "EmacsKeys", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "Experimental" : true, "SoftLoadable" : true, + "VendorId" : "nsf", "Vendor" : "nsf", "Copyright" : "(C) 2016 nsf , (C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/extensionmanager/ExtensionManager.json.in b/src/plugins/extensionmanager/ExtensionManager.json.in index 3f3032f7fca..7c9d365c233 100644 --- a/src/plugins/extensionmanager/ExtensionManager.json.in +++ b/src/plugins/extensionmanager/ExtensionManager.json.in @@ -1,7 +1,9 @@ { + "Id" : "extensionmanager", "Name" : "ExtensionManager", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/extensionmanager/extensionmanagerwidget.cpp b/src/plugins/extensionmanager/extensionmanagerwidget.cpp index a4040b27fc3..3c431ebdef4 100644 --- a/src/plugins/extensionmanager/extensionmanagerwidget.cpp +++ b/src/plugins/extensionmanager/extensionmanagerwidget.cpp @@ -226,7 +226,7 @@ public: const ItemType itemType = current.data(RoleItemType).value(); const bool isPack = itemType == ItemTypePack; - const bool isRemotePlugin = !(isPack || pluginSpecForName(name)); + const bool isRemotePlugin = !(isPack || pluginSpecForId(current.data(RoleId).toString())); installButton->setVisible(isRemotePlugin && !pluginData.empty()); if (installButton->isVisible()) installButton->setToolTip(pluginData.constFirst().second); @@ -270,7 +270,7 @@ public: }.attachTo(this); connect(m_switch, &QCheckBox::clicked, this, [this](bool checked) { - ExtensionSystem::PluginSpec *spec = pluginSpecForName(m_pluginName); + ExtensionSystem::PluginSpec *spec = pluginSpecForId(m_pluginId); if (spec == nullptr) return; const bool doIt = m_pluginView.data().setPluginsEnabled({spec}, checked); @@ -290,16 +290,16 @@ public: update(); } - void setPluginName(const QString &name) + void setPluginId(const QString &id) { - m_pluginName = name; + m_pluginId = id; update(); } private: void update() { - const ExtensionSystem::PluginSpec *spec = pluginSpecForName(m_pluginName); + const ExtensionSystem::PluginSpec *spec = pluginSpecForId(m_pluginId); setVisible(spec != nullptr); if (spec == nullptr) return; @@ -322,7 +322,7 @@ private: InfoLabel *m_label; Switch *m_switch; QAbstractButton *m_restartButton; - QString m_pluginName; + QString m_pluginId; ExtensionSystem::PluginView m_pluginView{this}; }; @@ -583,9 +583,9 @@ void ExtensionManagerWidget::updateView(const QModelIndex ¤t) if (!showContent) return; - m_currentItemName = current.data().toString(); + m_currentItemName = current.data(RoleName).toString(); const bool isPack = current.data(RoleItemType) == ItemTypePack; - m_pluginStatus->setPluginName(isPack ? QString() : m_currentItemName); + m_pluginStatus->setPluginId(isPack ? QString() : current.data(RoleId).toString()); m_currentItemPlugins = current.data(RolePlugins).value(); auto toContentParagraph = [](const QString &text) { diff --git a/src/plugins/extensionmanager/extensionsbrowser.cpp b/src/plugins/extensionmanager/extensionsbrowser.cpp index ca12cb013b2..135fa82e6bc 100644 --- a/src/plugins/extensionmanager/extensionsbrowser.cpp +++ b/src/plugins/extensionmanager/extensionsbrowser.cpp @@ -220,7 +220,7 @@ public: x += iconBgSizeSmall.width() + ExPaddingGapL; y += ExPaddingGapL; const QRect itemNameR(x, y, middleColumnW, itemNameTF.lineHeight()); - const QString itemName = index.data().toString(); + const QString itemName = index.data(RoleName).toString(); const QSize checkmarkS(12, 12); const QRect checkmarkR(x + middleColumnW - checkmarkS.width(), y, @@ -714,7 +714,7 @@ QPixmap itemIcon(const QModelIndex &index, Size size) pixmap.setDevicePixelRatio(dpr); const QRect iconBgR(QPoint(), pixmap.deviceIndependentSize().toSize()); - const PluginSpec *ps = pluginSpecForName(index.data(RoleName).toString()); + const PluginSpec *ps = pluginSpecForId(index.data(RoleId).toString()); const bool isEnabled = ps == nullptr || ps->isEffectivelyEnabled(); const QGradientStops gradientStops = { {0, creatorColor(isEnabled ? Theme::Token_Gradient01_Start diff --git a/src/plugins/extensionmanager/extensionsmodel.cpp b/src/plugins/extensionmanager/extensionsmodel.cpp index d9732105e4c..0de838c3983 100644 --- a/src/plugins/extensionmanager/extensionsmodel.cpp +++ b/src/plugins/extensionmanager/extensionsmodel.cpp @@ -21,6 +21,8 @@ #include #include +#include + using namespace ExtensionSystem; using namespace Core; using namespace Utils; @@ -31,7 +33,7 @@ Q_LOGGING_CATEGORY(modelLog, "qtc.extensionmanager.model", QtWarningMsg) struct Dependency { - QString name; + QString id; QString version; }; using Dependencies = QList; @@ -41,6 +43,7 @@ struct Plugin QString copyright; Dependencies dependencies; bool isInternal = false; + QString id; QString name; QString packageUrl; QString vendor; @@ -68,6 +71,7 @@ struct Extension { QStringList tags; ItemType type = ItemTypePack; QString vendor; + QString vendorId; QString version; }; using Extensions = QList; @@ -80,7 +84,7 @@ static const Dependencies dependenciesFromJson(const QJsonObject &obj) const QJsonObject dependencyObj = dependencyVal.toObject(); const QJsonObject metaDataObj = dependencyObj.value("meta_data").toObject(); dependencies.append({ - .name = metaDataObj.value("Name").toString(), + .id = metaDataObj.value("Id").toString(), .version = metaDataObj.value("Version").toString(), }); } @@ -96,6 +100,7 @@ static Plugin pluginFromJson(const QJsonObject &obj) .copyright = metaDataObj.value("Copyright").toString(), .dependencies = dependenciesFromJson(metaDataObj), .isInternal = obj.value("is_internal").toBool(false), + .id = metaDataObj.value("Id").toString(), .name = metaDataObj.value("Name").toString(), .packageUrl = obj.value("url").toString(), .vendor = metaDataObj.value("Vendor").toString(), @@ -182,6 +187,7 @@ static Extension extensionFromJson(const QJsonObject &obj) .tags = tags, .type = obj.value("is_pack").toBool(true) ? ItemTypePack : ItemTypeExtension, .vendor = obj.value("vendor").toString(), + .vendorId = obj.value("vendor_id").toString(), .version = obj.value("version").toString(), }; @@ -204,16 +210,17 @@ static Extensions parseExtensionsRepoReply(const QByteArray &jsonData) static Extension extensionFromPluginSpec(const PluginSpec *pluginSpec) { - const Dependencies dependencies = transform(pluginSpec->dependencies(), - [](const PluginDependency &pd) -> Dependency { - return { - .name = pd.name, - .version = pd.version, - }; - }); + const Dependencies dependencies + = transform(pluginSpec->dependencies(), [](const PluginDependency &pd) -> Dependency { + return { + .id = pd.id, + .version = pd.version, + }; + }); const Plugin plugin = { .copyright = pluginSpec->copyright(), .dependencies = dependencies, + .id = pluginSpec->id(), .name = pluginSpec->name(), .packageUrl = {}, .vendor = pluginSpec->vendor(), @@ -222,7 +229,7 @@ static Extension extensionFromPluginSpec(const PluginSpec *pluginSpec) const QStringList lines = pluginSpec->description().split('\n') + pluginSpec->longDescription().split('\n'); - const TextData text = {{ pluginSpec->name(), lines }}; + const TextData text = {{pluginSpec->name(), lines}}; LinksData links; if (const QString url = pluginSpec->url(); !url.isEmpty()) links.append({{}, url}); @@ -243,7 +250,7 @@ static Extension extensionFromPluginSpec(const PluginSpec *pluginSpec) .compatVersion = pluginSpec->compatVersion(), .copyright = pluginSpec->copyright(), .description = description, - .id = {}, + .id = pluginSpec->id(), .license = pluginSpec->license(), .name = pluginSpec->name(), .platforms = platforms, @@ -251,6 +258,7 @@ static Extension extensionFromPluginSpec(const PluginSpec *pluginSpec) .tags = {}, .type = ItemTypeExtension, .vendor = pluginSpec->vendor(), + .vendorId = pluginSpec->vendorId(), .version = pluginSpec->version(), }; return extension; @@ -302,8 +310,8 @@ static QStringList dependenciesFromExtension(const Extension &extension) QStringList dependencies; for (const Plugin &plugin : extension.plugins) { for (const Dependency &dependency : plugin.dependencies) { - const QString withVersion = QString::fromLatin1("%1 (%2)").arg(dependency.name) - .arg(dependency.version); + const QString withVersion + = QString::fromLatin1("%1 (%2)").arg(dependency.id).arg(dependency.version); dependencies.append(withVersion); } } @@ -317,7 +325,10 @@ static QVariant dataFromExtension(const Extension &extension, int role) switch (role) { case Qt::DisplayRole: case RoleName: - return extension.name; + return Utils::findOr( + QStringList{extension.name, extension.id}, + "No name found", + std::not_fn(&QString::isEmpty)); case RoleCompatVersion: return extension.compatVersion; case RoleCopyright: @@ -345,7 +356,7 @@ static QVariant dataFromExtension(const Extension &extension, int role) case RolePlugins: { PluginsData plugins; for (const Plugin &plugin : extension.plugins) - plugins.append(qMakePair(plugin.name, plugin.packageUrl)); + plugins.append(qMakePair(plugin.id, plugin.packageUrl)); return QVariant::fromValue(plugins); } case RoleSize: @@ -356,6 +367,8 @@ static QVariant dataFromExtension(const Extension &extension, int role) return !extension.vendor.isEmpty() ? extension.vendor : QVariant(); case RoleVersion: return !extension.version.isEmpty() ? extension.version : QVariant(); + case RoleVendorId: + return extension.vendorId; default: break; } @@ -367,7 +380,7 @@ ExtensionState extensionState(const QModelIndex &index) if (index.data(RoleItemType) != ItemTypeExtension) return None; - const PluginSpec *ps = pluginSpecForName(index.data(RoleName).toString()); + const PluginSpec *ps = pluginSpecForId(index.data(RoleId).toString()); if (!ps) return NotInstalled; @@ -398,9 +411,9 @@ QVariant ExtensionsModel::data(const QModelIndex &index, int role) const const QVariant extensionData = dataFromExtension(extension, role); // If data is unavailable, retrieve it from the first contained plugin if (extensionData.isNull() && !extension.plugins.isEmpty()) { - const QString firstPluginName = extension.plugins.constFirst().name; - const Extension firstPluginExtension = - findOrDefault(d->extensions, Utils::equal(&Extension::name, firstPluginName)); + const QString firstPluginId = extension.plugins.constFirst().id; + const Extension firstPluginExtension + = findOrDefault(d->extensions, Utils::equal(&Extension::id, firstPluginId)); if (firstPluginExtension.name.isEmpty()) return {}; return dataFromExtension(firstPluginExtension, role); @@ -416,9 +429,9 @@ void ExtensionsModel::setExtensionsJson(const QByteArray &json) endResetModel(); } -PluginSpec *pluginSpecForName(const QString &pluginName) +PluginSpec *pluginSpecForId(const QString &pluginId) { - return findOrDefault(PluginManager::plugins(), equal(&PluginSpec::name, pluginName)); + return findOrDefault(PluginManager::plugins(), equal(&PluginSpec::id, pluginId)); } } // ExtensionManager::Internal diff --git a/src/plugins/extensionmanager/extensionsmodel.h b/src/plugins/extensionmanager/extensionsmodel.h index 999f7618965..e837c2ae452 100644 --- a/src/plugins/extensionmanager/extensionsmodel.h +++ b/src/plugins/extensionmanager/extensionsmodel.h @@ -50,6 +50,7 @@ enum Role { RoleSize, RoleTags, RoleVendor, + RoleVendorId, RoleVersion, }; @@ -68,7 +69,7 @@ private: class ExtensionsModelPrivate *d = nullptr; }; -ExtensionSystem::PluginSpec *pluginSpecForName(const QString &pluginName); +ExtensionSystem::PluginSpec *pluginSpecForId(const QString &pluginId); #ifdef WITH_TESTS QObject *createExtensionsModelTest(); diff --git a/src/plugins/fakevim/FakeVim.json.in b/src/plugins/fakevim/FakeVim.json.in index ebeaec60ed5..d4d73da25b3 100644 --- a/src/plugins/fakevim/FakeVim.json.in +++ b/src/plugins/fakevim/FakeVim.json.in @@ -1,7 +1,9 @@ { + "Id" : "fakevim", "Name" : "FakeVim", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/fossil/Fossil.json.in b/src/plugins/fossil/Fossil.json.in index 268555fa062..524cf8f7fbd 100644 --- a/src/plugins/fossil/Fossil.json.in +++ b/src/plugins/fossil/Fossil.json.in @@ -1,8 +1,10 @@ { + "Id" : "fossil", "Name" : "Fossil", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "DisabledByDefault" : true, + "VendorId" : "arturshepilko", "Vendor" : "Artur Shepilko", "Copyright" : "(C) 2018 Artur Shepilko", "License" : [ "Commercial Usage", diff --git a/src/plugins/genericprojectmanager/GenericProjectManager.json.in b/src/plugins/genericprojectmanager/GenericProjectManager.json.in index 14b16be88c5..aafd33af2ea 100644 --- a/src/plugins/genericprojectmanager/GenericProjectManager.json.in +++ b/src/plugins/genericprojectmanager/GenericProjectManager.json.in @@ -1,7 +1,9 @@ { + "Id" : "genericprojectmanager", "Name" : "GenericProjectManager", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/git/Git.json.in b/src/plugins/git/Git.json.in index 130df1e9eae..30e94e0595f 100644 --- a/src/plugins/git/Git.json.in +++ b/src/plugins/git/Git.json.in @@ -1,7 +1,9 @@ { + "Id" : "git", "Name" : "Git", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/gitlab/GitLab.json.in b/src/plugins/gitlab/GitLab.json.in index e55a3612da2..3360fba5106 100644 --- a/src/plugins/gitlab/GitLab.json.in +++ b/src/plugins/gitlab/GitLab.json.in @@ -1,24 +1,26 @@ { -"Name" : "GitLab", -"Version" : "${IDE_VERSION}", -"CompatVersion" : "${IDE_VERSION_COMPAT}", -"Experimental" : true, -"Vendor" : "The Qt Company Ltd", -"Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", -"License" : [ "Commercial Usage", -"", -"Licensees holding valid Qt Commercial licenses may use this plugin in accordance with the Qt Commercial License Agreement provided with the Software or, alternatively, in accordance with the terms contained in a written agreement between you and The Qt Company.", -"", -"GNU General Public License Usage", -"", -"Alternatively, this file may be used under the terms of the GNU General Public License version 3 as published by the Free Software Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT included in the packaging of this file. Please review the following information to ensure the GNU General Public License requirements will be met: https://www.gnu.org/licenses/gpl-3.0.html." -], -"Description" : "Create connections to GitLab servers.", -"LongDescription" : [ - "You also need:", - "- GitLab account" -], -"Url" : "https://www.qt.io", -"DocumentationUrl" : "https://doc.qt.io/qtcreator/creator-vcs-gitlab.html", -${IDE_PLUGIN_DEPENDENCIES} + "Id" : "gitlab", + "Name" : "GitLab", + "Version" : "${IDE_VERSION}", + "CompatVersion" : "${IDE_VERSION_COMPAT}", + "Experimental" : true, + "VendorId" : "theqtcompany", + "Vendor" : "The Qt Company Ltd", + "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", + "License" : [ "Commercial Usage", + "", + "Licensees holding valid Qt Commercial licenses may use this plugin in accordance with the Qt Commercial License Agreement provided with the Software or, alternatively, in accordance with the terms contained in a written agreement between you and The Qt Company.", + "", + "GNU General Public License Usage", + "", + "Alternatively, this file may be used under the terms of the GNU General Public License version 3 as published by the Free Software Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT included in the packaging of this file. Please review the following information to ensure the GNU General Public License requirements will be met: https://www.gnu.org/licenses/gpl-3.0.html." + ], + "Description" : "Create connections to GitLab servers.", + "LongDescription" : [ + "You also need:", + "- GitLab account" + ], + "Url" : "https://www.qt.io", + "DocumentationUrl" : "https://doc.qt.io/qtcreator/creator-vcs-gitlab.html", + ${IDE_PLUGIN_DEPENDENCIES} } diff --git a/src/plugins/glsleditor/GLSLEditor.json.in b/src/plugins/glsleditor/GLSLEditor.json.in index e9c45033066..399ee75a8d8 100644 --- a/src/plugins/glsleditor/GLSLEditor.json.in +++ b/src/plugins/glsleditor/GLSLEditor.json.in @@ -1,7 +1,9 @@ { + "Id" : "glsleditor", "Name" : "GLSLEditor", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/haskell/Haskell.json.in b/src/plugins/haskell/Haskell.json.in index 96147540a37..ebdb9297473 100644 --- a/src/plugins/haskell/Haskell.json.in +++ b/src/plugins/haskell/Haskell.json.in @@ -1,8 +1,10 @@ { + "Id" : "haskell", "Name" : "Haskell", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "DisabledByDefault" : true, + "VendorId" : "eikeziller", "Vendor" : "Eike Ziller", "Copyright" : "(C) Eike Ziller", "License" : "MIT", diff --git a/src/plugins/helloworld/HelloWorld.json.in b/src/plugins/helloworld/HelloWorld.json.in index 9438334fdd7..c06a2255c8f 100644 --- a/src/plugins/helloworld/HelloWorld.json.in +++ b/src/plugins/helloworld/HelloWorld.json.in @@ -1,8 +1,10 @@ { + "Id" : "helloworld", "Name" : "HelloWorld", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "DisabledByDefault" : true, + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/help/Help.json.in b/src/plugins/help/Help.json.in index fb169f0e792..6e20f8448a6 100644 --- a/src/plugins/help/Help.json.in +++ b/src/plugins/help/Help.json.in @@ -1,7 +1,9 @@ { + "Id" : "help", "Name" : "Help", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/imageviewer/ImageViewer.json.in b/src/plugins/imageviewer/ImageViewer.json.in index 65457a42b83..33db9783530 100644 --- a/src/plugins/imageviewer/ImageViewer.json.in +++ b/src/plugins/imageviewer/ImageViewer.json.in @@ -1,7 +1,9 @@ { + "Id" : "imageviewer", "Name" : "ImageViewer", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/incredibuild/IncrediBuild.json.in b/src/plugins/incredibuild/IncrediBuild.json.in index 57faaa9a2b0..40944329c77 100644 --- a/src/plugins/incredibuild/IncrediBuild.json.in +++ b/src/plugins/incredibuild/IncrediBuild.json.in @@ -1,8 +1,10 @@ { + "Id" : "incredibuild", "Name" : "IncrediBuild", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "Platform" : "^(Linux|Windows)", + "VendorId" : "incredibuild", "Vendor" : "IncrediBuild", "Copyright" : "(C) IncrediBuild", "Category" : "Build Systems", diff --git a/src/plugins/insight/Insight.json.in b/src/plugins/insight/Insight.json.in index 509cc361200..6d7e3c82e81 100644 --- a/src/plugins/insight/Insight.json.in +++ b/src/plugins/insight/Insight.json.in @@ -1,8 +1,10 @@ { + "Id" : "insight", "Name" : "Insight", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "Revision" : "${QTC_PLUGIN_REVISION}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/ios/Ios.json.in b/src/plugins/ios/Ios.json.in index c2c7cc4585c..77f170f8eb5 100644 --- a/src/plugins/ios/Ios.json.in +++ b/src/plugins/ios/Ios.json.in @@ -1,8 +1,10 @@ { + "Id" : "ios", "Name" : "Ios", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "Platform" : "OS X.*", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/languageclient/LanguageClient.json.in b/src/plugins/languageclient/LanguageClient.json.in index 97335033c66..1d72c4d2e73 100644 --- a/src/plugins/languageclient/LanguageClient.json.in +++ b/src/plugins/languageclient/LanguageClient.json.in @@ -1,7 +1,9 @@ { - "Name" : "LanguageClient", + "Id" : "languageclient", + "Name" : "Language Client", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/languageclient/lualanguageclient/LuaLanguageClient.json.in b/src/plugins/languageclient/lualanguageclient/LuaLanguageClient.json.in index c6b63411c62..581823c7159 100644 --- a/src/plugins/languageclient/lualanguageclient/LuaLanguageClient.json.in +++ b/src/plugins/languageclient/lualanguageclient/LuaLanguageClient.json.in @@ -1,10 +1,12 @@ { - "Name" : "LuaLanguageClient", + "Id" : "lualanguageclient", + "Name" : "Lua Language Client", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "LuaCompatibleVersion" : "14.0.0", "DisabledByDefault" : true, "SoftLoadable" : true, + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/lua/Lua.json.in b/src/plugins/lua/Lua.json.in index 5bc1d1c95d6..513a9151429 100644 --- a/src/plugins/lua/Lua.json.in +++ b/src/plugins/lua/Lua.json.in @@ -1,10 +1,12 @@ { + "Id" : "lua", "Name" : "Lua", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "LuaCompatibleVersion" : "14.0.0", "DisabledByDefault" : true, "SoftLoadable" : true, + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/lua/luapluginspec.cpp b/src/plugins/lua/luapluginspec.cpp index 8a829c5f5ef..2fe6c2c4e9f 100644 --- a/src/plugins/lua/luapluginspec.cpp +++ b/src/plugins/lua/luapluginspec.cpp @@ -95,14 +95,14 @@ ExtensionSystem::IPlugin *LuaPluginSpec::plugin() const bool LuaPluginSpec::provides(PluginSpec *spec, const PluginDependency &dependency) const { - if (QString::compare(dependency.name, spec->name(), Qt::CaseInsensitive) != 0) + if (QString::compare(dependency.id, spec->id(), Qt::CaseInsensitive) != 0) return false; const QString luaCompatibleVersion = spec->metaData().value("LuaCompatibleVersion").toString(); if (luaCompatibleVersion.isEmpty()) { qCWarning(luaPluginSpecLog) - << "The plugin" << spec->name() + << "The plugin" << spec->id() << "does not specify a \"LuaCompatibleVersion\", but the lua plugin" << name() << "requires it."; return false; diff --git a/src/plugins/lua/meta/qtc.lua b/src/plugins/lua/meta/qtc.lua index 6a02f4bb965..073828368d1 100644 --- a/src/plugins/lua/meta/qtc.lua +++ b/src/plugins/lua/meta/qtc.lua @@ -9,10 +9,12 @@ PluginSpec = {} Qtc = {} ---@class (exact) QtcPlugin ----@field Name string The name of the plugin. +---@field Id string The id of the plugin. +---@field Name string? The name of the plugin. ( Default: `Id` ) ---@field Version string The version of the plugin. (`major.minor.patch`) ---@field CompatVersion string The lowest previous version of the plugin that this one is compatible to. (`major.minor.patch`) ----@field Vendor string The vendor of the plugin. +---@field VendorId string +---@field Vendor string? The display name of the vendor of the plugin. ( Default: `VendorId` ) ---@field Category string The category of the plugin. ---@field Dependencies? QtcPluginDependency[] The dependencies of the plugin. ---@field Description? string A short one line description of the plugin. @@ -33,7 +35,7 @@ Qtc = {} QtcPlugin = {} ---@class QtcPluginDependency ----@field Name string The name of the dependency. +---@field Id string The name of the dependency. ---@field Version string The version of the dependency. (`major.minor.patch`) ---@field Required? "required"|"optional"|"test" Whether the dependency is required or not. (Default: "required") QtcPluginDependency = {} diff --git a/src/plugins/macros/Macros.json.in b/src/plugins/macros/Macros.json.in index 8b84a56f467..c6b2e0b5e8c 100644 --- a/src/plugins/macros/Macros.json.in +++ b/src/plugins/macros/Macros.json.in @@ -1,7 +1,9 @@ { + "Id" : "macros", "Name" : "Macros", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/marketplace/Marketplace.json.in b/src/plugins/marketplace/Marketplace.json.in index 5d529715878..17bf05cdb4e 100644 --- a/src/plugins/marketplace/Marketplace.json.in +++ b/src/plugins/marketplace/Marketplace.json.in @@ -1,19 +1,21 @@ { -"Name" : "Marketplace", -"Version" : "${IDE_VERSION}", -"CompatVersion" : "${IDE_VERSION_COMPAT}", -"Vendor" : "The Qt Company Ltd", -"Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", -"License" : [ "Commercial Usage", -"", -"Licensees holding valid Qt Commercial licenses may use this plugin in accordance with the Qt Commercial License Agreement provided with the Software or, alternatively, in accordance with the terms contained in a written agreement between you and The Qt Company.", -"", -"GNU General Public License Usage", -"", -"Alternatively, this file may be used under the terms of the GNU General Public License version 3 as published by the Free Software Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT included in the packaging of this file. Please review the following information to ensure the GNU General Public License requirements will be met: https://www.gnu.org/licenses/gpl-3.0.html." -], -"Description" : "Install applications from Qt Marketplace.", -"LongDescription" : [], -"Url" : "https://www.qt.io", -${IDE_PLUGIN_DEPENDENCIES} + "Id" : "marketplace", + "Name" : "Marketplace", + "Version" : "${IDE_VERSION}", + "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", + "Vendor" : "The Qt Company Ltd", + "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", + "License" : [ "Commercial Usage", + "", + "Licensees holding valid Qt Commercial licenses may use this plugin in accordance with the Qt Commercial License Agreement provided with the Software or, alternatively, in accordance with the terms contained in a written agreement between you and The Qt Company.", + "", + "GNU General Public License Usage", + "", + "Alternatively, this file may be used under the terms of the GNU General Public License version 3 as published by the Free Software Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT included in the packaging of this file. Please review the following information to ensure the GNU General Public License requirements will be met: https://www.gnu.org/licenses/gpl-3.0.html." + ], + "Description" : "Install applications from Qt Marketplace.", + "LongDescription" : [], + "Url" : "https://www.qt.io", + ${IDE_PLUGIN_DEPENDENCIES} } diff --git a/src/plugins/mcusupport/McuSupport.json.in b/src/plugins/mcusupport/McuSupport.json.in index 491147f8e5a..c17c414f2b5 100644 --- a/src/plugins/mcusupport/McuSupport.json.in +++ b/src/plugins/mcusupport/McuSupport.json.in @@ -1,8 +1,10 @@ { + "Id" : "mcusupport", "Name" : "McuSupport", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "DisabledByDefault" : true, + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/mercurial/Mercurial.json.in b/src/plugins/mercurial/Mercurial.json.in index 0b971d0cb77..73c6884850e 100644 --- a/src/plugins/mercurial/Mercurial.json.in +++ b/src/plugins/mercurial/Mercurial.json.in @@ -1,7 +1,9 @@ { + "Id" : "mercurial", "Name" : "Mercurial", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "brianmcgillion", "Vendor" : "Brian McGillion", "Copyright" : "(C) 2016 Brian McGillion, (C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/mesonprojectmanager/MesonProjectManager.json.in b/src/plugins/mesonprojectmanager/MesonProjectManager.json.in index a7eeaff3b79..a480a78f670 100644 --- a/src/plugins/mesonprojectmanager/MesonProjectManager.json.in +++ b/src/plugins/mesonprojectmanager/MesonProjectManager.json.in @@ -1,7 +1,9 @@ { + "Id" : "mesonprojectmanager", "Name" : "MesonProjectManager", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "laboratory of plasma physics", "Vendor" : "Laboratory of Plasma Physics", "Experimental" : true, "DisabledByDefault" : true, diff --git a/src/plugins/modeleditor/ModelEditor.json.in b/src/plugins/modeleditor/ModelEditor.json.in index f118f7ba6d0..2a2df2c8ccc 100644 --- a/src/plugins/modeleditor/ModelEditor.json.in +++ b/src/plugins/modeleditor/ModelEditor.json.in @@ -1,7 +1,9 @@ { + "Id" : "modeleditor", "Name" : "ModelEditor", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "jochenbecher", "Vendor" : "Jochen Becher", "Copyright" : "(C) 2017 Jochen Becher, (C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/nim/Nim.json.in b/src/plugins/nim/Nim.json.in index e78552ab194..9d9e0c2dbd8 100644 --- a/src/plugins/nim/Nim.json.in +++ b/src/plugins/nim/Nim.json.in @@ -1,7 +1,9 @@ { + "Id" : "nim", "Name" : "Nim", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "filippocucchetto", "Vendor" : "Filippo Cucchetto", "Copyright" : "(C) 2017 Filippo Cucchetto, (C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/perforce/Perforce.json.in b/src/plugins/perforce/Perforce.json.in index 0aaaa03b488..4685d0b6c76 100644 --- a/src/plugins/perforce/Perforce.json.in +++ b/src/plugins/perforce/Perforce.json.in @@ -1,8 +1,10 @@ { + "Id" : "perforce", "Name" : "Perforce", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "DisabledByDefault" : true, + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/perfprofiler/PerfProfiler.json.in b/src/plugins/perfprofiler/PerfProfiler.json.in index 824ef6c3856..0e8a21dfc69 100644 --- a/src/plugins/perfprofiler/PerfProfiler.json.in +++ b/src/plugins/perfprofiler/PerfProfiler.json.in @@ -1,7 +1,9 @@ { + "Id" : "perfprofiler", "Name" : "PerfProfiler", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/projectexplorer/ProjectExplorer.json.in b/src/plugins/projectexplorer/ProjectExplorer.json.in index ea8a6050c02..dfd3dae87da 100644 --- a/src/plugins/projectexplorer/ProjectExplorer.json.in +++ b/src/plugins/projectexplorer/ProjectExplorer.json.in @@ -1,7 +1,9 @@ { - "Name" : "ProjectExplorer", + "Id" : "projectexplorer", + "Name" : "Project Explorer", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/python/Python.json.in b/src/plugins/python/Python.json.in index 1e58a2465d7..10cb3f6d2b7 100644 --- a/src/plugins/python/Python.json.in +++ b/src/plugins/python/Python.json.in @@ -1,7 +1,9 @@ { + "Id" : "python", "Name" : "Python", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/qbsprojectmanager/QbsProjectManager.json.in b/src/plugins/qbsprojectmanager/QbsProjectManager.json.in index 4aad09eda53..396f93b4e28 100644 --- a/src/plugins/qbsprojectmanager/QbsProjectManager.json.in +++ b/src/plugins/qbsprojectmanager/QbsProjectManager.json.in @@ -1,7 +1,9 @@ { + "Id" : "qbsprojectmanager", "Name" : "QbsProjectManager", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/qmakeprojectmanager/QmakeProjectManager.json.in b/src/plugins/qmakeprojectmanager/QmakeProjectManager.json.in index ce585761843..56d7a0249a7 100644 --- a/src/plugins/qmakeprojectmanager/QmakeProjectManager.json.in +++ b/src/plugins/qmakeprojectmanager/QmakeProjectManager.json.in @@ -1,7 +1,9 @@ { + "Id" : "qmakeprojectmanager", "Name" : "QmakeProjectManager", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/qmldesigner/QmlDesigner.json.in b/src/plugins/qmldesigner/QmlDesigner.json.in index 1eebfc586ab..273802607d9 100644 --- a/src/plugins/qmldesigner/QmlDesigner.json.in +++ b/src/plugins/qmldesigner/QmlDesigner.json.in @@ -1,7 +1,9 @@ { + "Id" : "qmldesigner", "Name" : "QmlDesigner", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/qmldesignerbase/QmlDesignerBase.json.in b/src/plugins/qmldesignerbase/QmlDesignerBase.json.in index c41ed6bc7ba..0bc7ee6dd46 100644 --- a/src/plugins/qmldesignerbase/QmlDesignerBase.json.in +++ b/src/plugins/qmldesignerbase/QmlDesignerBase.json.in @@ -1,7 +1,9 @@ { + "Id" : "qmldesignerbase", "Name" : "QmlDesignerBase", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/qmldesignerlite/QmlDesignerLite.json.in b/src/plugins/qmldesignerlite/QmlDesignerLite.json.in index 0a40a22f77f..4be3149a85e 100644 --- a/src/plugins/qmldesignerlite/QmlDesignerLite.json.in +++ b/src/plugins/qmldesignerlite/QmlDesignerLite.json.in @@ -1,7 +1,9 @@ { + "Id" : "qmldesignerlite", "Name" : "QmlDesignerLite", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/qmljseditor/QmlJSEditor.json.in b/src/plugins/qmljseditor/QmlJSEditor.json.in index d57c9cda3da..06aa06b2a61 100644 --- a/src/plugins/qmljseditor/QmlJSEditor.json.in +++ b/src/plugins/qmljseditor/QmlJSEditor.json.in @@ -1,7 +1,9 @@ { + "Id" : "qmljseditor", "Name" : "QmlJSEditor", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/qmljstools/QmlJSTools.json.in b/src/plugins/qmljstools/QmlJSTools.json.in index 9e80e06c795..d4603446f48 100644 --- a/src/plugins/qmljstools/QmlJSTools.json.in +++ b/src/plugins/qmljstools/QmlJSTools.json.in @@ -1,7 +1,9 @@ { + "Id" : "qmljstools", "Name" : "QmlJSTools", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/qmlpreview/QmlPreview.json.in b/src/plugins/qmlpreview/QmlPreview.json.in index 22b49bd3e98..3898d090b86 100644 --- a/src/plugins/qmlpreview/QmlPreview.json.in +++ b/src/plugins/qmlpreview/QmlPreview.json.in @@ -1,7 +1,9 @@ { + "Id" : "qmlpreview", "Name" : "QmlPreview", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/qmlprofiler/QmlProfiler.json.in b/src/plugins/qmlprofiler/QmlProfiler.json.in index 83d60c0a0fa..1f5714d7cb0 100644 --- a/src/plugins/qmlprofiler/QmlProfiler.json.in +++ b/src/plugins/qmlprofiler/QmlProfiler.json.in @@ -1,7 +1,9 @@ { + "Id" : "qmlprofiler", "Name" : "QmlProfiler", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/qmlprojectmanager/QmlProjectManager.json.in b/src/plugins/qmlprojectmanager/QmlProjectManager.json.in index 9146e1dcfae..624751c0a3a 100644 --- a/src/plugins/qmlprojectmanager/QmlProjectManager.json.in +++ b/src/plugins/qmlprojectmanager/QmlProjectManager.json.in @@ -1,7 +1,9 @@ { + "Id" : "qmlprojectmanager", "Name" : "QmlProjectManager", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/qnx/Qnx.json.in b/src/plugins/qnx/Qnx.json.in index ff28a080c66..4dd783691bc 100644 --- a/src/plugins/qnx/Qnx.json.in +++ b/src/plugins/qnx/Qnx.json.in @@ -1,7 +1,9 @@ { + "Id" : "qnx", "Name" : "Qnx", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "blackberry", "Vendor" : "BlackBerry", "Copyright" : "(C) 2017 BlackBerry, (C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/qtapplicationmanager/QtApplicationManagerIntegration.json.in b/src/plugins/qtapplicationmanager/QtApplicationManagerIntegration.json.in index 32720c5287a..a3b32809bd6 100644 --- a/src/plugins/qtapplicationmanager/QtApplicationManagerIntegration.json.in +++ b/src/plugins/qtapplicationmanager/QtApplicationManagerIntegration.json.in @@ -1,9 +1,11 @@ { + "Id" : "qtapplicationmanagerintegration", "Name" : "QtApplicationManagerIntegration", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "Experimental" : true, "Revision" : "${QTC_PLUGIN_REVISION}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) 2020 Luxoft Sweden AB, (C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/qtsupport/QtSupport.json.in b/src/plugins/qtsupport/QtSupport.json.in index 77dc60fa506..d8202715edc 100644 --- a/src/plugins/qtsupport/QtSupport.json.in +++ b/src/plugins/qtsupport/QtSupport.json.in @@ -1,7 +1,9 @@ { + "Id" : "qtsupport", "Name" : "QtSupport", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/remotelinux/RemoteLinux.json.in b/src/plugins/remotelinux/RemoteLinux.json.in index 9bd1b3166c0..d54b4a51922 100644 --- a/src/plugins/remotelinux/RemoteLinux.json.in +++ b/src/plugins/remotelinux/RemoteLinux.json.in @@ -1,7 +1,9 @@ { + "Id" : "remotelinux", "Name" : "RemoteLinux", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/resourceeditor/ResourceEditor.json.in b/src/plugins/resourceeditor/ResourceEditor.json.in index 8d434bad8db..e24bf029143 100644 --- a/src/plugins/resourceeditor/ResourceEditor.json.in +++ b/src/plugins/resourceeditor/ResourceEditor.json.in @@ -1,7 +1,9 @@ { + "Id" : "resourceeditor", "Name" : "ResourceEditor", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/saferenderer/SafeRenderer.json.in b/src/plugins/saferenderer/SafeRenderer.json.in index 00e09b9ccf9..1d2d6bfbe20 100644 --- a/src/plugins/saferenderer/SafeRenderer.json.in +++ b/src/plugins/saferenderer/SafeRenderer.json.in @@ -1,8 +1,10 @@ { + "Id" : "saferenderer", "Name" : "SafeRenderer", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "DisabledByDefault" : true, + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/screenrecorder/ScreenRecorder.json.in b/src/plugins/screenrecorder/ScreenRecorder.json.in index 6e8bd98995b..5628c69738b 100644 --- a/src/plugins/screenrecorder/ScreenRecorder.json.in +++ b/src/plugins/screenrecorder/ScreenRecorder.json.in @@ -1,7 +1,9 @@ { + "Id" : "screenrecorder", "Name" : "ScreenRecorder", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/scxmleditor/ScxmlEditor.json.in b/src/plugins/scxmleditor/ScxmlEditor.json.in index 9e291fc31de..8d3fbc590bd 100644 --- a/src/plugins/scxmleditor/ScxmlEditor.json.in +++ b/src/plugins/scxmleditor/ScxmlEditor.json.in @@ -1,7 +1,9 @@ { + "Id" : "scxmleditor", "Name" : "ScxmlEditor", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/serialterminal/SerialTerminal.json.in b/src/plugins/serialterminal/SerialTerminal.json.in index ae295ebbcf1..3144f2ce925 100644 --- a/src/plugins/serialterminal/SerialTerminal.json.in +++ b/src/plugins/serialterminal/SerialTerminal.json.in @@ -1,7 +1,9 @@ { + "Id" : "serialterminal", "Name" : "SerialTerminal", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "benjaminbalga", "Vendor" : "Benjamin Balga", "Experimental" : true, "DisabledByDefault" : true, diff --git a/src/plugins/silversearcher/SilverSearcher.json.in b/src/plugins/silversearcher/SilverSearcher.json.in index e3b1b9236ed..a2b051302fe 100644 --- a/src/plugins/silversearcher/SilverSearcher.json.in +++ b/src/plugins/silversearcher/SilverSearcher.json.in @@ -1,8 +1,10 @@ { + "Id" : "silversearcher", "Name" : "SilverSearcher", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "Experimental" : true, + "VendorId" : "przemyslawgorszkowski", "Vendor" : "Przemyslaw Gorszkowski", "Copyright" : "(C) 2017 Przemyslaw Gorszkowski, (C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/squish/Squish.json.in b/src/plugins/squish/Squish.json.in index 293867ca12a..192ced53b99 100644 --- a/src/plugins/squish/Squish.json.in +++ b/src/plugins/squish/Squish.json.in @@ -1,37 +1,39 @@ { -"Name" : "Squish", -"Version" : "${IDE_VERSION}", -"CompatVersion" : "${IDE_VERSION_COMPAT}", -"Experimental" : true, -"Vendor" : "The Qt Company Ltd", -"Copyright" : "(C) 2022 The Qt Company Ltd", -"License" : [ "Commercial Usage", -"", -"Licensees holding valid Qt Commercial licenses may use this plugin in accordance with the Qt Commercial License Agreement provided with the Software or, alternatively, in accordance with the terms contained in a written agreement between you and The Qt Company.", -"", -"GNU General Public License Usage", -"", -"Alternatively, this file may be used under the terms of the GNU General Public License version 3 as published by the Free Software Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT included in the packaging of this file. Please review the following information to ensure the GNU General Public License requirements will be met: https://www.gnu.org/licenses/gpl-3.0.html." -], -"Description" : "Test applications with the Squish automated GUI testing framework.", -"LongDescription" : [ - "Map AUTs (application under test) and run Squish test suites and cases.", - "You also need:", - "- Access to a Squish server" -], -"Url" : "https://www.qt.io", -"DocumentationUrl" : "https://doc.qt.io/qtcreator/creator-reference-squish-output.html", -${IDE_PLUGIN_DEPENDENCIES}, + "Id" : "squish", + "Name" : "Squish", + "Version" : "${IDE_VERSION}", + "CompatVersion" : "${IDE_VERSION_COMPAT}", + "Experimental" : true, + "VendorId" : "theqtcompany", + "Vendor" : "The Qt Company Ltd", + "Copyright" : "(C) 2022 The Qt Company Ltd", + "License" : [ "Commercial Usage", + "", + "Licensees holding valid Qt Commercial licenses may use this plugin in accordance with the Qt Commercial License Agreement provided with the Software or, alternatively, in accordance with the terms contained in a written agreement between you and The Qt Company.", + "", + "GNU General Public License Usage", + "", + "Alternatively, this file may be used under the terms of the GNU General Public License version 3 as published by the Free Software Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT included in the packaging of this file. Please review the following information to ensure the GNU General Public License requirements will be met: https://www.gnu.org/licenses/gpl-3.0.html." + ], + "Description" : "Test applications with the Squish automated GUI testing framework.", + "LongDescription" : [ + "Map AUTs (application under test) and run Squish test suites and cases.", + "You also need:", + "- Access to a Squish server" + ], + "Url" : "https://www.qt.io", + "DocumentationUrl" : "https://doc.qt.io/qtcreator/creator-reference-squish-output.html", + ${IDE_PLUGIN_DEPENDENCIES}, -"Mimetypes" : [ - "", - "", - " ", - " ", - " Squish objects.map File", - " ", - " ", - "" -], -"JsonWizardPaths" : [":/squish/wizard/"] + "Mimetypes" : [ + "", + "", + " ", + " ", + " Squish objects.map File", + " ", + " ", + "" + ], + "JsonWizardPaths" : [":/squish/wizard/"] } diff --git a/src/plugins/studiowelcome/StudioWelcome.json.in b/src/plugins/studiowelcome/StudioWelcome.json.in index 5ab72606cf6..7d0d4426475 100644 --- a/src/plugins/studiowelcome/StudioWelcome.json.in +++ b/src/plugins/studiowelcome/StudioWelcome.json.in @@ -1,8 +1,10 @@ { + "Id" : "studiowelcome", "Name" : "StudioWelcome", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "DisabledByDefault" : true, + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/subversion/Subversion.json.in b/src/plugins/subversion/Subversion.json.in index 5a8dbd542ec..e414103f4fd 100644 --- a/src/plugins/subversion/Subversion.json.in +++ b/src/plugins/subversion/Subversion.json.in @@ -1,7 +1,9 @@ { + "Id" : "subversion", "Name" : "Subversion", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/terminal/Terminal.json.in b/src/plugins/terminal/Terminal.json.in index f64b61ffa6a..04b3633172e 100644 --- a/src/plugins/terminal/Terminal.json.in +++ b/src/plugins/terminal/Terminal.json.in @@ -1,7 +1,9 @@ { + "Id" : "terminal", "Name" : "Terminal", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/texteditor/TextEditor.json.in b/src/plugins/texteditor/TextEditor.json.in index daad6a29c79..9767f4cca54 100644 --- a/src/plugins/texteditor/TextEditor.json.in +++ b/src/plugins/texteditor/TextEditor.json.in @@ -1,7 +1,9 @@ { + "Id" : "texteditor", "Name" : "TextEditor", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/todo/Todo.json.in b/src/plugins/todo/Todo.json.in index 0e2569bef37..235ef651ce3 100644 --- a/src/plugins/todo/Todo.json.in +++ b/src/plugins/todo/Todo.json.in @@ -1,8 +1,10 @@ { + "Id" : "todo", "Name" : "Todo", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "Experimental" : true, + "VendorId" : "dmitrysavchenko", "Vendor" : "Dmitry Savchenko", "Copyright" : "(C) 2016 Dmitry Savchenko, Vasiliy Sorokin, (C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/updateinfo/UpdateInfo.json.in b/src/plugins/updateinfo/UpdateInfo.json.in index 33c8ad4d94e..2784e6c4236 100644 --- a/src/plugins/updateinfo/UpdateInfo.json.in +++ b/src/plugins/updateinfo/UpdateInfo.json.in @@ -1,8 +1,10 @@ { + "Id" : "updateinfo", "Name" : "UpdateInfo", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "DisabledByDefault" : true, + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/valgrind/Valgrind.json.in b/src/plugins/valgrind/Valgrind.json.in index 45fcf9d8250..b971cb2c9b8 100644 --- a/src/plugins/valgrind/Valgrind.json.in +++ b/src/plugins/valgrind/Valgrind.json.in @@ -1,7 +1,9 @@ { + "Id" : "valgrind", "Name" : "Valgrind", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/vcpkg/Vcpkg.json.in b/src/plugins/vcpkg/Vcpkg.json.in index d2cce0b1852..f8e7087fbfc 100644 --- a/src/plugins/vcpkg/Vcpkg.json.in +++ b/src/plugins/vcpkg/Vcpkg.json.in @@ -1,7 +1,9 @@ { + "Id" : "vcpkg", "Name" : "Vcpkg", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/vcsbase/VcsBase.json.in b/src/plugins/vcsbase/VcsBase.json.in index 912910368a4..e48da2dfc73 100644 --- a/src/plugins/vcsbase/VcsBase.json.in +++ b/src/plugins/vcsbase/VcsBase.json.in @@ -1,7 +1,9 @@ { + "Id" : "vcsbase", "Name" : "VcsBase", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/webassembly/WebAssembly.json.in b/src/plugins/webassembly/WebAssembly.json.in index 3467502b366..f61ce09f6e9 100644 --- a/src/plugins/webassembly/WebAssembly.json.in +++ b/src/plugins/webassembly/WebAssembly.json.in @@ -1,9 +1,11 @@ { + "Id" : "webassembly", "Name" : "WebAssembly", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", "Experimental" : true, "DisabledByDefault" : true, + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/src/plugins/welcome/Welcome.json.in b/src/plugins/welcome/Welcome.json.in index 2b53be828a2..a6466053dd2 100644 --- a/src/plugins/welcome/Welcome.json.in +++ b/src/plugins/welcome/Welcome.json.in @@ -1,7 +1,9 @@ { + "Id" : "welcome", "Name" : "Welcome", "Version" : "${IDE_VERSION}", "CompatVersion" : "${IDE_VERSION_COMPAT}", + "VendorId" : "theqtcompany", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) ${IDE_COPYRIGHT_YEAR} The Qt Company Ltd", "License" : [ "Commercial Usage", diff --git a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin1/plugin1.json b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin1/plugin1.json index 22b180f14ce..ae4f7054956 100644 --- a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin1/plugin1.json +++ b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin1/plugin1.json @@ -1,9 +1,11 @@ { + "Id" : "plugin1", "Name" : "plugin1", + "VendorId" : "theqtcompany", "Version" : "1.0.0", "CompatVersion" : "1.0.0", "Dependencies" : [ - { "Name" : "plugin2", "Version" : "1.0.0" }, - { "Name" : "plugin3", "Version" : "1.0.0" } + { "Id" : "plugin2", "Version" : "1.0.0" }, + { "Id" : "plugin3", "Version" : "1.0.0" } ] } diff --git a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin2/plugin2.json b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin2/plugin2.json index 8aa0fab6088..cd186ba7adf 100644 --- a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin2/plugin2.json +++ b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin2/plugin2.json @@ -1,5 +1,7 @@ { + "Id" : "plugin2", "Name" : "plugin2", + "VendorId" : "theqtcompany", "Version" : "1.0.0", "CompatVersion" : "1.0.0" } diff --git a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin3/plugin3.json b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin3/plugin3.json index 83ac3ff8173..951dc8844af 100644 --- a/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin3/plugin3.json +++ b/tests/auto/extensionsystem/pluginmanager/correctplugins1/plugin3/plugin3.json @@ -1,8 +1,10 @@ { + "Id" : "plugin3", "Name" : "plugin3", + "VendorId" : "theqtcompany", "Version" : "1.0.0", "CompatVersion" : "1.0.0", "Dependencies" : [ - { "Name" : "plugin2", "Version" : "1.0.0" } + { "Id" : "plugin2", "Version" : "1.0.0" } ] } diff --git a/tests/auto/extensionsystem/pluginspec/testdependencies/spec1.json b/tests/auto/extensionsystem/pluginspec/testdependencies/spec1.json index 62f4e614a92..8a205cac3da 100644 --- a/tests/auto/extensionsystem/pluginspec/testdependencies/spec1.json +++ b/tests/auto/extensionsystem/pluginspec/testdependencies/spec1.json @@ -1,12 +1,13 @@ { "IID" : "plugin", "MetaData" : { - "Name" : "plugin1", + "Id" : "plugin1", + "VendorId" : "theqtcompany", "Version" : "1.0.1", "CompatVersion" : "1.0.0", "Dependencies" : [ - { "Name" : "plugin2", "Version" : "2.3.0_2" }, - { "Name" : "plugin3", "Version" : "1.0.0" } + { "Id" : "plugin2", "Version" : "2.3.0_2" }, + { "Id" : "plugin3", "Version" : "1.0.0" } ] } } diff --git a/tests/auto/extensionsystem/pluginspec/testdependencies/spec2.json b/tests/auto/extensionsystem/pluginspec/testdependencies/spec2.json index 020bc447a85..5fc8b4e8246 100644 --- a/tests/auto/extensionsystem/pluginspec/testdependencies/spec2.json +++ b/tests/auto/extensionsystem/pluginspec/testdependencies/spec2.json @@ -1,7 +1,8 @@ { "IID" : "plugin", "MetaData" : { - "Name" : "plugin2", + "Id" : "plugin2", + "VendorId" : "theqtcompany", "Version" : "2.4.1", "CompatVersion" : "2.3.0" } diff --git a/tests/auto/extensionsystem/pluginspec/testdependencies/spec3.json b/tests/auto/extensionsystem/pluginspec/testdependencies/spec3.json index 97735823684..dc7400df741 100644 --- a/tests/auto/extensionsystem/pluginspec/testdependencies/spec3.json +++ b/tests/auto/extensionsystem/pluginspec/testdependencies/spec3.json @@ -1,7 +1,8 @@ { "IID" : "plugin", "MetaData" : { - "Name" : "plugin3", + "Id" : "plugin3", + "VendorId" : "theqtcompany", "Version" : "1.0.0", "CompatVersion" : "1.0.0" } diff --git a/tests/auto/extensionsystem/pluginspec/testdependencies/spec4.json b/tests/auto/extensionsystem/pluginspec/testdependencies/spec4.json index a574c8ee784..9877efdf8ab 100644 --- a/tests/auto/extensionsystem/pluginspec/testdependencies/spec4.json +++ b/tests/auto/extensionsystem/pluginspec/testdependencies/spec4.json @@ -1,11 +1,12 @@ { "IID" : "plugin", "MetaData" : { - "Name" : "plugin4", + "Id" : "plugin4", + "VendorId" : "theqtcompany", "Version" : "1.0.1", "CompatVersion" : "1.0.0", "Dependencies" : [ - { "Name" : "plugin5", "Version" : "2.3.0_2" } + { "Id" : "plugin5", "Version" : "2.3.0_2" } ] } } diff --git a/tests/auto/extensionsystem/pluginspec/testdependencies/spec5.json b/tests/auto/extensionsystem/pluginspec/testdependencies/spec5.json index 660aff90115..c9718ee5c67 100644 --- a/tests/auto/extensionsystem/pluginspec/testdependencies/spec5.json +++ b/tests/auto/extensionsystem/pluginspec/testdependencies/spec5.json @@ -1,7 +1,8 @@ { "IID" : "plugin", "MetaData" : { - "Name" : "plugin5", + "Id" : "plugin5", + "VendorId" : "theqtcompany", "Version" : "1.0.1", "CompatVersion" : "1.0.0" } diff --git a/tests/auto/extensionsystem/pluginspec/testdir/disabledbydefault.json b/tests/auto/extensionsystem/pluginspec/testdir/disabledbydefault.json new file mode 100644 index 00000000000..225e4322185 --- /dev/null +++ b/tests/auto/extensionsystem/pluginspec/testdir/disabledbydefault.json @@ -0,0 +1,10 @@ +{ + "IID": "plugin", + "MetaData": { + "Id": "plugin6", + "VendorId": "theqtcompany", + "Version": "1.0.1", + "CompatVersion": "1.0.0", + "DisabledByDefault": true + } +} diff --git a/tests/auto/extensionsystem/pluginspec/testplugin/testplugin.json b/tests/auto/extensionsystem/pluginspec/testplugin/testplugin.json index f6c891e9d39..286e7362edd 100644 --- a/tests/auto/extensionsystem/pluginspec/testplugin/testplugin.json +++ b/tests/auto/extensionsystem/pluginspec/testplugin/testplugin.json @@ -1,4 +1,6 @@ { + "Id": "myplugin", "Name" : "MyPlugin", + "VendorId" : "theqtcompany", "Version" : "1.0.0" } diff --git a/tests/auto/extensionsystem/pluginspec/testspecs/simplespec.json b/tests/auto/extensionsystem/pluginspec/testspecs/simplespec.json index 2f1851a7484..079e84cccdd 100644 --- a/tests/auto/extensionsystem/pluginspec/testspecs/simplespec.json +++ b/tests/auto/extensionsystem/pluginspec/testspecs/simplespec.json @@ -1,6 +1,7 @@ { "IID" : "plugin", "MetaData" : { + "Id": "myplugin", "Name" : "MyPlugin", "Version" : "2.2.3_9", "CompatVersion" : "2.0.0" diff --git a/tests/auto/extensionsystem/pluginspec/testspecs/simplespec_experimental.json b/tests/auto/extensionsystem/pluginspec/testspecs/simplespec_experimental.json index 5530383793e..7c39c64d7a1 100644 --- a/tests/auto/extensionsystem/pluginspec/testspecs/simplespec_experimental.json +++ b/tests/auto/extensionsystem/pluginspec/testspecs/simplespec_experimental.json @@ -1,6 +1,7 @@ { "IID" : "plugin", "MetaData" : { + "Id": "myplugin", "Name" : "MyPlugin", "Version" : "2.2.3_9", "CompatVersion" : "2.0.0", diff --git a/tests/auto/extensionsystem/pluginspec/testspecs/spec1.json b/tests/auto/extensionsystem/pluginspec/testspecs/spec1.json index dcd4755a6ec..20d51febac0 100644 --- a/tests/auto/extensionsystem/pluginspec/testspecs/spec1.json +++ b/tests/auto/extensionsystem/pluginspec/testspecs/spec1.json @@ -1,9 +1,11 @@ { "IID" : "plugin", "MetaData" : { + "Id": "test", "Name" : "test", "Version" : "1.0.1", "CompatVersion" : "1.0.0", + "VendorId": "theqtcompanyltd", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) 2015 The Qt Company Ltd", "License" : [ @@ -18,8 +20,8 @@ ], "Url" : "http://www.qt.io", "Dependencies" : [ - { "Name" : "SomeOtherPlugin", "Version" : "2.3.0_2" }, - { "Name" : "EvenOther", "Version" : "1.0.0" } + { "Id" : "SomeOtherPlugin", "Version" : "2.3.0_2" }, + { "Id" : "EvenOther", "Version" : "1.0.0" } ] } } diff --git a/tests/auto/extensionsystem/pluginspec/testspecs/spec2.json b/tests/auto/extensionsystem/pluginspec/testspecs/spec2.json index aaed8000a75..303c203a842 100644 --- a/tests/auto/extensionsystem/pluginspec/testspecs/spec2.json +++ b/tests/auto/extensionsystem/pluginspec/testspecs/spec2.json @@ -1,7 +1,9 @@ { "IID" : "plugin", "MetaData" : { + "Id": "test", "Name" : "test", + "VendorId" : "theqtcompany", "Version" : "3.1.4_10", "Required" : true } diff --git a/tests/auto/extensionsystem/pluginspec/testspecs/spec_wrong2.json b/tests/auto/extensionsystem/pluginspec/testspecs/spec_wrong2.json index 63a7fc5c551..71fd5bfdbb3 100644 --- a/tests/auto/extensionsystem/pluginspec/testspecs/spec_wrong2.json +++ b/tests/auto/extensionsystem/pluginspec/testspecs/spec_wrong2.json @@ -3,6 +3,7 @@ "MetaData" : { "Version" : "1.0.1", "CompatVersion" : "1.0.0", + "VendorId": "theqtcompanyltd", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) 2015 The Qt Company Ltd", "License" : [ diff --git a/tests/auto/extensionsystem/pluginspec/testspecs/spec_wrong3.json b/tests/auto/extensionsystem/pluginspec/testspecs/spec_wrong3.json index 7c43ef41d26..58c80e7e950 100644 --- a/tests/auto/extensionsystem/pluginspec/testspecs/spec_wrong3.json +++ b/tests/auto/extensionsystem/pluginspec/testspecs/spec_wrong3.json @@ -1,8 +1,10 @@ { "IID" : "plugin", "MetaData" : { + "Id": "test", "Name" : "test", "CompatVersion" : "1.0.0", + "VendorId": "theqtcompanyltd", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) 2015 The Qt Company Ltd", "License" : [ diff --git a/tests/auto/extensionsystem/pluginspec/testspecs/spec_wrong4.json b/tests/auto/extensionsystem/pluginspec/testspecs/spec_wrong4.json index c8e1dd53d9f..8ef6524599b 100644 --- a/tests/auto/extensionsystem/pluginspec/testspecs/spec_wrong4.json +++ b/tests/auto/extensionsystem/pluginspec/testspecs/spec_wrong4.json @@ -1,9 +1,11 @@ { "IID" : "plugin", "MetaData" : { + "Id": "test", "Name" : "test", "Version" : "1.0.1", "CompatVersion" : "1.0.0", + "VendorId": "theqtcompanyltd", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) 2015 The Qt Company Ltd", "License" : [ diff --git a/tests/auto/extensionsystem/pluginspec/testspecs/spec_wrong5.json b/tests/auto/extensionsystem/pluginspec/testspecs/spec_wrong5.json index 680ec4002ac..9f67a619336 100644 --- a/tests/auto/extensionsystem/pluginspec/testspecs/spec_wrong5.json +++ b/tests/auto/extensionsystem/pluginspec/testspecs/spec_wrong5.json @@ -1,9 +1,11 @@ { "IID" : "plugin", "MetaData" : { + "Id": "test", "Name" : "test", "Version" : "1.0.1", "CompatVersion" : "1.0.0", + "VendorId": "theqtcompanyltd", "Vendor" : "The Qt Company Ltd", "Copyright" : "(C) 2015 The Qt Company Ltd", "License" : [ diff --git a/tests/auto/extensionsystem/pluginspec/tst_pluginspec.cpp b/tests/auto/extensionsystem/pluginspec/tst_pluginspec.cpp index ed8476a0b09..0bb479795ed 100644 --- a/tests/auto/extensionsystem/pluginspec/tst_pluginspec.cpp +++ b/tests/auto/extensionsystem/pluginspec/tst_pluginspec.cpp @@ -52,6 +52,7 @@ private slots: void readError(); void isValidVersion(); void versionCompare(); + void disabledByDefault(); void provides(); void experimental(); void locationAndPath(); @@ -89,7 +90,7 @@ void tst_PluginSpec::read() CppPluginSpec spec; QCOMPARE(spec.state(), PluginSpec::Invalid); QVERIFY(spec.readMetaData(metaData("testspecs/spec1.json"))); - QVERIFY(!spec.hasError()); + QCOMPARE(spec.errorString(), QString()); QVERIFY(spec.errorString().isEmpty()); QCOMPARE(spec.name(), QString("test")); QCOMPARE(spec.version(), QString("1.0.1")); @@ -107,16 +108,17 @@ void tst_PluginSpec::read() "This plugin is just a test.\n it demonstrates the great use of the plugin spec.")); QCOMPARE(spec.url(), QString("http://www.qt.io")); PluginDependency dep1; - dep1.name = QString("SomeOtherPlugin"); + dep1.id = QString("SomeOtherPlugin"); dep1.version = QString("2.3.0_2"); PluginDependency dep2; - dep2.name = QString("EvenOther"); + dep2.id = QString("EvenOther"); dep2.version = QString("1.0.0"); QCOMPARE(spec.dependencies(), QVector() << dep1 << dep2); // test missing compatVersion behavior // and 'required' attribute QVERIFY(spec.readMetaData(metaData("testspecs/spec2.json"))); + QCOMPARE(spec.errorString(), QString()); QCOMPARE(spec.version(), QString("3.1.4_10")); QCOMPARE(spec.compatVersion(), QString("3.1.4_10")); QCOMPARE(spec.isRequired(), true); @@ -128,8 +130,8 @@ void tst_PluginSpec::readError() QCOMPARE(spec.state(), PluginSpec::Invalid); QVERIFY(!spec.readMetaData(metaData("non-existing-file.json"))); QCOMPARE(spec.state(), PluginSpec::Invalid); + QCOMPARE(spec.errorString(), QString()); QVERIFY(!spec.hasError()); - QVERIFY(spec.errorString().isEmpty()); QVERIFY(spec.readMetaData(metaData("testspecs/spec_wrong2.json"))); QCOMPARE(spec.state(), PluginSpec::Invalid); QVERIFY(spec.hasError()); @@ -185,6 +187,16 @@ void tst_PluginSpec::versionCompare() QVERIFY(PluginSpec::versionCompare("3.1_12", "3.1_23") < 0); } +void tst_PluginSpec::disabledByDefault() +{ + CppPluginSpec spec; + QVERIFY(spec.readMetaData(metaData("testdir/disabledbydefault.json"))); + QCOMPARE(spec.errorString(), QString()); + + QCOMPARE(spec.isEnabledBySettings(), false); + QCOMPARE(spec.isEnabledByDefault(), false); +} + void tst_PluginSpec::provides() { CppPluginSpec spec; @@ -258,10 +270,16 @@ void tst_PluginSpec::resolveDependencies() spec5->readMetaData(metaData("testdependencies/spec5.json")); spec5->setState(PluginSpec::Read); // fake read state for plugin resolving + QCOMPARE(spec1->errorString(), QString()); + QCOMPARE(spec2->errorString(), QString()); + QCOMPARE(spec3->errorString(), QString()); + QCOMPARE(spec4->errorString(), QString()); + QCOMPARE(spec5->errorString(), QString()); + QVERIFY(spec1->resolveDependencies(specs)); QCOMPARE(spec1->dependencySpecs().size(), 2); - QVERIFY(!spec1->dependencySpecs().key(spec2).name.isEmpty()); - QVERIFY(!spec1->dependencySpecs().key(spec3).name.isEmpty()); + QVERIFY(!spec1->dependencySpecs().key(spec2).id.isEmpty()); + QVERIFY(!spec1->dependencySpecs().key(spec3).id.isEmpty()); QCOMPARE(spec1->state(), PluginSpec::Resolved); QVERIFY(!spec4->resolveDependencies(specs)); QVERIFY(spec4->hasError()); @@ -276,6 +294,7 @@ void tst_PluginSpec::loadLibrary() QVERIFY(ps); CppPluginSpec *spec = static_cast(ps.value()); + QCOMPARE(spec->errorString(), QString()); QVERIFY(spec->resolveDependencies({})); QVERIFY2(spec->loadLibrary(), qPrintable(spec->errorString())); QVERIFY(spec->plugin() != 0); diff --git a/tests/manual/pluginview/plugins/plugin1/plugin1.json b/tests/manual/pluginview/plugins/plugin1/plugin1.json index 231eae04b60..c68e1aca72d 100644 --- a/tests/manual/pluginview/plugins/plugin1/plugin1.json +++ b/tests/manual/pluginview/plugins/plugin1/plugin1.json @@ -2,6 +2,7 @@ "Name" : "plugin1", "Version" : "2.1.0", "CompatVersion" : "1.0.0", + "VendorId": "blablubbcorp", "Vendor" : "Blablubb Corp", "Copyright" : "(C) 2023 Blubb", "License" : [ "This is a default license bla",