From c6e66b26f5c64d84f064fd1733559e67b6b566d3 Mon Sep 17 00:00:00 2001 From: Syping Date: Wed, 17 Jan 2018 01:42:20 +0100 Subject: [PATCH] fix telemetry window crash --- config.h | 2 +- main.cpp | 62 ++++++++++++++++++++++++++++-------------------------- res/app.rc | 4 ++-- 3 files changed, 35 insertions(+), 33 deletions(-) diff --git a/config.h b/config.h index fec2e16..df99549 100644 --- a/config.h +++ b/config.h @@ -49,7 +49,7 @@ #endif #ifndef GTA5SYNC_APPVER -#define GTA5SYNC_APPVER "1.5.0-dev9" +#define GTA5SYNC_APPVER "1.5.0-rc1" #endif #ifdef GTA5SYNC_BUILDTYPE_REL diff --git a/main.cpp b/main.cpp index 3cd4115..f02fea5 100644 --- a/main.cpp +++ b/main.cpp @@ -151,36 +151,37 @@ int main(int argc, char *argv[]) bool telemetryWindowLaunched = settings.value("TelemetryWindowLaunched", false).toBool(); if (!telemetryWindowLaunched && !Telemetry->isEnabled() && !Telemetry->isStateForced()) { - QDialog telemetryDialog; - telemetryDialog.setObjectName(QStringLiteral("TelemetryDialog")); - telemetryDialog.setWindowTitle(QString("%1 %2").arg(GTA5SYNC_APPSTR, GTA5SYNC_APPVER)); - telemetryDialog.setWindowFlags(telemetryDialog.windowFlags()^Qt::WindowContextHelpButtonHint^Qt::WindowCloseButtonHint); - telemetryDialog.setWindowIcon(IconLoader::loadingAppIcon()); - QVBoxLayout telemetryLayout; - telemetryLayout.setObjectName(QStringLiteral("TelemetryLayout")); - telemetryDialog.setLayout(&telemetryLayout); - UiModLabel telemetryLabel(&telemetryDialog); - telemetryLabel.setObjectName(QStringLiteral("TelemetryLabel")); - telemetryLabel.setText(QString("

%2

%1").arg(QApplication::translate("TelemetryDialog", "You want help %1 to improve in the future by collection of data?").arg(GTA5SYNC_APPSTR), QApplication::translate("TelemetryDialog", "%1 User Statistics").arg(GTA5SYNC_APPSTR))); - telemetryLayout.addWidget(&telemetryLabel); - QCheckBox telemetryCheckBox(&telemetryDialog); - telemetryCheckBox.setObjectName(QStringLiteral("TelemetryCheckBox")); - telemetryCheckBox.setText(QApplication::translate("TelemetryDialog", "Yes, I would like to take part.")); - telemetryCheckBox.setChecked(true); - telemetryLayout.addWidget(&telemetryCheckBox); - QHBoxLayout telemetryButtonLayout; - telemetryButtonLayout.setObjectName(QStringLiteral("TelemetryButtonLayout")); - telemetryLayout.addLayout(&telemetryButtonLayout); - QSpacerItem telemetryButtonSpacer(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum); - telemetryButtonLayout.addSpacerItem(&telemetryButtonSpacer); - QPushButton telemetryButton(&telemetryDialog); - telemetryButton.setObjectName(QStringLiteral("TelemetryButton")); - telemetryButton.setText(QApplication::translate("TelemetryDialog", "&OK")); - telemetryButtonLayout.addWidget(&telemetryButton); - QObject::connect(&telemetryButton, SIGNAL(clicked(bool)), &telemetryDialog, SLOT(close())); - telemetryDialog.setFixedSize(telemetryDialog.sizeHint()); - telemetryDialog.exec(); - if (telemetryCheckBox.isChecked()) + QDialog *telemetryDialog = new QDialog(); + telemetryDialog->setObjectName(QStringLiteral("TelemetryDialog")); + telemetryDialog->setWindowTitle(QString("%1 %2").arg(GTA5SYNC_APPSTR, GTA5SYNC_APPVER)); + telemetryDialog->setWindowFlags(telemetryDialog->windowFlags()^Qt::WindowContextHelpButtonHint^Qt::WindowCloseButtonHint); + telemetryDialog->setWindowIcon(IconLoader::loadingAppIcon()); + QVBoxLayout *telemetryLayout = new QVBoxLayout(telemetryDialog); + telemetryLayout->setObjectName(QStringLiteral("TelemetryLayout")); + telemetryDialog->setLayout(telemetryLayout); + UiModLabel *telemetryLabel = new UiModLabel(telemetryDialog); + telemetryLabel->setObjectName(QStringLiteral("TelemetryLabel")); + telemetryLabel->setText(QString("

%2

%1").arg(QApplication::translate("TelemetryDialog", "You want help %1 to improve in the future by collection of data?").arg(GTA5SYNC_APPSTR), QApplication::translate("TelemetryDialog", "%1 User Statistics").arg(GTA5SYNC_APPSTR))); + telemetryLayout->addWidget(telemetryLabel); + QCheckBox *telemetryCheckBox = new QCheckBox(telemetryDialog); + telemetryCheckBox->setObjectName(QStringLiteral("TelemetryCheckBox")); + telemetryCheckBox->setText(QApplication::translate("TelemetryDialog", "Yes, I would like to take part.")); + telemetryCheckBox->setChecked(true); + telemetryLayout->addWidget(telemetryCheckBox); + QHBoxLayout *telemetryButtonLayout = new QHBoxLayout(); + telemetryButtonLayout->setObjectName(QStringLiteral("TelemetryButtonLayout")); + telemetryLayout->addLayout(telemetryButtonLayout); + QSpacerItem *telemetryButtonSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Minimum); + telemetryButtonLayout->addSpacerItem(telemetryButtonSpacer); + QPushButton *telemetryButton = new QPushButton(telemetryDialog); + telemetryButton->setObjectName(QStringLiteral("TelemetryButton")); + telemetryButton->setText(QApplication::translate("TelemetryDialog", "&OK")); + telemetryButtonLayout->addWidget(telemetryButton); + QObject::connect(telemetryButton, SIGNAL(clicked(bool)), telemetryDialog, SLOT(close())); + telemetryDialog->setFixedSize(telemetryDialog->sizeHint()); + telemetryDialog->exec(); + QObject::disconnect(telemetryButton, SIGNAL(clicked(bool)), telemetryDialog, SLOT(close())); + if (telemetryCheckBox->isChecked()) { QSettings telemetrySettings(GTA5SYNC_APPVENDOR, GTA5SYNC_APPSTR); telemetrySettings.beginGroup("Telemetry"); @@ -190,6 +191,7 @@ int main(int argc, char *argv[]) Telemetry->work(); } settings.setValue("TelemetryWindowLaunched", true); + delete telemetryDialog; } #endif diff --git a/res/app.rc b/res/app.rc index dc5d462..69fbd76 100644 --- a/res/app.rc +++ b/res/app.rc @@ -25,12 +25,12 @@ BEGIN BEGIN VALUE "CompanyName", "Syping" VALUE "FileDescription", "gta5view" - VALUE "FileVersion", "1.5.0-dev9" + VALUE "FileVersion", "1.5.0-rc1" VALUE "InternalName", "gta5view" VALUE "LegalCopyright", "Copyright © 2016-2018 Syping" VALUE "OriginalFilename", "gta5view.exe" VALUE "ProductName", "gta5view" - VALUE "ProductVersion", "1.5.0-dev9" + VALUE "ProductVersion", "1.5.0-rc1" END END END