Coverage for /builds/ase/ase/ase/gui/repeat.py: 95.45%
22 statements
« prev ^ index » next coverage.py v7.5.3, created at 2025-08-02 00:12 +0000
« prev ^ index » next coverage.py v7.5.3, created at 2025-08-02 00:12 +0000
1# fmt: off
3import ase.gui.ui as ui
4from ase.gui.i18n import _
7class Repeat:
8 def __init__(self, gui):
9 win = ui.Window(_('Repeat'), wmtype='utility')
10 win.add(_('Repeat atoms:'))
11 self.repeat = [ui.SpinBox(r, 1, 9, 1, self.change)
12 for r in gui.images.repeat]
13 win.add(self.repeat)
14 win.add(ui.Button(_('Set unit cell'), self.set_unit_cell))
16 for sb, vec in zip(self.repeat, gui.atoms.cell):
17 if not vec.any():
18 sb.active = False
20 self.gui = gui
22 def change(self):
23 repeat = [int(r.value) for r in self.repeat]
24 self.gui.images.repeat_images(repeat)
25 self.gui.set_frame()
27 def set_unit_cell(self):
28 self.gui.images.repeat_unit_cell()
29 for r in self.repeat:
30 r.value = 1
31 self.gui.set_frame()