|
|
|
@ -15,11 +15,12 @@
|
|
|
|
|
|
|
|
|
|
#include <QApplication>
|
|
|
|
|
#include <QPainter>
|
|
|
|
|
#include <QDesktopWidget>
|
|
|
|
|
|
|
|
|
|
SplashScreen::SplashScreen(const QPixmap &pixmap, Qt::WindowFlags f, bool isTestNet) :
|
|
|
|
|
QSplashScreen(pixmap, f)
|
|
|
|
|
SplashScreen::SplashScreen(Qt::WindowFlags f, bool isTestNet) :
|
|
|
|
|
QWidget(0, f), curAlignment(0)
|
|
|
|
|
{
|
|
|
|
|
setAutoFillBackground(true);
|
|
|
|
|
//setAutoFillBackground(true);
|
|
|
|
|
|
|
|
|
|
// set reference point, paddings
|
|
|
|
|
int paddingRight = 50;
|
|
|
|
@ -38,15 +39,14 @@ SplashScreen::SplashScreen(const QPixmap &pixmap, Qt::WindowFlags f, bool isTest
|
|
|
|
|
QString font = "Arial";
|
|
|
|
|
|
|
|
|
|
// load the bitmap for writing some text over it
|
|
|
|
|
QPixmap newPixmap;
|
|
|
|
|
if(isTestNet) {
|
|
|
|
|
newPixmap = QPixmap(":/images/splash_testnet");
|
|
|
|
|
pixmap = QPixmap(":/images/splash_testnet");
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
newPixmap = QPixmap(":/images/splash");
|
|
|
|
|
pixmap = QPixmap(":/images/splash");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QPainter pixPaint(&newPixmap);
|
|
|
|
|
QPainter pixPaint(&pixmap);
|
|
|
|
|
pixPaint.setPen(QColor(100,100,100));
|
|
|
|
|
|
|
|
|
|
// check font size and drawing with
|
|
|
|
@ -61,7 +61,7 @@ SplashScreen::SplashScreen(const QPixmap &pixmap, Qt::WindowFlags f, bool isTest
|
|
|
|
|
pixPaint.setFont(QFont(font, 33*fontFactor));
|
|
|
|
|
fm = pixPaint.fontMetrics();
|
|
|
|
|
titleTextWidth = fm.width(titleText);
|
|
|
|
|
pixPaint.drawText(newPixmap.width()-titleTextWidth-paddingRight,paddingTop,titleText);
|
|
|
|
|
pixPaint.drawText(pixmap.width()-titleTextWidth-paddingRight,paddingTop,titleText);
|
|
|
|
|
|
|
|
|
|
pixPaint.setFont(QFont(font, 15*fontFactor));
|
|
|
|
|
|
|
|
|
@ -72,11 +72,11 @@ SplashScreen::SplashScreen(const QPixmap &pixmap, Qt::WindowFlags f, bool isTest
|
|
|
|
|
pixPaint.setFont(QFont(font, 10*fontFactor));
|
|
|
|
|
titleVersionVSpace -= 5;
|
|
|
|
|
}
|
|
|
|
|
pixPaint.drawText(newPixmap.width()-titleTextWidth-paddingRight+2,paddingTop+titleVersionVSpace,versionText);
|
|
|
|
|
pixPaint.drawText(pixmap.width()-titleTextWidth-paddingRight+2,paddingTop+titleVersionVSpace,versionText);
|
|
|
|
|
|
|
|
|
|
// draw copyright stuff
|
|
|
|
|
pixPaint.setFont(QFont(font, 10*fontFactor));
|
|
|
|
|
pixPaint.drawText(newPixmap.width()-titleTextWidth-paddingRight,paddingTop+titleCopyrightVSpace,copyrightText);
|
|
|
|
|
pixPaint.drawText(pixmap.width()-titleTextWidth-paddingRight,paddingTop+titleCopyrightVSpace,copyrightText);
|
|
|
|
|
|
|
|
|
|
// draw testnet string if testnet is on
|
|
|
|
|
if(isTestNet) {
|
|
|
|
@ -85,12 +85,22 @@ SplashScreen::SplashScreen(const QPixmap &pixmap, Qt::WindowFlags f, bool isTest
|
|
|
|
|
pixPaint.setFont(boldFont);
|
|
|
|
|
fm = pixPaint.fontMetrics();
|
|
|
|
|
int testnetAddTextWidth = fm.width(testnetAddText);
|
|
|
|
|
pixPaint.drawText(newPixmap.width()-testnetAddTextWidth-10,15,testnetAddText);
|
|
|
|
|
pixPaint.drawText(pixmap.width()-testnetAddTextWidth-10,15,testnetAddText);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pixPaint.end();
|
|
|
|
|
|
|
|
|
|
this->setPixmap(newPixmap);
|
|
|
|
|
// Set window title
|
|
|
|
|
if(isTestNet)
|
|
|
|
|
setWindowTitle(titleText + " " + testnetAddText);
|
|
|
|
|
else
|
|
|
|
|
setWindowTitle(titleText);
|
|
|
|
|
|
|
|
|
|
// Resize window and move to center of desktop, disallow resizing
|
|
|
|
|
QRect r(QPoint(), pixmap.size());
|
|
|
|
|
resize(r.size());
|
|
|
|
|
setFixedSize(r.size());
|
|
|
|
|
move(QApplication::desktop()->screenGeometry().center() - r.center());
|
|
|
|
|
|
|
|
|
|
subscribeToCoreSignals();
|
|
|
|
|
}
|
|
|
|
@ -102,7 +112,8 @@ SplashScreen::~SplashScreen()
|
|
|
|
|
|
|
|
|
|
void SplashScreen::slotFinish(QWidget *mainWin)
|
|
|
|
|
{
|
|
|
|
|
finish(mainWin);
|
|
|
|
|
hide();
|
|
|
|
|
deleteLater();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void InitMessage(SplashScreen *splash, const std::string &message)
|
|
|
|
@ -146,3 +157,21 @@ void SplashScreen::unsubscribeFromCoreSignals()
|
|
|
|
|
pwalletMain->ShowProgress.disconnect(boost::bind(ShowProgress, this, _1, _2));
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SplashScreen::showMessage(const QString &message, int alignment, const QColor &color)
|
|
|
|
|
{
|
|
|
|
|
curMessage = message;
|
|
|
|
|
curAlignment = alignment;
|
|
|
|
|
curColor = color;
|
|
|
|
|
update();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SplashScreen::paintEvent(QPaintEvent *event)
|
|
|
|
|
{
|
|
|
|
|
QPainter painter(this);
|
|
|
|
|
painter.drawPixmap(0, 0, pixmap);
|
|
|
|
|
QRect r = rect().adjusted(5, 5, -5, -5);
|
|
|
|
|
painter.setPen(curColor);
|
|
|
|
|
painter.drawText(r, curAlignment, curMessage);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|