Skip to content

Commit

Permalink
fix: Fix removing the first measurement entry in the napari Measureme…
Browse files Browse the repository at this point in the history
…nt widget (#584)

* fix bug in napari measurement widget

* fix typo
  • Loading branch information
Czaki committed Apr 17, 2022
1 parent adf87c9 commit 39f88a9
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 18 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/test_napari_widgets.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,4 +59,4 @@ jobs:
env:
PLATFORM: ${{ matrix.platform }}
NAPARI: ${{ matrix.napari_version }}
PYVISTA_OFF_SCREEN: True # required for opengl on windows
PYVISTA_OFF_SCREEN: True # required for opengl on Windows
36 changes: 20 additions & 16 deletions package/PartSeg/_roi_analysis/measurement_widget.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
)
from superqt import QEnumComboBox

from PartSegCore.analysis.measurement_calculation import MeasurementProfile, MeasurementResult
from PartSegCore.analysis.measurement_calculation import FILE_NAME_STR, MeasurementProfile, MeasurementResult
from PartSegCore.universal_const import Units

from ..common_gui.searchable_combo_box import SearchComboBox
Expand Down Expand Up @@ -247,21 +247,9 @@ def replace_measurement_result(self):
self.previous_profile = ""
self.append_measurement_result()

def refresh_view(self):
self.measurements_storage.set_expand(self.expand_mode.isChecked())
self.measurements_storage.set_show_units(not self.no_units.isChecked())
self.info_field.clear()
save_orientation = self.horizontal_measurement_present.isChecked()
columns, rows = self.measurements_storage.get_size(save_orientation)
self.info_field.setColumnCount(columns)
self.info_field.setRowCount(rows)
self.info_field.setHorizontalHeaderLabels(self.measurements_storage.get_header(save_orientation))
self.info_field.setVerticalHeaderLabels(self.measurements_storage.get_rows(save_orientation))
for x in range(rows):
for y in range(columns):
self.info_field.setItem(
x, y, QTableWidgetItem(self.measurements_storage.get_val_as_str(x, y, save_orientation))
)
def _update_file_info(self, save_orientation, rows, columns):
if self.info_field.item(0, 0).text() != FILE_NAME_STR:
return
if self.file_names.currentEnum() == FileNamesEnum.No:
if save_orientation:
self.info_field.removeColumn(0)
Expand All @@ -277,6 +265,22 @@ def refresh_view(self):
item = self.info_field.item(x, y)
item.setText(os.path.basename(item.text()))

def refresh_view(self):
self.measurements_storage.set_expand(self.expand_mode.isChecked())
self.measurements_storage.set_show_units(not self.no_units.isChecked())
self.info_field.clear()
save_orientation = self.horizontal_measurement_present.isChecked()
columns, rows = self.measurements_storage.get_size(save_orientation)
self.info_field.setColumnCount(columns)
self.info_field.setRowCount(rows)
self.info_field.setHorizontalHeaderLabels(self.measurements_storage.get_header(save_orientation))
self.info_field.setVerticalHeaderLabels(self.measurements_storage.get_rows(save_orientation))
for x in range(rows):
for y in range(columns):
self.info_field.setItem(
x, y, QTableWidgetItem(self.measurements_storage.get_val_as_str(x, y, save_orientation))
)
self._update_file_info(save_orientation, rows, columns)
self.info_field.setEditTriggers(QAbstractItemView.NoEditTriggers)

def append_measurement_result(self): # pragma: no cover
Expand Down
4 changes: 3 additions & 1 deletion package/PartSegCore/analysis/measurement_calculation.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,9 @@ def to_dataframe(self, all_components=False) -> pd.DataFrame:
for label, units in zip(self.get_labels(all_components=all_components), self.get_units(all_components))
]
df = pd.DataFrame(data, columns=columns, index=self.components_info.roi_components)
return df.astype({"Segmentation component": int}).set_index("Segmentation component")
if "Segmentation component" in df.columns:
df = df.astype({"Segmentation component": int}).set_index("Segmentation component")
return df

def set_filename(self, path_fo_file: str):
"""
Expand Down

0 comments on commit 39f88a9

Please sign in to comment.