From 2497f4d2eddbef3a0bf4ae492a0850788b4d8630 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Wed, 22 May 2024 11:27:42 +0200 Subject: [PATCH 1/2] Fix #12747 (GUI: when compliance report is generated the checkers-report should be provided.) --- gui/compliancereportdialog.cpp | 17 +++++++++++++---- gui/compliancereportdialog.h | 5 +++-- gui/mainwindow.cpp | 3 ++- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/gui/compliancereportdialog.cpp b/gui/compliancereportdialog.cpp index 242f72ca5b7..ebaf6d4b2ec 100644 --- a/gui/compliancereportdialog.cpp +++ b/gui/compliancereportdialog.cpp @@ -86,11 +86,12 @@ static std::vector toStdStringList(const QStringList& from) { return ret; } -ComplianceReportDialog::ComplianceReportDialog(ProjectFile* projectFile, QString resultsFile) : - QDialog(nullptr), +ComplianceReportDialog::ComplianceReportDialog(ProjectFile* projectFile, QString resultsFile, QString checkersReport) + : QDialog(nullptr), mUI(new Ui::ComplianceReportDialog), mProjectFile(projectFile), - mResultsFile(std::move(resultsFile)) + mResultsFile(std::move(resultsFile)), + mCheckersReport(std::move(checkersReport)) { mUI->setupUi(this); mUI->mEditProjectName->setText(projectFile->getProjectName()); @@ -146,6 +147,13 @@ void ComplianceReportDialog::save() mProjectFile->write(); } + QTemporaryFile tempCheckersReport; + if (tempCheckersReport.open()) { + QTextStream out(&tempCheckersReport); + out << mCheckersReport << "\n"; + tempCheckersReport.close(); + } + QTemporaryFile tempFiles; if (files && tempFiles.open()) { QTextStream out(&tempFiles); @@ -205,7 +213,8 @@ void ComplianceReportDialog::save() QStringList args{"--project-name=" + projectName, "--project-version=" + projectVersion, - "--output-file=" + outFile}; + "--output-file=" + outFile, + "--checkers-report=" + tempCheckersReport.fileName()}; if (!suppressions.isEmpty()) args << "--suppressions=" + suppressions.join(","); diff --git a/gui/compliancereportdialog.h b/gui/compliancereportdialog.h index ad3b79c5c45..af4146cef9f 100644 --- a/gui/compliancereportdialog.h +++ b/gui/compliancereportdialog.h @@ -35,7 +35,7 @@ class ComplianceReportDialog final : public QDialog Q_OBJECT public: - explicit ComplianceReportDialog(ProjectFile* projectFile, QString resultsFile); + explicit ComplianceReportDialog(ProjectFile* projectFile, QString resultsFile, QString checkersReport); ~ComplianceReportDialog() final; private slots: @@ -46,7 +46,8 @@ private slots: Ui::ComplianceReportDialog *mUI; ProjectFile* mProjectFile; - QString mResultsFile; + const QString mResultsFile; + const QString mCheckersReport; }; #endif // COMPLIANCEREPORTDIALOG_H diff --git a/gui/mainwindow.cpp b/gui/mainwindow.cpp index b5f8713ff0a..22386db4df9 100644 --- a/gui/mainwindow.cpp +++ b/gui/mainwindow.cpp @@ -22,6 +22,7 @@ #include "applicationlist.h" #include "aboutdialog.h" #include "analyzerinfo.h" +#include "checkstatistics.h" #include "checkthread.h" #include "common.h" #include "cppcheck.h" @@ -1593,7 +1594,7 @@ void MainWindow::complianceReport() mUI->mResults->save(tempResults.fileName(), Report::XMLV2, mCppcheckCfgProductName); - ComplianceReportDialog dlg(mProjectFile, tempResults.fileName()); + ComplianceReportDialog dlg(mProjectFile, tempResults.fileName(), mUI->mResults->getStatistics()->getCheckersReport()); dlg.exec(); } From c6e186b291f88ea5a37258904cb5f630414bb4dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Marjam=C3=A4ki?= Date: Wed, 22 May 2024 11:29:26 +0200 Subject: [PATCH 2/2] runformat --- gui/compliancereportdialog.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gui/compliancereportdialog.cpp b/gui/compliancereportdialog.cpp index ebaf6d4b2ec..f05a2ab3026 100644 --- a/gui/compliancereportdialog.cpp +++ b/gui/compliancereportdialog.cpp @@ -87,7 +87,7 @@ static std::vector toStdStringList(const QStringList& from) { } ComplianceReportDialog::ComplianceReportDialog(ProjectFile* projectFile, QString resultsFile, QString checkersReport) - : QDialog(nullptr), + : QDialog(nullptr), mUI(new Ui::ComplianceReportDialog), mProjectFile(projectFile), mResultsFile(std::move(resultsFile)),