From c34d3331fb55c450ab87cbe37b76679d00c1fa7e Mon Sep 17 00:00:00 2001
From: Syping <schiedelrafael@keppe.org>
Date: Fri, 13 Jul 2018 12:07:13 +0200
Subject: [PATCH] remove unneccessary Capacity view, add Commit tag on version

---
 .ci/debian_build.sh      |  2 +-
 .ci/debian_docker.sh     |  2 +-
 .ci/osx_build.sh         |  2 +-
 .ci/windows_build.sh     |  2 +-
 .ci/windows_docker.sh    |  2 +-
 .ci/wininstall_build.sh  |  2 +-
 .ci/wininstall_docker.sh |  2 +-
 .gitlab/gitlab.sh        |  5 ++++-
 .travis.yml              |  4 ++++
 .travis/travis.sh        |  4 ++++
 AboutDialog.cpp          |  5 +++++
 ImageEditorDialog.cpp    |  7 -------
 ImageEditorDialog.h      |  1 -
 ImageEditorDialog.ui     | 33 +--------------------------------
 ProfileInterface.cpp     | 16 ++++++++++++++--
 TelemetryClass.cpp       |  3 +++
 UserInterface.cpp        | 16 ++++++++++++++--
 17 files changed, 56 insertions(+), 52 deletions(-)

diff --git a/.ci/debian_build.sh b/.ci/debian_build.sh
index d9d88b2..86b2555 100755
--- a/.ci/debian_build.sh
+++ b/.ci/debian_build.sh
@@ -21,7 +21,7 @@ mkdir -p /usr/share/gta5view && \
 
 # Starting build
 cd qt5 && \
-qmake -qt=5 -spec linux-clang GTA5SYNC_PREFIX=/usr QMAKE_CXXFLAGS+=-std=gnu++11 ${QMAKE_FLAGS_QT5} DEFINES+=GTA5SYNC_BUILDTYPE_DEV "DEFINES+=GTA5SYNC_BUILDCODE=\\\\\\\"${PACKAGE_CODE}\\\\\\\"" "DEFINES+=GTA5SYNC_APPVER=\\\\\\\"${APPLICATION_VERSION}\\\\\\\"" DEFINES+=GTA5SYNC_QCONF DEFINES+=GTA5SYNC_TELEMETRY "DEFINES+=GTA5SYNC_TELEMETRY_WEBURL=\\\\\\\"https://dev.syping.de/gta5view-userstats/\\\\\\\"" ../../gta5view.pro && \
+qmake -qt=5 -spec linux-clang GTA5SYNC_PREFIX=/usr QMAKE_CXXFLAGS+=-std=gnu++11 ${QMAKE_FLAGS_QT5} DEFINES+=GTA5SYNC_BUILDTYPE_DEV "DEFINES+=GTA5SYNC_BUILDCODE=\\\\\\\"${PACKAGE_CODE}\\\\\\\"" "DEFINES+=GTA5SYNC_APPVER=\\\\\\\"${APPLICATION_VERSION}\\\\\\\"" "DEFINES+=GTA5SYNC_COMMIT=\\\\\\\"${APPLICATION_COMMIT}\\\\\\\"" DEFINES+=GTA5SYNC_QCONF DEFINES+=GTA5SYNC_TELEMETRY "DEFINES+=GTA5SYNC_TELEMETRY_WEBURL=\\\\\\\"https://dev.syping.de/gta5view-userstats/\\\\\\\"" ../../gta5view.pro && \
 make depend && \
 make -j 4 && \
 checkinstall -D --default --nodoc --install=no --pkgname=gta5view-qt5 --pkgversion=${PACKAGE_VERSION} --pkgrelease=${PACKAGE_BUILD} --pkggroup=utility --maintainer="Syping \<dpkg@syping.de\>" --requires=libqt5core5a,libqt5gui5,libqt5network5,libqt5widgets5,qttranslations5-l10n --conflicts=gta5view,gta5view-qt4 --replaces=gta5view,gta5view-qt4 --pakdir=${PROJECT_DIR}/assets && \
diff --git a/.ci/debian_docker.sh b/.ci/debian_docker.sh
index 4bdf15b..f891944 100755
--- a/.ci/debian_docker.sh
+++ b/.ci/debian_docker.sh
@@ -12,4 +12,4 @@ docker pull ${DOCKER_IMAGE} && \
 docker run --rm \
 	-v "${PROJECT_DIR}:${PROJECT_DIR_DOCKER}" \
 	${DOCKER_IMAGE} \
-	/bin/bash -c "export PROJECT_DIR=${PROJECT_DIR_DOCKER} && export QT_SELECT=${QT_SELECT} && export APPLICATION_VERSION=${APPLICATION_VERSION} && export APT_INSTALL=${APT_INSTALL} && export QMAKE_FLAGS_QT4=${QMAKE_FLAGS_QT4} && export QMAKE_FLAGS_QT5=${QMAKE_FLAGS_QT5} && export PACKAGE_VERSION=${PACKAGE_VERSION} && export PACKAGE_BUILD=${PACKAGE_BUILD} && export PACKAGE_CODE=${PACKAGE_CODE} && export EXECUTABLE_VERSION=${EXECUTABLE_VERSION} && export EXECUTABLE_ARCH=${EXECUTABLE_ARCH} && cd ${PROJECT_DIR_DOCKER} && .ci/debian_install.sh && .ci/debian_build.sh"
+	/bin/bash -c "export PROJECT_DIR=${PROJECT_DIR_DOCKER} && export QT_SELECT=${QT_SELECT} && export APPLICATION_VERSION=${APPLICATION_VERSION} && export APPLICATION_COMMIT=${APPLICATION_COMMIT} && export APT_INSTALL=${APT_INSTALL} && export QMAKE_FLAGS_QT4=${QMAKE_FLAGS_QT4} && export QMAKE_FLAGS_QT5=${QMAKE_FLAGS_QT5} && export PACKAGE_VERSION=${PACKAGE_VERSION} && export PACKAGE_BUILD=${PACKAGE_BUILD} && export PACKAGE_CODE=${PACKAGE_CODE} && export EXECUTABLE_VERSION=${EXECUTABLE_VERSION} && export EXECUTABLE_ARCH=${EXECUTABLE_ARCH} && cd ${PROJECT_DIR_DOCKER} && .ci/debian_install.sh && .ci/debian_build.sh"
diff --git a/.ci/osx_build.sh b/.ci/osx_build.sh
index 1fae647..cb968f7 100755
--- a/.ci/osx_build.sh
+++ b/.ci/osx_build.sh
@@ -8,7 +8,7 @@ mkdir -p build && \
 mkdir -p assets && \
 cd build && \
 
-/usr/local/opt/qt/bin/qmake ${QMAKE_FLAGS_QT5} DEFINES+=GTA5SYNC_BUILDTYPE_DEV "DEFINES+=GTA5SYNC_BUILDCODE=\\\\\\\"${PACKAGE_CODE}\\\\\\\"" "DEFINES+=GTA5SYNC_APPVER=\\\\\\\"${APPLICATION_VERSION}\\\\\\\"" DEFINES+=GTA5SYNC_TELEMETRY "DEFINES+=GTA5SYNC_TELEMETRY_WEBURL=\\\\\\\"https://dev.syping.de/gta5view-userstats/\\\\\\\"" ../gta5view.pro && \
+/usr/local/opt/qt/bin/qmake ${QMAKE_FLAGS_QT5} DEFINES+=GTA5SYNC_BUILDTYPE_DEV "DEFINES+=GTA5SYNC_BUILDCODE=\\\\\\\"${PACKAGE_CODE}\\\\\\\"" "DEFINES+=GTA5SYNC_APPVER=\\\\\\\"${APPLICATION_VERSION}\\\\\\\"" "DEFINES+=GTA5SYNC_COMMIT=\\\\\\\"${APPLICATION_COMMIT}\\\\\\\"" DEFINES+=GTA5SYNC_TELEMETRY "DEFINES+=GTA5SYNC_TELEMETRY_WEBURL=\\\\\\\"https://dev.syping.de/gta5view-userstats/\\\\\\\"" ../gta5view.pro && \
 make depend && \
 make -j 4 && \
 /usr/local/opt/qt/bin/macdeployqt gta5view.app -dmg && \
diff --git a/.ci/windows_build.sh b/.ci/windows_build.sh
index 8b03d2d..91f369a 100755
--- a/.ci/windows_build.sh
+++ b/.ci/windows_build.sh
@@ -12,7 +12,7 @@ mkdir -p assets && \
 
 # Starting build
 cd build && \
-qmake-static ${QMAKE_FLAGS} DEFINES+=GTA5SYNC_BUILDTYPE_DEV "DEFINES+=GTA5SYNC_BUILDCODE=\\\\\\\"${PACKAGE_CODE}\\\\\\\"" "DEFINES+=GTA5SYNC_APPVER=\\\\\\\"${APPLICATION_VERSION}\\\\\\\"" DEFINES+=GTA5SYNC_TELEMETRY "DEFINES+=GTA5SYNC_TELEMETRY_WEBURL=\\\\\\\"https://dev.syping.de/gta5view-userstats/\\\\\\\"" ../gta5view.pro && \
+qmake-static ${QMAKE_FLAGS} DEFINES+=GTA5SYNC_BUILDTYPE_DEV "DEFINES+=GTA5SYNC_BUILDCODE=\\\\\\\"${PACKAGE_CODE}\\\\\\\"" "DEFINES+=GTA5SYNC_APPVER=\\\\\\\"${APPLICATION_VERSION}\\\\\\\"" "DEFINES+=GTA5SYNC_COMMIT=\\\\\\\"${APPLICATION_COMMIT}\\\\\\\"" DEFINES+=GTA5SYNC_TELEMETRY "DEFINES+=GTA5SYNC_TELEMETRY_WEBURL=\\\\\\\"https://dev.syping.de/gta5view-userstats/\\\\\\\"" ../gta5view.pro && \
 make depend && \
 make -j 4 && \
 cp -Rf release/*.exe ${PROJECT_DIR}/assets/${GTA5VIEW_EXECUTABLE} && \
diff --git a/.ci/windows_docker.sh b/.ci/windows_docker.sh
index dd2a293..ced9e51 100755
--- a/.ci/windows_docker.sh
+++ b/.ci/windows_docker.sh
@@ -9,7 +9,7 @@ docker pull ${DOCKER_IMAGE} && \
 docker run --rm \
 	-v "${PROJECT_DIR}:${PROJECT_DIR_DOCKER}" \
 	${DOCKER_IMAGE} \
-	/bin/bash -c "export PROJECT_DIR=${PROJECT_DIR_DOCKER} && export QT_SELECT=${QT_SELECT} && export APPLICATION_VERSION=${APPLICATION_VERSION} && export QMAKE_FLAGS_QT4=${QMAKE_FLAGS_QT4} && export QMAKE_FLAGS_QT5=${QMAKE_FLAGS_QT5} && export PACKAGE_VERSION=${PACKAGE_VERSION} && export PACKAGE_BUILD=${PACKAGE_BUILD} && export PACKAGE_CODE=${PACKAGE_CODE} && export EXECUTABLE_VERSION=${EXECUTABLE_VERSION} && export EXECUTABLE_ARCH=${EXECUTABLE_ARCH} && cd ${PROJECT_DIR_DOCKER} && .ci/windows_build.sh" && \
+	/bin/bash -c "export PROJECT_DIR=${PROJECT_DIR_DOCKER} && export QT_SELECT=${QT_SELECT} && export APPLICATION_VERSION=${APPLICATION_VERSION} && export APPLICATION_COMMIT=${APPLICATION_COMMIT} && export QMAKE_FLAGS_QT4=${QMAKE_FLAGS_QT4} && export QMAKE_FLAGS_QT5=${QMAKE_FLAGS_QT5} && export PACKAGE_VERSION=${PACKAGE_VERSION} && export PACKAGE_BUILD=${PACKAGE_BUILD} && export PACKAGE_CODE=${PACKAGE_CODE} && export EXECUTABLE_VERSION=${EXECUTABLE_VERSION} && export EXECUTABLE_ARCH=${EXECUTABLE_ARCH} && cd ${PROJECT_DIR_DOCKER} && .ci/windows_build.sh" && \
 
 # Prepare environment variable
 export GTA5VIEW_EXECUTABLE=gta5view-${EXECUTABLE_VERSION}${EXECUTABLE_ARCH}.exe && \
diff --git a/.ci/wininstall_build.sh b/.ci/wininstall_build.sh
index 906145d..17836af 100755
--- a/.ci/wininstall_build.sh
+++ b/.ci/wininstall_build.sh
@@ -11,7 +11,7 @@ mkdir -p assets && \
 
 # Starting build
 cd build && \
-qmake ${QMAKE_FLAGS} DEFINES+=GTA5SYNC_BUILDTYPE_DEV "DEFINES+=GTA5SYNC_BUILDCODE=\\\\\\\"${PACKAGE_CODE}\\\\\\\"" "DEFINES+=GTA5SYNC_APPVER=\\\\\\\"${APPLICATION_VERSION}\\\\\\\"" DEFINES+=GTA5SYNC_TELEMETRY "DEFINES+=GTA5SYNC_TELEMETRY_WEBURL=\\\\\\\"https://dev.syping.de/gta5view-userstats/\\\\\\\"" DEFINES+=GTA5SYNC_QCONF DEFINES+=GTA5SYNC_INLANG='\\\"RUNDIR:SEPARATOR:lang\\\"' DEFINES+=GTA5SYNC_LANG='\\\"RUNDIR:SEPARATOR:lang\\\"' DEFINES+=GTA5SYNC_PLUG='\\\"RUNDIR:SEPARATOR:plugins\\\"' ../gta5view.pro && \
+qmake ${QMAKE_FLAGS} DEFINES+=GTA5SYNC_BUILDTYPE_DEV "DEFINES+=GTA5SYNC_BUILDCODE=\\\\\\\"${PACKAGE_CODE}\\\\\\\"" "DEFINES+=GTA5SYNC_APPVER=\\\\\\\"${APPLICATION_VERSION}\\\\\\\"" "DEFINES+=GTA5SYNC_COMMIT=\\\\\\\"${APPLICATION_COMMIT}\\\\\\\"" DEFINES+=GTA5SYNC_TELEMETRY "DEFINES+=GTA5SYNC_TELEMETRY_WEBURL=\\\\\\\"https://dev.syping.de/gta5view-userstats/\\\\\\\"" DEFINES+=GTA5SYNC_QCONF DEFINES+=GTA5SYNC_INLANG='\\\"RUNDIR:SEPARATOR:lang\\\"' DEFINES+=GTA5SYNC_LANG='\\\"RUNDIR:SEPARATOR:lang\\\"' DEFINES+=GTA5SYNC_PLUG='\\\"RUNDIR:SEPARATOR:plugins\\\"' ../gta5view.pro && \
 make depend && \
 make -j 4 && \
 cd ${PROJECT_DIR}/assets && \
diff --git a/.ci/wininstall_docker.sh b/.ci/wininstall_docker.sh
index 34b5ffc..c5ff9ca 100755
--- a/.ci/wininstall_docker.sh
+++ b/.ci/wininstall_docker.sh
@@ -9,4 +9,4 @@ docker pull ${DOCKER_IMAGE} && \
 docker run --rm \
 	-v "${PROJECT_DIR}:${PROJECT_DIR_DOCKER}" \
 	${DOCKER_IMAGE} \
-	/bin/bash -c "export PROJECT_DIR=${PROJECT_DIR_DOCKER} && export QT_SELECT=${QT_SELECT} && export APPLICATION_VERSION=${APPLICATION_VERSION} && export QMAKE_FLAGS_QT4=${QMAKE_FLAGS_QT4} && export QMAKE_FLAGS_QT5=${QMAKE_FLAGS_QT5} && export PACKAGE_VERSION=${PACKAGE_VERSION} && export PACKAGE_BUILD=${PACKAGE_BUILD} && export PACKAGE_CODE=${PACKAGE_CODE} && export EXECUTABLE_VERSION=${EXECUTABLE_VERSION} && export EXECUTABLE_ARCH=${EXECUTABLE_ARCH} && cd ${PROJECT_DIR_DOCKER} && .ci/wininstall_build.sh"
+	/bin/bash -c "export PROJECT_DIR=${PROJECT_DIR_DOCKER} && export QT_SELECT=${QT_SELECT} && export APPLICATION_VERSION=${APPLICATION_VERSION} && export APPLICATION_COMMIT=${APPLICATION_COMMIT} && export QMAKE_FLAGS_QT4=${QMAKE_FLAGS_QT4} && export QMAKE_FLAGS_QT5=${QMAKE_FLAGS_QT5} && export PACKAGE_VERSION=${PACKAGE_VERSION} && export PACKAGE_BUILD=${PACKAGE_BUILD} && export PACKAGE_CODE=${PACKAGE_CODE} && export EXECUTABLE_VERSION=${EXECUTABLE_VERSION} && export EXECUTABLE_ARCH=${EXECUTABLE_ARCH} && cd ${PROJECT_DIR_DOCKER} && .ci/wininstall_build.sh"
diff --git a/.gitlab/gitlab.sh b/.gitlab/gitlab.sh
index c7436a2..76a070f 100755
--- a/.gitlab/gitlab.sh
+++ b/.gitlab/gitlab.sh
@@ -1,6 +1,6 @@
 #!/bin/bash
 
-# Install curl and lua
+# Install curl, git, lua, nsis and openssl
 apt-get update -qq && \
 apt-get install -qq curl git lua5.2 nsis openssl
 
@@ -20,6 +20,9 @@ if [ "${PACKAGE_CODE}" == "" ]; then
 	export PACKAGE_CODE=GitLab
 fi
 
+# Init Application Commit Hash
+export APPLICATION_COMMIT=$(git rev-parse --short HEAD)
+
 # Start CI script and copying assets into base directory
 .ci/ci.sh && \
 cp -Rf assets/* ./
diff --git a/.travis.yml b/.travis.yml
index 997ce78..55de114 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -33,6 +33,10 @@ matrix:
     - BUILD_SCRIPT=windows_docker.sh
     - QT_SELECT=qt5-x86_64-w64-mingw32
     - PACKAGE_CODE=Dropbox
+  - env:
+    - BUILD_SCRIPT=windows_docker.sh
+    - QT_SELECT=qt5-x86_64-w64-mingw32
+    - PACKAGE_CODE=gta5-mods
   - env:
     - BUILD_SCRIPT=wininstall_docker.sh
     - QT_SELECT=qt5-x86_64-w64-mingw32
diff --git a/.travis/travis.sh b/.travis/travis.sh
index 9fd2a91..3938c0a 100755
--- a/.travis/travis.sh
+++ b/.travis/travis.sh
@@ -20,4 +20,8 @@ if [ "${PACKAGE_CODE}" == "" ]; then
 	export PACKAGE_CODE=GitHub
 fi
 
+# Init Application Commit Hash
+export APPLICATION_COMMIT=$(git rev-parse --short HEAD)
+
+# Start CI script
 .ci/ci.sh
diff --git a/AboutDialog.cpp b/AboutDialog.cpp
index 31ef78d..326b20d 100644
--- a/AboutDialog.cpp
+++ b/AboutDialog.cpp
@@ -37,6 +37,11 @@ AboutDialog::AboutDialog(QWidget *parent) :
     buildType.replace("_", " ");
     QString projectBuild = AppEnv::getBuildDateTime();
     QString buildStr = GTA5SYNC_BUILDSTRING;
+#ifndef GTA5SYNC_BUILDTYPE_REL
+#ifdef GTA5SYNC_COMMIT
+    appVersion = appVersion % "-" % GTA5SYNC_COMMIT;
+#endif
+#endif
 
     // Translator Comments
     //: Translated by translator, example Translated by Syping
diff --git a/ImageEditorDialog.cpp b/ImageEditorDialog.cpp
index 6ce6d84..fa86959 100644
--- a/ImageEditorDialog.cpp
+++ b/ImageEditorDialog.cpp
@@ -72,7 +72,6 @@ ImageEditorDialog::ImageEditorDialog(SnapmaticPicture *picture, QString profileN
     snapmaticResolutionLW = 516 * screenRatio; // 430
     snapmaticResolutionLH = 288 * screenRatio; // 240
     ui->labPicture->setMinimumSize(snapmaticResolutionLW, snapmaticResolutionLH);
-    ui->labCapacity->setText(tr("Capacity: %1").arg(QString::number(qRound((double)picture->getContentMaxLength() / 1024)) % " KB"));
 
     imageIsChanged = false;
     pictureCache = picture->getImage();
@@ -204,9 +203,3 @@ void ImageEditorDialog::on_cmdSave_clicked()
     }
     close();
 }
-
-void ImageEditorDialog::on_cmdQuestion_clicked()
-{
-    QMessageBox::information(this, tr("Snapmatic Image Editor"), tr("Every taken Snapmatic have a different Capacity, a Snapmatic with higher Capacity can store a picture with better quality."));
-
-}
diff --git a/ImageEditorDialog.h b/ImageEditorDialog.h
index 06a3c02..856af3e 100644
--- a/ImageEditorDialog.h
+++ b/ImageEditorDialog.h
@@ -38,7 +38,6 @@ private slots:
     void on_cmdClose_clicked();
     void on_cmdReplace_clicked();
     void on_cmdSave_clicked();
-    void on_cmdQuestion_clicked();
 
 private:
     SnapmaticPicture *smpic;
diff --git a/ImageEditorDialog.ui b/ImageEditorDialog.ui
index 090941c..13dd575 100644
--- a/ImageEditorDialog.ui
+++ b/ImageEditorDialog.ui
@@ -7,7 +7,7 @@
     <x>0</x>
     <y>0</y>
     <width>516</width>
-    <height>335</height>
+    <height>337</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -51,37 +51,6 @@
       <number>0</number>
      </property>
      <layout class="QVBoxLayout" name="vlButtons">
-      <item>
-       <layout class="QHBoxLayout" name="hlCapacity">
-        <item>
-         <widget class="QLabel" name="labCapacity">
-          <property name="text">
-           <string>Capacity: %1</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QToolButton" name="cmdQuestion">
-          <property name="text">
-           <string>?</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <spacer name="hsCapacity">
-          <property name="orientation">
-           <enum>Qt::Horizontal</enum>
-          </property>
-          <property name="sizeHint" stdset="0">
-           <size>
-            <width>0</width>
-            <height>0</height>
-           </size>
-          </property>
-         </spacer>
-        </item>
-       </layout>
-      </item>
       <item>
        <layout class="QHBoxLayout" name="hlButtons">
         <item>
diff --git a/ProfileInterface.cpp b/ProfileInterface.cpp
index 746b2c9..2dda46e 100644
--- a/ProfileInterface.cpp
+++ b/ProfileInterface.cpp
@@ -87,7 +87,13 @@ ProfileInterface::ProfileInterface(ProfileDatabase *profileDB, CrewDatabase *cre
     saSpacerItem = nullptr;
 
     updatePalette();
-    ui->labVersion->setText(QString("%1 %2").arg(GTA5SYNC_APPSTR, GTA5SYNC_APPVER));
+    QString appVersion = GTA5SYNC_APPVER;
+#ifndef GTA5SYNC_BUILDTYPE_REL
+#ifdef GTA5SYNC_COMMIT
+    appVersion = appVersion % "-" % GTA5SYNC_COMMIT;
+#endif
+#endif
+    ui->labVersion->setText(QString("%1 %2").arg(GTA5SYNC_APPSTR, appVersion));
     ui->saProfileContent->setFilesDropEnabled(true);
     ui->saProfileContent->setImageDropEnabled(true);
 
@@ -1498,7 +1504,13 @@ void ProfileInterface::on_saProfileContent_dropped(const QMimeData *mimeData)
 void ProfileInterface::retranslateUi()
 {
     ui->retranslateUi(this);
-    ui->labVersion->setText(QString("%1 %2").arg(GTA5SYNC_APPSTR, GTA5SYNC_APPVER));
+    QString appVersion = GTA5SYNC_APPVER;
+#ifndef GTA5SYNC_BUILDTYPE_REL
+#ifdef GTA5SYNC_COMMIT
+    appVersion = appVersion % "-" % GTA5SYNC_COMMIT;
+#endif
+#endif
+    ui->labVersion->setText(QString("%1 %2").arg(GTA5SYNC_APPSTR, appVersion));
 }
 
 bool ProfileInterface::eventFilter(QObject *watched, QEvent *event)
diff --git a/TelemetryClass.cpp b/TelemetryClass.cpp
index 6bf2448..0d9bd5a 100644
--- a/TelemetryClass.cpp
+++ b/TelemetryClass.cpp
@@ -336,6 +336,9 @@ QJsonDocument TelemetryClass::getApplicationSpec()
     jsonObject["Arch"] = QSysInfo::buildCpuArchitecture();
 #endif
     jsonObject["Name"] = GTA5SYNC_APPSTR;
+#ifdef GTA5SYNC_COMMIT
+    jsonObject["Commit"] = GTA5SYNC_COMMIT;
+#endif
     jsonObject["Version"] = GTA5SYNC_APPVER;
     jsonObject["BuildDateTime"] = AppEnv::getBuildDateTime();
     jsonObject["BuildType"] = GTA5SYNC_BUILDTYPE;
diff --git a/UserInterface.cpp b/UserInterface.cpp
index 03b5a7c..b45b213 100644
--- a/UserInterface.cpp
+++ b/UserInterface.cpp
@@ -61,7 +61,13 @@ UserInterface::UserInterface(ProfileDatabase *profileDB, CrewDatabase *crewDB, D
     defaultWindowTitle = tr("%2 - %1").arg("%1", GTA5SYNC_APPSTR);
 
     this->setWindowTitle(defaultWindowTitle.arg(tr("Select Profile")));
-    ui->labVersion->setText(QString("%1 %2").arg(GTA5SYNC_APPSTR, GTA5SYNC_APPVER));
+    QString appVersion = GTA5SYNC_APPVER;
+#ifndef GTA5SYNC_BUILDTYPE_REL
+#ifdef GTA5SYNC_COMMIT
+    appVersion = appVersion % "-" % GTA5SYNC_COMMIT;
+#endif
+#endif
+    ui->labVersion->setText(QString("%1 %2").arg(GTA5SYNC_APPSTR, appVersion));
 
     // Set Icon for Close Button
     if (QIcon::hasThemeIcon("dialog-close"))
@@ -633,7 +639,13 @@ void UserInterface::retranslateUi()
 {
     ui->retranslateUi(this);
     ui->actionAbout_gta5sync->setText(tr("&About %1").arg(GTA5SYNC_APPSTR));
-    ui->labVersion->setText(QString("%1 %2").arg(GTA5SYNC_APPSTR, GTA5SYNC_APPVER));
+    QString appVersion = GTA5SYNC_APPVER;
+#ifndef GTA5SYNC_BUILDTYPE_REL
+#ifdef GTA5SYNC_COMMIT
+    appVersion = appVersion % "-" % GTA5SYNC_COMMIT;
+#endif
+#endif
+    ui->labVersion->setText(QString("%1 %2").arg(GTA5SYNC_APPSTR, appVersion));
     if (profileOpen)
     {
         this->setWindowTitle(defaultWindowTitle.arg(profileName));