1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
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.
|