Showing a telemetry request dialog synchronously just after the splash screen 'MuseScore'

This commit is contained in:
pereverzev_v 2019-12-25 15:17:03 +02:00
parent d5827e35fb
commit 85f5e3b310
4 changed files with 20 additions and 6 deletions

2
all.h
View file

@ -90,6 +90,7 @@
#include <QAtomicInt>
#include <QErrorMessage>
#include <QEventLoop>
#include <QPainterPath>
#include <QPixmap>
@ -99,6 +100,7 @@
#include <QFontDatabase>
#include <QProcess>
#include <QDesktopServices>
#include <QDesktopWidget>
#include <QTextDocument>
#include <QTextDocumentFragment>
#include <QTextCursor>

View file

@ -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");

View file

@ -51,4 +51,5 @@ TelemetryPermissionDialog::TelemetryPermissionDialog() : QQuickView()
rootObject()->setWidth(minimumWidth());
connect(rootItem, SIGNAL(closeRequested()), this, SLOT(close()));
connect(rootItem, SIGNAL(closeRequested()), this, SIGNAL(closeRequested()));
}

View file

@ -32,7 +32,10 @@ class TelemetryPermissionDialog : public QQuickView {
Q_OBJECT
public:
explicit TelemetryPermissionDialog(QWidget* parentWidget = nullptr);
explicit TelemetryPermissionDialog();
signals:
void closeRequested();
};
#endif // TELEMETRYPERMISSIONDIALOG_H