Quellcode durchsuchen

don't crash if install is clicked again - application object is a singleton preventing another installer instance from being created!

Paul vor 11 Jahren
Ursprung
Commit
8d1caf43bd
1 geänderte Dateien mit 9 neuen und 0 gelöschten Zeilen
  1. 9 0
      utilities/q-gears-launcher/src/mainwindow.cpp

+ 9 - 0
utilities/q-gears-launcher/src/mainwindow.cpp

@@ -8,6 +8,8 @@
 #include <QMessageBox>
 #include <QMessageBox>
 #include <QTimer>
 #include <QTimer>
 
 
+static bool installerCreated = false;
+
 MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent), mUi(new Ui::MainWindow)
 MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent), mUi(new Ui::MainWindow)
 {
 {
     mUi->setupUi(this);
     mUi->setupUi(this);
@@ -162,9 +164,16 @@ void MainWindow::on_btnGO_clicked()
             }
             }
         }
         }
 
 
+        if (installerCreated)
+        {
+            QMessageBox::critical(this, tr("Error"), tr("Due to use of singletons install function can only be used once, please restart the application :("));
+            return;
+        }
+
         // Start data conversion
         // Start data conversion
         try
         try
         {
         {
+            installerCreated = true;
             mInstaller = std::make_unique<FF7DataInstaller>(QDir::toNativeSeparators(input).toStdString(), QDir::toNativeSeparators(output).toStdString());
             mInstaller = std::make_unique<FF7DataInstaller>(QDir::toNativeSeparators(input).toStdString(), QDir::toNativeSeparators(output).toStdString());
             OnInstallStarted();
             OnInstallStarted();
         }
         }