*/
#include "bitcoingui.h"
#include "clientmodel.h"
-#include "util.h"
+#include "walletmodel.h"
+#include "optionsmodel.h"
+
+#include "headers.h"
#include "init.h"
-#include "main.h"
-#include "qtui.h"
#include <QApplication>
#include <QMessageBox>
#include <QThread>
+#include <QTextCodec>
#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.
*/
int main(int argc, char *argv[])
{
+ QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
+ QTextCodec::setCodecForCStrings(QTextCodec::codecForTr());
+
Q_INIT_RESOURCE(bitcoin);
QApplication app(argc, argv);
translator.load("bitcoin_"+locale);
app.installTranslator(&translator);
+ QSplashScreen splash(QPixmap(":/images/splash"), 0);
+ splash.show();
+ splash.setAutoFillBackground(true);
+ splashref = &splash;
+
+ app.processEvents();
+
app.setQuitOnLastWindowClosed(false);
try
{
if(AppInit2(argc, argv))
{
- BitcoinGUI window;
- ClientModel model;
- guiref = &window;
- window.setModel(&model);
+ {
+ // 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);
- window.show();
+ guiref = &window;
+ window.setClientModel(&clientModel);
+ window.setWalletModel(&walletModel);
- int retval = app.exec();
+ window.show();
- guiref = 0;
- Shutdown(NULL);
+ app.exec();
- return retval;
+ guiref = 0;
+ }
+ Shutdown(NULL);
}
else
{
} catch (...) {
PrintException(NULL, "Runaway exception");
}
+ return 0;
}