OSDN Git Service

BUG: [ 2129561 ] Must Show Different to Show L/R Unique: Fldr Cmpr
authorKimmo Varis <kimmov@gmail.com>
Wed, 28 Jan 2009 16:37:54 +0000 (16:37 +0000)
committerKimmo Varis <kimmov@gmail.com>
Wed, 28 Jan 2009 16:37:54 +0000 (16:37 +0000)
Docs/Users/ChangeLog.txt
Src/DirDoc.cpp

index 24f26e4..91b8018 100644 (file)
@@ -9,6 +9,7 @@ WinMerge 2.13.2
   Bugfix: Could not hide folders in recursive compare (#2528749)
   Bugfix: Folder Compare:Copy Right/Left don't create folder
     structure (#2529517)
+  Bugfix: Must Show Different to Show L/R Unique (#2129561)
   Translation updates:
   - Brazilian (#2524796)
   - Chinese Traditional (#2540115)
index 0c6724a..b06e521 100644 (file)
@@ -410,18 +410,24 @@ BOOL CDirDoc::IsShowable(const DIFFITEM & di)
                // Subfolders in non-recursive compare can only be skipped or unique
                if (!m_bRecursive)
                {
-                       // result filters
-                       if (di.diffcode.isResultError() && !GetMainFrame()->m_bShowErrors)
-                               return FALSE;
-
                        // left/right filters
                        if (di.diffcode.isSideLeftOnly() &&     !GetOptionsMgr()->GetBool(OPT_SHOW_UNIQUE_LEFT))
                                return FALSE;
                        if (di.diffcode.isSideRightOnly() && !GetOptionsMgr()->GetBool(OPT_SHOW_UNIQUE_RIGHT))
                                return FALSE;
+
+                       // result filters
+                       if (di.diffcode.isResultError() && !GetMainFrame()->m_bShowErrors)
+                               return FALSE;
                }
                else // recursive (perhaps tree?) mode
                {
+                       // left/right filters
+                       if (di.diffcode.isSideLeftOnly() &&     !GetOptionsMgr()->GetBool(OPT_SHOW_UNIQUE_LEFT))
+                               return FALSE;
+                       if (di.diffcode.isSideRightOnly() && !GetOptionsMgr()->GetBool(OPT_SHOW_UNIQUE_RIGHT))
+                               return FALSE;
+
                        // result filters
                        if (di.diffcode.isResultError() && !GetMainFrame()->m_bShowErrors)
                                return FALSE;
@@ -431,16 +437,16 @@ BOOL CDirDoc::IsShowable(const DIFFITEM & di)
                                return FALSE;
                        if (di.diffcode.isResultDiff() && !GetOptionsMgr()->GetBool(OPT_SHOW_DIFFERENT))
                                return FALSE;
-                       // left/right filters
-                       if (di.diffcode.isSideLeftOnly() &&     !GetOptionsMgr()->GetBool(OPT_SHOW_UNIQUE_LEFT))
-                               return FALSE;
-                       if (di.diffcode.isSideRightOnly() && !GetOptionsMgr()->GetBool(OPT_SHOW_UNIQUE_RIGHT))
-                               return FALSE;
-
                }
        }
        else
        {
+               // left/right filters
+               if (di.diffcode.isSideLeftOnly() && !GetOptionsMgr()->GetBool(OPT_SHOW_UNIQUE_LEFT))
+                       return FALSE;
+               if (di.diffcode.isSideRightOnly() && !GetOptionsMgr()->GetBool(OPT_SHOW_UNIQUE_RIGHT))
+                       return FALSE;
+
                // file type filters
                if (di.diffcode.isBin() && !GetOptionsMgr()->GetBool(OPT_SHOW_BINARIES))
                        return FALSE;
@@ -452,12 +458,6 @@ BOOL CDirDoc::IsShowable(const DIFFITEM & di)
                        return FALSE;
                if (di.diffcode.isResultDiff() && !GetOptionsMgr()->GetBool(OPT_SHOW_DIFFERENT))
                        return FALSE;
-
-               // left/right filters
-               if (di.diffcode.isSideLeftOnly() && !GetOptionsMgr()->GetBool(OPT_SHOW_UNIQUE_LEFT))
-                       return FALSE;
-               if (di.diffcode.isSideRightOnly() && !GetOptionsMgr()->GetBool(OPT_SHOW_UNIQUE_RIGHT))
-                       return FALSE;
        }
        return TRUE;
 }