Improve splash screen text visibility with shadow effect and larger font

This commit is contained in:
2026-01-12 23:33:28 +01:00
parent 79b4945b31
commit 5ff9fa136b

View File

@@ -29,12 +29,12 @@ SplashScreen::SplashScreen(interfaces::Node& node, Qt::WindowFlags f, const Netw
QWidget(nullptr, f), curAlignment(0), m_node(node) QWidget(nullptr, f), curAlignment(0), m_node(node)
{ {
// set reference point, paddings // set reference point, paddings
int paddingRight = 50; int paddingRight = 20;
int paddingTop = 50; int paddingTop = 50;
int titleVersionVSpace = 17; int titleVersionVSpace = 17;
int titleCopyrightVSpace = 40; int titleCopyrightVSpace = 40;
float fontFactor = 1.0; float fontFactor = 1.3;
float devicePixelRatio = 1.0; float devicePixelRatio = 1.0;
devicePixelRatio = static_cast<QGuiApplication*>(QCoreApplication::instance())->devicePixelRatio(); devicePixelRatio = static_cast<QGuiApplication*>(QCoreApplication::instance())->devicePixelRatio();
@@ -82,7 +82,16 @@ SplashScreen::SplashScreen(interfaces::Node& node, Qt::WindowFlags f, const Netw
pixPaint.setFont(QFont(font, 33*fontFactor)); pixPaint.setFont(QFont(font, 33*fontFactor));
fm = pixPaint.fontMetrics(); fm = pixPaint.fontMetrics();
titleTextWidth = GUIUtil::TextWidth(fm, titleText); titleTextWidth = GUIUtil::TextWidth(fm, titleText);
pixPaint.drawText(pixmap.width()/devicePixelRatio-titleTextWidth-paddingRight,paddingTop,titleText);
// Draw title with shadow effect
int titleX = pixmap.width()/devicePixelRatio-titleTextWidth-paddingRight;
int titleY = paddingTop;
// Shadow (subtle offset with high opacity)
pixPaint.setPen(QColor(255, 255, 255, 230));
pixPaint.drawText(titleX+1, titleY+1, titleText);
// Main text in very dark color for maximum contrast
pixPaint.setPen(QColor(0, 0, 0));
pixPaint.drawText(titleX, titleY, titleText);
pixPaint.setFont(QFont(font, 15*fontFactor)); pixPaint.setFont(QFont(font, 15*fontFactor));
@@ -93,7 +102,16 @@ SplashScreen::SplashScreen(interfaces::Node& node, Qt::WindowFlags f, const Netw
pixPaint.setFont(QFont(font, 10*fontFactor)); pixPaint.setFont(QFont(font, 10*fontFactor));
titleVersionVSpace -= 5; titleVersionVSpace -= 5;
} }
pixPaint.drawText(pixmap.width()/devicePixelRatio-titleTextWidth-paddingRight+2,paddingTop+titleVersionVSpace,versionText);
// Draw version with shadow effect
int versionX = pixmap.width()/devicePixelRatio-titleTextWidth-paddingRight+2;
int versionY = paddingTop+titleVersionVSpace;
// Shadow (subtle offset with high opacity)
pixPaint.setPen(QColor(255, 255, 255, 230));
pixPaint.drawText(versionX+1, versionY+1, versionText);
// Main text in very dark color for maximum contrast
pixPaint.setPen(QColor(0, 0, 0));
pixPaint.drawText(versionX, versionY, versionText);
// draw copyright stuff // draw copyright stuff
{ {
@@ -101,6 +119,13 @@ SplashScreen::SplashScreen(interfaces::Node& node, Qt::WindowFlags f, const Netw
const int x = pixmap.width()/devicePixelRatio-titleTextWidth-paddingRight; const int x = pixmap.width()/devicePixelRatio-titleTextWidth-paddingRight;
const int y = paddingTop+titleCopyrightVSpace; const int y = paddingTop+titleCopyrightVSpace;
QRect copyrightRect(x, y, pixmap.width() - x - paddingRight, pixmap.height() - y); QRect copyrightRect(x, y, pixmap.width() - x - paddingRight, pixmap.height() - y);
// Shadow for copyright (subtle offset with high opacity)
pixPaint.setPen(QColor(255, 255, 255, 230));
copyrightRect.translate(1, 1);
pixPaint.drawText(copyrightRect, Qt::AlignLeft | Qt::AlignTop | Qt::TextWordWrap, copyrightText);
// Main text for copyright in very dark color for maximum contrast
copyrightRect.translate(-1, -1);
pixPaint.setPen(QColor(0, 0, 0));
pixPaint.drawText(copyrightRect, Qt::AlignLeft | Qt::AlignTop | Qt::TextWordWrap, copyrightText); pixPaint.drawText(copyrightRect, Qt::AlignLeft | Qt::AlignTop | Qt::TextWordWrap, copyrightText);
} }