From 0ca6e7bbeb0d9b64b00c19e5d4394b1b296ffefa Mon Sep 17 00:00:00 2001 From: SparklesReal Date: Thu, 30 Oct 2025 17:37:06 +0100 Subject: [PATCH 1/3] Icon support on linux --- DMI/DMI.bmp | Bin 0 -> 20874 bytes platform/console_tools.cpp | 9 +++++++++ platform/platform.h | 1 + platform/sdl_platform.cpp | 9 +++++++++ 4 files changed, 19 insertions(+) create mode 100644 DMI/DMI.bmp diff --git a/DMI/DMI.bmp b/DMI/DMI.bmp new file mode 100644 index 0000000000000000000000000000000000000000..826dc5be9ba03cd7fbe7f714c382c11373c84526 GIT binary patch literal 20874 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 sY=5X>6DQ(mXFkS|hxaZv$KpiY5l1!3w8+hodW< Date: Fri, 31 Oct 2025 09:21:41 +0100 Subject: [PATCH 2/3] Use ETCS_ASSET_FILE for icon --- platform/console_tools.cpp | 9 --------- platform/platform.h | 1 - platform/sdl_platform.cpp | 2 +- 3 files changed, 1 insertion(+), 11 deletions(-) diff --git a/platform/console_tools.cpp b/platform/console_tools.cpp index d6ff5ef..56f602d 100644 --- a/platform/console_tools.cpp +++ b/platform/console_tools.cpp @@ -75,15 +75,6 @@ std::string get_files_dir(FileType type) return std::string(wd)+"/"; return ""; } - case ETCS_ICON_FILE: - { - auto exepath = std::filesystem::path(getexepath()).remove_filename(); - if (exepath.parent_path().filename() != "bin") - return ""; - if (exepath == "/bin/") - return "/usr/share/ETCS/"; - return ""; - } default: return ""; } diff --git a/platform/platform.h b/platform/platform.h index 2f0af04..d35a1b3 100644 --- a/platform/platform.h +++ b/platform/platform.h @@ -18,7 +18,6 @@ enum FileType ETCS_ASSET_FILE, ETCS_CONFIG_FILE, ETCS_STORAGE_FILE, - ETCS_ICON_FILE, }; class BasePlatform : private PlatformUtil::NoCopy { diff --git a/platform/sdl_platform.cpp b/platform/sdl_platform.cpp index ad425af..6d86384 100644 --- a/platform/sdl_platform.cpp +++ b/platform/sdl_platform.cpp @@ -103,7 +103,7 @@ SdlPlatform::SdlPlatform(float virtual_w, float virtual_h, const std::vector Date: Fri, 31 Oct 2025 11:04:56 +0100 Subject: [PATCH 3/3] install DMI.bmp logo --- DMI/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DMI/CMakeLists.txt b/DMI/CMakeLists.txt index ebc9777..57facfa 100644 --- a/DMI/CMakeLists.txt +++ b/DMI/CMakeLists.txt @@ -122,5 +122,5 @@ if(NOT ANDROID AND NOT WASM) endif() endif() install(DIRECTORY ../locales/dmi DESTINATION ${ETCS_ASSET_DIR}/locales) - install(FILES stm_alstom.json stm_bombardier.json stm_hitachi.json stm_siemens.json stm_windows.json DESTINATION ${ETCS_ASSET_DIR}) + install(FILES stm_alstom.json stm_bombardier.json stm_hitachi.json stm_siemens.json stm_windows.json DMI.bmp DESTINATION ${ETCS_ASSET_DIR}) endif() \ No newline at end of file