Line data Source code
1 : // Copyright (c) 2011-2014 The Bitcoin Core developers
2 : // Distributed under the MIT software license, see the accompanying
3 : // file COPYING or http://www.opensource.org/licenses/mit-license.php.
4 :
5 : #ifndef BITCOIN_QT_SPLASHSCREEN_H
6 : #define BITCOIN_QT_SPLASHSCREEN_H
7 :
8 : #include <QSplashScreen>
9 :
10 : class NetworkStyle;
11 :
12 : /** Class for the splashscreen with information of the running client.
13 : *
14 : * @note this is intentionally not a QSplashScreen. Bitcoin Core initialization
15 : * can take a long time, and in that case a progress window that cannot be
16 : * moved around and minimized has turned out to be frustrating to the user.
17 : */
18 : class SplashScreen : public QWidget
19 : {
20 0 : Q_OBJECT
21 :
22 : public:
23 : explicit SplashScreen(Qt::WindowFlags f, const NetworkStyle *networkStyle);
24 : ~SplashScreen();
25 :
26 : protected:
27 : void paintEvent(QPaintEvent *event);
28 : void closeEvent(QCloseEvent *event);
29 :
30 : public Q_SLOTS:
31 : /** Slot to call finish() method as it's not defined as slot */
32 : void slotFinish(QWidget *mainWin);
33 :
34 : /** Show message and progress */
35 : void showMessage(const QString &message, int alignment, const QColor &color);
36 :
37 : private:
38 : /** Connect core signals to splash screen */
39 : void subscribeToCoreSignals();
40 : /** Disconnect core signals to splash screen */
41 : void unsubscribeFromCoreSignals();
42 :
43 : QPixmap pixmap;
44 : QString curMessage;
45 : QColor curColor;
46 : int curAlignment;
47 : };
48 :
49 : #endif // BITCOIN_QT_SPLASHSCREEN_H
|