diff options
Diffstat (limited to 'UQuickConnect.pas')
| -rw-r--r-- | UQuickConnect.pas | 38 |
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 |
