MCPcopy Create free account
hub / github.com/ElementsProject/elements / SplashScreen

Method SplashScreen

src/qt/splashscreen.cpp:30–134  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

28
29
30SplashScreen::SplashScreen(const NetworkStyle* networkStyle)
31 : QWidget(), curAlignment(0)
32{
33 // set reference point, paddings
34 int paddingRight = 50;
35 int paddingTop = 50;
36 int titleVersionVSpace = 17;
37 int titleCopyrightVSpace = 40;
38
39 float fontFactor = 1.0;
40 float devicePixelRatio = 1.0;
41 devicePixelRatio = static_cast<QGuiApplication*>(QCoreApplication::instance())->devicePixelRatio();
42
43 // define text to place
44 QString titleText = PACKAGE_NAME;
45 QString versionText = QString("Version %1").arg(QString::fromStdString(FormatFullVersion()));
46 QString copyrightText = QString::fromUtf8(CopyrightHolders(strprintf("\xc2\xA9 %u-%u ", 2009, COPYRIGHT_YEAR)).c_str());
47 QString titleAddText = networkStyle->getTitleAddText();
48
49 QString font = QApplication::font().toString();
50
51 // create a bitmap according to device pixelratio
52 QSize splashSize(480*devicePixelRatio,320*devicePixelRatio);
53 pixmap = QPixmap(splashSize);
54
55 // change to HiDPI if it makes sense
56 pixmap.setDevicePixelRatio(devicePixelRatio);
57
58 QPainter pixPaint(&pixmap);
59 pixPaint.setPen(QColor(100,100,100));
60
61 // draw a slightly radial gradient
62 QRadialGradient gradient(QPoint(0,0), splashSize.width()/devicePixelRatio);
63 gradient.setColorAt(0, Qt::white);
64 gradient.setColorAt(1, QColor(247,247,247));
65 QRect rGradient(QPoint(0,0), splashSize);
66 pixPaint.fillRect(rGradient, gradient);
67
68 // draw the bitcoin icon, expected size of PNG: 1024x1024
69 int _32 = 32 / devicePixelRatio;
70 QRect rectIcon(QPoint(0, 0), QSize(pixmap.size().height()/(2*devicePixelRatio)+_32*2, pixmap.size().height()/(2 * devicePixelRatio)+_32*2));
71
72 const QSize requiredSize(1024,1024);
73 QPixmap icon(networkStyle->getAppIcon().pixmap(requiredSize));
74
75 pixPaint.drawPixmap(rectIcon, icon);
76
77 // check font size and drawing with
78 pixPaint.setFont(QFont(font, 33*fontFactor));
79 QFontMetrics fm = pixPaint.fontMetrics();
80 int titleTextWidth = GUIUtil::TextWidth(fm, titleText);
81 if (titleTextWidth > 176) {
82 fontFactor = fontFactor * 176 / titleTextWidth;
83 }
84
85 pixPaint.setFont(QFont(font, 33*fontFactor));
86 fm = pixPaint.fontMetrics();
87 titleTextWidth = GUIUtil::TextWidth(fm, titleText);

Callers

nothing calls this directly

Calls 9

FormatFullVersionFunction · 0.85
CopyrightHoldersFunction · 0.85
QPointClass · 0.85
QFontClass · 0.85
TextWidthFunction · 0.85
heightMethod · 0.45
sizeMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected