git / moonbite-core / src/qt/splashscreen.h · raw
// Copyright (c) 2011-2018 The Bitcoin Core developers// Distributed under the MIT software license, see the accompanying// file COPYING or http://www.opensource.org/licenses/mit-license.php.#ifndef BITCOIN_QT_SPLASHSCREEN_H#define BITCOIN_QT_SPLASHSCREEN_H#include <QWidget>#include <memory>class NetworkStyle;namespace interfaces {class Handler;class Node;class Wallet;};/** Class for the splashscreen with information of the running client. * * @note this is intentionally not a QSplashScreen. Bitcoin Core initialization * can take a long time, and in that case a progress window that cannot be * moved around and minimized has turned out to be frustrating to the user. */class SplashScreen : public QWidget{ Q_OBJECTpublic: explicit SplashScreen(Qt::WindowFlags f, const NetworkStyle *networkStyle); ~SplashScreen(); void setNode(interfaces::Node& node);protected: void paintEvent(QPaintEvent *event) override; void closeEvent(QCloseEvent *event) override;public Q_SLOTS: /** Hide the splash screen window and schedule the splash screen object for deletion */ void finish(); /** Show message and progress */ void showMessage(const QString &message, int alignment, const QColor &color); /** Handle wallet load notifications. */ void handleLoadWallet();protected: bool eventFilter(QObject * obj, QEvent * ev) override;private: /** Connect core signals to splash screen */ void subscribeToCoreSignals(); /** Disconnect core signals to splash screen */ void unsubscribeFromCoreSignals(); /** Initiate shutdown */ void shutdown(); QPixmap pixmap; QString curMessage; QColor curColor; int curAlignment; interfaces::Node* m_node = nullptr; bool m_shutdown = false; std::unique_ptr<interfaces::Handler> m_handler_init_message; std::unique_ptr<interfaces::Handler> m_handler_show_progress; std::unique_ptr<interfaces::Handler> m_handler_load_wallet; std::list<std::unique_ptr<interfaces::Wallet>> m_connected_wallets; std::list<std::unique_ptr<interfaces::Handler>> m_connected_wallet_handlers;};#endif // BITCOIN_QT_SPLASHSCREEN_H