IDE: TPkgManager.OnCheckInstallPackageList: implemented RemoveConflicts

git-svn-id: trunk@48217 -
This commit is contained in:
mattias 2015-03-10 14:14:06 +00:00
parent e6ec0e240c
commit 6ccd736c5c
4 changed files with 16 additions and 36 deletions

View File

@ -39,7 +39,7 @@ unit DiffDialog;
interface
uses
Classes, SysUtils, Math, Forms, Controls, Buttons, StdCtrls, FileUtil,
Classes, SysUtils, Forms, Controls, Buttons, StdCtrls, FileUtil,
lazutf8classes, LazarusIDEStrConsts, EditorOptions, LCLType, IDEWindowIntf,
IDEHelpIntf, InputHistory, DiffPatch, ExtCtrls, Dialogs, ComCtrls, SynEdit,
SynHighlighterDiff, SourceEditor;
@ -134,7 +134,7 @@ type
procedure SetupComponents;
procedure UpdateDiff;
procedure SetIdleConnected(const AValue: boolean);
procedure OnIdle(Sender: TObject; var Done: Boolean);
procedure OnIdle(Sender: TObject; var {%H-}Done: Boolean);
public
constructor Create(TheOwner: TComponent); override;
destructor Destroy; override;

View File

@ -40,9 +40,9 @@ unit ViewUnit_Dlg;
interface
uses
SysUtils, Classes, Math, Controls, Forms, Dialogs, Buttons, StdCtrls,
LazarusIdeStrConsts, IDEProcs, CustomFormEditor, LCLType, LCLIntf, LMessages,
ExtCtrls, ButtonPanel, Menus, StrUtils, AVL_Tree, contnrs, ImgList, ComCtrls,
SysUtils, Classes, Controls, Forms, Dialogs, Buttons, StdCtrls,
LazarusIdeStrConsts, IDEProcs, CustomFormEditor, LCLType, LCLIntf,
ExtCtrls, ButtonPanel, Menus, AVL_Tree, ImgList, ComCtrls,
PackageDefs, IDEWindowIntf, IDEHelpIntf, IDEImagesIntf, ListFilterEdit,
CodeToolsStructs, CodeToolManager, FileProcs, lazutf8sysutils, LazFileUtils,
LazLogger;
@ -112,9 +112,9 @@ type
SortAlphabeticallySpeedButton: TSpeedButton;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure ListboxDrawItem(Control: TWinControl; Index: Integer;
ARect: TRect; State: TOwnerDrawState);
procedure OnIdle(Sender: TObject; var Done: Boolean);
procedure ListboxDrawItem({%H-}Control: TWinControl; Index: Integer;
ARect: TRect; {%H-}State: TOwnerDrawState);
procedure OnIdle(Sender: TObject; var {%H-}Done: Boolean);
procedure SortAlphabeticallySpeedButtonClick(Sender: TObject);
procedure OKButtonClick(Sender :TObject);
procedure HelpButtonClick(Sender: TObject);

View File

@ -126,12 +126,8 @@ type
);
TPkgLinksStates = set of TPkgLinksState;
TDependencyOwnerGetPkgFilename = function(PkgLinks: TPackageLinks;
Dependency: TPkgDependency): boolean of object;
TPackageLinks = class
private
FDependencyOwnerGetPkgFilename: TDependencyOwnerGetPkgFilename;
FGlobalLinks: TAvgLvlTree; // tree of global TPackageLink sorted for ID
FChangeStamp: integer;
FQueueSaveUserLinks: boolean;
@ -191,9 +187,6 @@ type
public
property Modified: boolean read GetModified write SetModified;
property ChangeStamp: integer read FChangeStamp;
property DependencyOwnerGetPkgFilename: TDependencyOwnerGetPkgFilename
read FDependencyOwnerGetPkgFilename
write FDependencyOwnerGetPkgFilename;
property QueueSaveUserLinks: boolean read FQueueSaveUserLinks write SetQueueSaveUserLinks;
end;
@ -1015,11 +1008,6 @@ begin
//debugln('TPackageLinks.FindLinkWithDependency A ',Dependency.AsString);
// WriteLinkTree(FGlobalLinks);
//end;
// finally try the history lists of the Dependency Owner (Project/Package)
if (Result=nil) and (Dependency.Owner<>nil)
and Assigned(DependencyOwnerGetPkgFilename)
and DependencyOwnerGetPkgFilename(Self,Dependency) then
Result:=FindLinkWithDependencyInTree(FUserLinksSortID,Dependency,IgnoreFiles);
end;
function TPackageLinks.FindLinkWithPackageID(APackageID: TLazPackageID

View File

@ -88,7 +88,7 @@ type
function OnPackageEditorCreateFpmakeFile(Sender: TObject;
APackage: TLazPackage): TModalResult;
function OnPackageEditorDeleteAmbiguousFiles(Sender: TObject;
APackage: TLazPackage; const Filename: string): TModalResult;
{%H-}APackage: TLazPackage; const Filename: string): TModalResult;
procedure OnPackageEditorDragDropTreeView(Sender, Source: TObject;
X, Y: Integer);
function OnPackageEditorDragOverTreeView(Sender, Source: TObject;
@ -159,11 +159,7 @@ type
procedure OnOpenPackageForCurrentSrcEditFile(Sender: TObject);
// LCL
procedure OnApplicationIdle(Sender: TObject; var Done: Boolean);
// package links
function PkgLinksDependencyOwnerGetPkgFilename(PkgLinks: TPackageLinks;
Dependency: TPkgDependency): boolean;
procedure OnApplicationIdle(Sender: TObject; var {%H-}Done: Boolean);
// misc
procedure GetDependencyOwnerDescription(Dependency: TPkgDependency;
@ -525,8 +521,13 @@ end;
procedure TPkgManager.OnCheckInstallPackageList(PkgIDList: TObjectList;
RemoveConflicts: boolean; out Ok: boolean);
var
Flags: TPkgInstallInIDEFlags;
begin
Ok:=CheckInstallPackageList(PkgIDList);
Flags:=[];
if RemoveConflicts then
Include(Flags,piiifRemoveConflicts);
Ok:=CheckInstallPackageList(PkgIDList,Flags);
if Ok then
SaveAutoInstallDependencies;
end;
@ -1043,14 +1044,6 @@ begin
Result:=DoUninstallPackage(APackage,[],false);
end;
function TPkgManager.PkgLinksDependencyOwnerGetPkgFilename(
PkgLinks: TPackageLinks; Dependency: TPkgDependency): boolean;
begin
Result:=false;
// TODO search in Project/Package history list of dependencies
end;
procedure TPkgManager.MainIDEitmConfigCustomCompsClicked(Sender: TObject);
begin
ShowConfigureCustomComponents;
@ -2926,7 +2919,6 @@ begin
// package links
PkgLinks:=TPackageLinks.Create;
PkgLinks.UpdateAll;
PkgLinks.DependencyOwnerGetPkgFilename:=@PkgLinksDependencyOwnerGetPkgFilename;
// package graph
PackageGraph:=TLazPackageGraph.Create;