eProsima / Fast-DDS-monitor

eProsima Fast DDS Monitor is a graphical desktop application aimed at monitoring DDS environments deployed using the eProsima Fast DDS library. Looking for commercial support? Contact info@eprosima.com
https://eprosima.com
GNU General Public License v3.0
42 stars 11 forks source link

[19308] Add tab view in chart layout #192

Closed JesusPoderoso closed 1 year ago

JesusPoderoso commented 1 year ago

This PR introduces a tab bar with tab management in the chart layout. It would be necessary to allow multiple views of different data representation, as charts, graphs.... That is the reason why the PR is pointing an intermediate branch which would contain the remain views too. The intermediary QML component TabLayout has been introduced between Panels and ChartsLayout components.

TabLayout features:

TabLayout design decisions to be discussed in this PR:

Possible Tab desired features to be implemented (and discussed in this PR too):

JesusPoderoso commented 1 year ago
  • If there is only one tab opened, it cannot be closed.

It was agreed in an internal discussion to display the "default" tab if the last tab is closed.

  • Maximum of 6 simultaneous tabs opened.

Found visual bug while app window resized, which improved tabs behaviour when resizing window and when multiple tabs are added. Max tabs allowed number has been increased up to 15.

  • Reorder tabs by dragging them through the tab bar (as in a web browser)
  • Support multiple and simultaneous chart views. That would require to include a Chart View identifier through all code to identify which Chart View does data belong to.

Perhaps this features would be implemented in future PRs.

JesusPoderoso commented 1 year ago

Previous two commits fix rev suggestions:

  • The visible layout within the tab keeps visible is the tab is removed and there are no tabs before that one. In order to reproduce it, crate a chart view, then add another tab, switch to chart view tab and then close it.

This is fixed in commit f5cd918

  • Window resize does not work. In order to reproduce it, create a chart view, then resize the monitor window and the internal box does not fit the parent element.

This is partially fixed in commit 14832e8. Currently it display a stdout warning with the following information: StackView has detected conflicting anchors. Transitions may not execute properly. This is caused because the ChartsLayout has been defined as a base and reusable component in the view. In future PR that would change, so multiple ChartsLayout can be opened, with different charts displayed in each one. That change will avoid the stdout message as ChartsLayout component will no longer be a reusable component.