FIX: Viewer - disable unavailable menu items (issue #2212)

This commit is contained in:
Alexander Koblov 2025-03-12 01:05:55 +03:00
commit 3180cb924c
2 changed files with 21 additions and 0 deletions

View file

@ -424,6 +424,7 @@ type
procedure ExitPluginMode;
procedure DeleteCurrentFile;
procedure EnablePrint(AEnabled: Boolean);
procedure EnableSearch(AEnabled: Boolean);
procedure EnableActions(AEnabled: Boolean);
procedure SavingProperties(Sender: TObject);
procedure SetFileName(const AValue: String);
@ -1596,6 +1597,17 @@ begin
actPrintSetup.Visible:= AEnabled;
end;
procedure TfrmViewer.EnableSearch(AEnabled: Boolean);
begin
actFind.Enabled:= AEnabled;
actFindNext.Enabled:= AEnabled;
actFindPrev.Enabled:= AEnabled;
actFind.Visible:= AEnabled;
actFindNext.Visible:= AEnabled;
actFindPrev.Visible:= AEnabled;
miDiv3.Visible:= actFind.Visible;;
end;
procedure TfrmViewer.EnableActions(AEnabled: Boolean);
begin
actSave.Enabled:= AEnabled;
@ -3572,6 +3584,8 @@ begin
pmiSelectAll.Visible := (Panel = pnlText) or (Panel = pnlCode);
pmiCopyFormatted.Visible := (Panel = pnlText);
EnableSearch((Panel = pnlText) or (Panel = pnlCode) or (bPlugin and FWlxModule.CanSearch));
if (Panel <> pnlText) and actAutoReload.Checked then
cm_AutoReload([]);

View file

@ -90,6 +90,7 @@ type
FPluginWindow: HWND;
function GetCanPreview: Boolean;
function GetCanPrint: Boolean;
function GetCanSearch: Boolean;
function GetDetectStr: String;
function GIsLoaded: Boolean;
procedure SetDetectStr(const AValue: String);
@ -129,6 +130,7 @@ type
property ModuleHandle: TLibHandle read FModuleHandle write FModuleHandle;
property CanPreview: Boolean read GetCanPreview;
property PluginWindow: HWND read FPluginWindow;
property CanSearch: Boolean read GetCanSearch;
property CanPrint: Boolean read GetCanPrint;
end;
@ -256,6 +258,11 @@ begin
Result := Assigned(ListPrint) or Assigned(ListPrintW);
end;
function TWlxModule.GetCanSearch: Boolean;
begin
Result:= Assigned(ListSearchText) or Assigned(ListSearchDialog) or Assigned(ListSearchTextW);
end;
function TWlxModule.GetDetectStr: String;
begin
Result:= FParser.DetectStr;