From 85f5e3b310a5f892ef0184c8615e4e022e469647 Mon Sep 17 00:00:00 2001 From: pereverzev_v Date: Wed, 25 Dec 2019 15:17:03 +0200 Subject: [PATCH] Showing a telemetry request dialog synchronously just after the splash screen 'MuseScore' --- all.h | 2 ++ mscore/musescore.cpp | 18 +++++++++++++----- .../widgets/telemetrypermissiondialog.cpp | 1 + telemetry/widgets/telemetrypermissiondialog.h | 5 ++++- 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/all.h b/all.h index 5742d45a38..8ecb0eefec 100644 --- a/all.h +++ b/all.h @@ -90,6 +90,7 @@ #include #include +#include #include #include @@ -99,6 +100,7 @@ #include #include #include +#include #include #include #include diff --git a/mscore/musescore.cpp b/mscore/musescore.cpp index 71430b835b..e775c0376c 100644 --- a/mscore/musescore.cpp +++ b/mscore/musescore.cpp @@ -7060,8 +7060,16 @@ void tryToRequestTelemetryPermission() if (accessRequestedAtVersion == VERSION) return; - TelemetryPermissionDialog *requestDialog = new TelemetryPermissionDialog(mscore->window()); + QEventLoop eventLoop; + + TelemetryPermissionDialog *requestDialog = new TelemetryPermissionDialog(); + QObject::connect(requestDialog, &TelemetryPermissionDialog::closeRequested, [&eventLoop] () { + eventLoop.quit(); + }); + requestDialog->show(); + eventLoop.exec(); + requestDialog->deleteLater(); preferences.setPreference(PREF_APP_STARTUP_TELEMETRY_ACCESS_REQUESTED, VERSION); } @@ -7517,10 +7525,6 @@ int runApplication(int& argc, char** av) return ok ? EXIT_SUCCESS : EXIT_FAILURE; } -#ifndef TELEMETRY_DISABLED - tryToRequestTelemetryPermission(); -#endif - return qApp->exec(); } @@ -7700,6 +7704,10 @@ void MuseScore::init(QStringList& argv) gscore->setScoreFont(scoreFont); gscore->setNoteHeadWidth(scoreFont->width(SymId::noteheadBlack, gscore->spatium()) / SPATIUM20); +#ifndef TELEMETRY_DISABLED + tryToRequestTelemetryPermission(); +#endif + //read languages list mscore->readLanguages(mscoreGlobalShare + "locale/languages.xml"); diff --git a/telemetry/widgets/telemetrypermissiondialog.cpp b/telemetry/widgets/telemetrypermissiondialog.cpp index 2d828911b5..5812723d01 100644 --- a/telemetry/widgets/telemetrypermissiondialog.cpp +++ b/telemetry/widgets/telemetrypermissiondialog.cpp @@ -51,4 +51,5 @@ TelemetryPermissionDialog::TelemetryPermissionDialog() : QQuickView() rootObject()->setWidth(minimumWidth()); connect(rootItem, SIGNAL(closeRequested()), this, SLOT(close())); + connect(rootItem, SIGNAL(closeRequested()), this, SIGNAL(closeRequested())); } diff --git a/telemetry/widgets/telemetrypermissiondialog.h b/telemetry/widgets/telemetrypermissiondialog.h index 70ae0bc360..6019dcf7b9 100644 --- a/telemetry/widgets/telemetrypermissiondialog.h +++ b/telemetry/widgets/telemetrypermissiondialog.h @@ -32,7 +32,10 @@ class TelemetryPermissionDialog : public QQuickView { Q_OBJECT public: - explicit TelemetryPermissionDialog(QWidget* parentWidget = nullptr); + explicit TelemetryPermissionDialog(); + + signals: + void closeRequested(); }; #endif // TELEMETRYPERMISSIONDIALOG_H