Multiple Selections in the Project Outline

For quite some time, users have been requesting the ability to select and move multiple files within the Project Outline.  This limitation has been present In Simply Fortran from the beginning because Simply Fortran is using Windows’ TreeView control to display the project tree.  The single selection limitation is part of this control itself.

Probably the oddest detail of this restriction is that it appears Microsoft, at some point, was working towards allowing multiple selections.  If you examine the allowed styles, there is a TVS_EX_MULTISELECT style with the not-so-helpful description “Not supported.  Do not use.”  While some might be instantly annoyed with their decision not to allow such operations, there are valid reasons for doing so.

Trying to work out how multiple selections should work becomes complicated almost instantly when thinking about the tree paradigm.  What nodes should be allowed to be selected together?  Can a parent and its children all be selected?  What if you select a parent? Would that imply that its children are selected?  How would Control-A work?  There isn’t a particularly good way to make multiselection work in all these cases, and it probably helps to explain why Microsoft simply chose not to allow it.

To address users’ requests, we’re moving ahead with providing mutliple selections using the mCtrl library.  Simply Fortran already uses a number of mCtrl’s components throughout the development environment, so replacing the Project Outline with mCtrl’s TreeList shouldn’t be overly painful.  In fact, most of the work is already complete.  However, it doesn’t yet support multiple selections.

You can follow progress of adding multiple selections to the TreeList over at GitHub.  Version 2.5 of Simply Fortran should finally allow selecting multiple files and/or folders, along as they all share the same immediate parent.  This selection restriction seems to be a reasonable compromise in order to fit the paradigm.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s