ProjectExplorer: Use new settings page convenience for app output

Following the pattern introduced in 809e62e373.

Change-Id: I87dc785e071b3b80817df984ab3921e949f9f1bc
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2020-01-07 14:08:17 +01:00
parent ce40ffc7b3
commit eef4a19125
2 changed files with 10 additions and 31 deletions

View File

@@ -120,8 +120,7 @@ private:
int m_tabIndexForMiddleClick = -1; int m_tabIndexForMiddleClick = -1;
}; };
} } // Internal
}
TabWidget::TabWidget(QWidget *parent) TabWidget::TabWidget(QWidget *parent)
: QTabWidget(parent) : QTabWidget(parent)
@@ -817,11 +816,11 @@ bool AppOutputPane::canNavigate() const
return false; return false;
} }
class AppOutputSettingsPage::SettingsWidget : public QWidget class AppOutputSettingsWidget : public Core::IOptionsPageWidget
{ {
Q_DECLARE_TR_FUNCTIONS(ProjectExplorer::Internal::AppOutputSettingsPage) Q_DECLARE_TR_FUNCTIONS(ProjectExplorer::Internal::AppOutputSettingsPage)
public: public:
SettingsWidget() AppOutputSettingsWidget()
{ {
const AppOutputSettings &settings = ProjectExplorerPlugin::appOutputSettings(); const AppOutputSettings &settings = ProjectExplorerPlugin::appOutputSettings();
m_wrapOutputCheckBox.setText(tr("Word-wrap output")); m_wrapOutputCheckBox.setText(tr("Word-wrap output"));
@@ -863,7 +862,7 @@ public:
layout->addStretch(1); layout->addStretch(1);
} }
AppOutputSettings settings() const void apply() final
{ {
AppOutputSettings s; AppOutputSettings s;
s.wrapOutput = m_wrapOutputCheckBox.isChecked(); s.wrapOutput = m_wrapOutputCheckBox.isChecked();
@@ -874,9 +873,12 @@ public:
s.debugOutputMode = static_cast<AppOutputPaneMode>( s.debugOutputMode = static_cast<AppOutputPaneMode>(
m_debugOutputModeComboBox.currentData().toInt()); m_debugOutputModeComboBox.currentData().toInt());
s.maxCharCount = m_maxCharsBox.value(); s.maxCharCount = m_maxCharsBox.value();
return s;
ProjectExplorerPlugin::setAppOutputSettings(s);
} }
void finish() final {}
private: private:
QCheckBox m_wrapOutputCheckBox; QCheckBox m_wrapOutputCheckBox;
QCheckBox m_cleanOldOutputCheckBox; QCheckBox m_cleanOldOutputCheckBox;
@@ -891,25 +893,10 @@ AppOutputSettingsPage::AppOutputSettingsPage()
setId(OPTIONS_PAGE_ID); setId(OPTIONS_PAGE_ID);
setDisplayName(tr("Application Output")); setDisplayName(tr("Application Output"));
setCategory(Constants::BUILD_AND_RUN_SETTINGS_CATEGORY); setCategory(Constants::BUILD_AND_RUN_SETTINGS_CATEGORY);
setWidgetCreator([] { return new AppOutputSettingsWidget; });
} }
QWidget *AppOutputSettingsPage::widget() } // ProjectExplorer
{
if (!m_widget)
m_widget = new SettingsWidget;
return m_widget;
}
void AppOutputSettingsPage::apply()
{
if (m_widget)
ProjectExplorerPlugin::setAppOutputSettings(m_widget->settings());
}
void AppOutputSettingsPage::finish()
{
delete m_widget;
}
#include "appoutputpane.moc" #include "appoutputpane.moc"

View File

@@ -165,14 +165,6 @@ class AppOutputSettingsPage : public Core::IOptionsPage
public: public:
AppOutputSettingsPage(); AppOutputSettingsPage();
private:
QWidget *widget() override;
void apply() override;
void finish() override;
class SettingsWidget;
QPointer<SettingsWidget> m_widget;
}; };
} // namespace Internal } // namespace Internal