mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-10-31 10:21:56 +01: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.
 | |
| 
 | 
