IDE: clean up

git-svn-id: trunk@52934 -
This commit is contained in:
mattias 2016-09-08 08:03:11 +00:00
parent 784b68175b
commit 7cbaf52c25

View File

@ -6661,94 +6661,89 @@ begin
IDECommandList.ExecuteUpdateEvents;
SourceEditorMenuRoot.MenuItem:=SrcPopupMenu.Items;
//SourceEditorMenuRoot.BeginUpdate;
try
RemoveUserDefinedMenuItems;
RemoveContextMenuItems;
RemoveUserDefinedMenuItems;
RemoveContextMenuItems;
ASrcEdit:=FindSourceEditorWithEditorComponent(TPopupMenu(Sender).PopupComponent);
Assert(Assigned(ASrcEdit), 'TSourceNotebook.SrcPopUpMenuPopup: ASrcEdit=nil');
Assert((ASrcEdit=GetActiveSE), 'TSourceNotebook.SrcPopUpMenuPopup: ASrcEdit<>GetActiveSE');
EditorComp:=ASrcEdit.EditorComponent;
ASrcEdit:=FindSourceEditorWithEditorComponent(TPopupMenu(Sender).PopupComponent);
Assert(Assigned(ASrcEdit), 'TSourceNotebook.SrcPopUpMenuPopup: ASrcEdit=nil');
Assert((ASrcEdit=GetActiveSE), 'TSourceNotebook.SrcPopUpMenuPopup: ASrcEdit<>GetActiveSE');
EditorComp:=ASrcEdit.EditorComponent;
SrcEditMenuReadOnly.Checked:=ASrcEdit.ReadOnly;
SrcEditMenuShowLineNumbers.Checked := ASrcEdit.EditorComponent.Gutter.LineNumberPart.Visible;
SrcEditMenuDisableI18NForLFM.Visible:=false;
SrcEditMenuReadOnly.Checked:=ASrcEdit.ReadOnly;
SrcEditMenuShowLineNumbers.Checked := ASrcEdit.EditorComponent.Gutter.LineNumberPart.Visible;
SrcEditMenuDisableI18NForLFM.Visible:=false;
UpdateHighlightMenuItems(ASrcEdit);
UpdateEncodingMenuItems(ASrcEdit);
UpdateLineEndingMenuItems(ASrcEdit);
UpdateHighlightMenuItems(ASrcEdit);
UpdateEncodingMenuItems(ASrcEdit);
UpdateLineEndingMenuItems(ASrcEdit);
// ask Codetools
CurFilename:=ASrcEdit.FileName;
ShortFileName:=ExtractFileName(CurFilename);
MainCodeBuf:=nil;
if FilenameIsPascalUnit(ShortFileName)
or (CompareFileExt(ShortFileName,'.inc',true)=0) then
MainCodeBuf:=CodeToolBoss.GetMainCode(ASrcEdit.CodeBuffer)
else if FilenameIsPascalSource(ShortFileName) then
MainCodeBuf:=ASrcEdit.CodeBuffer;
// ask Codetools
CurFilename:=ASrcEdit.FileName;
ShortFileName:=ExtractFileName(CurFilename);
MainCodeBuf:=nil;
if FilenameIsPascalUnit(ShortFileName)
or (CompareFileExt(ShortFileName,'.inc',true)=0) then
MainCodeBuf:=CodeToolBoss.GetMainCode(ASrcEdit.CodeBuffer)
else if FilenameIsPascalSource(ShortFileName) then
MainCodeBuf:=ASrcEdit.CodeBuffer;
if (FilenameIsAbsolute(CurFilename)) then begin
if (MainCodeBuf<>nil) and (MainCodeBuf<>ASrcEdit.CodeBuffer)
and (not MainCodeBuf.IsVirtual) then begin
// this is an include file => add link to open unit
CurFilename:=MainCodeBuf.Filename;
ShortFileName:=ExtractFileName(CurFilename);
AddContextPopupMenuItem(
Format(lisOpenLfm,
[CreateRelativePath(CurFilename,ExtractFilePath(ASrcEdit.Filename))]),
true,@OnPopupMenuOpenFile);
end;
if FilenameIsPascalUnit(ShortFileName) then begin
MaybeAddPopup('.lfm');
MaybeAddPopup('.dfm');
MaybeAddPopup('.lrs');
MaybeAddPopup('.s');
end;
// ToDo: unit resources
if (CompareFileExt(ShortFileName,'.lfm',true)=0)
or (CompareFileExt(ShortFileName,'.dfm',true)=0) then begin
MaybeAddPopup('.pas');
MaybeAddPopup('.pp');
MaybeAddPopup('.p');
end;
if (CompareFileExt(ShortFileName,'.lpi',true)=0)
or (CompareFileExt(ShortFileName,'.lpk',true)=0) then begin
AddContextPopupMenuItem(
Format(lisOpenLfm,[ShortFileName]),true,@OnPopupMenuOpenFile);
end;
FPDocSrc:=LazarusHelp.GetFPDocFilenameForSource(CurFilename,false,AnOwner);
if FPDocSrc<>'' then
AddContextPopupMenuItem(
Format(lisOpenLfm,
[CreateRelativePath(FPDocSrc,ExtractFilePath(CurFilename))]),
true,@OnPopupMenuOpenFile);
if (FilenameIsAbsolute(CurFilename)) then begin
if (MainCodeBuf<>nil) and (MainCodeBuf<>ASrcEdit.CodeBuffer)
and (not MainCodeBuf.IsVirtual) then begin
// this is an include file => add link to open unit
CurFilename:=MainCodeBuf.Filename;
ShortFileName:=ExtractFileName(CurFilename);
AddContextPopupMenuItem(
Format(lisOpenLfm,
[CreateRelativePath(CurFilename,ExtractFilePath(ASrcEdit.Filename))]),
true,@OnPopupMenuOpenFile);
end;
EditorPopupPoint:=EditorComp.ScreenToClient(SrcPopUpMenu.PopupPoint);
if EditorPopupPoint.X<=EditorComp.Gutter.Width then begin
EditorCaret := EditorComp.PhysicalToLogicalPos(EditorComp.PixelsToRowColumn(EditorPopupPoint));
// user clicked on gutter
SourceEditorMarks.GetMarksForLine(ASrcEdit, EditorCaret.y, Marks, MarkCount);
if Marks <> nil then begin
for i := 0 to MarkCount-1 do
Marks[i].CreatePopupMenuItems(@AddUserDefinedPopupMenuItem);
FreeMem(Marks);
end;
if (EditorCaret.Y<=EditorComp.Lines.Count)
and (MessagesView<>nil) then
MessagesView.SourceEditorPopup(EditorComp.Marks.Line[EditorCaret.Y],
EditorComp.LogicalCaretXY);
if FilenameIsPascalUnit(ShortFileName) then begin
MaybeAddPopup('.lfm');
MaybeAddPopup('.dfm');
MaybeAddPopup('.lrs');
MaybeAddPopup('.s');
end;
if Assigned(Manager.OnPopupMenu) then
Manager.OnPopupMenu(@AddContextPopupMenuItem);
SourceEditorMenuRoot.NotifySubSectionOnShow(Self);
finally
//SourceEditorMenuRoot.EndUpdate;
//SrcPopupMenu.Items.WriteDebugReport('TSourceNotebook.SrcPopUpMenuPopup() ');
// ToDo: unit resources
if (CompareFileExt(ShortFileName,'.lfm',true)=0)
or (CompareFileExt(ShortFileName,'.dfm',true)=0) then begin
MaybeAddPopup('.pas');
MaybeAddPopup('.pp');
MaybeAddPopup('.p');
end;
if (CompareFileExt(ShortFileName,'.lpi',true)=0)
or (CompareFileExt(ShortFileName,'.lpk',true)=0) then begin
AddContextPopupMenuItem(
Format(lisOpenLfm,[ShortFileName]),true,@OnPopupMenuOpenFile);
end;
FPDocSrc:=LazarusHelp.GetFPDocFilenameForSource(CurFilename,false,AnOwner);
if FPDocSrc<>'' then
AddContextPopupMenuItem(
Format(lisOpenLfm,
[CreateRelativePath(FPDocSrc,ExtractFilePath(CurFilename))]),
true,@OnPopupMenuOpenFile);
end;
EditorPopupPoint:=EditorComp.ScreenToClient(SrcPopUpMenu.PopupPoint);
if EditorPopupPoint.X<=EditorComp.Gutter.Width then begin
EditorCaret := EditorComp.PhysicalToLogicalPos(EditorComp.PixelsToRowColumn(EditorPopupPoint));
// user clicked on gutter
SourceEditorMarks.GetMarksForLine(ASrcEdit, EditorCaret.y, Marks, MarkCount);
if Marks <> nil then begin
for i := 0 to MarkCount-1 do
Marks[i].CreatePopupMenuItems(@AddUserDefinedPopupMenuItem);
FreeMem(Marks);
end;
if (EditorCaret.Y<=EditorComp.Lines.Count)
and (MessagesView<>nil) then
MessagesView.SourceEditorPopup(EditorComp.Marks.Line[EditorCaret.Y],
EditorComp.LogicalCaretXY);
end;
if Assigned(Manager.OnPopupMenu) then
Manager.OnPopupMenu(@AddContextPopupMenuItem);
SourceEditorMenuRoot.NotifySubSectionOnShow(Self);
//SrcPopupMenu.Items.WriteDebugReport('TSourceNotebook.SrcPopUpMenuPopup() ');
end;
procedure TSourceNotebook.DbgPopUpMenuPopup(Sender: TObject);