forked from qt-creator/qt-creator
Core: Register mimetype of softload plugin
Change-Id: I81713d951caaf4e2d97fa1a58c4f512a280af351 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -126,17 +126,22 @@ CoreArguments parseArguments(const QStringList &arguments)
|
|||||||
return args;
|
return args;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CorePlugin::loadMimeFromPlugin(const ExtensionSystem::PluginSpec *plugin)
|
||||||
|
{
|
||||||
|
const QJsonObject metaData = plugin->metaData();
|
||||||
|
const QJsonValue mimetypes = metaData.value("Mimetypes");
|
||||||
|
QString mimetypeString;
|
||||||
|
if (Utils::readMultiLineString(mimetypes, &mimetypeString))
|
||||||
|
Utils::addMimeTypes(plugin->name() + ".mimetypes", mimetypeString.trimmed().toUtf8());
|
||||||
|
}
|
||||||
|
|
||||||
bool CorePlugin::initialize(const QStringList &arguments, QString *errorMessage)
|
bool CorePlugin::initialize(const QStringList &arguments, QString *errorMessage)
|
||||||
{
|
{
|
||||||
// register all mime types from all plugins
|
// register all mime types from all plugins
|
||||||
for (ExtensionSystem::PluginSpec *plugin : ExtensionSystem::PluginManager::plugins()) {
|
for (ExtensionSystem::PluginSpec *plugin : ExtensionSystem::PluginManager::plugins()) {
|
||||||
if (!plugin->isEffectivelyEnabled())
|
if (!plugin->isEffectivelyEnabled())
|
||||||
continue;
|
continue;
|
||||||
const QJsonObject metaData = plugin->metaData();
|
loadMimeFromPlugin(plugin);
|
||||||
const QJsonValue mimetypes = metaData.value("Mimetypes");
|
|
||||||
QString mimetypeString;
|
|
||||||
if (Utils::readMultiLineString(mimetypes, &mimetypeString))
|
|
||||||
Utils::addMimeTypes(plugin->name() + ".mimetypes", mimetypeString.trimmed().toUtf8());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ThemeEntry::availableThemes().isEmpty()) {
|
if (ThemeEntry::availableThemes().isEmpty()) {
|
||||||
|
|||||||
@@ -7,6 +7,7 @@
|
|||||||
#include <qglobal.h>
|
#include <qglobal.h>
|
||||||
|
|
||||||
#include <extensionsystem/iplugin.h>
|
#include <extensionsystem/iplugin.h>
|
||||||
|
#include <extensionsystem/pluginspec.h>
|
||||||
#include <utils/environment.h>
|
#include <utils/environment.h>
|
||||||
|
|
||||||
#include <memory>
|
#include <memory>
|
||||||
@@ -54,6 +55,8 @@ public:
|
|||||||
static void setEnvironmentChanges(const Utils::EnvironmentItems &changes);
|
static void setEnvironmentChanges(const Utils::EnvironmentItems &changes);
|
||||||
static QString msgCrashpadInformation();
|
static QString msgCrashpadInformation();
|
||||||
|
|
||||||
|
static void loadMimeFromPlugin(const ExtensionSystem::PluginSpec *plugin);
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void fileOpenRequest(const QString &);
|
void fileOpenRequest(const QString &);
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
|
|
||||||
#include "plugindialog.h"
|
#include "plugindialog.h"
|
||||||
|
|
||||||
|
#include "coreplugin.h"
|
||||||
#include "coreplugintr.h"
|
#include "coreplugintr.h"
|
||||||
#include "dialogs/restartdialog.h"
|
#include "dialogs/restartdialog.h"
|
||||||
#include "icore.h"
|
#include "icore.h"
|
||||||
@@ -87,8 +88,10 @@ void PluginDialog::closeDialog()
|
|||||||
{
|
{
|
||||||
PluginManager::writeSettings();
|
PluginManager::writeSettings();
|
||||||
|
|
||||||
for (PluginSpec *plugin : m_softLoad)
|
for (PluginSpec *plugin : m_softLoad) {
|
||||||
PluginManager::loadPlugin(plugin);
|
PluginManager::loadPlugin(plugin);
|
||||||
|
CorePlugin::loadMimeFromPlugin(plugin);
|
||||||
|
}
|
||||||
|
|
||||||
if (m_isRestartRequired) {
|
if (m_isRestartRequired) {
|
||||||
RestartDialog restartDialog(ICore::dialogParent(),
|
RestartDialog restartDialog(ICore::dialogParent(),
|
||||||
|
|||||||
Reference in New Issue
Block a user