mirror of
				https://gitlab.com/freepascal.org/lazarus/lazarus.git
				synced 2025-11-04 15:49:32 +01:00 
			
		
		
		
	IDE: package editor: added menu item More / View ToDo list
git-svn-id: trunk@13793 -
This commit is contained in:
		
							parent
							
								
									15dbc2fceb
								
							
						
					
					
						commit
						cb16ea3d75
					
				@ -3087,6 +3087,7 @@ resourcestring
 | 
			
		||||
  lisPckEditInstall = 'Install';
 | 
			
		||||
  lisPckEditUninstall = 'Uninstall';
 | 
			
		||||
  lisPckEditViewPackgeSource = 'View Package Source';
 | 
			
		||||
  lisPEViewToDoList = 'View ToDo list';
 | 
			
		||||
  lisPckEditGeneralOptions = 'General Options';
 | 
			
		||||
  lisPckEditSaveChanges = 'Save Changes?';
 | 
			
		||||
  lisPckEditPackageHasChangedSavePackage = 'Package %s%s%s has changed.%sSave '
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										11
									
								
								ide/main.pp
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								ide/main.pp
									
									
									
									
									
								
							@ -471,10 +471,6 @@ type
 | 
			
		||||
    procedure OnCodeExplorerJumpToCode(Sender: TObject; const Filename: string;
 | 
			
		||||
                                       const Caret: TPoint; TopLine: integer);
 | 
			
		||||
 | 
			
		||||
    // view project ToDo list events
 | 
			
		||||
    procedure ViewProjectTodosOpenFile(Sender: TObject;
 | 
			
		||||
      const Filename: string; const LineNumber: integer);
 | 
			
		||||
 | 
			
		||||
    // CodeToolBoss events
 | 
			
		||||
    procedure OnCodeToolNeedsExternalChanges(Manager: TCodeToolManager;
 | 
			
		||||
                                             var Abort: boolean);
 | 
			
		||||
@ -8376,7 +8372,6 @@ function TMainIDE.DoShowToDoList: TModalResult;
 | 
			
		||||
begin
 | 
			
		||||
  if not Assigned(frmToDo) then begin
 | 
			
		||||
    frmToDo:=TfrmToDo.Create(OwningComponent);
 | 
			
		||||
    frmToDo.OnOpenFile:=@ViewProjectTodosOpenFile;
 | 
			
		||||
  end;
 | 
			
		||||
 | 
			
		||||
  if Project1.MainUnitInfo<>nil then
 | 
			
		||||
@ -10762,12 +10757,6 @@ begin
 | 
			
		||||
  DoJumpToSourcePosition(Filename,Caret.X,Caret.Y,TopLine,true);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TMainIDE.ViewProjectTodosOpenFile(Sender: TObject;
 | 
			
		||||
  const Filename: string; const LineNumber: integer);
 | 
			
		||||
begin
 | 
			
		||||
  DoJumpToSourcePosition(Filename,1,LineNumber,-1,true);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TMainIDE.OnCodeToolNeedsExternalChanges(Manager: TCodeToolManager;
 | 
			
		||||
  var Abort: boolean);
 | 
			
		||||
var
 | 
			
		||||
 | 
			
		||||
@ -77,8 +77,6 @@ type
 | 
			
		||||
  private
 | 
			
		||||
    FToolStatus: TIDEToolStatus;
 | 
			
		||||
  protected
 | 
			
		||||
    OwningComponent: TComponent;
 | 
			
		||||
 | 
			
		||||
    function GetMainBar: TComponent; override;
 | 
			
		||||
 | 
			
		||||
    function CreateMenuSeparator : TMenuItem;
 | 
			
		||||
@ -217,7 +215,7 @@ begin
 | 
			
		||||
  MainIDE:=Self;
 | 
			
		||||
  // Do not own everything in one big component hierachy. Otherwise the
 | 
			
		||||
  // notifications slow down everything
 | 
			
		||||
  OwningComponent:=TComponent.Create(nil);
 | 
			
		||||
  fOwningComponent:=TComponent.Create(nil);
 | 
			
		||||
  inherited Create(TheOwner);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -59,7 +59,7 @@ uses
 | 
			
		||||
  // Codetools
 | 
			
		||||
  CodeAtom, CodeCache, CodeToolManager, BasicCodeTools, FileProcs,
 | 
			
		||||
  // IDEIntf
 | 
			
		||||
  IDEImagesIntf, PackageIntf, ProjectIntf,
 | 
			
		||||
  LazIDEIntf, IDEImagesIntf, PackageIntf, ProjectIntf,
 | 
			
		||||
  // IDE
 | 
			
		||||
  LazarusIDEStrConsts, PackageDefs;
 | 
			
		||||
 | 
			
		||||
@ -214,6 +214,7 @@ procedure TfrmTodo.SetMainSourceFilename(const AValue: String);
 | 
			
		||||
begin
 | 
			
		||||
  if fMainSourceFilename=AValue then exit;
 | 
			
		||||
  fMainSourceFilename:=AValue;
 | 
			
		||||
  Caption:=lisTodoListCaption+' '+fMainSourceFilename;
 | 
			
		||||
  acRefresh.Execute;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
@ -451,7 +452,11 @@ begin
 | 
			
		||||
        end;
 | 
			
		||||
      end;
 | 
			
		||||
    end;
 | 
			
		||||
    if Assigned(OnOpenFile) then OnOpenFile(Self,CurFilename,TheLine);
 | 
			
		||||
    if Assigned(OnOpenFile) then
 | 
			
		||||
      OnOpenFile(Self,CurFilename,TheLine)
 | 
			
		||||
    else
 | 
			
		||||
      LazarusIDE.DoOpenFileAndJumpToPos(CurFilename,Point(1,TheLine),-1,-1,
 | 
			
		||||
        [ofOnlyIfExists,ofRegularFile,ofVirtualFile,ofDoNotLoadResource]);
 | 
			
		||||
  end;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
@ -533,8 +538,10 @@ begin
 | 
			
		||||
    end;
 | 
			
		||||
    if CurPackage<>nil then begin
 | 
			
		||||
      // scan all units of package
 | 
			
		||||
      DebugLn(['TfrmTodo.acRefreshExecute AAA1 ',CurPackage.Filename]);
 | 
			
		||||
      for i:=0 to CurPackage.FileCount-1 do begin
 | 
			
		||||
        CurPkgFile:=CurPackage.Files[i];
 | 
			
		||||
        DebugLn(['TfrmTodo.acRefreshExecute AAA2 ',i,' ',CurPkgFile.Filename]);
 | 
			
		||||
        if FilenameIsPascalUnit(CurPkgFile.Filename) then
 | 
			
		||||
          ScanFile(CurPkgFile.Filename);
 | 
			
		||||
      end;
 | 
			
		||||
@ -582,7 +589,7 @@ var
 | 
			
		||||
  CodeXYPosition: TCodeXYPosition;
 | 
			
		||||
  i: Integer;
 | 
			
		||||
begin
 | 
			
		||||
  DebugLn(['TfrmTodo.LoadFile ',aFileName]);
 | 
			
		||||
  DebugLn(['TfrmTodo.ScanFile ',aFileName]);
 | 
			
		||||
  ExpandedFilename:=TrimFilename(aFileName);
 | 
			
		||||
  if not FilenameIsPascalUnit(ExpandedFilename) then exit;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -133,6 +133,8 @@ type
 | 
			
		||||
    procedure RemoveHandler(HandlerType: TLazarusIDEHandlerType;
 | 
			
		||||
                            const AMethod: TMethod);
 | 
			
		||||
  protected
 | 
			
		||||
    fOwningComponent: TComponent;
 | 
			
		||||
 | 
			
		||||
    function GetActiveProject: TLazProject; virtual; abstract;
 | 
			
		||||
    procedure DoCallNotifyHandler(HandlerType: TLazarusIDEHandlerType);
 | 
			
		||||
    function DoCallModalFunctionHandler(HandlerType: TLazarusIDEHandlerType
 | 
			
		||||
@ -141,6 +143,7 @@ type
 | 
			
		||||
  public
 | 
			
		||||
    constructor Create(TheOwner: TComponent); override;
 | 
			
		||||
    destructor Destroy; override;
 | 
			
		||||
    property OwningComponent: TComponent read fOwningComponent;
 | 
			
		||||
    
 | 
			
		||||
    // the main window with the IDE menu
 | 
			
		||||
    function GetMainBar: TComponent; virtual; abstract;
 | 
			
		||||
 | 
			
		||||
@ -74,6 +74,8 @@ type
 | 
			
		||||
    function(Sender: TObject; APackage: TLazPackage): TModalResult of object;
 | 
			
		||||
  TOnViewPackageSource =
 | 
			
		||||
    function(Sender: TObject; APackage: TLazPackage): TModalResult of object;
 | 
			
		||||
  TOnViewPackageToDos =
 | 
			
		||||
    function(Sender: TObject; APackage: TLazPackage): TModalResult of object;
 | 
			
		||||
  TOnCreateNewPkgFile =
 | 
			
		||||
    function(Sender: TObject; Params: TAddToPkgResult): TModalResult  of object;
 | 
			
		||||
  TOnDeleteAmbiguousFiles =
 | 
			
		||||
@ -173,6 +175,7 @@ type
 | 
			
		||||
    procedure UseMaxVersionCheckBoxChange(Sender: TObject);
 | 
			
		||||
    procedure UseMinVersionCheckBoxChange(Sender: TObject);
 | 
			
		||||
    procedure ViewPkgSourceClick(Sender: TObject);
 | 
			
		||||
    procedure ViewPkgTodosClick(Sender: TObject);
 | 
			
		||||
  private
 | 
			
		||||
    FLazPackage: TLazPackage;
 | 
			
		||||
    FilesNode: TTreeNode;
 | 
			
		||||
@ -238,6 +241,7 @@ type
 | 
			
		||||
    FOnSavePackage: TOnSavePackage;
 | 
			
		||||
    FOnUninstallPackage: TOnUninstallPackage;
 | 
			
		||||
    FOnViewPackageSource: TOnViewPackageSource;
 | 
			
		||||
    FOnViewPackageToDos: TOnViewPackageToDos;
 | 
			
		||||
    function GetEditors(Index: integer): TPackageEditorForm;
 | 
			
		||||
    procedure ApplyLayout(AnEditor: TPackageEditorForm);
 | 
			
		||||
    procedure SaveLayout(AnEditor: TPackageEditorForm);
 | 
			
		||||
@ -267,7 +271,8 @@ type
 | 
			
		||||
    procedure UpdateAllEditors;
 | 
			
		||||
    function InstallPackage(APackage: TLazPackage): TModalResult;
 | 
			
		||||
    function UninstallPackage(APackage: TLazPackage): TModalResult;
 | 
			
		||||
    function ViewPkgSourcePackage(APackage: TLazPackage): TModalResult;
 | 
			
		||||
    function ViewPkgSource(APackage: TLazPackage): TModalResult;
 | 
			
		||||
    function ViewPkgToDos(APackage: TLazPackage): TModalResult;
 | 
			
		||||
    function DeleteAmbiguousFiles(APackage: TLazPackage;
 | 
			
		||||
                                  const Filename: string): TModalResult;
 | 
			
		||||
    function AddToProject(APackage: TLazPackage;
 | 
			
		||||
@ -302,6 +307,8 @@ type
 | 
			
		||||
                                                 write FOnUninstallPackage;
 | 
			
		||||
    property OnViewPackageSource: TOnViewPackageSource read FOnViewPackageSource
 | 
			
		||||
                                                 write FOnViewPackageSource;
 | 
			
		||||
    property OnViewPackageToDos: TOnViewPackageToDos read FOnViewPackageToDos
 | 
			
		||||
                                                 write FOnViewPackageToDos;
 | 
			
		||||
    property OnDeleteAmbiguousFiles: TOnDeleteAmbiguousFiles
 | 
			
		||||
                     read FOnDeleteAmbiguousFiles write FOnDeleteAmbiguousFiles;
 | 
			
		||||
    property OnImExportCompilerOptions: TNotifyEvent
 | 
			
		||||
@ -588,6 +595,7 @@ begin
 | 
			
		||||
  AddPopupMenuItem(dlgCompilerOptions, @CompilerOptionsBitBtnClick,
 | 
			
		||||
    CompilerOptionsBitBtn.Enabled);
 | 
			
		||||
  AddPopupMenuItem(lisPckEditViewPackgeSource, @ViewPkgSourceClick,true);
 | 
			
		||||
  AddPopupMenuItem(lisPEViewToDoList, @ViewPkgTodosClick, true);
 | 
			
		||||
 | 
			
		||||
  // remove unneeded menu items
 | 
			
		||||
  while FilesPopupMenu.Items.Count>ItemCnt do
 | 
			
		||||
@ -895,7 +903,12 @@ end;
 | 
			
		||||
 | 
			
		||||
procedure TPackageEditorForm.ViewPkgSourceClick(Sender: TObject);
 | 
			
		||||
begin
 | 
			
		||||
  PackageEditors.ViewPkgSourcePackage(LazPackage);
 | 
			
		||||
  PackageEditors.ViewPkgSource(LazPackage);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TPackageEditorForm.ViewPkgTodosClick(Sender: TObject);
 | 
			
		||||
begin
 | 
			
		||||
  PackageEditors.ViewPkgToDos(LazPackage);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TPackageEditorForm.UseMaxVersionCheckBoxChange(Sender: TObject);
 | 
			
		||||
@ -2362,7 +2375,7 @@ begin
 | 
			
		||||
    Result:=mrCancel;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
function TPackageEditors.ViewPkgSourcePackage(APackage: TLazPackage
 | 
			
		||||
function TPackageEditors.ViewPkgSource(APackage: TLazPackage
 | 
			
		||||
  ): TModalResult;
 | 
			
		||||
begin
 | 
			
		||||
  if Assigned(OnViewPackageSource) then
 | 
			
		||||
@ -2371,6 +2384,14 @@ begin
 | 
			
		||||
    Result:=mrCancel;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
function TPackageEditors.ViewPkgToDos(APackage: TLazPackage): TModalResult;
 | 
			
		||||
begin
 | 
			
		||||
  if Assigned(OnViewPackageToDos) then
 | 
			
		||||
    Result:=OnViewPackageToDos(Self,APackage)
 | 
			
		||||
  else
 | 
			
		||||
    Result:=mrCancel;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
function TPackageEditors.DeleteAmbiguousFiles(APackage: TLazPackage;
 | 
			
		||||
  const Filename: string): TModalResult;
 | 
			
		||||
begin
 | 
			
		||||
 | 
			
		||||
@ -59,7 +59,7 @@ uses
 | 
			
		||||
  ComponentReg, UComponentManMain, PackageEditor, AddToPackageDlg, PackageDefs,
 | 
			
		||||
  PackageLinks, PackageSystem, OpenInstalledPkgDlg, PkgGraphExplorer,
 | 
			
		||||
  BrokenDependenciesDlg, CompilerOptions, ExtToolEditDlg, IDETranslations,
 | 
			
		||||
  TransferMacros, MsgView, BuildLazDialog, NewDialog, IDEDialogs,
 | 
			
		||||
  TransferMacros, MsgView, BuildLazDialog, NewDialog, IDEDialogs, TodoList,
 | 
			
		||||
  ProjectInspector, ComponentPalette, UnitEditor, AddFileToAPackageDlg,
 | 
			
		||||
  LazarusPackageIntf, PublishProjectDlg, PkgLinksDlg, InstallPkgSetDlg,
 | 
			
		||||
  // bosses
 | 
			
		||||
@ -97,8 +97,10 @@ type
 | 
			
		||||
                                        ): TModalResult;
 | 
			
		||||
    function OnPackageEditorSavePackage(Sender: TObject; APackage: TLazPackage;
 | 
			
		||||
                                        SaveAs: boolean): TModalResult;
 | 
			
		||||
    function OnPackageEditorViewPkgSourcePackage(Sender: TObject;
 | 
			
		||||
                                           APackage: TLazPackage): TModalResult;
 | 
			
		||||
    function OnPackageEditorViewPkgSource(Sender: TObject;
 | 
			
		||||
                                          APackage: TLazPackage): TModalResult;
 | 
			
		||||
    function OnPackageEditorViewPkgToDos(Sender: TObject;
 | 
			
		||||
                                         APackage: TLazPackage): TModalResult;
 | 
			
		||||
    procedure OnPackageEditorFreeEditor(APackage: TLazPackage);
 | 
			
		||||
    procedure OnPackageEditorGetUnitRegisterInfo(Sender: TObject;
 | 
			
		||||
                              const AFilename: string; var TheUnitName: string;
 | 
			
		||||
@ -284,6 +286,7 @@ type
 | 
			
		||||
                                Flags: TPkgUninstallFlags): TModalResult;
 | 
			
		||||
    procedure DoTranslatePackage(APackage: TLazPackage);
 | 
			
		||||
    function DoOpenPackageSource(APackage: TLazPackage): TModalResult;
 | 
			
		||||
    function DoViewPackageToDos(APackage: TLazPackage): TModalResult;
 | 
			
		||||
    function DoCompileAutoInstallPackages(Flags: TPkgCompileFlags
 | 
			
		||||
                                          ): TModalResult; override;
 | 
			
		||||
    function DoSaveAutoInstallConfig: TModalResult; override;
 | 
			
		||||
@ -849,12 +852,18 @@ begin
 | 
			
		||||
    Result:=DoSavePackage(APackage,[]);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
function TPkgManager.OnPackageEditorViewPkgSourcePackage(Sender: TObject;
 | 
			
		||||
function TPkgManager.OnPackageEditorViewPkgSource(Sender: TObject;
 | 
			
		||||
  APackage: TLazPackage): TModalResult;
 | 
			
		||||
begin
 | 
			
		||||
  Result:=DoOpenPackageSource(APackage);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
function TPkgManager.OnPackageEditorViewPkgToDos(Sender: TObject;
 | 
			
		||||
  APackage: TLazPackage): TModalResult;
 | 
			
		||||
begin
 | 
			
		||||
  Result:=DoViewPackageToDos(APackage);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
procedure TPkgManager.PackageGraphBeginUpdate(Sender: TObject);
 | 
			
		||||
begin
 | 
			
		||||
  if PackageGraphExplorer<>nil then PackageGraphExplorer.BeginUpdate;
 | 
			
		||||
@ -1765,7 +1774,8 @@ begin
 | 
			
		||||
  PackageEditors.OnAddToProject:=@OnPackageEditorAddToProject;
 | 
			
		||||
  PackageEditors.OnInstallPackage:=@OnPackageEditorInstallPackage;
 | 
			
		||||
  PackageEditors.OnUninstallPackage:=@OnPackageEditorUninstallPackage;
 | 
			
		||||
  PackageEditors.OnViewPackageSource:=@OnPackageEditorViewPkgSourcePackage;
 | 
			
		||||
  PackageEditors.OnViewPackageSource:=@OnPackageEditorViewPkgSource;
 | 
			
		||||
  PackageEditors.OnViewPackageToDos:=@OnPackageEditorViewPkgToDos;
 | 
			
		||||
  PackageEditors.OnDeleteAmbiguousFiles:=@OnPackageEditorDeleteAmbiguousFiles;
 | 
			
		||||
  PackageEditors.OnImExportCompilerOptions:=@OnPackageEditorImExportCompilerOptions;
 | 
			
		||||
  PackageEditors.OnCreateMakefile:=@OnPackageEditorCreateMakefile;
 | 
			
		||||
@ -3117,6 +3127,8 @@ var
 | 
			
		||||
 | 
			
		||||
var
 | 
			
		||||
  PkgFile: TPkgFile;
 | 
			
		||||
  CurPackage: TLazPackage;
 | 
			
		||||
  i: Integer;
 | 
			
		||||
begin
 | 
			
		||||
  //DebugLn(['TPkgManager.GetPossibleOwnersOfUnit ',UnitFilename]);
 | 
			
		||||
  Result:=TFPList.Create;
 | 
			
		||||
@ -3132,6 +3144,13 @@ begin
 | 
			
		||||
    PkgFile:=PackageGraph.FindFileInAllPackages(UnitFilename,false,true,true);
 | 
			
		||||
    if (PkgFile<>nil) and (PkgFile.LazPackage<>nil) then
 | 
			
		||||
      Result.Add(PkgFile.LazPackage);
 | 
			
		||||
    // check package source files (they usually do not have a TPkgFile)
 | 
			
		||||
    for i:=0 to PackageGraph.Count-1 do begin
 | 
			
		||||
      CurPackage:=PackageGraph.Packages[i];
 | 
			
		||||
      if (CompareFilenames(UnitFilename,CurPackage.GetSrcFilename)=0)
 | 
			
		||||
      and (Result.IndexOf(CurPackage)<0) then
 | 
			
		||||
        Result.Add(CurPackage);
 | 
			
		||||
    end;
 | 
			
		||||
  end;
 | 
			
		||||
 | 
			
		||||
  // clean up
 | 
			
		||||
@ -3608,6 +3627,21 @@ begin
 | 
			
		||||
  Result:=MainIDE.DoOpenEditorFile(Filename,-1,[ofRegularFile]);
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
function TPkgManager.DoViewPackageToDos(APackage: TLazPackage): TModalResult;
 | 
			
		||||
begin
 | 
			
		||||
  Result:=mrOk;
 | 
			
		||||
  if not Assigned(frmToDo) then begin
 | 
			
		||||
    frmToDo:=TfrmToDo.Create(LazarusIDE.OwningComponent);
 | 
			
		||||
  end;
 | 
			
		||||
  if APackage.GetSrcFilename<>'' then
 | 
			
		||||
    frmToDo.MainSourceFilename:=APackage.GetSrcFilename
 | 
			
		||||
  else
 | 
			
		||||
    frmToDo.MainSourceFilename:='';
 | 
			
		||||
 | 
			
		||||
  frmToDo.ShowOnTop;
 | 
			
		||||
  Result:=mrOk;
 | 
			
		||||
end;
 | 
			
		||||
 | 
			
		||||
function TPkgManager.DoCompileAutoInstallPackages(
 | 
			
		||||
  Flags: TPkgCompileFlags): TModalResult;
 | 
			
		||||
var
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user