diff --git a/FoxDot/lib/Bang.py b/FoxDot/lib/Bang.py index 4ec9647b..591b443a 100644 --- a/FoxDot/lib/Bang.py +++ b/FoxDot/lib/Bang.py @@ -17,8 +17,11 @@ class Bang: duration = 0.1 def __init__(self, player, kwargs): + # running out of the FoxDotEditor + if not player.widget: + return - self.widget = execute.namespace['FoxDot'] + self.widget = player.widget self.func = kwargs.get("func", None) @@ -55,15 +58,11 @@ def __init__(self, player, kwargs): # Only update visuals if the line is visible - if player.line_number is None: - + if player.id not in execute.player_line_numbers: return - if a <= player.line_number <= b: - - row = player.line_number - col = player.whitespace - env = player.envelope + row, col = execute.player_line_numbers[player.id] + if a <= row <= b: clock = player.metro duration = clock.beat_dur( player.dur / 2 ) diff --git a/FoxDot/lib/Players.py b/FoxDot/lib/Players.py index f701e4ef..4b1a3fce 100644 --- a/FoxDot/lib/Players.py +++ b/FoxDot/lib/Players.py @@ -1559,15 +1559,15 @@ def send(self, timestamp=None, verbose=True, **kwargs): timestamp = timestamp if timestamp is not None else self.queue_block.time - # self.do_bang = False + self.do_bang = False for i in range(self.get_event_length(**kwargs)): self.send_osc_message(self.event, i, timestamp=timestamp, verbose=verbose, **kwargs) - # if self.do_bang: + if self.do_bang: - # self.bang() + self.bang() return @@ -1651,7 +1651,7 @@ def push_osc_to_server(self, packet, timestamp, verbose=True, **kwargs): self.queue_block.append_osc_message(compiled_msg) - # self.do_bang = True + self.do_bang = True return @@ -1961,17 +1961,17 @@ def num_key_references(self): def _replace_degree(self, new_degree): # Update the GUI if possible - #if self.widget: - # if self.synthdef == SamplePlayer: - # if self.playstring is not None: - # # Replace old_string with new string (only works with plain string patterns) - # new_string = new_degree.string() - # self.widget.addTask(target=self.widget.replace, args=(self.line_number, self.playstring, new_string)) - # self.playstring = new_string - # else: - # # Replaces the degree pattern in the widget (experimental) - # # self.widget.addTask(target=self.widget.replace_re, args=(self.line_number,), kwargs={'new':str(new_degree)}) - # self.playstring = str(new_degree) + if self.widget: + if self.synthdef == SamplePlayer: + if self.playstring is not None: + # Replace old_string with new string (only works with plain string patterns) + new_string = new_degree.string() + self.widget.addTask(target=self.widget.replace, args=(self.line_number, self.playstring, new_string)) + self.playstring = new_string + else: + # Replaces the degree pattern in the widget (experimental) + # self.widget.addTask(target=self.widget.replace_re, args=(self.line_number,), kwargs={'new':str(new_degree)}) + self.playstring = str(new_degree) setattr(self, 'degree', new_degree) return diff --git a/FoxDot/lib/Workspace/Editor.py b/FoxDot/lib/Workspace/Editor.py index c6e2a65a..0026cc91 100644 --- a/FoxDot/lib/Workspace/Editor.py +++ b/FoxDot/lib/Workspace/Editor.py @@ -513,7 +513,7 @@ def exec_line(self, event=None, insert=INSERT): try: execute( self.text.get(a, b) ) - # execute.update_line_numbers(self.text, a, b) + execute.update_line_numbers(self.text, a, b) except: @@ -584,7 +584,7 @@ def exec_block(self, event=None, insert=INSERT): try: execute( self.text.get( a , b ) ) - # execute.update_line_numbers(self.text, a, b) + execute.update_line_numbers(self.text, a, b) except: @@ -895,7 +895,7 @@ def newline(self, event=None, insert=INSERT): # Update player line numbers - # execute.update_line_numbers(self.text) + execute.update_line_numbers(self.text) whitespace = get_tabspace(line) # amount of whitespace to add @@ -1018,7 +1018,7 @@ def backspace(self, event=None, insert=INSERT): # Update player line numbers - # execute.update_line_numbers(self.text) + execute.update_line_numbers(self.text) return "break" @@ -1040,7 +1040,7 @@ def backspace(self, event=None, insert=INSERT): # Update player line numbers - # execute.update_line_numbers(self.text, start="%d.0" % (line-1), remove=int(line!=1)) + execute.update_line_numbers(self.text, start="%d.0" % (line-1), remove=int(line!=1)) self.text.delete(index(line-1, END), insert) @@ -1072,7 +1072,7 @@ def delete(self, event=None, insert=INSERT): self.update(event) - # execute.update_line_numbers(self.text) + execute.update_line_numbers(self.text) return "break" @@ -1152,7 +1152,7 @@ def delete_word(self, event): self.update(event) - # execute.update_line_numbers(self.text) + execute.update_line_numbers(self.text) return diff --git a/FoxDot/lib/Workspace/LineNumbers.py b/FoxDot/lib/Workspace/LineNumbers.py index c941c3c5..bce3264a 100644 --- a/FoxDot/lib/Workspace/LineNumbers.py +++ b/FoxDot/lib/Workspace/LineNumbers.py @@ -17,7 +17,7 @@ def redraw(self, *args): # Update player line numbers - # execute.update_line_numbers(self.textwidget) + execute.update_line_numbers(self.textwidget) # Clear