Core: Hide MimeTypeSettings(Page) implementation

Change-Id: I0307e7e4f6172142c344c977b297ffc705a351ea
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
hjk
2024-07-16 14:32:33 +02:00
parent 8bf578669e
commit e57b635a6e
3 changed files with 28 additions and 34 deletions

View File

@@ -318,7 +318,6 @@ public:
ShortcutSettings *m_shortcutSettings = nullptr; ShortcutSettings *m_shortcutSettings = nullptr;
ToolSettings *m_toolSettings = nullptr; ToolSettings *m_toolSettings = nullptr;
MimeTypeSettings *m_mimeTypeSettings = nullptr;
SystemEditor *m_systemEditor = nullptr; SystemEditor *m_systemEditor = nullptr;
// actions // actions
@@ -1343,7 +1342,6 @@ void ICorePrivate::init()
m_modeStack = new FancyTabWidget(m_mainwindow); m_modeStack = new FancyTabWidget(m_mainwindow);
m_shortcutSettings = new ShortcutSettings; m_shortcutSettings = new ShortcutSettings;
m_toolSettings = new ToolSettings; m_toolSettings = new ToolSettings;
m_mimeTypeSettings = new MimeTypeSettings;
m_systemEditor = new SystemEditor; m_systemEditor = new SystemEditor;
m_toggleLeftSideBarButton = new QToolButton; m_toggleLeftSideBarButton = new QToolButton;
m_toggleRightSideBarButton = new QToolButton; m_toggleRightSideBarButton = new QToolButton;
@@ -1455,8 +1453,6 @@ ICorePrivate::~ICorePrivate()
m_shortcutSettings = nullptr; m_shortcutSettings = nullptr;
delete m_toolSettings; delete m_toolSettings;
m_toolSettings = nullptr; m_toolSettings = nullptr;
delete m_mimeTypeSettings;
m_mimeTypeSettings = nullptr;
delete m_systemEditor; delete m_systemEditor;
m_systemEditor = nullptr; m_systemEditor = nullptr;
delete m_printer; delete m_printer;
@@ -1497,7 +1493,7 @@ ICorePrivate::~ICorePrivate()
void ICore::extensionsInitialized() void ICore::extensionsInitialized()
{ {
EditorManagerPrivate::extensionsInitialized(); EditorManagerPrivate::extensionsInitialized();
MimeTypeSettings::restoreSettings(); setupMimeTypeSettings(d);
d->m_windowSupport = new WindowSupport(d->m_mainwindow, Context("Core.MainWindow")); d->m_windowSupport = new WindowSupport(d->m_mainwindow, Context("Core.MainWindow"));
d->m_windowSupport->setCloseActionEnabled(false); d->m_windowSupport->setCloseActionEnabled(false);
OutputPaneManager::initialize(); OutputPaneManager::initialize();

View File

@@ -5,6 +5,7 @@
#include "coreconstants.h" #include "coreconstants.h"
#include "coreplugintr.h" #include "coreplugintr.h"
#include "dialogs/ioptionspage.h"
#include "editormanager/ieditorfactory.h" #include "editormanager/ieditorfactory.h"
#include "editormanager/ieditorfactory_p.h" #include "editormanager/ieditorfactory_p.h"
#include "icore.h" #include "icore.h"
@@ -767,6 +768,19 @@ void MimeTypeSettingsPrivate::applyUserModifiedMimeTypes(const UserMimeTypeHash
// MimeTypeSettingsPage // MimeTypeSettingsPage
class MimeTypeSettings final : public IOptionsPage
{
public:
MimeTypeSettings();
~MimeTypeSettings() final { delete d; }
QStringList keywords() const final;
private:
MimeTypeSettingsPrivate *d;
};
MimeTypeSettings::MimeTypeSettings() MimeTypeSettings::MimeTypeSettings()
: d(new MimeTypeSettingsPrivate) : d(new MimeTypeSettingsPrivate)
{ {
@@ -776,11 +790,6 @@ MimeTypeSettings::MimeTypeSettings()
setWidgetCreator([this] { return new MimeTypeSettingsWidget(d); }); setWidgetCreator([this] { return new MimeTypeSettingsWidget(d); });
} }
MimeTypeSettings::~MimeTypeSettings()
{
delete d;
}
QStringList MimeTypeSettings::keywords() const QStringList MimeTypeSettings::keywords() const
{ {
return { 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, QWidget *MimeEditorDelegate::createEditor(QWidget *parent,
const QStyleOptionViewItem &option, const QStyleOptionViewItem &option,
const QModelIndex &index) const const QModelIndex &index) const
@@ -836,4 +837,15 @@ void MimeEditorDelegate::setModelData(QWidget *editor,
int(MimeTypeSettingsModel::Role::DefaultHandler)); 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 } // Core::Internal

View File

@@ -3,24 +3,10 @@
#pragma once #pragma once
#include "dialogs/ioptionspage.h" #include <QObject>
namespace Core::Internal { namespace Core::Internal {
class MimeTypeSettingsPrivate; void setupMimeTypeSettings(QObject *guard);
class MimeTypeSettings : public IOptionsPage
{
public:
MimeTypeSettings();
~MimeTypeSettings() override;
QStringList keywords() const override;
static void restoreSettings();
private:
MimeTypeSettingsPrivate *d;
};
} // Core::Internal } // Core::Internal