Skip to content

Commit

Permalink
Fix nion-software#1324. Inspector now shows selected data panel item.
Browse files Browse the repository at this point in the history
  • Loading branch information
cmeyer committed Jan 31, 2025
1 parent 3c4ac43 commit fec2a7d
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 18 deletions.
16 changes: 4 additions & 12 deletions nion/swift/DataPanel.py
Original file line number Diff line number Diff line change
Expand Up @@ -679,16 +679,14 @@ def unmap_display_item_to_display_item_adapter(display_item_adapter: DisplayItem

self.__selection = self.document_controller.selection

self.__focused = False

def selection_changed() -> None:
# called when the selection changes; notify selected display item changed if focused.
self.__notify_focus_changed()

self.__selection_changed_event_listener = self.__selection.changed_event.listen(selection_changed)

def focus_changed(focused: bool) -> None:
self.focused = focused
self.__notify_focus_changed()

def delete_display_item_adapters(display_item_adapters: typing.List[DisplayItemAdapter]) -> None:
document_controller.delete_display_items([display_item_adapter.display_item for display_item_adapter in display_item_adapters if display_item_adapter.display_item])
Expand Down Expand Up @@ -885,14 +883,8 @@ def __notify_focus_changed(self) -> None:
# this is called when the keyboard focus for the data panel is changed.
# if we are receiving focus, tell the window (document_controller) that
# we now have the focus.
if self.__focused:
if self._data_list_widget.focused or self._data_grid_widget.focused:
self.document_controller.data_panel_focused()

@property
def focused(self) -> bool:
return self.__focused

@focused.setter
def focused(self, value: bool) -> None:
self.__focused = value
self.__notify_focus_changed()
def _request_focus_for_test(self) -> None:
self._data_list_widget.focused = True
12 changes: 6 additions & 6 deletions nion/swift/test/DataPanel_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,7 @@ def test_selected_group_persistence(self):
document_model.append_data_group(data_group2)
data_panel = document_controller.find_dock_panel("data-panel")
project_panel = document_controller.find_dock_panel("collections-panel")
data_panel.focused = True
data_panel._request_focus_for_test()
self.assertSetEqual({0}, project_panel._collection_selection.indexes)
self.assertEqual(document_controller.selection.indexes, set())
document_controller.select_data_group_in_data_panel(data_group=data_group1, data_item=data_item1)
Expand Down Expand Up @@ -236,7 +236,7 @@ def test_data_panel_updates_focused_data_item_when_single_item_selected_when_foc
document_model.append_data_item(DataItem.DataItem(numpy.zeros((2, 2))))
document_model.append_data_item(DataItem.DataItem(numpy.zeros((2, 2))))
data_panel = document_controller.find_dock_panel("data-panel")
data_panel.focused = True
data_panel._request_focus_for_test()
document_controller.select_data_item_in_data_panel(document_model.data_items[0])
self.assertEqual(document_model.data_items[0], document_controller.selected_data_item)
document_controller.select_data_item_in_data_panel(document_model.data_items[1])
Expand All @@ -249,7 +249,7 @@ def test_data_panel_clears_selected_data_item_when_multiple_items_selected_when_
document_model.append_data_item(DataItem.DataItem(numpy.zeros((2, 2))))
document_model.append_data_item(DataItem.DataItem(numpy.zeros((2, 2))))
data_panel = document_controller.find_dock_panel("data-panel")
data_panel.focused = True
data_panel._request_focus_for_test()
document_controller.select_data_item_in_data_panel(document_model.data_items[0])
self.assertEqual(document_model.data_items[0], document_controller.selected_data_item)
document_controller.select_data_items_in_data_panel(document_model.data_items)
Expand All @@ -262,7 +262,7 @@ def test_data_panel_clears_selected_data_item_when_clearing_selection_when_focus
document_model.append_data_item(DataItem.DataItem(numpy.zeros((2, 2))))
document_model.append_data_item(DataItem.DataItem(numpy.zeros((2, 2))))
data_panel = document_controller.find_dock_panel("data-panel")
data_panel.focused = True
data_panel._request_focus_for_test()
document_controller.select_data_item_in_data_panel(document_model.data_items[0])
self.assertEqual(document_model.data_items[0], document_controller.selected_data_item)
document_controller.select_data_items_in_data_panel([])
Expand All @@ -283,7 +283,7 @@ def test_selection_during_operations(self):
document_model.append_data_item(data_item2)
# finished setting up
data_panel = document_controller.find_dock_panel("data-panel")
data_panel.focused = True
data_panel._request_focus_for_test()
document_controller.select_data_item_in_data_panel(data_item=data_item1)
# make sure our preconditions are right
self.assertEqual(document_controller.selected_data_item, data_item1)
Expand Down Expand Up @@ -427,7 +427,7 @@ def test_select_after_receive_files(self):
data_item.title = "data_item"
document_model.append_data_item(data_item)
data_panel = document_controller.find_dock_panel("data-panel")
data_panel.focused = True
data_panel._request_focus_for_test()
self.assertIsNone(document_controller.selected_display_item)
document_controller.receive_files([pathlib.Path(":/app/scroll_gem.png")], index=0)
document_controller.periodic()
Expand Down

0 comments on commit fec2a7d

Please sign in to comment.