Opkman: Properly init ssl under linux/osx. More responsive forms on download/update. Copy links to clipboard.

git-svn-id: trunk@53672 -
This commit is contained in:
balazs 2016-12-14 07:39:28 +00:00
parent 75cad818a6
commit 7c496c048a
7 changed files with 51 additions and 10 deletions

View File

@ -156,6 +156,7 @@ resourcestring
rsMainFrm_miCreateJSONForUpdates = 'Create JSON for updates';
rsMainFrm_miJSONShow = 'Show JSON';
rsMainFrm_miJSONHide = 'Hide JSON';
rsMainFrm_miCopyToClpBrd = 'Copy to clipboard';
rsMainFrm_PackagenameAlreadyExists = 'A package with the same name already exists!';
rsMainFrm_FilenameAlreadyExists = 'A package with the same zip file already exists!';
rsMainFrm_PackageAlreadyInstalled = 'The following packages are alrady installed. Continue with install?';

View File

@ -416,7 +416,6 @@ begin
end;
if FNeedToBreak then
Exit;
Sleep(2000);
if (UpdCnt = 0) then
begin
FUSuccess := False;

View File

@ -505,6 +505,14 @@ object MainFrm: TMainFrm
Caption = 'Show JSON'
OnClick = miJSONShowClick
end
object MenuItem1: TMenuItem
Caption = '-'
end
object miCopyToClpBrd: TMenuItem
Caption = 'Copy to clipboard'
Enabled = False
OnClick = miCopyToClpBrdClick
end
end
object pmMemo: TPopupMenu
left = 144

View File

@ -31,8 +31,8 @@ interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, contnrs,
StdCtrls, ExtCtrls, Buttons, Menus, ComCtrls, IDECommands, LazFileUtils,
LCLIntf, fpjson, opkman_downloader, opkman_installer,
PackageIntf;
LCLIntf, fpjson, opkman_VirtualTrees, opkman_downloader, opkman_installer,
PackageIntf, Clipbrd;
type
@ -43,6 +43,8 @@ type
cbPackageState: TComboBox;
cbPackageType: TComboBox;
imTBDis: TImageList;
MenuItem1: TMenuItem;
miCopyToClpBrd: TMenuItem;
miCreateRepository: TMenuItem;
miCreateRepositoryPackage: TMenuItem;
tbCleanUp1: TToolButton;
@ -76,6 +78,7 @@ type
tbCleanUp: TToolButton;
tbCreate: TToolButton;
tbUpdate: TToolButton;
procedure miCopyToClpBrdClick(Sender: TObject);
procedure miCreateRepositoryClick(Sender: TObject);
procedure miCreateRepositoryPackageClick(Sender: TObject);
procedure pnToolBarResize(Sender: TObject);
@ -825,6 +828,22 @@ begin
end;
end;
procedure TMainFrm.miCopyToClpBrdClick(Sender: TObject);
var
Data: PData;
Node: PVirtualNode;
begin
Node := VisualTree.VST.GetFirstSelected;
if Node <> nil then
begin
Data := VisualTree.VST.GetNodeData(Node);
case Data^.DataType of
17: Clipboard.AsText := Data^.HomePageURL;
18: Clipboard.AsText := Data^.DownloadURL;
end;
end;
end;
procedure TMainFrm.pnMainResize(Sender: TObject);
begin
pnMessage.Left := (pnMain.Width - pnMessage.Width) div 2;
@ -909,6 +928,7 @@ begin
miCreateRepository.Caption := rsMainFrm_miCreateJSONForUpdates;
miJSONShow.Caption := rsMainFrm_miJSONShow;
miJSONHide.Caption := rsMainFrm_miJSONHide;
miCopyToClpBrd.Caption := rsMainFrm_miCopyToClpBrd;
edFilter.Hint := rsMainFrm_edFilter_Hint;
spClear.Hint := rsMainFrm_spClear_Hint;

View File

@ -327,6 +327,7 @@ end;
procedure TProgressFrm.DoOnZipCompleted(Sender: TObject);
begin
Application.ProcessMessages;
FCanClose := True;
FSuccess := True;
Close;
@ -434,6 +435,7 @@ begin
FSuccess := True;
FNeedToRebuild := ANeedToRebuild;
FInstallStatus := AInstallStatus;
Application.ProcessMessages;
Sleep(1000);
Close;
end;
@ -475,9 +477,9 @@ begin
Data^.FImageIndex := 0;
FVST.TopNode := Node;
FVST.RepaintNode(Node);
Sleep(3000);
SetupControls(0);
Application.ProcessMessages;
Sleep(2000);
SetupControls(0);
end
else
begin
@ -578,6 +580,7 @@ begin
pbTotal.Top := lbReceivedTotal.Top + lbReceivedTotal.Height + 1;
bCancel.Top := (pnButtons.Height - bCancel.Height) div 2;
cbExtractOpen.Top := bCancel.Top + (bCancel.Height - cbExtractOpen.Height) div 2;
Application.ProcessMessages;
end;
procedure TProgressFrm.VSTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;

View File

@ -395,6 +395,8 @@ begin
FileExistsUTF8(ExtractFilePath(ParamStr(0)) + 'ssleay32.dll');
end;
end;
{$ELSE}
FOpenSSLAvaialable := True;
{$ENDIF}
end;

View File

@ -1538,13 +1538,14 @@ var
Node: PVirtualNode;
Data: PData;
I, L, R: Integer;
MenuItem: TMenuItem;
begin
if Button = mbLeft then
Node := FVST.GetNodeAt(X, Y);
if Node <> nil then
begin
Node := FVST.GetNodeAt(X, Y);
if Node <> nil then
Data := FVST.GetNodeData(Node);
if Button = mbLeft then
begin
Data := FVST.GetNodeData(Node);
if (Data^.DataType = 17) or (Data^.DataType = 18) then
begin
for I := 0 to VST.Header.Columns.Count - 1 do
@ -1566,8 +1567,15 @@ begin
end;
end;
end;
end
else if Button = mbRight then
begin
MenuItem := FVST.PopupMenu.Items.Find(rsMainFrm_miCopyToClpBrd);
if MenuItem <> nil then
MenuItem.Enabled := ((Data^.DataType = 17) and (Trim(Data^.HomePageURL) <> '')) or
((Data^.DataType = 18) and (Trim(Data^.DownloadURL) <> ''));
end;
end;
end
end;
procedure TVisualTree.VSTGetHint(Sender: TBaseVirtualTree; Node: PVirtualNode;