diff options
Diffstat (limited to 'UConnectionManager.pas')
| -rw-r--r-- | UConnectionManager.pas | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/UConnectionManager.pas b/UConnectionManager.pas index 1744dbc..72574b5 100644 --- a/UConnectionManager.pas +++ b/UConnectionManager.pas @@ -335,7 +335,8 @@ begin ConnMgrItem.Password := PasswordEntry.Text; ConnMgrItem.TargetDir := TargetDirEntry.Text; ConnMgrItem.PluginID := ''; - if PluginOptionMenu.ItemIndex <> 0 then ConnMgrItem.PluginID := TVFSPlugin(PluginList[PluginOptionMenu.ItemIndex - 1]).ModuleID; + if (PluginOptionMenu.ItemIndex <> 0) and (PluginOptionMenu.Items[PluginOptionMenu.ItemIndex].Data <> nil) then + ConnMgrItem.PluginID := TVFSPlugin(PluginOptionMenu.Items[PluginOptionMenu.ItemIndex].Data).ModuleID; end; ConnectionMgrList.Add(ConnMgrItem); Item := ListView.Items.Add; @@ -366,9 +367,9 @@ begin FConnectionProperties.URIEntry.Text := ConstructURI(True, False, ConnMgrItem.ServiceType, ConnMgrItem.Server, ConnMgrItem.Username, ConnMgrItem.Password, ConnMgrItem.TargetDir); FConnectionProperties.ServiceTypeOptionMenuChanged(Sender); // Find the plugin by PluginID - for i := 0 to PluginList.Count - 1 do - if TVFSPlugin(PluginList[i]).ModuleID = ConnMgrItem.PluginID then begin - FConnectionProperties.PluginOptionMenu.ItemIndex := i + 1; + for i := 0 to FConnectionProperties.PluginOptionMenu.Items.Count - 1 do + if (FConnectionProperties.PluginOptionMenu.Items[i].Data <> nil) and (TVFSPlugin(FConnectionProperties.PluginOptionMenu.Items[i].Data).ModuleID = ConnMgrItem.PluginID) then begin + FConnectionProperties.PluginOptionMenu.ItemIndex := i; Break; end; @@ -381,7 +382,8 @@ begin ConnMgrItem.Password := PasswordEntry.Text; ConnMgrItem.TargetDir := TargetDirEntry.Text; ConnMgrItem.PluginID := ''; - if PluginOptionMenu.ItemIndex <> 0 then ConnMgrItem.PluginID := TVFSPlugin(PluginList[PluginOptionMenu.ItemIndex - 1]).ModuleID; + if (PluginOptionMenu.ItemIndex <> 0) and (PluginOptionMenu.Items[PluginOptionMenu.ItemIndex].Data <> nil) then + ConnMgrItem.PluginID := TVFSPlugin(PluginOptionMenu.Items[PluginOptionMenu.ItemIndex].Data).ModuleID; end; Item.SetValue(1, ConnMgrItem.ConnectionName); Item.SetValue(2, FConnectionProperties.MakeURI(True)); @@ -407,9 +409,9 @@ begin FConnectionProperties.URIEntry.Text := ConstructURI(True, False, ConnMgrItem.ServiceType, ConnMgrItem.Server, ConnMgrItem.Username, ConnMgrItem.Password, ConnMgrItem.TargetDir); FConnectionProperties.ServiceTypeOptionMenuChanged(Sender); // Find the plugin by PluginID - for i := 0 to PluginList.Count - 1 do - if TVFSPlugin(PluginList[i]).ModuleID = ConnMgrItem.PluginID then begin - FConnectionProperties.PluginOptionMenu.ItemIndex := i + 1; + for i := 0 to FConnectionProperties.PluginOptionMenu.Items.Count - 1 do + if (FConnectionProperties.PluginOptionMenu.Items[i].Data <> nil) and (TVFSPlugin(FConnectionProperties.PluginOptionMenu.Items[i].Data).ModuleID = ConnMgrItem.PluginID) then begin + FConnectionProperties.PluginOptionMenu.ItemIndex := i; Break; end; @@ -423,7 +425,8 @@ begin ConnMgrItem.Password := PasswordEntry.Text; ConnMgrItem.TargetDir := TargetDirEntry.Text; ConnMgrItem.PluginID := ''; - if PluginOptionMenu.ItemIndex <> 0 then ConnMgrItem.PluginID := TVFSPlugin(PluginList[PluginOptionMenu.ItemIndex - 1]).ModuleID; + if (PluginOptionMenu.ItemIndex <> 0) and (PluginOptionMenu.Items[PluginOptionMenu.ItemIndex].Data <> nil) then + ConnMgrItem.PluginID := TVFSPlugin(PluginOptionMenu.Items[PluginOptionMenu.ItemIndex].Data).ModuleID; end; ConnectionMgrList.Add(ConnMgrItem); Item := ListView.Items.Add; |
