From ff96ab1a6935cbb5b19ed08aaece9f1b25295d09 Mon Sep 17 00:00:00 2001 From: Armin Date: Wed, 5 Aug 2026 00:21:47 +0200 Subject: [PATCH] Show git version and build date in editor footer --- CMakeLists.txt | 29 +++++++++++++++++++++++++++++ Source/PluginEditor.cpp | 19 +++++++++++++++++-- 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index cafd384..60d8656 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -54,6 +54,35 @@ target_compile_definitions(Trommelkiste PRIVATE ) +# Version / build metadata for the editor footer +execute_process(COMMAND git describe --tags --always --dirty + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE GIT_DESCRIBE OUTPUT_STRIP_TRAILING_WHITESPACE) +execute_process(COMMAND git rev-parse --short HEAD + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE GIT_REVISION OUTPUT_STRIP_TRAILING_WHITESPACE) +execute_process(COMMAND git branch --show-current + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + OUTPUT_VARIABLE GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE) +string(TIMESTAMP BUILD_DATE "%Y-%m-%d__%H:%M:%S") + +if(NOT GIT_DESCRIBE) + set(GIT_DESCRIBE "unknown") +endif() +if(NOT GIT_REVISION) + set(GIT_REVISION "unknown") +endif() +if(NOT GIT_BRANCH) + set(GIT_BRANCH "detached") +endif() + +target_compile_definitions(Trommelkiste PRIVATE + TROMMELKISTE_GIT_VERSION="${GIT_DESCRIBE}" + TROMMELKISTE_GIT_REVISION="${GIT_REVISION}" + TROMMELKISTE_GIT_BRANCH="${GIT_BRANCH}" + TROMMELKISTE_BUILD_DATE="${BUILD_DATE}" +) + target_link_libraries(Trommelkiste PRIVATE TrommelkisteBinaryData diff --git a/Source/PluginEditor.cpp b/Source/PluginEditor.cpp index 8e34e15..a4e8e6e 100644 --- a/Source/PluginEditor.cpp +++ b/Source/PluginEditor.cpp @@ -23,6 +23,7 @@ static constexpr int COL_RINGMOD = COL_REVERB + KNOB_W + KNOB_GAP; static constexpr int COL_DESTR = COL_RINGMOD + KNOB_W + KNOB_GAP; static constexpr int COL_SHUFFLE = COL_DESTR + KNOB_W + KNOB_GAP; static constexpr int TOTAL_W = COL_SHUFFLE + KNOB_W; +static constexpr int FOOTER_H = 24; // Header knob x positions (compact layout) static constexpr int HDR_KNOB = 36; @@ -190,7 +191,7 @@ TrommelkisteEditor::TrommelkisteEditor(TrommelkisteProcessor& p) setLookAndFeel(&lnf); lnf.fontScale = 1.5f; uiScale = 1.5f; - setSize(scaled(TOTAL_W), scaled(TOP + NUM_TRACKS * ROW_H)); + setSize(scaled(TOTAL_W), scaled(TOP + NUM_TRACKS * ROW_H + FOOTER_H)); setResizable(false, false); setWantsKeyboardFocus(false); @@ -430,7 +431,7 @@ void TrommelkisteEditor::scaleChanged() { uiScale = scales[selId - 1]; lnf.fontScale = uiScale; - setSize(scaled(TOTAL_W), scaled(TOP + NUM_TRACKS * ROW_H)); + setSize(scaled(TOTAL_W), scaled(TOP + NUM_TRACKS * ROW_H + FOOTER_H)); } } @@ -583,6 +584,20 @@ void TrommelkisteEditor::paint(Graphics& g) g.drawRect(scaled(COL_FILE), scaled(ry), scaled(COL_DELAY - 8 - COL_FILE), scaled(ROW_H), scaled(2)); } } + + // Footer: git version + build date + const int footerY = TOP + NUM_TRACKS * ROW_H; + g.setColour(lnf.accent.withAlpha(0.3f)); + g.fillRect(scaled(10), scaled(footerY), scaled(getWidth() - 20), scaled(1)); + + const String footer = String(TROMMELKISTE_GIT_VERSION) + " (" + + String(TROMMELKISTE_GIT_REVISION) + ") \u00b7 " + + String(TROMMELKISTE_GIT_BRANCH) + " \u00b7 built " + + String(TROMMELKISTE_BUILD_DATE); + g.setColour(Colours::white.withAlpha(0.45f)); + g.setFont(font(9.0f, uiScale)); + g.drawText(footer, scaled(10), scaled(footerY + 6), scaled(getWidth() - 20), + scaled(FOOTER_H - 8), Justification::centred); } void TrommelkisteEditor::resized()