Rearranges the order of operations during simulator switching to ensure that the previous simulator is properly stopped and disconnected before the new simulator is started.
- Fix for separate message for each ui change/sim change event by putting Qt::QueuedConnection
- Avoids broadcasting empty JSON objects produced by the change above mentioned
Adds functionality to retrieve an item from the UI table.
Also adds tests for the UI table functionality, including
serialization, label setting, item insertion, and item clearing.
Adds tests for serialization, label setting, value addition, and value cleaning of UI plot.
These tests ensure the UI plot component behaves as expected.
Adds const get methods to retrieve the x and y values stored in the plot data vectors, enabling external components to read the data displayed on the plot.
Adds bounds checking to `set_selected`, `set_visible`, and
`set_tab_name` methods to prevent out-of-bounds access on the tab
data structures.
Removes unnecessary resizing logic as tab size is defined in constructor.
Extends UI element tests to include signal emission verification.
This ensures that UI elements correctly emit signals upon user interaction,
improving the reliability and responsiveness of the UI.
Adds QSignalSpy to track signal emissions for various UI components like
buttons, checkboxes, comboboxes, items, sliders, textboxes and thermos.
This fixes the error: clang:optin.cplusplus.VirtualCall
When virtual methods are called during construction and destruction the polymorphism is restricted to the class that’s being constructed or destructed because the more derived contexts are either not yet initialized or already destructed.
Updates signal names across UI components (checkbox, textbox, and CAN) to use more consistent and descriptive names, improving code readability and maintainability. The 'on_change' and 'on_send' signals are renamed to 'changed' and 'send' respectively.
Implements a check to ensure a simulator is active before processing commands.
This prevents errors and unexpected behavior when commands are sent without an active simulator. The check is performed at the beginning of the command parsing, and logs an error if no simulator is active, returning an empty JSON object.
Adds an INTERNAL preprocessor definition to manage dependencies.
This change allows for a lighter build during internal development by
forward declaring some classes and excluding UI and CAN dependencies.