# -*- coding: ISO-8859-1 -*- """ capellaScript -- Copyright (c) 2003 Peter Becker >>> Hälse ausrichten Nach einem einstimmigen Stimmenexport aus einer mehrstimmigen Notenzeile sind die Hälse meist verkehrt ausgerichtet ( wie im Original ). Dieses Script setzt die Ausrichtung der Hälse auf 'je nach Lage' zurück. Erzwungene Halsrichtungen lassen sich ebenfalls zurücksetzen. Bei Problemen bitte eine Mail an peter_becker@freenet.de <<< """ # 22.11.2003 Erste Version # 24.11.2003 Erweiterung um erzwungene Halsrichtungen from caplib.capDOM import ScoreChange import tempfile class HalsWeg (ScoreChange): def changeElement(self, el): if el.tagName == 'voices': stimme = ScoreChange.getFirstChildElement(self, el, 'voice') if stimme.hasAttribute('stemDir'): stimme.removeAttribute('stemDir') if setStem: if el.tagName == 'chord': hals = ScoreChange.getFirstChildElement(self, el, 'stem') if str(hals) <> 'None': if hals.hasAttribute('dir'): hals.removeAttribute('dir') if activeScore(): activeScore().registerUndo("Hälse ausrichten") tempFile1 = tempfile.mktemp('.capx') tempFile2 = tempfile.mktemp('.capx') activeScore().write(tempFile1) checkStem = CheckBox('Erzwungene Halsrichtungen für einzelne Noten ebenfalls zurücksetzen',value='0') BoxStem = VBox([checkStem], padding=8) vBox = VBox([BoxStem], padding=8) dlg = Dialog('Hälse ausrichten', vBox) if dlg.run(): setStem = checkStem.value() HalsWeg(tempFile1, tempFile2) activeScore().read(tempFile2) os.remove(tempFile1) os.remove(tempFile2)