Commit Graph
15 Commits
Author SHA1 Message Date
Goober5000 b9e43f2907 when sorting by fuzzy cost, use a stable sort 2026-07-11 21:02:36 -04:00
Mike Nelson 4d8538e5cc Qtfred sexp tree refactor (#7301)
* long project will be long

* add shared foundation files

* unify some shared types across both editors

* sexptreemodel framework

* move opf functions to the model

* move shared functions into the model

* move variable/container stuff to the model

* sexptreeactions and ui interface

* wire the model into the ui

* move some shared logic to the model

* move more methods to the model

* move clipboard to model

* create new right click menu model

* begin connecting the new right click menu

* wire up the new right click menu in fred

* wire up the new right click menu in qtfred

* move help text and visuals to model

* move menu option enable disable to model

* wire up sexp_tree to the model

* rename sexp_tree files to sexp_tree_ui

* fix build errors

* fix warning

* remove all opf forwarders

* remove some forwarder methods

* connect qtfred events editor directly to model

* wite plan for unifying tree types

* replace legacy m_mode with treeflags

* fix qtfred campaign dialog

* fix qtfred ship/wing dialog trees

* build error

* documentation

* more documentation

* even more documentation

* move more opf functions to opf file

* clean up context menu function

* move default argument to opf file

* build errors

* fix qtfred dialogs and annoations

* new shared annotations model

* sexp_tree_ui to sexp_tree_view

* documentation pass

* document annotations model

* delete the plan

* move event annotations to the new model

* generic cleanup

* remove some old defines

* cleanup includes

* more cleanup

* parenthesis

* more parenthesis

* variable collisions

* too many parenthesis this time

* clang modernization

* variable names again

* more clang and assertions

* static cast

* clang again

* fix some bugs and issues

* Refactor sexp tree action duplication into SexpTreeActions

* fix a few more minor issues

* avoid clang false positive

* rebase tweaks

* fix annotations issue

* fix typo and two small bugs claude found

* fix event editor tree widget loading

* fix ship and wing sexp tree editors in qtfred

* fix qtfred briefing and debriefing trees

* fix a regression Claude found

* address feedback

* fix annotations for root items in qtfred by copying fred's method

* address feedback

* rescope variables

* clang
2026-07-04 02:12:34 +02:00
Goober5000 5b4a4dd5cc filtered SEXP operator speedup
Improve the speed of the SEXP filter by not redrawing the combo box until the box is fully populated.
2025-10-25 13:11:55 -04:00
Goober5000 97a06bda71 allow stringcost to be case-insensitive
Allow `stringcost()` to use a specified function to check equality, and provide both case-sensitive and case-insensitive sample functions.  Use case-insensitive checks for sexp operator lookup.
2025-02-07 00:39:50 -05:00
Goober5000 720d938a3a address feedback 2023-06-02 16:26:25 -04:00
Goober5000 8fc28b01ea work with operator indexes to reduce back-and-forth between const and index 2023-05-30 15:41:24 -04:00
Goober5000 278355cac0 select text by default, and implement escape 2023-05-30 15:41:22 -04:00
Goober5000 9bd10e55c6 sort operators by cost when filtering, and use the same best-match strategy in sexp_match_closest_operator 2023-05-30 15:41:17 -04:00
Goober5000 a06573b15e implement type-to-filter and enter-to-confirm 2023-05-29 00:31:27 -04:00
Goober5000 4ff90d3716 move some utilities to a better location, plus a slight refactor 2023-05-28 22:47:38 -04:00
Goober5000 eb959cd0bf make the tooltip explain why an operator can't be selected 2023-05-28 22:42:23 -04:00
Goober5000 46dee9ff0c use selected operators, and prevent disabled operators from being confirmed 2023-05-28 22:42:23 -04:00
Goober5000 09ae954d8e disable operators with incompatible return types 2023-05-28 22:42:23 -04:00
Goober5000 4c43f22a7a multiline tooltips work 2023-05-28 22:42:22 -04:00
Goober5000 9967ed5150 add a new MFC control for the operators 2023-05-28 22:42:22 -04:00