* Update logical switch layout:
- Use LVGL flex / grid layout
- Same height for all buttons
- Display logical switch name inside button so entire row acts as button
- Consistent press handler for buttons (always show popup menu)
- Group buttons for empty switch in lines to utilise space
- Remember selected button and reselect after edit.
* Fix incorrect switch being selected when changing tabs.
* Fix selection of focussed button when using 'Clear', and switching tabs.
* Reorganise logical switch edit code.
* Change button style to match input/mixes/outputs pages.
* Single line overview on landscape LCD layout. Convert to using grid and lgvl objects for overview buttons.
* Remove redundant flag.
* Remove logic that tries to center scroll around selected button (not working).
* Remove empty buttons and add a single '+' button at the bottom to match inputs and mixes.
* Remove unused code.
* Correct string usage.
* Add long press handler for quick access to the '+' button functions.
* Display logical switch operation and parameters as an expression. Add 's' suffix to time values.
* Adjust spacing.
* Set V2 number edit control to automatically resize and fit content to prevent clipping of large values.
* Revert to fixed column layout.
* Adjust grid spacing.
* Convert the logical switch view in the channel monitor to LVGL flex.
* chore: Formatting
Co-authored-by: Phil Mitchell <phil.a.mitchell@gmail.com>
Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
* fixes https://github.com/EdgeTX/edgetx/issues/2965
Changes:
- the log period range is now 0.1s to 25.5s
- upon creation of a new SD Logs SF the period is initialized to 1.0s
- text "Value" is changed to "Period" to indicate parameter represents the log period
ToDo:
- translations for "Period" if desired
rebase due to #2992
* changed Period to Interval
Added translations for DA, DE, EN, IT, PL
* added defaults for TR_INTERVAL to language files
* fixed problem with too many leading zeros for intervals less than 1s.
before: 00.5s
after: 0.5s
* added CZ translations for TR_PERIOD and TR_INTERVAL
changed EN TR_FUNC from "Func" to "Function"
* updated TR_FUNC for CZ, DA, IT, JP, PL
updated TR_PERIOD and TR_INTERVAL for JP
* added TR_PERIOD, TR_INTERVAL, TR_FUNC for SE
* implemented TR_SF_SWITCH and logic to change between TR_SWITCH and TR_SF_SWITCH
* 212x64 radios: single source for #define TR_LSW_HEADERS in language files
deleted redundant defines
* changed 128x64 and 212x64 SF SD Logs to same logic as colorlcd with
- minimum log interval 0.1s
- maximum log interval 25.5s
- default log interval 1.0s
TX12_Sim and X9D_Sim tested ok
* migrated functional changes due to PR #2992
* missed updating TW language file
* fix: Always `STR_SF_SWITCH` regardless of SF
Co-authored-by: Peter Feerick <peter.feerick@gmail.com>
* Button and touch handling for throttle / switch alert screen.
* Restore original touch behaviour for confirmation dialog.
* Add buttons for 'actions' at bottom of screen.
* Fix infinite loop that can happen in some instances.
* Remove the option for a long press on the touch screen to close the dialog. On screen buttons must be used to close.
Co-authored-by: Phil Mitchell <phil.a.mitchell@gmail.com>
* New curve page layout.
* Set scroll to selected curve.
* Cleanup.
* Add #define's for sizing. Show both curve number and name in title bar (if name is set).
* Remove unnecessary call to CurveEdit::SetCurrentSource. Use runtime size for layout where possible.
* Add comments
* Fix base layout position.
* Fix issue with button selection not working properly with scroll wheel.
* Convert Special / Global function page to flex layout.
Move function name text into row button so entire row acts as a button.
Display active functions first, then inactive functions as smaller buttons in a grid.
* Merge duplicate cases in switch, fix indentation.
* Keep selected button focussed after editing a function.
Add long press handler to jump between free and used functions.
* Revert to numerical order for functions list.
Use context menu for empty functions all the time.
* Fix parameter type and remove redundant lines.
* Fix incorrect function being selected when changing tabs.
* Fix selection of focussed button when using 'Clear', 'Delete' and switching tabs.
* Change button style to match input/mixes/outputs pages.
* Fix checked state display for buttons.
* Fix scroll position when adding new entries at the bottom. Center selected button after editing or changes to list.
* Remove logic that tries to center scroll around selected button (not working).
* Convert overview button to lvgl grid.
Display function as more readable expression instead of discrete values.
Single line display for overview button on landscape screen.
Fix display when editing GVAR INC/DEC value (was '--' instead of '-=').
Fix incorrect module displayed for 'Set Failsafe' (swapped).
Show all parameter and values for each function type in overview.
* Fix 'Enabled' indicator so it is not selectable with the scroll wheel and looks less like a radio button.
* Remove empty buttons and add a single '+' button at the bottom to match inputs and mixes.
* Add long press handler for quick access to the '+' button functions.
* Ensure addButton is initialised if not needed (list is full).
* Use formatNumberAsString helper function.
* Adjust grid spacing.
* fix: `STR_VALUE` not `STR_VOLUME`
* Add translations for "minutes"
* Add missing PLURAL2
* fix grammar
* Next attempt
* include limits.h
* minor cleanup
* Addin some translations for some languages based on inputs
* chore: Remove BREAKSPACE, add ignore flag
And some minor cleanup / formatting
* chore: Revert `TR_USE_VARIABLE_PLURAL`
Use `TR_USE_SINGULAR_IN_PLURAL` properly... thanks @eshifri
Co-authored-by: eshifri <eshifri@hotmail.com>
* migrated stack diagnostics (available, free) to using built in FreeRTOS builtin function
Note: main stack must be and is treated differently as it is not under FreeRTOS control. main stack is painted by the STM32 startup routine. free main stack is calculated checking the remaining painted stack area.
* corrected my merge error
* missed a blank
* Layout updates and bug fixes for curve editor.
- Fix issue 2972 where an invalid curve could be created
- Use vertical layout or list of points
- Add border to preview to better show end points
- Fix issue where preview was redrawn very frequently
- Better organisation of curve edit classes
* Fix to refresh curve preview on input edit page when parameters changed.
* Adjust model setup layout to better fix on portrait LCD screen.
* Set buttons to fixed width and allow to grow vertically to fit text.
* Cleanup layout logic - buttons stretched horizontally, centered vertically.
Make ButtonMatrix button text color behave like TextButton for flight modes and pre-flight checks.
Show 'GV' button as checked if corresponding input value is a global var.
* Fix rebase merge issue.
* Incorporate solution from @ParkerEde in PR #2626
* Fix selection logic for models.
* Select model on first press.
* Fix quick model selection when using scroll wheel & enter button.
Add setting to enable quick model selection.
* German translation.
* Fix behaviour when 'model quick select' is off to work like existing 2.8 logic.
* Add translations.
* Prioritise active model as selected model when the set of visible models changes.
* Fix selection ordering when using scroll wheel.
Minor code cleanup.
* centers flight mode text, 6Pos indicator and 6Pos numbers in square
replaces ticks with numbers in 6Pos indicator
* stole @philmoz idea to bold the selected switch position to make it stand out more
* Revised color picker:
- add title to popup window
- add Save and Cancel buttons
- Source value only updated when 'Save'' button pressed
- Add editor to select from system theme colors
* Center 'Cancel' and 'Save' buttons, make them both the same size and fill available space.
Reduce width of dialog box on portrait screens.
* Change background colour of the ConfirmDialog box to make the buttons more visible.
* Change background colour of the ColorEditorPopup box to make the buttons more visible.
* Fix RTC date editing to limit day max value to actual number of days in the selected month.
If month or year is updated check that day value is still in range, if not update day to max value for selected year and month.
Only update UI values that have actually changed.
* Use struct assignment instead of memcpy to initialise property.