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;
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();

View File

@@ -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

View File

@@ -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