Skip to content

Commit

Permalink
feat(interactive.imagetool): remember last used loader for each tool
Browse files Browse the repository at this point in the history
  • Loading branch information
kmnhan committed Jun 16, 2024
1 parent bb2da9d commit eb0cd2f
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions src/erlab/interactive/imagetool/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -232,6 +232,8 @@ def __init__(
self.refreshMenus()
self.slicer_area.sigViewOptionChanged.connect(self.refreshMenus)

self._recent_name_filter: str | None = None

@property
def array_slicer(self) -> ArraySlicer:
return self.slicer_area.array_slicer
Expand Down Expand Up @@ -405,6 +407,7 @@ def createMenus(self):
menu_kwargs = self._generate_menu_kwargs()
self.add_items(**menu_kwargs)

# Disable/Enable remove cursor action based on cursor count
self.menu_dict["viewMenu"].aboutToShow.connect(
lambda: self.action_dict["remCursorAct"].setDisabled(
self.slicer_area.n_cursors == 1
Expand All @@ -420,10 +423,9 @@ def refreshMenus(self):
for ca, k in zip(
self.colorAct, ["reversed", "highContrast", "zeroCentered"], strict=True
):
k = cast(Literal["reversed", "highContrast", "zeroCentered"], k) # for mypy
ca.blockSignals(True)
ca.setChecked(
cmap_props[cast(Literal["reversed", "highContrast", "zeroCentered"], k)]
)
ca.setChecked(cmap_props[k])
ca.blockSignals(False)

def _set_colormap_options(self):
Expand Down Expand Up @@ -451,11 +453,14 @@ def _open_file(self):
dialog.setAcceptMode(QtWidgets.QFileDialog.AcceptMode.AcceptOpen)
dialog.setFileMode(QtWidgets.QFileDialog.FileMode.ExistingFile)
dialog.setNameFilters(valid_loaders.keys())
if self._recent_name_filter is not None:
dialog.selectNameFilter(self._recent_name_filter)
# dialog.setOption(QtWidgets.QFileDialog.Option.DontUseNativeDialog)

if dialog.exec():
files = dialog.selectedFiles()
fn, kargs = valid_loaders[dialog.selectedNameFilter()]
self._recent_name_filter = dialog.selectedNameFilter()
fn, kargs = valid_loaders[self._recent_name_filter]
# !TODO: handle ambiguous datasets
self.slicer_area.set_data(fn(files[0], **kargs))
self.slicer_area.view_all()
Expand Down

0 comments on commit eb0cd2f

Please sign in to comment.