Răsfoiți Sursa

UPD: Save viewer/editor position in session.ini using InitPropStorage.

cobines 15 ani în urmă
părinte
comite
14370941f3
7 a modificat fișierele cu 14 adăugiri și 139 ștergeri
  1. 7 7
      src/feditor.lfm
  2. 2 9
      src/feditor.pas
  3. 2 8
      src/fviewer.lfm
  4. 0 2
      src/fviewer.lrt
  5. 3 15
      src/fviewer.pas
  6. 0 96
      src/uglobs.pas
  7. 0 2
      src/ulng.pas

+ 7 - 7
src/feditor.lfm

@@ -1,12 +1,12 @@
 object frmEditor: TfrmEditor
-  Left = 330
-  Height = 220
-  Top = 169
-  Width = 342
+  Left = 224
+  Height = 500
+  Top = 174
+  Width = 719
   ActiveControl = Editor
   Caption = 'Editor'
-  ClientHeight = 200
-  ClientWidth = 342
+  ClientHeight = 469
+  ClientWidth = 719
   Icon.Data = {
     7E04000000000100010010100000010020006804000016000000280000001000
     0000200000000100200000000000000000000000000000000000000000000000
@@ -51,9 +51,9 @@ object frmEditor: TfrmEditor
   OnClose = frmEditorClose
   OnCloseQuery = FormCloseQuery
   OnCreate = FormCreate
-  OnDestroy = FormDestroy
   ParentFont = False
   Position = poScreenCenter
+  SessionProperties = 'Height;Width;WindowState;Left;Top'
   ShowInTaskBar = stAlways
   LCLVersion = '0.9.27'
   object StatusBar: TStatusBar

+ 2 - 9
src/feditor.pas

@@ -130,8 +130,6 @@ type
     procedure EditorKeyPress(Sender: TObject; var Key: Char);
     procedure actEditFindExecute(Sender: TObject);
     procedure actEditRplcExecute(Sender: TObject);
-
-    procedure FormDestroy(Sender: TObject);
     procedure actSave2Execute(Sender: TObject);
     procedure actConfHighExecute(Sender: TObject);
     procedure frmEditorClose(Sender: TObject; var CloseAction: TCloseAction);
@@ -192,7 +190,6 @@ var
   editor: TfrmEditor;
 begin
   editor := TfrmEditor.Create(Application);
-  gEditorPos.Restore(editor);
   LoadAttrFromFile(gpIniDir + csDefaultName);
 
   if sFileName = '' then
@@ -212,6 +209,8 @@ var
   mi:TMenuItem;
   EncodingsList: TStringList;
 begin
+  InitPropStorage(Self);
+
   Editor.Font.Name:=gEditorFontName;
   Editor.Font.Size:=gEditorFontSize;
   Editor.Font.Style:=gEditorFontStyle;
@@ -771,12 +770,6 @@ begin
   ShowSearchReplaceDialog(True);
 end;
 
-procedure TfrmEditor.FormDestroy(Sender: TObject);
-begin
-  gEditorPos.Save(Self);;
-  inherited;
-end;
-
 procedure TfrmEditor.actSave2Execute(Sender: TObject);
 begin
   inherited;

+ 2 - 8
src/fviewer.lfm

@@ -57,7 +57,8 @@ object frmViewer: TfrmViewer
   OnDestroy = FormDestroy
   OnKeyDown = frmViewerKeyDown
   OnKeyPress = FormKeyPress
-  Position = poDefault
+  Position = poScreenCenter
+  SessionProperties = 'Height;Width;Left;Top;WindowState'
   ShowInTaskBar = stAlways
   LCLVersion = '0.9.29'
   object pnlLister: TPanel
@@ -168,13 +169,6 @@ object frmViewer: TfrmViewer
       object miSeparator: TMenuItem
         Caption = '-'
       end
-      object miSavePos: TMenuItem
-        Caption = '&Save Position'
-        OnClick = miSavePosClick
-      end
-      object N1: TMenuItem
-        Caption = '-'
-      end
       object miExit: TMenuItem
         Caption = 'E&xit'
         OnClick = miExitClick

+ 0 - 2
src/fviewer.lrt

@@ -4,8 +4,6 @@ TFRMVIEWER.MIPREV.CAPTION=&Previous
 TFRMVIEWER.MINEXT.CAPTION=&Next
 TFRMVIEWER.MIPRINT.CAPTION=Print...
 TFRMVIEWER.MISEPARATOR.CAPTION=-
-TFRMVIEWER.MISAVEPOS.CAPTION=&Save Position
-TFRMVIEWER.N1.CAPTION=-
 TFRMVIEWER.MIEXIT.CAPTION=E&xit
 TFRMVIEWER.MIEDIT.CAPTION=&Edit
 TFRMVIEWER.MICOPYTOCLIPBOARD.CAPTION=Copy To Clipboard

+ 3 - 15
src/fviewer.pas

@@ -53,7 +53,6 @@ type
     miEncoding: TMenuItem;
     miPlugins: TMenuItem;
     miSeparator: TMenuItem;
-    miSavePos: TMenuItem;
     pnlLister: TPanel;
     pmEditMenu: TPopupMenu;
     sboxImage: TScrollBox;
@@ -64,7 +63,6 @@ type
     miNext: TMenuItem;
     miView: TMenuItem;
     miExit: TMenuItem;
-    N1: TMenuItem;
     miImage: TMenuItem;
     miStretch: TMenuItem;
     miText: TMenuItem;
@@ -97,7 +95,6 @@ type
     procedure miExitClick(Sender: TObject);
     procedure miNextClick(Sender: TObject);
     procedure miPrevClick(Sender: TObject);
-    procedure miSavePosClick(Sender: TObject);
     procedure miStretchClick(Sender: TObject);
     procedure miTextClick(Sender: TObject);
     procedure miBinClick(Sender: TObject);
@@ -173,7 +170,6 @@ begin
   //DebugLn('ShowViewer - Using Internal');
   Viewer := TfrmViewer.Create(Application, aFileSource);
   Viewer.QuickView:= False;
-  gViewerPos.Restore(Viewer);
   Viewer.FileList.Assign(FilesToView); // Make a copy of the list
   Viewer.LoadFile(0);
   Viewer.Show;
@@ -383,10 +379,7 @@ end;
 procedure TfrmViewer.frmViewerClose(Sender: TObject;
                                     var CloseAction: TCloseAction);
 begin
-  // TODO: may be better automtic save
-  // (see also TfrmViewer.miSavePosClick)
   CloseAction:=caFree;
-  if not bImage then gViewerPos.Save(Self);
   gViewerImageStretch:= miStretch.Checked;
   if Assigned(WlxPlugins) then
      begin
@@ -464,13 +457,6 @@ begin
   LoadFile(I);
 end;
 
-procedure TfrmViewer.miSavePosClick(Sender: TObject);
-begin
-  // TODO: It really need? may be better automtic save
-  gViewerPos.Save(Self);
-  msgOK(rsPositionSaved);
-end;
-
 procedure TfrmViewer.miStretchClick(Sender: TObject);
 begin
   miStretch.Checked:= not miStretch.Checked;
@@ -525,6 +511,8 @@ end;
 
 procedure TfrmViewer.FormCreate(Sender: TObject);
 begin
+  InitPropStorage(Self);
+
   ViewerControl.Font.Name  := gViewerFontName;
   ViewerControl.Font.Size  := gViewerFontSize;
   ViewerControl.Font.Style := gViewerFontStyle;
@@ -861,4 +849,4 @@ end;
 initialization
  {$I fviewer.lrs}
 
-end.
+end.

+ 0 - 96
src/uglobs.pas

@@ -26,17 +26,6 @@ uses
   uColumns,uhotkeymanger,uActs, uWFXModule, uWCXModule, uSearchTemplate,
   uFileSourceOperationOptions;
 
-type
-  TControlPosition = object
-    Left: Integer;
-    Top: Integer;
-    Width: Integer;
-    Height: Integer;
-    
-    procedure Save(Control: TControl);
-    procedure Restore(Control: TControl);
-  end;
-
 type
   { Log options }
   TLogOptions = set of (log_cp_mv_ln, log_delete, log_dir_op, log_arc_op,
@@ -150,10 +139,6 @@ var
   gViewerFontName: String;
   gViewerFontSize: Integer;
   gViewerFontStyle: TFontStyles;
-
-  gViewerPos:TControlPosition;
-  gEditorPos:TControlPosition;
-
   gViewerImageStretch: Boolean;
   
   { File panels color page }
@@ -251,12 +236,8 @@ function LoadStringsFromFile(var list:TStringListEx; const sFileName:String):boo
 
 procedure LoadDefaultHotkeyBindings;
 
-procedure MinimizeToScreen(Form: TCustomForm; Width: Integer = 1024; Height: Integer = 768);
 function InitPropStorage(Owner: TComponent): TIniPropStorageEx;
 
-// for debugging only, can be removed
-procedure dbgShowWindowPos(const pos: TControlPosition);
-
 const
   cMaxStringItems=50;
   
@@ -340,29 +321,6 @@ begin
     end;
 end;
 
-procedure MinimizeToScreen(Form: TCustomForm; Width: Integer = 1024; Height: Integer = 768);
-var
-  mWidth, mHeight,
-  PersW, PersH,
-  NewW, NewH: Integer;
-begin
-  mWidth:= Form.Monitor.Width;
-  mHeight:= Form.Monitor.Height;
-
-  if (mWidth = Width) and (mHeight = Height) then exit;
-
-  if (mWidth > Form.Width) and (mHeight > Form.Height) then Exit;
-
-  PersW:= (mWidth * 100) div Width;
-  PersH:= (mHeight * 100) div Height;
-
-  NewW:= (Form.Width * PersW) div 100;
-  NewH:= (Form.Height * PersH) div 100;
-
-  Form.Width:= NewW;
-  Form.Height:= NewH;
-end;
-
 function InitPropStorage(Owner: TComponent): TIniPropStorageEx;
 var
   sWidth, sHeight: String;
@@ -378,52 +336,6 @@ begin
     end;
 end;
 
-// for debugging only, can be removed
-procedure dbgShowWindowPos(const pos: TControlPosition);
-begin
-  DebugLn('TWindowPos');
-  DebugLn('Left: ', IntToStr(pos.Left));
-  DebugLn('Top:  ', IntToStr(pos.Top));
-  DebugLn('Width: ', IntToStr(pos.Width));
-  DebugLn('Height: ', IntToStr(pos.Height));
-  DebugLn('END');
-end;
-
-procedure TControlPosition.Save(Control: TControl);
-begin
-  Left := Control.Left;
-  Top := Control.Top;
-  Width := Control.Width;
-  Height := Control.Height;
-end;
-
-procedure TControlPosition.Restore(Control: TControl);
-begin
-  Control.Left := Left;
-  Control.Top := Top;
-  Control.Width := Width;
-  Control.Height := Height;
-  // Resize window for screen size if need
-  if Control is TForm then
-    MinimizeToScreen(Control as TForm);
-end;
-
-procedure LoadWindowPos(var pos:TControlPosition; sPrefix:String);
-begin
-  pos.Left:=gIni.ReadInteger('Configuration', sPrefix+'left',50);
-  pos.Top:=gIni.ReadInteger('Configuration', sPrefix+'top',50);
-  pos.Width:= gIni.ReadInteger('Configuration', sPrefix+'width',300);
-  pos.Height:= gIni.ReadInteger('Configuration', sPrefix+'height',400);
-end;
-
-procedure SaveWindowPos(pos: TControlPosition; sPrefix:String);
-begin
-  gIni.WriteInteger('Configuration', sPrefix+'left', pos.Left);
-  gIni.WriteInteger('Configuration', sPrefix+'top', pos.Top);
-  gIni.WriteInteger('Configuration', sPrefix+'width', pos.Width);
-  gIni.WriteInteger('Configuration', sPrefix+'height', pos.Height);
-end;
-
 procedure InitGlobs;
 begin
   { Create default configuration files if need }
@@ -675,11 +587,6 @@ begin
 
   gColorExt.Load;
 
-  DebugLn('Loading viewer position...');
-  LoadWindowPos(gViewerPos, 'Viewer.');
-  DebugLn('Loading editor position...');
-  LoadWindowPos(gEditorPos, 'Editor.');
-
   { Localization }
   DoLoadLng;
   msgLoadLng;
@@ -886,9 +793,6 @@ begin
   gIni.WriteInteger('Operations', 'DirectoryExists', Integer(gOperationOptionDirectoryExists));
   gIni.WriteBool('Operations', 'CheckFreeSpace', gOperationOptionCheckFreeSpace);
 
-  SaveWindowPos(gViewerPos, 'Viewer.');
-  SaveWindowPos(gEditorPos, 'Editor.');
-  
   gExts.SaveToFile(gpIniDir + 'doublecmd.ext');
   gColorExt.Save;
   

+ 0 - 2
src/ulng.pas

@@ -142,8 +142,6 @@ resourcestring
 
   rsQuickSearchPanel = 'Find:';
   rsQuickFilterPanel = 'Filter:';
-  rsSavePosition = '&Save position';
-  rsPositionSaved = 'Position saved.';
   // File operations dialog
   rsDlgSpeedTime = 'Speed %s/s, remaining time %s';
   rsDlgDel = 'Delete file(s)';