Browse Source

Refactoring LegacyApplication class

Ivan Arkhipov 4 years ago
parent
commit
ac68fa2da7
3 changed files with 35 additions and 21 deletions
  1. 13 15
      src/Legacy/legacyapplication.cpp
  2. 6 4
      src/Legacy/legacyapplication.h
  3. 16 2
      src/Legacy/utils.h

+ 13 - 15
src/Legacy/legacyapplication.cpp

@@ -19,9 +19,9 @@ LegacyApplication::LegacyApplication(int &argc, char **argv)
 {
     qInstallMessageHandler(logMessageHandler);
 
-    try_to_init_functional_modules_timer_.setInterval(1 * 1000); // one second
-    connect(&try_to_init_functional_modules_timer_, &QTimer::timeout, this, &LegacyApplication::TryToInitFunctionalModules);
-    try_to_init_functional_modules_timer_.stop();
+    modules_init_timer_.setInterval(1 * 1000); // one second.
+    connect(&modules_init_timer_, &QTimer::timeout, this, &LegacyApplication::HandleModulesInitTimer);
+    modules_init_timer_.stop();
 }
 
 bool LegacyApplication::init()
@@ -38,14 +38,7 @@ bool LegacyApplication::init()
     QSettings::setPath(QSettings::IniFormat, QSettings::SystemScope, QApplication::applicationDirPath());
 
     qDebug() << "Checking if there's another instance of Legacy";
-
-    QLockFile lockFile(QDir::temp().absoluteFilePath("rulotro.lock"));
-    if(!lockFile.tryLock(1)){
-        qDebug() << "Lock file already exists! Some other application is already running...";
-        QMessageBox msgBox;
-        msgBox.setIcon(QMessageBox::Warning);
-        msgBox.setText("Приложение уже запущено.\nРазрешено запускать только один экземпляр приложения.");
-        msgBox.exec();
+    if (!checkSingleAppInstance()) {
         return false;
     }
 
@@ -84,7 +77,7 @@ bool LegacyApplication::init()
 
     qDebug() << "Starting functional modules initialisation...";
 
-    TryToInitFunctionalModules();
+    InitModules();
     return true;
 }
 
@@ -161,7 +154,12 @@ LegacyApplication::ErrorStatus LegacyApplication::CheckErrorStatus()
     return ErrorStatus(status);
 }
 
-void LegacyApplication::TryToInitFunctionalModules()
+void LegacyApplication::HandleModulesInitTimer()
+{
+
+}
+
+void LegacyApplication::InitModules()
 {
     if (seconds_after_previous_try_to_init_ + 1 < try_to_init_timeout_) {
         seconds_after_previous_try_to_init_++;
@@ -169,7 +167,7 @@ void LegacyApplication::TryToInitFunctionalModules()
         return;
     }
 
-    try_to_init_functional_modules_timer_.stop();
+    modules_init_timer_.stop();
     seconds_after_previous_try_to_init_ = 0;
     ErrorStatus status = CheckErrorStatus();
     emit ErrorStatusChanged(status);
@@ -179,7 +177,7 @@ void LegacyApplication::TryToInitFunctionalModules()
         patch_list->startAutoUpdate();
     } else {
         qWarning() << "LegacyApplication: Couldnt init functional modules!";
-        try_to_init_functional_modules_timer_.start();
+        modules_init_timer_.start();
     }
 }
 

+ 6 - 4
src/Legacy/legacyapplication.h

@@ -33,19 +33,21 @@ signals:
 
     void SecondsToNextTryToInitChanged(size_t seconds_elapsed);
 
-public slots:
-    void TryToInitFunctionalModules();
-
 private:
+    void InitModules();
+
     ErrorStatus CheckErrorStatus();
 
+private slots:
+    void HandleModulesInitTimer();
+
 private:
     LotroDatManager *lotro_dat_manager = nullptr;
     QThread *lotro_dat_manager_thread = nullptr;
     PatchList *patch_list = nullptr;
     MainWindow *gui = nullptr;
 
-    QTimer try_to_init_functional_modules_timer_;
+    QTimer modules_init_timer_;
     size_t seconds_after_previous_try_to_init_ = 10; // init value should be equal to try_to_init_timeout_
     const size_t try_to_init_timeout_ = 10;
 };

+ 16 - 2
src/Legacy/utils.h

@@ -10,6 +10,9 @@
 #include <QEventLoop>
 #include <QFile>
 #include <QTimer>
+#include <QLockFile>
+#include <QDir>
+#include <QMessageBox>
 
 bool checkInternetConnection(QUrl url) {
     QNetworkAccessManager nam;
@@ -21,9 +24,7 @@ bool checkInternetConnection(QUrl url) {
     QTimer request_timeout_timer;
     QObject::connect(&request_timeout_timer, &QTimer::timeout, &loop, &QEventLoop::quit);
     request_timeout_timer.start(5000); // 5 seconds connection timeout
-    qDebug() << "LOLOLOLOL";
     loop.exec();
-    qDebug() << "END OF LOLOLOLOLO";
     return reply->bytesAvailable();
 }
 
@@ -75,4 +76,17 @@ void logMessageHandler(QtMsgType type, const QMessageLogContext &context, const
     fflush(stderr);
 }
 
+bool checkSingleAppInstance() {
+    QLockFile lockFile(QDir::temp().absoluteFilePath("rulotro.lock"));
+    if(!lockFile.tryLock(1)){
+        qDebug() << "Lock file already exists! Some other application is already running...";
+        QMessageBox msgBox;
+        msgBox.setIcon(QMessageBox::Warning);
+        msgBox.setText("Приложение уже запущено.\nРазрешено запускать только один экземпляр приложения.");
+        msgBox.exec();
+        return false;
+    }
+    return true;
+}
+
 #endif // UTILS_H