(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
* Reduce RAM usage for advanced joystick system on radio:
- Don't allocate memory blocks unless joystick mode is being used.
Support multiple radio joystick configurations in Companion:
- Save configured joystick settings by joystick name in Companion settings.
- Save last joystick name used in each profile.
- Reload joystick settings by name when profile is changed.
* Only show configuration for used axes and buttons in Companion.
Send actual number of configured joystick buttons from radio in USB packet.
* Fix issue where USB joystick not recognised if no buttons configured.
* Fix compiler warnings.
* Remove debugging.
* Fix crash in Companion.
* Change channel 8 to type 'dial', workaround for Linux mapping issue.
---------
Co-authored-by: Phil Mitchell <phil.a.mitchell@gmail.com>
* Allow switches on the connected radio to control switches in the simulator via the joystick interface.
* Merge configurable radio joystick interface from banyaszg.
* Add two more 'axis' channels to companion.
* Fix 6POS from USB joystick to simulator.
* Reduce data size.
* Fix build error on B&W radios.
* Add 'Companion' button mode to work with the button logic in the Companion app.
* Build Companion joystick setup layout at runtime.
Change #define names for simulator joystick.
Allow 15 axes and 32 buttons.
Initial support for trim sliders.
* Remove custom joystick button type for companion - use 3 buttons per switch in companion to control simulator switch state.
* Fix joystick constructor calls parameters. Connect some radio joystick trims to simulator widgets.
* Restore 'companion' button type to reduce number of buttons needed. Make trims work via buttons in USB joystick.
* Connect joystick trim buttons to simulator widgets.
* Use companion source names for trims.
* Add encode / decode of usb joystick custom settings to Companion.
* Convert to lvgl layouts.
Update language files.
* Fix generated YAML storage files.
* Fix initialisation error when editing button channel. Cleanup code.
* Fix rebase.
* Fix refresh of joystick channel list view after editing an entry.
Companion joystick config window uses two columns.
* Fix vertical joystick inversion bug.
Change stick axis labels.
---------
Co-authored-by: Phil Mitchell <phil.a.mitchell@gmail.com>
* Refactoring
* Fix current release id and process dlg events
* enh: Process updates dialog add select/deselect all components
* Change Expression to Pattern
* 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
* TX16S initial push - Radio booting, navigation keys ok
* TX16S libsimu
* Please Travis
* Do not start radio on charger power
* USB charger led handling
* Revert "USB charger led handling" until we have proper details
* Pseudo sport power pin
* Please Travis
* tx16s serial debug
* Add tx16s calibration picture
* Review anadir for tx16s, needs to be checked on more radios
* Dump raw multi telem on AUX port
* More work on TX16S
* Fixes
* Compilation fix
* Compilation fix
* Fix Aux Serial power
* Various improvement
* USB charger led handling
* Cosmetics
* Cosmetics
* USB charger led handling
* Add charge indicator on GUI
~ All stored properties are fully dynamic, using an extended version of the Qt Property System;
~ CompStoreObj is now QObject subclass;
+ All properties now have change notifier signals;
~ Do not store default values in settings;
+ Add _reset() and _default() functions for each property;
+ Settings import now ignores all non-existent properties automatically;
+ Add settings export functions;
+ Add more version macros;
~ Remove template functions;
~ Move DownloadBranchType and create NewModelAction enums and register with Qt meta system;
~ Multiple efficiency and optimization changes (const functions, literals, etc).
* Move MultiposPots & MultiposPotsPositions capability lookups and getAnalogInputName() to Boards class.
* Add RawSource::isAvailable() and RawSwitch::isAvailable(); Add board type param to various RawSource lookup functions.
* Add CustomFunctionData::toString(), FlightModeData::toString(), FactoryInstalledPots board capability, MAX_SWITCH_TYPE, & break out GeneralSettings source/switch defaults to own function.
* Add RadioDataConversionState class for tracking conversion actions.
* Implement RadioDataConversionState handler, add conversion process report, and improve/fix conversion issues:
* Make sure all switches/pots/knobs have default configs for destination board type;
* Try to move more custom control names, intelligently;
* Convert model timers and throttle source;
* Adjust for Horus 6P switch in place of Taranis S2 knob;
* Adjust for extra sliders on X12 and X9E to move LS and RS to proper slots as needed;
* Make sure ALL controls are validated, eg. to always account for extra trims/analogs/switches/etc which don't exist on destination;
* Properly indicate invalid RawSource::toString() items with "???".
* Allow user to cancel out of file conversions & provide ample warnings if switching radio type/profile with unsaved file(s) still open;
Also: Fix bug with some orphaned MdiChild windows never being deleted; Create static bool Storage::isBoardCompatible(b1, b2).
* Add maxLibQt "stub" (will not compile).
* Add ExportableTableView for better presentation of conversion results table.
* Move getFourCC() and isBoardCompatible() to Boards class.
* [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.