I think a lot of function calls of mainwindow are there to facilitate undoability, when they could be handled in level view. That is from a time, when the main window held the level info exclusively, which is not true anymore.
So see what functionality can be put into level view, but also check, if there is a way for the many responsibilities of level view to be modularized. Not sure, if necessary, but I like small classes.
Since all possible changes are implemented using the undo command pattern, this has basically been achieved. Most are still triggered from the main window, but that's because most of the input lands there.
I think a lot of function calls of mainwindow are there to facilitate undoability, when they could be handled in level view. That is from a time, when the main window held the level info exclusively, which is not true anymore.
So see what functionality can be put into level view, but also check, if there is a way for the many responsibilities of level view to be modularized. Not sure, if necessary, but I like small classes.