summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Bzatek <tbzatek@users.sourceforge.net>2009-10-03 18:48:42 +0200
committerTomas Bzatek <tbzatek@users.sourceforge.net>2009-10-03 18:48:42 +0200
commitb2f8a1f1a9408b674a06e34c140f58a9ae109360 (patch)
tree9062152ca8b4b63646b1a8e170e9d73412b865c6
parent0654e549d1f8252deb9c598b19299e0c599f5fec (diff)
downloadtuxcmd-b2f8a1f1a9408b674a06e34c140f58a9ae109360.tar.xz
Remember custom plugin from Quick Connect dialog and pre-fill it in Connection Properties dialog when saving unsaved connection
-rw-r--r--UMain.pas5
-rw-r--r--UQuickConnect.pas1
-rw-r--r--vfs/UVFSCore.pas11
3 files changed, 17 insertions, 0 deletions
diff --git a/UMain.pas b/UMain.pas
index 2e1371a..b018eae 100644
--- a/UMain.pas
+++ b/UMain.pas
@@ -6066,6 +6066,7 @@ var Buttons: TMessageButtons;
AFConnectionProperties: TFConnectionProperties;
URI: string;
ConnMgrItem: TConnMgrItem;
+ i: integer;
begin
Result := True;
URI := Engine.GetPathURI;
@@ -6081,6 +6082,10 @@ begin
AFConnectionProperties := TFConnectionProperties.Create(Self);
try
AFConnectionProperties.URIEntry.Text := URI;
+ if (Engine.CustomPluginIDSave <> '') and (AFConnectionProperties.PluginOptionMenu.Items.Count > 0) then
+ for i := 0 to PluginList.Count - 1 do
+ if TVFSPlugin(PluginList[i]).VFSName = Engine.CustomPluginIDSave
+ then AFConnectionProperties.PluginOptionMenu.ItemIndex := i + 1;
if AFConnectionProperties.Run = mbOK then begin
ReadConnections;
ConnMgrItem := TConnMgrItem.Create;
diff --git a/UQuickConnect.pas b/UQuickConnect.pas
index aaaa0bf..8234edd 100644
--- a/UQuickConnect.pas
+++ b/UQuickConnect.pas
@@ -320,6 +320,7 @@ begin
Engine.ParentEngine := SourcePanelEngine;
Engine.SavePath := SourcePanelEngine.Path;
Engine.OpenedFromQuickConnect := True;
+ Engine.CustomPluginIDSave := ConfQuickConnectPluginID;
if not AFConnectionManager.DoConnectInternal(URIComboBox.Entry.Text, Engine, FWidget) then begin
if not AFConnectionManager.FSilenceError then Application.MessageBox(PGtkWindow(FWidget), LANGCouldntOpenURI, [mbOK], mbError, mbOK, mbOK);
diff --git a/vfs/UVFSCore.pas b/vfs/UVFSCore.pas
index aaa3b49..7c85b02 100644
--- a/vfs/UVFSCore.pas
+++ b/vfs/UVFSCore.pas
@@ -89,12 +89,14 @@ type
FSourcePlugin: TVFSPlugin;
FBlockSize: Cardinal;
BreakProcessingKind: integer;
+ function GetPluginID: string;
public
ArchiveMode: boolean;
Password: string;
PasswordUsed: boolean;
RemoveFileOnClose: string;
OpenedFromQuickConnect: boolean;
+ CustomPluginIDSave: string;
constructor Create(SourcePlugin: TVFSPlugin);
function VFSOpenURI(URI: string; AskQuestionCallback: PVFSAskQuestionCallback; AskPasswordCallback: PVFSAskPasswordCallback; ProgressCallback: PVFSProgressCallback; CallbackData: Pointer): boolean;
function VFSOpenEx(OpenFile: string; AskQuestionCallback: PVFSAskQuestionCallback; AskPasswordCallback: PVFSAskPasswordCallback; ProgressCallback: PVFSProgressCallback; CallbackData: Pointer): TVFSResult;
@@ -152,6 +154,7 @@ type
published
property Path: string read GetPath write SetPath;
property BlockSize: Cardinal read GetBlockSize write SetBlockSize;
+ property PluginID: string read GetPluginID;
end;
@@ -304,6 +307,7 @@ begin
PasswordUsed := False;
RemoveFileOnClose := '';
OpenedFromQuickConnect := False;
+ CustomPluginIDSave := '';
if @FSourcePlugin.FVFSNew <> nil then FGlobs := FSourcePlugin.FVFSNew(@VFSLogFunc);
end;
@@ -955,6 +959,13 @@ begin
FSourcePlugin.FVFSResetPassword(FGlobs);
end;
+(********************************************************************************************************************************)
+(********************************************************************************************************************************)
+function TVFSEngine.GetPluginID: string;
+begin
+ if FSourcePlugin <> nil then Result := FSourcePlugin.VFSName
+ else Result := '';
+end;
(********************************************************************************************************************************)
(********************************************************************************************************************************)