|
@@ -73,6 +73,12 @@ global resolution
|
|
|
global wizerror
|
|
|
global translist
|
|
|
|
|
|
+if globalvar.CheckWxVersion(version=[4, 1, 0]):
|
|
|
+ search_cancel_evt = wx.EVT_SEARCH_CANCEL
|
|
|
+else:
|
|
|
+ search_cancel_evt = wx.EVT_SEARCHCTRL_CANCEL_BTN
|
|
|
+
|
|
|
+
|
|
|
class TitledPage(WizardPageSimple):
|
|
|
"""Class to make wizard pages. Generic methods to make labels,
|
|
|
text entries, and buttons.
|
|
@@ -487,9 +493,10 @@ class ProjectionsPage(TitledPage):
|
|
|
# search box
|
|
|
self.searchb = SearchCtrl(self, size=(200, -1),
|
|
|
style=wx.TE_PROCESS_ENTER)
|
|
|
+ self.searchb.ShowCancelButton(True)
|
|
|
|
|
|
# projection list
|
|
|
- self.projlist = ItemList(self, data=self.parent.projdesc.items(),
|
|
|
+ self.projlist = ItemList(self, data=list(self.parent.projdesc.items()),
|
|
|
columns=[_('Code'), _('Description')])
|
|
|
self.projlist.resizeLastColumn(30)
|
|
|
|
|
@@ -518,7 +525,8 @@ class ProjectionsPage(TitledPage):
|
|
|
|
|
|
# events
|
|
|
self.tproj.Bind(wx.EVT_TEXT, self.OnText)
|
|
|
- self.searchb.Bind(wx.EVT_TEXT_ENTER, self.OnSearch)
|
|
|
+ self.searchb.Bind(wx.EVT_TEXT, self.OnSearch)
|
|
|
+ self.searchb.Bind(search_cancel_evt, self.OnSearchCancel)
|
|
|
self.projlist.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected)
|
|
|
self.Bind(wiz.EVT_WIZARD_PAGE_CHANGING, self.OnPageChanging)
|
|
|
self.Bind(wiz.EVT_WIZARD_PAGE_CHANGED, self.OnEnterPage)
|
|
@@ -563,14 +571,19 @@ class ProjectionsPage(TitledPage):
|
|
|
|
|
|
def OnSearch(self, event):
|
|
|
"""Search projection by desc"""
|
|
|
+ search_str = event.GetString()
|
|
|
try:
|
|
|
self.proj, self.projdesc = self.projlist.Search(
|
|
|
- index=[0, 1], pattern=event.GetString())
|
|
|
+ index=[0, 1], pattern=search_str)
|
|
|
except:
|
|
|
self.proj = self.projdesc = ''
|
|
|
|
|
|
event.Skip()
|
|
|
|
|
|
+ def OnSearchCancel(self, event):
|
|
|
+ self.projlist.Search(index=None, pattern="")
|
|
|
+ event.Skip()
|
|
|
+
|
|
|
def OnItemSelected(self, event):
|
|
|
"""Projection selected"""
|
|
|
index = event.GetIndex()
|
|
@@ -993,6 +1006,7 @@ class DatumPage(TitledPage):
|
|
|
# search box
|
|
|
self.searchb = SearchCtrl(self, size=(200, -1),
|
|
|
style=wx.TE_PROCESS_ENTER)
|
|
|
+ self.searchb.ShowCancelButton(True)
|
|
|
|
|
|
# create list control for datum/elipsoid list
|
|
|
data = []
|
|
@@ -1032,7 +1046,8 @@ class DatumPage(TitledPage):
|
|
|
|
|
|
# events
|
|
|
self.datumlist.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnDatumSelected)
|
|
|
- self.searchb.Bind(wx.EVT_TEXT_ENTER, self.OnDSearch)
|
|
|
+ self.searchb.Bind(wx.EVT_TEXT, self.OnDSearch)
|
|
|
+ self.searchb.Bind(search_cancel_evt, self.OnSearchCancel)
|
|
|
self.tdatum.Bind(wx.EVT_TEXT, self.OnDText)
|
|
|
self.Bind(wiz.EVT_WIZARD_PAGE_CHANGING, self.OnPageChanging)
|
|
|
self.Bind(wiz.EVT_WIZARD_PAGE_CHANGED, self.OnEnterPage)
|
|
@@ -1125,19 +1140,23 @@ class DatumPage(TitledPage):
|
|
|
|
|
|
def OnDSearch(self, event):
|
|
|
"""Search geodetic datum by desc"""
|
|
|
- str = self.searchb.GetValue()
|
|
|
+ search_str = self.searchb.GetValue()
|
|
|
try:
|
|
|
self.datum, self.ellipsoid, self.datumdesc = self.datumlist.Search(
|
|
|
index=[
|
|
|
0,
|
|
|
1,
|
|
|
2],
|
|
|
- pattern=str)
|
|
|
+ pattern=search_str)
|
|
|
except:
|
|
|
self.datum = self.datumdesc = self.ellipsoid = ''
|
|
|
|
|
|
event.Skip()
|
|
|
|
|
|
+ def OnSearchCancel(self, event):
|
|
|
+ self.datumlist.Search(index=None, pattern="")
|
|
|
+ event.Skip()
|
|
|
+
|
|
|
def OnDatumSelected(self, event):
|
|
|
"""Datum selected"""
|
|
|
index = event.GetIndex()
|
|
@@ -1171,6 +1190,7 @@ class EllipsePage(TitledPage):
|
|
|
# search box
|
|
|
self.searchb = SearchCtrl(self, size=(200, -1),
|
|
|
style=wx.TE_PROCESS_ENTER)
|
|
|
+ self.searchb.ShowCancelButton(True)
|
|
|
# radio buttons
|
|
|
self.radio1 = wx.RadioButton(parent=self, id=wx.ID_ANY,
|
|
|
label=_("Earth based"),
|
|
@@ -1224,7 +1244,8 @@ class EllipsePage(TitledPage):
|
|
|
# events
|
|
|
self.ellipselist.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected)
|
|
|
self.tellipse.Bind(wx.EVT_TEXT, self.OnText)
|
|
|
- self.searchb.Bind(wx.EVT_TEXT_ENTER, self.OnSearch)
|
|
|
+ self.searchb.Bind(wx.EVT_TEXT, self.OnSearch)
|
|
|
+ self.searchb.Bind(search_cancel_evt, self.OnSearchCancel)
|
|
|
|
|
|
self.radio1.Bind(
|
|
|
wx.EVT_RADIOBUTTON,
|
|
@@ -1300,6 +1321,10 @@ class EllipsePage(TitledPage):
|
|
|
|
|
|
event.Skip()
|
|
|
|
|
|
+ def OnSearchCancel(self, event):
|
|
|
+ self.ellipselist.Search(index=None, pattern="")
|
|
|
+ event.Skip()
|
|
|
+
|
|
|
def OnItemSelected(self, event):
|
|
|
"""Ellipsoid selected"""
|
|
|
index = event.GetIndex()
|
|
@@ -1495,6 +1520,8 @@ class EPSGPage(TitledPage):
|
|
|
# search box
|
|
|
self.searchb = SearchCtrl(self, size=(-1, 30),
|
|
|
style=wx.TE_PROCESS_ENTER)
|
|
|
+ self.searchb.ShowCancelButton(True)
|
|
|
+
|
|
|
self.epsglist = ItemList(
|
|
|
self,
|
|
|
data=None,
|
|
@@ -1539,6 +1566,7 @@ class EPSGPage(TitledPage):
|
|
|
# events
|
|
|
self.searchb.Bind(wx.EVT_TEXT, self.OnTextChange)
|
|
|
self.epsglist.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected)
|
|
|
+ self.searchb.Bind(search_cancel_evt, self.OnSearchCancel)
|
|
|
self.Bind(wiz.EVT_WIZARD_PAGE_CHANGING, self.OnPageChanging)
|
|
|
self.Bind(wiz.EVT_WIZARD_PAGE_CHANGED, self.OnEnterPage)
|
|
|
|
|
@@ -1598,6 +1626,7 @@ class EPSGPage(TitledPage):
|
|
|
self.tlink.SetURL(str("https://epsg.io/"))
|
|
|
self.epsgcode = None
|
|
|
self.epsgdesc = self.epsgparams = ''
|
|
|
+ self.searchb.ChangeValue('')
|
|
|
self.OnBrowseCodes(None)
|
|
|
self.EnableNext(False)
|
|
|
else:
|
|
@@ -1637,6 +1666,10 @@ class EPSGPage(TitledPage):
|
|
|
|
|
|
event.Skip()
|
|
|
|
|
|
+ def OnSearchCancel(self, event):
|
|
|
+ self.epsglist.Search(index=None, pattern="")
|
|
|
+ event.Skip()
|
|
|
+
|
|
|
def OnBrowseCodes(self, event, search=None):
|
|
|
"""Browse EPSG codes"""
|
|
|
try:
|
|
@@ -1700,6 +1733,7 @@ class IAUPage(TitledPage):
|
|
|
# search box
|
|
|
self.searchb = SearchCtrl(self, size=(200, -1),
|
|
|
style=wx.TE_PROCESS_ENTER)
|
|
|
+ self.searchb.ShowCancelButton(True)
|
|
|
|
|
|
self.epsglist = ItemList(
|
|
|
self,
|
|
@@ -1746,7 +1780,8 @@ class IAUPage(TitledPage):
|
|
|
self.tfile.Bind(wx.EVT_TEXT_ENTER, self.OnBrowseCodes)
|
|
|
self.tcode.Bind(wx.EVT_TEXT, self.OnText)
|
|
|
self.epsglist.Bind(wx.EVT_LIST_ITEM_SELECTED, self.OnItemSelected)
|
|
|
- self.searchb.Bind(wx.EVT_TEXT_ENTER, self.OnSearch)
|
|
|
+ self.searchb.Bind(wx.EVT_TEXT, self.OnSearch)
|
|
|
+ self.searchb.Bind(search_cancel_evt, self.OnSearchCancel)
|
|
|
self.Bind(wiz.EVT_WIZARD_PAGE_CHANGING, self.OnPageChanging)
|
|
|
self.Bind(wiz.EVT_WIZARD_PAGE_CHANGED, self.OnEnterPage)
|
|
|
|
|
@@ -1855,6 +1890,10 @@ class IAUPage(TitledPage):
|
|
|
|
|
|
event.Skip()
|
|
|
|
|
|
+ def OnSearchCancel(self, event):
|
|
|
+ self.epsglist.Search(index=None, pattern="")
|
|
|
+ event.Skip()
|
|
|
+
|
|
|
def OnBrowse(self, event):
|
|
|
"""Define path for IAU code file"""
|
|
|
path = os.path.dirname(self.tfile.GetValue())
|