- Mar 27, 2025
-
-
Flavien BRIDAULT authored
-
Flavien BRIDAULT authored
This service allowing to display a string and a label can now take any data inheriting from data::serializable as input. A suffix can also be added, and it is possible to customize the font size and weight.
-
Flavien BRIDAULT authored
Instead of creating a material adapter to bind shader uniforms and then referencing that material, we can now pass them directly to the mesh, reconstruction, model_series, and point_list adaptors. This is especially useful for model_series, because each mesh within it has its own material; so we couldn't pass a material adapter for each one.
-
Flavien BRIDAULT authored
-
Flavien BRIDAULT authored
This mask can be used to hides part of the image.
-
Flavien BRIDAULT authored
-
Flavien BRIDAULT authored
-
Flavien BRIDAULT authored
First, a new object validator that verifies if an object is empty. For now it handles `sight::data::image` and `sight::data::point_list`. It is likely to be extended to support more object types in the future. Then some cleaning was required in the configuration manager to make recent features compatible with activities. For instance, we require activity objects to have a real unique identifier that matches the requirement names. This is mandatory to get those objects work with the recent `sight::ui::module_qt::settings` service.
-
Flavien BRIDAULT authored
This slots was clearly duplicated in the API comparing to start_camera. A new configuration setting was added to select a given grabber according to the camera identifier.
-
- Mar 26, 2025
-
-
- Mar 25, 2025
-
-
Didier WECKMANN authored
This is a port from Qt 5 to Qt 6. Included: - Use new Qt 6 VCPKG and Qt 6 docker image - Updated many dependencies due to VCPKG update - Removed QML, Qt3D Also: - Removed deprecated boost::asio::io_service - Fixed rare race condition in worker_asio - Fixed selector - Fixed http post test - Fixed video_controls GUI tests - Fixed cardinal layout main title - Sequencer widget reimplementation - Removed CMake warnings and deprecated code
-
Flavien BRIDAULT authored
-
- Mar 24, 2025
-
-
-
Flavien BRIDAULT authored
-
A new service to extract activity objects was added. This can be useful for extracting objects in an application's main configuration, for instance. ```xml <service uid="..." type="sight::module::data::get_activity_object" > <in key="activity_set" uid="..."/> <id>...</id> <out group="objects"> <key name="requirement1" uid="..."/> <key name="requirement2" uid="..."/> </out> </service> ```
-
- Mar 22, 2025
-
-
Flavien BRIDAULT authored
-
- Mar 20, 2025
-
-
Marc SCHWEITZER authored
-
- Mar 17, 2025
-
-
- add an example of usage for this service in the tuto14GUI
-
- Mar 13, 2025
-
-
* add new qss class to round background as toolbar
-
Didier WECKMANN authored
This _should_ stabilize GUI tests a bit. This roughly fixes a kind of race condition in the GUI test start and stop code. When test instructions are posted in the GUI thread (because we must do that to manipulate GUI stuff), mutexes are used to allow the test thread to wait until the current test instruction is processed on the GUI thread event loop. This mechanism works well, ...until the last window is closed, which exit the application. In that case, the GUI event loop is stopped straight, which is not problematic most of the time in a real application, but unfortunately in a GUI test, if something that should have been processed is still in the event loop, like the synchronization mutex unlock, the calling thread will simply expire, making the test fail. This MR try to work around that, we try to avoid closing the window in the GUI event loop, we try to close _ALL_ window, including modal dialogs, and we try to flush the GUI event loop before exiting the test thread.
-
- Mar 11, 2025
-
-
Flavien BRIDAULT authored
`sight::module::ui::qt::signal_shortcut` provides a signal that can be connected in XML, triggered by a keyboard shortcut. We added an optional toggle state, offering a similar signal/slots interface as a `sight::module::ui::action`: - is_checked(bool): Emitted when the state is checked or unchecked. - checked(): Emitted when the state is checked. - unchecked(): Emitted when the state is unchecked.. - set_checked(bool): sets whether the state is checked. - check(): check the state. - uncheck(): uncheck the state. On top of that, three other improvements were made: - a comma or semi-colon-separated list of shortcuts can be given - the `QShortcut` are now only created when the state is enabled, which allows to have multiple services running at the same time on the same shortcut, but of course, only one can be enabled at once, and it will be up to the developer to ensure that - the unit test has been really implemented, testing previous and new features
-
-
- Mar 10, 2025
-
-
Flavien BRIDAULT authored
-
Flavien BRIDAULT authored
-
-
When using the `worker="..."` XML tag in a service configuration, it was possible to reuse the same workers as other configurations. However, each configuration creates and destroys its workers. We could end up with zombie services that could not be executed because their worker was destroyed.
-
- Mar 05, 2025
-
-
Flavien BRIDAULT authored
So far, we have had no service to reset any data object to the default. We used a `sight::data::module::copy` service with a default "empty" object to achieve that. The new service `sight::data::module::reset` does this in a simpler way, because empty objects in XML are thus no longer necessary. ```xml <service uid="..." type="sight::module::data::reset" > <inout key="target" uid="..." /> </service> ```
-
- Mar 04, 2025
-
-
Marc SCHWEITZER authored
* store if a start or a stop slot is called on a sequence * if a start is sequenced, other slot can be called * if a stop is sequenced and other slot called afterward, stop the sequence
-
Marc SCHWEITZER authored
-
Marc SCHWEITZER authored
-
Marc SCHWEITZER authored
* also use qt location dialog as a temporary work-around when location dialog aren't rendered properly
-
- Mar 02, 2025
-
-
Flavien BRIDAULT authored
-
- Feb 27, 2025
-
-
Flavien BRIDAULT authored
`sight::app::multi_config_controller` has been very useful, but having another service to launch configuration is not great. Actually `sight::app::multi_config_controller`, comparing to `sight::app::config_controller` only allowed: 1. to dynamically change the name of the configuration 2. to associate a key to a configuration name To get rid of `sight::app::multi_config_controller`, we first modify `sight::app::config_controller` to allow to set dynamically the configuration thanks to a property: ```xml <service type="sight::app::config_controller" > <properties config="..." /> <inout group="data"> <key name="object1" uid="..." /> <key name="object2" uid="..." /> ... </inout> <parameter replace="..." by="..." /> </service> ``` Second, to associate a key to a configuration name, we introduced a new generic service that associates an input property with another. It allows mapping any string_serializable data to another string_serializable data, like of course key strings to key string values, but also colours to strings, booleans to strings, etc... ```xml <service uid="..." type="sight::module::data::translate" > <map> <entry key="green" value="#00FF00" /> <entry key="red" value="#FF0000" /> </map> <in key="key" uid="..." /> <inout key="value" uid="..." /> </service> ``` To sum up, instead of writing: ```xml <service type="sight::app::multi_config_controller" > <appConfig key="..." default="config1"> <config name="config1" id="sight::config::config1" /> <config name="config2" id="sight::config::config2" /> <config name="config3" id="sight::config::config3" /> <parameter replace="model" by="model_key" /> </appConfig> <inout group="data"> <key name="object1" uid="..." /> <key name="object2" uid="..." /> ... </inout> <parameter replace="channel" by="..." /> </service> ``` You have to write now: ```xml <object uid="selected_config" type="sight::data::string" /> <object uid="selected_config_key" type="sight::data::string" /> <service uid="..." type="sight::module::data::translate" > <map> <entry key="config1" value="sight::config::config1" /> <entry key="config2" value="sight::config::config2" /> <entry key="config3" value="sight::config::config3" /> </map> <in key="key" uid="selected_config_key" /> <inout key="value" uid="selected_config" /> </service> <service type="sight::app::config_controller" > <properties config="selected_config_key" /> <inout group="data"> <key name="object1" uid="..." /> <key name="object2" uid="..." /> ... </inout> <parameter replace="..." by="..." /> </service> ``` misc: apply review suggestion
-
- Feb 26, 2025
- Feb 20, 2025
-
-
Luis MENDOZA authored
-
- Feb 19, 2025
-
-
-
Didier WECKMANN authored
The fix consists in an additional widget layer, that will hold the layout attributes (mostly, the content margins), that should not be wiped out by children. To allow that, the `widget` class has been extended to manage "compound" widgets, when the container widget exposed to children, also have an intermediate parent widget.
-