Skip to content

Commit

Permalink
Add checks for trajectories without molecules in MoleculeWidget
Browse files Browse the repository at this point in the history
  • Loading branch information
MBartkowiakSTFC committed Feb 3, 2025
1 parent d21f020 commit 71e303b
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 8 deletions.
4 changes: 2 additions & 2 deletions MDANSE/Tests/UnitTests/molecules/test_connectivity.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,5 +45,5 @@ def test_identify_molecules(trajectory: Trajectory):
for ms in molstrings[1:]:
result = result and ms == molstrings[0]
assert result
print(chemical_system.unique_molecule_names)
assert len(chemical_system.unique_molecule_names) == 1
print(chemical_system.unique_molecules())
assert len(chemical_system.unique_molecules()) == 1
23 changes: 17 additions & 6 deletions MDANSE_GUI/Src/MDANSE_GUI/InputWidgets/MoleculeWidget.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,10 @@ def __init__(self, *args, **kwargs):
self.field.addItems(option_list)
self.field.setCurrentText(default_option)
self.selected_name = self.field.currentText()
self.selected_mol = self.mol_dict[self.selected_name]
if self.selected_name in self.mol_dict.keys():
self.selected_mol = self.mol_dict[self.selected_name]
else:
self.selected_mol = None
self.field.currentTextChanged.connect(self.updateValue)
self.field.currentTextChanged.connect(self.molecule_changed)
button = QPushButton(self._base)
Expand All @@ -105,16 +108,22 @@ def molecule_changed(self):
Change molecule preview and molecule information
"""
self.selected_name = self.field.currentText()
self.selected_mol = self.mol_dict[self.selected_name]
self.window = MoleculePreviewWidget(
self._base, self.selected_mol, self.selected_name, self.atom_database
)
try:
self.selected_mol = self.mol_dict[self.selected_name]
except KeyError:
self.selected_mol = None
else:
self.window = MoleculePreviewWidget(
self._base, self.selected_mol, self.selected_name, self.atom_database
)

@Slot()
def button_clicked(self):
"""
Opens a window that shows a preview of selected molecule
"""
if self.selected_mol is None:
return
self.window = MoleculePreviewWidget(
self._base, self.selected_mol, self.selected_name, self.atom_database
)
Expand All @@ -137,4 +146,6 @@ def default_labels(self):
self._tooltip = "You only have one option. Choose wisely."

def get_widget_value(self):
return self._field.currentText()
mol_key = self._field.currentText()
if mol_key in self.mol_dict.keys():
return mol_key

0 comments on commit 71e303b

Please sign in to comment.