motile-tracker 3.1.3.dev0__tar.gz → 3.1.4.dev0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/PKG-INFO +1 -1
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/application_menus/menu_widget.py +15 -8
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_model/solution_tracks.py +31 -25
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views/layers/contour_labels.py +2 -4
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views/layers/track_labels.py +2 -2
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views/view_3d/view3D.py +6 -1
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker.egg-info/PKG-INFO +1 -1
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/.github/workflows/deploy.yml +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/.github/workflows/docs.yml +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/.github/workflows/test.yml +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/.gitignore +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/.pre-commit-config.yaml +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/LICENSE +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/README.md +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/conda_config.yml +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/docs/Makefile +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/docs/source/conf.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/docs/source/editing.rst +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/docs/source/getting_started.rst +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/docs/source/images/add_edge.png +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/docs/source/images/add_node.png +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/docs/source/images/break_edge.png +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/docs/source/images/delete_node.png +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/docs/source/images/results_demo_720p.mp4 +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/docs/source/index.rst +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/docs/source/key_bindings.rst +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/docs/source/motile.rst +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/docs/source/tree_view.rst +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/pyproject.toml +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/scripts/hela_example_tracks.csv +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/scripts/load_external_points.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/scripts/run_hela.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/scripts/test_edge_selection.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/scripts/view_external_tracks.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/setup.cfg +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/__init__.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/application_menus/__init__.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/application_menus/editing_menu.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/application_menus/main_app.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_model/__init__.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_model/action_history.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_model/actions.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_model/node_type.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_model/tracks.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_model/tracks_controller.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/__init__.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views/__init__.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views/layers/__init__.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views/layers/track_graph.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views/layers/track_points.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views/layers/tracks_layer_group.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views/tree_view/__init__.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views/tree_view/flip_axes_widget.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views/tree_view/navigation_widget.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views/tree_view/tree_view_feature_widget.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views/tree_view/tree_view_mode_widget.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views/tree_view/tree_widget.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views/tree_view/tree_widget_utils.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views/view_3d/__init__.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views/view_3d/clipping_plane_sliders.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views/view_3d/layer_dropdown.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views/view_3d/multiple_view_widget.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views_coordinator/__init__.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views_coordinator/collection_widget.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views_coordinator/node_selection_list.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views_coordinator/tracks_list.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/views_coordinator/tracks_viewer.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/example_data.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/import_export/__init__.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/import_export/load_tracks.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/import_export/menus/__init__.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/import_export/menus/csv_widget.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/import_export/menus/import_external_tracks_dialog.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/import_export/menus/measurement_widget.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/import_export/menus/metadata_menu.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/import_export/menus/segmentation_widget.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/motile/backend/__init__.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/motile/backend/motile_run.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/motile/backend/solve.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/motile/backend/solver_params.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/motile/menus/__init__.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/motile/menus/motile_widget.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/motile/menus/param_values.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/motile/menus/params_editor.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/motile/menus/params_viewer.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/motile/menus/run_editor.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/motile/menus/run_viewer.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/napari.yaml +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker.egg-info/SOURCES.txt +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker.egg-info/dependency_links.txt +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker.egg-info/entry_points.txt +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker.egg-info/requires.txt +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker.egg-info/top_level.txt +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/tests/conftest.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/tests/data_model/test_action_history.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/tests/data_model/test_actions.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/tests/data_model/test_tracks.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/tests/data_model/test_tracks_controller.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/tests/import_export/test_export_solution_to_csv.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/tests/import_export/test_import_external_tracks.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/tests/motile/backend/test_motile_run.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/tests/motile/backend/test_solver.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/tests/motile/menus/test_run_editor.py +0 -0
- {motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/tests/motile_plugin/utils/test_tree_widget_utils.py +0 -0
|
@@ -13,24 +13,31 @@ class MenuWidget(QScrollArea):
|
|
|
13
13
|
def __init__(self, viewer: napari.Viewer):
|
|
14
14
|
super().__init__()
|
|
15
15
|
|
|
16
|
+
self.viewer = viewer
|
|
16
17
|
tracks_viewer = TracksViewer.get_instance(viewer)
|
|
17
18
|
|
|
18
19
|
motile_widget = MotileWidget(viewer)
|
|
19
20
|
editing_widget = EditingMenu(viewer)
|
|
20
21
|
view3D_widget = View3D(viewer)
|
|
22
|
+
view3D_widget.update_tab.connect(self.update_3D_tab)
|
|
21
23
|
|
|
22
|
-
tabwidget = QTabWidget()
|
|
24
|
+
self.tabwidget = QTabWidget()
|
|
23
25
|
|
|
24
|
-
tabwidget.addTab(view3D_widget, "3D viewing")
|
|
25
|
-
tabwidget.addTab(motile_widget, "Track with Motile")
|
|
26
|
-
tabwidget.addTab(editing_widget, "Edit Tracks")
|
|
27
|
-
tabwidget.addTab(tracks_viewer.tracks_list, "Results List")
|
|
28
|
-
tabwidget.addTab(tracks_viewer.collection_widget, "Collections")
|
|
26
|
+
self.tabwidget.addTab(view3D_widget, "3D viewing")
|
|
27
|
+
self.tabwidget.addTab(motile_widget, "Track with Motile")
|
|
28
|
+
self.tabwidget.addTab(editing_widget, "Edit Tracks")
|
|
29
|
+
self.tabwidget.addTab(tracks_viewer.tracks_list, "Results List")
|
|
30
|
+
self.tabwidget.addTab(tracks_viewer.collection_widget, "Collections")
|
|
29
31
|
|
|
30
32
|
layout = QVBoxLayout()
|
|
31
|
-
layout.addWidget(tabwidget)
|
|
33
|
+
layout.addWidget(self.tabwidget)
|
|
32
34
|
|
|
33
|
-
self.setWidget(tabwidget)
|
|
35
|
+
self.setWidget(self.tabwidget)
|
|
34
36
|
self.setWidgetResizable(True)
|
|
35
37
|
|
|
36
38
|
self.setLayout(layout)
|
|
39
|
+
|
|
40
|
+
def update_3D_tab(self):
|
|
41
|
+
if self.tabwidget.currentIndex() == 0:
|
|
42
|
+
self.tabwidget.setCurrentIndex(1)
|
|
43
|
+
self.tabwidget.setCurrentIndex(0)
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
+
import json
|
|
3
4
|
from typing import TYPE_CHECKING
|
|
4
5
|
|
|
5
6
|
import networkx as nx
|
|
7
|
+
import pandas as pd
|
|
6
8
|
from motile_toolbox.candidate_graph.graph_attributes import NodeAttr
|
|
7
9
|
|
|
8
10
|
from .tracks import Tracks
|
|
@@ -177,31 +179,35 @@ class SolutionTracks(Tracks):
|
|
|
177
179
|
}
|
|
178
180
|
header = header + list(additional_attrs)
|
|
179
181
|
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
182
|
+
data = []
|
|
183
|
+
for node_id in self.graph.nodes():
|
|
184
|
+
parents = list(self.graph.predecessors(node_id))
|
|
185
|
+
parent_id = "" if len(parents) == 0 else parents[0]
|
|
186
|
+
track_id = self.get_track_id(node_id)
|
|
187
|
+
time = self.get_time(node_id)
|
|
188
|
+
position = self.get_position(node_id)
|
|
189
|
+
lineage_id = self.get_lineage_id(node_id)
|
|
190
|
+
color = colormap.map(track_id)[:3] * 255
|
|
191
|
+
attrs = [
|
|
192
|
+
self._get_node_attr(node_id, attr)
|
|
193
|
+
if attr != "group"
|
|
194
|
+
else json.dumps(self._get_node_attr(node_id, attr))
|
|
195
|
+
for attr in additional_attrs
|
|
196
|
+
]
|
|
197
|
+
row = [
|
|
198
|
+
time,
|
|
199
|
+
*position,
|
|
200
|
+
node_id,
|
|
201
|
+
parent_id,
|
|
202
|
+
track_id,
|
|
203
|
+
lineage_id,
|
|
204
|
+
color,
|
|
205
|
+
*attrs,
|
|
206
|
+
]
|
|
207
|
+
data.append(row)
|
|
208
|
+
|
|
209
|
+
df = pd.DataFrame(data, columns=header)
|
|
210
|
+
df.to_csv(outfile, index=False)
|
|
205
211
|
|
|
206
212
|
def add_nodes(
|
|
207
213
|
self,
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
import functools
|
|
4
3
|
from typing import Optional
|
|
5
4
|
|
|
6
5
|
import napari
|
|
@@ -47,9 +46,7 @@ def get_contours(
|
|
|
47
46
|
|
|
48
47
|
# instead of filling with background label, fill the group label with their normal color
|
|
49
48
|
if group_labels is not None and len(group_labels) > 0:
|
|
50
|
-
group_mask =
|
|
51
|
-
np.logical_or, (labels == val for val in group_labels)
|
|
52
|
-
)
|
|
49
|
+
group_mask = np.isin(labels, group_labels)
|
|
53
50
|
combined_mask = not_boundaries & group_mask
|
|
54
51
|
contours = np.where(combined_mask, labels, contours)
|
|
55
52
|
|
|
@@ -100,6 +97,7 @@ class ContourLabels(napari.layers.Labels):
|
|
|
100
97
|
Returns None if the contour parameter is less than 1,
|
|
101
98
|
or if the label array has more than 2 dimensions.
|
|
102
99
|
"""
|
|
100
|
+
|
|
103
101
|
if self.contour < 1:
|
|
104
102
|
return None
|
|
105
103
|
if labels.ndim > 2:
|
|
@@ -45,7 +45,7 @@ def _new_label(layer: TrackLabels, new_track_id=True):
|
|
|
45
45
|
"""
|
|
46
46
|
|
|
47
47
|
if isinstance(layer.data, np.ndarray):
|
|
48
|
-
new_selected_label = np.max(layer.data) + 1
|
|
48
|
+
new_selected_label = int(np.max(layer.data) + 1)
|
|
49
49
|
if layer.selected_label == new_selected_label:
|
|
50
50
|
show_info(
|
|
51
51
|
trans._(
|
|
@@ -362,7 +362,7 @@ class TrackLabels(ContourLabels):
|
|
|
362
362
|
else:
|
|
363
363
|
if self.viewer.dims.ndisplay == 2:
|
|
364
364
|
self.contour = 1
|
|
365
|
-
self.group_labels = visible
|
|
365
|
+
self.group_labels = visible + highlighted._list
|
|
366
366
|
self.update_group_labels.emit(self.group_labels)
|
|
367
367
|
else:
|
|
368
368
|
self.colormap.color_dict = {
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import napari
|
|
2
|
+
from psygnal import Signal
|
|
2
3
|
from qtpy.QtWidgets import QLabel, QVBoxLayout, QWidget
|
|
3
4
|
|
|
4
5
|
from .clipping_plane_sliders import PlaneSliderWidget
|
|
@@ -30,6 +31,8 @@ class OrthogonalViews(QWidget):
|
|
|
30
31
|
class View3D(QWidget):
|
|
31
32
|
"""Widget to combine multiple views and cross widget together."""
|
|
32
33
|
|
|
34
|
+
update_tab = Signal()
|
|
35
|
+
|
|
33
36
|
def __init__(
|
|
34
37
|
self,
|
|
35
38
|
viewer: napari.Viewer,
|
|
@@ -59,7 +62,7 @@ class View3D(QWidget):
|
|
|
59
62
|
self.plane_widget.hide()
|
|
60
63
|
self.widget_2d.hide()
|
|
61
64
|
|
|
62
|
-
# Show the correct widget
|
|
65
|
+
# Show the correct widget
|
|
63
66
|
self.display_changed()
|
|
64
67
|
|
|
65
68
|
def display_changed(self, event=None):
|
|
@@ -75,5 +78,7 @@ class View3D(QWidget):
|
|
|
75
78
|
self.plane_widget.show()
|
|
76
79
|
elif self.viewer.dims.ndisplay == 2:
|
|
77
80
|
self.orth_views.show()
|
|
81
|
+
self.orth_views.update()
|
|
82
|
+
self.update_tab.emit()
|
|
78
83
|
else:
|
|
79
84
|
self.widget_2d.show()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/docs/source/images/results_demo_720p.mp4
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_model/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_model/actions.py
RENAMED
|
File without changes
|
{motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_model/node_type.py
RENAMED
|
File without changes
|
{motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_model/tracks.py
RENAMED
|
File without changes
|
|
File without changes
|
{motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/data_views/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/import_export/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/motile/backend/solve.py
RENAMED
|
File without changes
|
|
File without changes
|
{motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker/motile/menus/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker.egg-info/entry_points.txt
RENAMED
|
File without changes
|
{motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker.egg-info/requires.txt
RENAMED
|
File without changes
|
{motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/src/motile_tracker.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
{motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/tests/data_model/test_action_history.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/tests/data_model/test_tracks_controller.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/tests/motile/backend/test_motile_run.py
RENAMED
|
File without changes
|
|
File without changes
|
{motile_tracker-3.1.3.dev0 → motile_tracker-3.1.4.dev0}/tests/motile/menus/test_run_editor.py
RENAMED
|
File without changes
|
|
File without changes
|