Beispiel #1
0
 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
Beispiel #2
0
 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
Beispiel #3
0
 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
Beispiel #6
0
 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)
Beispiel #8
0
 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)
Beispiel #9
0
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()
Beispiel #10
0
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)
Beispiel #11
0
 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)
Beispiel #12
0
 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)
Beispiel #13
0
 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)
Beispiel #14
0
 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)
Beispiel #16
0
 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
Beispiel #17
0
 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)
Beispiel #18
0
 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)
Beispiel #19
0
 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)
Beispiel #21
0
 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)
Beispiel #22
0
 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
Beispiel #26
0
 def __init__(self, title, content):
     Dialog.__init__(self, title)
     szr = VerticalSizer()
     szr.add_expanding(HtmlWindow(self, text=content, size=self.Size))
     self.SetSizer(szr)
Beispiel #27
0
 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)