#include "bitcoingui.h"
#include "clientmodel.h"
#include "walletmodel.h"
+#include "optionsmodel.h"
+#include "qtwin.h"
#include "headers.h"
#include "init.h"
#include <QThread>
#include <QLocale>
#include <QTranslator>
+#include <QSplashScreen>
// Need a global reference for the notifications to find the GUI
BitcoinGUI *guiref;
+QSplashScreen *splashref;
int MyMessageBox(const std::string& message, const std::string& caption, int style, wxWindow* parent, int x, int y)
{
{
}
+void InitMessage(const std::string &message)
+{
+ if(splashref)
+ {
+ splashref->showMessage(QString::fromStdString(message), Qt::AlignBottom|Qt::AlignHCenter, QColor(255,255,200));
+ QApplication::instance()->processEvents();
+ }
+}
+
/*
Translate string to current locale using Qt.
*/
translator.load("bitcoin_"+locale);
app.installTranslator(&translator);
+ QSplashScreen splash(QPixmap(":/images/splash"), Qt::WindowStaysOnTopHint);
+ splash.show();
+ splash.setAutoFillBackground(true);
+ splashref = &splash;
+
+ app.processEvents();
+
app.setQuitOnLastWindowClosed(false);
try
{
if(AppInit2(argc, argv))
{
- BitcoinGUI window;
- ClientModel clientModel(pwalletMain);
- WalletModel walletModel(pwalletMain);
- guiref = &window;
- window.setClientModel(&clientModel);
- window.setWalletModel(&walletModel);
-
- window.show();
-
- int retval = app.exec();
-
- guiref = 0;
+ {
+ // Put this in a block, so that BitcoinGUI is cleaned up properly before
+ // calling Shutdown().
+ BitcoinGUI window;
+ splash.finish(&window);
+ OptionsModel optionsModel(pwalletMain);
+ ClientModel clientModel(&optionsModel);
+ WalletModel walletModel(pwalletMain, &optionsModel);
+
+ guiref = &window;
+ window.setClientModel(&clientModel);
+ window.setWalletModel(&walletModel);
+
+ if (QtWin::isCompositionEnabled())
+ {
+#ifdef Q_WS_WIN32
+ // Windows-specific customization
+ window.setAttribute(Qt::WA_TranslucentBackground);
+ window.setAttribute(Qt::WA_NoSystemBackground, false);
+ QPalette pal = window.palette();
+ QColor bg = pal.window().color();
+ bg.setAlpha(0);
+ pal.setColor(QPalette::Window, bg);
+ window.setPalette(pal);
+ window.ensurePolished();
+ window.setAttribute(Qt::WA_StyledBackground, false);
+#endif
+ QtWin::extendFrameIntoClientArea(&window);
+ window.setContentsMargins(0, 0, 0, 0);
+ }
+
+ window.show();
+
+ app.exec();
+
+ guiref = 0;
+ }
Shutdown(NULL);
-
- return retval;
}
else
{
} catch (...) {
PrintException(NULL, "Runaway exception");
}
+ return 0;
}