From a2e190e2cb18df962243de6f73e283d7f8603909 Mon Sep 17 00:00:00 2001 From: codereader Date: Mon, 20 Apr 2020 12:14:57 +0200 Subject: [PATCH] #5219: Add option to texture browser to show "Other Materials", whose material names don't start with the usual "textures/" prefix --- install/user.xml | 1 + radiant/ui/texturebrowser/TextureBrowser.cpp | 5 ++++- radiant/ui/texturebrowser/TextureBrowser.h | 4 ++++ radiant/ui/texturebrowser/TextureBrowserManager.cpp | 1 + 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/install/user.xml b/install/user.xml index a9a2363a4e..e66c482d4f 100644 --- a/install/user.xml +++ b/install/user.xml @@ -91,6 +91,7 @@ + diff --git a/radiant/ui/texturebrowser/TextureBrowser.cpp b/radiant/ui/texturebrowser/TextureBrowser.cpp index 85a64e59fd..a54de7b146 100644 --- a/radiant/ui/texturebrowser/TextureBrowser.cpp +++ b/radiant/ui/texturebrowser/TextureBrowser.cpp @@ -220,11 +220,13 @@ TextureBrowser::TextureBrowser(wxWindow* parent) : _showTextureFilter(registry::getValue(RKEY_TEXTURE_SHOW_FILTER)), _showTextureScrollbar(registry::getValue(RKEY_TEXTURE_SHOW_SCROLLBAR)), _hideUnused(registry::getValue(RKEY_TEXTURES_HIDE_UNUSED)), + _showOtherMaterials(registry::getValue(RKEY_TEXTURES_SHOW_OTHER_MATERIALS)), _uniformTextureSize(registry::getValue(RKEY_TEXTURE_UNIFORM_SIZE)), _maxNameLength(registry::getValue(RKEY_TEXTURE_MAX_NAME_LENGTH)), _updateNeeded(true) { observeKey(RKEY_TEXTURES_HIDE_UNUSED); + observeKey(RKEY_TEXTURES_SHOW_OTHER_MATERIALS); observeKey(RKEY_TEXTURE_UNIFORM_SIZE); observeKey(RKEY_TEXTURE_SHOW_SCROLLBAR); observeKey(RKEY_TEXTURE_MOUSE_WHEEL_INCR); @@ -386,6 +388,7 @@ void TextureBrowser::filterChanged() void TextureBrowser::keyChanged() { _hideUnused = registry::getValue(RKEY_TEXTURES_HIDE_UNUSED); + _showOtherMaterials = registry::getValue(RKEY_TEXTURES_SHOW_OTHER_MATERIALS); _showTextureFilter = registry::getValue(RKEY_TEXTURE_SHOW_FILTER); _uniformTextureSize = registry::getValue(RKEY_TEXTURE_UNIFORM_SIZE); _showTextureScrollbar = registry::getValue(RKEY_TEXTURE_SHOW_SCROLLBAR); @@ -519,7 +522,7 @@ bool TextureBrowser::materialIsVisible(const MaterialPtr& material) return false; } - if (!string::istarts_with(material->getName(), GlobalTexturePrefix_get())) + if (!_showOtherMaterials && !string::istarts_with(material->getName(), GlobalTexturePrefix_get())) { return false; } diff --git a/radiant/ui/texturebrowser/TextureBrowser.h b/radiant/ui/texturebrowser/TextureBrowser.h index 8875f9a4cb..258c9aca0e 100644 --- a/radiant/ui/texturebrowser/TextureBrowser.h +++ b/radiant/ui/texturebrowser/TextureBrowser.h @@ -26,6 +26,7 @@ namespace ui namespace { const char* const RKEY_TEXTURES_HIDE_UNUSED = "user/ui/textures/browser/hideUnused"; + const char* const RKEY_TEXTURES_SHOW_OTHER_MATERIALS = "user/ui/textures/browser/showOtherMaterials"; const char* const RKEY_TEXTURE_UNIFORM_SIZE = "user/ui/textures/browser/uniformSize"; const char* const RKEY_TEXTURE_SHOW_SCROLLBAR = "user/ui/textures/browser/showScrollBar"; const char* const RKEY_TEXTURE_MOUSE_WHEEL_INCR = "user/ui/textures/browser/mouseWheelIncrement"; @@ -103,6 +104,9 @@ class TextureBrowser : // if true, the texture window will only display in-use shaders // if false, all the shaders in memory are displayed bool _hideUnused; + + // Whether materials not starting with "textures/" should be visible + bool _showOtherMaterials; // The uniform size (in pixels) that textures are resized to when m_resizeTextures is true. int _uniformTextureSize; diff --git a/radiant/ui/texturebrowser/TextureBrowserManager.cpp b/radiant/ui/texturebrowser/TextureBrowserManager.cpp index 6628b3d553..91288e14e8 100644 --- a/radiant/ui/texturebrowser/TextureBrowserManager.cpp +++ b/radiant/ui/texturebrowser/TextureBrowserManager.cpp @@ -66,6 +66,7 @@ void TextureBrowserManager::registerPreferencePage() page.appendSpinner(_("Max shadername length"), RKEY_TEXTURE_MAX_NAME_LENGTH, 4, 100, 1); page.appendCheckBox(_("Show Texture Filter"), RKEY_TEXTURE_SHOW_FILTER); + page.appendCheckBox(_("Show \"Other Materials\""), RKEY_TEXTURES_SHOW_OTHER_MATERIALS); } // Static command target