From bc43d243bb8bbb6c5012a057606cbbfe2ece9cbe Mon Sep 17 00:00:00 2001 From: Harley Acheson Date: Sat, 24 Aug 2024 00:28:34 +0200 Subject: [PATCH] UI: SVG Icon ID Names Underscores Not Period In order to recolor icons based on themes, some svg icons have specific ID names. These names are currently of the pattern "blender.some_name". However, although CSS ID names are allowed to contain a period in them, these are problematic as selectors. This is because #tagname.something looks like a combination of ID and class name. Although these can be escaped like #tagname\.something that is a pain. This PR replaces the periods with underscores. Pull Request: https://projects.blender.org/blender/blender/pulls/126709 --- .../icons_svg/blender_logo_large.svg | 2 +- release/datafiles/icons_svg/cancel_large.svg | 2 +- release/datafiles/icons_svg/file_alias.svg | 2 +- release/datafiles/icons_svg/info_large.svg | 2 +- .../datafiles/icons_svg/question_large.svg | 2 +- release/datafiles/icons_svg/record_on.svg | 70 ++++++++++++++++++- release/datafiles/icons_svg/warning_large.svg | 2 +- .../editors/interface/interface_icons.cc | 58 +++++++-------- 8 files changed, 104 insertions(+), 36 deletions(-) diff --git a/release/datafiles/icons_svg/blender_logo_large.svg b/release/datafiles/icons_svg/blender_logo_large.svg index 28cbbd4fc8b..5aa89eba651 100644 --- a/release/datafiles/icons_svg/blender_logo_large.svg +++ b/release/datafiles/icons_svg/blender_logo_large.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/release/datafiles/icons_svg/cancel_large.svg b/release/datafiles/icons_svg/cancel_large.svg index f6114491bc4..8d015987075 100644 --- a/release/datafiles/icons_svg/cancel_large.svg +++ b/release/datafiles/icons_svg/cancel_large.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/release/datafiles/icons_svg/file_alias.svg b/release/datafiles/icons_svg/file_alias.svg index 9caf5b37ba4..29288ef5d26 100644 --- a/release/datafiles/icons_svg/file_alias.svg +++ b/release/datafiles/icons_svg/file_alias.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/release/datafiles/icons_svg/info_large.svg b/release/datafiles/icons_svg/info_large.svg index 117992bc11f..34eb11d791e 100644 --- a/release/datafiles/icons_svg/info_large.svg +++ b/release/datafiles/icons_svg/info_large.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/release/datafiles/icons_svg/question_large.svg b/release/datafiles/icons_svg/question_large.svg index 51bfca7587b..365bcab8485 100644 --- a/release/datafiles/icons_svg/question_large.svg +++ b/release/datafiles/icons_svg/question_large.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/release/datafiles/icons_svg/record_on.svg b/release/datafiles/icons_svg/record_on.svg index 95a19dc5e99..50fc000f481 100644 --- a/release/datafiles/icons_svg/record_on.svg +++ b/release/datafiles/icons_svg/record_on.svg @@ -1 +1,69 @@ - \ No newline at end of file + + + + + + + + + + + + + + + diff --git a/release/datafiles/icons_svg/warning_large.svg b/release/datafiles/icons_svg/warning_large.svg index 95f6250817c..d8b18b4c333 100644 --- a/release/datafiles/icons_svg/warning_large.svg +++ b/release/datafiles/icons_svg/warning_large.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/source/blender/editors/interface/interface_icons.cc b/source/blender/editors/interface/interface_icons.cc index e216fa920e8..25d2ec7e914 100644 --- a/source/blender/editors/interface/interface_icons.cc +++ b/source/blender/editors/interface/interface_icons.cc @@ -1323,34 +1323,34 @@ static void svg_replace_color_attributes(std::string &svg, int colorid = TH_UNDEFINED; int spacetype = SPACE_TYPE_ANY; } items[] = { - {"blender.white", white}, - {"blender.black", black}, - {"blender.logo_orange", logo_orange}, - {"blender.logo_blue", logo_blue}, - {"blender.selected", btheme->tui.wcol_regular.inner}, - {"blender.mesh_selected", btheme->space_view3d.vertex_select}, - {"blender.back", nullptr, TH_BACK}, - {"blender.text", nullptr, TH_TEXT}, - {"blender.text_hi", nullptr, TH_TEXT_HI}, - {"blender.red_alert", nullptr, TH_REDALERT}, - {"blender.error", nullptr, TH_INFO_ERROR, SPACE_INFO}, - {"blender.warning", nullptr, TH_INFO_WARNING, SPACE_INFO}, - {"blender.info", nullptr, TH_INFO_INFO, SPACE_INFO}, - {"blender.scene", nullptr, TH_ICON_SCENE}, - {"blender.collection", nullptr, TH_ICON_COLLECTION}, - {"blender.object", nullptr, TH_ICON_OBJECT}, - {"blender.object_data", nullptr, TH_ICON_OBJECT_DATA}, - {"blender.modifier", nullptr, TH_ICON_MODIFIER}, - {"blender.shading", nullptr, TH_ICON_SHADING}, - {"blender.folder", nullptr, TH_ICON_FOLDER}, - {"blender.fund", nullptr, TH_ICON_FUND}, - {"blender.autokey", nullptr, TH_ICON_AUTOKEY}, - {"blender.tool_add", tool_add}, - {"blender.tool_remove", tool_remove}, - {"blender.tool_select", tool_select}, - {"blender.tool_transform", tool_transform}, - {"blender.tool_white", tool_white}, - {"blender.tool_red", tool_red}, + {"blender_white", white}, + {"blender_black", black}, + {"blender_logo_orange", logo_orange}, + {"blender_logo_blue", logo_blue}, + {"blender_selected", btheme->tui.wcol_regular.inner}, + {"blender_mesh_selected", btheme->space_view3d.vertex_select}, + {"blender_back", nullptr, TH_BACK}, + {"blender_text", nullptr, TH_TEXT}, + {"blender_text_hi", nullptr, TH_TEXT_HI}, + {"blender_red_alert", nullptr, TH_REDALERT}, + {"blender_error", nullptr, TH_INFO_ERROR, SPACE_INFO}, + {"blender_warning", nullptr, TH_INFO_WARNING, SPACE_INFO}, + {"blender_info", nullptr, TH_INFO_INFO, SPACE_INFO}, + {"blender_scene", nullptr, TH_ICON_SCENE}, + {"blender_collection", nullptr, TH_ICON_COLLECTION}, + {"blender_object", nullptr, TH_ICON_OBJECT}, + {"blender_object_data", nullptr, TH_ICON_OBJECT_DATA}, + {"blender_modifier", nullptr, TH_ICON_MODIFIER}, + {"blender_shading", nullptr, TH_ICON_SHADING}, + {"blender_folder", nullptr, TH_ICON_FOLDER}, + {"blender_fund", nullptr, TH_ICON_FUND}, + {"blender_autokey", nullptr, TH_ICON_AUTOKEY}, + {"blender_tool_add", tool_add}, + {"blender_tool_remove", tool_remove}, + {"blender_tool_select", tool_select}, + {"blender_tool_transform", tool_transform}, + {"blender_tool_white", tool_white}, + {"blender_tool_red", tool_red}, }; for (const ColorItem &item : items) { @@ -1416,7 +1416,7 @@ static void icon_source_edit_cb(std::string &svg) while (1) { /* Look for a blender id, quick exit if not found. */ constexpr static blender::StringRef key = "id=\""; - const size_t id_start = svg.find(key + "blender.", g_start); + const size_t id_start = svg.find(key + "blender_", g_start); if (id_start == std::string::npos) { return; }