mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-02 15:42:08 +02:00
IDE: messages: menu items to remove compiler options for hiding messages
git-svn-id: trunk@45355 -
This commit is contained in:
parent
d6f8eaac1f
commit
467c14c162
@ -39,8 +39,9 @@ uses
|
|||||||
SynEditMarks, LResources, Forms, Buttons, ExtCtrls, Controls, LMessages,
|
SynEditMarks, LResources, Forms, Buttons, ExtCtrls, Controls, LMessages,
|
||||||
LCLType, Graphics, LCLIntf, Themes, ImgList, GraphType, Menus, Clipbrd,
|
LCLType, Graphics, LCLIntf, Themes, ImgList, GraphType, Menus, Clipbrd,
|
||||||
Dialogs, StdCtrls, IDEExternToolIntf, IDEImagesIntf, MenuIntf, PackageIntf,
|
Dialogs, StdCtrls, IDEExternToolIntf, IDEImagesIntf, MenuIntf, PackageIntf,
|
||||||
IDECommands, SrcEditorIntf, IDEDialogs, LazarusIDEStrConsts, EnvironmentOpts,
|
IDECommands, SrcEditorIntf, IDEDialogs, ProjectIntf, CompOptsIntf,
|
||||||
HelpFPCMessages, etSrcEditMarks, etQuickFixes, ExtTools, IDEOptionDefs;
|
LazarusIDEStrConsts, EnvironmentOpts, HelpFPCMessages, etSrcEditMarks,
|
||||||
|
etQuickFixes, ExtTools, IDEOptionDefs, CompilerOptions;
|
||||||
|
|
||||||
const
|
const
|
||||||
CustomViewCaption = '------------------------------';
|
CustomViewCaption = '------------------------------';
|
||||||
@ -328,6 +329,7 @@ type
|
|||||||
procedure MsgCtrlPopupMenuPopup(Sender: TObject);
|
procedure MsgCtrlPopupMenuPopup(Sender: TObject);
|
||||||
procedure OnSelectFilterClick(Sender: TObject);
|
procedure OnSelectFilterClick(Sender: TObject);
|
||||||
procedure OpenToolsOptionsMenuItemClick(Sender: TObject);
|
procedure OpenToolsOptionsMenuItemClick(Sender: TObject);
|
||||||
|
procedure RemoveCompOptHideMsgClick(Sender: TObject);
|
||||||
procedure SaveAllToFileMenuItemClick(Sender: TObject);
|
procedure SaveAllToFileMenuItemClick(Sender: TObject);
|
||||||
procedure SaveShownToFileMenuItemClick(Sender: TObject);
|
procedure SaveShownToFileMenuItemClick(Sender: TObject);
|
||||||
procedure SearchEditChange(Sender: TObject);
|
procedure SearchEditChange(Sender: TObject);
|
||||||
@ -401,6 +403,7 @@ var
|
|||||||
MsgAboutToolMenuItem: TIDEMenuCommand;
|
MsgAboutToolMenuItem: TIDEMenuCommand;
|
||||||
MsgOpenToolOptionsMenuItem: TIDEMenuCommand;
|
MsgOpenToolOptionsMenuItem: TIDEMenuCommand;
|
||||||
MsgFilterMsgOfTypeMenuItem: TIDEMenuCommand;
|
MsgFilterMsgOfTypeMenuItem: TIDEMenuCommand;
|
||||||
|
MsgRemoveCompOptHideMenuSection: TIDEMenuSection;
|
||||||
MsgRemoveMsgTypeFilterMenuSection: TIDEMenuSection;
|
MsgRemoveMsgTypeFilterMenuSection: TIDEMenuSection;
|
||||||
MsgRemoveFilterMsgOneTypeMenuSection: TIDEMenuSection;
|
MsgRemoveFilterMsgOneTypeMenuSection: TIDEMenuSection;
|
||||||
MsgRemoveFilterAllMsgTypesMenuItem: TIDEMenuCommand;
|
MsgRemoveFilterAllMsgTypesMenuItem: TIDEMenuCommand;
|
||||||
@ -454,6 +457,10 @@ begin
|
|||||||
MsgAboutToolMenuItem:=RegisterIDEMenuCommand(Parent, 'About', 'About Tool');
|
MsgAboutToolMenuItem:=RegisterIDEMenuCommand(Parent, 'About', 'About Tool');
|
||||||
MsgOpenToolOptionsMenuItem:=RegisterIDEMenuCommand(Parent, 'Open Tool Options', 'Open Tool Options');
|
MsgOpenToolOptionsMenuItem:=RegisterIDEMenuCommand(Parent, 'Open Tool Options', 'Open Tool Options');
|
||||||
MsgFilterMsgOfTypeMenuItem:=RegisterIDEMenuCommand(Root,'FilterMsgOfType','');
|
MsgFilterMsgOfTypeMenuItem:=RegisterIDEMenuCommand(Root,'FilterMsgOfType','');
|
||||||
|
MsgRemoveCompOptHideMenuSection:=RegisterIDEMenuSection(Root,'RemoveCompOptHideMsg');
|
||||||
|
Parent:=MsgRemoveCompOptHideMenuSection;
|
||||||
|
Parent.ChildsAsSubMenu:=true;
|
||||||
|
Parent.Caption:='Remove Compiler Option Hide Message';
|
||||||
MsgRemoveMsgTypeFilterMenuSection:=RegisterIDEMenuSection(Root,'RemoveMsgTypeFilters');
|
MsgRemoveMsgTypeFilterMenuSection:=RegisterIDEMenuSection(Root,'RemoveMsgTypeFilters');
|
||||||
Parent:=MsgRemoveMsgTypeFilterMenuSection;
|
Parent:=MsgRemoveMsgTypeFilterMenuSection;
|
||||||
Parent.ChildsAsSubMenu:=true;
|
Parent.ChildsAsSubMenu:=true;
|
||||||
@ -2507,6 +2514,59 @@ end;
|
|||||||
|
|
||||||
procedure TMessagesFrame.MsgCtrlPopupMenuPopup(Sender: TObject);
|
procedure TMessagesFrame.MsgCtrlPopupMenuPopup(Sender: TObject);
|
||||||
|
|
||||||
|
procedure UpdateRemoveCompOptHideMsgItems;
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
View: TLMsgWndView;
|
||||||
|
ToolData: TIDEExternalToolData;
|
||||||
|
IDETool: TObject;
|
||||||
|
CompOpts: TBaseCompilerOptions;
|
||||||
|
Flag: PCompilerMsgIdFlag;
|
||||||
|
Pattern: String;
|
||||||
|
Pkg: TIDEPackage;
|
||||||
|
Cnt: Integer;
|
||||||
|
Item: TIDEMenuCommand;
|
||||||
|
ModuleName: String;
|
||||||
|
begin
|
||||||
|
// create one menuitem per compiler option
|
||||||
|
Cnt:=0;
|
||||||
|
for i:=0 to ViewCount-1 do begin
|
||||||
|
View:=Views[i];
|
||||||
|
if View.Tool=nil then continue;
|
||||||
|
ToolData:=TIDEExternalToolData(View.Tool.Data);
|
||||||
|
if not (ToolData is TIDEExternalToolData) then continue;
|
||||||
|
IDETool:=ExternalTools.GetIDEObject(ToolData);
|
||||||
|
if IDETool=nil then continue;
|
||||||
|
if IDETool is TLazProject then begin
|
||||||
|
CompOpts:=TLazProject(IDETool).LazCompilerOptions as TBaseCompilerOptions;
|
||||||
|
ModuleName:='Project Option';
|
||||||
|
end else if IDETool is TIDEPackage then begin
|
||||||
|
Pkg:=TIDEPackage(IDETool);
|
||||||
|
CompOpts:=Pkg.LazCompilerOptions as TBaseCompilerOptions;
|
||||||
|
ModuleName:='Package "'+Pkg.Name+'" Option';
|
||||||
|
end else
|
||||||
|
continue;
|
||||||
|
for Flag in CompOpts.IDEMessageFlags do begin
|
||||||
|
if Flag^.Flag<>cfvHide then continue;
|
||||||
|
if Cnt>=MsgRemoveCompOptHideMenuSection.Count then begin
|
||||||
|
Item:=RegisterIDEMenuCommand(MsgRemoveCompOptHideMenuSection,'RemoveCompOptHideMsg'+IntToStr(Cnt),'');
|
||||||
|
Item.OnClick:=@RemoveCompOptHideMsgClick;
|
||||||
|
end else begin
|
||||||
|
Item:=MsgRemoveCompOptHideMenuSection.Items[Cnt] as TIDEMenuCommand;
|
||||||
|
end;
|
||||||
|
Item.Tag:=Flag^.MsgId;
|
||||||
|
Item.UserTag:=PtrUInt(ToolData);
|
||||||
|
Pattern:=GetMsgPattern(SubToolFPC,Flag^.MsgID,true,40);
|
||||||
|
Item.Caption:=ModuleName+': '+Pattern;
|
||||||
|
inc(Cnt);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
MsgRemoveCompOptHideMenuSection.Visible:=Cnt>0;
|
||||||
|
// delete old menu items
|
||||||
|
while MsgRemoveCompOptHideMenuSection.Count>Cnt do
|
||||||
|
MsgRemoveCompOptHideMenuSection[Cnt].Free;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure UpdateRemoveMsgTypeFilterItems;
|
procedure UpdateRemoveMsgTypeFilterItems;
|
||||||
var
|
var
|
||||||
FilterItem: TLMVFilterMsgType;
|
FilterItem: TLMVFilterMsgType;
|
||||||
@ -2703,7 +2763,7 @@ begin
|
|||||||
MsgShowIDMenuItem.Checked:=mcoShowMessageID in MessagesCtrl.Options;
|
MsgShowIDMenuItem.Checked:=mcoShowMessageID in MessagesCtrl.Options;
|
||||||
MsgShowIDMenuItem.OnClick:=@ShowIDMenuItemClick;
|
MsgShowIDMenuItem.OnClick:=@ShowIDMenuItemClick;
|
||||||
|
|
||||||
|
UpdateRemoveCompOptHideMsgItems;
|
||||||
UpdateRemoveMsgTypeFilterItems;
|
UpdateRemoveMsgTypeFilterItems;
|
||||||
UpdateFilterItems;
|
UpdateFilterItems;
|
||||||
|
|
||||||
@ -2739,6 +2799,34 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TMessagesFrame.RemoveCompOptHideMsgClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
Item: TIDEMenuCommand;
|
||||||
|
MsgId: Integer;
|
||||||
|
ToolData: TIDEExternalToolData;
|
||||||
|
IDETool: TObject;
|
||||||
|
CompOpts: TLazCompilerOptions;
|
||||||
|
Pkg: TIDEPackage;
|
||||||
|
begin
|
||||||
|
if not (Sender is TIDEMenuCommand) then exit;
|
||||||
|
Item:=TIDEMenuCommand(Sender);
|
||||||
|
MsgId:=Item.Tag;
|
||||||
|
ToolData:=TIDEExternalToolData(Item.UserTag);
|
||||||
|
IDETool:=ExternalTools.GetIDEObject(ToolData);
|
||||||
|
if IDETool=nil then exit;
|
||||||
|
if IDETool is TLazProject then begin
|
||||||
|
CompOpts:=TLazProject(IDETool).LazCompilerOptions;
|
||||||
|
CompOpts.MessageFlags[MsgID]:=cfvNone;
|
||||||
|
end else if IDETool is TIDEPackage then begin
|
||||||
|
if PackageEditingInterface.DoOpenPackageFile(ToolData.Filename,
|
||||||
|
[pofAddToRecent],false)<>mrOk then exit;
|
||||||
|
Pkg:=PackageEditingInterface.FindPackageWithName(ToolData.ModuleName);
|
||||||
|
if Pkg=nil then exit;
|
||||||
|
CompOpts:=Pkg.LazCompilerOptions;
|
||||||
|
CompOpts.MessageFlags[MsgID]:=cfvNone;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TMessagesFrame.SaveAllToFileMenuItemClick(Sender: TObject);
|
procedure TMessagesFrame.SaveAllToFileMenuItemClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
SaveClicked(false);
|
SaveClicked(false);
|
||||||
|
Loading…
Reference in New Issue
Block a user