Commit Graph

305 Commits

Author SHA1 Message Date
Alexander Montag e6e1addbcb
Optimize TreeSearch::_filter_tree for performance 2024-09-30 19:23:49 +02:00
Alexander Montag 8d781da1a6
Replace c-strings with LW_NAME for signals in TreeSearch(Panel) 2024-09-30 19:08:25 +02:00
Alexander Montag 683834f58e
Drop `TreeSearchPanel::set_text`. 2024-09-30 14:22:23 +00:00
Alexander Montag 10c8f58ca9
Remember SearchInfo for each tab. Focus tree when *user* closes SearchPanel 2024-09-30 16:13:36 +02:00
Alexander Montag 20be87904a
Focus tree when search panel is closed 2024-09-29 21:47:38 +02:00
Alexander Montag e8de3adc50
Improve formatting of TreeSearch 2024-09-29 16:43:48 +00:00
Alexander Montag f7d546fc3c
Add one method-const qualifier to TreeSearchPanel 2024-09-29 16:26:18 +00:00
Alexander Montag 585d9663d6
Fix optimization through which the parent count is not drawn 2024-09-29 18:12:18 +02:00
Alexander Montag 5a66160bce
Add `const` qualifiers where possible 2024-09-29 15:57:13 +00:00
Alexander Montag 6200f61162
Fix descendent counter in TreeSearch 2024-09-29 16:48:57 +02:00
monxa e68e0236e9
Improve performance for TreeSearch (#1)
* Improve TreeSearch performance.

Experimental, hence this is on a different branch.

This commit vastly improves performance by not updating the tree
for search mask changes.

Relates to: https://github.com/limbonaut/limboai/pull/229

* Fix SearchTree overdraw after performance optimization

* Manage Performance optimizations: TreeSearch no. 2
- Carefully manage callable_cache
- Only clear filter when previously filtered
- Reintroduce sorting for ordered_tree_items

This commit addresses performance issues in TreeSearch and fixes
a critical bug where ordered_tree_items was not being sorted.
The bug was introduced during a merge with the main feature branch.

* Use queue_redraw as much as possible for Tree updates.

* Fix TreeSearch after performance considerations
2024-09-29 14:50:07 +02:00
Alexander Montag cb163ebc38 Improve readability of TreeSearch 2024-09-29 00:08:24 +00:00
Alexander Montag c909582480 TreeSearch(Panel): Align ordering .h <-> .cpp 2024-09-29 02:01:23 +02:00
Alexander Montag 68514e2e13 Add missing `break` statement - TreeSearch::notification 2024-09-28 20:04:43 +02:00
Alexander Montag acb2bcc901 Use LW_NAME in TreeSearch where appropriate 2024-09-28 17:45:17 +00:00
Alexander Montag a31b8b7520 Follow up: Move BUTTON_SETICON to THEME_CHANGED 2024-09-28 17:31:20 +00:00
Alexander Montag 62460496e4 Address set_text in THEME_CHANGED, address inconsistency 2024-09-28 19:11:59 +02:00
Alexander Montag cd85e6dd30 Initialize controls in constructor, bind emit callbacks without wrapper in TreeSearchPanel 2024-09-28 16:45:11 +00:00
Alexander Montag 3b73f24f33 Make TreeSearchMode member of TreeSearch 2024-09-28 17:58:42 +02:00
Alexander Montag 329e90dfc6 Rename TreeSearch::notify_item_edited
Also: Run clang-format. Remove comment.
2024-09-28 17:46:29 +02:00
Alexander Montag 84b2a60521 Adjust tooltips + misc-menu entry 2024-09-28 17:29:45 +02:00
Alexander Montag cc8f099d82 Improve TreeSearch performance; part1 2024-09-28 12:08:27 +00:00
Alexander Montag 380f80c2b3 Fix Editor scaling for TreeSearch 2024-09-27 18:33:14 +02:00
Alexander Montag ffe344d166 Make TreeSearch independent, remove unnecessary draw bind 2024-09-27 16:07:42 +00:00
Alexander Montag 9a1641e8ab Move TreeSearch::update_tree in TaskTree from update_tree
Catches all cases where the tree is modified. Also those, where for example the tab is switched.
2024-09-27 15:24:14 +00:00
Alexander Montag 47706e9480 Make TreeSearch::search_panel private and fix nulltpr 2024-09-27 17:08:04 +02:00
Alexander Montag 0fc11bf05b Make TreeSearch::_select_item consistent 2024-09-26 15:36:59 +00:00
Alexander Montag af15dde4c8 Simplify signals of TreeSearchPanel 2024-09-26 07:53:02 +02:00
Alexander Montag 1145ce0252 Clean up TreeSearch: Consistent p_params, -Destructor 2024-09-26 05:28:59 +00:00
Alexander Montag 8d29f16963 Fix filtering: Allow matching for root as ancestor 2024-09-25 19:47:28 +02:00
Alexander Montag b8259c6ee7 Address memory leak 2024-09-25 19:47:28 +02:00
Alexander Montag aed8892760 Fix regression from 62f8e: Select next item 2024-09-25 19:47:28 +02:00
Alexander Montag 8c323956e3 Unify highlight and filter, simplify ui 2024-09-25 19:47:28 +02:00
Alexander Montag 18a6bbeae6 Implement filtering for TreeSearch 2024-09-25 19:47:28 +02:00
Alexander Montag b4974bffd2 Run clang-format 2024-09-25 19:47:28 +02:00
Alexander Montag f523af2d13 Make TreeSearchPanel HFlowContainer 2024-09-25 19:47:28 +02:00
Alexander Montag a80b737319 Implement tree search: highlighting 2024-09-25 19:47:28 +02:00
Alexander Montag 7c4a462a69 Add ui for Tree search 2024-09-25 19:47:28 +02:00
yds db7c990f51 Remember loaded BehaviorTrees of last session 2024-09-21 16:23:13 -03:00
Alexander Montag c2130a7b2f Fix duplicate entries in Misc->layout
Fixes #218
2024-09-17 02:16:47 +02:00
Serhii Snitsaruk 50e9e570dd
Fix loop variables used as copy 2024-09-15 13:32:58 +02:00
yds 4df6647a75 Improve multiple drag and drop 2024-09-14 11:22:52 -03:00
yds 1742018696 Preserve selection after drop 2024-09-13 09:04:18 -03:00
yds a460c7898b Add drag preview 2024-09-13 09:04:18 -03:00
yds 8ee3688da2 Implement task multiple selection and drag and drop 2024-09-13 09:04:18 -03:00
Alexander Montag ad11f401b1 Generalize EDITOR_DEF macro to fix potential editor setting issues
This commit provides a generalized solution to ensure editor settings are
properly initialized and available in both module and GDExtension versions.
While #204 fixed the specific issue with 'limbo_ai/editor/layout', this change
aims to prevent similar problems for all editor settings.

In particular, `limbo_ai/editor/prefer_online_documentation` was also not
available.

Changes:
- Updated EDITOR_DEF macro to handle both module and GDExtension cases
- Remove special case for `limbo_ai/editor/layout` in
  LimboAiEditorPlugin from earlier fix.
2024-09-03 16:37:54 +02:00
Alexander Montag a5517313d2 Fix editor setting initialization for GDExtensions
This commit addresses an issue where editor settings were not properly
initialized when using GDExtensions. The problem manifested as an error
message: "Condition '!props.has(pinfo.name)' is true" when trying to
access the "limbo_ai/editor/layout" setting.

Changes:
- Replace Dictionary with PropertyInfo for adding property information
- Add a safeguard to ensure the setting is explicitly set if not present
2024-09-02 10:27:22 +02:00
Serhii Snitsaruk 9da16a1e0f
Clean up unused string names 2024-08-21 20:04:35 +02:00
Serhii Snitsaruk 472f360cf9
Switch to contextual behavior tree upon undo action 2024-08-21 17:30:30 +02:00
Serhii Snitsaruk c94ec7613d
Add hack to associate undo-redo actions with global history 2024-08-21 16:40:02 +02:00