3 |
3 |
4 # This file is part of Beremiz, a Integrated Development Environment for |
4 # This file is part of Beremiz, a Integrated Development Environment for |
5 # programming IEC 61131-3 automates supporting plcopen standard and CanFestival. |
5 # programming IEC 61131-3 automates supporting plcopen standard and CanFestival. |
6 # |
6 # |
7 # Copyright (C) 2007: Edouard TISSERANT and Laurent BESSARD |
7 # Copyright (C) 2007: Edouard TISSERANT and Laurent BESSARD |
|
8 # Copyright (C) 2017: Andrey Skvortsov <andrej.skvortzov@gmail.com> |
8 # |
9 # |
9 # See COPYING file for copyrights details. |
10 # See COPYING file for copyrights details. |
10 # |
11 # |
11 # This program is free software; you can redistribute it and/or |
12 # This program is free software; you can redistribute it and/or |
12 # modify it under the terms of the GNU General Public License |
13 # modify it under the terms of the GNU General Public License |
39 ("configuration", _("Configuration"))] |
40 ("configuration", _("Configuration"))] |
40 |
41 |
41 class SearchInProjectDialog(wx.Dialog): |
42 class SearchInProjectDialog(wx.Dialog): |
42 |
43 |
43 def __init__(self, parent): |
44 def __init__(self, parent): |
44 wx.Dialog.__init__(self, parent, title=_('Search in Project'), |
45 wx.Dialog.__init__(self, parent, title=_('Search in Project')) |
45 size=wx.Size(600, 350)) |
|
46 |
46 |
47 main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=3, vgap=10) |
47 main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=3, vgap=10) |
48 main_sizer.AddGrowableCol(0) |
48 main_sizer.AddGrowableCol(0) |
49 main_sizer.AddGrowableRow(1) |
49 main_sizer.AddGrowableRow(1) |
50 |
50 |
57 pattern_sizer.AddWindow(pattern_label, flag=wx.ALIGN_BOTTOM) |
57 pattern_sizer.AddWindow(pattern_label, flag=wx.ALIGN_BOTTOM) |
58 |
58 |
59 self.CaseSensitive = wx.CheckBox(self, label=_('Case sensitive')) |
59 self.CaseSensitive = wx.CheckBox(self, label=_('Case sensitive')) |
60 pattern_sizer.AddWindow(self.CaseSensitive, flag=wx.GROW) |
60 pattern_sizer.AddWindow(self.CaseSensitive, flag=wx.GROW) |
61 |
61 |
62 self.Pattern = wx.TextCtrl(self) |
62 self.Pattern = wx.TextCtrl(self, size=wx.Size(250,-1)) |
63 self.Bind(wx.EVT_TEXT, self.FindPatternChanged, self.Pattern) |
63 self.Bind(wx.EVT_TEXT, self.FindPatternChanged, self.Pattern) |
64 pattern_sizer.AddWindow(self.Pattern, flag=wx.GROW) |
64 pattern_sizer.AddWindow(self.Pattern, flag=wx.GROW) |
65 self.Bind(wx.EVT_CHAR_HOOK, self.OnEscapeKey) |
65 self.Bind(wx.EVT_CHAR_HOOK, self.OnEscapeKey) |
66 self.RegularExpression = wx.CheckBox(self, label=_('Regular expression')) |
66 self.RegularExpression = wx.CheckBox(self, label=_('Regular expression')) |
67 pattern_sizer.AddWindow(self.RegularExpression, flag=wx.GROW) |
67 pattern_sizer.AddWindow(self.RegularExpression, flag=wx.GROW) |
73 |
73 |
74 scope_selection_sizer = wx.BoxSizer(wx.VERTICAL) |
74 scope_selection_sizer = wx.BoxSizer(wx.VERTICAL) |
75 scope_sizer.AddSizer(scope_selection_sizer, 1, border=5, |
75 scope_sizer.AddSizer(scope_selection_sizer, 1, border=5, |
76 flag=wx.GROW|wx.TOP|wx.LEFT|wx.BOTTOM) |
76 flag=wx.GROW|wx.TOP|wx.LEFT|wx.BOTTOM) |
77 |
77 |
78 self.WholeProject = wx.RadioButton(self, label=_('Whole Project'), |
78 self.WholeProject = wx.RadioButton(self, label=_('Whole Project'), style=wx.RB_GROUP) |
79 size=wx.Size(0, 24), style=wx.RB_GROUP) |
|
80 self.WholeProject.SetValue(True) |
79 self.WholeProject.SetValue(True) |
81 self.Bind(wx.EVT_RADIOBUTTON, self.OnScopeChanged, self.WholeProject) |
80 self.Bind(wx.EVT_RADIOBUTTON, self.OnScopeChanged, self.WholeProject) |
82 scope_selection_sizer.AddWindow(self.WholeProject, border=5, |
81 scope_selection_sizer.AddWindow(self.WholeProject, border=5, |
83 flag=wx.GROW|wx.BOTTOM) |
82 flag=wx.GROW|wx.BOTTOM) |
84 |
83 |
85 self.OnlyElements = wx.RadioButton(self, |
84 self.OnlyElements = wx.RadioButton(self, label=_('Only Elements')) |
86 label=_('Only Elements'), size=wx.Size(0, 24)) |
|
87 self.Bind(wx.EVT_RADIOBUTTON, self.OnScopeChanged, self.OnlyElements) |
85 self.Bind(wx.EVT_RADIOBUTTON, self.OnScopeChanged, self.OnlyElements) |
88 self.OnlyElements.SetValue(False) |
86 self.OnlyElements.SetValue(False) |
89 scope_selection_sizer.AddWindow(self.OnlyElements, flag=wx.GROW) |
87 scope_selection_sizer.AddWindow(self.OnlyElements, flag=wx.GROW) |
90 |
88 |
91 self.ElementsList = wx.CheckListBox(self) |
89 self.ElementsList = wx.CheckListBox(self) |
108 |
106 |
109 self.SetSizer(main_sizer) |
107 self.SetSizer(main_sizer) |
110 |
108 |
111 for name, label in GetElementsChoices(): |
109 for name, label in GetElementsChoices(): |
112 self.ElementsList.Append(_(label)) |
110 self.ElementsList.Append(_(label)) |
|
111 |
|
112 self.Fit() |
113 self.infosPrev = {} |
113 self.infosPrev = {} |
114 self.criteria = {} |
114 self.criteria = {} |
115 self.Pattern.SetFocus() |
115 self.Pattern.SetFocus() |
116 self.RefreshButtonsState() |
116 self.RefreshButtonsState() |
117 |
117 |