Esempio n. 1
0
    def __search_changed(self, entry: Gtk.SearchEntry):
        """
            Handles search-changed signal.
        """
        def filter_func(row, data, *_):
            """
                Filter function
            """
            data = data.lower()
            if len(data) > 0:
                username = row.account.username.lower()
                provider_name = row.account.provider.name.lower()
                return (data in username or data in provider_name)
            else:
                return True

        data = entry.get_text().strip()
        search_lists = AccountsWidget.get_default().accounts_lists
        results_count = 0
        for search_list in search_lists:
            search_list.set_filter_func(filter_func, data, False)
            for elem in search_list:

                if elem.get_child_visible():
                    results_count += 1

        if results_count == 0:
            self.accounts_stack.set_visible_child_name("empty_results")
        else:
            self.accounts_stack.set_visible_child_name("accounts")
    def on_search_down_button_clicked(self, widget: Gtk.Button,
                                      search: Gtk.SearchEntry):
        view = self._explorerscript_view
        context = self._explorerscript_search_context
        if search == self._ssb_script_search:
            view = self._ssb_script_view
            context = self._ssb_script_search_context
        buffer: Gtk.TextBuffer = view.get_buffer()

        settings: GtkSource.SearchSettings = context.get_settings()
        settings.set_search_text(search.get_text())
        cursor = buffer.get_iter_at_offset(buffer.props.cursor_position)
        found, match_start, match_end, wrap = context.forward2(cursor)
        if found:
            if match_start.get_offset() == cursor.get_offset():
                # Repeat once, to really get down
                found, match_start, match_end, wrap = context.forward2(
                    match_end)
            if found:
                buffer.select_range(match_start, match_end)
                if buffer == self._ssb_script_view.get_buffer():
                    self._ssb_script_view.scroll_to_iter(
                        match_start, 0.1, False, 0.5, 0.5)
                else:
                    self._explorerscript_view.scroll_to_iter(
                        match_start, 0.1, False, 0.5, 0.5)
Esempio n. 3
0
    def search_changed(self, sender: Gtk.SearchEntry):
        self.result_store.remove_all()

        search_text = sender.get_text().strip()

        if not search_text:
            return

        documents = storage.find(search_text=search_text)
        for document in documents:
            self.result_store.append(document)
Esempio n. 4
0
    def searchIt(self, search_entry: SearchEntry) -> None:
        """
        Searchs over the _subtitles_liststore.

        :return:
        """

        term_searched: str = search_entry.get_text()

        for i, term in enumerate(self._subtitles_liststore):
            if term_searched and term_searched in term[1].lower():
                self._subtitles_treeview.set_cursor(i)
                break
Esempio n. 5
0
    def _setSearchEntry(self) -> None:
        """
        Connect the changed event for the search_entry object.

        :return:
        """

        search_entry: SearchEntry = SearchEntry()
        search_entry.set_halign(Align.END)

        setMargin(search_entry, 0, 5, 0, 5)

        self._subtitles_grid.attach(search_entry, 0, 0, 1, 1)

        search_entry.connect('changed', self.searchIt)
Esempio n. 6
0
    def _on_response_filter_changed(self, entry: Gtk.SearchEntry):
        filter_text = entry.get_text()
        if filter_text == '':
            self._set_response_text()

        ct = get_content_type(self.last_response)
        try:
            if ct == 'application/json':
                path_expr = jsonpath_rw.parse(filter_text)
                j = self.last_response.json()
                match_text = json.dumps(
                    [match.value for match in path_expr.find(j)],
                    indent=4) or 'No matches found'
                self.response_text.get_buffer().set_text(match_text)
            elif ct in {'text/xml', 'application/xml'}:
                root = etree.fromstring(self.last_response.text)
                matches = root.xpath(filter_text)
                matches_root = etree.Element('matches')
                for m in matches:
                    matches_root.append(m)

                matches_html = etree.tostring(matches_root,
                                              encoding='unicode',
                                              pretty_print=True)
                self.response_text.get_buffer().set_text(matches_html)
            elif ct == 'text/html':
                root = html.fromstring(self.last_response.text)
                matches = root.xpath(filter_text)
                matches_root = etree.Element('matches')
                for m in matches:
                    matches_root.append(m)

                matches_html = etree.tostring(matches_root,
                                              encoding='unicode',
                                              pretty_print=True)
                self.response_text.get_buffer().set_text(matches_html)
            else:
                log.warning(
                    'Got unexpected content type %s when filtering response.',
                    ct)
        except Exception as e:
            log.debug('Failed to filter response json %s', e)
    def on_search_entry_search_changed(self, widget: Gtk.SearchEntry):
        view = self._explorerscript_view
        context = self._explorerscript_search_context
        if widget == self._ssb_script_search:
            view = self._ssb_script_view
            context = self._ssb_script_search_context
        buffer: Gtk.TextBuffer = view.get_buffer()

        settings: GtkSource.SearchSettings = context.get_settings()
        settings.set_search_text(widget.get_text())
        found, match_start, match_end = context.forward2(
            buffer.get_iter_at_offset(buffer.props.cursor_position))[:3]
        if found:
            buffer.select_range(match_start, match_end)
            if buffer == self._ssb_script_view.get_buffer():
                self._ssb_script_view.scroll_to_iter(match_start, 0.1, False,
                                                     0.5, 0.5)
            else:
                self._explorerscript_view.scroll_to_iter(
                    match_start, 0.1, False, 0.5, 0.5)
Esempio n. 8
0
    def object_new_selected_cb(self, popover, property):
        parent = popover.get_relative_to()
        parent.set_text("")
        self.actions.set_visible(False)
        self.button.set_visible(True)
        if parent.get_name() == "qualifier_new":
            if property['URI'] in self.qualifier_pos:
                pos = self.qualifier_pos[property['URI']]
                N = pos['start'] + pos['end']
                child = self.qualifiers.get_child_at(1, N)
                position = PositionType(3)
                self.qualifiers.insert_next_to(child, PositionType(3))
                pos['end'] += 1
                for uri in self.qualifier_pos:
                    q_pos = self.qualifier_pos[uri]
                    if q_pos['start'] > pos['start']:
                        q_pos['start'] += 1
            else:
                qualifier = QualifierProperty(property)
                N = self.get_grid_rows(self.qualifiers)
                self.qualifiers.attach(qualifier, 0, N, 1, 1)
                child = qualifier
                position = PositionType(1)

            qualifier_value = SearchEntry()
            context = qualifier_value.get_style_context()
            resource = '/ml/prevete/Daty/gtk/entity.css'
            set_style(context, resource, 'flat', True)
            qualifier_value.props.secondary_icon_activatable = True
            qualifier_value.set_visible(True)
            qualifier_value.set_name("qualifier_new_value")
            qualifier_value.set_placeholder_text("Search to add the value")
            qualifier_value.connect("icon-press",
                                    self.object_new_icon_press_cb, position)
            qualifier_value.connect("focus-in-event",
                                    self.object_new_focus_in_event_cb)
            qualifier_value.connect("focus-out-event",
                                    self.object_new_focus_out_event_cb)
            self.qualifiers.attach_next_to(qualifier_value, child, position, 2,
                                           1)

            qualifier_value.grab_focus()
        if parent.get_name() == "qualifier_new_value":
            print("hi, I am a new qualifier value")
Esempio n. 9
0
 def on_main_item_list_search_search_changed(self, search: Gtk.SearchEntry):
     """Filter the main item view using the search field"""
     self._search_text = search.get_text().strip()
     self._filter__refresh_results()
Esempio n. 10
0
 def on_search_search_changed(self, search: Gtk.SearchEntry):
     self._search_text = search.get_text()
     self._filter.refilter()
Esempio n. 11
0
 def search(self, entry: Gtk.SearchEntry) -> None:
     query = entry.get_text()
     self.populate(query)