Browse Source

Fix segfault at exit by properly parenting Qt objects

Co-authored-by: djeada <[email protected]>
copilot-swe-agent[bot] 1 month ago
parent
commit
d49dd940f9
3 changed files with 5 additions and 5 deletions
  1. 2 2
      app/core/game_engine.cpp
  2. 1 1
      app/core/game_engine.h
  3. 2 2
      main.cpp

+ 2 - 2
app/core/game_engine.cpp

@@ -108,8 +108,8 @@
 #include <utility>
 #include <vector>
 
-GameEngine::GameEngine()
-    : m_selectedUnitsModel(new SelectedUnitsModel(this, this)) {
+GameEngine::GameEngine(QObject *parent)
+    : QObject(parent), m_selectedUnitsModel(new SelectedUnitsModel(this, this)) {
 
   Game::Systems::NationRegistry::instance().initializeDefaults();
   Game::Systems::TroopCountRegistry::instance().initialize();

+ 1 - 1
app/core/game_engine.h

@@ -77,7 +77,7 @@ class QQuickWindow;
 class GameEngine : public QObject {
   Q_OBJECT
 public:
-  GameEngine();
+  explicit GameEngine(QObject *parent = nullptr);
   ~GameEngine() override;
 
   Q_PROPERTY(QObject *selectedUnitsModel READ selectedUnitsModel NOTIFY

+ 2 - 2
main.cpp

@@ -265,11 +265,11 @@ auto main(int argc, char *argv[]) -> int {
   qInfo() << "QGuiApplication created successfully";
 
   qInfo() << "Creating LanguageManager...";
-  auto *language_manager = new LanguageManager();
+  auto *language_manager = new LanguageManager(&app);
   qInfo() << "LanguageManager created";
 
   qInfo() << "Creating GameEngine...";
-  auto *game_engine = new GameEngine();
+  auto *game_engine = new GameEngine(&app);
   qInfo() << "GameEngine created";
 
   qInfo() << "Setting up QML engine...";