Workspace Expansion Questions
I've been working on expanding the current workspace functionality to include saving toolbars, menubar, preferences, and now window setup. This topic has to do with the window setup.
First, what I am doing:
I am taking all the windows that can appear on the screen at any one time and saving their state for that workspace. This means, if you leave master palette open on the left side of your screen and save the workspace, it will appear everytime you open the workspace. This holds true for every single window, be it dockable, standalone, or just the status bar at the bottom.
So, what about Basic or Advanced?
The current plan with these is to create a default window setup for these two. You can still open and close different windows, but everytime you come back to Basic or Advnaced, you will get the default window setup. Basically, there is no more persisting customization of Basic or Advanced.
The questions:
What do you think about these changes?
Do you think having every single window saved is a good thing or should only be a subset (e.g. docked widgets only like the palettes, inspector, etc.)?
Should the builtin workspaces have their respective predefined window setup or should changes persist like they do currently?
Should workspaces be saved automatically like they are now, or should the user get to choose when it is saved?
Comments
To me the last question is most important. Currently, I assume a workspace is saved when you exit the program, or when you switch a different one. And since the workspace is basically just the palette contents, and that doesn't change often, this makes sense. Probably if you make a change to your palette, you full intend that change to "stick". But this isn't as obviously true for the sub-windows (Inspector, Selection Filter, Play Panel, etc). I definitely see people wanting different workspaces to have different window configurations, so being able to save window state to the workspace is great. But I also get the sense that people will open and close windows temporarily while working, and won't necessarily want the last set of windows they happened to have open keep getting saved. So they might prefer a more explicit "save window state" command, so they can say exactly which snapshot they want preserved, rather than have it always update to the current configuration every time they close the program.
But I think it's OK to just handle this the same way as everything else for now, then once it's implemented, we play with it and see how it feels. No sense spending time solving a problem that might not actually exist.
It occurs to me that while I'm often opening and closing these sub-windows, one thing I don't do often is change their size or position, especially with respect to docking. So it wouldn't bother me to find the Selection Filter closed when I restart MuseScore if I happened to have it closed last time, as long as when I reopen the Selection Filter, it appears the same size and position I had left it. And that is indeed how it currently works.