GUI: Add prominent dev build indicators

This commit is contained in:
Chris Hennes
2023-08-03 22:59:34 -06:00
committed by Chris Hennes
parent 16e083c8f3
commit ea49b3fe78
7 changed files with 50 additions and 11 deletions

View File

@@ -1691,6 +1691,32 @@ QPixmap MainWindow::aboutImage() const
return about_image;
}
void MainWindow::RenderDevBuildWarning(QPainter &painter, int x, int y) const
{
// Create a background box that fades out the artwork for better legibility
QColor fader (Qt::black);
const float halfDensity (0.5);
fader.setAlphaF(halfDensity);
QBrush fillBrush(fader, Qt::BrushStyle::SolidPattern);
painter.setBrush(fillBrush);
// Construct the lines of text and figure out how much space they need
auto devWarningLine1 = tr("WARNING: This is a development version.");
auto devWarningLine2 = tr("Please do not use in a production environment.");
QFontMetrics fontMetrics(painter.font());
int padding = QtTools::horizontalAdvance(fontMetrics, QLatin1String("M")); // Arbitrary
int line1Width = QtTools::horizontalAdvance(fontMetrics, devWarningLine1);
int line2Width = QtTools::horizontalAdvance(fontMetrics, devWarningLine2);
int boxWidth = std::max(line1Width,line2Width) + 2 * padding;
int lineHeight = fontMetrics.lineSpacing();
int boxHeight = static_cast<int>(lineHeight*2.3);
// Draw the background rectangle and the text
painter.drawRect(x, y, boxWidth, boxHeight);
painter.drawText(x+padding, y+lineHeight, devWarningLine1);
painter.drawText(x+padding, y+2*lineHeight, devWarningLine2);
}
QPixmap MainWindow::splashImage() const
{
// search in the UserAppData dir as very first
@@ -1731,7 +1757,8 @@ QPixmap MainWindow::splashImage() const
QString major = QString::fromLatin1(App::Application::Config()["BuildVersionMajor"].c_str());
QString minor = QString::fromLatin1(App::Application::Config()["BuildVersionMinor"].c_str());
QString point = QString::fromLatin1(App::Application::Config()["BuildVersionPoint"].c_str());
QString version = QString::fromLatin1("%1.%2.%3").arg(major, minor, point);
QString suffix = QString::fromLatin1(App::Application::Config()["BuildVersionSuffix"].c_str());
QString version = QString::fromLatin1("%1.%2.%3%4").arg(major, minor, point, suffix);
QString position, fontFamily;
std::map<std::string,std::string>::const_iterator te = App::Application::Config().find("SplashInfoExeName");
@@ -1793,6 +1820,9 @@ QPixmap MainWindow::splashImage() const
}
painter.setFont(fontVer);
painter.drawText(x + (l + 5), y, version);
if (suffix == QLatin1String("dev")) {
RenderDevBuildWarning(painter, x + l + 5, y + 10);
}
painter.end();
}
}