mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-17 21:41:35 +02:00
ide: notify IDE about the change when compiler messages options are changed (bug #0018409)
git-svn-id: trunk@28957 -
This commit is contained in:
parent
013f06f128
commit
794576d48f
@ -383,6 +383,8 @@ type
|
|||||||
private
|
private
|
||||||
fItems : TFPList;
|
fItems : TFPList;
|
||||||
fHash : array of array of TCompilerMessageConfig;
|
fHash : array of array of TCompilerMessageConfig;
|
||||||
|
FChangeStamp: int64;
|
||||||
|
FOnChanged : TNotifyEvent;
|
||||||
protected
|
protected
|
||||||
fUsedMsgFile : string;
|
fUsedMsgFile : string;
|
||||||
fUpdating : Integer;
|
fUpdating : Integer;
|
||||||
@ -402,6 +404,10 @@ type
|
|||||||
|
|
||||||
function GetCount: Integer;
|
function GetCount: Integer;
|
||||||
function GetErrorNames(errtype: TFPCErrorType): string;
|
function GetErrorNames(errtype: TFPCErrorType): string;
|
||||||
|
|
||||||
|
property ChangeStamp: int64 read FChangeStamp;
|
||||||
|
procedure IncreaseChangeStamp;
|
||||||
|
property OnChanged: TNotifyEvent read FOnChanged write FOnChanged;
|
||||||
public
|
public
|
||||||
constructor Create;
|
constructor Create;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
@ -418,6 +424,7 @@ type
|
|||||||
|
|
||||||
procedure SetDefault(KeepIgnored: Boolean=true); virtual;
|
procedure SetDefault(KeepIgnored: Boolean=true); virtual;
|
||||||
function GetParams(MsgIndex: Integer; var prms: array of string; out PrmCount: Integer): Integer; virtual;
|
function GetParams(MsgIndex: Integer; var prms: array of string; out PrmCount: Integer): Integer; virtual;
|
||||||
|
function Equals(Obj: TObject): boolean; override;
|
||||||
|
|
||||||
property Msg[i: Integer]: TCompilerMessageConfig read GetMsgConfig;
|
property Msg[i: Integer]: TCompilerMessageConfig read GetMsgConfig;
|
||||||
property MsgByIndex[AIndex: Integer]: TCompilerMessageConfig read GetMsgConfigByIndex;
|
property MsgByIndex[AIndex: Integer]: TCompilerMessageConfig read GetMsgConfigByIndex;
|
||||||
@ -1015,6 +1022,7 @@ begin
|
|||||||
fExecuteAfter.OnChanged:=@OnItemChanged;
|
fExecuteAfter.OnChanged:=@OnItemChanged;
|
||||||
fBuildMacros := TIDEBuildMacros.Create(Self);
|
fBuildMacros := TIDEBuildMacros.Create(Self);
|
||||||
FCompilerMessages:=TCompilerMessagesList.Create;
|
FCompilerMessages:=TCompilerMessagesList.Create;
|
||||||
|
FCompilerMessages.OnChanged:=@OnItemChanged;
|
||||||
Clear;
|
Clear;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -4157,10 +4165,17 @@ begin
|
|||||||
Result := FErrorNames[errtype];
|
Result := FErrorNames[errtype];
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TCompilerMessagesList.IncreaseChangeStamp;
|
||||||
|
begin
|
||||||
|
CTIncreaseChangeStamp64(FChangeStamp);
|
||||||
|
if assigned(OnChanged) then OnChanged(Self);
|
||||||
|
end;
|
||||||
|
|
||||||
constructor TCompilerMessagesList.Create;
|
constructor TCompilerMessagesList.Create;
|
||||||
begin
|
begin
|
||||||
inherited Create;
|
inherited Create;
|
||||||
fItems := TFPList.Create;
|
FChangeStamp:=CTInvalidChangeStamp;
|
||||||
|
fItems := TFPList.Create;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TCompilerMessagesList.Destroy;
|
destructor TCompilerMessagesList.Destroy;
|
||||||
@ -4189,6 +4204,8 @@ var
|
|||||||
m : TCompilerMessageConfig;
|
m : TCompilerMessageConfig;
|
||||||
err : TFPCErrorType;
|
err : TFPCErrorType;
|
||||||
begin
|
begin
|
||||||
|
if Equals(Src) then
|
||||||
|
Exit;
|
||||||
BeginUpdate;
|
BeginUpdate;
|
||||||
try
|
try
|
||||||
Clear;
|
Clear;
|
||||||
@ -4207,7 +4224,8 @@ begin
|
|||||||
for err := Low(err) to High(err) do FErrorNames[err] := Src.FErrorNames[err];
|
for err := Low(err) to High(err) do FErrorNames[err] := Src.FErrorNames[err];
|
||||||
finally
|
finally
|
||||||
EndUpdate;
|
EndUpdate;
|
||||||
end;
|
end;
|
||||||
|
IncreaseChangeStamp;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCompilerMessagesList.BeginUpdate;
|
procedure TCompilerMessagesList.BeginUpdate;
|
||||||
@ -4643,6 +4661,25 @@ begin
|
|||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TCompilerMessagesList.Equals(Obj: TObject): boolean;
|
||||||
|
var
|
||||||
|
ObjList: TCompilerMessagesList absolute Obj;
|
||||||
|
i: integer;
|
||||||
|
begin
|
||||||
|
Result := inherited Equals(Obj);
|
||||||
|
if not Result and (Obj is TCompilerMessagesList) then
|
||||||
|
begin
|
||||||
|
Result := ObjList.Count = Count;
|
||||||
|
if Result then
|
||||||
|
for i := 0 to Count - 1 do
|
||||||
|
if Msg[i].Ignored <> ObjList.Msg[i].Ignored then
|
||||||
|
begin
|
||||||
|
Result := False;
|
||||||
|
Exit;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
{ TCompilerMessageConfig }
|
{ TCompilerMessageConfig }
|
||||||
|
|
||||||
constructor TCompilerMessageConfig.Create(AOwner: TCompilerMessagesList);
|
constructor TCompilerMessageConfig.Create(AOwner: TCompilerMessagesList);
|
||||||
|
Loading…
Reference in New Issue
Block a user