From 0c9fb91bd9b94a20782ed85de63e21b860fe5812 Mon Sep 17 00:00:00 2001 From: wmayer Date: Wed, 22 Feb 2012 17:28:22 +0100 Subject: [PATCH] Embed version number into splashscreen --- src/Gui/MainWindow.cpp | 39 +++++++++++++++++++++++++++++++++++++++ src/Main/MainGui.cpp | 1 + 2 files changed, 40 insertions(+) diff --git a/src/Gui/MainWindow.cpp b/src/Gui/MainWindow.cpp index 6b34086d5..b36d3e661 100644 --- a/src/Gui/MainWindow.cpp +++ b/src/Gui/MainWindow.cpp @@ -36,6 +36,7 @@ # include # include # include +# include # include # include # include @@ -1303,6 +1304,44 @@ QPixmap MainWindow::splashImage() const splash_image.load(fi.filePath(), "PNG"); if (splash_image.isNull()) splash_image = Gui::BitmapFactory().pixmap(App::Application::Config()["SplashPicture"].c_str()); + + // include application name and version number + std::map::const_iterator tc = App::Application::Config().find("SplashExeColor"); + if (tc != App::Application::Config().end()) { + QString exeName = QString::fromAscii(App::Application::Config()["ExeName"].c_str()); + QString major = QString::fromAscii(App::Application::Config()["BuildVersionMajor"].c_str()); + QString minor = QString::fromAscii(App::Application::Config()["BuildVersionMinor"].c_str()); + QString version = QString::fromAscii("%1.%2").arg(major).arg(minor); + + QPainter painter; + painter.begin(&splash_image); + QFont fontExe = painter.font(); + fontExe.setPointSize(20); + QFontMetrics metricExe(fontExe); + int l = metricExe.width(exeName); + int w = splash_image.width(); + int h = splash_image.height(); + + QFont fontVer = painter.font(); + fontVer.setPointSize(12); + QFontMetrics metricVer(fontVer); + int v = metricVer.width(version); + + QColor color; + color.setNamedColor(QString::fromAscii(tc->second.c_str())); + if (!color.isValid()) { + color.setRed(200); + color.setGreen(200); + color.setBlue(200); + } + painter.setPen(color); + painter.setFont(fontExe); + painter.drawText(w-(l+v+10),h-20, exeName); + painter.setFont(fontVer); + painter.drawText(w-(v+5),h-20, version); + painter.end(); + } + return splash_image; } diff --git a/src/Main/MainGui.cpp b/src/Main/MainGui.cpp index 8a46d6cc2..7d898cfe7 100644 --- a/src/Main/MainGui.cpp +++ b/src/Main/MainGui.cpp @@ -276,6 +276,7 @@ int main( int argc, char ** argv ) //App::Application::Config()["HiddenDockWindow"] = "Property editor"; App::Application::Config()["SplashAlignment" ] = "Bottom|Left"; App::Application::Config()["SplashTextColor" ] = "#ffffff"; // white + App::Application::Config()["SplashExeColor" ] = "#c8c8c8"; // light grey try { // Init phase ===========================================================