From e51c81fc037f3f16d028f00afe849017e338c80c Mon Sep 17 00:00:00 2001 From: Xavier Michelon Date: Tue, 7 Nov 2023 11:34:55 +0100 Subject: [PATCH] feat(GODT-3046): added ReportBugFallback event support in bridge-gui. --- .../bridge-gui-tester/GRPCService.cpp | 14 +++++- .../bridge-gui-tester/Tabs/SettingsTab.cpp | 6 +-- .../bridge-gui-tester/Tabs/SettingsTab.h | 8 +++- .../bridge-gui-tester/Tabs/SettingsTab.ui | 47 ++++++++++++++++--- .../bridgepp/bridgepp/GRPC/EventFactory.cpp | 12 +++++ .../bridgepp/bridgepp/GRPC/EventFactory.h | 1 + 6 files changed, 77 insertions(+), 11 deletions(-) diff --git a/internal/frontend/bridge-gui/bridge-gui-tester/GRPCService.cpp b/internal/frontend/bridge-gui/bridge-gui-tester/GRPCService.cpp index 5b693872..d848c88d 100644 --- a/internal/frontend/bridge-gui/bridge-gui-tester/GRPCService.cpp +++ b/internal/frontend/bridge-gui/bridge-gui-tester/GRPCService.cpp @@ -364,7 +364,19 @@ Status GRPCService::ReportBug(ServerContext *, ReportBugRequest const *request, qtProxy_.reportBug(QString::fromStdString(request->ostype()), QString::fromStdString(request->osversion()), QString::fromStdString(request->emailclient()), QString::fromStdString(request->address()), QString::fromStdString(request->description()), request->includelogs()); - qtProxy_.sendDelayedEvent(tab.nextBugReportWillSucceed() ? newReportBugSuccessEvent() : newReportBugErrorEvent()); + SPStreamEvent event; + switch (tab.nextBugReportResult()) { + case SettingsTab::BugReportResult::Success: + event = newReportBugSuccessEvent(); + break; + case SettingsTab::BugReportResult::Error: + event = newReportBugErrorEvent(); + break; + case SettingsTab::BugReportResult::DataSharingError: + event = newReportBugFallbackEvent(); + break; + } + qtProxy_.sendDelayedEvent(event); qtProxy_.sendDelayedEvent(newReportBugFinishedEvent()); return Status::OK; diff --git a/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/SettingsTab.cpp b/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/SettingsTab.cpp index aa4c744a..fe596bc6 100644 --- a/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/SettingsTab.cpp +++ b/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/SettingsTab.cpp @@ -323,8 +323,8 @@ void SettingsTab::exportTLSCertificates(QString const &folderPath) { //**************************************************************************************************************************************************** /// \return The state of the check box. //**************************************************************************************************************************************************** -bool SettingsTab::nextBugReportWillSucceed() const { - return ui_.checkNextBugReportWillSucceed->isChecked(); +SettingsTab::BugReportResult SettingsTab::nextBugReportResult() const { + return BugReportResult(ui_.comboBugReportResult->currentIndex()); } @@ -522,7 +522,7 @@ void SettingsTab::resetUI() { ui_.editAddress->setText(QString()); ui_.editDescription->setPlainText(QString()); ui_.labelIncludeLogsValue->setText(QString()); - ui_.checkNextBugReportWillSucceed->setChecked(true); + ui_.comboBugReportResult->setCurrentIndex(0); ui_.editHostname->setText("localhost"); ui_.spinPortIMAP->setValue(1143); diff --git a/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/SettingsTab.h b/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/SettingsTab.h index ce4fa1e8..edeb5ae8 100644 --- a/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/SettingsTab.h +++ b/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/SettingsTab.h @@ -35,6 +35,12 @@ public: // data types. Failure = 2 }; ///< Enumeration for the result of a TLS certificate installation. + enum class BugReportResult { + Success = 0, + Error = 1, + DataSharingError = 2, + }; ///< Enumeration for the result of bug report sending + public: // member functions. explicit SettingsTab(QWidget *parent = nullptr); ///< Default constructor. SettingsTab(SettingsTab const &) = delete; ///< Disabled copy-constructor. @@ -60,7 +66,7 @@ public: // member functions. QString releaseNotesPageLink() const; ///< Get the content of the 'Release Notes Page Link' edit. QString dependencyLicenseLink() const; ///< Get the content of the 'Dependency License Link' edit. QString landingPageLink() const; ///< Get the content of the 'Landing Page Link' edit. - bool nextBugReportWillSucceed() const; ///< Get the status of the 'Next Bug Report Will Fail' check box. + BugReportResult nextBugReportResult() const; ///< Get the value of the 'Next bug report result' combo box. bool isTLSCertificateInstalled() const; ///< Get the status of the 'TLS Certificate is installed' check box. TLSCertInstallResult nextTLSCertInstallResult() const; ///< Get the value of the 'Next TLS Certificate install result' combo box. bool nextTLSCertExportWillSucceed() const; ///< Get the status of the 'Next TLS Cert export will succeed' check box. diff --git a/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/SettingsTab.ui b/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/SettingsTab.ui index f03000a6..f0034bd5 100644 --- a/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/SettingsTab.ui +++ b/internal/frontend/bridge-gui/bridge-gui-tester/Tabs/SettingsTab.ui @@ -925,11 +925,47 @@ - - - Next Bug Report Will Succeed - - + + + + + Next bug report result + + + + + + + + Success + + + + + Error + + + + + Data sharing error + + + + + + + + Qt::Horizontal + + + + 40 + 1 + + + + + @@ -1088,7 +1124,6 @@ editEmailClient spinEventDelay checkIsPortFree - checkNextBugReportWillSucceed diff --git a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/EventFactory.cpp b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/EventFactory.cpp index 6d2b2db8..9613f8b4 100644 --- a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/EventFactory.cpp +++ b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/EventFactory.cpp @@ -202,6 +202,18 @@ SPStreamEvent newReportBugErrorEvent() { } +//**************************************************************************************************************************************************** +/// \return The event. +//**************************************************************************************************************************************************** +SPStreamEvent newReportBugFallbackEvent() { + auto event = new grpc::ReportBugFallbackEvent; + auto appEvent = new grpc::AppEvent; + appEvent->set_allocated_reportbugfallback(event); + return wrapAppEvent(appEvent); +} + + + //**************************************************************************************************************************************************** /// \return The event. //**************************************************************************************************************************************************** diff --git a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/EventFactory.h b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/EventFactory.h index 0beef1dd..3a8651f3 100644 --- a/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/EventFactory.h +++ b/internal/frontend/bridge-gui/bridgepp/bridgepp/GRPC/EventFactory.h @@ -34,6 +34,7 @@ SPStreamEvent newResetFinishedEvent(); ///< Create a new ResetFinishedEvent even SPStreamEvent newReportBugFinishedEvent(); ///< Create a new ReportBugFinishedEvent event. SPStreamEvent newReportBugSuccessEvent(); ///< Create a new ReportBugSuccessEvent event. SPStreamEvent newReportBugErrorEvent(); ///< Create a new ReportBugErrorEvent event. +SPStreamEvent newReportBugFallbackEvent(); ///< Create a new ReportBugFallbackEvent event. SPStreamEvent newCertificateInstallSuccessEvent(); ///< Create a new CertificateInstallSuccessEvent event. SPStreamEvent newCertificateInstallCanceledEvent(); ///< Create a new CertificateInstallCanceledEvent event. SPStreamEvent newCertificateInstallFailedEvent(); ///< Create anew CertificateInstallFailedEvent event.