src/version.cpp

changeset 272
9d52b119b3f5
parent 268
fb319526ba6c
child 273
57952c5ca59b
--- 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 <QString>
+#include <QDateTime>
 #include <time.h>
 #include <hginfo.h>
 #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 (&timestamp));
-		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"));
+}

mercurial