From 39e38bfdff19a32b3ff9f5a8d45ed32ff2f77656 Mon Sep 17 00:00:00 2001 From: hjk Date: Mon, 1 Aug 2022 14:15:14 +0200 Subject: [PATCH] ProjectExplorer: inline customparserconfigdialog.ui Also fix label buddies on the "Warning" page. Change-Id: If2f62021fe0f5820ea23a49f6235065dbe17126c Reviewed-by: Christian Stenger --- src/plugins/projectexplorer/CMakeLists.txt | 2 +- .../customparserconfigdialog.cpp | 289 ++++++++--- .../customparserconfigdialog.h | 36 +- .../customparserconfigdialog.ui | 479 ------------------ .../projectexplorer/projectexplorer.qbs | 2 +- 5 files changed, 253 insertions(+), 555 deletions(-) delete mode 100644 src/plugins/projectexplorer/customparserconfigdialog.ui diff --git a/src/plugins/projectexplorer/CMakeLists.txt b/src/plugins/projectexplorer/CMakeLists.txt index b7ab6405edb..f3190f0688a 100644 --- a/src/plugins/projectexplorer/CMakeLists.txt +++ b/src/plugins/projectexplorer/CMakeLists.txt @@ -33,7 +33,7 @@ add_qtc_plugin(ProjectExplorer currentprojectfind.cpp currentprojectfind.h customexecutablerunconfiguration.cpp customexecutablerunconfiguration.h customparser.cpp customparser.h - customparserconfigdialog.cpp customparserconfigdialog.h customparserconfigdialog.ui + customparserconfigdialog.cpp customparserconfigdialog.h customparserssettingspage.cpp customparserssettingspage.h customtoolchain.cpp customtoolchain.h customwizard/customwizard.cpp customwizard/customwizard.h diff --git a/src/plugins/projectexplorer/customparserconfigdialog.cpp b/src/plugins/projectexplorer/customparserconfigdialog.cpp index b0236ab6fb1..fbaa261e5fb 100644 --- a/src/plugins/projectexplorer/customparserconfigdialog.cpp +++ b/src/plugins/projectexplorer/customparserconfigdialog.cpp @@ -24,50 +24,206 @@ ****************************************************************************/ #include "customparserconfigdialog.h" -#include "ui_customparserconfigdialog.h" +#include #include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include #include +#include +#include +#include +#include -namespace ProjectExplorer { -namespace Internal { +namespace ProjectExplorer::Internal { -CustomParserConfigDialog::CustomParserConfigDialog(QWidget *parent) : - QDialog(parent), - ui(new Ui::CustomParserConfigDialog) +CustomParserConfigDialog::CustomParserConfigDialog(QWidget *parent) + : QDialog(parent) { - ui->setupUi(this); + resize(516, 480); + setWindowTitle(tr("Custom Parser")); - connect(ui->errorPattern, &QLineEdit::textChanged, this, &CustomParserConfigDialog::changed); - connect(ui->errorOutputMessage, &QLineEdit::textChanged, + m_errorPattern = new QLineEdit; + auto label_1 = new QLabel(tr("&Error message capture pattern:")); + label_1->setBuddy(m_errorPattern); + + auto label = new QLabel(tr("&File name:")); + auto label_2 = new QLabel(tr("&Line number:")); + auto label_3 = new QLabel(tr("&Message:")); + + m_errorFileNameCap = new QSpinBox; + m_errorFileNameCap->setMaximum(9); + m_errorFileNameCap->setValue(1); + + m_errorLineNumberCap = new QSpinBox; + m_errorLineNumberCap->setMaximum(9); + m_errorLineNumberCap->setValue(2); + + m_errorMessageCap = new QSpinBox; + m_errorMessageCap->setMaximum(9); + m_errorMessageCap->setValue(3); + + label->setBuddy(m_errorFileNameCap); + label_2->setBuddy(m_errorLineNumberCap); + label_3->setBuddy(m_errorMessageCap); + + m_errorStdOutChannel = new QCheckBox(tr("Standard output")); + m_errorStdErrChannel = new QCheckBox(tr("Standard error")); + + auto label_5 = new QLabel(tr("E&rror message:")); + m_errorOutputMessage = new QLineEdit; + m_errorFileNameTest = new QLabel; + m_errorLineNumberTest = new QLabel; + m_errorMessageTest = new QLabel; + label_5->setBuddy(m_errorOutputMessage); + + + m_warningPattern = new QLineEdit; + + auto label_11 = new QLabel(tr("&File name:")); + auto label_12 = new QLabel(tr("&Line number:")); + auto label_13 = new QLabel(tr("&Message:")); + + m_warningLineNumberCap = new QSpinBox; + m_warningLineNumberCap->setMaximum(9); + m_warningLineNumberCap->setValue(2); + + m_warningMessageCap = new QSpinBox; + m_warningMessageCap->setMaximum(9); + m_warningMessageCap->setValue(3); + + m_warningFileNameCap = new QSpinBox; + m_warningFileNameCap->setMaximum(9); + m_warningFileNameCap->setValue(1); + + label_11->setBuddy(m_warningFileNameCap); + label_12->setBuddy(m_warningLineNumberCap); + label_13->setBuddy(m_warningMessageCap); + + m_warningStdOutChannel = new QCheckBox(tr("Standard output")); + m_warningStdErrChannel = new QCheckBox(tr("Standard error")); + + auto label_14 = new QLabel(tr("Warning message:")); + m_warningOutputMessage = new QLineEdit; + m_warningFileNameTest = new QLabel; + m_warningLineNumberTest = new QLabel; + m_warningMessageTest = new QLabel; + label_14->setBuddy(m_warningOutputMessage); + + + auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Cancel|QDialogButtonBox::Ok); + + using namespace Utils::Layouting; + + auto tabWarning = new QWidget; + Column { + tr("Warning message capture pattern:"), + m_warningPattern, + Group { + title(tr("Capture Positions")), + Grid { + label_11, label_12, label_13, br, + m_warningFileNameCap, m_warningLineNumberCap, m_warningMessageCap + } + }, + Group { + title(tr("Capture Output Channels")), + Row { m_warningStdOutChannel, m_warningStdErrChannel } + }, + Group { + title(tr("Test")), + Column { + label_14, + m_warningOutputMessage, + Form { + tr("File name:"), m_warningFileNameTest, br, + tr("Line number:"), m_warningLineNumberTest, br, + tr("Message:"), m_warningMessageTest + } + } + } + }.attachTo(tabWarning); + + auto tabError = new QWidget; + Column { + label_1, + m_errorPattern, + Group { + title(tr("Capture Positions")), + Grid { + label, label_2, label_3, br, + m_errorFileNameCap, m_errorLineNumberCap, m_errorMessageCap + } + }, + Group { + title(tr("Capture Output Channels")), + Row { m_errorStdOutChannel, m_errorStdErrChannel } + }, + Group { + title(tr("Test")), + Column { + label_5, + m_errorOutputMessage, + Form { + tr("File name:"), m_errorFileNameTest, br, + tr("Line number:"), m_errorLineNumberTest, br, + tr("Message:"), m_errorMessageTest + } + } + }, + }.attachTo(tabError); + + auto tabWidget = new QTabWidget(this); + tabWidget->addTab(tabError, tr("Error")); + tabWidget->addTab(tabWarning, tr("Warning")); + tabWidget->setCurrentIndex(0); + + Column { + tabWidget, + st, + buttonBox + }.attachTo(this); + + connect(m_errorPattern, &QLineEdit::textChanged, this, &CustomParserConfigDialog::changed); - connect(ui->errorFileNameCap, &QSpinBox::valueChanged, + connect(m_errorOutputMessage, &QLineEdit::textChanged, this, &CustomParserConfigDialog::changed); - connect(ui->errorLineNumberCap, &QSpinBox::valueChanged, + connect(m_errorFileNameCap, &QSpinBox::valueChanged, this, &CustomParserConfigDialog::changed); - connect(ui->errorMessageCap, &QSpinBox::valueChanged, + connect(m_errorLineNumberCap, &QSpinBox::valueChanged, this, &CustomParserConfigDialog::changed); - connect(ui->warningPattern, &QLineEdit::textChanged, this, &CustomParserConfigDialog::changed); - connect(ui->warningOutputMessage, &QLineEdit::textChanged, + connect(m_errorMessageCap, &QSpinBox::valueChanged, this, &CustomParserConfigDialog::changed); - connect(ui->warningFileNameCap, &QSpinBox::valueChanged, + connect(m_warningPattern, &QLineEdit::textChanged, this, &CustomParserConfigDialog::changed); - connect(ui->warningLineNumberCap, &QSpinBox::valueChanged, + connect(m_warningOutputMessage, &QLineEdit::textChanged, this, &CustomParserConfigDialog::changed); - connect(ui->warningMessageCap, &QSpinBox::valueChanged, + connect(m_warningFileNameCap, &QSpinBox::valueChanged, this, &CustomParserConfigDialog::changed); + connect(m_warningLineNumberCap, &QSpinBox::valueChanged, + this, &CustomParserConfigDialog::changed); + connect(m_warningMessageCap, &QSpinBox::valueChanged, + this, &CustomParserConfigDialog::changed); + + connect(buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); + connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); changed(); m_dirty = false; } -CustomParserConfigDialog::~CustomParserConfigDialog() -{ - delete ui; -} +CustomParserConfigDialog::~CustomParserConfigDialog() = default; void CustomParserConfigDialog::setExampleSettings() { @@ -81,9 +237,9 @@ void CustomParserConfigDialog::setExampleSettings() setWarningLineNumberCap(2); setWarningMessageCap(3); setWarningChannel(CustomParserExpression::ParseBothChannels); - ui->errorOutputMessage->setText( + m_errorOutputMessage->setText( QLatin1String("#error /home/user/src/test.c:891: Unknown identifier `test`")); - ui->warningOutputMessage->setText( + m_warningOutputMessage->setText( QLatin1String("#warning /home/user/src/test.c:49: Unreferenced variable `test`")); } @@ -128,136 +284,136 @@ CustomParserSettings CustomParserConfigDialog::settings() const void CustomParserConfigDialog::setErrorPattern(const QString &errorPattern) { - ui->errorPattern->setText(errorPattern); + m_errorPattern->setText(errorPattern); } QString CustomParserConfigDialog::errorPattern() const { - return ui->errorPattern->text(); + return m_errorPattern->text(); } void CustomParserConfigDialog::setErrorFileNameCap(int fileNameCap) { - ui->errorFileNameCap->setValue(fileNameCap); + m_errorFileNameCap->setValue(fileNameCap); } int CustomParserConfigDialog::errorFileNameCap() const { - return ui->errorFileNameCap->value(); + return m_errorFileNameCap->value(); } void CustomParserConfigDialog::setErrorLineNumberCap(int lineNumberCap) { - ui->errorLineNumberCap->setValue(lineNumberCap); + m_errorLineNumberCap->setValue(lineNumberCap); } int CustomParserConfigDialog::errorLineNumberCap() const { - return ui->errorLineNumberCap->value(); + return m_errorLineNumberCap->value(); } void CustomParserConfigDialog::setErrorMessageCap(int messageCap) { - ui->errorMessageCap->setValue(messageCap); + m_errorMessageCap->setValue(messageCap); } int CustomParserConfigDialog::errorMessageCap() const { - return ui->errorMessageCap->value(); + return m_errorMessageCap->value(); } void CustomParserConfigDialog::setErrorChannel(CustomParserExpression::CustomParserChannel errorChannel) { - ui->errorStdErrChannel->setChecked( + m_errorStdErrChannel->setChecked( errorChannel & static_cast(CustomParserExpression::ParseStdErrChannel)); - ui->errorStdOutChannel->setChecked( + m_errorStdOutChannel->setChecked( errorChannel & static_cast(CustomParserExpression::ParseStdOutChannel)); } CustomParserExpression::CustomParserChannel CustomParserConfigDialog::errorChannel() const { - if (ui->errorStdErrChannel->isChecked() && !ui->errorStdOutChannel->isChecked()) + if (m_errorStdErrChannel->isChecked() && !m_errorStdOutChannel->isChecked()) return CustomParserExpression::ParseStdErrChannel; - if (ui->errorStdOutChannel->isChecked() && !ui->errorStdErrChannel->isChecked()) + if (m_errorStdOutChannel->isChecked() && !m_errorStdErrChannel->isChecked()) return CustomParserExpression::ParseStdOutChannel; return CustomParserExpression::ParseBothChannels; } void CustomParserConfigDialog::setErrorExample(const QString &errorExample) { - ui->errorOutputMessage->setText(errorExample); + m_errorOutputMessage->setText(errorExample); } QString CustomParserConfigDialog::errorExample() const { - return ui->errorOutputMessage->text(); + return m_errorOutputMessage->text(); } void CustomParserConfigDialog::setWarningPattern(const QString &warningPattern) { - ui->warningPattern->setText(warningPattern); + m_warningPattern->setText(warningPattern); } QString CustomParserConfigDialog::warningPattern() const { - return ui->warningPattern->text(); + return m_warningPattern->text(); } void CustomParserConfigDialog::setWarningFileNameCap(int warningFileNameCap) { - ui->warningFileNameCap->setValue(warningFileNameCap); + m_warningFileNameCap->setValue(warningFileNameCap); } int CustomParserConfigDialog::warningFileNameCap() const { - return ui->warningFileNameCap->value(); + return m_warningFileNameCap->value(); } void CustomParserConfigDialog::setWarningLineNumberCap(int warningLineNumberCap) { - ui->warningLineNumberCap->setValue(warningLineNumberCap); + m_warningLineNumberCap->setValue(warningLineNumberCap); } int CustomParserConfigDialog::warningLineNumberCap() const { - return ui->warningLineNumberCap->value(); + return m_warningLineNumberCap->value(); } void CustomParserConfigDialog::setWarningMessageCap(int warningMessageCap) { - ui->warningMessageCap->setValue(warningMessageCap); + m_warningMessageCap->setValue(warningMessageCap); } int CustomParserConfigDialog::warningMessageCap() const { - return ui->warningMessageCap->value(); + return m_warningMessageCap->value(); } void CustomParserConfigDialog::setWarningChannel(CustomParserExpression::CustomParserChannel warningChannel) { - ui->warningStdErrChannel->setChecked( + m_warningStdErrChannel->setChecked( warningChannel & static_cast(CustomParserExpression::ParseStdErrChannel)); - ui->warningStdOutChannel->setChecked( + m_warningStdOutChannel->setChecked( warningChannel & static_cast(CustomParserExpression::ParseStdOutChannel)); } CustomParserExpression::CustomParserChannel CustomParserConfigDialog::warningChannel() const { - if (ui->warningStdErrChannel->isChecked() && !ui->warningStdOutChannel->isChecked()) + if (m_warningStdErrChannel->isChecked() && !m_warningStdOutChannel->isChecked()) return CustomParserExpression::ParseStdErrChannel; - if (ui->warningStdOutChannel->isChecked() && !ui->warningStdErrChannel->isChecked()) + if (m_warningStdOutChannel->isChecked() && !m_warningStdErrChannel->isChecked()) return CustomParserExpression::ParseStdOutChannel; return CustomParserExpression::ParseBothChannels; } void CustomParserConfigDialog::setWarningExample(const QString &warningExample) { - ui->warningOutputMessage->setText(warningExample); + m_warningOutputMessage->setText(warningExample); } QString CustomParserConfigDialog::warningExample() const { - return ui->warningOutputMessage->text(); + return m_warningOutputMessage->text(); } bool CustomParserConfigDialog::isDirty() const @@ -305,27 +461,26 @@ void CustomParserConfigDialog::changed() QRegularExpressionMatch match; QString errorMessage; - if (checkPattern(ui->errorPattern, ui->errorOutputMessage->text(), &errorMessage, &match)) { - ui->errorFileNameTest->setText(match.captured(ui->errorFileNameCap->value())); - ui->errorLineNumberTest->setText(match.captured(ui->errorLineNumberCap->value())); - ui->errorMessageTest->setText(match.captured(ui->errorMessageCap->value())); + if (checkPattern(m_errorPattern, m_errorOutputMessage->text(), &errorMessage, &match)) { + m_errorFileNameTest->setText(match.captured(m_errorFileNameCap->value())); + m_errorLineNumberTest->setText(match.captured(m_errorLineNumberCap->value())); + m_errorMessageTest->setText(match.captured(m_errorMessageCap->value())); } else { - ui->errorFileNameTest->setText(errorMessage); - ui->errorLineNumberTest->setText(errorMessage); - ui->errorMessageTest->setText(errorMessage); + m_errorFileNameTest->setText(errorMessage); + m_errorLineNumberTest->setText(errorMessage); + m_errorMessageTest->setText(errorMessage); } - if (checkPattern(ui->warningPattern, ui->warningOutputMessage->text(), &errorMessage, &match)) { - ui->warningFileNameTest->setText(match.captured(ui->warningFileNameCap->value())); - ui->warningLineNumberTest->setText(match.captured(ui->warningLineNumberCap->value())); - ui->warningMessageTest->setText(match.captured(ui->warningMessageCap->value())); + if (checkPattern(m_warningPattern, m_warningOutputMessage->text(), &errorMessage, &match)) { + m_warningFileNameTest->setText(match.captured(m_warningFileNameCap->value())); + m_warningLineNumberTest->setText(match.captured(m_warningLineNumberCap->value())); + m_warningMessageTest->setText(match.captured(m_warningMessageCap->value())); } else { - ui->warningFileNameTest->setText(errorMessage); - ui->warningLineNumberTest->setText(errorMessage); - ui->warningMessageTest->setText(errorMessage); + m_warningFileNameTest->setText(errorMessage); + m_warningLineNumberTest->setText(errorMessage); + m_warningMessageTest->setText(errorMessage); } m_dirty = true; } -} // namespace Internal -} // namespace ProjectExplorer +} // ProjectExplorer::Internal diff --git a/src/plugins/projectexplorer/customparserconfigdialog.h b/src/plugins/projectexplorer/customparserconfigdialog.h index fc787a72b62..620db1925c2 100644 --- a/src/plugins/projectexplorer/customparserconfigdialog.h +++ b/src/plugins/projectexplorer/customparserconfigdialog.h @@ -30,13 +30,13 @@ #include QT_BEGIN_NAMESPACE +class QCheckBox; +class QLabel; class QLineEdit; +class QSpinBox; QT_END_NAMESPACE -namespace ProjectExplorer { -namespace Internal { - -namespace Ui { class CustomParserConfigDialog; } +namespace ProjectExplorer::Internal { class CustomParserConfigDialog : public QDialog { @@ -49,6 +49,7 @@ public: void setExampleSettings(); void setSettings(const CustomParserSettings &settings); CustomParserSettings settings() const; + void setErrorPattern(const QString &errorPattern); QString errorPattern() const; void setErrorFileNameCap(int errorFileNameCap); @@ -61,6 +62,7 @@ public: CustomParserExpression::CustomParserChannel errorChannel() const; void setErrorExample(const QString &errorExample); QString errorExample() const; + void setWarningPattern(const QString &warningPattern); QString warningPattern() const; void setWarningFileNameCap(int warningFileNameCap); @@ -82,9 +84,29 @@ private: bool checkPattern(QLineEdit *pattern, const QString &outputText, QString *errorMessage, QRegularExpressionMatch *match); - Ui::CustomParserConfigDialog *ui; + QLineEdit *m_errorPattern; + QSpinBox *m_errorFileNameCap; + QSpinBox *m_errorLineNumberCap; + QSpinBox *m_errorMessageCap; + QCheckBox *m_errorStdOutChannel; + QCheckBox *m_errorStdErrChannel; + QLineEdit *m_errorOutputMessage; + QLabel *m_errorFileNameTest; + QLabel *m_errorLineNumberTest; + QLabel *m_errorMessageTest; + + QLineEdit *m_warningPattern; + QSpinBox *m_warningLineNumberCap; + QSpinBox *m_warningMessageCap; + QSpinBox *m_warningFileNameCap; + QCheckBox *m_warningStdOutChannel; + QCheckBox *m_warningStdErrChannel; + QLineEdit *m_warningOutputMessage; + QLabel *m_warningFileNameTest; + QLabel *m_warningLineNumberTest; + QLabel *m_warningMessageTest; + bool m_dirty; }; -} // namespace Internal -} // namespace ProjectExplorer +} // ProjectExplorer::Internal diff --git a/src/plugins/projectexplorer/customparserconfigdialog.ui b/src/plugins/projectexplorer/customparserconfigdialog.ui deleted file mode 100644 index 7901db4e9b3..00000000000 --- a/src/plugins/projectexplorer/customparserconfigdialog.ui +++ /dev/null @@ -1,479 +0,0 @@ - - - ProjectExplorer::Internal::CustomParserConfigDialog - - - - 0 - 0 - 516 - 480 - - - - Custom Parser - - - - - - 0 - - - - Error - - - - - - - - &Error message capture pattern: - - - errorPattern - - - - - - - - - - - - - - - - Capture Positions - - - - - - &File name: - - - errorFileNameCap - - - - - - - &Line number: - - - errorLineNumberCap - - - - - - - &Message: - - - errorMessageCap - - - - - - - 9 - - - 1 - - - - - - - 9 - - - 2 - - - - - - - 9 - - - 3 - - - - - - - - - - Capture Output Channels - - - - - - Standard output - - - - - - - Standard error - - - - - - - - - - Test - - - - - - E&rror message: - - - errorOutputMessage - - - - - - - - - - - - - - - - File name: - - - - - - - TextLabel - - - - - - - Line number: - - - - - - - TextLabel - - - - - - - Message: - - - - - - - TextLabel - - - - - - - - - - - - - Warning - - - - - - - - Warning message capture pattern: - - - - - - - - - - - - - - - - Capture Positions - - - - - - 9 - - - 2 - - - - - - - 9 - - - 3 - - - - - - - &Line number: - - - errorLineNumberCap - - - - - - - &File name: - - - errorFileNameCap - - - - - - - 9 - - - 1 - - - - - - - &Message: - - - errorMessageCap - - - - - - - - - - Capture Output Channels - - - - - - Standard output - - - - - - - Standard error - - - - - - - - - - Test - - - - - - Warning message: - - - errorOutputMessage - - - - - - - - - - - - - - - - File name: - - - - - - - TextLabel - - - - - - - Line number: - - - - - - - TextLabel - - - - - - - Message: - - - - - - - TextLabel - - - - - - - - - - - - - - - - Qt::Vertical - - - - 20 - 22 - - - - - - - - QDialogButtonBox::Cancel|QDialogButtonBox::Ok - - - - - - - errorPattern - errorFileNameCap - errorLineNumberCap - errorMessageCap - errorStdOutChannel - errorStdErrChannel - errorOutputMessage - tabWidget - warningPattern - warningFileNameCap - warningLineNumberCap - warningMessageCap - warningStdOutChannel - warningStdErrChannel - warningOutputMessage - - - - - buttonBox - accepted() - ProjectExplorer::Internal::CustomParserConfigDialog - accept() - - - 320 - 341 - - - 386 - 289 - - - - - buttonBox - rejected() - ProjectExplorer::Internal::CustomParserConfigDialog - reject() - - - 277 - 350 - - - 421 - 255 - - - - - diff --git a/src/plugins/projectexplorer/projectexplorer.qbs b/src/plugins/projectexplorer/projectexplorer.qbs index 84304951482..e8680c9070a 100644 --- a/src/plugins/projectexplorer/projectexplorer.qbs +++ b/src/plugins/projectexplorer/projectexplorer.qbs @@ -50,7 +50,7 @@ Project { "currentprojectfind.cpp", "currentprojectfind.h", "customexecutablerunconfiguration.cpp", "customexecutablerunconfiguration.h", "customparser.cpp", "customparser.h", - "customparserconfigdialog.cpp", "customparserconfigdialog.h", "customparserconfigdialog.ui", + "customparserconfigdialog.cpp", "customparserconfigdialog.h", "customparserssettingspage.cpp", "customparserssettingspage.h", "customtoolchain.cpp", "customtoolchain.h", "dependenciespanel.cpp", "dependenciespanel.h",