Chris-N-K / napari-time-series-plotter

A napari Plugin for visualisaton of pixel values over time (t+ nD) as graphs.
BSD 3-Clause "New" or "Revised" License
10 stars 5 forks source link

Allow multiple selection layers #27

Open Chris-N-K opened 1 year ago

Chris-N-K commented 1 year ago

Allowing multiple selection layers allows to plot in all modes simultaneously as well as user generated layers.
This gives the users more freedom in how to combine and match source and selection layers.

This should add:

To achieve this we need to:

Chris-N-K commented 9 months ago

The selector rework leads to the need of intensive reworks of nearly all parts of the plugin. To make live easier all overhauls will be part of the layer_selection_rework branch.

Some info on the rework: The view is now a tree view and no longer a list view and only source layers (images) appear as first level items, while every layer that is valid as selection layer appears as child items of the first level items. Furthermore, I moved the time series index and data extraction to the model items. Now everything regarding data selection and extraction is handled by this single model. All previous plotting modes work simultaneously now. ROI selection through Shapes layers now works if the layers have scale or translate (or other position) information.

This lead to the need to rework the plotter widget. All code responsible for data extraction was removed. Now the widget is really only responsible for plotting. The plotting is now less performance intensive as only plots whose data changed are updated.

Subsequently, the table widget had to be changed as well to get the data from the LayerSelectionModel now holding the time series data. As a bonus, the table is now updated live.

To accommodate to the new structure the main dock widget (Explorer) had to undergo some changes as well.

After some more testing and the rework of the tests I will make a pull request.