IDE: package editor: added menu item More / View ToDo list

git-svn-id: trunk@13793 -
This commit is contained in:
mattias 2008-01-19 10:22:18 +00:00
parent 15dbc2fceb
commit cb16ea3d75
7 changed files with 78 additions and 25 deletions

View File

@ -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 '

View File

@ -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

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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