diff options
author | Julian Eisel <julian@blender.org> | 2022-07-18 17:51:57 +0300 |
---|---|---|
committer | Julian Eisel <julian@blender.org> | 2022-07-19 17:31:23 +0300 |
commit | 348ec37f52452614cb26baa8be40a161e1446b15 (patch) | |
tree | 0aac15385fab65929f8243702f974451aa5087b9 /source/blender/editors/interface | |
parent | 2f834bfc14824c224f99ab7d9a9e561fa86aef6b (diff) |
UI: Add AbstractViewItem base class
No user visible changes expected.
Similar to rBc355be6faeac, but for view items now instead of the view.
Not much of the item code is ported to use it yet, it's actually a bit
tricky for the most part. But just introducing the base class already
allows me to start unifying the view item buttons (`uiButTreeRow` and
`uiButGridTile`). This would be a nice improvement.
Diffstat (limited to 'source/blender/editors/interface')
-rw-r--r-- | source/blender/editors/interface/CMakeLists.txt | 1 | ||||
-rw-r--r-- | source/blender/editors/interface/abstract_view_item.cc | 22 | ||||
-rw-r--r-- | source/blender/editors/interface/grid_view.cc | 5 | ||||
-rw-r--r-- | source/blender/editors/interface/tree_view.cc | 10 |
4 files changed, 29 insertions, 9 deletions
diff --git a/source/blender/editors/interface/CMakeLists.txt b/source/blender/editors/interface/CMakeLists.txt index 1bdec57ac59..c6c9f1f80c8 100644 --- a/source/blender/editors/interface/CMakeLists.txt +++ b/source/blender/editors/interface/CMakeLists.txt @@ -26,6 +26,7 @@ set(INC set(SRC abstract_view.cc + abstract_view_item.cc grid_view.cc interface.cc interface_align.c diff --git a/source/blender/editors/interface/abstract_view_item.cc b/source/blender/editors/interface/abstract_view_item.cc new file mode 100644 index 00000000000..fc71dbe8b95 --- /dev/null +++ b/source/blender/editors/interface/abstract_view_item.cc @@ -0,0 +1,22 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +/** \file + * \ingroup edinterface + */ + +#include "UI_abstract_view.hh" + +namespace blender::ui { + +/* ---------------------------------------------------------------------- */ +/** \name View Reconstruction + * \{ */ + +void AbstractViewItem::update_from_old(const AbstractViewItem &old) +{ + is_active_ = old.is_active_; +} + +/** \} */ + +} // namespace blender::ui diff --git a/source/blender/editors/interface/grid_view.cc b/source/blender/editors/interface/grid_view.cc index 19a2326fba1..362642b0846 100644 --- a/source/blender/editors/interface/grid_view.cc +++ b/source/blender/editors/interface/grid_view.cc @@ -158,11 +158,6 @@ void AbstractGridViewItem::change_state_delayed() } } -void AbstractGridViewItem::update_from_old(const AbstractGridViewItem &old) -{ - is_active_ = old.is_active_; -} - void AbstractGridViewItem::activate() { BLI_assert_msg(get_view().is_reconstructed(), diff --git a/source/blender/editors/interface/tree_view.cc b/source/blender/editors/interface/tree_view.cc index d29cf367e59..ec1140e8efb 100644 --- a/source/blender/editors/interface/tree_view.cc +++ b/source/blender/editors/interface/tree_view.cc @@ -339,11 +339,13 @@ void AbstractTreeViewItem::build_context_menu(bContext & /*C*/, uiLayout & /*col /* No context menu by default. */ } -void AbstractTreeViewItem::update_from_old(const AbstractTreeViewItem &old) +void AbstractTreeViewItem::update_from_old(const AbstractViewItem &old) { - is_open_ = old.is_open_; - is_active_ = old.is_active_; - is_renaming_ = old.is_renaming_; + AbstractViewItem::update_from_old(old); + + const AbstractTreeViewItem &old_tree_item = dynamic_cast<const AbstractTreeViewItem &>(old); + is_open_ = old_tree_item.is_open_; + is_renaming_ = old_tree_item.is_renaming_; } bool AbstractTreeViewItem::matches(const AbstractTreeViewItem &other) const |