mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-27 11:31:52 +02:00
131 lines
3.0 KiB
ObjectPascal
131 lines
3.0 KiB
ObjectPascal
unit idelogger;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ComCtrls, ButtonPanel,
|
|
Buttons, CheckLst, EditBtn, ExtCtrls, IDEIntf, MenuIntf, LazLoggerBase, LazLogger;
|
|
|
|
type
|
|
|
|
{ TIdeLoggerForm }
|
|
|
|
TIdeLoggerForm = class(TForm)
|
|
ButtonPanel1: TButtonPanel;
|
|
CheckLogGroups: TCheckListBox;
|
|
LogNameEdit: TFileNameEdit;
|
|
PageControl1: TPageControl;
|
|
Panel1: TPanel;
|
|
TabSheet1: TTabSheet;
|
|
procedure CancelButtonClick(Sender: TObject);
|
|
procedure CheckLogGroupsClickCheck(Sender: TObject);
|
|
procedure CloseButtonClick(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FormShow(Sender: TObject);
|
|
procedure LogNameEditChange(Sender: TObject);
|
|
procedure OKButtonClick(Sender: TObject);
|
|
private
|
|
{ private declarations }
|
|
procedure DoApply;
|
|
public
|
|
{ public declarations }
|
|
end;
|
|
|
|
var
|
|
IdeLoggerForm: TIdeLoggerForm;
|
|
|
|
resourcestring
|
|
IdeLoggerMenuCaption = 'Logging ...';
|
|
IdeLoggerCaption = 'Logging';
|
|
IdeLoggerApply = '&Apply';
|
|
|
|
procedure Register;
|
|
|
|
implementation
|
|
|
|
{$R *.lfm}
|
|
|
|
{ TIdeLoggerForm }
|
|
|
|
procedure TIdeLoggerForm.FormCreate(Sender: TObject);
|
|
begin
|
|
ButtonPanel1.CloseButton.Caption := IdeLoggerApply;
|
|
ButtonPanel1.CloseButton.Kind := bkCustom;
|
|
ButtonPanel1.CloseButton.OnClick := @CloseButtonClick;
|
|
Caption := IdeLoggerCaption;
|
|
end;
|
|
|
|
procedure TIdeLoggerForm.CloseButtonClick(Sender: TObject);
|
|
begin
|
|
DoApply;
|
|
end;
|
|
|
|
procedure TIdeLoggerForm.CheckLogGroupsClickCheck(Sender: TObject);
|
|
begin
|
|
ButtonPanel1.CloseButton.Enabled := True;
|
|
end;
|
|
|
|
procedure TIdeLoggerForm.CancelButtonClick(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
procedure TIdeLoggerForm.FormShow(Sender: TObject);
|
|
var
|
|
i, j: Integer;
|
|
e: PLazLoggerLogGroup;
|
|
begin
|
|
CheckLogGroups.Clear;
|
|
for i := 0 to DebugLogger.LogGroupList.Count - 1 do begin
|
|
e := DebugLogger.LogGroupList[i];
|
|
if lgfAddedByParamParser in e^.Flags then continue;
|
|
j := CheckLogGroups.Items.Add(DebugLogger.LogGroupList[i]^.ConfigName);
|
|
CheckLogGroups.Checked[j] := e^.Enabled;
|
|
end;
|
|
LogNameEdit.FileName := DebugLogger.LogName;
|
|
ButtonPanel1.CloseButton.Enabled := False;
|
|
end;
|
|
|
|
procedure TIdeLoggerForm.LogNameEditChange(Sender: TObject);
|
|
begin
|
|
ButtonPanel1.CloseButton.Enabled := True;
|
|
end;
|
|
|
|
procedure TIdeLoggerForm.OKButtonClick(Sender: TObject);
|
|
begin
|
|
DoApply;
|
|
Close;
|
|
end;
|
|
|
|
procedure TIdeLoggerForm.DoApply;
|
|
var
|
|
i, j: Integer;
|
|
e: PLazLoggerLogGroup;
|
|
begin
|
|
for i := 0 to DebugLogger.LogGroupList.Count - 1 do begin
|
|
e := DebugLogger.LogGroupList[i];
|
|
if lgfAddedByParamParser in e^.Flags then continue;
|
|
j := CheckLogGroups.Items.IndexOf(e^.ConfigName);
|
|
if (j >= 0) then
|
|
e^.Enabled := CheckLogGroups.Checked[j];
|
|
end;
|
|
DebugLogger.LogName := LogNameEdit.FileName;
|
|
end;
|
|
|
|
procedure IDELoggerMenuClicked(Sender: TObject);
|
|
begin
|
|
IdeLoggerForm.Show;
|
|
end;
|
|
|
|
procedure Register;
|
|
begin
|
|
IdeLoggerForm := TIdeLoggerForm.Create(Application);
|
|
RegisterIDEMenuCommand(itmSecondaryTools, 'mnuIdeLogger', IdeLoggerMenuCaption, nil,
|
|
@IDELoggerMenuClicked);
|
|
end;
|
|
|
|
end.
|
|
|