From b0e3339370e729b90078047b53bb584e2eab0b1f Mon Sep 17 00:00:00 2001 From: orignal Date: Wed, 15 Jun 2016 12:20:31 -0400 Subject: [PATCH] DaemonQT --- Daemon.h | 13 +++++-------- qt/i2pd_qt/DaemonQT.cpp | 39 +++++++++++++++++++++++++++++++++++++++ qt/i2pd_qt/i2pd_qt.pro | 3 ++- qt/i2pd_qt/main.cpp | 23 ----------------------- 4 files changed, 46 insertions(+), 32 deletions(-) create mode 100644 qt/i2pd_qt/DaemonQT.cpp delete mode 100644 qt/i2pd_qt/main.cpp diff --git a/Daemon.h b/Daemon.h index 9f040683..2f7682eb 100644 --- a/Daemon.h +++ b/Daemon.h @@ -3,14 +3,6 @@ #include -#if defined(QT_GUI) - -#elif defined(_WIN32) - -#else - -#endif - namespace i2p { namespace util @@ -49,6 +41,11 @@ namespace i2p static DaemonQT instance; return instance; } + + bool init(int argc, char* argv[]); + bool start(); + bool stop(); + void run (); }; #elif defined(_WIN32) diff --git a/qt/i2pd_qt/DaemonQT.cpp b/qt/i2pd_qt/DaemonQT.cpp new file mode 100644 index 00000000..19a13c6e --- /dev/null +++ b/qt/i2pd_qt/DaemonQT.cpp @@ -0,0 +1,39 @@ +#include +#include "mainwindow.h" +#include +#include +#include "../../Daemon.h" + +namespace i2p +{ +namespace util +{ + std::unique_ptr app; + bool DaemonQT::init(int argc, char* argv[]) + { + app.reset (new QApplication (argc, argv)); + return Daemon_Singleton::init(argc, argv); + } + + bool DaemonQT::start() + { + return Daemon_Singleton::start(); + } + + bool DaemonQT::stop() + { + return Daemon_Singleton::stop(); + } + + void DaemonQT::run () + { + MainWindow w; + w.show (); + if (app) + { + app->exec(); + app.reset (nullptr); + } + } +} +} diff --git a/qt/i2pd_qt/i2pd_qt.pro b/qt/i2pd_qt/i2pd_qt.pro index cbde47b3..5dca2e51 100644 --- a/qt/i2pd_qt/i2pd_qt.pro +++ b/qt/i2pd_qt/i2pd_qt.pro @@ -13,7 +13,7 @@ TEMPLATE = app QMAKE_CXXFLAGS *= -std=c++11 -SOURCES += main.cpp\ +SOURCES += DaemonQT.cpp\ mainwindow.cpp \ ../../HTTPServer.cpp ../../I2PControl.cpp ../../UPnP.cpp ../../Daemon.cpp ../../Config.cpp \ ../../AddressBook.cpp \ @@ -59,6 +59,7 @@ SOURCES += main.cpp\ ../../TunnelGateway.cpp \ ../../TunnelPool.cpp \ ../../util.cpp \ + ../../i2pd.cpp \ /mnt/media/android/android-ifaddrs/ifaddrs.c HEADERS += mainwindow.h \ diff --git a/qt/i2pd_qt/main.cpp b/qt/i2pd_qt/main.cpp deleted file mode 100644 index d00a7dbf..00000000 --- a/qt/i2pd_qt/main.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include "mainwindow.h" -#include -#include -#include "../../Daemon.h" - -int main(int argc, char *argv[]) -{ - QApplication a(argc, argv); - MainWindow w; - - int ret = -1; - if (Daemon.init(argc, argv)) - { - if (Daemon.start()) - { - w.show(); - ret = a.exec(); - } - Daemon.stop(); - } - - return ret; -}