#include "bitcoingui.h"
#include "clientmodel.h"
#include "walletmodel.h"
+#include "optionsmodel.h"
#include "headers.h"
#include "init.h"
#include <QApplication>
#include <QMessageBox>
#include <QThread>
+#include <QTextCodec>
#include <QLocale>
#include <QTranslator>
+#include <QSplashScreen>
+#include <QLibraryInfo>
// 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);
// Load language file for system locale
QString locale = QLocale::system().name();
+ QTranslator qtTranslator;
+ qtTranslator.load(QLibraryInfo::location(QLibraryInfo::TranslationsPath) + "/qt_" + locale);
+ if (!qtTranslator.isEmpty())
+ app.installTranslator(&qtTranslator);
QTranslator translator;
- translator.load("bitcoin_"+locale);
- app.installTranslator(&translator);
+ translator.load(":/translations/"+locale);
+ if (!translator.isEmpty())
+ app.installTranslator(&translator);
+
+ app.setApplicationName(QApplication::translate("main", "Bitcoin Qt"));
+
+ QSplashScreen splash(QPixmap(":/images/splash"), 0);
+ splash.show();
+ splash.setAutoFillBackground(true);
+ splashref = &splash;
+
+ app.processEvents();
app.setQuitOnLastWindowClosed(false);
{
{
// Put this in a block, so that BitcoinGUI is cleaned up properly before
- // calling shutdown.
+ // calling Shutdown().
BitcoinGUI window;
- ClientModel clientModel(pwalletMain);
- WalletModel walletModel(pwalletMain);
+ splash.finish(&window);
+ OptionsModel optionsModel(pwalletMain);
+ ClientModel clientModel(&optionsModel);
+ WalletModel walletModel(pwalletMain, &optionsModel);
+
guiref = &window;
window.setClientModel(&clientModel);
window.setWalletModel(&walletModel);