mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	compatdb: Use a seperate endpoint for testcase submission
This commit is contained in:
		
							parent
							
								
									5b7d21c3cd
								
							
						
					
					
						commit
						b7117bf050
					
				
					 7 changed files with 65 additions and 7 deletions
				
			
		|  | @ -5,6 +5,7 @@ | |||
| #include <QButtonGroup> | ||||
| #include <QMessageBox> | ||||
| #include <QPushButton> | ||||
| #include <QtConcurrent/qtconcurrentrun.h> | ||||
| #include "citra_qt/compatdb.h" | ||||
| #include "common/telemetry.h" | ||||
| #include "core/core.h" | ||||
|  | @ -21,6 +22,8 @@ CompatDB::CompatDB(QWidget* parent) | |||
|     connect(ui->radioButton_IntroMenu, &QRadioButton::clicked, this, &CompatDB::EnableNext); | ||||
|     connect(ui->radioButton_WontBoot, &QRadioButton::clicked, this, &CompatDB::EnableNext); | ||||
|     connect(button(NextButton), &QPushButton::clicked, this, &CompatDB::Submit); | ||||
|     connect(&testcase_watcher, &QFutureWatcher<bool>::finished, this, | ||||
|             &CompatDB::OnTestcaseSubmitted); | ||||
| } | ||||
| 
 | ||||
| CompatDB::~CompatDB() = default; | ||||
|  | @ -46,18 +49,38 @@ void CompatDB::Submit() { | |||
|         } | ||||
|         break; | ||||
|     case CompatDBPage::Final: | ||||
|         back(); | ||||
|         LOG_DEBUG(Frontend, "Compatibility Rating: {}", compatibility->checkedId()); | ||||
|         Core::Telemetry().AddField(Telemetry::FieldType::UserFeedback, "Compatibility", | ||||
|                                    compatibility->checkedId()); | ||||
|         // older versions of QT don't support the "NoCancelButtonOnLastPage" option, this is a
 | ||||
|         // workaround
 | ||||
| 
 | ||||
|         button(NextButton)->setEnabled(false); | ||||
|         button(NextButton)->setText(tr("Submitting")); | ||||
|         button(QWizard::CancelButton)->setVisible(false); | ||||
| 
 | ||||
|         testcase_watcher.setFuture(QtConcurrent::run( | ||||
|             [this]() { return Core::System::GetInstance().TelemetrySession().SubmitTestcase(); })); | ||||
|         break; | ||||
|     default: | ||||
|         LOG_ERROR(Frontend, "Unexpected page: {}", currentId()); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| void CompatDB::OnTestcaseSubmitted() { | ||||
|     if (!testcase_watcher.result()) { | ||||
|         QMessageBox::critical(this, tr("Communication error"), | ||||
|                               tr("An error occured while sending the Testcase")); | ||||
|         button(NextButton)->setEnabled(true); | ||||
|         button(NextButton)->setText(tr("Next")); | ||||
|         button(QWizard::CancelButton)->setVisible(true); | ||||
|     } else { | ||||
|         next(); | ||||
|         // older versions of QT don't support the "NoCancelButtonOnLastPage" option, this is a
 | ||||
|         // workaround
 | ||||
|         button(QWizard::CancelButton)->setVisible(false); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| void CompatDB::EnableNext() { | ||||
|     button(NextButton)->setEnabled(true); | ||||
| } | ||||
|  |  | |||
|  | @ -5,6 +5,7 @@ | |||
| #pragma once | ||||
| 
 | ||||
| #include <memory> | ||||
| #include <QFutureWatcher> | ||||
| #include <QWizard> | ||||
| 
 | ||||
| namespace Ui { | ||||
|  | @ -19,8 +20,11 @@ public: | |||
|     ~CompatDB(); | ||||
| 
 | ||||
| private: | ||||
|     QFutureWatcher<bool> testcase_watcher; | ||||
| 
 | ||||
|     std::unique_ptr<Ui::CompatDB> ui; | ||||
| 
 | ||||
|     void Submit(); | ||||
|     void OnTestcaseSubmitted(); | ||||
|     void EnableNext(); | ||||
| }; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue