[meld: 5/8] [FIX] change code as discussed in !79




commit 5944d0254cf58175299fc81047f5fc796a994025
Author: Helly Guo <buffoonguo gmail com>
Date:   Sun Feb 27 20:02:24 2022 +0800

    [FIX] change code as discussed in !79
    
    1 remove unmark
    2 sperate the section, use a new section
    3 after mark-then-compare, do not set marked = None. It can be reused.
    4 coding as a pythoner, change code to fit python style

 meld/dirdiff.py                    | 30 ++++++++++++++++--------------
 meld/resources/ui/dirdiff-menus.ui |  7 +++----
 2 files changed, 19 insertions(+), 18 deletions(-)
---
diff --git a/meld/dirdiff.py b/meld/dirdiff.py
index 2e894088..ba45f1c9 100644
--- a/meld/dirdiff.py
+++ b/meld/dirdiff.py
@@ -452,7 +452,6 @@ class DirDiff(Gtk.VBox, tree.TreeviewCommon, MeldDoc):
             ('folder-collapse', self.action_folder_collapse),
             ('folder-compare', self.action_diff),
             ('folder-mark', self.action_mark),
-            ('folder-unmark', self.action_unmark),
             ('folder-compare-marked', self.action_diff_marked),
             ('folder-copy-left', self.action_copy_left),
             ('folder-copy-right', self.action_copy_right),
@@ -1277,9 +1276,8 @@ class DirDiff(Gtk.VBox, tree.TreeviewCommon, MeldDoc):
             self.set_action_enabled('folder-expand', is_single_foldable_row)
             self.set_action_enabled('folder-compare', True)
             self.set_action_enabled('folder-mark', True)
-            self.set_action_enabled('folder-unmark', self.marked is not None)
-            self.set_action_enabled(
-                'folder-compare-marked', self.marked is not None)
+            self.set_action_enabled('folder-compare-marked',
+                self.marked is not None and self.marked.get('pane', -1) != pane)
             self.set_action_enabled('folder-delete', is_valid)
             self.set_action_enabled('folder-copy-left', is_valid and pane > 0)
             self.set_action_enabled(
@@ -1290,7 +1288,6 @@ class DirDiff(Gtk.VBox, tree.TreeviewCommon, MeldDoc):
                 'folder-collapse',
                 'folder-compare',
                 'folder-mark',
-                'folder-unmark',
                 'folder-compare-marked',
                 'folder-copy-left',
                 'folder-copy-right',
@@ -1463,28 +1460,33 @@ class DirDiff(Gtk.VBox, tree.TreeviewCommon, MeldDoc):
             return
 
         selected = self._get_selected_paths(pane)
-        self.marked = {}
-        self.marked['mark'] = self.model.get_iter(selected[0])
-        self.marked['pane'] = pane
+        if selected is None:
+            return
 
-    def action_unmark(self, *args):
-        self.marked = None
+        self.marked = {
+            'mark': self.model.get_iter(selected[0]),
+            'pane': pane
+        }
 
     def action_diff_marked(self, *args):
         if self.marked is None:
             return
+
         marked = self.marked['mark']
         marked_pane = self.marked['pane']
-        self.action_unmark()
 
         pane = self._get_focused_pane()
         if pane is None:
             return
 
         selected = self.model.get_iter(self._get_selected_paths(pane)[0])
-        row_paths = []
-        row_paths.append(self.model.value_paths(marked)[marked_pane])
-        row_paths.append(self.model.value_paths(selected)[pane])
+        if selected is None:
+            return
+
+        row_paths = [
+            self.model.value_paths(marked)[marked_pane],
+            self.model.value_paths(selected)[pane]
+        ]
         gfiles = [Gio.File.new_for_path(p)
                   for p in row_paths if os.path.exists(p)]
         self.create_diff_signal.emit(gfiles, {})
diff --git a/meld/resources/ui/dirdiff-menus.ui b/meld/resources/ui/dirdiff-menus.ui
index 4544744f..2ff85982 100644
--- a/meld/resources/ui/dirdiff-menus.ui
+++ b/meld/resources/ui/dirdiff-menus.ui
@@ -7,14 +7,13 @@
         <attribute name="label" translatable="yes">_Compare selected files</attribute>
         <attribute name="action">view.folder-compare</attribute>
       </item>
+    </section>
+    <section>
+      <attribute name="id">mark-then-compare-section</attribute>
       <item>
         <attribute name="label" translatable="yes">_Mark selected file</attribute>
         <attribute name="action">view.folder-mark</attribute>
       </item>
-      <item>
-        <attribute name="label" translatable="yes">_Unmark selected file</attribute>
-        <attribute name="action">view.folder-unmark</attribute>
-      </item>
       <item>
         <attribute name="label" translatable="yes">Compare _with marked file</attribute>
         <attribute name="action">view.folder-compare-marked</attribute>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]