Skip to content

Commit

Permalink
allow for recovering data if plugin is closed
Browse files Browse the repository at this point in the history
accidently but the layers are still there.
  • Loading branch information
ianhi committed Jan 11, 2022
1 parent 6275583 commit 5c35b96
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 3 deletions.
1 change: 1 addition & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -49,3 +49,4 @@ napari.plugin =
exclude = docs, _version.py, .eggs, example
max-line-length = 88
docstring-convention = "numpy"
ignore = E741
33 changes: 30 additions & 3 deletions src/napari_labeller/_dock_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,20 +48,28 @@ def __init__(self, napari_viewer: "napari.viewer.Viewer"):

self._save_progress_btn.clicked.connect(self._save_progress)

# recover if our plugin was closed but our layers are still hanging around
for l in self.viewer.layers:
if hasattr(l, "_labeller_images"):
self._recover_information()

@property
def data_folder(self) -> Union[Path, None]:
return self._data_folder

@data_folder.setter
def data_folder(self, value: Union[str, Path]):
self._data_folder = Path(value)
self._set_up_folder_variables()
self._on_next()

def _set_up_folder_variables(self):
self._folder_line_edit.setText(str(self._data_folder))
self._next_batch_btn.setEnabled(True)
self._file_list = list_datasets(self._data_folder)
self._num_files = len(self._file_list)
self._file_idx = -1
self._on_next()
self._next_batch_btn.setEnabled(True)
self._prev_batch_btn.setEnabled(True)
self._file_idx = -1

def _browse_folders(self):
self.data_folder = Path(
Expand Down Expand Up @@ -100,6 +108,20 @@ def _get_next_image_batch(self):
self._img.data = images
self._labels.data = self._working_ds.labels

def _recover_information(self):
# for i in range(len(self.viewer.layers)):
for layer in self.viewer.layers:
if hasattr(layer, "_labeller_images"):
self._img = layer
elif hasattr(layer, "_labeller_labels"):
self._labels = layer
self._file_list = list
self._data_folder = self._labels._data_folder
self._set_up_folder_variables()
self._file_idx = self._labels._file_idx
self._working_ds = get_dataset(self._data_folder, self._file_idx)
self._working_ds.labels.data = self._labels.data

def _initialize_viewer(self):
self._file_idx = 0
self._working_ds = get_dataset(self._data_folder, self._file_idx)
Expand All @@ -109,7 +131,12 @@ def _initialize_viewer(self):
images = self._working_ds.images

self._img = self.viewer.add_image(images)
self._img._labeller_images = True
self._labels = self.viewer.add_labels(self._working_ds.labels.data)
self._labels._labeller_labels = True
self._labels._data_folder = self._data_folder
self._labels._file_idx = self._file_idx

scroll_time(self.viewer)
apply_label_keybinds(self._labels)

Expand Down

0 comments on commit 5c35b96

Please sign in to comment.