forked from qt-creator/qt-creator
Core: Use IOptionPage::setWidgetCreator() for mime settings
Less boilerplate for the implementation add user code access to IOptionPage::{apply,finish} is planned to be removed. Change-Id: I75c9ca893f49d66b72f6108f2451f3b0cb46722a Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -291,6 +291,31 @@ MimeTypeSettingsPrivate::MimeTypeSettingsPrivate()
|
|||||||
|
|
||||||
MimeTypeSettingsPrivate::~MimeTypeSettingsPrivate() = default;
|
MimeTypeSettingsPrivate::~MimeTypeSettingsPrivate() = default;
|
||||||
|
|
||||||
|
class MimeTypeSettingsWidget : public IOptionsPageWidget
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
MimeTypeSettingsWidget(MimeTypeSettingsPrivate *d)
|
||||||
|
: d(d)
|
||||||
|
{
|
||||||
|
d->configureUi(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
void apply() final
|
||||||
|
{
|
||||||
|
MimeTypeSettingsPrivate::applyUserModifiedMimeTypes(d->m_pendingModifiedMimeTypes);
|
||||||
|
Core::Internal::setUserPreferredEditorTypes(d->m_model->m_userDefault);
|
||||||
|
d->m_pendingModifiedMimeTypes.clear();
|
||||||
|
d->m_model->load();
|
||||||
|
}
|
||||||
|
|
||||||
|
void finish() final
|
||||||
|
{
|
||||||
|
d->m_pendingModifiedMimeTypes.clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
MimeTypeSettingsPrivate *d;
|
||||||
|
};
|
||||||
|
|
||||||
void MimeTypeSettingsPrivate::configureUi(QWidget *w)
|
void MimeTypeSettingsPrivate::configureUi(QWidget *w)
|
||||||
{
|
{
|
||||||
auto filterLineEdit = new FancyLineEdit;
|
auto filterLineEdit = new FancyLineEdit;
|
||||||
@@ -713,6 +738,7 @@ MimeTypeSettings::MimeTypeSettings()
|
|||||||
setId(Constants::SETTINGS_ID_MIMETYPES);
|
setId(Constants::SETTINGS_ID_MIMETYPES);
|
||||||
setDisplayName(Tr::tr("MIME Types"));
|
setDisplayName(Tr::tr("MIME Types"));
|
||||||
setCategory(Constants::SETTINGS_CATEGORY_CORE);
|
setCategory(Constants::SETTINGS_CATEGORY_CORE);
|
||||||
|
setWidgetCreator([this] { return new MimeTypeSettingsWidget(d); });
|
||||||
}
|
}
|
||||||
|
|
||||||
MimeTypeSettings::~MimeTypeSettings()
|
MimeTypeSettings::~MimeTypeSettings()
|
||||||
@@ -720,29 +746,6 @@ MimeTypeSettings::~MimeTypeSettings()
|
|||||||
delete d;
|
delete d;
|
||||||
}
|
}
|
||||||
|
|
||||||
QWidget *MimeTypeSettings::widget()
|
|
||||||
{
|
|
||||||
if (!d->m_widget) {
|
|
||||||
d->m_widget = new QWidget;
|
|
||||||
d->configureUi(d->m_widget);
|
|
||||||
}
|
|
||||||
return d->m_widget;
|
|
||||||
}
|
|
||||||
|
|
||||||
void MimeTypeSettings::apply()
|
|
||||||
{
|
|
||||||
MimeTypeSettingsPrivate::applyUserModifiedMimeTypes(d->m_pendingModifiedMimeTypes);
|
|
||||||
Core::Internal::setUserPreferredEditorTypes(d->m_model->m_userDefault);
|
|
||||||
d->m_pendingModifiedMimeTypes.clear();
|
|
||||||
d->m_model->load();
|
|
||||||
}
|
|
||||||
|
|
||||||
void MimeTypeSettings::finish()
|
|
||||||
{
|
|
||||||
d->m_pendingModifiedMimeTypes.clear();
|
|
||||||
delete d->m_widget;
|
|
||||||
}
|
|
||||||
|
|
||||||
void MimeTypeSettings::restoreSettings()
|
void MimeTypeSettings::restoreSettings()
|
||||||
{
|
{
|
||||||
MimeTypeSettingsPrivate::UserMimeTypeHash mimetypes
|
MimeTypeSettingsPrivate::UserMimeTypeHash mimetypes
|
||||||
|
@@ -17,11 +17,8 @@ public:
|
|||||||
MimeTypeSettings();
|
MimeTypeSettings();
|
||||||
~MimeTypeSettings() override;
|
~MimeTypeSettings() override;
|
||||||
|
|
||||||
QWidget *widget() override;
|
|
||||||
void apply() override;
|
|
||||||
void finish() override;
|
|
||||||
|
|
||||||
static void restoreSettings();
|
static void restoreSettings();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
MimeTypeSettingsPrivate *d;
|
MimeTypeSettingsPrivate *d;
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user