예제 #1
0
    def on_row_complete(self, entity, **kwargs):

        # Build entity
        if not entity['Label']:
            entity['Label'] = self.wikidata.get_label(entity['Data'], language='en')
        if not entity['Description']:
            entity['Description'] = self.wikidata.get_description(entity['Data'])

        sidebar_entity = SidebarEntity(entity, description=True, URI=True)
        sidebar_entity.button.connect("clicked", self.entity_close_clicked_cb,
                                      sidebar_entity)

        row = ListBoxRow()
        row.child = sidebar_entity

        row.add(sidebar_entity)

        current_row = self.sidebar_list.get_selected_row()
        rows = self.sidebar_list.get_children()
        i = 0
        for i, r in enumerate(rows):
            if r == current_row:
                break
        if (i < len(rows) - 2):
            self.sidebar_list.insert(row, i+1)
        else:
            self.sidebar_list.add(row)
        self.sidebar_list.show_all()
        if 'select' in kwargs and kwargs['select']:
            self.sidebar_list.select_row(row)
예제 #2
0
    def on_search_done(self, results, error, query):
        if error:
            self.set_search_placeholder(False)
            self.results.set_visible_child_name("results_no_internet")
            print("connection error")
        else:
            if query == self.search_entry.get_text():
                self.results_listbox.foreach(self.results_listbox.remove)

                if results == []:
                    self.results.set_visible_child_name("results_nope")
                    set_text(self.results_nope_query, query, query)
                else:
                    self.results.set_visible_child_name("results_scrolled_window")
                for r in results:
                    if self.titlebar.get_selection_mode():
                        entity = EntitySelectable(r,
                                              selected=self.entities,
                                              open_button=self.open_button,
                                              select_entities=self.select_entities)
                    else:
                        entity = SidebarEntity(r, button=False)
                    row = ListBoxRow()
                    row.child = entity
                    row.add(entity)
                    self.results_listbox.add(row)
                #row.child()
                self.results_listbox.show_all()
                self.set_search_placeholder(False)
예제 #3
0
    def on_search_done(self, results, error, query, entry, *args, **kwargs):
        if query == entry.get_text():
            print("EntityPopover: search", query, 'complete')
            try:
                listbox = self.results_listbox
                listbox.foreach(listbox.remove)
                set_text(self.variable_title, query, query)
                pango_label(self.variable_title, 'bold')
                if self.variables != None:
                    self.variables_set_results(listbox, query=query)
                if self.variables or results:
                    self.results_stack.set_visible_child_name("results")
                else:
                    set_text(self.results_nope_query, query, query)
                    self.entity_new.connect("clicked", self.entity_new_clicked_cb, query)
                    self.results_stack.set_visible_child_name("results_nope")
                for r in results:
                    if r['URI'] != self.entity['URI']:
                        entity = SidebarEntity(r, URI=False, button=True)
                        entity.image_button.set_from_icon_name('focus-windows-symbolic', IconSize.BUTTON)
                        entity.button.connect("clicked", self.new_window_clicked_cb, r)

                        row = ListBoxRow()
                        row.child = entity
                        row.add(entity)
                        listbox.add(row)
                listbox.show_all()
                self.set_search_placeholder(False)
            except Exception as e:
                raise e
예제 #4
0
 def add(self, widget):
     row = ListBoxRow()
     context = row.get_style_context()
     widget.context = context
     widget.set_references()
     row.child = widget
     row.add(widget)
     super(Values, self).add(row)
예제 #5
0
 def on_download_done(self, URI, entity, error):
     if not entity:
         print("problematic URI", URI)
     else:
         entity = SidebarEntity(entity, button=False)
         row = ListBoxRow()
         row.child = entity
         row.add(entity)
         self.results_listbox.add(row)
         self.results_listbox.show_all()
예제 #6
0
    def __init__(self, languages, *args, **kwargs):
        Window.__init__(self, *args, **kwargs)

        icon = lambda x: IconTheme.get_default().load_icon((name), x, 0)
        icons = [icon(size) for size in [32, 48, 64, 96]]
        self.set_icon_list(icons)

        self.languages.set_header_func(self.update_header)
        for language in languages:
            row = ListBoxRow()
            label = Label()
            label.set_text(language['itemLabel']['value'])
            label.code = language['c']['value']
            row.child = label
            row.add(label)
            self.languages.add(row)
        self.languages.show_all()
예제 #7
0
    def variables_set_results(self, listbox, query=""):
        listbox.foreach(listbox.remove)
        if hasattr(self.variable_record, 'connection'):
            self.variable_record.disconnect(self.variable_record.connection)
        exact_match = [v for v in self.variables if v["Label"] == query]
        if exact_match:
            label = "Select variable"
            self.variable_record.connection = self.variable_record.connect("clicked",
                                                                           self.object_selected_cb,
                                                                           exact_match[-1])
            selected = any(v["Variable"] for v in exact_match)
            if selected:
                pango_label(self.variable_title, 'ultrabold')
        else:
            label = "Record new variable"
            self.variable_record.connection = self.variable_record.connect("clicked",
                                                                           self.variable_record_clicked_cb)
        set_text(self.variable_subtitle, label, label)

        for v in [v for v in self.variables if v["Label"] and "Variable" in v]:
            if query in v["Label"] and not query == v["Label"]:
                row = ListBoxRow()
                if query:
                    entity = SidebarEntity(v, URI=False)
                else:
                    entity = SidebarEntity(v, URI=False, button1=True)
                    entity.button1.connect("clicked", self.variable_row_set_default_clicked_cb,
                                           v)
                    entity.image_button1.set_from_icon_name('edit-select-symbolic',
                                                            IconSize.BUTTON)
                    entity.button1.set_tooltip_text("Select variable for the query")
                entity.button.connect("clicked", self.delete_variable_clicked_cb,
                                      row, v)
                entity.button.set_tooltip_text("Delete variable")
                row.child = entity
                if v["Variable"]:
                    pango_label(entity.label, 'ultrabold')
                    entity.label.props.attributes = None
                row.add(entity)
                listbox.add(row)
                listbox.show_all()