forked from qt-creator/qt-creator
Core: Hide MimeTypeSettings(Page) implementation
Change-Id: I0307e7e4f6172142c344c977b297ffc705a351ea Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -318,7 +318,6 @@ public:
|
||||
|
||||
ShortcutSettings *m_shortcutSettings = nullptr;
|
||||
ToolSettings *m_toolSettings = nullptr;
|
||||
MimeTypeSettings *m_mimeTypeSettings = nullptr;
|
||||
SystemEditor *m_systemEditor = nullptr;
|
||||
|
||||
// actions
|
||||
@@ -1343,7 +1342,6 @@ void ICorePrivate::init()
|
||||
m_modeStack = new FancyTabWidget(m_mainwindow);
|
||||
m_shortcutSettings = new ShortcutSettings;
|
||||
m_toolSettings = new ToolSettings;
|
||||
m_mimeTypeSettings = new MimeTypeSettings;
|
||||
m_systemEditor = new SystemEditor;
|
||||
m_toggleLeftSideBarButton = new QToolButton;
|
||||
m_toggleRightSideBarButton = new QToolButton;
|
||||
@@ -1455,8 +1453,6 @@ ICorePrivate::~ICorePrivate()
|
||||
m_shortcutSettings = nullptr;
|
||||
delete m_toolSettings;
|
||||
m_toolSettings = nullptr;
|
||||
delete m_mimeTypeSettings;
|
||||
m_mimeTypeSettings = nullptr;
|
||||
delete m_systemEditor;
|
||||
m_systemEditor = nullptr;
|
||||
delete m_printer;
|
||||
@@ -1497,7 +1493,7 @@ ICorePrivate::~ICorePrivate()
|
||||
void ICore::extensionsInitialized()
|
||||
{
|
||||
EditorManagerPrivate::extensionsInitialized();
|
||||
MimeTypeSettings::restoreSettings();
|
||||
setupMimeTypeSettings(d);
|
||||
d->m_windowSupport = new WindowSupport(d->m_mainwindow, Context("Core.MainWindow"));
|
||||
d->m_windowSupport->setCloseActionEnabled(false);
|
||||
OutputPaneManager::initialize();
|
||||
|
@@ -5,6 +5,7 @@
|
||||
|
||||
#include "coreconstants.h"
|
||||
#include "coreplugintr.h"
|
||||
#include "dialogs/ioptionspage.h"
|
||||
#include "editormanager/ieditorfactory.h"
|
||||
#include "editormanager/ieditorfactory_p.h"
|
||||
#include "icore.h"
|
||||
@@ -767,6 +768,19 @@ void MimeTypeSettingsPrivate::applyUserModifiedMimeTypes(const UserMimeTypeHash
|
||||
|
||||
// MimeTypeSettingsPage
|
||||
|
||||
class MimeTypeSettings final : public IOptionsPage
|
||||
{
|
||||
public:
|
||||
MimeTypeSettings();
|
||||
|
||||
~MimeTypeSettings() final { delete d; }
|
||||
|
||||
QStringList keywords() const final;
|
||||
|
||||
private:
|
||||
MimeTypeSettingsPrivate *d;
|
||||
};
|
||||
|
||||
MimeTypeSettings::MimeTypeSettings()
|
||||
: d(new MimeTypeSettingsPrivate)
|
||||
{
|
||||
@@ -776,11 +790,6 @@ MimeTypeSettings::MimeTypeSettings()
|
||||
setWidgetCreator([this] { return new MimeTypeSettingsWidget(d); });
|
||||
}
|
||||
|
||||
MimeTypeSettings::~MimeTypeSettings()
|
||||
{
|
||||
delete d;
|
||||
}
|
||||
|
||||
QStringList MimeTypeSettings::keywords() const
|
||||
{
|
||||
return {
|
||||
@@ -795,14 +804,6 @@ QStringList MimeTypeSettings::keywords() const
|
||||
};
|
||||
}
|
||||
|
||||
void MimeTypeSettings::restoreSettings()
|
||||
{
|
||||
MimeTypeSettingsPrivate::UserMimeTypeHash mimetypes
|
||||
= MimeTypeSettingsPrivate::readUserModifiedMimeTypes();
|
||||
MimeTypeSettingsPrivate::m_userModifiedMimeTypes = mimetypes;
|
||||
Utils::addMimeInitializer([mimetypes] { registerUserModifiedMimeTypes(mimetypes); });
|
||||
}
|
||||
|
||||
QWidget *MimeEditorDelegate::createEditor(QWidget *parent,
|
||||
const QStyleOptionViewItem &option,
|
||||
const QModelIndex &index) const
|
||||
@@ -836,4 +837,15 @@ void MimeEditorDelegate::setModelData(QWidget *editor,
|
||||
int(MimeTypeSettingsModel::Role::DefaultHandler));
|
||||
}
|
||||
|
||||
void setupMimeTypeSettings(QObject *guard)
|
||||
{
|
||||
auto page = new MimeTypeSettings;
|
||||
QObject::connect(guard, &QObject::destroyed, [page] { delete page; });
|
||||
|
||||
MimeTypeSettingsPrivate::UserMimeTypeHash mimetypes
|
||||
= MimeTypeSettingsPrivate::readUserModifiedMimeTypes();
|
||||
MimeTypeSettingsPrivate::m_userModifiedMimeTypes = mimetypes;
|
||||
Utils::addMimeInitializer([mimetypes] { registerUserModifiedMimeTypes(mimetypes); });
|
||||
}
|
||||
|
||||
} // Core::Internal
|
||||
|
@@ -3,24 +3,10 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "dialogs/ioptionspage.h"
|
||||
#include <QObject>
|
||||
|
||||
namespace Core::Internal {
|
||||
|
||||
class MimeTypeSettingsPrivate;
|
||||
|
||||
class MimeTypeSettings : public IOptionsPage
|
||||
{
|
||||
public:
|
||||
MimeTypeSettings();
|
||||
~MimeTypeSettings() override;
|
||||
|
||||
QStringList keywords() const override;
|
||||
|
||||
static void restoreSettings();
|
||||
|
||||
private:
|
||||
MimeTypeSettingsPrivate *d;
|
||||
};
|
||||
void setupMimeTypeSettings(QObject *guard);
|
||||
|
||||
} // Core::Internal
|
||||
|
Reference in New Issue
Block a user