diff --git a/client/amnezia_application.cpp b/client/amnezia_application.cpp index 4b8c7a4e..43f352a2 100644 --- a/client/amnezia_application.cpp +++ b/client/amnezia_application.cpp @@ -56,14 +56,17 @@ AmneziaApplication::~AmneziaApplication() { - QObject::disconnect(m_engine, 0,0,0); - delete m_engine; + if (m_engine) { + QObject::disconnect(m_engine, 0,0,0); + delete m_engine; + } + if (m_uiLogic) { + QObject::disconnect(m_uiLogic, 0,0,0); + delete m_uiLogic; + } - QObject::disconnect(m_uiLogic, 0,0,0); - delete m_uiLogic; - - delete m_protocolProps; - delete m_containerProps; + if (m_protocolProps) delete m_protocolProps; + if (m_containerProps) delete m_containerProps; } void AmneziaApplication::init() @@ -170,7 +173,7 @@ void AmneziaApplication::loadTranslator() } } -void AmneziaApplication::parseCommands() +bool AmneziaApplication::parseCommands() { m_parser.setApplicationDescription(APPLICATION_NAME); m_parser.addHelpOption(); @@ -186,11 +189,13 @@ void AmneziaApplication::parseCommands() if (m_parser.isSet(c_cleanup)) { Debug::cleanUp(); - QTimer::singleShot(100,[this]{ + QTimer::singleShot(100, this, [this]{ quit(); }); exec(); + return false; } + return true; } QQmlApplicationEngine *AmneziaApplication::qmlEngine() const diff --git a/client/amnezia_application.h b/client/amnezia_application.h index c5531aa1..f0f8f529 100644 --- a/client/amnezia_application.h +++ b/client/amnezia_application.h @@ -40,19 +40,19 @@ public: void registerTypes(); void loadFonts(); void loadTranslator(); - void parseCommands(); + bool parseCommands(); QQmlApplicationEngine *qmlEngine() const; private: - QQmlApplicationEngine *m_engine; - UiLogic *m_uiLogic; + QQmlApplicationEngine *m_engine {}; + UiLogic *m_uiLogic {}; std::shared_ptr m_settings; std::shared_ptr m_configurator; std::shared_ptr m_serverController; - ContainerProps* m_containerProps; - ProtocolProps* m_protocolProps; + ContainerProps* m_containerProps {}; + ProtocolProps* m_protocolProps {}; QTranslator* m_translator; QCommandLineParser m_parser; diff --git a/client/main.cpp b/client/main.cpp index e30bd8c8..a5751979 100644 --- a/client/main.cpp +++ b/client/main.cpp @@ -63,8 +63,11 @@ int main(int argc, char *argv[]) app.loadTranslator(); app.loadFonts(); - app.parseCommands(); - app.init(); + bool doExec = app.parseCommands(); - return app.exec(); + if (doExec) { + app.init(); + return app.exec(); + } + return 0; }