// Squawk messenger. // Copyright (C) 2019 Yury Gubich <blue@macaw.me> // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see <http://www.gnu.org/licenses/>. #ifndef ROOT_H #define ROOT_H #include <QApplication> #include <QTranslator> #include <QIcon> #include <QSettings> #include <QThread> #include <vector> #include <core/squawk.h> #include <core/signalcatcher.h> #include <shared/global.h> #include "application.h" class Root : public QApplication { Q_OBJECT public: Root(int& argc, char* argv[]); ~Root(); bool notify(QObject* receiver, QEvent* e) override; int run(); bool initializeSettings(); private slots: void onCoreDestroyed(); private: void initializeTranslation(); void initializeAppIcon(); void initializeComponents(); private: static const std::vector<unsigned int> appIconSizes; SignalCatcher signalCatcher; QTranslator defaultTranslator; QTranslator currentTranslator; QIcon appIcon; QSettings settings; bool componentsInitialized; Shared::Global* global; QThread* coreThread; Core::Squawk* core; Application* gui; }; #endif // ROOT_H