Merge pull request #2524 from jonasschnelli/new_splashscreen_fresh
new splash screen
This commit is contained in:
commit
52ae314b5e
9 changed files with 110 additions and 13 deletions
|
@ -210,7 +210,8 @@ HEADERS += src/qt/bitcoingui.h \
|
|||
src/txdb.h \
|
||||
src/leveldb.h \
|
||||
src/threadsafety.h \
|
||||
src/limitedmap.h
|
||||
src/limitedmap.h \
|
||||
src/qt/splashscreen.h
|
||||
|
||||
SOURCES += src/qt/bitcoin.cpp \
|
||||
src/qt/bitcoingui.cpp \
|
||||
|
@ -277,7 +278,8 @@ SOURCES += src/qt/bitcoin.cpp \
|
|||
src/qt/rpcconsole.cpp \
|
||||
src/noui.cpp \
|
||||
src/leveldb.cpp \
|
||||
src/txdb.cpp
|
||||
src/txdb.cpp \
|
||||
src/qt/splashscreen.cpp
|
||||
|
||||
RESOURCES += src/qt/bitcoin.qrc
|
||||
|
||||
|
|
|
@ -44,11 +44,6 @@ Designer: Everaldo (Everaldo Coelho)
|
|||
License: GNU/GPL
|
||||
Site: http://findicons.com/icon/17102/reload?id=17102
|
||||
|
||||
Image: src/qt/res/images/splash2.jpg (Wallet image)
|
||||
Designer: Crobbo (forum)
|
||||
Site: https://bitcointalk.org/index.php?topic=32273.0
|
||||
License: Public domain
|
||||
|
||||
Icon: src/qt/res/icons/debugwindow.png
|
||||
Designer: Vignoni David
|
||||
Site: http://www.oxygen-icons.org/
|
||||
|
@ -57,6 +52,7 @@ License: Oxygen icon theme is dual licensed. You may copy it under the Creative
|
|||
Icon: src/qt/res/icons/bitcoin.icns, src/qt/res/src/bitcoin.svg,
|
||||
src/qt/res/src/bitcoin.ico, src/qt/res/src/bitcoin.png,
|
||||
src/qt/res/src/bitcoin_testnet.png, docs/bitcoin_logo_doxygen.png,
|
||||
src/qt/res/icons/toolbar.png, src/qt/res/icons/toolbar_testnet.png
|
||||
src/qt/res/icons/toolbar.png, src/qt/res/icons/toolbar_testnet.png,
|
||||
src/qt/res/images/splash.png, src/qt/res/images/splash_testnet.png
|
||||
Designer: Jonas Schnelli (based on the original bitcoin logo from Bitboy)
|
||||
License: MIT
|
||||
|
|
|
@ -14,13 +14,13 @@
|
|||
#include "util.h"
|
||||
#include "ui_interface.h"
|
||||
#include "paymentserver.h"
|
||||
#include "splashscreen.h"
|
||||
|
||||
#include <QMessageBox>
|
||||
#include <QTextCodec>
|
||||
#include <QLocale>
|
||||
#include <QTimer>
|
||||
#include <QTranslator>
|
||||
#include <QSplashScreen>
|
||||
#include <QLibraryInfo>
|
||||
|
||||
#if defined(BITCOIN_NEED_QT_PLUGINS) && !defined(_BITCOIN_QT_PLUGINS_INCLUDED)
|
||||
|
@ -36,7 +36,7 @@ Q_IMPORT_PLUGIN(qtaccessiblewidgets)
|
|||
|
||||
// Need a global reference for the notifications to find the GUI
|
||||
static BitcoinGUI *guiref;
|
||||
static QSplashScreen *splashref;
|
||||
static SplashScreen *splashref;
|
||||
|
||||
static bool ThreadSafeMessageBox(const std::string& message, const std::string& caption, unsigned int style)
|
||||
{
|
||||
|
@ -82,7 +82,7 @@ static void InitMessage(const std::string &message)
|
|||
{
|
||||
if(splashref)
|
||||
{
|
||||
splashref->showMessage(QString::fromStdString(message), Qt::AlignBottom|Qt::AlignHCenter, QColor(255,255,200));
|
||||
splashref->showMessage(QString::fromStdString(message), Qt::AlignBottom|Qt::AlignHCenter, QColor(55,55,55));
|
||||
qApp->processEvents();
|
||||
}
|
||||
printf("init message: %s\n", message.c_str());
|
||||
|
@ -192,7 +192,7 @@ int main(int argc, char *argv[])
|
|||
return 1;
|
||||
}
|
||||
|
||||
QSplashScreen splash(QPixmap(":/images/splash"), 0);
|
||||
SplashScreen splash(QPixmap(), 0);
|
||||
if (GetBoolArg("-splash", true) && !GetBoolArg("-min"))
|
||||
{
|
||||
splash.show();
|
||||
|
|
|
@ -43,7 +43,8 @@
|
|||
</qresource>
|
||||
<qresource prefix="/images">
|
||||
<file alias="about">res/images/about.png</file>
|
||||
<file alias="splash">res/images/splash2.jpg</file>
|
||||
<file alias="splash">res/images/splash.png</file>
|
||||
<file alias="splash_testnet">res/images/splash_testnet.png</file>
|
||||
</qresource>
|
||||
<qresource prefix="/movies">
|
||||
<file alias="update_spinner">res/movies/update_spinner.mng</file>
|
||||
|
|
BIN
src/qt/res/images/splash.png
Normal file
BIN
src/qt/res/images/splash.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 48 KiB |
Binary file not shown.
Before Width: | Height: | Size: 5.7 KiB |
BIN
src/qt/res/images/splash_testnet.png
Normal file
BIN
src/qt/res/images/splash_testnet.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 44 KiB |
82
src/qt/splashscreen.cpp
Normal file
82
src/qt/splashscreen.cpp
Normal file
|
@ -0,0 +1,82 @@
|
|||
#include "splashscreen.h"
|
||||
#include "clientversion.h"
|
||||
#include "util.h"
|
||||
|
||||
#include <QPainter>
|
||||
#include <QApplication>
|
||||
|
||||
SplashScreen::SplashScreen(const QPixmap &pixmap, Qt::WindowFlags f) :
|
||||
QSplashScreen(pixmap, f)
|
||||
{
|
||||
// set reference point, paddings
|
||||
int paddingRight = 50;
|
||||
int paddingTop = 50;
|
||||
int titleVersionVSpace = 17;
|
||||
int titleCopyrightVSpace = 40;
|
||||
|
||||
float fontFactor = 1.0;
|
||||
|
||||
// define text to place
|
||||
QString titleText = QString(QApplication::applicationName()).replace(QString("-testnet"), QString(""), Qt::CaseSensitive); // cut of testnet, place it as single object further down
|
||||
QString versionText = QString("Version %1").arg(QString::fromStdString(FormatFullVersion()));
|
||||
QString copyrightText = QChar(0xA9)+QString(" 2009-%1 ").arg(COPYRIGHT_YEAR) + QString(tr("The Bitcoin developers"));
|
||||
QString testnetAddText = QString(tr("[testnet]")); // define text to place as single text object
|
||||
|
||||
QString font = "Arial";
|
||||
|
||||
// load the bitmap for writing some text over it
|
||||
QPixmap newPixmap;
|
||||
if(GetBoolArg("-testnet")) {
|
||||
newPixmap = QPixmap(":/images/splash_testnet");
|
||||
}
|
||||
else {
|
||||
newPixmap = QPixmap(":/images/splash");
|
||||
}
|
||||
|
||||
QPainter pixPaint(&newPixmap);
|
||||
pixPaint.setPen(QColor(100,100,100));
|
||||
|
||||
// check font size and drawing with
|
||||
pixPaint.setFont(QFont(font, 33*fontFactor));
|
||||
QFontMetrics fm = pixPaint.fontMetrics();
|
||||
int titleTextWidth = fm.width(titleText);
|
||||
if(titleTextWidth > 160) {
|
||||
// strange font rendering, Arial probably not found
|
||||
fontFactor = 0.75;
|
||||
}
|
||||
|
||||
pixPaint.setFont(QFont(font, 33*fontFactor));
|
||||
fm = pixPaint.fontMetrics();
|
||||
titleTextWidth = fm.width(titleText);
|
||||
pixPaint.drawText(newPixmap.width()-titleTextWidth-paddingRight,paddingTop,titleText);
|
||||
|
||||
pixPaint.setFont(QFont(font, 15*fontFactor));
|
||||
|
||||
// if the version string is to long, reduce size
|
||||
fm = pixPaint.fontMetrics();
|
||||
int versionTextWidth = fm.width(versionText);
|
||||
if(versionTextWidth > titleTextWidth+paddingRight-10) {
|
||||
pixPaint.setFont(QFont(font, 10*fontFactor));
|
||||
titleVersionVSpace -= 5;
|
||||
}
|
||||
pixPaint.drawText(newPixmap.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);
|
||||
|
||||
// draw testnet string if -testnet is on
|
||||
if(QApplication::applicationName().contains(QString("-testnet"))) {
|
||||
// draw copyright stuff
|
||||
QFont boldFont = QFont(font, 10*fontFactor);
|
||||
boldFont.setWeight(QFont::Bold);
|
||||
pixPaint.setFont(boldFont);
|
||||
fm = pixPaint.fontMetrics();
|
||||
int testnetAddTextWidth = fm.width(testnetAddText);
|
||||
pixPaint.drawText(newPixmap.width()-testnetAddTextWidth-10,15,testnetAddText);
|
||||
}
|
||||
|
||||
pixPaint.end();
|
||||
|
||||
this->setPixmap(newPixmap);
|
||||
}
|
16
src/qt/splashscreen.h
Normal file
16
src/qt/splashscreen.h
Normal file
|
@ -0,0 +1,16 @@
|
|||
#ifndef SPLASHSCREEN_H
|
||||
#define SPLASHSCREEN_H
|
||||
|
||||
#include <QSplashScreen>
|
||||
|
||||
/** class for the splashscreen with information of the running client
|
||||
*/
|
||||
class SplashScreen : public QSplashScreen
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit SplashScreen(const QPixmap &pixmap = QPixmap(), Qt::WindowFlags f = 0);
|
||||
};
|
||||
|
||||
#endif // SPLASHSCREEN_H
|
Loading…
Reference in a new issue