From 78356b1271322cac8b46f25335ce20e2ff178385 Mon Sep 17 00:00:00 2001 From: Kimmo Varis Date: Fri, 13 Apr 2007 17:22:58 +0000 Subject: [PATCH] PATCH: [ 1699585 ] Fix copy confirmation dialog for CopyTo --- Src/Changes.txt | 5 ++++ Src/ConfirmFolderCopyDlg.cpp | 2 +- Src/DirActions.cpp | 35 ++++++++++++++++------ Src/FileActionScript.h | 11 ++++++- Src/Languages/Brazilian/MergeBrazilian.rc | 1 + Src/Languages/Bulgarian/MergeBulgarian.rc | 1 + Src/Languages/Catalan/MergeCatalan.rc | 1 + .../ChineseSimplified/MergeChineseSimplified.rc | 1 + .../ChineseTraditional/MergeChineseTraditional.rc | 1 + Src/Languages/Czech/MergeCzech.rc | 1 + Src/Languages/Danish/MergeDanish.rc | 1 + Src/Languages/Dutch/MergeDutch.rc | 1 + Src/Languages/French/MergeFrench.rc | 1 + Src/Languages/German/MergeGerman.rc | 1 + Src/Languages/Hungarian/MergeHungarian.rc | 1 + Src/Languages/Italian/MergeItalian.rc | 1 + Src/Languages/Japanese/MergeJapanese.rc | 1 + Src/Languages/Korean/MergeKorean.rc | 1 + Src/Languages/Norwegian/MergeNorwegian.rc | 1 + Src/Languages/Polish/MergePolish.rc | 1 + Src/Languages/Russian/MergeRussian.rc | 1 + Src/Languages/Slovak/MergeSlovak.rc | 1 + Src/Languages/Spanish/MergeSpanish.rc | 1 + Src/Languages/Swedish/MergeSwedish.rc | 1 + Src/Languages/Turkish/MergeTurkish.rc | 1 + Src/Merge.rc | 1 + Src/resource.h | 11 +++---- 27 files changed, 70 insertions(+), 16 deletions(-) diff --git a/Src/Changes.txt b/Src/Changes.txt index 99b36a05e..7739fe883 100644 --- a/Src/Changes.txt +++ b/Src/Changes.txt @@ -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 diff --git a/Src/ConfirmFolderCopyDlg.cpp b/Src/ConfirmFolderCopyDlg.cpp index cc1f20461..de64c3377 100644 --- a/Src/ConfirmFolderCopyDlg.cpp +++ b/Src/ConfirmFolderCopyDlg.cpp @@ -74,7 +74,7 @@ BOOL ConfirmFolderCopyDlg::OnInitDialog() { CDialog::OnInitDialog(); - GetDlgItem(IDC_FLDCONFIRM_TO_PATH)->SetFocus(); + GetDlgItem(IDNO)->SetFocus(); // Load warning icon // TODO: we can have per-action icons? diff --git a/Src/DirActions.cpp b/Src/DirActions.cpp index 9e59dfc8a..54317c358 100644 --- a/Src/DirActions.cpp +++ b/Src/DirActions.cpp @@ -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; } diff --git a/Src/FileActionScript.h b/Src/FileActionScript.h index a21fa9db5..b5f64431e 100644 --- a/Src/FileActionScript.h +++ b/Src/FileActionScript.h @@ -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 */ diff --git a/Src/Languages/Brazilian/MergeBrazilian.rc b/Src/Languages/Brazilian/MergeBrazilian.rc index 59882dbeb..f724a256d 100644 --- a/Src/Languages/Brazilian/MergeBrazilian.rc +++ b/Src/Languages/Brazilian/MergeBrazilian.rc @@ -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:" diff --git a/Src/Languages/Bulgarian/MergeBulgarian.rc b/Src/Languages/Bulgarian/MergeBulgarian.rc index 4ce419e53..47ecb4618 100644 --- a/Src/Languages/Bulgarian/MergeBulgarian.rc +++ b/Src/Languages/Bulgarian/MergeBulgarian.rc @@ -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:" diff --git a/Src/Languages/Catalan/MergeCatalan.rc b/Src/Languages/Catalan/MergeCatalan.rc index 073ca8da9..e9d7f1f70 100644 --- a/Src/Languages/Catalan/MergeCatalan.rc +++ b/Src/Languages/Catalan/MergeCatalan.rc @@ -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:" diff --git a/Src/Languages/ChineseSimplified/MergeChineseSimplified.rc b/Src/Languages/ChineseSimplified/MergeChineseSimplified.rc index 94b118d26..9034d953b 100644 --- a/Src/Languages/ChineseSimplified/MergeChineseSimplified.rc +++ b/Src/Languages/ChineseSimplified/MergeChineseSimplified.rc @@ -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:" diff --git a/Src/Languages/ChineseTraditional/MergeChineseTraditional.rc b/Src/Languages/ChineseTraditional/MergeChineseTraditional.rc index 68348cf6c..262d68ddd 100644 --- a/Src/Languages/ChineseTraditional/MergeChineseTraditional.rc +++ b/Src/Languages/ChineseTraditional/MergeChineseTraditional.rc @@ -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:" diff --git a/Src/Languages/Czech/MergeCzech.rc b/Src/Languages/Czech/MergeCzech.rc index 8da5360ea..928a08a49 100644 --- a/Src/Languages/Czech/MergeCzech.rc +++ b/Src/Languages/Czech/MergeCzech.rc @@ -1922,6 +1922,7 @@ END STRINGTABLE BEGIN + IDS_TO "To:" IDS_FROM_LEFT "Zleva:" IDS_TO_LEFT "Doleva:" IDS_FROM_RIGHT "Zprava:" diff --git a/Src/Languages/Danish/MergeDanish.rc b/Src/Languages/Danish/MergeDanish.rc index 6ea568816..99c01e6f2 100644 --- a/Src/Languages/Danish/MergeDanish.rc +++ b/Src/Languages/Danish/MergeDanish.rc @@ -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:" diff --git a/Src/Languages/Dutch/MergeDutch.rc b/Src/Languages/Dutch/MergeDutch.rc index 867777c4e..554e10c4a 100644 --- a/Src/Languages/Dutch/MergeDutch.rc +++ b/Src/Languages/Dutch/MergeDutch.rc @@ -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:" diff --git a/Src/Languages/French/MergeFrench.rc b/Src/Languages/French/MergeFrench.rc index 174004539..178c302ae 100644 --- a/Src/Languages/French/MergeFrench.rc +++ b/Src/Languages/French/MergeFrench.rc @@ -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:" diff --git a/Src/Languages/German/MergeGerman.rc b/Src/Languages/German/MergeGerman.rc index ebd8c91a3..909c7ac0b 100644 --- a/Src/Languages/German/MergeGerman.rc +++ b/Src/Languages/German/MergeGerman.rc @@ -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:" diff --git a/Src/Languages/Hungarian/MergeHungarian.rc b/Src/Languages/Hungarian/MergeHungarian.rc index aa5c04b1e..1d8de9758 100644 --- a/Src/Languages/Hungarian/MergeHungarian.rc +++ b/Src/Languages/Hungarian/MergeHungarian.rc @@ -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:" diff --git a/Src/Languages/Italian/MergeItalian.rc b/Src/Languages/Italian/MergeItalian.rc index 2dc3e077e..6e8dc11cd 100644 --- a/Src/Languages/Italian/MergeItalian.rc +++ b/Src/Languages/Italian/MergeItalian.rc @@ -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:" diff --git a/Src/Languages/Japanese/MergeJapanese.rc b/Src/Languages/Japanese/MergeJapanese.rc index 89eda9668..e45488b3a 100644 --- a/Src/Languages/Japanese/MergeJapanese.rc +++ b/Src/Languages/Japanese/MergeJapanese.rc @@ -1922,6 +1922,7 @@ END STRINGTABLE BEGIN + IDS_TO "To:" IDS_FROM_LEFT "¶‚©‚ç:" IDS_TO_LEFT "¶‚Ö:" IDS_FROM_RIGHT "‰E‚©‚ç:" diff --git a/Src/Languages/Korean/MergeKorean.rc b/Src/Languages/Korean/MergeKorean.rc index 184d95a0a..4b70b4739 100644 --- a/Src/Languages/Korean/MergeKorean.rc +++ b/Src/Languages/Korean/MergeKorean.rc @@ -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:" diff --git a/Src/Languages/Norwegian/MergeNorwegian.rc b/Src/Languages/Norwegian/MergeNorwegian.rc index 64e6f5724..a31fafebf 100644 --- a/Src/Languages/Norwegian/MergeNorwegian.rc +++ b/Src/Languages/Norwegian/MergeNorwegian.rc @@ -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:" diff --git a/Src/Languages/Polish/MergePolish.rc b/Src/Languages/Polish/MergePolish.rc index 1797c3f5a..515712a1a 100644 --- a/Src/Languages/Polish/MergePolish.rc +++ b/Src/Languages/Polish/MergePolish.rc @@ -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:" diff --git a/Src/Languages/Russian/MergeRussian.rc b/Src/Languages/Russian/MergeRussian.rc index 307ba8028..b9199ecda 100644 --- a/Src/Languages/Russian/MergeRussian.rc +++ b/Src/Languages/Russian/MergeRussian.rc @@ -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:" diff --git a/Src/Languages/Slovak/MergeSlovak.rc b/Src/Languages/Slovak/MergeSlovak.rc index 6af139864..54d71a61b 100644 --- a/Src/Languages/Slovak/MergeSlovak.rc +++ b/Src/Languages/Slovak/MergeSlovak.rc @@ -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:" diff --git a/Src/Languages/Spanish/MergeSpanish.rc b/Src/Languages/Spanish/MergeSpanish.rc index 9d45a7511..8787cb694 100644 --- a/Src/Languages/Spanish/MergeSpanish.rc +++ b/Src/Languages/Spanish/MergeSpanish.rc @@ -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:" diff --git a/Src/Languages/Swedish/MergeSwedish.rc b/Src/Languages/Swedish/MergeSwedish.rc index 4b31e396d..21a891232 100644 --- a/Src/Languages/Swedish/MergeSwedish.rc +++ b/Src/Languages/Swedish/MergeSwedish.rc @@ -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:" diff --git a/Src/Languages/Turkish/MergeTurkish.rc b/Src/Languages/Turkish/MergeTurkish.rc index 98fd3f094..bbd208cb5 100644 --- a/Src/Languages/Turkish/MergeTurkish.rc +++ b/Src/Languages/Turkish/MergeTurkish.rc @@ -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:" diff --git a/Src/Merge.rc b/Src/Merge.rc index 7e1a7329e..b70f92298 100644 --- a/Src/Merge.rc +++ b/Src/Merge.rc @@ -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:" diff --git a/Src/resource.h b/Src/resource.h index d4f4f51eb..b4d5dc8b9 100644 --- a/Src/resource.h +++ b/Src/resource.h @@ -467,10 +467,11 @@ #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 @@ -1135,7 +1136,7 @@ #define ID_TOOLBAR_BIG 33166 // Next default values for new objects -// +// #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS #define _APS_3D_CONTROLS 1 -- 2.11.0