OSDN Git Service

PATCH: [ 1699585 ] Fix copy confirmation dialog for CopyTo
authorKimmo Varis <kimmov@gmail.com>
Fri, 13 Apr 2007 17:22:58 +0000 (17:22 +0000)
committerKimmo Varis <kimmov@gmail.com>
Fri, 13 Apr 2007 17:22:58 +0000 (17:22 +0000)
27 files changed:
Src/Changes.txt
Src/ConfirmFolderCopyDlg.cpp
Src/DirActions.cpp
Src/FileActionScript.h
Src/Languages/Brazilian/MergeBrazilian.rc
Src/Languages/Bulgarian/MergeBulgarian.rc
Src/Languages/Catalan/MergeCatalan.rc
Src/Languages/ChineseSimplified/MergeChineseSimplified.rc
Src/Languages/ChineseTraditional/MergeChineseTraditional.rc
Src/Languages/Czech/MergeCzech.rc
Src/Languages/Danish/MergeDanish.rc
Src/Languages/Dutch/MergeDutch.rc
Src/Languages/French/MergeFrench.rc
Src/Languages/German/MergeGerman.rc
Src/Languages/Hungarian/MergeHungarian.rc
Src/Languages/Italian/MergeItalian.rc
Src/Languages/Japanese/MergeJapanese.rc
Src/Languages/Korean/MergeKorean.rc
Src/Languages/Norwegian/MergeNorwegian.rc
Src/Languages/Polish/MergePolish.rc
Src/Languages/Russian/MergeRussian.rc
Src/Languages/Slovak/MergeSlovak.rc
Src/Languages/Spanish/MergeSpanish.rc
Src/Languages/Swedish/MergeSwedish.rc
Src/Languages/Turkish/MergeTurkish.rc
Src/Merge.rc
Src/resource.h

index 99b36a0..7739fe8 100644 (file)
@@ -2,6 +2,11 @@ Src\Changes.txt
 Add new items to top.
 (This summarizes all changes to all files under Src, including Src\Languages.)
 
+2007-04-13 Kimmo
+ PATCH: [ 1699585 ] Fix copy confirmation dialog for CopyTo
+  Src: ConfirmFolderCopyDlg.cpp DirActions.cpp FileActionScript.h Merge.rc resource.h
+  Src/Languages/*: Merge*.rc
+
 2007-04-12 Kimmo
  BUG: [ 1698159 ] Invalid state change assertion
   Src: CompareStats.cpp CompareStats.h DiffThread.cpp DirCompProgressDlg.cpp
index cc1f204..de64c33 100644 (file)
@@ -74,7 +74,7 @@ BOOL ConfirmFolderCopyDlg::OnInitDialog()
 {\r
        CDialog::OnInitDialog();\r
 \r
-       GetDlgItem(IDC_FLDCONFIRM_TO_PATH)->SetFocus();\r
+       GetDlgItem(IDNO)->SetFocus();\r
 \r
        // Load warning icon\r
        // TODO: we can have per-action icons?\r
index 9e59dfc..54317c3 100644 (file)
@@ -42,7 +42,7 @@ static char THIS_FILE[] = __FILE__;
 
 /**
  * @brief Ask user a confirmation for copying item(s).
- * Shows a confirmatino dialog for copy operation. Depending ont item count
+ * Shows a confirmation dialog for copy operation. Depending ont item count
  * dialog shows full paths to items (single item) or base paths of compare
  * (multiple items).
  * @param [in] origin Origin side of the item(s).
@@ -50,10 +50,11 @@ static char THIS_FILE[] = __FILE__;
  * @param [in] count Number of items.
  * @param [in] src Source path.
  * @param [in] dest Destination path.
+ * @param [in] destIsSide Is destination path either of compare sides?
  * @return IDYES if copy should proceed, IDNO if aborted.
  */
 static BOOL ConfirmCopy(int origin, int destination, int count,
-               LPCTSTR src, LPCTSTR dest)
+               LPCTSTR src, LPCTSTR dest, BOOL destIsSide)
 {
        ConfirmFolderCopyDlg dlg;
        CString strQuestion;
@@ -75,10 +76,20 @@ static BOOL ConfirmCopy(int origin, int destination, int count,
        else
                sOrig = LoadResString(IDS_FROM_RIGHT);
 
-       if (destination == FileActionItem::UI_LEFT)
-               sDest = LoadResString(IDS_TO_LEFT);
+       if (destIsSide)
+       {
+               // Copy to left / right
+               if (destination == FileActionItem::UI_LEFT)
+                       sDest = LoadResString(IDS_TO_LEFT);
+               else
+                       sDest = LoadResString(IDS_TO_RIGHT);
+       }
        else
-               sDest = LoadResString(IDS_TO_RIGHT);
+       {
+               // Copy left/right to..
+               sDest = LoadResString(IDS_TO);
+       }
+
 
        dlg.m_question = strQuestion;
        dlg.m_fromText = sOrig;
@@ -352,7 +363,7 @@ void CDirView::DoCopyLeftTo()
                        act.dirflag = di.isDirectory();
                        act.context = sel;
                        act.atype = actType;
-                       act.UIResult = FileActionItem::UI_DESYNC;
+                       act.UIResult = FileActionItem::UI_DONT_CARE;
                        actionScript.AddActionItem(act);
                        ++selCount;
                }
@@ -407,7 +418,7 @@ void CDirView::DoCopyRightTo()
                        act.dirflag = di.isDirectory();
                        act.context = sel;
                        act.atype = actType;
-                       act.UIResult = FileActionItem::UI_DESYNC;
+                       act.UIResult = FileActionItem::UI_DONT_CARE;
                        actionScript.AddActionItem(act);
                        ++selCount;
                }
@@ -554,15 +565,21 @@ BOOL CDirView::ConfirmActionList(const FileActionScript & actionList, int selCou
        // Maybe we should show a list of files with actions done..
        FileActionItem item = actionList.GetHeadActionItem();
 
+       BOOL bDestIsSide = TRUE;
+
        // special handling for the single item case, because it is probably the most common,
        // and we can give the user exact details easily for it
        switch(item.atype)
        {
        case FileAction::ACT_COPY:
+               if (item.UIResult == FileActionItem::UI_DONT_CARE)
+                       bDestIsSide = FALSE;
+
                if (actionList.GetActionItemCount() == 1)
                {
                        if (!ConfirmCopy(item.UIOrigin, item.UIDestination,
-                actionList.GetActionItemCount(), item.src, item.dest))
+                actionList.GetActionItemCount(), item.src, item.dest,
+                               bDestIsSide))
                        {
                                return FALSE;
                        }
@@ -581,7 +598,7 @@ BOOL CDirView::ConfirmActionList(const FileActionScript & actionList, int selCou
                        else
                                dst = GetDocument()->GetRightBasePath();
                        if (!ConfirmCopy(item.UIOrigin, item.UIDestination,
-                               actionList.GetActionItemCount(), src, dst))
+                               actionList.GetActionItemCount(), src, dst, bDestIsSide))
                        {
                                return FALSE;
                        }
index a21fa9d..b5f6443 100644 (file)
@@ -64,7 +64,16 @@ struct FileAction
  */
 struct FileActionItem : public FileAction
 {
-       typedef enum { UI_SYNC = 1, UI_DESYNC, UI_DEL_LEFT, UI_DEL_RIGHT, UI_DEL_BOTH,} UI_RESULT;
+       typedef enum
+       {
+               UI_SYNC = 1,
+               UI_DESYNC,
+               UI_DEL_LEFT,
+               UI_DEL_RIGHT,
+               UI_DEL_BOTH,
+               UI_DONT_CARE,
+       } UI_RESULT;
+
        typedef enum { UI_LEFT, UI_RIGHT } UI_SIDE;
 
        int context; /**< UI context */
index 59882db..f724a25 100644 (file)
@@ -1922,6 +1922,7 @@ END
 
 STRINGTABLE
 BEGIN
+    IDS_TO                  "To:"
     IDS_FROM_LEFT           "From left:"
     IDS_TO_LEFT             "To left:"
     IDS_FROM_RIGHT          "From right:"
index 4ce419e..47ecb46 100644 (file)
@@ -1940,6 +1940,7 @@ END
 
 STRINGTABLE
 BEGIN
+    IDS_TO                  "To:"
     IDS_FROM_LEFT           "From left:"
     IDS_TO_LEFT             "To left:"
     IDS_FROM_RIGHT          "From right:"
index 073ca8d..e9d7f1f 100644 (file)
@@ -1940,6 +1940,7 @@ END
 
 STRINGTABLE
 BEGIN
+    IDS_TO                  "To:"
     IDS_FROM_LEFT           "From left:"
     IDS_TO_LEFT             "To left:"
     IDS_FROM_RIGHT          "From right:"
index 94b118d..9034d95 100644 (file)
@@ -1923,6 +1923,7 @@ END
 
 STRINGTABLE
 BEGIN
+    IDS_TO                  "To:"
     IDS_FROM_LEFT           "From left:"
     IDS_TO_LEFT             "To left:"
     IDS_FROM_RIGHT          "From right:"
index 68348cf..262d68d 100644 (file)
@@ -1922,6 +1922,7 @@ END
 
 STRINGTABLE
 BEGIN
+    IDS_TO                  "To:"
     IDS_FROM_LEFT           "From left:"
     IDS_TO_LEFT             "To left:"
     IDS_FROM_RIGHT          "From right:"
index 8da5360..928a08a 100644 (file)
@@ -1922,6 +1922,7 @@ END
 
 STRINGTABLE
 BEGIN
+    IDS_TO                  "To:"
     IDS_FROM_LEFT           "Zleva:"
     IDS_TO_LEFT             "Doleva:"
     IDS_FROM_RIGHT          "Zprava:"
index 6ea5688..99c01e6 100644 (file)
@@ -1922,6 +1922,7 @@ END
 
 STRINGTABLE
 BEGIN
+    IDS_TO                  "To:"
     IDS_FROM_LEFT           "From left:"
     IDS_TO_LEFT             "To left:"
     IDS_FROM_RIGHT          "From right:"
index 867777c..554e10c 100644 (file)
@@ -1922,6 +1922,7 @@ END
 
 STRINGTABLE
 BEGIN
+    IDS_TO                  "To:"
     IDS_FROM_LEFT           "From left:"
     IDS_TO_LEFT             "To left:"
     IDS_FROM_RIGHT          "From right:"
index 1740045..178c302 100644 (file)
@@ -1917,6 +1917,7 @@ END
 
 STRINGTABLE
 BEGIN
+    IDS_TO                  "To:"
     IDS_FROM_LEFT           "From left:"
     IDS_TO_LEFT             "To left:"
     IDS_FROM_RIGHT          "From right:"
index ebd8c91..909c7ac 100644 (file)
@@ -1922,6 +1922,7 @@ END
 
 STRINGTABLE
 BEGIN
+    IDS_TO                  "To:"
     IDS_FROM_LEFT           "From left:"
     IDS_TO_LEFT             "To left:"
     IDS_FROM_RIGHT          "From right:"
index aa5c04b..1d8de97 100644 (file)
@@ -1920,6 +1920,7 @@ END
 
 STRINGTABLE
 BEGIN
+    IDS_TO                  "To:"
     IDS_FROM_LEFT           "From left:"
     IDS_TO_LEFT             "To left:"
     IDS_FROM_RIGHT          "From right:"
index 2dc3e07..6e8dc11 100644 (file)
@@ -1922,6 +1922,7 @@ END
 
 STRINGTABLE
 BEGIN
+    IDS_TO                  "To:"
     IDS_FROM_LEFT           "From left:"
     IDS_TO_LEFT             "To left:"
     IDS_FROM_RIGHT          "From right:"
index 89eda96..e45488b 100644 (file)
@@ -1922,6 +1922,7 @@ END
 
 STRINGTABLE
 BEGIN
+    IDS_TO                  "To:"
     IDS_FROM_LEFT           "\8d\82©\82ç:"
     IDS_TO_LEFT             "\8d\82Ö:"
     IDS_FROM_RIGHT          "\89E\82©\82ç:"
index 184d95a..4b70b47 100644 (file)
@@ -1922,6 +1922,7 @@ END
 
 STRINGTABLE
 BEGIN
+    IDS_TO                  "To:"
     IDS_FROM_LEFT           "From left:"
     IDS_TO_LEFT             "To left:"
     IDS_FROM_RIGHT          "From right:"
index 64e6f57..a31fafe 100644 (file)
@@ -1922,6 +1922,7 @@ END
 
 STRINGTABLE
 BEGIN
+    IDS_TO                  "To:"
     IDS_FROM_LEFT           "From left:"
     IDS_TO_LEFT             "To left:"
     IDS_FROM_RIGHT          "From right:"
index 1797c3f..515712a 100644 (file)
@@ -1922,6 +1922,7 @@ END
 
 STRINGTABLE
 BEGIN
+    IDS_TO                  "To:"
     IDS_FROM_LEFT           "From left:"
     IDS_TO_LEFT             "To left:"
     IDS_FROM_RIGHT          "From right:"
index 307ba80..b9199ec 100644 (file)
@@ -1917,6 +1917,7 @@ END
 
 STRINGTABLE
 BEGIN
+    IDS_TO                  "To:"
     IDS_FROM_LEFT           "From left:"
     IDS_TO_LEFT             "To left:"
     IDS_FROM_RIGHT          "From right:"
index 6af1398..54d71a6 100644 (file)
@@ -1922,6 +1922,7 @@ END
 
 STRINGTABLE
 BEGIN
+    IDS_TO                  "To:"
     IDS_FROM_LEFT           "From left:"
     IDS_TO_LEFT             "To left:"
     IDS_FROM_RIGHT          "From right:"
index 9d45a75..8787cb6 100644 (file)
@@ -1917,6 +1917,7 @@ END
 
 STRINGTABLE
 BEGIN
+    IDS_TO                  "To:"
     IDS_FROM_LEFT           "From left:"
     IDS_TO_LEFT             "To left:"
     IDS_FROM_RIGHT          "From right:"
index 4b31e39..21a8912 100644 (file)
@@ -1916,6 +1916,7 @@ END
 
 STRINGTABLE
 BEGIN
+    IDS_TO                  "To:"
     IDS_FROM_LEFT           "Från vänster:"
     IDS_TO_LEFT             "Till vänster:"
     IDS_FROM_RIGHT          "Från höger:"
index 98fd3f0..bbd208c 100644 (file)
@@ -1922,6 +1922,7 @@ END
 
 STRINGTABLE
 BEGIN
+    IDS_TO                  "To:"
     IDS_FROM_LEFT           "From left:"
     IDS_TO_LEFT             "To left:"
     IDS_FROM_RIGHT          "From right:"
index 7e1a732..b70f922 100644 (file)
@@ -2025,6 +2025,7 @@ END
 
 STRINGTABLE
 BEGIN
+    IDS_TO                  "To:"
     IDS_FROM_LEFT           "From left:"
     IDS_TO_LEFT             "To left:"
     IDS_FROM_RIGHT          "From right:"
index d4f4f51..b4d5dc8 100644 (file)
 #define IDS_OPTIONSPG_CODEPAGE          9049
 #define IDS_OPTIONSPG_ARCHIVE           9050
 #define IDS_OPTIONSPG_BACKUPS           9051
-#define IDS_FROM_LEFT                   16000
-#define IDS_TO_LEFT                     16001
-#define IDS_FROM_RIGHT                  16002
-#define IDS_TO_RIGHT                    16003
+#define IDS_TO                          16000
+#define IDS_FROM_LEFT                   16001
+#define IDS_TO_LEFT                     16002
+#define IDS_FROM_RIGHT                  16003
+#define IDS_TO_RIGHT                    16004
 #define IDS_VERSION_FMT                 16385
 #define IDS_UNICODE                     16387
 #define IDS_OPTIONS_TITLE               16400
 #define ID_TOOLBAR_BIG                  33166
 
 // Next default values for new objects
-// 
+//
 #ifdef APSTUDIO_INVOKED
 #ifndef APSTUDIO_READONLY_SYMBOLS
 #define _APS_3D_CONTROLS                     1