From c3f2e623181ea5f50c1c0954867d9193607fe514 Mon Sep 17 00:00:00 2001 From: Takashi Sawanaka Date: Sat, 23 Jan 2016 21:27:30 +0900 Subject: [PATCH] Add Compare Statistics dialog for 3-way folder compare --- Src/CompareStatisticsDlg.cpp | 179 +++++++++++++++++-------------------------- Src/CompareStatisticsDlg.h | 3 +- Src/CompareStats.cpp | 65 ++++------------ Src/CompareStats.h | 1 + Src/DirView.cpp | 3 +- Src/Merge.rc | 86 +++++++++++++++++---- Src/resource.h | 17 +++- 7 files changed, 172 insertions(+), 182 deletions(-) diff --git a/Src/CompareStatisticsDlg.cpp b/Src/CompareStatisticsDlg.cpp index e6673472b..dd637a2fa 100644 --- a/Src/CompareStatisticsDlg.cpp +++ b/Src/CompareStatisticsDlg.cpp @@ -31,18 +31,14 @@ static char THIS_FILE[] = __FILE__; #endif - -/** @brief Icon size in the dialog. */ -static const CSize IconSize(16, 16); - ///////////////////////////////////////////////////////////////////////////// // SaveClosingDlg dialog IMPLEMENT_DYNAMIC(CompareStatisticsDlg, CDialog) -CompareStatisticsDlg::CompareStatisticsDlg(CWnd* pParent /*=NULL*/) - : CDialog(CompareStatisticsDlg::IDD, pParent) -, m_pCompareStats(NULL) +CompareStatisticsDlg::CompareStatisticsDlg(const CompareStats* pStats, CWnd* pParent /*=NULL*/) : + m_pCompareStats(pStats), + CDialog(pStats->GetCompareDirs() < 3 ? IDD_COMPARE_STATISTICS : IDD_COMPARE_STATISTICS3, pParent) { //{{AFX_DATA_INIT(CompareStatisticsDlg) //}}AFX_DATA_INIT @@ -66,115 +62,82 @@ BOOL CompareStatisticsDlg::OnInitDialog() CDialog::OnInitDialog(); int totalFiles = 0; int totalFolders = 0; - - // Identicals - int count = m_pCompareStats->GetCount(CompareStats::RESULT_DIR); - totalFolders += count; - SetDlgItemInt(IDC_STAT_IDENTICFOLDER, count); - count = m_pCompareStats->GetCount(CompareStats::RESULT_SAME); - totalFiles += count; - SetDlgItemInt(IDC_STAT_IDENTICFILE, count); - count = m_pCompareStats->GetCount(CompareStats::RESULT_BINSAME); - totalFiles += count; - SetDlgItemInt(IDC_STAT_IDENTICBINARY, count); - - // Different - count = m_pCompareStats->GetCount(CompareStats::RESULT_DIFF); - totalFiles += count; - SetDlgItemInt(IDC_STAT_DIFFFILE, count); - count = m_pCompareStats->GetCount(CompareStats::RESULT_BINDIFF); - totalFiles += count; - SetDlgItemInt(IDC_STAT_DIFFBINARY, count); - - // Unique - count = m_pCompareStats->GetCount(CompareStats::RESULT_LDIRUNIQUE); - totalFolders += count; - SetDlgItemInt(IDC_STAT_LUNIQFOLDER, count); - count = m_pCompareStats->GetCount(CompareStats::RESULT_LUNIQUE); - totalFiles += count; - SetDlgItemInt(IDC_STAT_LUNIQFILE, count); - count = m_pCompareStats->GetCount(CompareStats::RESULT_MDIRUNIQUE); - totalFolders += count; - SetDlgItemInt(IDC_STAT_MUNIQFOLDER, count); - count = m_pCompareStats->GetCount(CompareStats::RESULT_MUNIQUE); - totalFiles += count; - SetDlgItemInt(IDC_STAT_MUNIQFILE, count); - count = m_pCompareStats->GetCount(CompareStats::RESULT_RDIRUNIQUE); - totalFolders += count; - SetDlgItemInt(IDC_STAT_RUNIQFOLDER, count); - count = m_pCompareStats->GetCount(CompareStats::RESULT_RUNIQUE); - totalFiles += count; - SetDlgItemInt(IDC_STAT_RUNIQFILE, count); + const int iconCX = []() { + const int cx = GetSystemMetrics(SM_CXSMICON); + if (cx < 24) + return 16; + if (cx < 32) + return 24; + return 32; + }(); + const int iconCY = iconCX; + + static const struct { int ctlID; CompareStats::RESULT resultType; bool isDir; } ctlResultTypeMap[] = + { + { IDC_STAT_IDENTICFOLDER, CompareStats::RESULT_DIR, true }, + { IDC_STAT_IDENTICFILE, CompareStats::RESULT_SAME, false }, + { IDC_STAT_IDENTICBINARY, CompareStats::RESULT_BINSAME, false }, + { IDC_STAT_DIFFFILE, CompareStats::RESULT_DIFF, false }, + { IDC_STAT_DIFFBINARY, CompareStats::RESULT_BINDIFF, false }, + { IDC_STAT_LUNIQFOLDER, CompareStats::RESULT_LDIRUNIQUE, true }, + { IDC_STAT_LUNIQFILE, CompareStats::RESULT_LUNIQUE, false }, + { IDC_STAT_MUNIQFOLDER, CompareStats::RESULT_MDIRUNIQUE, true }, + { IDC_STAT_MUNIQFILE, CompareStats::RESULT_MUNIQUE, false }, + { IDC_STAT_RUNIQFOLDER, CompareStats::RESULT_RDIRUNIQUE, true }, + { IDC_STAT_RUNIQFILE, CompareStats::RESULT_RUNIQUE, false }, + { IDC_STAT_LMISSINGFOLDER, CompareStats::RESULT_LDIRMISSING, true }, + { IDC_STAT_LMISSINGFILE, CompareStats::RESULT_LMISSING, false }, + { IDC_STAT_MMISSINGFOLDER, CompareStats::RESULT_MDIRMISSING, true }, + { IDC_STAT_MMISSINGFILE, CompareStats::RESULT_MMISSING, false }, + { IDC_STAT_RMISSINGFOLDER, CompareStats::RESULT_RDIRMISSING, true }, + { IDC_STAT_RMISSINGFILE, CompareStats::RESULT_RMISSING, false }, + }; + for (auto&& map : ctlResultTypeMap) + { + int count = m_pCompareStats->GetCount(map.resultType); + if (!map.isDir) + totalFiles += count; + else + totalFolders += count; + SetDlgItemInt(map.ctlID, count); + } // Total SetDlgItemInt(IDC_STAT_TOTALFOLDER, totalFolders); SetDlgItemInt(IDC_STAT_TOTALFILE, totalFiles); // Load small folder icons - CStatic * pBitmapCtrl = (CStatic *) GetDlgItem(IDC_STAT_ILUNIQFOLDER); - HICON hIcon = (HICON) LoadImage(AfxGetInstanceHandle(), - MAKEINTRESOURCE(IDI_LFOLDER), IMAGE_ICON, IconSize.cx, IconSize.cy, LR_SHARED); - pBitmapCtrl->SetIcon(hIcon); - - pBitmapCtrl = (CStatic *) GetDlgItem(IDC_STAT_IMUNIQFOLDER); - hIcon = (HICON) LoadImage(AfxGetInstanceHandle(), - MAKEINTRESOURCE(IDI_MFOLDER), IMAGE_ICON, IconSize.cx, IconSize.cy, LR_SHARED); - pBitmapCtrl->SetIcon(hIcon); - - pBitmapCtrl = (CStatic *) GetDlgItem(IDC_STAT_IRUNIQFOLDER); - hIcon = (HICON) LoadImage(AfxGetInstanceHandle(), - MAKEINTRESOURCE(IDI_RFOLDER), IMAGE_ICON, IconSize.cx, IconSize.cy, LR_SHARED); - pBitmapCtrl->SetIcon(hIcon); - - pBitmapCtrl = (CStatic *) GetDlgItem(IDC_STAT_IIDENTICFOLDER); - hIcon = (HICON) LoadImage(AfxGetInstanceHandle(), - MAKEINTRESOURCE(IDI_FOLDER), IMAGE_ICON, IconSize.cy, IconSize.cy, LR_SHARED); - pBitmapCtrl->SetIcon(hIcon); + static const struct { int ctlID; int iconID; } ctlIconMap[] = + { + { IDC_STAT_ILUNIQFOLDER, IDI_LFOLDER }, + { IDC_STAT_IMUNIQFOLDER, IDI_MFOLDER }, + { IDC_STAT_IRUNIQFOLDER, IDI_RFOLDER }, + { IDC_STAT_ILMISSINGFOLDER, IDI_MRFOLDER }, + { IDC_STAT_IMMISSINGFOLDER, IDI_LRFOLDER }, + { IDC_STAT_IRMISSINGFOLDER, IDI_LMFOLDER }, + { IDC_STAT_INOTEQUAL, IDI_NOTEQUALFILE }, + { IDC_STAT_IDIFFBINFILE, IDI_BINARYDIFF }, + { IDC_STAT_ILUNIQFILE, IDI_LFILE }, + { IDC_STAT_IMUNIQFILE, IDI_MFILE }, + { IDC_STAT_IRUNIQFILE, IDI_RFILE }, + { IDC_STAT_ILMISSINGFILE, IDI_MRFILE }, + { IDC_STAT_IMMISSINGFILE, IDI_LRFILE }, + { IDC_STAT_IRMISSINGFILE, IDI_LMFILE }, + { IDC_STAT_IEQUALFILE, IDI_EQUALFILE }, + { IDC_STAT_IEQUALBINFILE, IDI_EQUALBINARY }, + }; - pBitmapCtrl = (CStatic *) GetDlgItem(IDC_STAT_INOTEQUAL); - hIcon = (HICON) LoadImage(AfxGetInstanceHandle(), - MAKEINTRESOURCE(IDI_NOTEQUALFILE), IMAGE_ICON, IconSize.cx, IconSize.cy, LR_SHARED); - pBitmapCtrl->SetIcon(hIcon); - - pBitmapCtrl = (CStatic *) GetDlgItem(IDC_STAT_IDIFFBINFILE); - hIcon = (HICON) LoadImage(AfxGetInstanceHandle(), - MAKEINTRESOURCE(IDI_BINARYDIFF), IMAGE_ICON, IconSize.cx, IconSize.cy, LR_SHARED); - pBitmapCtrl->SetIcon(hIcon); - - pBitmapCtrl = (CStatic *) GetDlgItem(IDC_STAT_ILUNIQFILE); - hIcon = (HICON) LoadImage(AfxGetInstanceHandle(), - MAKEINTRESOURCE(IDI_LFILE), IMAGE_ICON, IconSize.cx, IconSize.cy, LR_SHARED); - pBitmapCtrl->SetIcon(hIcon); - - pBitmapCtrl = (CStatic *) GetDlgItem(IDC_STAT_IMUNIQFILE); - hIcon = (HICON) LoadImage(AfxGetInstanceHandle(), - MAKEINTRESOURCE(IDI_MFILE), IMAGE_ICON, IconSize.cx, IconSize.cy, LR_SHARED); - pBitmapCtrl->SetIcon(hIcon); - - pBitmapCtrl = (CStatic *) GetDlgItem(IDC_STAT_IRUNIQFILE); - hIcon = (HICON) LoadImage(AfxGetInstanceHandle(), - MAKEINTRESOURCE(IDI_RFILE), IMAGE_ICON, IconSize.cx, IconSize.cy, LR_SHARED); - pBitmapCtrl->SetIcon(hIcon); - - pBitmapCtrl = (CStatic *) GetDlgItem(IDC_STAT_IEQUALFILE); - hIcon = (HICON) LoadImage(AfxGetInstanceHandle(), - MAKEINTRESOURCE(IDI_EQUALFILE), IMAGE_ICON, IconSize.cx, IconSize.cy, LR_SHARED); - pBitmapCtrl->SetIcon(hIcon); - - pBitmapCtrl = (CStatic *) GetDlgItem(IDC_STAT_IEQUALBINFILE); - hIcon = (HICON) LoadImage(AfxGetInstanceHandle(), - MAKEINTRESOURCE(IDI_EQUALBINARY), IMAGE_ICON, IconSize.cx, IconSize.cy, LR_SHARED); - pBitmapCtrl->SetIcon(hIcon); + for (auto&& map : ctlIconMap) + { + CStatic * pBitmapCtrl = static_cast(GetDlgItem(map.ctlID)); + if (pBitmapCtrl) + { + HICON hIcon = (HICON)LoadImage(AfxGetInstanceHandle(), + MAKEINTRESOURCE(map.iconID), IMAGE_ICON, iconCX, iconCY, LR_SHARED); + pBitmapCtrl->SetIcon(hIcon); + } + } return FALSE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } - -/** - * @brief Set compare stats for the dialog. - * @param [in] pStats Pointer to the structure containing compare stats. - */ -void CompareStatisticsDlg::SetCompareStats(const CompareStats * pStats) -{ - m_pCompareStats = pStats; -} diff --git a/Src/CompareStatisticsDlg.h b/Src/CompareStatisticsDlg.h index db964ef9d..2908d67ad 100644 --- a/Src/CompareStatisticsDlg.h +++ b/Src/CompareStatisticsDlg.h @@ -33,8 +33,7 @@ class CompareStatisticsDlg : public CDialog DECLARE_DYNAMIC(CompareStatisticsDlg) public: - explicit CompareStatisticsDlg(CWnd* pParent = NULL); // standard constructor - void SetCompareStats(const CompareStats * pStats); + CompareStatisticsDlg(const CompareStats * pStats, CWnd* pParent = NULL); // standard constructor // Dialog Data //{{AFX_DATA(CompareStatisticsDlg) diff --git a/Src/CompareStats.cpp b/Src/CompareStats.cpp index 9bda045ce..3af903fb3 100644 --- a/Src/CompareStats.cpp +++ b/Src/CompareStats.cpp @@ -149,57 +149,32 @@ CompareStats::RESULT CompareStats::GetResultFromCode(unsigned diffcode) const if (di.isResultFiltered()) { // skipped - if (di.isDirectory()) - { - return RESULT_DIRSKIP; - } - else - { - return RESULT_SKIP; - } + return di.isDirectory() ? RESULT_DIRSKIP : RESULT_SKIP; } else if (di.isSideFirstOnly()) { // left-only - if (di.isDirectory()) - { - return RESULT_LDIRUNIQUE; - } - else - { - return RESULT_LUNIQUE; - } + return di.isDirectory() ? RESULT_LDIRUNIQUE : RESULT_LUNIQUE; } else if (di.isSideSecondOnly()) { // right-only if (di.isDirectory()) - { - if (m_nDirs < 3) - return RESULT_RDIRUNIQUE; - else - return RESULT_MDIRUNIQUE; - } + return (m_nDirs < 3) ? RESULT_RDIRUNIQUE : RESULT_MDIRUNIQUE; else - { - if (m_nDirs < 3) - return RESULT_RUNIQUE; - else - return RESULT_MUNIQUE; - } + return (m_nDirs < 3) ? RESULT_RUNIQUE : RESULT_MUNIQUE; } else if (di.isSideThirdOnly()) { // right-only - if (di.isDirectory()) - { - return RESULT_RDIRUNIQUE; - } - else - { - return RESULT_RUNIQUE; - } + return di.isDirectory() ? RESULT_RDIRUNIQUE : RESULT_RUNIQUE; } + else if (m_nDirs > 2 && !di.exists(0) && di.exists(1) && di.exists(2)) + return di.isDirectory() ? RESULT_LDIRMISSING : RESULT_LMISSING; + else if (m_nDirs > 2 && di.exists(0) && !di.exists(1) && di.exists(2)) + return di.isDirectory() ? RESULT_MDIRMISSING : RESULT_MMISSING; + else if (m_nDirs > 2 && di.exists(0) && di.exists(1) && !di.exists(2)) + return di.isDirectory() ? RESULT_RDIRMISSING : RESULT_RMISSING; else if (di.isResultError()) { // could be directory error ? @@ -209,14 +184,7 @@ CompareStats::RESULT CompareStats::GetResultFromCode(unsigned diffcode) const else if (di.isResultSame()) { // same - if (di.isBin()) - { - return RESULT_BINSAME; - } - else - { - return RESULT_SAME; - } + return di.isBin() ? RESULT_BINSAME : RESULT_SAME; } else { @@ -227,14 +195,7 @@ CompareStats::RESULT CompareStats::GetResultFromCode(unsigned diffcode) const } else { - if (di.isBin()) - { - return RESULT_BINDIFF; - } - else - { - return RESULT_DIFF; - } + return di.isBin() ? RESULT_BINDIFF : RESULT_DIFF; } } } diff --git a/Src/CompareStats.h b/Src/CompareStats.h index 49a0b46d9..378bfc4d3 100644 --- a/Src/CompareStats.h +++ b/Src/CompareStats.h @@ -92,6 +92,7 @@ public: bool IsCompareDone() const { return m_bCompareDone; } CompareStats::RESULT GetResultFromCode(unsigned diffcode) const; void Swap(int idx1, int idx2); + int GetCompareDirs() const { return m_nDirs; } private: int m_counts[RESULT_COUNT]; /**< Table storing result counts */ diff --git a/Src/DirView.cpp b/Src/DirView.cpp index 2e4b7e36a..f7cb8bde1 100644 --- a/Src/DirView.cpp +++ b/Src/DirView.cpp @@ -3172,8 +3172,7 @@ void CDirView::OnUpdateMergeCompare2(CCmdUI *pCmdUI) void CDirView::OnViewCompareStatistics() { - CompareStatisticsDlg dlg; - dlg.SetCompareStats(GetDocument()->GetCompareStats()); + CompareStatisticsDlg dlg(GetDocument()->GetCompareStats()); dlg.DoModal(); } diff --git a/Src/Merge.rc b/Src/Merge.rc index 83bf4c70c..cbc2b3528 100644 --- a/Src/Merge.rc +++ b/Src/Merge.rc @@ -1660,7 +1660,48 @@ BEGIN RTEXT "Binary:",IDC_STATIC,10,40,56,10 ICON "",IDC_STAT_IDIFFBINFILE, 131,37,16,16 RTEXT "Static",IDC_STAT_DIFFBINARY,146,38,38,10,SS_SUNKEN - GROUPBOX "Unique",IDC_STATIC,7,55,186,53 + GROUPBOX "Unique",IDC_STATIC,7,55,186,40 + RTEXT "Left:",IDC_STATIC,11,66,56,10 + ICON "",IDC_STAT_ILUNIQFOLDER,72,64,16,16 + RTEXT "Static",IDC_STAT_LUNIQFOLDER,86,65,38,10,SS_SUNKEN + ICON "",IDC_STAT_ILUNIQFILE,131,64,16,16 + RTEXT "Static",IDC_STAT_LUNIQFILE,146,65,38,10,SS_SUNKEN + RTEXT "Right:",IDC_STATIC,11,79,56,10 + ICON "",IDC_STAT_IRUNIQFOLDER,72,77,16,16 + RTEXT "Static",IDC_STAT_RUNIQFOLDER,86,78,38,10,SS_SUNKEN + ICON "",IDC_STAT_IRUNIQFILE,131,77,16,16 + RTEXT "Static",IDC_STAT_RUNIQFILE,146,78,38,10,SS_SUNKEN + GROUPBOX "Identical",IDC_STATIC,7,95,186,40 + ICON "",IDC_STAT_IIDENTICFOLDER,72,104,16,16 + RTEXT "Static",IDC_STAT_IDENTICFOLDER,86,105,38,10,SS_SUNKEN + ICON "",IDC_STAT_IEQUALFILE,131,104,16,16 + RTEXT "Static",IDC_STAT_IDENTICFILE,146,105,38,10,SS_SUNKEN + RTEXT "Binary:",IDC_STATIC,10,119,56,10 + ICON "",IDC_STAT_IEQUALBINFILE,131,117,16,16 + RTEXT "Static",IDC_STAT_IDENTICBINARY,146,118,38,10,SS_SUNKEN + CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,7,140,186,1 + RTEXT "Total:",IDC_STATIC,13,148,56,10 + RTEXT "Static",IDC_STAT_TOTALFOLDER,86,147,38,10,SS_SUNKEN + RTEXT "Static",IDC_STAT_TOTALFILE,146,147,38,10,SS_SUNKEN + DEFPUSHBUTTON "Close",IDOK,200,146,50,14 +END + +IDD_COMPARE_STATISTICS3 DIALOGEX 0, 0, 257, 224 +STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | + WS_SYSMENU +CAPTION "Compare Statistics" +FONT 8, "MS Shell Dlg", 0, 0, 0x1 +BEGIN + LTEXT "Folders:",IDC_STATIC,72,7,38,10 + LTEXT "Files:",IDC_STATIC,131,7,39,10 + GROUPBOX "Different",IDC_STATIC,7,15,186,40 + RTEXT "Text:",IDC_STATIC,11,26,56,10 + ICON "",IDC_STAT_INOTEQUAL,131,24,16,16 + RTEXT "Static",IDC_STAT_DIFFFILE,146,25,38,10,SS_SUNKEN + RTEXT "Binary:",IDC_STATIC,10,40,56,10 + ICON "",IDC_STAT_IDIFFBINFILE, 131,37,16,16 + RTEXT "Static",IDC_STAT_DIFFBINARY,146,38,38,10,SS_SUNKEN + GROUPBOX "Unique",IDC_STATIC,7,55,186,90 RTEXT "Left:",IDC_STATIC,11,66,56,10 ICON "",IDC_STAT_ILUNIQFOLDER,72,64,16,16 RTEXT "Static",IDC_STAT_LUNIQFOLDER,86,65,38,10,SS_SUNKEN @@ -1676,21 +1717,34 @@ BEGIN RTEXT "Static",IDC_STAT_RUNIQFOLDER,86,91,38,10,SS_SUNKEN ICON "",IDC_STAT_IRUNIQFILE,131,91,16,16 RTEXT "Static",IDC_STAT_RUNIQFILE,146,92,38,10,SS_SUNKEN - GROUPBOX "Identical",IDC_STATIC,7,108,186,37 - ICON "",IDC_STAT_IIDENTICFOLDER,72,115,16,16 - RTEXT "Static",IDC_STAT_IDENTICFOLDER,86,116,38,10,SS_SUNKEN - ICON "",IDC_STAT_IEQUALFILE,131,115,16,16 - RTEXT "Static",IDC_STAT_IDENTICFILE,146,116,38,10,SS_SUNKEN - RTEXT "Binary:",IDC_STATIC,10,130,56,10 - ICON "",IDC_STAT_IEQUALBINFILE,131,128,16,16 - RTEXT "Static",IDC_STAT_IDENTICBINARY,146,129,38,10,SS_SUNKEN - CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,7,149,186,1 - RTEXT "Total:",IDC_STATIC,13,155,56,10 - - RTEXT "Static",IDC_STAT_TOTALFOLDER,86,154,38,10,SS_SUNKEN - - RTEXT "Static",IDC_STAT_TOTALFILE,146,154,38,10,SS_SUNKEN - DEFPUSHBUTTON "Close",IDOK,200,153,50,14 + RTEXT "Missing Left:",IDC_STATIC,11,105,56,10 + ICON "",IDC_STAT_ILMISSINGFOLDER,72,103,16,16 + RTEXT "Static",IDC_STAT_LMISSINGFOLDER,86,104,38,10,SS_SUNKEN + ICON "",IDC_STAT_ILMISSINGFILE,131,103,16,16 + RTEXT "Static",IDC_STAT_LMISSINGFILE,146,104,38,10,SS_SUNKEN + RTEXT "Missing Middle:",IDC_STATIC,11,118,56,10 + ICON "",IDC_STAT_IMMISSINGFOLDER,72,116,16,16 + RTEXT "Static",IDC_STAT_MMISSINGFOLDER,86,117,38,10,SS_SUNKEN + ICON "",IDC_STAT_IMMISSINGFILE,131,116,16,16 + RTEXT "Static",IDC_STAT_MMISSINGFILE,146,117,38,10,SS_SUNKEN + RTEXT "Missing Right:",IDC_STATIC,11,131,56,10 + ICON "",IDC_STAT_IRMISSINGFOLDER,72,129,16,16 + RTEXT "Static",IDC_STAT_RMISSINGFOLDER,86,130,38,10,SS_SUNKEN + ICON "",IDC_STAT_IRMISSINGFILE,131,129,16,16 + RTEXT "Static",IDC_STAT_RMISSINGFILE,146,130,38,10,SS_SUNKEN + GROUPBOX "Identical",IDC_STATIC,7,147,186,37 + ICON "",IDC_STAT_IIDENTICFOLDER,72,155,16,16 + RTEXT "Static",IDC_STAT_IDENTICFOLDER,86,156,38,10,SS_SUNKEN + ICON "",IDC_STAT_IEQUALFILE,131,155,16,16 + RTEXT "Static",IDC_STAT_IDENTICFILE,146,156,38,10,SS_SUNKEN + RTEXT "Binary:",IDC_STATIC,10,170,56,10 + ICON "",IDC_STAT_IEQUALBINFILE,131,168,16,16 + RTEXT "Static",IDC_STAT_IDENTICBINARY,146,169,38,10,SS_SUNKEN + CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,7,189,186,1 + RTEXT "Total:",IDC_STATIC,13,195,56,10 + RTEXT "Static",IDC_STAT_TOTALFOLDER,86,194,38,10,SS_SUNKEN + RTEXT "Static",IDC_STAT_TOTALFILE,146,194,38,10,SS_SUNKEN + DEFPUSHBUTTON "Close",IDOK,200,193,50,14 END IDD_LOAD_SAVE_CODEPAGE DIALOGEX 0, 0, 278, 150 diff --git a/Src/resource.h b/Src/resource.h index ab998a63d..6841a27aa 100644 --- a/Src/resource.h +++ b/Src/resource.h @@ -47,6 +47,7 @@ #define IDD_SHARED_FILTER 227 #define IDD_PROP_ARCHIVE 228 #define IDD_COMPARE_STATISTICS 229 +#define IDD_COMPARE_STATISTICS3 2291 #define IDD_LOAD_SAVE_CODEPAGE 230 #define IDD_TEST_FILTER 231 #define IDD_PROPPAGE_COLORS_TEXT 232 @@ -362,19 +363,31 @@ #define IDC_STAT_RUNIQFILE 1213 #define IDC_STAT_MUNIQFOLDER 21212 #define IDC_STAT_MUNIQFILE 21213 +#define IDC_STAT_LMISSINGFOLDER 21214 +#define IDC_STAT_LMISSINGFILE 21215 +#define IDC_STAT_RMISSINGFOLDER 21216 +#define IDC_STAT_RMISSINGFILE 21217 +#define IDC_STAT_MMISSINGFOLDER 21218 +#define IDC_STAT_MMISSINGFILE 21219 #define IDC_STAT_TOTALFOLDER 1214 #define IDC_STAT_TOTALFILE 1215 #define IDC_TREEOPT_IMPORT 1216 #define IDC_TREEOPT_EXPORT 1217 #define IDC_STAT_ILUNIQFOLDER 1218 #define IDC_STAT_IRUNIQFOLDER 1219 -#define IDC_STAT_IMUNIQFOLDER 21219 +#define IDC_STAT_IMUNIQFOLDER 21220 +#define IDC_STAT_ILMISSINGFOLDER 21221 +#define IDC_STAT_IRMISSINGFOLDER 21222 +#define IDC_STAT_IMMISSINGFOLDER 21223 #define IDC_STAT_IIDENTICFOLDER 1220 #define IDC_STAT_INOTEQUAL 1221 #define IDC_STAT_IDIFFBINFILE 1222 #define IDC_STAT_ILUNIQFILE 1223 #define IDC_STAT_IRUNIQFILE 1224 -#define IDC_STAT_IMUNIQFILE 21223 +#define IDC_STAT_IMUNIQFILE 21224 +#define IDC_STAT_ILMISSINGFILE 21225 +#define IDC_STAT_IRMISSINGFILE 21226 +#define IDC_STAT_IMMISSINGFILE 21227 #define IDC_STAT_IEQUALFILE 1225 #define IDC_STAT_IEQUALBINFILE 1226 #define IDC_EDITOR_CHARLEVEL 1229 -- 2.11.0