def _tag_pattern_search_panel(self): panel = wx.Panel(self._notebook) panel.SetSizer(VerticalSizer()) tags_controls_sizer = VerticalSizer() tags_controls_sizer.Add(self._create_include_line(panel), 0, wx.ALL, 3) tags_controls_sizer.Add(self._create_exclude_line(panel), 0, wx.ALL, 3) controls_sizer = self._horizontal_sizer() controls_sizer.Add(tags_controls_sizer) controls_sizer.Add(self._create_switch_button(panel), 0, wx.CENTER, 3) controls_sizer.Add(self._create_tag_search_button(panel), 0, wx.ALL | wx.EXPAND, 3) controls_sizer.Add(self._create_add_to_selected_button(panel), 0, wx.ALL | wx.EXPAND, 3) panel.Sizer.Add(controls_sizer) panel.Sizer.Add( self._add_info_text( panel, "Find matches using tag patterns. See RF User Guide or 'pybot --help' for more information." ), 0, wx.ALL, 3) self._tags_results = _TestSearchListModel([]) self._tags_list = VirtualList(panel, ['Test', 'Tags', 'Source'], self._tags_results) self._tags_list.add_selection_listener(self._select_tag_search_result) panel.Sizer.add_expanding(self._tags_list) self._tags_results_text = wx.StaticText(panel, -1, 'Results: ') panel.Sizer.Add(self._tags_results_text, 0, wx.ALL, 3) return panel
def _create_ui(self, size): panel = wx.Panel(self) panel.SetBackgroundColour(POPUP_BACKGROUND) szr = VerticalSizer() self._details = HtmlWindow(self, size=size) szr.add_expanding(self._details) panel.SetSizer(szr) panel.Fit() return panel
def _create_ui(self, size): panel = wx.MiniFrame(self) panel.SetBackgroundColour(POPUP_BACKGROUND) szr = VerticalSizer() self._details = HtmlWindow(self, size=size) szr.add_expanding(self._details) panel.SetSizer(szr) panel.Fit() return panel
def __init__(self, usages, title, checkbox_label, model=ResourceImportListModel): Dialog.__init__(self, title, size=(self._width, self._height)) self._sizer = VerticalSizer() self._create_controls(usages, checkbox_label, model) self._create_horizontal_line(self._sizer) self._create_buttons(self._sizer) self.SetSizer(self._sizer)
def _create_ui(self, size): if wx.VERSION >= (3, 0, 3, ''): # DEBUG wxPhoenix panel = wx.MiniFrame(self) # DEBUG wx.Panel would not detach on wxPython 4 else: panel = wx.Panel(self) panel.SetBackgroundColour(POPUP_BACKGROUND) szr = VerticalSizer() self._details = HtmlWindow(self, size=size) szr.add_expanding(self._details) panel.SetSizer(szr) panel.Fit() return panel
def __init__(self, usages, title, checkbox_label, model=ResourceImportListModel): Dialog.__init__(self, title, size=(self._width, self._height)) # set Left to Right direction (while we don't have localization) self.SetLayoutDirection(wx.Layout_LeftToRight) self._sizer = VerticalSizer() self._create_controls(usages, checkbox_label, model) self._create_horizontal_line(self._sizer) self._create_buttons(self._sizer) self.SetSizer(self._sizer)
def _create_ui(self, size, detachable, autohide): panel = wx.Panel(self) panel.SetBackgroundColour(POPUP_BACKGROUND) szr = VerticalSizer() self._details = HtmlWindow(self, size=size) if detachable: self._details.Bind(wx.EVT_LEFT_UP, self._detach) szr.add_expanding(self._details) panel.SetSizer(szr) panel.Fit() if autohide: self._get_autohide_component(panel).Bind(wx.EVT_LEAVE_WINDOW, self.hide)
class _UsageDialog(Dialog): _width = 650 _height = 250 def __init__(self, usages, title, checkbox_label, model=ResourceImportListModel): Dialog.__init__(self, title, size=(self._width, self._height)) self._sizer = VerticalSizer() self._create_controls(usages, checkbox_label, model) self._create_horizontal_line(self._sizer) self._create_buttons(self._sizer) self.SetSizer(self._sizer) def _create_controls(self, usages, checkbox_label, model): self._sizer.add_with_padding(Label(self, label="Usages:")) model = model(usages) self._sizer.add_expanding(VirtualList(self, model.headers, model)) self._add_usages_modifying_help(usages) self._checkbox = wx.CheckBox(self, label=checkbox_label) self._checkbox.SetValue(True) self._sizer.add_with_padding(self._checkbox) def _add_usages_modifying_help(self, usages): if any(u for u in usages if not u.can_be_renamed): help = Label(self, label='Highlighted imports are not modified because they ' 'contain variables in resource file name.') help.Wrap(self._width) help.SetForegroundColour('red') self._sizer.add_with_padding(help) def show(self): confirmed = self.ShowModal() == wx.ID_OK return confirmed, self._checkbox.IsChecked()
class _ConfirmationWithCheckbox(Dialog): _width = 650 _height = 250 def __init__(self, controller): Dialog.__init__(self, self._title, size=(self._width, self._height)) self._controller = controller self._sizer = VerticalSizer() self._create_controls() self._create_horizontal_line(self._sizer) self._create_buttons(self._sizer) self.SetSizer(self._sizer) def _create_controls(self): self._show_usages() self._checkbox = wx.CheckBox(self, label=self._checkbox_label) self._checkbox.SetValue(True) self._sizer.add_with_padding(self._checkbox) def _show_usages(self): usages = list(self._controller.execute(FindResourceUsages())) if usages: self._sizer.add_with_padding(Label(self, label="Usages:")) model = ResourceImportListModel(usages) self._sizer.add_expanding(VirtualList(self, model.headers, model)) self._add_usages_modifying_help(usages) def _add_usages_modifying_help(self, usages): if any(u for u in usages if not u.can_be_renamed): help = Label(self, label='Highlighted imports are not modified because they ' 'contain variables in resource file name.') help.Wrap(self._width) help.SetForegroundColour('red') self._sizer.add_with_padding(help)
def _create_ui(self, size, detachable, autohide): panel = wx.Panel(self) panel.SetBackgroundColour(POPUP_BACKGROUND) szr = VerticalSizer() if detachable: szr.add(ButtonWithHandler(panel, 'Detach', width=size[0], handler=self._detach)) size = (size[0], size[1]-25) self._details = HtmlWindow(self, size=size) szr.add_expanding(self._details) panel.SetSizer(szr) panel.Fit() if autohide: self._get_autohide_component(panel).Bind(wx.EVT_LEAVE_WINDOW, self.hide)
def __init__(self, controller): Dialog.__init__(self, self._title, size=(self._width, self._height)) self._controller = controller self._sizer = VerticalSizer() self._create_controls() self._create_horizontal_line(self._sizer) self._create_buttons(self._sizer) self.SetSizer(self._sizer)
def __init__(self, fuzzy_search_handler, tag_search_handler, add_to_selected_handler): self._fuzzy_search_handler = fuzzy_search_handler self._tag_search_handler = tag_search_handler self._add_to_selected_handler = add_to_selected_handler self._selection_listeners = [] title = "Search Tests" Dialog.__init__(self, title=title, size=(750, 400)) self.SetSizer(VerticalSizer()) self.Sizer.Add(self._create_notebook(), 1, wx.ALL | wx.EXPAND | wx.ALIGN_LEFT, 3)
def __init__(self, controller): self._user_name = "Admin" self._password = "" self._server_list = "" self._repository_list = "" self._repository_type = self.__repositories[0] self._controller = controller title = 'Repository settings' Dialog.__init__(self, title, size=(self._width, self._height)) self._sizer = VerticalSizer() # self._add_server_list(self, self._sizer) # self._add_repository_list(self, self._sizer) # self._sizer = wx.GridSizer(0, 2, 0, 0) self.m_label_user = wx.StaticText(self, wx.ID_ANY, u"User", wx.DefaultPosition, wx.DefaultSize, 0) self.m_label_user.Wrap(-1) self._sizer.Add(self.m_label_user, 0, wx.ALL, 5) self.m_text_user = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) self._sizer.Add(self.m_text_user, 0, wx.ALL, 5) self.m_label_pass = wx.StaticText(self, wx.ID_ANY, u"Pass", wx.DefaultPosition, wx.DefaultSize, 0) self.m_label_pass.Wrap(-1) self._sizer.Add(self.m_label_pass, 0, wx.ALL, 5) self.m_text_pass = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) self._sizer.Add(self.m_text_pass, 0, wx.ALL, 5) self.m_button_push = wx.Button(self, wx.ID_ANY, u"Push", wx.DefaultPosition, wx.DefaultSize, 0) self._sizer.Add(self.m_button_push, 0, wx.ALL, 5) self.m_button_pull = wx.Button(self, wx.ID_ANY, u"Pull", wx.DefaultPosition, wx.DefaultSize, 0) self._sizer.Add(self.m_button_pull, 0, wx.ALL, 5) self.SetSizer(self._sizer) self.Layout() self.Centre(wx.BOTH) # Connect Events self.m_button_push.Bind(wx.EVT_BUTTON, self.m_button_push_on_button_click) self.m_button_pull.Bind(wx.EVT_BUTTON, self.m_button_pull_on_button_click)
def _text_search_panel(self): panel = wx.Panel(self._notebook) panel.SetSizer(VerticalSizer()) self._add_search_control(panel) self.tests = _TestSearchListModel([]) self.tests_list = VirtualList(panel, ['Test', 'Tags', 'Source'], self.tests) self.tests_list.add_selection_listener(self._select_text_search_result) panel.Sizer.add_expanding(self.tests_list) self._fuzzy_results_text = wx.StaticText(panel, -1, 'Results: ') panel.Sizer.Add(self._fuzzy_results_text, 0, wx.ALL, 3) return panel
def __init__(self, name, usages=None): self._name = name self._selection_listeners = [] title = "'%s'" % (name) Dialog.__init__(self, title=title, size=(650, 400)) self.SetSizer(VerticalSizer()) self._add_view_components() self.usages = usages or UsagesListModel([]) self.usage_list = VirtualList(self, self.usages.headers, self.usages) self.usage_list.add_selection_listener(self._usage_selected) self.Sizer.add_expanding(self.usage_list)
def _add_search_control(self, panel): panel.SetSizer(VerticalSizer()) line1 = self._horizontal_sizer() self._add_pattern_filter(line1, panel) fuzzy_search_button = wx.Button(panel, label='Search') fuzzy_search_button.Bind(wx.EVT_BUTTON, self.OnSearchTests) line1.Add(fuzzy_search_button) add_to_selection_button = wx.Button(panel, label='Add all to selected') add_to_selection_button.Bind(wx.EVT_BUTTON, self.OnAddToSelected) line1.Add(add_to_selection_button) panel.Sizer.Add(line1, 0, wx.ALL, 3) panel.Sizer.Add(self._add_info_text(panel, "Find matches by test name, documentation and/or tag."), 0, wx.ALL, 3)
def __init__(self, fuzzy_search_handler, tag_search_handler, add_to_selected_handler): self._fuzzy_search_handler = fuzzy_search_handler self._tag_search_handler = tag_search_handler self._add_to_selected_handler = add_to_selected_handler self._selection_listeners = [] title = "Search Tests" Dialog.__init__(self, title=title, size=(750, 400)) # set Left to Right direction (while we don't have localization) self.SetLayoutDirection(wx.Layout_LeftToRight) self.SetSizer(VerticalSizer()) self.Sizer.Add(self._create_notebook(), 1, wx.ALL | wx.EXPAND | wx.ALIGN_LEFT, 3)
def __init__(self, name, usages=None): self._name = name self._selection_listeners = [] title = "'%s'" % (name) Dialog.__init__(self, title=title, size=(650, 400)) # set Left to Right direction (while we don't have localization) self.SetLayoutDirection(wx.Layout_LeftToRight) self.SetSizer(VerticalSizer()) self._add_view_components() self.usages = usages or UsagesListModel([]) self.usage_list = VirtualList(self, self.usages.headers, self.usages) self.usage_list.add_selection_listener(self._usage_selected) self.Sizer.add_expanding(self.usage_list)
def _create_ui(self, title): cnt = self._parent.GetPageCount() if cnt >= 0: editor_created = False while cnt > 0 and not editor_created: cnt -= 1 editor_created = self._parent.GetPageText( cnt ) == self._title # TODO: Later we can adjust for several Text Editor tabs if not editor_created: self.SetSizer(VerticalSizer()) self._create_editor_toolbar() self._create_editor_text_control() self._parent.add_tab(self, title, allow_closing=False)
def __init__(self, parent, settings): super(PreferencesPanel, self).__init__(parent) self.SetSizer(VerticalSizer()) self._settings = [ Setting( settings, 'auto imports', 'Comma separated list of libraries to be automatically imported.' ), Setting( settings, 'pythonpath', 'Comma separated list of directories to be added to PYTHONPATH when libraries are searched.' ) ] for s in self._settings: self._create_editor(s)
class _UsageDialog(Dialog): _width = 650 _height = 250 def __init__(self, usages, title, checkbox_label, model=ResourceImportListModel): Dialog.__init__(self, title, size=(self._width, self._height)) # set Left to Right direction (while we don't have localization) self.SetLayoutDirection(wx.Layout_LeftToRight) self._sizer = VerticalSizer() self._create_controls(usages, checkbox_label, model) self._create_horizontal_line(self._sizer) self._create_buttons(self._sizer) self.SetSizer(self._sizer) def _create_controls(self, usages, checkbox_label, model): self._sizer.add_with_padding(Label(self, label="Usages:")) model = model(usages) self._sizer.add_expanding(VirtualList(self, model.headers, model)) self._add_usages_modifying_help(usages) self._checkbox = wx.CheckBox(self, label=checkbox_label) self._checkbox.SetValue(True) self._sizer.add_with_padding(self._checkbox) def _add_usages_modifying_help(self, usages): if any(u for u in usages if not u.can_be_renamed): help = Label( self, label='Highlighted imports are not modified because they ' 'contain variables in resource file name.') help.Wrap(self._width) help.SetForegroundColour('red') self._sizer.add_with_padding(help) def show(self): confirmed = self.ShowModal() == wx.ID_OK return confirmed, self._checkbox.IsChecked()
def __init__(self, title, content): Dialog.__init__(self, title) szr = VerticalSizer() szr.add_expanding(HtmlWindow(self, text=content, size=self.Size)) self.SetSizer(szr)
class RepositorySettingsDialog(Dialog): _width = 650 _height = 250 __repositories = ["git", "bitbucket"] def __init__(self, controller): self._user_name = "Admin" self._password = "" self._server_list = "" self._repository_list = "" self._repository_type = self.__repositories[0] self._controller = controller title = 'Repository settings' Dialog.__init__(self, title, size=(self._width, self._height)) self._sizer = VerticalSizer() # self._add_server_list(self, self._sizer) # self._add_repository_list(self, self._sizer) # self._sizer = wx.GridSizer(0, 2, 0, 0) self.m_label_user = wx.StaticText(self, wx.ID_ANY, u"User", wx.DefaultPosition, wx.DefaultSize, 0) self.m_label_user.Wrap(-1) self._sizer.Add(self.m_label_user, 0, wx.ALL, 5) self.m_text_user = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) self._sizer.Add(self.m_text_user, 0, wx.ALL, 5) self.m_label_pass = wx.StaticText(self, wx.ID_ANY, u"Pass", wx.DefaultPosition, wx.DefaultSize, 0) self.m_label_pass.Wrap(-1) self._sizer.Add(self.m_label_pass, 0, wx.ALL, 5) self.m_text_pass = wx.TextCtrl(self, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, 0) self._sizer.Add(self.m_text_pass, 0, wx.ALL, 5) self.m_button_push = wx.Button(self, wx.ID_ANY, u"Push", wx.DefaultPosition, wx.DefaultSize, 0) self._sizer.Add(self.m_button_push, 0, wx.ALL, 5) self.m_button_pull = wx.Button(self, wx.ID_ANY, u"Pull", wx.DefaultPosition, wx.DefaultSize, 0) self._sizer.Add(self.m_button_pull, 0, wx.ALL, 5) self.SetSizer(self._sizer) self.Layout() self.Centre(wx.BOTH) # Connect Events self.m_button_push.Bind(wx.EVT_BUTTON, self.m_button_push_on_button_click) self.m_button_pull.Bind(wx.EVT_BUTTON, self.m_button_pull_on_button_click) def __del__(self): pass def _execute(self): pass # Virtual event handlers, overide them in your derived class def m_button_push_on_button_click(self, event): self._execGitCommand('git push -f') def m_button_pull_on_button_click(self, event): self._execGitCommand('git pull -f') # def show(self): # confirmed = self.ShowModal() == wx.ID_OK # return confirmed, self._checkbox.IsChecked() def _add_server_list(self, sizer): buttons = self.CreateStdDialogButtonSizer(wx.OK | wx.CANCEL) sizer.Add(buttons, flag=wx.ALIGN_CENTER | wx.ALL, border=5) def _execGitCommand(self, command): pr = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) msg = pr.stdout.read() err = pr.stderr.read() #HB Todo: show message and count errors
def _create_ui(self, title): self.SetSizer(VerticalSizer()) self._create_editor_toolbar() self._create_editor_text_control() self._parent.add_tab(self, title, allow_closing=False)