summaryrefslogtreecommitdiff
path: root/UQuickConnect.pas
diff options
context:
space:
mode:
Diffstat (limited to 'UQuickConnect.pas')
-rw-r--r--UQuickConnect.pas38
1 files changed, 18 insertions, 20 deletions
diff --git a/UQuickConnect.pas b/UQuickConnect.pas
index ca2824a..2779826 100644
--- a/UQuickConnect.pas
+++ b/UQuickConnect.pas
@@ -147,18 +147,20 @@ begin
MenuItem := TGTKMenuItem.CreateTyped(Self, itLabel);
MenuItem.Caption := LANGConnProp_MenuItemCaption;
PluginOptionMenu.Items.Add(MenuItem);
- for i := 0 to PluginList.Count - 1 do begin
- MenuItem := TGTKMenuItem.CreateTyped(Self, itImageText);
- MenuItem.SetCaptionPlain(Format('%s [%s]', [TVFSPlugin(PluginList[i]).ModuleName,
- ExtractFileName(TVFSPlugin(PluginList[i]).FullPath)]));
- PluginOptionMenu.Items.Add(MenuItem);
- end;
+ for i := 0 to PluginList.Count - 1 do
+ if TVFSPlugin(PluginList[i]).HandlesNetwork then begin
+ MenuItem := TGTKMenuItem.CreateTyped(Self, itImageText);
+ MenuItem.Data := PluginList[i];
+ MenuItem.SetCaptionPlain(Format('%s [%s]', [TVFSPlugin(PluginList[i]).ModuleName,
+ ExtractFileName(TVFSPlugin(PluginList[i]).FullPath)]));
+ PluginOptionMenu.Items.Add(MenuItem);
+ end;
// Find last used plugin
- if Length(Trim(ConfQuickConnectPluginID)) > 0 then
- for i := 0 to PluginList.Count - 1 do
- if TVFSPlugin(PluginList[i]).ModuleID = ConfQuickConnectPluginID then begin
- PluginOptionMenu.ItemIndex := i + 1;
+ if (Length(Trim(ConfQuickConnectPluginID)) > 0) and (PluginOptionMenu.Items.Count > 0) then
+ for i := 0 to PluginOptionMenu.Items.Count - 1 do
+ if (PluginOptionMenu.Items[i].Data <> nil) and (TVFSPlugin(PluginOptionMenu.Items[i].Data).ModuleID = ConfQuickConnectPluginID) then begin
+ PluginOptionMenu.ItemIndex := i;
Break;
end;
@@ -236,8 +238,8 @@ procedure TFQuickConnect.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if Length(Trim(URIComboBox.Entry.Text)) > 0 then
SaveItemToHistory(URIComboBox.Entry.Text, QuickConnectHistory);
- if PluginOptionMenu.ItemIndex <> 0
- then ConfQuickConnectPluginID := TVFSPlugin(PluginList[PluginOptionMenu.ItemIndex - 1]).ModuleID
+ if (PluginOptionMenu.ItemIndex <> 0) and (PluginOptionMenu.Items[PluginOptionMenu.ItemIndex].Data <> nil)
+ then ConfQuickConnectPluginID := TVFSPlugin(PluginOptionMenu.Items[PluginOptionMenu.ItemIndex].Data).ModuleID
else ConfQuickConnectPluginID := '';
end;
@@ -282,14 +284,10 @@ begin
// Find VFS module to use for this connection
VFSPlugin := nil;
- if PluginOptionMenu.ItemIndex <> 0 then ConfQuickConnectPluginID := TVFSPlugin(PluginList[PluginOptionMenu.ItemIndex - 1]).ModuleID
- else ConfQuickConnectPluginID := '';
- if Length(ConfQuickConnectPluginID) > 0 then
- for i := 0 to PluginList.Count - 1 do
- if TVFSPlugin(PluginList[i]).ModuleID = ConfQuickConnectPluginID then begin
- VFSPlugin := PluginList[i];
- Break;
- end;
+ if (PluginOptionMenu.ItemIndex <> 0) and (PluginOptionMenu.Items[PluginOptionMenu.ItemIndex].Data <> nil) then begin
+ VFSPlugin := PluginOptionMenu.Items[PluginOptionMenu.ItemIndex].Data;
+ ConfQuickConnectPluginID := VFSPlugin.ModuleID;
+ end else ConfQuickConnectPluginID := '';
if VFSPlugin = nil then begin
Scheme := '';
if Pos('://', URIComboBox.Entry.Text) > 0 then