Skip to content

Qtfred sexp tree refactor#7301

Open
MjnMixael wants to merge 62 commits intoscp-fs2open:masterfrom
MjnMixael:qtfred-sexp-tree-refactor
Open

Qtfred sexp tree refactor#7301
MjnMixael wants to merge 62 commits intoscp-fs2open:masterfrom
MjnMixael:qtfred-sexp-tree-refactor

Conversation

@MjnMixael
Copy link
Contributor

This is the long-promised sexp_tree refactor. The main goal was to move all logic out of FRED's sexp_tree.cpp into a model that could be shared between both FRED and QtFRED. This would not only simplify how much duplicate maintenance we have to do but would also open up sexp editing to new kinds of UIs layered on top (such as the graph editor as requested in #4809 .

The model ended up being split into 4 files: the main sexp tree model, an actions helper, an OPF helper, and an Event Annotations model. While reviewing it may be helpful to start with the main model, then actions and opf, then events. Then with that knowledge take a look at the old sexp_tree files (renamed to sexp_tree_view).

I'm making builds of FRED available to mission designers for testing as well while the review process gets under way.

Because of how intertwined the logic and UI was in sexp_tree I did not see an easy way to split this up into manageable pieces. I'm so sorry.

Fixes #6982

@MjnMixael MjnMixael added this to the Release 26.0 milestone Mar 20, 2026
@MjnMixael MjnMixael added the qtfred A feature or issue related to qtFred. label Mar 20, 2026
@github-project-automation github-project-automation bot moved this to Work In Progress (PRs) in qtFRED2 Mar 20, 2026
@MjnMixael MjnMixael mentioned this pull request Mar 20, 2026
@MjnMixael MjnMixael force-pushed the qtfred-sexp-tree-refactor branch from 82e332d to ec76cc1 Compare March 24, 2026 05:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

qtfred A feature or issue related to qtFred.

Projects

Status: Work In Progress (PRs)

Development

Successfully merging this pull request may close these issues.

QtFRED Sexp_tree widget needs refactoring

1 participant