TextEditor: Inline behaviorsettingspage.ui

Less code, indirections and allocations.

Change-Id: I41011f90255a035eabe8f755fed6213f8f773a7e
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
hjk
2022-06-21 17:20:39 +02:00
parent 9341733b37
commit fb36cb99f9
4 changed files with 33 additions and 75 deletions

View File

@@ -13,7 +13,7 @@ add_qtc_plugin(TextEditor
basefilefind.cpp basefilefind.h basefilefind.cpp basefilefind.h
basehoverhandler.cpp basehoverhandler.h basehoverhandler.cpp basehoverhandler.h
behaviorsettings.cpp behaviorsettings.h behaviorsettings.cpp behaviorsettings.h
behaviorsettingspage.cpp behaviorsettingspage.h behaviorsettingspage.ui behaviorsettingspage.cpp behaviorsettingspage.h
behaviorsettingswidget.cpp behaviorsettingswidget.h behaviorsettingswidget.ui behaviorsettingswidget.cpp behaviorsettingswidget.h behaviorsettingswidget.ui
blockrange.h blockrange.h
circularclipboard.cpp circularclipboard.h circularclipboard.cpp circularclipboard.h

View File

@@ -26,15 +26,15 @@
#include "behaviorsettingspage.h" #include "behaviorsettingspage.h"
#include "behaviorsettings.h" #include "behaviorsettings.h"
#include "typingsettings.h" #include "behaviorsettingswidget.h"
#include "codestylepool.h"
#include "extraencodingsettings.h"
#include "simplecodestylepreferences.h"
#include "storagesettings.h" #include "storagesettings.h"
#include "tabsettings.h" #include "tabsettings.h"
#include "extraencodingsettings.h"
#include "ui_behaviorsettingspage.h"
#include "simplecodestylepreferences.h"
#include "texteditorconstants.h" #include "texteditorconstants.h"
#include "codestylepool.h"
#include "texteditorsettings.h" #include "texteditorsettings.h"
#include "typingsettings.h"
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <coreplugin/coreconstants.h> #include <coreplugin/coreconstants.h>
@@ -48,8 +48,10 @@
#include <qmljseditor/qmljseditorconstants.h> #include <qmljseditor/qmljseditorconstants.h>
#include <qmljstools/qmljstoolsconstants.h> #include <qmljstools/qmljstoolsconstants.h>
#include <QGridLayout>
#include <QPointer> #include <QPointer>
#include <QSettings> #include <QSettings>
#include <QSpacerItem>
namespace TextEditor { namespace TextEditor {
@@ -59,7 +61,7 @@ struct BehaviorSettingsPage::BehaviorSettingsPagePrivate : public QObject
const QString m_settingsPrefix{"text"}; const QString m_settingsPrefix{"text"};
QPointer<QWidget> m_widget; QPointer<QWidget> m_widget;
Internal::Ui::BehaviorSettingsPage *m_page = nullptr; TextEditor::BehaviorSettingsWidget *m_behaviorWidget = nullptr;
CodeStylePool *m_defaultCodeStylePool = nullptr; CodeStylePool *m_defaultCodeStylePool = nullptr;
SimpleCodeStylePreferences *m_codeStyle = nullptr; SimpleCodeStylePreferences *m_codeStyle = nullptr;
@@ -110,17 +112,23 @@ QWidget *BehaviorSettingsPage::widget()
{ {
if (!d->m_widget) { if (!d->m_widget) {
d->m_widget = new QWidget; d->m_widget = new QWidget;
d->m_page = new Internal::Ui::BehaviorSettingsPage; d->m_behaviorWidget = new BehaviorSettingsWidget(d->m_widget);
d->m_page->setupUi(d->m_widget);
auto verticalSpacer = new QSpacerItem(20, 13, QSizePolicy::Minimum, QSizePolicy::Expanding);
auto gridLayout = new QGridLayout(d->m_widget);
if (Utils::HostOsInfo::isMacHost()) if (Utils::HostOsInfo::isMacHost())
d->m_page->gridLayout->setContentsMargins(-1, 0, -1, 0); // don't ask. gridLayout->setContentsMargins(-1, 0, -1, 0); // don't ask.
gridLayout->addWidget(d->m_behaviorWidget, 0, 0, 1, 1);
gridLayout->addItem(verticalSpacer, 1, 0, 1, 1);
d->m_pageCodeStyle = new SimpleCodeStylePreferences(d->m_widget); d->m_pageCodeStyle = new SimpleCodeStylePreferences(d->m_widget);
d->m_pageCodeStyle->setDelegatingPool(d->m_codeStyle->delegatingPool()); d->m_pageCodeStyle->setDelegatingPool(d->m_codeStyle->delegatingPool());
d->m_pageCodeStyle->setTabSettings(d->m_codeStyle->tabSettings()); d->m_pageCodeStyle->setTabSettings(d->m_codeStyle->tabSettings());
d->m_pageCodeStyle->setCurrentDelegate(d->m_codeStyle->currentDelegate()); d->m_pageCodeStyle->setCurrentDelegate(d->m_codeStyle->currentDelegate());
d->m_page->behaviorWidget->setCodeStyle(d->m_pageCodeStyle); d->m_behaviorWidget->setCodeStyle(d->m_pageCodeStyle);
TabSettingsWidget *tabSettingsWidget = d->m_page->behaviorWidget->tabSettingsWidget(); TabSettingsWidget *tabSettingsWidget = d->m_behaviorWidget->tabSettingsWidget();
tabSettingsWidget->setCodingStyleWarningVisible(true); tabSettingsWidget->setCodingStyleWarningVisible(true);
connect(tabSettingsWidget, &TabSettingsWidget::codingStyleLinkClicked, connect(tabSettingsWidget, &TabSettingsWidget::codingStyleLinkClicked,
this, &BehaviorSettingsPage::openCodingStylePreferences); this, &BehaviorSettingsPage::openCodingStylePreferences);
@@ -132,7 +140,7 @@ QWidget *BehaviorSettingsPage::widget()
void BehaviorSettingsPage::apply() void BehaviorSettingsPage::apply()
{ {
if (!d->m_page) // page was never shown if (!d->m_behaviorWidget) // page was never shown
return; return;
TypingSettings newTypingSettings; TypingSettings newTypingSettings;
@@ -185,9 +193,9 @@ void BehaviorSettingsPage::apply()
} }
s->setValue(QLatin1String(Core::Constants::SETTINGS_DEFAULTTEXTENCODING), s->setValue(QLatin1String(Core::Constants::SETTINGS_DEFAULTTEXTENCODING),
d->m_page->behaviorWidget->assignedCodecName()); d->m_behaviorWidget->assignedCodecName());
s->setValue(QLatin1String(Core::Constants::SETTINGS_DEFAULT_LINE_TERMINATOR), s->setValue(QLatin1String(Core::Constants::SETTINGS_DEFAULT_LINE_TERMINATOR),
d->m_page->behaviorWidget->assignedLineEnding()); d->m_behaviorWidget->assignedLineEnding());
} }
void BehaviorSettingsPage::settingsFromUI(TypingSettings *typingSettings, void BehaviorSettingsPage::settingsFromUI(TypingSettings *typingSettings,
@@ -195,29 +203,25 @@ void BehaviorSettingsPage::settingsFromUI(TypingSettings *typingSettings,
BehaviorSettings *behaviorSettings, BehaviorSettings *behaviorSettings,
ExtraEncodingSettings *extraEncodingSettings) const ExtraEncodingSettings *extraEncodingSettings) const
{ {
d->m_page->behaviorWidget->assignedTypingSettings(typingSettings); d->m_behaviorWidget->assignedTypingSettings(typingSettings);
d->m_page->behaviorWidget->assignedStorageSettings(storageSettings); d->m_behaviorWidget->assignedStorageSettings(storageSettings);
d->m_page->behaviorWidget->assignedBehaviorSettings(behaviorSettings); d->m_behaviorWidget->assignedBehaviorSettings(behaviorSettings);
d->m_page->behaviorWidget->assignedExtraEncodingSettings(extraEncodingSettings); d->m_behaviorWidget->assignedExtraEncodingSettings(extraEncodingSettings);
} }
void BehaviorSettingsPage::settingsToUI() void BehaviorSettingsPage::settingsToUI()
{ {
d->m_page->behaviorWidget->setAssignedTypingSettings(d->m_typingSettings); d->m_behaviorWidget->setAssignedTypingSettings(d->m_typingSettings);
d->m_page->behaviorWidget->setAssignedStorageSettings(d->m_storageSettings); d->m_behaviorWidget->setAssignedStorageSettings(d->m_storageSettings);
d->m_page->behaviorWidget->setAssignedBehaviorSettings(d->m_behaviorSettings); d->m_behaviorWidget->setAssignedBehaviorSettings(d->m_behaviorSettings);
d->m_page->behaviorWidget->setAssignedExtraEncodingSettings(d->m_extraEncodingSettings); d->m_behaviorWidget->setAssignedExtraEncodingSettings(d->m_extraEncodingSettings);
d->m_page->behaviorWidget->setAssignedCodec(Core::EditorManager::defaultTextCodec()); d->m_behaviorWidget->setAssignedCodec(Core::EditorManager::defaultTextCodec());
d->m_page->behaviorWidget->setAssignedLineEnding(Core::EditorManager::defaultLineEnding()); d->m_behaviorWidget->setAssignedLineEnding(Core::EditorManager::defaultLineEnding());
} }
void BehaviorSettingsPage::finish() void BehaviorSettingsPage::finish()
{ {
delete d->m_widget; delete d->m_widget;
if (!d->m_page) // page was never shown
return;
delete d->m_page;
d->m_page = nullptr;
} }
ICodeStylePreferences *BehaviorSettingsPage::codeStyle() const ICodeStylePreferences *BehaviorSettingsPage::codeStyle() const

View File

@@ -1,45 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>TextEditor::Internal::BehaviorSettingsPage</class>
<widget class="QWidget" name="TextEditor::Internal::BehaviorSettingsPage">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>432</width>
<height>50</height>
</rect>
</property>
<property name="windowTitle">
<string/>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<widget class="TextEditor::BehaviorSettingsWidget" name="behaviorWidget" native="true"/>
</item>
<item row="1" column="0">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>13</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>TextEditor::BehaviorSettingsWidget</class>
<extends>QWidget</extends>
<header>texteditor/behaviorsettingswidget.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>

View File

@@ -30,7 +30,6 @@ Project {
"behaviorsettings.h", "behaviorsettings.h",
"behaviorsettingspage.cpp", "behaviorsettingspage.cpp",
"behaviorsettingspage.h", "behaviorsettingspage.h",
"behaviorsettingspage.ui",
"behaviorsettingswidget.cpp", "behaviorsettingswidget.cpp",
"behaviorsettingswidget.h", "behaviorsettingswidget.h",
"behaviorsettingswidget.ui", "behaviorsettingswidget.ui",