Consequences:
- The Start Center is no longer a separate tab in the taskbar and Alt+Tab
window list.
- Start Center and Main Window can no longer appear on different workspaces
in GNOME, and possibly other desktop environments too.
- Fix bugs that allowed user to create scores with no instruments:
- Double-clicking on instrument group no longer enables Next button
- Removing instruments from the top no longer lets you remove them all
- Replace SelectInstrument's TreeWidget too
- Template list is QTreeWidget
- Show template preview
- Move searchbox to be above list
- Create mscore/widgets subdirectory to improve organisation
- New FilterableView class and SearchBox widget to search item views
- Pressing Up or Down key in searchbox controls the tree view
Previously, if user was in edit mode (by double-clicking an element in score), then applying palette elements by double-clicking would be problematic. This would be because Palette::applyPaletteElement() doesn't perform score->startCmd() before applying the element nor a score->endCmd() after applying the element, because it assumes that the score is already in a startCmd.
Exiting edit mode fixes#280830 which was a crash when applying a time signature from palette while in editmode. And fixes another glitch where applying system text from palette while in edit mode.
Turns out that ScoreView::editMode() encompasses more than just plane element edit, so I'm also making sure not inside states for LYRICS_EDIT, HARMONY_FIGBASS_EDIT, and TEXT_EDIT, where it might make sense for user to apply a symbol from a palette by doubleclicking.
Previously, imploding a staff would leave orphaned spanners after the notes they connected to were deleted when moving those notes to the first voice. These orphaned spanners would cause a crash during layout when the Implode command finished.
This is a simple fix to avoid a crash by deleting these orphaned spanners.
An ideal solution would be to somehow reconnect these orphaned spanners to the new version of their original notes after they move to the first 1st voice. But that solution would require a lot more thought to get correct, and would also require special consideration for various corner cases, such as what happens with spanners who have one end connected to notes outside the imploded range but the other end connected to a note inside the range...
Fixes a crash when adding a timesig to a measure that has at least one clef but where not all staves have clef for that measure. Crash was result of a NULL defreference on the first staff that didn't have a clef in that clef segment.
Fix is simple to make sure to test that clef is non-NULL before dereferencing it.