From 10d680cff4d0086bd9621438e5ac04740a38d106 Mon Sep 17 00:00:00 2001 From: "Wladimir J. van der Laan" Date: Tue, 2 Aug 2011 21:48:59 +0200 Subject: [PATCH] add splash screen --- src/init.cpp | 5 +++++ src/qt/bitcoin.cpp | 20 ++++++++++++++++++++ src/qt/bitcoin.qrc | 1 + src/qt/res/images/splash2.jpg | Bin 0 -> 5816 bytes src/qtui.h | 1 + 5 files changed, 27 insertions(+) create mode 100644 src/qt/res/images/splash2.jpg diff --git a/src/init.cpp b/src/init.cpp index fcb0c8334..c328ca37d 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -370,18 +370,21 @@ bool AppInit2(int argc, char* argv[]) strErrors = ""; int64 nStart; + InitMessage("Loading addresses..."); printf("Loading addresses...\n"); nStart = GetTimeMillis(); if (!LoadAddresses()) strErrors += _("Error loading addr.dat \n"); printf(" addresses %15"PRI64d"ms\n", GetTimeMillis() - nStart); + InitMessage("Loading block index..."); printf("Loading block index...\n"); nStart = GetTimeMillis(); if (!LoadBlockIndex()) strErrors += _("Error loading blkindex.dat \n"); printf(" block index %15"PRI64d"ms\n", GetTimeMillis() - nStart); + InitMessage("Loading wallet..."); printf("Loading wallet...\n"); nStart = GetTimeMillis(); bool fFirstRun; @@ -412,12 +415,14 @@ bool AppInit2(int argc, char* argv[]) } if (pindexBest != pindexRescan) { + InitMessage("Rescanning..."); printf("Rescanning last %i blocks (from block %i)...\n", pindexBest->nHeight - pindexRescan->nHeight, pindexRescan->nHeight); nStart = GetTimeMillis(); pwalletMain->ScanForWalletTransactions(pindexRescan, true); printf(" rescan %15"PRI64d"ms\n", GetTimeMillis() - nStart); } + InitMessage("Done loading"); printf("Done loading\n"); //// debug print diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index bc652d31b..749afb4bc 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -15,9 +15,12 @@ #include #include #include +#include +#include // 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) { @@ -90,6 +93,15 @@ void MainFrameRepaint() { } +void InitMessage(const std::string &message) +{ + if(splashref) + { + splashref->showMessage(QString::fromStdString(message), Qt::AlignBottom, QColor(255,255,255)); + QApplication::instance()->processEvents(); + } +} + /* Translate string to current locale using Qt. */ @@ -109,6 +121,13 @@ int main(int argc, char *argv[]) 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 @@ -119,6 +138,7 @@ int main(int argc, char *argv[]) // 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); diff --git a/src/qt/bitcoin.qrc b/src/qt/bitcoin.qrc index 8d4bab546..e56536199 100644 --- a/src/qt/bitcoin.qrc +++ b/src/qt/bitcoin.qrc @@ -37,6 +37,7 @@ res/images/about.png + res/images/splash2.jpg res/movies/update_spinner.mng diff --git a/src/qt/res/images/splash2.jpg b/src/qt/res/images/splash2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3846e6f68de0ff1379fed451bb64d0271e175622 GIT binary patch literal 5816 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�Z!PV(HV&(3%*QWGu^6iJ0oFO<|x) zM3(mR`jQx_+4X)5izD}g)H)Y&8pXRVyL)cK8ih8t?iQUt{zPUnHzeIQQQ~TXs5TR@(jIct(vWwbNsBr*#nFR9$87^y z_ixB$3c(?UY4E1FwcckzTrDy%sQNea)cE29OWzuImaMYSd1;LW{&b6RQo@YFN4+f6 zUFY4jTgl|lf(*3noI(sFrxDo!GaCSr3&)@0K*GZ^iz&jQAl>T>;xu`%$6n&;hj^5W z8G@T?4k-IwesTJ;e7aNbWn7IeMqzBUX^Ik4RCjMD_KTud3)YzR{^Fs~< z_@Bo^y^$BBKV&#-*j7(d@~z!k=d!aLRTdbx4~_Ca%s)zR&dJJDn4{0jdj;eM4|cY( z;VTP89oTD`D$LMSLI#?O+LtW4IU-^{rBQ?_$@DF4=9TgT&c>F8~QQmB^Crk z={BDE=HI>l)J<3Pc+bBXMJ~tUGpn-lYvoLvlyI*ptE&mv6VfFC+_~~+jU8|_&bHT@ zaGDs9lNZ%4oi8f5woCQ+FhE2s+k(X;Fs~mjltlbg#H;i6hJB1wmAr__km6ZDMtqcw z;+aM}H?8W64lifuP%B%-*-oN`e$tG{SAep$_pt7-RJuYu6Aas)$k}mSKK2fho(7`J zTGG=Z;Lv&7Xa~K>ZuyY2!g<<+eJ6I_WUnF4v>?)x{zoEw&d;n3(-~z%r)9G#z`yfn ziDw{QEtWCr#znc}wA>skI*g@*Lu%%|d6KmF>TQ~hDg$&`GS z!k)(iu3>4;CcwMl_C@>Q6KE#-QM``$lo6PcEN{>NnKc_-#rY`RAAg&@L;+Wb!(lxQ z>O2%))#>?2XZS7DQoqX!FZ!ewiTkk^rZufB{YQWw^WwB>PCwZ0RfjY3$2D|dmR<}1 zqfs`nb)C%(eu^Ak%}e5c-fbA#u}D;LD%co%U!~PDZhf9xNXax ztf^84NI_Z85BrwB{MG;;z~4e$2=8iI{*z12Kx0_Y(J_YKggKIBRyIG(&EJyt33f3x zgQ~{qg!AZ3MIvup7#}74vo~a!T9)76e<>1E5SuK_Q7FHj_lApdH(lLDxzyvCDr;GE z;9C}XR-RA4<^LA02ZOe*T9Ini)ap)pZ`GdT!i&-!TAo1Kt3<{1{5P4*5|AX&abi}5 z1}dPYeDllj#OML+t&~AMG9GghvBM(KCm|FSGV7mz{^hrp*UyOpevU#lhrAL>jjua; z_s`cjG7!hRAJaEX9G<-DraY5V$*np%xf#qKb$V<4w-~%?;p@j6x>tEv$(bKOZm-D+ zH3*H)OmdaaIOZBjhhmDKIX~{JCo2?o@iIYnQf);n3IR{$Wi)2X{*SFdFLI29G|M9Q zF^Omu!@{YGB~tRjU_?jO54;z1>yY!B-cu$Y^NS~a-U=wQiL0v2nCIyhbIX>*@2*LH+5afsYldf6v+Iu_W3|niqsM~>pd<;= zh>g!vtgzaSjEP>loF|Dq1B_N9wFfxT&M$$;zr3b()@xo@A&MU}|JlodcQX8W z!E_YgR1@T4UUvYBA9A<^)UME~{9jl6W8@HZS!NM;DQ_UP5f?pMru?nGzuMT7e^6NF zI9L;OZS_MpFu91dy!f~xDbSwSF?n?>ZgktABuE$=?y=SWddDE-Vf)}DFIAw)jof`H fC6gOH`%+hJc7P+O`*0eSo)wMf*I?kKyPW$UZ|j#{ literal 0 HcmV?d00001 diff --git a/src/qtui.h b/src/qtui.h index a3b9eb014..17fc44e94 100644 --- a/src/qtui.h +++ b/src/qtui.h @@ -43,6 +43,7 @@ extern bool ThreadSafeAskFee(int64 nFeeRequired, const std::string& strCaption, extern void CalledSetStatusBar(const std::string& strText, int nField); extern void UIThreadCall(boost::function0 fn); extern void MainFrameRepaint(); +extern void InitMessage(const std::string &message); extern std::string _(const char* psz); #endif