forked from qt-creator/qt-creator
TextEditor: Partially apply new settings page pattern
Internal handling is quite fragile in some cases, so take baby steps here. Change-Id: Ia25666b8c8d26b6e580d2189b191767b9681dc21 Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -39,13 +39,14 @@ using namespace Internal;
|
|||||||
|
|
||||||
struct HighlighterSettingsPage::HighlighterSettingsPagePrivate
|
struct HighlighterSettingsPage::HighlighterSettingsPagePrivate
|
||||||
{
|
{
|
||||||
explicit HighlighterSettingsPagePrivate(Core::Id id);
|
Q_DECLARE_TR_FUNCTIONS(TextEditor::Internal::HighlighterSettingsPage)
|
||||||
|
|
||||||
|
public:
|
||||||
|
HighlighterSettingsPagePrivate();
|
||||||
void ensureInitialized();
|
void ensureInitialized();
|
||||||
void migrateGenericHighlighterFiles();
|
void migrateGenericHighlighterFiles();
|
||||||
|
|
||||||
bool m_initialized = false;
|
bool m_initialized = false;
|
||||||
const Core::Id m_id;
|
|
||||||
const QString m_displayName;
|
|
||||||
const QString m_settingsPrefix;
|
const QString m_settingsPrefix;
|
||||||
|
|
||||||
HighlighterSettings m_settings;
|
HighlighterSettings m_settings;
|
||||||
@@ -54,11 +55,8 @@ struct HighlighterSettingsPage::HighlighterSettingsPagePrivate
|
|||||||
Ui::HighlighterSettingsPage *m_page = nullptr;
|
Ui::HighlighterSettingsPage *m_page = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
HighlighterSettingsPage::HighlighterSettingsPagePrivate::
|
HighlighterSettingsPage::HighlighterSettingsPagePrivate::HighlighterSettingsPagePrivate()
|
||||||
HighlighterSettingsPagePrivate(Core::Id id)
|
: m_settingsPrefix("Text")
|
||||||
: m_id(id)
|
|
||||||
, m_displayName(tr("Generic Highlighter"))
|
|
||||||
, m_settingsPrefix("Text")
|
|
||||||
{}
|
{}
|
||||||
|
|
||||||
void HighlighterSettingsPage::HighlighterSettingsPagePrivate::migrateGenericHighlighterFiles()
|
void HighlighterSettingsPage::HighlighterSettingsPagePrivate::migrateGenericHighlighterFiles()
|
||||||
@@ -83,12 +81,11 @@ void HighlighterSettingsPage::HighlighterSettingsPagePrivate::ensureInitialized(
|
|||||||
migrateGenericHighlighterFiles();
|
migrateGenericHighlighterFiles();
|
||||||
}
|
}
|
||||||
|
|
||||||
HighlighterSettingsPage::HighlighterSettingsPage(Core::Id id, QObject *parent) :
|
HighlighterSettingsPage::HighlighterSettingsPage()
|
||||||
Core::IOptionsPage(parent),
|
: m_d(new HighlighterSettingsPagePrivate)
|
||||||
m_d(new HighlighterSettingsPagePrivate(id))
|
|
||||||
{
|
{
|
||||||
setId(m_d->m_id);
|
setId(Constants::TEXT_EDITOR_HIGHLIGHTER_SETTINGS);
|
||||||
setDisplayName(m_d->m_displayName);
|
setDisplayName(HighlighterSettingsPagePrivate::tr("Generic Highlighter"));
|
||||||
setCategory(TextEditor::Constants::TEXT_EDITOR_SETTINGS_CATEGORY);
|
setCategory(TextEditor::Constants::TEXT_EDITOR_SETTINGS_CATEGORY);
|
||||||
setDisplayCategory(QCoreApplication::translate("TextEditor", "Text Editor"));
|
setDisplayCategory(QCoreApplication::translate("TextEditor", "Text Editor"));
|
||||||
setCategoryIconPath(TextEditor::Constants::TEXT_EDITOR_SETTINGS_CATEGORY_ICON_PATH);
|
setCategoryIconPath(TextEditor::Constants::TEXT_EDITOR_SETTINGS_CATEGORY_ICON_PATH);
|
||||||
@@ -112,7 +109,7 @@ QWidget *HighlighterSettingsPage::widget()
|
|||||||
[label = QPointer<QLabel>(m_d->m_page->updateStatus)]() {
|
[label = QPointer<QLabel>(m_d->m_page->updateStatus)]() {
|
||||||
Highlighter::downloadDefinitions([label](){
|
Highlighter::downloadDefinitions([label](){
|
||||||
if (label)
|
if (label)
|
||||||
label->setText(tr("Download finished"));
|
label->setText(HighlighterSettingsPagePrivate::tr("Download finished"));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
connect(m_d->m_page->reloadDefinitions, &QPushButton::pressed, []() {
|
connect(m_d->m_page->reloadDefinitions, &QPushButton::pressed, []() {
|
||||||
|
|||||||
@@ -31,12 +31,10 @@ namespace TextEditor {
|
|||||||
|
|
||||||
class HighlighterSettings;
|
class HighlighterSettings;
|
||||||
|
|
||||||
class HighlighterSettingsPage : public Core::IOptionsPage
|
class HighlighterSettingsPage final : public Core::IOptionsPage
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
HighlighterSettingsPage(Core::Id id, QObject *parent);
|
HighlighterSettingsPage();
|
||||||
~HighlighterSettingsPage() override;
|
~HighlighterSettingsPage() override;
|
||||||
|
|
||||||
QWidget *widget() override;
|
QWidget *widget() override;
|
||||||
|
|||||||
@@ -264,13 +264,12 @@ bool SnippetsTableModel::isValidTrigger(const QString &s)
|
|||||||
// SnippetsSettingsPagePrivate
|
// SnippetsSettingsPagePrivate
|
||||||
class SnippetsSettingsPagePrivate : public QObject
|
class SnippetsSettingsPagePrivate : public QObject
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_DECLARE_TR_FUNCTIONS(TextEditor::Internal::SnippetsSettingsPage)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SnippetsSettingsPagePrivate(Core::Id id);
|
SnippetsSettingsPagePrivate();
|
||||||
~SnippetsSettingsPagePrivate() override { delete m_model; }
|
~SnippetsSettingsPagePrivate() override { delete m_model; }
|
||||||
|
|
||||||
Core::Id id() const { return m_id; }
|
|
||||||
const QString &displayName() const { return m_displayName; }
|
|
||||||
void configureUi(QWidget *parent);
|
void configureUi(QWidget *parent);
|
||||||
|
|
||||||
void apply();
|
void apply();
|
||||||
@@ -299,8 +298,6 @@ private:
|
|||||||
bool settingsChanged() const;
|
bool settingsChanged() const;
|
||||||
void writeSettings();
|
void writeSettings();
|
||||||
|
|
||||||
const Core::Id m_id;
|
|
||||||
const QString m_displayName;
|
|
||||||
const QString m_settingsPrefix;
|
const QString m_settingsPrefix;
|
||||||
SnippetsTableModel *m_model;
|
SnippetsTableModel *m_model;
|
||||||
bool m_snippetsCollectionChanged;
|
bool m_snippetsCollectionChanged;
|
||||||
@@ -308,9 +305,7 @@ private:
|
|||||||
Ui::SnippetsSettingsPage m_ui;
|
Ui::SnippetsSettingsPage m_ui;
|
||||||
};
|
};
|
||||||
|
|
||||||
SnippetsSettingsPagePrivate::SnippetsSettingsPagePrivate(Core::Id id) :
|
SnippetsSettingsPagePrivate::SnippetsSettingsPagePrivate() :
|
||||||
m_id(id),
|
|
||||||
m_displayName(tr("Snippets")),
|
|
||||||
m_settingsPrefix(QLatin1String("Text")),
|
m_settingsPrefix(QLatin1String("Text")),
|
||||||
m_model(new SnippetsTableModel(nullptr)),
|
m_model(new SnippetsTableModel(nullptr)),
|
||||||
m_snippetsCollectionChanged(false)
|
m_snippetsCollectionChanged(false)
|
||||||
@@ -548,12 +543,11 @@ void SnippetsSettingsPagePrivate::decorateEditors(const TextEditor::FontSettings
|
|||||||
}
|
}
|
||||||
|
|
||||||
// SnippetsSettingsPage
|
// SnippetsSettingsPage
|
||||||
SnippetsSettingsPage::SnippetsSettingsPage(Core::Id id, QObject *parent) :
|
SnippetsSettingsPage::SnippetsSettingsPage()
|
||||||
Core::IOptionsPage(parent),
|
: d(new SnippetsSettingsPagePrivate)
|
||||||
d(new SnippetsSettingsPagePrivate(id))
|
|
||||||
{
|
{
|
||||||
setId(d->id());
|
setId(Constants::TEXT_EDITOR_SNIPPETS_SETTINGS);
|
||||||
setDisplayName(d->displayName());
|
setDisplayName(SnippetsSettingsPagePrivate::tr("Snippets"));
|
||||||
setCategory(TextEditor::Constants::TEXT_EDITOR_SETTINGS_CATEGORY);
|
setCategory(TextEditor::Constants::TEXT_EDITOR_SETTINGS_CATEGORY);
|
||||||
setDisplayCategory(QCoreApplication::translate("TextEditor", "Text Editor"));
|
setDisplayCategory(QCoreApplication::translate("TextEditor", "Text Editor"));
|
||||||
setCategoryIconPath(TextEditor::Constants::TEXT_EDITOR_SETTINGS_CATEGORY_ICON_PATH);
|
setCategoryIconPath(TextEditor::Constants::TEXT_EDITOR_SETTINGS_CATEGORY_ICON_PATH);
|
||||||
|
|||||||
@@ -32,12 +32,10 @@ namespace Internal {
|
|||||||
|
|
||||||
class SnippetsSettingsPagePrivate;
|
class SnippetsSettingsPagePrivate;
|
||||||
|
|
||||||
class SnippetsSettingsPage : public Core::IOptionsPage
|
class SnippetsSettingsPage final : public Core::IOptionsPage
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
SnippetsSettingsPage(Core::Id id, QObject *parent);
|
SnippetsSettingsPage();
|
||||||
~SnippetsSettingsPage() override;
|
~SnippetsSettingsPage() override;
|
||||||
|
|
||||||
QWidget *widget() override;
|
QWidget *widget() override;
|
||||||
|
|||||||
@@ -66,8 +66,8 @@ public:
|
|||||||
FontSettingsPage *m_fontSettingsPage;
|
FontSettingsPage *m_fontSettingsPage;
|
||||||
BehaviorSettingsPage *m_behaviorSettingsPage;
|
BehaviorSettingsPage *m_behaviorSettingsPage;
|
||||||
DisplaySettingsPage *m_displaySettingsPage;
|
DisplaySettingsPage *m_displaySettingsPage;
|
||||||
HighlighterSettingsPage *m_highlighterSettingsPage;
|
HighlighterSettingsPage m_highlighterSettingsPage;
|
||||||
SnippetsSettingsPage *m_snippetsSettingsPage;
|
SnippetsSettingsPage m_snippetsSettingsPage;
|
||||||
CompletionSettingsPage m_completionSettingsPage;
|
CompletionSettingsPage m_completionSettingsPage;
|
||||||
|
|
||||||
QMap<Core::Id, ICodeStylePreferencesFactory *> m_languageToFactory;
|
QMap<Core::Id, ICodeStylePreferencesFactory *> m_languageToFactory;
|
||||||
@@ -363,11 +363,6 @@ TextEditorSettings::TextEditorSettings()
|
|||||||
displaySettingsPageParameters.settingsPrefix = QLatin1String("text");
|
displaySettingsPageParameters.settingsPrefix = QLatin1String("text");
|
||||||
d->m_displaySettingsPage = new DisplaySettingsPage(displaySettingsPageParameters, this);
|
d->m_displaySettingsPage = new DisplaySettingsPage(displaySettingsPageParameters, this);
|
||||||
|
|
||||||
d->m_highlighterSettingsPage =
|
|
||||||
new HighlighterSettingsPage(Constants::TEXT_EDITOR_HIGHLIGHTER_SETTINGS, this);
|
|
||||||
d->m_snippetsSettingsPage =
|
|
||||||
new SnippetsSettingsPage(Constants::TEXT_EDITOR_SNIPPETS_SETTINGS, this);
|
|
||||||
|
|
||||||
auto updateGeneralMessagesFontSettings = []() {
|
auto updateGeneralMessagesFontSettings = []() {
|
||||||
Core::MessageManager::setFont(d->m_fontSettingsPage->fontSettings().font());
|
Core::MessageManager::setFont(d->m_fontSettingsPage->fontSettings().font());
|
||||||
};
|
};
|
||||||
@@ -453,7 +448,7 @@ const CompletionSettings &TextEditorSettings::completionSettings()
|
|||||||
|
|
||||||
const HighlighterSettings &TextEditorSettings::highlighterSettings()
|
const HighlighterSettings &TextEditorSettings::highlighterSettings()
|
||||||
{
|
{
|
||||||
return d->m_highlighterSettingsPage->highlighterSettings();
|
return d->m_highlighterSettingsPage.highlighterSettings();
|
||||||
}
|
}
|
||||||
|
|
||||||
const ExtraEncodingSettings &TextEditorSettings::extraEncodingSettings()
|
const ExtraEncodingSettings &TextEditorSettings::extraEncodingSettings()
|
||||||
|
|||||||
Reference in New Issue
Block a user