Merge lp:~a1s/qbrz/fix-diff-button into lp:qbrz

Proposed by Aleksandr Smyshliaev
Status: Merged
Approved by: Robert Ladyman
Approved revision: 1642
Merged at revision: 1645
Proposed branch: lp:~a1s/qbrz/fix-diff-button
Merge into: lp:qbrz
Diff against target: 106 lines (+16/-13)
5 files modified
lib/diff.py (+12/-9)
lib/diffwindow.py (+1/-1)
lib/log.py (+1/-1)
lib/logwidget.py (+1/-1)
lib/treewidget.py (+1/-1)
To merge this branch: bzr merge lp:~a1s/qbrz/fix-diff-button
Reviewer Review Type Date Requested Status
Robert Ladyman Approve
Review via email: mp+413830@code.launchpad.net

Commit message

Fix launching diff viewers

Description of the change

In the diff push button and pop-up menu there is some confusion between Qt built-in signal, widget method with the same name, and custom signal bound to the QBrz classes.

With this patch, I rename the signal hanlder method, and connect the handlers to the QBrz signal instead of non-existing variant of the overloaded base signal.

Also, the syntax for external diff command lines has changed in Breezy config: now it's {old_path} and {new_path} instead of @old_path and @new_path. I've changed the external diff command in QBrz to use the new syntax.

To post a comment you must log in.
Revision history for this message
Robert Ladyman (saccadic-masking) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'lib/diff.py'
--- lib/diff.py 2021-01-08 13:56:34 +0000
+++ lib/diff.py 2022-01-08 13:14:01 +0000
@@ -131,11 +131,11 @@
131 self.setDefaultAction(action)131 self.setDefaultAction(action)
132 self.addAction(action)132 self.addAction(action)
133133
134 self.triggered[QAction].connect(self.triggered)134 self.triggered[QtWidgets.QAction].connect(self.do_trigger)
135135
136 def triggered(self, action):136 def do_trigger(self, action):
137 ext_diff = str(action.data())137 ext_diff = str(action.data())
138 self.triggered.emit(ext_diff)138 self._triggered.emit(ext_diff)
139139
140140
141class DiffButtons(QtWidgets.QWidget):141class DiffButtons(QtWidgets.QWidget):
@@ -148,7 +148,7 @@
148 self.default_button = QtWidgets.QPushButton(gettext('Diff'), self)148 self.default_button = QtWidgets.QPushButton(gettext('Diff'), self)
149 layout.addWidget(self.default_button)149 layout.addWidget(self.default_button)
150 layout.setSpacing(0)150 layout.setSpacing(0)
151 self.default_button.clicked.connect(self.triggered)151 self.default_button.clicked.connect(self.do_trigger)
152152
153 if has_ext_diff():153 if has_ext_diff():
154 self.menu = ExtDiffMenu(self)154 self.menu = ExtDiffMenu(self)
@@ -162,10 +162,13 @@
162 self.menu_button.style().pixelMetric(162 self.menu_button.style().pixelMetric(
163 QtWidgets.QStyle.PM_ButtonMargin)163 QtWidgets.QStyle.PM_ButtonMargin)
164 )164 )
165 self.menu.triggered['QString'].connect(self._triggered)165 self.menu._triggered.connect(self.do_trigger)
166166
167 def triggered(self, ext_diff=None):167 def do_trigger(self, ext_diff=None):
168 if ext_diff is None:168 # Note: this is connected to default_button.clicked
169 # as well as the menu events. The button passes it's
170 # checked state (always False here) in arguments.
171 if not ext_diff:
169 ext_diff = default_diff172 ext_diff = default_diff
170 self._triggered.emit(ext_diff)173 self._triggered.emit(ext_diff)
171174
@@ -438,8 +441,8 @@
438441
439 def set_command_string(self, command_string):442 def set_command_string(self, command_string):
440 command_template = cmdline.split(command_string)443 command_template = cmdline.split(command_string)
441 if '@' not in command_string:444 if "{old_path}" not in command_string:
442 command_template.extend(['@old_path', '@new_path'])445 command_template.extend(["{old_path}", "{new_path}"])
443 self.command_template = command_template446 self.command_template = command_template
444447
445 def finish(self):448 def finish(self):
446449
=== modified file 'lib/diffwindow.py'
--- lib/diffwindow.py 2021-05-26 19:10:36 +0000
+++ lib/diffwindow.py 2022-01-08 13:14:01 +0000
@@ -244,7 +244,7 @@
244 action.setToolTip(gettext("Launch an external diff application"))244 action.setToolTip(gettext("Launch an external diff application"))
245 ext_diff_menu = ExtDiffMenu(parent=self, include_builtin = False)245 ext_diff_menu = ExtDiffMenu(parent=self, include_builtin = False)
246 action.setMenu(ext_diff_menu)246 action.setMenu(ext_diff_menu)
247 ext_diff_menu.triggered['QString'].connect(self.ext_diff_triggered)247 ext_diff_menu._triggered.connect(self.ext_diff_triggered)
248 return action248 return action
249249
250 def create_view_menu(self):250 def create_view_menu(self):
251251
=== modified file 'lib/log.py'
--- lib/log.py 2021-01-08 13:56:34 +0000
+++ lib/log.py 2022-01-08 13:14:01 +0000
@@ -527,7 +527,7 @@
527 if has_ext_diff():527 if has_ext_diff():
528 diff_menu = ExtDiffMenu(self)528 diff_menu = ExtDiffMenu(self)
529 self.file_list_context_menu.addMenu(diff_menu)529 self.file_list_context_menu.addMenu(diff_menu)
530 diff_menu.triggered['QString'].connect(self.show_diff_files_ext)530 diff_menu._triggered.connect(self.show_diff_files_ext)
531 else:531 else:
532 show_diff_action = self.file_list_context_menu.addAction(gettext("Show &differences..."), self.show_diff_files)532 show_diff_action = self.file_list_context_menu.addAction(gettext("Show &differences..."), self.show_diff_files)
533 self.file_list_context_menu.setDefaultAction(show_diff_action)533 self.file_list_context_menu.setDefaultAction(show_diff_action)
534534
=== modified file 'lib/logwidget.py'
--- lib/logwidget.py 2021-01-08 11:30:55 +0000
+++ lib/logwidget.py 2022-01-08 13:14:01 +0000
@@ -140,7 +140,7 @@
140 if diff.has_ext_diff():140 if diff.has_ext_diff():
141 diff_menu = diff.ExtDiffMenu(self, set_default=diff_is_default_action)141 diff_menu = diff.ExtDiffMenu(self, set_default=diff_is_default_action)
142 self.context_menu.addMenu(diff_menu)142 self.context_menu.addMenu(diff_menu)
143 diff_menu.triggered['QString'].connect(self.show_diff_ext)143 diff_menu._triggered.connect(self.show_diff_ext)
144 else:144 else:
145 show_diff_action = self.context_menu.addAction(gettext("Show &differences..."), self.show_diff)145 show_diff_action = self.context_menu.addAction(gettext("Show &differences..."), self.show_diff)
146 if diff_is_default_action:146 if diff_is_default_action:
147147
=== modified file 'lib/treewidget.py'
--- lib/treewidget.py 2021-05-26 19:10:36 +0000
+++ lib/treewidget.py 2022-01-08 13:14:01 +0000
@@ -1804,7 +1804,7 @@
1804 if has_ext_diff():1804 if has_ext_diff():
1805 diff_menu = ExtDiffMenu(self)1805 diff_menu = ExtDiffMenu(self)
1806 self.action_show_diff = self.context_menu.addMenu(diff_menu)1806 self.action_show_diff = self.context_menu.addMenu(diff_menu)
1807 diff_menu.triggered['QString'].connect(self.show_differences)1807 diff_menu._triggered.connect(self.show_differences)
1808 else:1808 else:
1809 self.action_show_diff = self.context_menu.addAction(gettext("Show &differences"), self.show_differences)1809 self.action_show_diff = self.context_menu.addAction(gettext("Show &differences"), self.show_differences)
18101810

Subscribers

People subscribed via source and target branches