mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-26 13:19:29 +02:00
Opkman: After a package is opened with "Open package file(.lpk)...", OPM wrongly reports the package as installed when in fact is not.
git-svn-id: trunk@59717 -
This commit is contained in:
parent
01d74c39d2
commit
7a770dfa0c
@ -807,13 +807,15 @@ procedure TMainFrm.tbUninstallClick(Sender: TObject);
|
|||||||
function GetIDEPackage(const AFileName: String): TIDEPackage;
|
function GetIDEPackage(const AFileName: String): TIDEPackage;
|
||||||
var
|
var
|
||||||
I: Integer;
|
I: Integer;
|
||||||
|
IDEPackge: TIDEPackage;
|
||||||
begin
|
begin
|
||||||
Result := nil;
|
Result := nil;
|
||||||
for I := 0 to PackageEditingInterface.GetPackageCount - 1 do
|
for I := 0 to PackageEditingInterface.GetPackageCount - 1 do
|
||||||
begin
|
begin
|
||||||
if UpperCase(PackageEditingInterface.GetPackages(I).Filename) = UpperCase(AFileName) then
|
IDEPackge := PackageEditingInterface.GetPackages(I);
|
||||||
|
if UpperCase(IDEPackge.Filename) = UpperCase(AFileName) then
|
||||||
begin
|
begin
|
||||||
Result := PackageEditingInterface.GetPackages(I);
|
Result := IDEPackge;
|
||||||
Break;
|
Break;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -858,7 +860,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
lptDesignTime, lptRunAndDesignTime:
|
lptDesignTime, lptRunAndDesignTime:
|
||||||
begin
|
begin
|
||||||
IDEPackage := GetIDEPackage(LazarusPackage.PackageAbsolutePath);
|
IDEPackage := GetIDEPackage(LazarusPackage.InstalledFileName);
|
||||||
if IDEPackage <> nil then
|
if IDEPackage <> nil then
|
||||||
begin
|
begin
|
||||||
if PackageEditingInterface.UninstallPackage(IDEPackage, False) <> mrOk then
|
if PackageEditingInterface.UninstallPackage(IDEPackage, False) <> mrOk then
|
||||||
|
@ -1121,30 +1121,27 @@ function TSerializablePackages.IsPackageInstalled(const ALazarusPkg: TLazarusPac
|
|||||||
|
|
||||||
function CheckIDEPackages: Boolean;
|
function CheckIDEPackages: Boolean;
|
||||||
var
|
var
|
||||||
PackageCnt: Integer;
|
IDEPkg: TIDEPackage;
|
||||||
I: Integer;
|
PkgExt: String;
|
||||||
Package: TIDEPackage;
|
PkgName: String;
|
||||||
begin
|
begin
|
||||||
Result := False;
|
Result := False;
|
||||||
PackageCnt := PackageEditingInterface.GetPackageCount;
|
PkgExt := ExtractFileExt(ALazarusPkg.Name);
|
||||||
for I := 0 to PackageCnt - 1 do
|
PkgName := StringReplace(ALazarusPkg.Name, PkgExt, '', [rfIgnoreCase]);
|
||||||
|
IDEPkg := PackageEditingInterface.IsPackageInstalled(PkgName);
|
||||||
|
if IDEPkg <> nil then
|
||||||
begin
|
begin
|
||||||
Package := PackageEditingInterface.GetPackages(I);
|
ALazarusPkg.InstalledFileName := IDEPkg.Filename;
|
||||||
if ExtractFileName(Package.FileName) = ALazarusPkg.Name then
|
ALazarusPkg.InstalledFileVersion := IntToStr(IDEPkg.Version.Major) + '.' +
|
||||||
begin
|
IntToStr(IDEPkg.Version.Minor) + '.' +
|
||||||
ALazarusPkg.InstalledFileName := Package.Filename;
|
IntToStr(IDEPkg.Version.Release) + '.' +
|
||||||
ALazarusPkg.InstalledFileVersion := IntToStr(Package.Version.Major) + '.' +
|
IntToStr(IDEPkg.Version.Build);
|
||||||
IntToStr(Package.Version.Minor) + '.' +
|
|
||||||
IntToStr(Package.Version.Release) + '.' +
|
|
||||||
IntToStr(Package.Version.Build);
|
|
||||||
if FileExists(ALazarusPkg.InstalledFileName) then
|
if FileExists(ALazarusPkg.InstalledFileName) then
|
||||||
begin
|
begin
|
||||||
ALazarusPkg.InstalledFileDescription := GetPackageDescription(Package.Filename);
|
ALazarusPkg.InstalledFileDescription := GetPackageDescription(IDEPkg.Filename);
|
||||||
ALazarusPkg.InstalledFileLincese := GetPackageLicense(Package.Filename);
|
ALazarusPkg.InstalledFileLincese := GetPackageLicense(IDEPkg.Filename);
|
||||||
end;
|
end;
|
||||||
Result := True;
|
Result := True;
|
||||||
Break;
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user