X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fqt%2Fbitcoin.cpp;h=f696ca0f89270b86e5efdb33bf146f0114f94651;hb=21d9f36781604e4ca9fc35dc65265593423b73e9;hp=749afb4bc2b1e555deed8d5ca77394cd15a40cf2;hpb=10d680cff4d0086bd9621438e5ac04740a38d106;p=novacoin.git diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index 749afb4..f696ca0 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -5,18 +5,19 @@ #include "clientmodel.h" #include "walletmodel.h" #include "optionsmodel.h" -#include "qtwin.h" #include "headers.h" #include "init.h" +#include #include #include #include +#include #include #include #include -#include +#include // Need a global reference for the notifications to find the GUI BitcoinGUI *guiref; @@ -56,7 +57,7 @@ int ThreadSafeMessageBox(const std::string& message, const std::string& caption, return 4; } -bool ThreadSafeAskFee(int64 nFeeRequired, const std::string& strCaption, wxWindow* parent) +bool ThreadSafeAskFee(qint64 nFeeRequired, const std::string& strCaption, wxWindow* parent) { if(!guiref) return false; @@ -91,13 +92,15 @@ void UIThreadCall(boost::function0 fn) void MainFrameRepaint() { + if(guiref) + QMetaObject::invokeMethod(guiref, "refreshStatusBar", Qt::QueuedConnection); } void InitMessage(const std::string &message) { if(splashref) { - splashref->showMessage(QString::fromStdString(message), Qt::AlignBottom, QColor(255,255,255)); + splashref->showMessage(QString::fromStdString(message), Qt::AlignBottom|Qt::AlignHCenter, QColor(255,255,200)); QApplication::instance()->processEvents(); } } @@ -112,16 +115,41 @@ std::string _(const char* psz) 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 translator; - translator.load("bitcoin_"+locale); - app.installTranslator(&translator); + ParseParameters(argc, argv); + + // Load language files for system locale: + // - First load the translator for the base language, without territory + // - Then load the more specific locale translator + QString lang_territory = QLocale::system().name(); // "en_US" + QString lang = lang_territory; + lang.truncate(lang_territory.lastIndexOf('_')); // "en" + QTranslator qtTranslatorBase, qtTranslator, translatorBase, translator; + + qtTranslatorBase.load(QLibraryInfo::location(QLibraryInfo::TranslationsPath) + "/qt_" + lang); + if (!qtTranslatorBase.isEmpty()) + app.installTranslator(&qtTranslatorBase); + + qtTranslator.load(QLibraryInfo::location(QLibraryInfo::TranslationsPath) + "/qt_" + lang_territory); + if (!qtTranslator.isEmpty()) + app.installTranslator(&qtTranslator); + + translatorBase.load(":/translations/"+lang); + if (!translatorBase.isEmpty()) + app.installTranslator(&translatorBase); - QSplashScreen splash(QPixmap(":/images/splash"), Qt::WindowStaysOnTopHint); + translator.load(":/translations/"+lang_territory); + 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; @@ -136,7 +164,7 @@ int main(int argc, char *argv[]) { { // Put this in a block, so that BitcoinGUI is cleaned up properly before - // calling shutdown. + // calling Shutdown() in case of exceptions. BitcoinGUI window; splash.finish(&window); OptionsModel optionsModel(pwalletMain); @@ -147,25 +175,15 @@ int main(int argc, char *argv[]) window.setClientModel(&clientModel); window.setWalletModel(&walletModel); - if (QtWin::isCompositionEnabled()) + // If -min option passed, start window minimized. + if(GetBoolArg("-min")) { -#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.showMinimized(); + } + else + { + window.show(); } - - window.show(); app.exec();