diff -r 91ae5a11a462 -r 03a94f862465 dialogs/UriEditor.py --- a/dialogs/UriEditor.py Thu Nov 08 11:20:35 2018 +0100 +++ b/dialogs/UriEditor.py Thu Nov 08 14:33:35 2018 +0100 @@ -2,10 +2,11 @@ import wx from connectors import ConnectorSchemes, EditorClassFromScheme +from controls.DiscoveryPanel import DiscoveryPanel class UriEditor(wx.Dialog): def _init_ctrls(self, parent): - self.UriTypeChoice = wx.Choice(parent=self, choices=self.URITYPES) + self.UriTypeChoice = wx.Choice(parent=self, choices=self.choices) self.UriTypeChoice.SetSelection(0) self.Bind(wx.EVT_CHOICE, self.OnTypeChoice, self.UriTypeChoice) self.editor_sizer = wx.BoxSizer(wx.HORIZONTAL) @@ -26,11 +27,11 @@ self.Layout() self.Fit() - def __init__(self, parent, uri): + def __init__(self, parent, uri=''): wx.Dialog.__init__(self, name='UriEditor', parent=parent, title=_('URI Editor')) - self.URITYPES = [_("- Select URI Scheme -")] + ConnectorSchemes() + self.choices = [_("- Search local network -")] + ConnectorSchemes() self._init_ctrls(parent) self._init_sizers() self.scheme = None @@ -45,17 +46,24 @@ def SetURI(self, uri): try: scheme, loc = uri.strip().split("://",1) + scheme = scheme.upper() except: - return None - scheme = scheme.upper() + scheme = None + if scheme in ConnectorSchemes(): self.UriTypeChoice.SetStringSelection(scheme) - self._replaceSchemeEditor(scheme) + else: + self.UriTypeChoice.SetSelection(0) + + self._replaceSchemeEditor(scheme) + + if scheme is not None: self.scheme_editor.SetLoc(loc) + def GetURI(self): - if self.scheme_editor is None: - return None + if self.scheme is None: + return self.scheme_editor.GetURI() else: return self.scheme+"://"+self.scheme_editor.GetLoc() @@ -67,11 +75,16 @@ self.scheme_editor.Destroy() self.scheme_editor = None - EditorClass = EditorClassFromScheme(scheme) - if EditorClass is not None: + if scheme is not None : + EditorClass = EditorClassFromScheme(scheme) self.scheme_editor = EditorClass(scheme,self) - self.editor_sizer.Add(self.scheme_editor) - self.scheme_editor.Refresh() + else : + # None is for searching local network + self.scheme_editor = DiscoveryPanel(self) + + self.editor_sizer.Add(self.scheme_editor) + self.scheme_editor.Refresh() + self.editor_sizer.Layout() self.mainSizer.Layout() self.Fit()