Changeset 1682


Ignore:
Timestamp:
Jan 7, 2013, 1:36:38 AM (13 years ago)
Author:
Gregg Young
Message:

Added optional confirmation dialogs for delete move and copy to compare dir Ticket 277; Added EA compare option to compare dir Ticket 80; Minor code cleanup.

Location:
trunk/dll
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/comp.c

    r1681 r1682  
    8484  05 Jan 13 GKY Toggle of include subdirectories leaves snapshot file loaded.
    8585  05 Jan 13 GKY Added an indicator (textbox) that a list (snapshot) file is loaded.
     86  06 Jan 13 GKY Added optional confirmation dialogs for delete move and copy to compare dir Ticket 277
     87  06 Jan 13 GKY Added EA compare option to compare dir Ticket 80
    8688
    8789***********************************************************************/
     
    142144#include "excputil.h"                   // xbeginthread
    143145#include "info.h"                       // driveflags
     146#include "worker.h"                     // MOVEIT
     147#include "rename.h"                     // RenameProc
    144148
    145149typedef struct
     
    167171  HDIR hdir = HDIR_CREATE;
    168172  ULONG ulFindCnt;
    169   CHAR szCmmaFmtFileSize[81], szDate[DATE_BUF_BYTES];
    170 
    171   // 13 Aug 07 SHL fimxe to use FileToGet
     173  CHAR szDate[DATE_BUF_BYTES];
     174
     175  // 13 Aug 07 SHL fixme to use FileToGet
    172176  pffb = xmalloc(sizeof(FILEFINDBUF4L), pszSrcFile, __LINE__);
    173177  if (pffb) {
     
    188192          strcpy(enddir, pffb->achName);
    189193          if (!(pffb->attrFile & FILE_DIRECTORY)) {
    190             ulltoa(pffb->cbFile, szCmmaFmtFileSize, 10);
    191194            FDateFormat(szDate, pffb->fdateLastWrite);
    192195            fprintf(fp,
    193                     "\"%s\",%u,%s,%s,%02u%s%02u%s%02u,%lu,%lu,N\n",
     196                    "\"%s\",%u,%llu,%s,%02u%s%02u%s%02u,%lu,%lu,N\n",
    194197                    mask,
    195198                    enddir - mask,
    196                     szCmmaFmtFileSize,
     199                    pffb->cbFile,
    197200                    szDate,
    198201                    pffb->ftimeLastWrite.hours,
     
    459462  return WinDefDlgProc(hwnd, msg, mp1, mp2);
    460463}
    461 
     464int ConfirmAction(HWND hwnd, CHAR *OldName, CHAR *NewName);
     465
     466/**
     467 * ConfirmAction provides an optional confirmation dialog
     468 * for move and copy operations.
     469 */
     470int ConfirmAction(HWND hwnd, CHAR *OldName, CHAR *NewName)
     471{
     472  MOVEIT mv;
     473  int rc;
     474
     475  memset(&mv, 0, sizeof(MOVEIT));
     476  mv.rename = FALSE;
     477  mv.source = OldName;
     478  mv.compare = TRUE;
     479  strcpy(mv.target, NewName);
     480  rc = WinDlgBox(HWND_DESKTOP,
     481                 hwnd,
     482                 RenameProc,
     483                 FM3ModHandle, REN_FRAME, (PVOID) & mv);
     484  if (!rc)
     485    return 1;
     486
     487  DosSleep(1);
     488  if (mv.skip || !*mv.target)
     489    return 1;
     490  if (mv.dontask)
     491    return 2;
     492  return 0;
     493}
     494
     495#define  NUM_BUT 4
    462496/**
    463497 * Action Thread
    464498 * Do requested action on container contents
    465499 */
    466 
    467500static VOID ActionCnrThread(VOID *args)
    468501{
     
    475508  APIRET rc;
    476509  ITIMER_DESC itdSleep = { 0 };
     510  BOOL fConfirmAction = FALSE;
     511  BOOL dontask = FALSE;
     512  BOOL enddelete = FALSE;
    477513
    478514  if (!cmp) {
     
    532568                       MPFROM2SHORT(CMA_FIRST, CMA_ITEMORDER));
    533569      pciD = WinSendMsg(hwndCnrD, CM_QUERYRECORD, MPVOID,
    534                         MPFROM2SHORT(CMA_FIRST, CMA_ITEMORDER));
    535 
     570                        MPFROM2SHORT(CMA_FIRST, CMA_ITEMORDER));
     571      fConfirmAction =  WinQueryButtonCheckstate(cmp->hwnd, COMP_CONFIRMACTION);
    536572      InitITimer(&itdSleep, 500);       // Sleep every 500 mSec
    537573
     
    553589          // Source name not blank
    554590          switch (cmp->action) {
    555           case IDM_DELETE:
     591          case IDM_DELETE:
     592
     593            if (fConfirmAction && !dontask) {
     594              ULONG   i;
     595              CHAR s[CCHMAXPATH + 20];
     596              MB2INFO *pmbInfo;     
     597              MB2D mb2dBut[NUM_BUT] =   //fixme to use GetPString
     598              {
     599                { "Yes",                     1, 0},
     600                { "Yes don't ask again",     2, 1},
     601                { "No",                      3, 2},
     602                { "Cancel delete operation", 4, 3}
     603              };
     604              ULONG   ulInfoSize = (sizeof(MB2INFO) + (sizeof(MB2D) * (NUM_BUT-1)));
     605              pmbInfo = malloc (ulInfoSize);
     606              if (pmbInfo) {
     607                pmbInfo->cb         = ulInfoSize;       
     608                pmbInfo->hIcon      = 0;
     609                pmbInfo->cButtons   = NUM_BUT;           
     610                pmbInfo->flStyle    = MB_MOVEABLE;
     611                pmbInfo->hwndNotify = NULLHANDLE;
     612                for (i = 0; i < NUM_BUT; i++) {
     613                  memcpy( pmbInfo->mb2d+i , mb2dBut+i , sizeof(MB2D));
     614                } //fixme to use GetPString
     615                sprintf(s, "Do you wish to delete %s", pciS->pszFileName);
     616                rc = WinMessageBox2(HWND_DESKTOP, cmp->hwnd,
     617                                    s, "Confirm Delete", 1234,
     618                                    pmbInfo);
     619                free(pmbInfo);
     620                if (rc == 2 || rc == 3) {
     621                  if (rc == 3)
     622                    enddelete = TRUE;
     623                  break;
     624                }
     625                else if (rc == 1)
     626                  dontask = TRUE;
     627              }
     628            }
    556629            if (!unlinkf(pciS->pszFileName)) {
    557630              WinSendMsg(hwndCnrS, CM_SETRECORDEMPHASIS, MPFROMP(pciS),
     
    612685                  MassMkdir(hwndMain, szDirName);
    613686              }
     687              if (fConfirmAction && pciS->flags & CNRITEM_EXISTS && !dontask) {
     688                rc = ConfirmAction(cmp->hwnd, pciS->pszFileName, szNewName);
     689                if (rc == 1)
     690                  break;
     691                else if (rc == 2)
     692                  dontask = TRUE;
     693              }
    614694              rc = docopyf(MOVE, pciS->pszFileName, szNewName);
    615695              if (fResetVerify) {
     
    713793                if (IsFile(szDirName) == -1)
    714794                  MassMkdir(hwndMain, szDirName);
    715               }
    716               rc = docopyf(COPY, pciS->pszFileName, szNewName);
     795              }
     796              if (fConfirmAction && pciS->flags & CNRITEM_EXISTS && !dontask) {
     797                rc = ConfirmAction(cmp->hwnd, pciS->pszFileName, szNewName);
     798                if (rc == 1)
     799                  break;
     800                else if (rc == 2)
     801                  dontask = TRUE;
     802              }
     803              rc = docopyf(COPY, pciS->pszFileName, szNewName);
    717804              if (fResetVerify) {
    718805                DosSetVerify(fVerify);
     
    787874
    788875        } // if have name
    789 
     876        if (enddelete)
     877          break;
    790878        pciS = pciNextS;
    791879        pciD = pciNextD;
     
    10361124  switch (action) {
    10371125  case IDM_SELECTIDENTICAL:
    1038     // Same Date/size
     1126    // Same Date/size including EAs
    10391127    for (x = 0; x < numS; x++) {
    10401128      pciS = pciSa[x];
     
    10441132                  ~pciS->flags & CNRITEM_LARGER &&
    10451133                  ~pciS->flags & CNRITEM_NEWER &&
    1046                   ~pciS->flags & CNRITEM_OLDER;
     1134                  ~pciS->flags & CNRITEM_OLDER &&
     1135                  ~pciS->flags & CNRITEM_EASDIFFER;
    10471136        CompSelectSetSelects(pciS, pciDa[x], matched, matched, wantAnd);
    10481137      }
     
    10521141
    10531142  case IDM_SELECTSAME:
    1054     // Same Size
     1143    // Same Size including EAs
    10551144    for (x = 0; x < numS; x++) {
    10561145      pciS = pciSa[x];
     
    10581147        matched = pciS->flags & CNRITEM_EXISTS &&
    10591148                  ~pciS->flags & CNRITEM_SMALLER &&
    1060                   ~pciS->flags & CNRITEM_LARGER;
     1149                  ~pciS->flags & CNRITEM_LARGER &&
     1150                  ~pciS->flags & CNRITEM_EASDIFFER;
    10611151        CompSelectSetSelects(pciS, pciDa[x], matched, matched, wantAnd);
    10621152      }
     
    12281318    break;
    12291319
     1320  case IDM_SELECTEAS:
     1321    for (x = 0; x < numS; x++) {
     1322      pciS = pciSa[x];
     1323      if (~pciS->rc.flRecordAttr & CRA_FILTERED) {
     1324        pciD = pciDa[x];
     1325        CompSelectSetSelects(pciS,
     1326                             pciD,
     1327                             pciS->flags & CNRITEM_EASDIFFER,
     1328                             pciD->flags & CNRITEM_EASDIFFER,
     1329                             wantAnd);
     1330      }
     1331      SleepIfNeeded(&itdSleep, 0);
     1332    } // for
     1333    break;
     1334
    12301335  case IDM_DESELECTBOTH:
    12311336    for (x = 0; x < numS; x++) {
     
    13131418                                   pciS->flags & CNRITEM_OLDER,
    13141419                                   pciD->flags & CNRITEM_OLDER)) {
     1420          fUpdateHideButton = TRUE;
     1421        }
     1422      }
     1423      SleepIfNeeded(&itdSleep, 0);
     1424    } // for
     1425    break;
     1426
     1427  case IDM_DESELECTEAS:
     1428    for (x = 0; x < numS; x++) {
     1429      pciS = pciSa[x];
     1430      if (~pciS->rc.flRecordAttr & CRA_FILTERED) {
     1431        pciD = pciDa[x];
     1432        if (CompSelectClearSelects(pciS,
     1433                                   pciD,
     1434                                   pciS->flags & CNRITEM_EASDIFFER,
     1435                                   pciD->flags & CNRITEM_EASDIFFER)) {
    13151436          fUpdateHideButton = TRUE;
    13161437        }
     
    16431764                          if (ulDateFmt == 2 || ulDateFmt == 3)
    16441765                            fb4.fdateLastWrite.year = atol(p) - 1980;
    1645                           if (ulDateFmt == 1)
     1766                          else if (ulDateFmt == 1)
    16461767                            fb4.fdateLastWrite.day = atol(p);
    16471768                          else
     
    16591780                              if (ulDateFmt == 2)
    16601781                                fb4.fdateLastWrite.day = atol(p);
    1661                               if (ulDateFmt == 3)
     1782                              else if (ulDateFmt == 3)
    16621783                                fb4.fdateLastWrite.month = atol(p);
    16631784                              else
     
    17781899          if (!pcil || !pcir) {
    17791900            if (pcil != pcir) {
    1780               // 2011-05-29 SHL fixme to GetPString
    1781               Runtime_Error(pszSrcFile, __LINE__, "pcil and pcir out of sync");
     1901              Runtime_Error(pszSrcFile, __LINE__, GetPString(IDS_LEFTRIGHTOUTOFSYNC));
    17821902              cmp->stop = TRUE;
    17831903              break;
     
    19172037            // Subject field holds status messages
    19182038            *pch = 0;
    1919             if (pcil->cbFile + pcil->easize > pcir->cbFile + pcir->easize) {
     2039            if (pcil->cbFile > pcir->cbFile) {
    19202040              pcil->flags |= CNRITEM_LARGER;
    19212041              pcir->flags |= CNRITEM_SMALLER;
     
    19232043              pch += 6;
    19242044            }
    1925             else if (pcil->cbFile + pcil->easize <
    1926                      pcir->cbFile + pcir->easize) {
     2045            else if (pcil->cbFile < pcir->cbFile) {
    19272046              pcil->flags |= CNRITEM_SMALLER;
    19282047              pcir->flags |= CNRITEM_LARGER;
    19292048              strcpy(pch, GetPString(IDS_SMALLERTEXT));
    19302049              pch += 7;
    1931             }
     2050            }
     2051            if (pcil->easize != pcir->easize) {
     2052              pcil->flags |= CNRITEM_EASDIFFER;
     2053              pcir->flags |= CNRITEM_EASDIFFER;
     2054              if (pch != szBuf) {
     2055                strcpy(pch, ", ");
     2056                pch += 2;
     2057              }
     2058              strcpy(pch, GetPString(IDS_EASDIFFERTEXT));
     2059              pch += 10;
     2060            }
    19322061            ret = TestCDates(&pcir->date, &pcir->time,
    19332062                             &pcil->date, &pcil->time);
     
    21862315  WinEnableWindow(WinWindowFromID(hwnd, COMP_DELETELEFT), fEnable);
    21872316  WinEnableWindow(WinWindowFromID(hwnd, COMP_FILTER), fEnable);
    2188   if (!fEnable || !*cmp->rightlist ) {
     2317  if (!fEnable || !*cmp->rightlist) {
    21892318    WinEnableWindow(WinWindowFromID(hwnd, COMP_COPYLEFT), fEnable);
    21902319    WinEnableWindow(WinWindowFromID(hwnd, COMP_MOVELEFT), fEnable);
     
    28382967                   MPFROMP(&cmp->dcd.mask));
    28392968      }
    2840       // cmp->dcd.suspendview = 0;      // 12 Jan 08 SHL appears not to be used here
    28412969      if (*cmp->dcd.mask.szMask) {
    28422970        sprintf(s,
     
    30663194            else
    30673195              strcpy(sf->dirname, cmp->rightdir);
    3068             cmp->includesubdirs = WinQueryButtonCheckstate(hwnd,
    3069                                                            COMP_INCLUDESUBDIRS);
    3070             sf->recurse = cmp->includesubdirs;
     3196            sf->recurse = WinQueryButtonCheckstate(hwnd, COMP_INCLUDESUBDIRS);
    30713197            //DbgMsg(pszSrcFile, __LINE__, "recurse %i %i", sf->recurse, cmp->includesubdirs);
    30723198            if (xbeginthread(StartSnapThread,
     
    31923318                            size);
    31933319        for (x = 0; ids[x]; x++) {
    3194           //fixme to allow user to change presparams 1-10-09 GKY
    31953320          sprintf(s, "CompDir%i", ids[x]);
    31963321          SavePresParams(WinWindowFromID(hwnd, ids[x]), s);
     
    32293354    case IDM_SELECTBIGGER:
    32303355    case IDM_SELECTSMALLER:
     3356    case IDM_SELECTEAS:
    32313357    case IDM_DESELECTNEWER:
    32323358    case IDM_DESELECTOLDER:
     
    32353361    case IDM_DESELECTONE:
    32363362    case IDM_DESELECTBOTH:
     3363    case IDM_DESELECTEAS:
    32373364    case IDM_SELECTBOTH:
    32383365    case IDM_SELECTONE:
     
    32413368    case IDM_SELECTSAME:                // Name and size
    32423369    case IDM_INVERT:
     3370   
     3371
    32433372      cmp = INSTDATA(hwnd);
    32443373      if (!cmp)
  • trunk/dll/dircnrs.h

    r1501 r1682  
    6868#define CNRITEM_OLDER     0x00080000
    6969#define CNRITEM_EXISTS    0x00100000    // file exists in both containers
     70#define CNRITEM_EASDIFFER 0x00200000    // file EAs are different
    7071
    7172#define EXTRA_RECORD_BYTES      (sizeof(CNRITEM) - sizeof(MINIRECORDCORE))
  • trunk/dll/fm3dlg.h

    r1681 r1682  
    4444  12 Aug 12 GKY Allow for selection of include subdirectories or a list file on initial startup of compare dirs
    4545  05 Jan 13 GKY Added an indicator (tetbox) that a list (snapshot) file is loaded.
     46  06 Jan 13 GKY Added optional confirmation dialogs for delete move and copy to compare dir Ticket 277
     47  06 Jan 13 GKY Added EA compare option to compare dir Ticket 80
    4648
    4749***********************************************************************/
     
    270272#define COMP_HIDENOTSELECTED                                                            21026
    271273#define COMP_LISTLOADED                                                                 21027
     274#define COMP_CONFIRMACTION                                                              21028
    272275
    273276#define EA_FRAME                                                                        21100
  • trunk/dll/fm3dll2.h

    r1664 r1682  
    3535  04 Aug 12 GKY Changes to use Unlock to unlock files if Unlock.exe is in path both from menu/toolbar and as part of
    3636                copy, move and delete operations
     37  06 Jan 13 GKY Added EA compare option to compare dir Ticket 80
    3738
    3839  Align with spaces only - no tabs please
     
    667668#define IDM_SELECTSAMECONTENT 10038
    668669#define IDM_UNHIDEALL         10039
     670#define IDM_SELECTEAS       10040
     671#define IDM_DESELECTEAS     10041
     672
    669673
    670674// #define PP_MAX    PP_MENUDISABLEBGNDCOLORINDEX       // Unused, 13 Sep 08 JBS
  • trunk/dll/fm3res.dlg

    r1681 r1682  
    5656  12 Aug 12 GKY Allow for selection of include subdirectories or a list file on initial startup of compare dirs
    5757  05 Jan 13 GKY Added an indicator (tetbox) that a list (snapshot) file is loaded.
     58  06 Jan 13 GKY Added optional confirmation dialogs for delete move and copy to compare dir Ticket 277
     59  06 Jan 13 GKY Added EA compare option to compare dir Ticket 80
    5860 
    5961***********************************************************************/
     
    22652267            FCF_SYSMENU | FCF_TITLEBAR | FCF_MINBUTTON | FCF_MAXBUTTON
    22662268    BEGIN
    2267         GROUPBOX        "", -1, 189, 7, 137, 17, NOT WS_GROUP
     2269        GROUPBOX        "", -1, 189, 6, 127, 17, NOT WS_GROUP
    22682270        LTEXT           "Deselect:", -1, 234, 47, 51, 8, NOT WS_GROUP
    22692271        LTEXT           "Select:", -1, 5, 47, 42, 8, NOT WS_GROUP
    2270         LTEXT           "", COMP_NOTE, 195, 10, 123, 8, NOT WS_GROUP
     2272        LTEXT           "", COMP_NOTE, 194, 9, 121, 8, NOT WS_GROUP
    22712273        LTEXT           "", COMP_LISTLOADED, 378, 23, 44, 8, NOT WS_GROUP
    22722274        RTEXT           "Total:", COMP_TOTALLEFTHDR, 4, 203, 32, 8,
     
    22862288        LTEXT           "0", COMP_SELRIGHT, 352, 203, 64, 8, DT_VCENTER |
    22872289                        NOT WS_GROUP
    2288         LTEXT           "Actions:", -1, 4, 23, 44, 8, DT_VCENTER | NOT
     2290        LTEXT           "Actions:", -1, 4, 23, 30, 8, DT_VCENTER | NOT
    22892291                        WS_GROUP
    22902292        CONTAINER       COMP_LEFTDIR, 4, 58, 216, 143, CCS_EXTENDSEL |
     
    22962298        PUSHBUTTON      "Size/time", IDM_SELECTIDENTICAL, 88, 45, 49, 12,
    22972299                        BS_NOPOINTERFOCUS
    2298         PUSHBUTTON      "~Both", IDM_SELECTBOTH, 4, 33, 32, 12,
    2299                         BS_NOPOINTERFOCUS
    2300         PUSHBUTTON      "On~e", IDM_SELECTONE, 35, 33, 32, 12,
    2301                         BS_NOPOINTERFOCUS
    2302         PUSHBUTTON      "~Larger", IDM_SELECTBIGGER, 66, 33, 32, 12,
    2303                         BS_NOPOINTERFOCUS
    2304         PUSHBUTTON      "~Smaller", IDM_SELECTSMALLER, 97, 33, 33, 12,
    2305                         BS_NOPOINTERFOCUS
    2306         PUSHBUTTON      "~Older", IDM_SELECTOLDER, 129, 33, 32, 12,
    2307                         BS_NOPOINTERFOCUS
    2308         PUSHBUTTON      "~Newer", IDM_SELECTNEWER, 161, 33, 32, 12,
    2309                         BS_NOPOINTERFOCUS
    2310         PUSHBUTTON      "Invert", IDM_INVERT, 193, 45, 38, 12,
     2300        PUSHBUTTON      "~Both", IDM_SELECTBOTH, 0, 33, 28, 12,
     2301                        BS_NOPOINTERFOCUS
     2302        PUSHBUTTON      "On~e", IDM_SELECTONE, 27, 33, 28, 12,
     2303                        BS_NOPOINTERFOCUS
     2304        PUSHBUTTON      "~Larger", IDM_SELECTBIGGER, 54, 33, 30, 12,
     2305                        BS_NOPOINTERFOCUS
     2306        PUSHBUTTON      "~Smaller", IDM_SELECTSMALLER, 83, 33, 32, 12,
     2307                        BS_NOPOINTERFOCUS
     2308        PUSHBUTTON      "~Older", IDM_SELECTOLDER, 114, 33, 30, 12,
     2309                        BS_NOPOINTERFOCUS
     2310        PUSHBUTTON      "~Newer", IDM_SELECTNEWER, 143, 33, 30, 12,
     2311                        BS_NOPOINTERFOCUS
     2312        PUSHBUTTON      "EAs", IDM_SELECTEAS, 172, 33, 20, 12,
     2313                        BS_NOPOINTERFOCUS               
     2314        PUSHBUTTON      "Invert", IDM_INVERT, 195, 45, 34, 12,
    23112315                        BS_NOPOINTERFOCUS | WS_GROUP
    23122316        PUSHBUTTON      "~All", IDM_DESELECTALL, 387, 45, 32, 12,
    23132317                        BS_NOPOINTERFOCUS | WS_GROUP
    2314         PUSHBUTTON      "Both", IDM_DESELECTBOTH, 231, 33, 32, 12,
    2315                         BS_NOPOINTERFOCUS
    2316         PUSHBUTTON      "One", IDM_DESELECTONE, 262, 33, 32, 12,
    2317                         BS_NOPOINTERFOCUS
    2318         PUSHBUTTON      "Lar~ger", IDM_DESELECTBIGGER, 293, 33, 32, 12,
    2319                         BS_NOPOINTERFOCUS
    2320         PUSHBUTTON      "S~maller", IDM_DESELECTSMALLER, 324, 33, 33, 12,
    2321                         BS_NOPOINTERFOCUS
    2322         PUSHBUTTON      "Ol~der", IDM_DESELECTOLDER, 356, 33, 32, 12,
    2323                         BS_NOPOINTERFOCUS
    2324         PUSHBUTTON      "Ne~wer", IDM_DESELECTNEWER, 387, 33, 32, 12,
    2325                         BS_NOPOINTERFOCUS
    2326         PUSHBUTTON      "Copy>", COMP_COPYLEFT, 50, 21, 40, 12,
     2318        PUSHBUTTON      "Both", IDM_DESELECTBOTH, 227, 33, 28, 12,
     2319                        BS_NOPOINTERFOCUS
     2320        PUSHBUTTON      "One", IDM_DESELECTONE, 254, 33, 28, 12,
     2321                        BS_NOPOINTERFOCUS
     2322        PUSHBUTTON      "Lar~ger", IDM_DESELECTBIGGER, 281, 33, 30, 12,
     2323                        BS_NOPOINTERFOCUS
     2324        PUSHBUTTON      "S~maller", IDM_DESELECTSMALLER, 310, 33, 32, 12,
     2325                        BS_NOPOINTERFOCUS
     2326        PUSHBUTTON      "Ol~der", IDM_DESELECTOLDER, 342, 33, 30, 12,
     2327                        BS_NOPOINTERFOCUS
     2328        PUSHBUTTON      "Ne~wer", IDM_DESELECTNEWER, 371, 33, 30, 12,
     2329                        BS_NOPOINTERFOCUS
     2330        PUSHBUTTON      "EAs", IDM_DESELECTEAS, 400, 33, 20, 12,
     2331                        BS_NOPOINTERFOCUS
     2332        PUSHBUTTON      "Copy>", COMP_COPYLEFT, 35, 21, 35, 12,
    23272333                        BS_NOPOINTERFOCUS | WS_GROUP
    2328         PUSHBUTTON      "Move>", COMP_MOVELEFT, 89, 21, 40, 12,
    2329                         BS_NOPOINTERFOCUS
    2330         PUSHBUTTON      "Delete", COMP_DELETELEFT, 128, 21, 40, 12,
    2331                         BS_NOPOINTERFOCUS
    2332         PUSHBUTTON      "~Filter", COMP_FILTER, 192, 22, 40, 12,
     2334        PUSHBUTTON      "Move>", COMP_MOVELEFT, 69, 21, 35, 12,
     2335                        BS_NOPOINTERFOCUS
     2336        PUSHBUTTON      "Delete", COMP_DELETELEFT, 103, 21, 40, 12,
     2337                        BS_NOPOINTERFOCUS
     2338        PUSHBUTTON      "~Filter", COMP_FILTER, 195, 21, 34, 12,
    23332339                        BS_NOPOINTERFOCUS | WS_GROUP
    2334         PUSHBUTTON      "<Copy", COMP_COPYRIGHT, 336, 21, 40, 12,
     2340        PUSHBUTTON      "<Copy", COMP_COPYRIGHT, 286, 21, 30, 12,
    23352341                        BS_NOPOINTERFOCUS | WS_GROUP
    2336         PUSHBUTTON      "<Move", COMP_MOVERIGHT, 297, 21, 40, 12,
    2337                         BS_NOPOINTERFOCUS
    2338         PUSHBUTTON      "Delete", COMP_DELETERIGHT, 258, 21, 40, 12,
     2342        PUSHBUTTON      "<Move", COMP_MOVERIGHT, 257, 21, 30, 12,
     2343                        BS_NOPOINTERFOCUS
     2344        PUSHBUTTON      "Delete", COMP_DELETERIGHT, 228, 21, 30, 12,
    23392345                        BS_NOPOINTERFOCUS
    23402346        DEFPUSHBUTTON   "Okay", COLR_BLACK, 0, 6, 40, 14, BS_NOPOINTERFOCUS |
     
    23472353        PUSHBUTTON      "Cancel", COLR_BLUE, 149, 6, 40, 14,
    23482354                        BS_NOPOINTERFOCUS
    2349         AUTOCHECKBOX    "~Include subdirs", COMP_INCLUDESUBDIRS, 331, 13, 91,
    2350                         8, BS_NOPOINTERFOCUS | WS_GROUP
    2351         CONTROL         "~Hide not selected", COMP_HIDENOTSELECTED, 330, 5, 91, 8,
     2355        AUTOCHECKBOX    "~Confirm Action", COMP_CONFIRMACTION, 320, 23, 50, 8,
     2356                        BS_NOPOINTERFOCUS | WS_GROUP
     2357        AUTOCHECKBOX    "~Include subdirs", COMP_INCLUDESUBDIRS, 320, 15, 91, 8,
     2358                        BS_NOPOINTERFOCUS | WS_GROUP
     2359        CONTROL         "~Hide not selected", COMP_HIDENOTSELECTED, 320, 7, 91, 8,
    23522360                        WC_BUTTON, BS_3STATE | BS_NOPOINTERFOCUS | WS_GROUP | WS_VISIBLE
    23532361        PUSHBUTTON      "Content", IDM_SELECTSAMECONTENT, 138, 45, 42, 12,
  • trunk/dll/fm3res.rc

    r1675 r1682  
    6464  30 Dec 12 GKY Enhance traget directory drop to give the option of changing the directory or carrying out an
    6565                operation to the current target; Added an error message for target = None;
     66  06 Jan 13 GKY Added EA compare option to compare dir Ticket 80
    6667 
    6768***********************************************************************/
     
    26352636    IDS_NEWERTEXT                         "Newer"
    26362637    IDS_OLDERTEXT                         "Older"
     2638    IDS_EASDIFFERTEXT                     "EAs differ"
    26372639    IDS_LONGNAMECOLTEXT                   "LName"
    26382640    IDS_LADATECOLTEXT                     "LA Date"
     
    34073409    IDS_DROPSETSTARGET                    "Do you wish to use this directory as the new target directory? \nYes sets target\nNo proceeds with drag/drop operation to current target"
    34083410    IDS_NOTARGETSET                       "A target directory has not been set"
     3411    IDS_LEFTRIGHTOUTOFSYNC                "pcil and pcir out of sync"
    34093412  END
    34103413
  • trunk/dll/fm3str.h

    r1675 r1682  
    111111#define IDS_DROPSETSTARGET                                    53
    112112#define IDS_NOTARGETSET                                       54
     113#define IDS_LEFTRIGHTOUTOFSYNC                                55
    113114#define IDS_HELPCMDTEXT                                       56
    114115#define IDS_ZEROBYTETEXT                                      58
     
    209210#define IDS_DRAGARCMEMTEXT                                    154
    210211#define IDS_DRAGARCFILETEXT                                   155
    211 #define IDS_WALKDEFAULTHELPTEXT                               158
    212 #define IDS_WALKRECENTDIRSTEXT                                159
    213 #define IDS_WALKCURRDIRTEXT                                   160
    214 #define IDS_WALKRECENTDIRSHELPTEXT                            161
    215 #define IDS_WALKUSERDIRSHELPTEXT                              162
    216 #define IDS_WALKDRIVELISTHELPTEXT                             163
    217 #define IDS_WALKDIRLISTHELPTEXT                               164
    218 #define IDS_WALKCOPYDLGTEXT                                   165
    219 #define IDS_WALKMOVEDLGTEXT                                   166
    220 #define IDS_WALKEXTRACTDLGTEXT                                167
    221 #define IDS_WALKCOMPAREDLGTEXT                                168
    222 #define IDS_WALKSETDIRSDLGTEXT                                169
    223 #define IDS_GREPDUPETEXT                                      170
    224 #define IDS_GREPSCANTEXT                                      171
    225 #define IDS_GREPINSERTINGTEXT                                 172
    226 #define IDS_GREPDUPESORTINGTEXT                               173
    227 #define IDS_GREPDUPECOMPARINGTEXT                             174
    228 #define IDS_GREPDUPECHECKPROGTEXT                             175
    229 #define IDS_HELPTEXT                                          176
    230 #define IDS_ENTERTEXTHELPTEXT                                 177
    231 #define IDS_PICKCODEPAGETEXT                                  178
    232 #define IDS_ARCDEFAULTHELPTEXT                                179
    233 #define IDS_ARCARCNAMEHELPTEXT                                180
    234 #define IDS_ARCCMDHELPTEXT                                    181
    235 #define IDS_ARCMASKHELPTEXT                                   182
    236 #define IDS_ARCEXECHELPTEXT                                   183
    237 #define IDS_EXTDROPHELPTEXT                                   184
    238 #define IDS_EXTVARIOUSTEXT                                    185
    239 #define IDS_EXTEXTRACTDIRHELPTEXT                             186
    240 #define IDS_COMPCOMPARETEXT                                   187
    241 #define IDS_COMPTOTEXT                                        188
    242 #define IDS_COMPDIFSIZESTEXT                                  189
    243 #define IDS_COMPVSBYTESTEXT                                   190
    244 #define IDS_COMPDONTMATCHTEXT                                 191
    245 #define IDS_COMPCOMPARINGTEXT                                 192
    246 #define IDS_COMPREADERRORTEXT                                 193
    247 #define IDS_COMPFILESMATCHTEXT                                194
    248 #define IDS_COMPWONDERWHYTEXT                                 195
    249 #define IDS_COMPCOMPLETETEXT                                  196
    250 #define IDS_COMPMATCHREADERRORTEXT                            197
    251 #define IDS_COMPODDERRORTEXT                                  198
    252 #define IDS_COMPMISMATCHERRORTEXT                             199
    253 #define IDS_COMPCANTOPENTEXT                                  200
    254 #define IDS_COMPSILLYALERTTEXT                                201
    255 #define IDS_COMPTOITSELFTEXT                                  202
    256 #define IDS_COMPMOVEFAILEDTEXT                                203
    257 #define IDS_COMPCOPYFAILEDTEXT                                204
     212#define IDS_WALKDEFAULTHELPTEXT                               156
     213#define IDS_WALKRECENTDIRSTEXT                                157
     214#define IDS_WALKCURRDIRTEXT                                   158
     215#define IDS_WALKRECENTDIRSHELPTEXT                            159
     216#define IDS_WALKUSERDIRSHELPTEXT                              160
     217#define IDS_WALKDRIVELISTHELPTEXT                             161
     218#define IDS_WALKDIRLISTHELPTEXT                               162
     219#define IDS_WALKCOPYDLGTEXT                                   163
     220#define IDS_WALKMOVEDLGTEXT                                   164
     221#define IDS_WALKEXTRACTDLGTEXT                                165
     222#define IDS_WALKCOMPAREDLGTEXT                                166
     223#define IDS_WALKSETDIRSDLGTEXT                                167
     224#define IDS_GREPDUPETEXT                                      168
     225#define IDS_GREPSCANTEXT                                      169
     226#define IDS_GREPINSERTINGTEXT                                 170
     227#define IDS_GREPDUPESORTINGTEXT                               171
     228#define IDS_GREPDUPECOMPARINGTEXT                             172
     229#define IDS_GREPDUPECHECKPROGTEXT                             173
     230#define IDS_HELPTEXT                                          174
     231#define IDS_ENTERTEXTHELPTEXT                                 175
     232#define IDS_PICKCODEPAGETEXT                                  176
     233#define IDS_ARCDEFAULTHELPTEXT                                177
     234#define IDS_ARCARCNAMEHELPTEXT                                178
     235#define IDS_ARCCMDHELPTEXT                                    179
     236#define IDS_ARCMASKHELPTEXT                                   180
     237#define IDS_ARCEXECHELPTEXT                                   181
     238#define IDS_EXTDROPHELPTEXT                                   182
     239#define IDS_EXTVARIOUSTEXT                                    183
     240#define IDS_EXTEXTRACTDIRHELPTEXT                             184
     241#define IDS_COMPCOMPARETEXT                                   185
     242#define IDS_COMPTOTEXT                                        186
     243#define IDS_COMPDIFSIZESTEXT                                  187
     244#define IDS_COMPVSBYTESTEXT                                   188
     245#define IDS_COMPDONTMATCHTEXT                                 189
     246#define IDS_COMPCOMPARINGTEXT                                 190
     247#define IDS_COMPREADERRORTEXT                                 191
     248#define IDS_COMPFILESMATCHTEXT                                192
     249#define IDS_COMPWONDERWHYTEXT                                 193
     250#define IDS_COMPCOMPLETETEXT                                  194
     251#define IDS_COMPMATCHREADERRORTEXT                            195
     252#define IDS_COMPODDERRORTEXT                                  196
     253#define IDS_COMPMISMATCHERRORTEXT                             197
     254#define IDS_COMPCANTOPENTEXT                                  198
     255#define IDS_COMPSILLYALERTTEXT                                199
     256#define IDS_COMPTOITSELFTEXT                                  200
     257#define IDS_COMPMOVEFAILEDTEXT                                201
     258#define IDS_COMPCOPYFAILEDTEXT                                202
     259#define IDS_EASDIFFERTEXT                                     203
    258260#define IDS_LARGERTEXT                                        205
    259261#define IDS_SMALLERTEXT                                       206
  • trunk/dll/rename.c

    r1664 r1682  
    2222  04 Aug 12 GKY Changes to allow copy and move over readonly files with a warning dialog; also added a warning dialog
    2323                for delete of readonly files
     24  06 Jan 13 GKY Added optional confirmation dialogs for delete move and copy to compare dir Ticket 277
    2425
    2526***********************************************************************/
     
    8788                          EM_SETSEL, MPFROM2SHORT(sello, selhi), MPVOID);
    8889      }
     90      WinShowWindow(WinWindowFromID(hwnd, REN_OVEROLD), FALSE);
     91      WinShowWindow(WinWindowFromID(hwnd, REN_OVERNEW), FALSE);
     92      WinShowWindow(WinWindowFromID(hwnd, REN_NOROWARN), FALSE);
     93    }
     94    if (mv->compare) {
     95      //WinShowWindow(WinWindowFromID(hwnd, REN_DONTASK), FALSE);
    8996      WinShowWindow(WinWindowFromID(hwnd, REN_OVEROLD), FALSE);
    9097      WinShowWindow(WinWindowFromID(hwnd, REN_OVERNEW), FALSE);
  • trunk/dll/seeall.c

    r1675 r1682  
    657657              strcpy(newname, path);
    658658              AddBackslashToPath(newname);
    659               //if (newname[strlen(newname) - 1] != '\\')
    660               //  strcat(newname, "\\");
    661659              if (plen)
    662660                p = list[x] + plen;
  • trunk/dll/worker.c

    r1673 r1682  
    881881                    if (!ret && (rc == ERROR_ACCESS_DENIED || (rc == ERROR_SHARING_VIOLATION && fUnlock)))
    882882                      rc = NO_ERROR;
    883                     //if (fTurnOffReadOnly)
    884                     //  make_deleteable(newname, rc);
    885883                    if (fResetVerify) {
    886884                      DosSetVerify(fVerify);
  • trunk/dll/worker.h

    r1664 r1682  
    1515  04 Aug 12 GKY Changes to allow copy and move over readonly files with a warning dialog; also added a warning dialog
    1616                for delete of readonly files
     17  06 Jan 13 GKY Added optional confirmation dialogs for delete move and copy to compare dir Ticket 277
    1718
    1819***********************************************************************/
     
    3536  BOOL overwrite;
    3637  BOOL noreadonlywarn;
     38  BOOL compare;
    3739}
    3840MOVEIT;
Note: See TracChangeset for help on using the changeset viewer.