From bc97638ce450eb2f1377d85618ee991dec74ca43 Mon Sep 17 00:00:00 2001 From: codereader Date: Sat, 30 Jul 2022 05:46:26 +0200 Subject: [PATCH] #6021: Add default SortModel implementation to ThreadedDeclarationTreePopulator --- .../dataview/ThreadedDeclarationTreePopulator.h | 6 ++++++ radiant/ui/animationpreview/MD5AnimationViewer.cpp | 13 ++----------- radiant/ui/common/ShaderSelector.cpp | 7 ------- radiant/ui/common/SoundChooser.cpp | 12 +----------- radiant/ui/eclasstree/EClassTreeBuilder.cpp | 8 +------- radiant/ui/eclasstree/EClassTreeBuilder.h | 3 --- 6 files changed, 10 insertions(+), 39 deletions(-) diff --git a/libs/wxutil/dataview/ThreadedDeclarationTreePopulator.h b/libs/wxutil/dataview/ThreadedDeclarationTreePopulator.h index 8ba5afc817..bce8d16897 100644 --- a/libs/wxutil/dataview/ThreadedDeclarationTreePopulator.h +++ b/libs/wxutil/dataview/ThreadedDeclarationTreePopulator.h @@ -57,6 +57,12 @@ class ThreadedDeclarationTreePopulator : } protected: + // Default sorting behaviour is to sort the tree alphabetically with folders on top + void SortModel(const TreeModel::Ptr& model) override + { + model->SortModelFoldersFirst(_columns.leafName, _columns.isFolder); + } + /** * Populates the given row with values matching for a certain declaration or folder * diff --git a/radiant/ui/animationpreview/MD5AnimationViewer.cpp b/radiant/ui/animationpreview/MD5AnimationViewer.cpp index 042cefad15..8f5936b289 100644 --- a/radiant/ui/animationpreview/MD5AnimationViewer.cpp +++ b/radiant/ui/animationpreview/MD5AnimationViewer.cpp @@ -21,16 +21,12 @@ namespace ui class ThreadedModelDefLoader final : public wxutil::ThreadedDeclarationTreePopulator { -private: - const wxutil::DeclarationTreeView::Columns& _columns; - public: ThreadedModelDefLoader(const wxutil::DeclarationTreeView::Columns& columns) : - ThreadedDeclarationTreePopulator(decl::Type::ModelDef, columns, "model16green.png"), - _columns(columns) + ThreadedDeclarationTreePopulator(decl::Type::ModelDef, columns, "model16green.png") {} - ~ThreadedModelDefLoader() + ~ThreadedModelDefLoader() override { EnsureStopped(); } @@ -49,11 +45,6 @@ class ThreadedModelDefLoader final : });; }); } - - void SortModel(const wxutil::TreeModel::Ptr& model) override - { - model->SortModelFoldersFirst(_columns.leafName, _columns.isFolder); - } }; MD5AnimationViewer::MD5AnimationViewer(wxWindow* parent, RunMode runMode) : diff --git a/radiant/ui/common/ShaderSelector.cpp b/radiant/ui/common/ShaderSelector.cpp index a2fd85845a..9de0d8096d 100644 --- a/radiant/ui/common/ShaderSelector.cpp +++ b/radiant/ui/common/ShaderSelector.cpp @@ -40,13 +40,11 @@ class ThreadedMaterialLoader final : public wxutil::ThreadedDeclarationTreePopulator { private: - const wxutil::DeclarationTreeView::Columns& _columns; const ShaderSelector::PrefixList& _prefixes; public: ThreadedMaterialLoader(const wxutil::DeclarationTreeView::Columns& columns, const ShaderSelector::PrefixList& prefixes) : ThreadedDeclarationTreePopulator(decl::Type::Material, columns, TEXTURE_ICON), - _columns(columns), _prefixes(prefixes) {} @@ -76,11 +74,6 @@ class ThreadedMaterialLoader final : } }); } - - void SortModel(const wxutil::TreeModel::Ptr& model) override - { - model->SortModelFoldersFirst(_columns.leafName, _columns.isFolder); - } }; // Constructor creates elements diff --git a/radiant/ui/common/SoundChooser.cpp b/radiant/ui/common/SoundChooser.cpp index 7ed3a8a5a9..5926bb5c93 100644 --- a/radiant/ui/common/SoundChooser.cpp +++ b/radiant/ui/common/SoundChooser.cpp @@ -34,13 +34,9 @@ namespace class ThreadedSoundShaderLoader : public wxutil::ThreadedDeclarationTreePopulator { -private: - const wxutil::DeclarationTreeView::Columns& _columns; - public: ThreadedSoundShaderLoader(const wxutil::DeclarationTreeView::Columns& columns) : - ThreadedDeclarationTreePopulator(decl::Type::SoundShader, columns, SHADER_ICON), - _columns(columns) + ThreadedDeclarationTreePopulator(decl::Type::SoundShader, columns, SHADER_ICON) {} ~ThreadedSoundShaderLoader() @@ -79,12 +75,6 @@ class ThreadedSoundShaderLoader : }); }); } - - void SortModel(const wxutil::TreeModel::Ptr& model) override - { - // angua: Ensure sound shaders are sorted before giving them to the tree view - model->SortModelFoldersFirst(_columns.iconAndName, _columns.isFolder); - } }; // Constructor diff --git a/radiant/ui/eclasstree/EClassTreeBuilder.cpp b/radiant/ui/eclasstree/EClassTreeBuilder.cpp index 28dabfdf41..38e67d67bb 100644 --- a/radiant/ui/eclasstree/EClassTreeBuilder.cpp +++ b/radiant/ui/eclasstree/EClassTreeBuilder.cpp @@ -14,8 +14,7 @@ namespace } EClassTreeBuilder::EClassTreeBuilder(const wxutil::DeclarationTreeView::Columns& columns) : - ThreadedDeclarationTreePopulator(decl::Type::EntityDef, columns, ENTITY_ICON), - _columns(columns) + ThreadedDeclarationTreePopulator(decl::Type::EntityDef, columns, ENTITY_ICON) {} EClassTreeBuilder::~EClassTreeBuilder() @@ -53,11 +52,6 @@ void EClassTreeBuilder::PopulateModel(const wxutil::TreeModel::Ptr& model) ThrowIfCancellationRequested(); } -void EClassTreeBuilder::SortModel(const wxutil::TreeModel::Ptr& model) -{ - model->SortModelByColumn(_columns.leafName); -} - std::string EClassTreeBuilder::GetInheritancePathRecursively(IEntityClass& eclass) { std::string returnValue; diff --git a/radiant/ui/eclasstree/EClassTreeBuilder.h b/radiant/ui/eclasstree/EClassTreeBuilder.h index 1134f9342e..3575491b00 100644 --- a/radiant/ui/eclasstree/EClassTreeBuilder.h +++ b/radiant/ui/eclasstree/EClassTreeBuilder.h @@ -19,8 +19,6 @@ class EClassTreeBuilder final : public wxutil::ThreadedDeclarationTreePopulator { private: - const wxutil::DeclarationTreeView::Columns& _columns; - wxIcon _entityIcon; std::unique_ptr _treePopulator; @@ -32,7 +30,6 @@ class EClassTreeBuilder final : protected: void PopulateModel(const wxutil::TreeModel::Ptr& model) override; - void SortModel(const wxutil::TreeModel::Ptr& model) override; private: // Returns an inheritance path, like this: "moveables/swords/"