def __init__(self, qscore, note, screenPos): super(NotesMenu, self).__init__(qscore) self.note = note qscore.clearDragSelection() self.menu = QMenuIgnoreCancelClick(qscore) kit = qscore.score.drumKit for noteHead in kit.allowedNoteHeads(note.drumIndex): def noteAction(nh=noteHead): qscore.sendFsmEvent(Event.MenuSelect(nh)) self.menu.addAction(noteHead, noteAction) QtCore.QTimer.singleShot(0, lambda: self.menu.exec_(screenPos))
class NotesMenu(FsmState): def __init__(self, qscore, note, screenPos): super(NotesMenu, self).__init__(qscore) self.note = note qscore.clearDragSelection() self.menu = QMenuIgnoreCancelClick(qscore) kit = qscore.score.drumKit for noteHead in kit.allowedNoteHeads(note.drumIndex): def noteAction(nh=noteHead): qscore.sendFsmEvent(Event.MenuSelect(nh)) self.menu.addAction(noteHead, noteAction) QtCore.QTimer.singleShot(0, lambda: self.menu.exec_(screenPos)) def send(self, event): msgType = type(event) if msgType == Event.MenuSelect: command = ToggleNote(self.qscore, self.note, event.data) self.qscore.addCommand(command) return Waiting(self.qscore) elif msgType == Event.MenuCancel: return Waiting(self.qscore) elif msgType == Event.Escape: self.menu.close() return Waiting(self.qscore) elif msgType == Event.StartPlaying: self.menu.close() return Playing(self.qscore) else: return self
class NotesMenu(FsmState): def __init__(self, qscore, note, screenPos): super(NotesMenu, self).__init__(qscore) self.note = note qscore.clearDragSelection() self.menu = QMenuIgnoreCancelClick(qscore) kit = qscore.score.drumKit for noteHead in kit.allowedNoteHeads(note.drumIndex): def noteAction(nh = noteHead): qscore.sendFsmEvent(Event.MenuSelect(nh)) self.menu.addAction(noteHead, noteAction) QtCore.QTimer.singleShot(0, lambda: self.menu.exec_(screenPos)) def send(self, event): msgType = type(event) if msgType == Event.MenuSelect: command = ToggleNote(self.qscore, self.note, event.data) self.qscore.addCommand(command) return Waiting(self.qscore) elif msgType == Event.MenuCancel: return Waiting(self.qscore) elif msgType == Event.Escape: self.menu.close() return Waiting(self.qscore) elif msgType == Event.StartPlaying: self.menu.close() return Playing(self.qscore) else: return self
def __init__(self, qscore, note, screenPos): super(NotesMenu, self).__init__(qscore) self.note = note qscore.clearDragSelection() self.menu = QMenuIgnoreCancelClick(qscore) kit = qscore.score.drumKit for noteHead in kit.allowedNoteHeads(note.drumIndex): def noteAction(nh = noteHead): qscore.sendFsmEvent(Event.MenuSelect(nh)) self.menu.addAction(noteHead, noteAction) QtCore.QTimer.singleShot(0, lambda: self.menu.exec_(screenPos))