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/txdb.h \
|
||||||
src/leveldb.h \
|
src/leveldb.h \
|
||||||
src/threadsafety.h \
|
src/threadsafety.h \
|
||||||
src/limitedmap.h
|
src/limitedmap.h \
|
||||||
|
src/qt/splashscreen.h
|
||||||
|
|
||||||
SOURCES += src/qt/bitcoin.cpp \
|
SOURCES += src/qt/bitcoin.cpp \
|
||||||
src/qt/bitcoingui.cpp \
|
src/qt/bitcoingui.cpp \
|
||||||
|
@ -277,7 +278,8 @@ SOURCES += src/qt/bitcoin.cpp \
|
||||||
src/qt/rpcconsole.cpp \
|
src/qt/rpcconsole.cpp \
|
||||||
src/noui.cpp \
|
src/noui.cpp \
|
||||||
src/leveldb.cpp \
|
src/leveldb.cpp \
|
||||||
src/txdb.cpp
|
src/txdb.cpp \
|
||||||
|
src/qt/splashscreen.cpp
|
||||||
|
|
||||||
RESOURCES += src/qt/bitcoin.qrc
|
RESOURCES += src/qt/bitcoin.qrc
|
||||||
|
|
||||||
|
|
|
@ -44,11 +44,6 @@ Designer: Everaldo (Everaldo Coelho)
|
||||||
License: GNU/GPL
|
License: GNU/GPL
|
||||||
Site: http://findicons.com/icon/17102/reload?id=17102
|
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
|
Icon: src/qt/res/icons/debugwindow.png
|
||||||
Designer: Vignoni David
|
Designer: Vignoni David
|
||||||
Site: http://www.oxygen-icons.org/
|
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,
|
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.ico, src/qt/res/src/bitcoin.png,
|
||||||
src/qt/res/src/bitcoin_testnet.png, docs/bitcoin_logo_doxygen.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)
|
Designer: Jonas Schnelli (based on the original bitcoin logo from Bitboy)
|
||||||
License: MIT
|
License: MIT
|
||||||
|
|
|
@ -14,13 +14,13 @@
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "ui_interface.h"
|
#include "ui_interface.h"
|
||||||
#include "paymentserver.h"
|
#include "paymentserver.h"
|
||||||
|
#include "splashscreen.h"
|
||||||
|
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QTextCodec>
|
#include <QTextCodec>
|
||||||
#include <QLocale>
|
#include <QLocale>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
#include <QTranslator>
|
#include <QTranslator>
|
||||||
#include <QSplashScreen>
|
|
||||||
#include <QLibraryInfo>
|
#include <QLibraryInfo>
|
||||||
|
|
||||||
#if defined(BITCOIN_NEED_QT_PLUGINS) && !defined(_BITCOIN_QT_PLUGINS_INCLUDED)
|
#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
|
// Need a global reference for the notifications to find the GUI
|
||||||
static BitcoinGUI *guiref;
|
static BitcoinGUI *guiref;
|
||||||
static QSplashScreen *splashref;
|
static SplashScreen *splashref;
|
||||||
|
|
||||||
static bool ThreadSafeMessageBox(const std::string& message, const std::string& caption, unsigned int style)
|
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)
|
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();
|
qApp->processEvents();
|
||||||
}
|
}
|
||||||
printf("init message: %s\n", message.c_str());
|
printf("init message: %s\n", message.c_str());
|
||||||
|
@ -192,7 +192,7 @@ int main(int argc, char *argv[])
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
QSplashScreen splash(QPixmap(":/images/splash"), 0);
|
SplashScreen splash(QPixmap(), 0);
|
||||||
if (GetBoolArg("-splash", true) && !GetBoolArg("-min"))
|
if (GetBoolArg("-splash", true) && !GetBoolArg("-min"))
|
||||||
{
|
{
|
||||||
splash.show();
|
splash.show();
|
||||||
|
|
|
@ -43,7 +43,8 @@
|
||||||
</qresource>
|
</qresource>
|
||||||
<qresource prefix="/images">
|
<qresource prefix="/images">
|
||||||
<file alias="about">res/images/about.png</file>
|
<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>
|
||||||
<qresource prefix="/movies">
|
<qresource prefix="/movies">
|
||||||
<file alias="update_spinner">res/movies/update_spinner.mng</file>
|
<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