Jelajahi Sumber

ADD: Viewer - auto copy option

Alexander Koblov 2 tahun lalu
induk
melakukan
7067d0c264
3 mengubah file dengan 12 tambahan dan 2 penghapusan
  1. 7 2
      components/viewer/viewercontrol.pas
  2. 1 0
      src/fviewer.pas
  3. 4 0
      src/uglobs.pas

+ 7 - 2
components/viewer/viewercontrol.pas

@@ -250,6 +250,7 @@ type
     FOnFileOpen:         TFileOpenEvent;
     FCaretVisible:       Boolean;
     FShowCaret:          Boolean;
+    FAutoCopy:           Boolean;
     FLastError:          String;
     FText:               String;
 
@@ -516,6 +517,7 @@ type
     property TabSpaces: Integer read FTabSpaces write SetTabSpaces;
     property LeftMargin: Integer read FLeftMargin write FLeftMargin;
     property ExtraLineSpacing: Integer read FExtraLineSpacing write FExtraLineSpacing;
+    property AutoCopy: Boolean read FAutoCopy write FAutoCopy;
     property OnGuessEncoding: TGuessEncodingEvent Read FOnGuessEncoding Write FOnGuessEncoding;
     property OnFileOpen: TFileOpenEvent read FOnFileOpen write FOnFileOpen;
 
@@ -618,6 +620,7 @@ begin
   FTabSpaces := 8;
   FLeftMargin := 4;
   FMaxTextWidth := 1024;
+  FAutoCopy := True;
 
   FLineList := TPtrIntList.Create;
 
@@ -2465,7 +2468,8 @@ begin
           if FBlockBeg > FBlockEnd then
             FBlockEnd := FBlockBeg;
 
-          CopyToClipboard;
+          if FAutoCopy then
+            CopyToClipboard;
           Invalidate;
         end;
       end; // mbLeft
@@ -2576,7 +2580,8 @@ begin
 
   if FSelecting and (Button = mbLeft) and (Shift * [ssDouble, ssTriple] = []) then
   begin
-    CopyToClipboard;
+    if FAutoCopy then
+      CopyToClipboard;
     FSelecting := False;
   end;
 end;

+ 1 - 0
src/fviewer.pas

@@ -645,6 +645,7 @@ begin
   actWrapText.Checked := gViewerWrapText;
   ViewerControl.ShowCaret := gShowCaret;
   ViewerControl.TabSpaces := gTabSpaces;
+  ViewerControl.AutoCopy := gViewerAutoCopy;
   ViewerControl.MaxTextWidth := gMaxTextWidth;
   ViewerControl.LeftMargin := gViewerLeftMargin;
   ViewerControl.ExtraLineSpacing := gViewerLineSpacing;

+ 4 - 0
src/uglobs.pas

@@ -638,6 +638,7 @@ var
   gViewerWrapText: Boolean;
   gViewerLeftMargin: Integer;
   gViewerLineSpacing: Integer;
+  gViewerAutoCopy: Boolean;
 
   { Editor }
   gEditWaitTime: Integer;
@@ -2060,6 +2061,7 @@ begin
   gViewerLeftMargin := 4;
   gViewerLineSpacing := 0;
   gPrintMargins:= Classes.Rect(200, 200, 200, 200);
+  gViewerAutoCopy := True;
 
   { Editor }
   gEditWaitTime := 2000;
@@ -3157,6 +3159,7 @@ begin
       gBookBackgroundColor := GetValue(Node, 'BackgroundColor', gBookBackgroundColor);
       gBookFontColor := GetValue(Node, 'FontColor', gBookFontColor);
       gTextPosition := GetValue(Node, 'TextPosition',  gTextPosition);
+      gViewerAutoCopy := GetValue(Node, 'AutoCopy',  gViewerAutoCopy);
       if LoadedConfigVersion < 7 then
       begin
         gThumbSave := GetValue(Node, 'SaveThumbnails', gThumbSave);
@@ -3788,6 +3791,7 @@ begin
     SetValue(Node, 'BackgroundColor', gBookBackgroundColor);
     SetValue(Node, 'FontColor', gBookFontColor);
     SetValue(Node, 'TextPosition', gTextPosition);
+    SetValue(Node, 'AutoCopy', gViewerAutoCopy);
 
     { Editor }
     Node := FindNode(Root, 'Editor',True);