(to allow aligning with firmware compile option)
* feat(cpn): External module form factor set in Radio Profile to allow aligning with firmware compile option
* Note tweak
* Add preference option to Companion to disable the 'Cannot open joystick, joystick disabled' popup warning when starting the simulator.
* Don't erase joystick settings if user opens preferences dialog while joystick is not connected.
Remove reference to "Ubuntu" font family for 'Radio Type' label in preferences dialog (generates warning on MacOS).
* enh(cpn): Save update component asset options and manage in app settings
* Add option to delete decompress folders independent of delete download folder
* Fix sdsync to point to last update folder
* Update options dlg to allow choosing release channel and saving settings as defaults
* Rename params
* Asset options dialog shared between settings and update run. Add to Save as defaults
* Add new model actions to application settings
* Add new model prompt action
* Tweak wording
* Add new model action template
* Open individual model yml files
* Tidy up after importing template
* Add create default and edit to prompt options
* Fix edit mode to display the edit dialog after model creation when selected in settings
* [AppDebugMessageHandler] Add ability to write debug output to any number of QIODevices.
* [Simulator][DebugOutput] Use new QIODevice hook in AppDebugMessageHandler instead of signal/slot.
* [AppData] Add new settings for debug logging; Refactor property creation macro to work with any data type and add varName_init() method to set default; Refactor all boolean settings to use new macro (others to be migrated later).
* [AppPreferencesDialog] Add UI for appDebugLog, fwTraceLog, & appLogsDir settings; Clean up layout on application prefs. tab, move and re-label a couple items.
* [Companion][Simulator] Enable optional application debug output logging.
* [Simulator] Enable optional logging of firmware debug output to file.
* [EEPROMInterface] Use qDebug() instead of std::cout so that now all debug output can be routed via custom message handler/logger.
* [Companion][Simulator] Add missing #include.
* [Companion] Refactor MdiChild & TreeModel, restore drag/drop, and more:
* Add full drag-and-drop functions to the models list, including model copy, move, and insert actions (also between windows);
* Add general radio settings copy/paste across file windows;
* Full MIME support with distinct types for various data (eg. models vs. general settings), also add new type for metadata (header);
* Copied/cut models can now be inserted in any spot (similar to drop-insert);
* Deleted/cut models can now be removed entirely (including the empty slot) for all radio types (any models after the removed one move up, like for Horus) (may need to make this an option);
* Empty model slots can now also be removed (any models after the removed slot move up) (but total # of slots is still maintained);
* Default model can be deleted (new default is picked);
* Completely revamp the actions system (copy/paste/edit/etc) to make it fully functional:
* Actions exist in the window, not just context menu, therefore all keyboard shortcuts actually work, w/out any duplicated code;
* Provides access from MainWindow in a comprehensive manner: all actions are available and properly updated based on selections in current editor window, w/out awkward event monitoring;
* More actions available from context menu, and somewhat reorganized;
* Also show all actions on mini toolbars right in the MDI window (possibly make optional later);
* Updated English localization file to account for plurals usage in new action item names (other languages need to be updated);
* Keyboard navigation in the model list now works/practical;
* MDI window uses all available height by default;
* Newly added models/categories are selected and highlighted; Category names are immediately editable; Model editor is/can be launched if wizard is not (need to make option);
* MainWindow updates:
* Edit toolbar and menu now showing all available edit actions, with proper context;
* File menu properly updates with all "general" radio actions: edit/copy/paste settings and simulate radio;
* Added Windows menu showing list of open windows (eg. to switch when full screen) and tabbed window option (need to make persistent setting);
* Immediate update of icon size preference;
* Do not delete toolbars when re-translating UI (they don't lose assigned position);
* [Companion] Restore model compare functionality by using new MIME data exchange system; Add ability to compare any number of models at a time; Multi-model printer now shows custom hardware settings for each dropped model (even from different radios).
* [Companion] Add missing monoblue & monowhite theme sdsync icons.
* [Companion] Model wizard starts with default model name populated.
* [Companion] Properly re-translate UI instead of recreating all the actions/etc.; Tell Mac specifically where to put our actions (seems to make it happier too).
* [Companion] Further improve handling of Window menu items/detection of sub-window changes.
* [Companion] Add file-close action.
* [Companion] Add user options and save preferences:
* Option to use wizard, open editor, or do nothing on new model creation;
* Option to remove empty model slots when deleting/moving models (in non-Horus radios);
* Options to hide toolbars in document windows (r-click on TBs);
* Save/restore size of document windows, and maximized/tabbed state;
* Save/restore size/position of model compare window;
* Add shortcuts for model compare, FW download, log viewer;
* [Companion] Disable being able to "delete" empty model slots (more awkward than helpful).
* Fix possible confusion/data corruption when deleting radio profile (closes#4734, ref: #4686);
* Add Delete Profile action to Radio Profiles menu (closes#4736) (but remove from from app prefs. panel);
* Add confirmation prompt before deleting profile;
* Open profile settings dialog when creating/copying a profile (closes#4735);
* Make sure current (global) firmware flavor is properly updated when changing fw type/options in profile;
* Append "-Copy" to name of copied profile;
* Factor out Firmware global vars/functions in favor of static members.
Profile backup path if set overrides general one, in any case the backup will be performed if either profile specific setting or general settings ones are enabled.
Disabling backup in profile will not disable backups if generic settings are enabled
FirmwareInterface::getCapability() to know which options are enabled in
the preferences. The Heli tab and the GVars are displayed according to
these options.
Set the first tab back as start tab in application settings dialog.
Added automatic conversion of the old companion9x setting for using the wizard for creating models.