diff --git a/src/plugins/beautifier/CMakeLists.txt b/src/plugins/beautifier/CMakeLists.txt index 23e8a10c00c..6cdf581016f 100644 --- a/src/plugins/beautifier/CMakeLists.txt +++ b/src/plugins/beautifier/CMakeLists.txt @@ -22,6 +22,6 @@ add_qtc_plugin(Beautifier generalsettings.cpp generalsettings.h uncrustify/uncrustify.cpp uncrustify/uncrustify.h uncrustify/uncrustifyconstants.h - uncrustify/uncrustifyoptionspage.cpp uncrustify/uncrustifyoptionspage.h uncrustify/uncrustifyoptionspage.ui + uncrustify/uncrustifyoptionspage.cpp uncrustify/uncrustifyoptionspage.h uncrustify/uncrustifysettings.cpp uncrustify/uncrustifysettings.h ) diff --git a/src/plugins/beautifier/beautifier.qbs b/src/plugins/beautifier/beautifier.qbs index fc91980126b..7238c891d28 100644 --- a/src/plugins/beautifier/beautifier.qbs +++ b/src/plugins/beautifier/beautifier.qbs @@ -69,7 +69,6 @@ QtcPlugin { "uncrustifyconstants.h", "uncrustifyoptionspage.cpp", "uncrustifyoptionspage.h", - "uncrustifyoptionspage.ui", "uncrustifysettings.cpp", "uncrustifysettings.h" ] diff --git a/src/plugins/beautifier/uncrustify/uncrustifyoptionspage.cpp b/src/plugins/beautifier/uncrustify/uncrustifyoptionspage.cpp index 2a934581089..5485ec68ba8 100644 --- a/src/plugins/beautifier/uncrustify/uncrustifyoptionspage.cpp +++ b/src/plugins/beautifier/uncrustify/uncrustifyoptionspage.cpp @@ -24,7 +24,6 @@ ****************************************************************************/ #include "uncrustifyoptionspage.h" -#include "ui_uncrustifyoptionspage.h" #include "uncrustifyconstants.h" #include "uncrustifysettings.h" @@ -32,9 +31,18 @@ #include "../beautifierconstants.h" #include "../beautifierplugin.h" +#include "../configurationpanel.h" -namespace Beautifier { -namespace Internal { +#include +#include + +#include +#include +#include +#include +#include + +namespace Beautifier::Internal { class UncrustifyOptionsPageWidget : public Core::IOptionsPageWidget { @@ -46,52 +54,104 @@ public: void apply() final; private: - Ui::UncrustifyOptionsPage ui; UncrustifySettings *m_settings; + + Utils::PathChooser *m_command; + QLineEdit *m_mime; + QCheckBox *m_useOtherFiles; + QCheckBox *m_useSpecificFile; + Utils::PathChooser *m_uncrusifyFilePath; + QCheckBox *m_useHomeFile; + QCheckBox *m_useCustomStyle; + ConfigurationPanel *m_configurations; + QCheckBox *m_formatEntireFileFallback; }; UncrustifyOptionsPageWidget::UncrustifyOptionsPageWidget(UncrustifySettings *settings) : m_settings(settings) { - ui.setupUi(this); - ui.useHomeFile->setText(ui.useHomeFile->text().replace( - "HOME", QDir::toNativeSeparators(QDir::home().absolutePath()))); - ui.uncrusifyFilePath->setExpectedKind(Utils::PathChooser::File); - ui.uncrusifyFilePath->setPromptDialogFilter(tr("Uncrustify file (*.cfg)")); + resize(817, 631); - ui.command->setExpectedKind(Utils::PathChooser::ExistingCommand); - ui.command->setCommandVersionArguments({"--version"}); - ui.command->setPromptDialogTitle(BeautifierPlugin::msgCommandPromptDialogTitle( + m_command = new Utils::PathChooser; + + m_mime = new QLineEdit(m_settings->supportedMimeTypesAsString()); + + m_useOtherFiles = new QCheckBox(tr("Use file uncrustify.cfg defined in project files")); + m_useOtherFiles->setChecked(m_settings->useOtherFiles()); + + m_useSpecificFile = new QCheckBox(tr("Use file specific uncrustify.cfg")); + m_useSpecificFile->setChecked(m_settings->useSpecificConfigFile()); + + m_uncrusifyFilePath = new Utils::PathChooser; + m_uncrusifyFilePath->setExpectedKind(Utils::PathChooser::File); + m_uncrusifyFilePath->setPromptDialogFilter(tr("Uncrustify file (*.cfg)")); + m_uncrusifyFilePath->setFilePath(m_settings->specificConfigFile()); + + m_useHomeFile = new QCheckBox(tr("Use file uncrustify.cfg in HOME") + .replace( "HOME", QDir::toNativeSeparators(QDir::home().absolutePath()))); + m_useHomeFile->setChecked(m_settings->useHomeFile()); + + m_useCustomStyle = new QCheckBox(tr("Use customized style:")); + m_useCustomStyle->setChecked(m_settings->useCustomStyle()); + + m_configurations = new ConfigurationPanel; + m_configurations->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); + m_configurations->setSettings(m_settings); + m_configurations->setCurrentConfiguration(m_settings->customStyle()); + + m_formatEntireFileFallback = new QCheckBox(tr("Format entire file if no text was selected")); + m_formatEntireFileFallback->setToolTip(tr("For action Format Selected Text")); + m_formatEntireFileFallback->setChecked(m_settings->formatEntireFileFallback()); + + m_command->setExpectedKind(Utils::PathChooser::ExistingCommand); + m_command->setCommandVersionArguments({"--version"}); + m_command->setPromptDialogTitle(BeautifierPlugin::msgCommandPromptDialogTitle( Uncrustify::tr(Constants::UNCRUSTIFY_DISPLAY_NAME))); - connect(ui.command, &Utils::PathChooser::validChanged, ui.options, &QWidget::setEnabled); - ui.configurations->setSettings(m_settings); + m_command->setFilePath(m_settings->command()); - ui.command->setFilePath(m_settings->command()); - ui.mime->setText(m_settings->supportedMimeTypesAsString()); - ui.useOtherFiles->setChecked(m_settings->useOtherFiles()); - ui.useHomeFile->setChecked(m_settings->useHomeFile()); - ui.useSpecificFile->setChecked(m_settings->useSpecificConfigFile()); - ui.uncrusifyFilePath->setFilePath(m_settings->specificConfigFile()); - ui.useCustomStyle->setChecked(m_settings->useCustomStyle()); - ui.configurations->setCurrentConfiguration(m_settings->customStyle()); - ui.formatEntireFileFallback->setChecked(m_settings->formatEntireFileFallback()); + auto options = new QGroupBox(tr("Options")); + + using namespace Utils::Layouting; + const Break br; + + Column { + m_useOtherFiles, + Row { m_useSpecificFile, m_uncrusifyFilePath }, + m_useHomeFile, + Row { m_useCustomStyle, m_configurations }, + m_formatEntireFileFallback + }.attachTo(options); + + Column { + Group { + Title(tr("Configuration")), + Form { + tr("Uncrustify command:"), m_command, br, + tr("Restrict to MIME types:"), m_mime + } + }, + options, + Stretch() + }.attachTo(this); + + connect(m_command, &Utils::PathChooser::validChanged, options, &QWidget::setEnabled); } void UncrustifyOptionsPageWidget::apply() { - m_settings->setCommand(ui.command->filePath().toString()); - m_settings->setSupportedMimeTypes(ui.mime->text()); - m_settings->setUseOtherFiles(ui.useOtherFiles->isChecked()); - m_settings->setUseHomeFile(ui.useHomeFile->isChecked()); - m_settings->setUseSpecificConfigFile(ui.useSpecificFile->isChecked()); - m_settings->setSpecificConfigFile(ui.uncrusifyFilePath->filePath()); - m_settings->setUseCustomStyle(ui.useCustomStyle->isChecked()); - m_settings->setCustomStyle(ui.configurations->currentConfiguration()); - m_settings->setFormatEntireFileFallback(ui.formatEntireFileFallback->isChecked()); + m_settings->setCommand(m_command->filePath().toString()); + m_settings->setSupportedMimeTypes(m_mime->text()); + m_settings->setUseOtherFiles(m_useOtherFiles->isChecked()); + m_settings->setUseHomeFile(m_useHomeFile->isChecked()); + m_settings->setUseSpecificConfigFile(m_useSpecificFile->isChecked()); + m_settings->setSpecificConfigFile(m_uncrusifyFilePath->filePath()); + m_settings->setUseCustomStyle(m_useCustomStyle->isChecked()); + m_settings->setCustomStyle(m_configurations->currentConfiguration()); + m_settings->setFormatEntireFileFallback(m_formatEntireFileFallback->isChecked()); m_settings->save(); // update since not all MIME types are accepted (invalids or duplicates) - ui.mime->setText(m_settings->supportedMimeTypesAsString()); + m_mime->setText(m_settings->supportedMimeTypesAsString()); } UncrustifyOptionsPage::UncrustifyOptionsPage(UncrustifySettings *settings) @@ -102,5 +162,4 @@ UncrustifyOptionsPage::UncrustifyOptionsPage(UncrustifySettings *settings) setWidgetCreator([settings] { return new UncrustifyOptionsPageWidget(settings); }); } -} // namespace Internal -} // namespace Beautifier +} // Beautifier::Internal diff --git a/src/plugins/beautifier/uncrustify/uncrustifyoptionspage.h b/src/plugins/beautifier/uncrustify/uncrustifyoptionspage.h index 37802b655e8..533f496cc30 100644 --- a/src/plugins/beautifier/uncrustify/uncrustifyoptionspage.h +++ b/src/plugins/beautifier/uncrustify/uncrustifyoptionspage.h @@ -27,8 +27,7 @@ #include -namespace Beautifier { -namespace Internal { +namespace Beautifier::Internal { class UncrustifySettings; @@ -38,5 +37,4 @@ public: explicit UncrustifyOptionsPage(UncrustifySettings *settings); }; -} // namespace Internal -} // namespace Beautifier +} // Beautifier::Internal diff --git a/src/plugins/beautifier/uncrustify/uncrustifyoptionspage.ui b/src/plugins/beautifier/uncrustify/uncrustifyoptionspage.ui deleted file mode 100644 index 67a59edfa20..00000000000 --- a/src/plugins/beautifier/uncrustify/uncrustifyoptionspage.ui +++ /dev/null @@ -1,138 +0,0 @@ - - - Beautifier::Internal::UncrustifyOptionsPage - - - - 0 - 0 - 817 - 631 - - - - - - - - - - Configuration - - - - - - Uncrustify command: - - - - - - - - - - Restrict to MIME types: - - - - - - - - - - - - - Options - - - - - - Use file uncrustify.cfg defined in project files - - - - - - - - - Use file specific uncrustify.cfg - - - - - - - - - - - - Use file uncrustify.cfg in HOME - - - - - - - - - Use customized style: - - - - - - - - - - - - For action Format Selected Text - - - Format entire file if no text was selected - - - - - - - - - - Qt::Vertical - - - - 20 - 40 - - - - - - - - - Utils::PathChooser - QWidget -
utils/pathchooser.h
- 1 -
- - Beautifier::Internal::ConfigurationPanel - QWidget -
beautifier/configurationpanel.h
- 1 -
-
- - -