diff -r 416e8c497829 -r 9d52b119b3f5 src/version.cpp --- a/src/version.cpp Mon Jun 27 02:01:52 2022 +0300 +++ b/src/version.cpp Mon Jun 27 15:46:12 2022 +0300 @@ -17,36 +17,46 @@ */ #include +#include #include #include #include "src/version.h" -const char* fullVersionString() +#ifdef HG_ALL_TAGS +# define HGTEXT HG_NODE " (" HG_ALL_TAGS ")" +#else +# define HGTEXT HG_NODE +#endif + +QString detailedVersionString() { - if (::BUILD_TYPE != ReleaseBuild) { - return VERSION_STRING "-" HG_DATE_VERSION; - } - else { - return VERSION_STRING; - } + return QStringLiteral(VERSION_STRING "-" HGTEXT) + + " (" + revisionDateString() + ")"; } -static QString makeCommitTimeString() +QString versionString() { - QString result; -#ifdef HG_DATE_TIME - { - char buffer[100]; - constexpr time_t timestamp = HG_DATE_TIME; - strftime (buffer, sizeof buffer, "%d %b %Y", localtime (×tamp)); - result += buffer; - } +#ifndef HG_VERSION_TAG + return detailedVersionString(); +#else + return QStringLiteral(HG_VERSION_TAG); #endif - return result; } -const QString &commitTimeString() +static QString makeFullVersionString() +{ + QString versionstring = APPNAME " " + versionString(); + return versionstring; +} + +const QString& fullVersionString() { - static QString result = makeCommitTimeString(); - return result; + static const QString cached = makeFullVersionString(); + return cached; } + +QString revisionDateString() +{ + const QDateTime dt = QDateTime::fromSecsSinceEpoch(HG_DATE_TIME); + return dt.toString(QObject::tr("d MMMM yyyy")); +}