Skip to content

Commit cd61669

Browse files
committed
filediff: Refactor merging actions to remove params from callback
1 parent dd7b8fd commit cd61669

2 files changed

Lines changed: 12 additions & 7 deletions

File tree

data/ui/filediff.ui

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,14 +137,14 @@
137137
<object class="GtkAction" id="MergeFromLeft">
138138
<property name="label" translatable="yes">Merge All from Left</property>
139139
<property name="tooltip" translatable="yes">Merge all non-conflicting changes from the left</property>
140-
<signal name="activate" handler="pull_all_non_conflicting_changes(-1)" swapped="no"/>
140+
<signal name="activate" handler="action_pull_all_changes_left" swapped="no"/>
141141
</object>
142142
</child>
143143
<child>
144144
<object class="GtkAction" id="MergeFromRight">
145145
<property name="label" translatable="yes">Merge All from Right</property>
146146
<property name="tooltip" translatable="yes">Merge all non-conflicting changes from the right</property>
147-
<signal name="activate" handler="pull_all_non_conflicting_changes(1)" swapped="no"/>
147+
<signal name="activate" handler="action_pull_all_changes_right" swapped="no"/>
148148
</object>
149149
</child>
150150
<child>

meld/filediff.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -608,11 +608,7 @@ def action_copy_change_right_down(self, *args):
608608
self.copy_chunk(
609609
src, dst, self.get_action_chunk(src, dst), copy_up=False)
610610

611-
def pull_all_non_conflicting_changes(self, direction):
612-
assert direction in (-1, 1)
613-
dst = self._get_focused_pane()
614-
src = dst + direction
615-
assert src in range(self.num_panes)
611+
def pull_all_non_conflicting_changes(self, src, dst):
616612
merger = merge.Merger()
617613
merger.differ = self.linediffer
618614
merger.texts = self.buffer_texts
@@ -622,11 +618,20 @@ def pull_all_non_conflicting_changes(self, direction):
622618
self.on_textbuffer_begin_user_action()
623619
self.textbuffer[dst].set_text(mergedfile)
624620
self.on_textbuffer_end_user_action()
621+
625622
def resync():
626623
self._sync_vscroll_lock = False
627624
self._sync_vscroll(self.scrolledwindow[src].get_vadjustment(), src)
628625
self.scheduler.add_task(resync)
629626

627+
def action_pull_all_changes_left(self, *args):
628+
src, dst = self.get_action_panes(-1, reverse=True)
629+
self.pull_all_non_conflicting_changes(src, dst)
630+
631+
def action_pull_all_changes_right(self, *args):
632+
src, dst = self.get_action_panes(+1, reverse=True)
633+
self.pull_all_non_conflicting_changes(src, dst)
634+
630635
def merge_all_non_conflicting_changes(self):
631636
dst = 1
632637
merger = merge.Merger()

0 commit comments

Comments
 (0)