Selaa lähdekoodia

ADD: Ask before exit (issue #744)

Alexander Koblov 2 vuotta sitten
vanhempi
commit
e43e3842f7
2 muutettua tiedostoa jossa 11 lisäystä ja 1 poistoa
  1. 7 1
      src/fmain.pas
  2. 4 0
      src/uglobs.pas

+ 7 - 1
src/fmain.pas

@@ -1774,8 +1774,14 @@ begin
       rsMsgFileOperationsActiveLong + LineEnding + rsMsgConfirmQuit,
       rsMsgFileOperationsActiveLong + LineEnding + rsMsgConfirmQuit,
       mtConfirmation, [mbYes, mbNo], 0, mbNo) = mrYes;
       mtConfirmation, [mbYes, mbNo], 0, mbNo) = mrYes;
   end
   end
-  else
+  else if gConfirmQuit then
+  begin
+    CanClose := MessageDlg('', rsMsgConfirmQuit,
+                           mtConfirmation, [mbYes, mbNo], 0, mbNo) = mrYes;
+  end
+  else begin
     CanClose := True;
     CanClose := True;
+  end;
 
 
   if CanClose then
   if CanClose then
   begin
   begin

+ 4 - 0
src/uglobs.pas

@@ -364,6 +364,7 @@ var
   gWheelScrollLines: Integer;
   gWheelScrollLines: Integer;
   gAlwaysShowTrayIcon: Boolean;
   gAlwaysShowTrayIcon: Boolean;
   gMinimizeToTray: Boolean;
   gMinimizeToTray: Boolean;
+  gConfirmQuit: Boolean;
   gFileSizeFormat: TFileSizeFormat;
   gFileSizeFormat: TFileSizeFormat;
   gHeaderSizeFormat: TFileSizeFormat;
   gHeaderSizeFormat: TFileSizeFormat;
   gFooterSizeFormat: TFileSizeFormat;
   gFooterSizeFormat: TFileSizeFormat;
@@ -1650,6 +1651,7 @@ begin
   gOperationSizeDigits := 1;
   gOperationSizeDigits := 1;
   //NOTES: We're intentionnaly not setting our default memory immediately because language file has not been loaded yet.
   //NOTES: We're intentionnaly not setting our default memory immediately because language file has not been loaded yet.
   //       We'll set them *after* after language has been loaded since we'll know the correct default to use.
   //       We'll set them *after* after language has been loaded since we'll know the correct default to use.
+  gConfirmQuit := False;
   gMinimizeToTray := False;
   gMinimizeToTray := False;
   gAlwaysShowTrayIcon := False;
   gAlwaysShowTrayIcon := False;
   gMouseSelectionEnabled := True;
   gMouseSelectionEnabled := True;
@@ -2674,6 +2676,7 @@ begin
       gSizeDisplayUnits[fsfPersonalizedMega] := ' ' + Trim(GetValue(Node, 'PersonalizedMega', gSizeDisplayUnits[fsfPersonalizedMega]));
       gSizeDisplayUnits[fsfPersonalizedMega] := ' ' + Trim(GetValue(Node, 'PersonalizedMega', gSizeDisplayUnits[fsfPersonalizedMega]));
       gSizeDisplayUnits[fsfPersonalizedGiga] := ' ' + Trim(GetValue(Node, 'PersonalizedGiga', gSizeDisplayUnits[fsfPersonalizedGiga]));
       gSizeDisplayUnits[fsfPersonalizedGiga] := ' ' + Trim(GetValue(Node, 'PersonalizedGiga', gSizeDisplayUnits[fsfPersonalizedGiga]));
       gSizeDisplayUnits[fsfPersonalizedTera] := ' ' + Trim(GetValue(Node, 'PersonalizedTera', gSizeDisplayUnits[fsfPersonalizedTera]));
       gSizeDisplayUnits[fsfPersonalizedTera] := ' ' + Trim(GetValue(Node, 'PersonalizedTera', gSizeDisplayUnits[fsfPersonalizedTera]));
+      gConfirmQuit := GetValue(Node, 'ConfirmQuit', gConfirmQuit);
       gMinimizeToTray := GetValue(Node, 'MinimizeToTray', gMinimizeToTray);
       gMinimizeToTray := GetValue(Node, 'MinimizeToTray', gMinimizeToTray);
       gAlwaysShowTrayIcon := GetValue(Node, 'AlwaysShowTrayIcon', gAlwaysShowTrayIcon);
       gAlwaysShowTrayIcon := GetValue(Node, 'AlwaysShowTrayIcon', gAlwaysShowTrayIcon);
       gMouseSelectionEnabled := GetAttr(Node, 'Mouse/Selection/Enabled', gMouseSelectionEnabled);
       gMouseSelectionEnabled := GetAttr(Node, 'Mouse/Selection/Enabled', gMouseSelectionEnabled);
@@ -3422,6 +3425,7 @@ begin
     SetValue(Node, 'PersonalizedMega', Trim(gSizeDisplayUnits[fsfPersonalizedMega]));
     SetValue(Node, 'PersonalizedMega', Trim(gSizeDisplayUnits[fsfPersonalizedMega]));
     SetValue(Node, 'PersonalizedGiga', Trim(gSizeDisplayUnits[fsfPersonalizedGiga]));
     SetValue(Node, 'PersonalizedGiga', Trim(gSizeDisplayUnits[fsfPersonalizedGiga]));
     SetValue(Node, 'PersonalizedTera', Trim(gSizeDisplayUnits[fsfPersonalizedTera]));
     SetValue(Node, 'PersonalizedTera', Trim(gSizeDisplayUnits[fsfPersonalizedTera]));
+    SetValue(Node, 'ConfirmQuit', gConfirmQuit);
     SetValue(Node, 'MinimizeToTray', gMinimizeToTray);
     SetValue(Node, 'MinimizeToTray', gMinimizeToTray);
     SetValue(Node, 'AlwaysShowTrayIcon', gAlwaysShowTrayIcon);
     SetValue(Node, 'AlwaysShowTrayIcon', gAlwaysShowTrayIcon);
     SubNode := FindNode(Node, 'Mouse', True);
     SubNode := FindNode(Node, 'Mouse', True);