Changeset 878


Ignore:
Timestamp:
Nov 26, 2007, 1:20:00 PM (13 years ago)
Author:
Gregg Young
Message:

Added "Save as" and readonly file handling to internal editor; clean up ext path not checked on start up; Updated history.

Location:
trunk
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/HISTORY

    r872 r878  
    22
    333.09(pre)
    4  o Correct hex edit buffer sizing to avoid data loss
    5  o Use CopyPresParams to fix presparam inconsistencies in menus
    6  o Correct variable cast to fix hex code display problem
     4 o Add "Save as" menu item to internal viewer (Gregg)
     5 o Eliminate deletion of ext path if it was not valid on startup
     6 allow saving of a currently not valid ext path with warning (Gregg)
     7 o Internal editor now handles readonly files (Gregg)
     8 o Correct hex edit buffer sizing to avoid data loss (Steven)
     9 o Use CopyPresParams to fix presparam inconsistencies in menus  (Gregg)
     10 o Correct variable cast to fix hex code display problem (Gregg)
    711
    8123.08
  • trunk/dll/defview.c

    r793 r878  
    309309                           WINDOWED | SEPARATE |
    310310                           ((fViewChild) ? CHILD : 0), NULL, dummy, NULL);
    311               }
     311              }
     312              else if (fUseNewViewer) {
     313                if (fExternalViewer || strcmp(realappname, FM3Str))
     314                  hwndParent = HWND_DESKTOP;
     315                StartViewer(hwndParent, 5, filename, hwndFrame);
     316              }
    312317              else
    313318                StartMLEEditor(hwndParent, 5, filename, hwndFrame);
  • trunk/dll/fm3dlg.h

    r828 r878  
    329329#define MLE_VIEWHTTP                                                                            21741
    330330#define MLE_VIEWFTP                                                                             21742
     331#define MLE_EXPORTAS                                                                    21743
    331332
    332333#define SRCH_FRAME                                                                                      21800
  • trunk/dll/fm3dll.str

    r846 r878  
    331331No files found.
    332332FM/2: View HELP files
    333 \nModule: %s Line number: %u 
     333\nModule: %s Line number: %u
    334334                                  Error Message Information
    335335\nModule: %s Line number: %u\nOS/2 error: %d\nClass: %s\nAction: %s\nLocation: %s
     
    876876
    877877Fatal Error:
    878 
     878%s is not a valid directory\nDo you wish to delete it?
    879879Version:
    880880FM/2 Lite
     
    10051005%lu bytes/sector, %lu sector%s/unit
    10061006Stats not meaningful
     1007%s is marked Read Only\n You will need to change its name to save.\n Select: yes to continue, no to open in viewer
     1008%s is marked Read Only\n You will need to change its name to save.
    10071009$Id$
  • trunk/dll/fm3res.rc

    r833 r878  
    2828  30 Aug 07 SHL Add accelerator support to QuickList windows
    2929  05 Sep 07 SHL Small change for OpenWatcom wrc compat
     30  26 Nov 07 GKY Added "Save as" to internal editor
    3031
    3132***********************************************************************/
     
    17301731      MENUITEM "~Insert file...\tCtrl + i",       MLE_INSERTFILE
    17311732      MENUITEM "~Save file...\tCtrl + s",         MLE_EXPORTFILE
     1733      MENUITEM "Save ~as...\tCtrl + e",           MLE_EXPORTAS
    17321734      MENUITEM "~Change filename...\tCtrl + c",   MLE_SETEXPORTFILE
    17331735      MENUITEM "",                          -1,     MIS_SEPARATOR
     
    18501852   "R",      MLE_TOGGLEREADONLY,        CONTROL,SHIFT
    18511853   "s",      MLE_EXPORTFILE,            CONTROL
     1854   "e",      MLE_EXPORTAS,              CONTROL
    18521855   "f",      MLE_FINDFIRST,             CONTROL
    18531856   "I",      MLE_SENSITIVE,             SHIFT,CONTROL
  • trunk/dll/fm3str.h

    r603 r878  
    1616  31 Mar 07 GKY Removed IDS_WC window class names
    1717  06 Apr 07 GKY Add error message for drg work around
     18  26 Nov 07 GKY Added new readonly in editor & ext path
    1819
    1920***********************************************************************/
     
    2526// Last string reserved for cvs id
    2627
    27 #define IDS_NUMSTRS                                           1007
     28#define IDS_NUMSTRS                                           1009
    2829
    2930#define IDS_OPENBUTTONHELP                                    0
     
    843844#define IDS_USUALDISCTEXT                                     860
    844845#define IDS_FATALERRORTEXT                                    876
     846#define IDS_EXTPATHNOTVALIDTEXT                               877
    845847#define IDS_VERSIONTEXT                                       878
    846848#define IDS_FM2LITETEXT                                       879
     
    969971#define IDS_SECTORSTEXT                                      1004
    970972#define IDS_STATSMEANINGLESSTEXT                             1005
     973#define IDS_EDITREADONLYFILETEXT                             1006
     974#define IDS_EDITREADONLYFILETEXT2                            1007
  • trunk/dll/init.c

    r875 r878  
    3737  01 Sep 07 GKY Use xDosSetPathInfo to fix case where FS3 buffer crosses 64k boundry
    3838  10 Nov 07 GKY Get thousands separator from country info for file sizes.
     39  26 Nov 07 GKY Eliminate check of ext path on start up
    3940
    4041***********************************************************************/
  • trunk/dll/mle.h

    r551 r878  
    1 /**************************************************************************/
    2 /*                  MLE text editor/viewer source code                    */
    3 /*                    copyright (c) 1993 by M. Kimes                      */
    4 /*                        All rights reserved                             */
    5 /**************************************************************************/
     1/***********************************************************************
     2
     3  $Id$
     4
     5  headers for internal viewer/editor
     6
     7  Copyright (c) 1993-98 M. Kimes
     8  Copyright (c) 2002, 2006 Steven H. Levine
     9
     10  26 Nov 07 Add items to XMLEWNDPTR struct for "Save as" & readonly file handling
     11
     12***********************************************************************/
    613
    714/* MLE support macros */
     
    235242  CHAR exportfilename[1027];
    236243  CHAR importfilename[1027];
     244  BOOL fileattrreadonly;
    237245  FATTRS fattrs;
    238246  ULONG cp;
     
    240248  ULONG lastpos;
    241249  BOOL killme;
     250  BOOL saveas;
    242251  BOOL dontclose;
    243252  HWND hwndRestore, hwndFrame, hwndParent;
  • trunk/dll/notebook.c

    r876 r878  
    2020  19 Aug 07 SHL Sync with SaveDirCnrState mods
    2121  21 Aug 07 GKY Make Subject column in dircnr sizable and movable from the rigth to the left pane
     22  26 Nov 07 GKY Allow a currently nonvalid path in the ext path field with warning
    2223
    2324***********************************************************************/
     
    207208        if (IsFile(extractpath)) {
    208209          ulResult = saymsg(MB_YESNOCANCEL | MB_ICONQUESTION | MB_DEFBUTTON1, HWND_DESKTOP,
    209                      "Bad pathname", "%s is not a valid directory\nDo you wish to delete it?",
     210                            GetPString(IDS_WARNINGTEXT),
     211                            GetPString(IDS_EXTPATHNOTVALIDTEXT),
    210212                            extractpath);
    211213          if (ulResult == MBID_YES)
  • trunk/dll/viewer.c

    r847 r878  
    1414  30 Mar 07 GKY Remove GetPString for window class names
    1515  20 Aug 07 GKY Move #pragma alloc_text to end for OpenWatcom compat
     16  26 Nov 07 GKY Allow open of readonly files in the editor with warning
     17  26 Nov 07 GKY Add "Save as" menu option to editor
    1618
    1719***********************************************************************/
     
    6466  XMLEWNDPTR *vw;
    6567  ULONG flFrameFlags = FCF_SYSMENU | FCF_SIZEBORDER | FCF_ICON |
    66     FCF_TITLEBAR | FCF_MINMAX | FCF_MENU | FCF_ACCELTABLE | FCF_NOBYTEALIGN;
     68      FCF_TITLEBAR | FCF_MINMAX | FCF_MENU | FCF_ACCELTABLE | FCF_NOBYTEALIGN;
     69  ULONG ulResult;
     70  BOOL OpenInViewer = FALSE, readonly = FALSE;
     71  FILESTATUS3 fs3;
    6772
    6873  if (fExternalViewer || strcmp(realappname, FM3Str))
    6974    hwndClient = HWND_DESKTOP;
    70   if ((flags & 1) && fUseNewViewer)
    71     return StartViewer(hwndClient, (USHORT) flags, filename, hwndRestore);
     75  DosQueryPathInfo(filename, FIL_STANDARD, &fs3, sizeof(fs3));
     76  if (fs3.attrFile & FILE_READONLY) {
     77    ulResult = saymsg(MB_YESNOCANCEL | MB_ICONQUESTION | MB_DEFBUTTON1, HWND_DESKTOP,
     78                      GetPString(IDS_WARNINGTEXT),
     79                      GetPString(IDS_EDITREADONLYFILETEXT),
     80                      filename);
     81    switch (ulResult){
     82    case MBID_YES:{
     83      readonly = TRUE;
     84      break;
     85    }
     86
     87    case MBID_NO:
     88      if (fUseNewViewer)
     89        return StartViewer(hwndClient, (USHORT) flags, filename, hwndRestore);
     90      else{
     91        OpenInViewer = TRUE;
     92        break;
     93      }
     94
     95    case MBID_CANCEL:
     96        return (HWND) 0;
     97    }
     98  }
    7299
    73100  vw = xmallocz(sizeof(XMLEWNDPTR), pszSrcFile, __LINE__);
     
    75102    return (HWND) 0;
    76103  vw->size = sizeof(XMLEWNDPTR);
     104  if (readonly)
     105    vw->fileattrreadonly = TRUE;
     106  else
     107    vw->fileattrreadonly = FALSE;
    77108  if (flags & 1) {
    78109    if (flags & 8)
     
    95126    flFrameFlags |= FCF_TASKLIST;
    96127  hwndFrame = WinCreateStdWindow(hwndClient,
    97                                  WS_VISIBLE,
     128                                 0,
    98129                                 &flFrameFlags,
    99130                                 WC_MLEEDITOR,
    100131                                 NullStr,
    101                                  WS_VISIBLE | fwsAnimate,
     132                                 fwsAnimate,
    102133                                 FM3ModHandle, MLE_FRAME, &hwnd);
    103134  if (hwndFrame) {
     
    143174                      SWP_ACTIVATE);
    144175    }
    145     MLEsetreadonly(hwndMLE, ((flags & 1) != 0));
     176    if (OpenInViewer | (flags & 1))
     177      MLEsetreadonly(hwndMLE, ((flags & 1) != 0));
    146178    WinSetWindowPtr(hwnd, QWL_USER, (PVOID) vw);
    147179    if (!PostMsg(hwnd, UM_SETUP, MPVOID, MPFROMLONG(hwndClient)))
     
    731763          if (temp == MBID_CANCEL)
    732764            break;
    733           if (temp == MBID_YES)
     765          if (temp == MBID_YES){
    734766            WinSendMsg(hwnd,
    735                        WM_COMMAND, MPFROM2SHORT(MLE_EXPORTFILE, 0), MPVOID);
     767                       WM_COMMAND, MPFROM2SHORT(MLE_EXPORTFILE, 0), MPVOID);
     768            if (vw->fileattrreadonly) {
     769              temp = saymsg(MB_OKCANCEL | MB_ICONEXCLAMATION,
     770                            hwnd, NullStr, "File is readonly and has not been saved");
     771              if (temp == MBID_CANCEL)
     772                return 0;
     773            }
     774          }
    736775        }
    737776        MLEclearall(hwndMLE);
     
    770809      break;
    771810
     811    case MLE_EXPORTAS:
     812      vw->saveas = TRUE;
     813      WinSendMsg(hwnd,
     814                 WM_COMMAND, MPFROM2SHORT(MLE_SETEXPORTFILE, 0), MPVOID);
     815      break;
     816
    772817    case IDM_RENAME:
    773818    case MLE_SETEXPORTFILE:
    774819      if (vw && !MLEgetreadonly(hwndMLE)) {
    775820
    776         CHAR filename[1027];
     821        CHAR filename[1027];
     822        ULONG ulResult;
    777823
    778824        strcpy(filename, vw->exportfilename);
    779         if (export_filename(hwnd, filename, 1)) {
     825        if (export_filename(hwnd, filename, !vw->fileattrreadonly)) {
    780826          if (stricmp(filename, vw->exportfilename)) {
    781             vw->ch = TRUE;
    782             MLEsetchanged(hwndMLE, TRUE);
     827            vw->ch = TRUE;
     828            vw->fileattrreadonly = FALSE;
     829            MLEsetchanged(hwndMLE, TRUE);
    783830            strcpy(vw->exportfilename, filename);
    784             WinSendMsg(hwnd, UM_SETUP2, MPVOID, MPVOID);
    785           }
     831            WinSendMsg(hwnd, UM_SETUP2, MPVOID, MPVOID);
     832            if (vw->saveas) {
     833              vw->saveas = FALSE;
     834              WinSendMsg(hwnd,
     835                         WM_COMMAND, MPFROM2SHORT(MLE_EXPORTFILE, 0), MPVOID);
     836            }
     837          }
     838          else if (vw->fileattrreadonly){
     839              ulResult = saymsg(MB_OKCANCEL | MB_ICONQUESTION | MB_DEFBUTTON1, HWND_DESKTOP,
     840                                GetPString(IDS_WARNINGTEXT),
     841                                GetPString(IDS_EDITREADONLYFILETEXT2),
     842                                filename);
     843              if (ulResult == MBID_OK){
     844                WinSendMsg(hwnd,
     845                           WM_COMMAND, MPFROM2SHORT(MLE_SETEXPORTFILE, 0), MPVOID);
     846                break;
     847              }
     848              else
     849                vw->saveas = FALSE;
     850          }
     851          else if (vw->saveas = TRUE) {
     852            vw->saveas = FALSE;
     853            WinSendMsg(hwnd,
     854                       WM_COMMAND, MPFROM2SHORT(MLE_EXPORTFILE, 0), MPVOID);
     855          }
    786856        }
    787857      }
     
    789859
    790860    case MLE_EXPORTFILE:
     861      if (vw->fileattrreadonly){
     862        WinSendMsg(hwnd,
     863                   WM_COMMAND, MPFROM2SHORT(MLE_SETEXPORTFILE, 0), MPVOID);
     864        break;
     865      }
    791866      if (!MLEgetreadonly(hwndMLE)) {
    792867
     
    807882          FILE *fp;
    808883
    809           fp = xfopen(vw->exportfilename, "r+", pszSrcFile, __LINE__);
     884          fp = fopen(vw->exportfilename, "r+"); //, pszSrcFile, __LINE__);
    810885          if (fp) {
    811886            oldsize = filelength(fileno(fp));
     
    9421017
    9431018        strcpy(filename, vw->exportfilename);
    944         if (export_filename(hwnd, filename, 1))
     1019        if (export_filename(hwnd, filename, !vw->fileattrreadonly))
    9451020          MLEdoblock(hwndMLE, WRITE, filename);
    9461021      }
     
    11381213        if (temp == MBID_CANCEL)
    11391214          return 0;
    1140         if (temp == MBID_YES)
     1215        if (temp == MBID_YES){
    11411216          WinSendMsg(hwnd,
    1142                      WM_COMMAND, MPFROM2SHORT(MLE_EXPORTFILE, 0), MPVOID);
     1217                     WM_COMMAND, MPFROM2SHORT(MLE_EXPORTFILE, 0), MPVOID);
     1218          if (vw->fileattrreadonly) {
     1219            temp = saymsg(MB_OKCANCEL | MB_ICONEXCLAMATION,
     1220                          hwnd, NullStr, "File is readonly and has not been saved");
     1221            if (temp == MBID_CANCEL)
     1222                return 0;
     1223          }
     1224        }
    11431225      }
    11441226    }
Note: See TracChangeset for help on using the changeset viewer.