ros-visualization / rviz

ROS 3D Robot Visualizer
BSD 3-Clause "New" or "Revised" License
831 stars 463 forks source link

Modernize to use Qt5 slots #1790

Closed rhaschke closed 1 year ago

rhaschke commented 1 year ago

Closes #1743. Closes #1742. This is work-in-progress to modernize rviz' usage of signals and slots and switch to Qt5-style compile-time signal-slot definitions.

rhaschke commented 1 year ago

Providing new connect() methods allows simple and modular definition of slots for the changed() signal (16c9482f38f54d97328d0391ceb2e60e3e07052a). Requiring that the slot can be passed to the ctor as well, requires two template variants for all properties as illustrated in 0539624a76303411a26f4925112c6410703d7082: one with the optional receiver argument and one without. It's not possible to combine those two into a single function with a default argument (receiver=nullptr) as before: we need to know the exact class type of either receiver or parent to pass pointer-to-member slots.