/* This file is part of cpp-ethereum. cpp-ethereum 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. cpp-ethereum 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 cpp-ethereum. If not, see . */ /** @file MixApplication.h * @author Yann yann@ethdev.com * @date 2014 * This class will be use instead of QApplication to launch the application. the method 'notify' allows to catch all exceptions. * Not use for now: TODO. */ #pragma once #include #include class QQmlApplicationEngine; namespace dev { namespace mix { class ApplicationService: public QObject { Q_OBJECT Q_PROPERTY(int systemPointSize READ systemPointSize CONSTANT) Q_PROPERTY(bool haveWebEngine READ haveWebEngine CONSTANT) public: ApplicationService(); int systemPointSize() const { return m_systemPointSize; } #ifdef ETH_HAVE_WEBENGINE bool haveWebEngine() const { return true; } #else bool haveWebEngine() const { return false; } #endif private: int m_systemPointSize = 0; }; class MixApplication: public QApplication { Q_OBJECT public: MixApplication(int& _argc, char* _argv[]); static void initialize(); virtual ~MixApplication(); QQmlApplicationEngine* engine() { return m_engine.get(); } bool notify(QObject* _receiver, QEvent* _event) override; private: std::unique_ptr m_engine; }; } }