def _setSelectAll(self) -> None: """ Sets up widgets to select all sentences. :return: """ grid: Grid = Grid() grid.set_halign(Align.END) self._subtitles_grid.attach(grid, 0, 2, 1, 1) lbl: Label = Label(label='Select all') setMargin(lbl, 5) grid.attach(lbl, 0, 0, 1, 1) all_vid_toggle: CheckButton = CheckButton() all_vid_toggle.set_halign(Align.CENTER) all_vid_toggle.connect('toggled', self._onAllVideosToggled) setMargin(all_vid_toggle, 5) grid.attach(all_vid_toggle, 1, 0, 1, 1) lbl2: Label = Label(label='Videos') setMargin(lbl2, 5) grid.attach(lbl2, 1, 1, 1, 1) all_audio_toggle: CheckButton = CheckButton() all_audio_toggle.set_halign(Align.CENTER) all_audio_toggle.connect('toggled', self._onAllAudiosToggled, all_vid_toggle) setMargin(all_audio_toggle, 5) grid.attach(all_audio_toggle, 2, 0, 1, 1) lbl3: Label = Label(label='Audios') setMargin(lbl3, 5) grid.attach(lbl3, 2, 1, 1, 1) all_img_toggle: CheckButton = CheckButton() all_img_toggle.set_halign(Align.CENTER) all_img_toggle.connect('toggled', self._onAllImagesToggled) setMargin(all_img_toggle, 5) grid.attach(all_img_toggle, 3, 0, 1, 1) lbl4: Label = Label(label='Snapshot') setMargin(lbl4, 5) grid.attach(lbl4, 3, 1, 1, 1)
def set_selection_mode(self, value): """Toggle selection mode Args: value (bool): if True, activates selection mode. """ # Titlebar self.titlebar.set_selection_mode(value) # New entity button self.entity_open.set_visible(not value) # Entities search button self.entities_search.set_visible(value) # App menu self.app_menu.set_visible(not value) # Select button self.entities_select.set_visible(not value) # Cancel selection button self.cancel_entities_selection.set_visible(value) # Sidebar self.sidebar_list.set_selection_mode(value) if value: self.column_separator = Separator() self.common = Label(label="common") self.content_box.add(self.column_separator) self.content_box.add(self.common) self.content_box.show_all() else: self.content_box.remove(self.column_separator) self.content_box.remove(self.common)
def __init__(self, win, parser='rst', writer='html4', style=''): super(Renderer, self).__init__() self.webview = WebView() self.webview.connect("mouse-target-changed", self.on_mouse) self.webview.connect("context-menu", self.on_context_menu) self.webview.connect("button-release-event", self.on_button_release) self.add(self.webview) controller = self.webview.get_find_controller() self.search_done = None controller.connect("found-text", self.on_found_text) controller.connect("failed-to-find-text", self.on_faild_to_find_text) self.label = Label() self.label.set_halign(Align.START) self.label.set_valign(Align.END) self.add_overlay(self.label) self.link_uri = None self.context_button = 3 # will be rewrite by real value self.set_writer(writer) self.set_parser(parser) self.style = style self.tab_width = 8 self.__win = win
def add_tab(self, widget, tab_name, label): """Adds a tab object to the notebook.""" log.debug('add tab: %s', tab_name) self.tabs[tab_name] = widget scrolled = ScrolledWindow() scrolled.set_policy(PolicyType.AUTOMATIC, PolicyType.AUTOMATIC) scrolled.add(widget) self.notebook.insert_page(scrolled, Label(label=label), -1) scrolled.show_all() self.after_update()
def _setLabels(self) -> None: """ Setup the labels for the grid. :return: """ labels: List[Label] = [ Label(label='collection.anki2 File (Required):'), Label(label='Video (Required):'), Label(label='Subtitle File with The Target Language (Required):'), Label(label='Subtitle File with Translation (Optional):'), Label(label='Deck Name (Required):') ] for (idx, lbl) in enumerate(labels): lbl.set_halign(Align.START) # Grid.attach(child, left, top, width, height) self._fst_grid.attach(lbl, 0, idx, 1, 1)
def make_group(self, group_label, widget, add_widget_to_size_group=True): self.size_groups = getattr(self, "size_groups", [SizeGroup.new(SizeGroupMode.HORIZONTAL) for x in range(2)]) box = SettingsWidget() label = Label() label.set_markup(group_label) label.props.xalign = 0.0 self.size_groups[0].add_widget(label) box.pack_start(label, False, False, 0) if add_widget_to_size_group: self.size_groups[1].add_widget(widget) box.pack_end(widget, False, False, 0) return box
def languages_callback(self, results): languages = self.config.data['languages'] self.language_results = results['results']['bindings'] for lang in languages: for r in self.language_results: if r['c']['value'] == lang: row = ListBoxRow() label = Label() label.set_text(r['itemLabel']['value']) label.props.halign = Align(1) row.add(label) self.languages.add(row) self.languages.show_all()
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()
def __init__(self, *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.credentials.set_header_func(self.update_header) self.languages.set_header_func(self.update_header) for key in self.config.data['credentials']: row = ListBoxRow() grid = Grid() grid.props.column_homogeneous = True label = Label() label.set_text(key) label.props.halign = Align(1) context = label.get_style_context() resource = "/ml/prevete/Daty/gtk/value.css" set_style(context, resource, "dim-label", True) entry = Entry() entry.set_text(self.config.data['credentials'][key]) context = entry.get_style_context() set_style(context, resource, "flat", True) grid.attach(label, 0, 0, 1, 1) grid.attach(entry, 1, 0, 2, 1) row.add(grid) self.credentials.add(row) self.credentials.show_all() query = """SELECT ?item ?itemLabel ?c { ?item wdt:P424 ?c . MINUS{?item wdt:P31/wdt:P279* wd:Q14827288} #exclude Wikimedia projects MINUS{?item wdt:P31/wdt:P279* wd:Q17442446} #exclude Wikimedia internal stuff SERVICE wikibase:label { bd:serviceParam wikibase:language "your_first_language". } } """ query = sub("your_first_language", self.config.data['languages'][0], query) self.retrieve(query, self.languages_callback)
def __init__(self, parent: Window): super().__init__(title='Warning - Anki is open', transient_for=parent) self.set_default_size(width=250, height=100) self.set_modal(True) self.set_keep_above(True) self.set_decorated(False) self.set_urgency_hint(True) lbl: Label = Label( label= 'Warning: your anki is probably opened, please close it before trying again.' ) box: Box = self.get_content_area() setMargin(box, 20) # box.pack_(child, expand, fill, padding) box.pack_start(lbl, False, True, 0) img_path: Filepath = path.abspath('asts/Icons/alert.png') try: warn_pixbuf: Pixbuf = Pixbuf().new_from_file_at_scale( img_path, 50, 50, True) warn_img: Image = Image().new_from_pixbuf(warn_pixbuf) box.pack_start(warn_img, False, True, 0) setMargin(warn_img, 20) except GLib_Error: exit(f'{img_path} file not found. Failed to create pixbuf.') self.add_buttons(STOCK_OK, ResponseType.OK)
def on_selection_changed(self, icon_view, album=None): popup = Popover.new(self.albumview) popup.set_size_request(810, 240) if album is None: selection = icon_view.get_selected_items() if len(selection) != 1: return path = selection[0] treeiter = self.albumfilter.get_iter(path) isset, path, cell = icon_view.get_cursor() isset, rect = icon_view.get_cell_rect(path, cell) popup.set_pointing_to(rect) album_id = self.albumfilter.get_value(treeiter, 4) album_obj = self.albums[album_id] else: album_obj = album popup.set_relative_to(self.search_entry) # Handle double clicks def empty_dblclick(): self.dblclick = None if self.dblclick is None: self.dblclick = album_obj timeout_add(1000, empty_dblclick) elif self.dblclick == album_obj: self.play(album_obj) return album = album_obj.name artist = album_obj.artist glade_album = join(self.functions.datadir, 'glade', 'albumview.ui') box = gtk_builder() box.set_translation_domain('bluemindo') box.add_from_file(glade_album) popup.add(box.get_object('box1')) box.get_object('label_album').set_text(album) box.get_object('label_artist').set_text(artist) bdir = join(self.userconf.datadir, 'modules', 'player', 'covers') cover = join(bdir, self.functions.get_hash(album, artist)) if isfile(cover): cover_px = Pixbuf.new_from_file_at_scale(cover, 180, 180, True) else: cover_px = Pixbuf.new_from_file(join(self.functions.datadir, 'image', 'logo_head_big.png')) box.get_object('album_cover').set_from_pixbuf(cover_px) def play_album(wdg, album): self.play(album) def queue_album(wdg, album): self.queue(album) def change_cover(wdg, ka, album): artist_name = album.artist album_name = album.name fcdialog = FileChooserDialog( title=_('Change the cover picture for this album'), buttons=(_('Select'), ResponseType.OK)) fcdialog.set_transient_for(self.widgets[0][11]) response = fcdialog.run() if response == ResponseType.OK: filename = fcdialog.get_filename() datadir = self.userconf.datadir hash_a = self.functions.get_hash(album_name, artist_name) pictures_dir = join(datadir, 'modules', 'player', 'covers') album_file = join(pictures_dir, hash_a) copyfile(filename, album_file) new = Pixbuf.new_from_file_at_scale(album_file, 180, 180, True) box.get_object('album_cover').set_from_pixbuf(new) fcdialog.destroy() box.get_object('button_play').connect('clicked', play_album, album_obj) box.get_object('button_add').connect('clicked', queue_album, album_obj) box.get_object('coverevent').connect('button-press-event', change_cover, album_obj) i = 0 a = -1 previous_column = 0 grid_songs = box.get_object('grid_songs') grid_songs.set_size_request(-1, 200) grid_songs.set_column_spacing(5) try: kids = grid_songs.get_children() for kid in kids: grid_songs.remove(kid) except IndexError: pass for song in album_obj.tracks: i += 1 a += 1 def queue(wdg, song): self.queue(song) def play(wdg, song): self.play(song) song_wdg = Box(spacing=0) song_btr = Button() song_btr.connect('clicked', play, song) song_btr.set_relief(ReliefStyle.NONE) song_btr_content = Box(spacing=0) song_btr.add(song_btr_content) song_tr = Label() song_tr.set_markup('<span foreground="grey">' + str(song.track) + '</span>') song_tr.set_width_chars(3) song_btr_content.pack_start(song_tr, False, True, 0) song_ti = Label() song_ti.set_markup('<b>' + self.functions.view_encode(song.title, 22) + '</b>') song_ti.set_alignment(0.0, 0.5) song_ti.set_size_request(190, -1) song_btr_content.pack_start(song_ti, False, False, 0) length = self.functions.human_length(song.length) song_le = Label() song_le.set_markup('<span foreground="grey">' + length + '</span>') song_le.set_width_chars(5) song_btr_content.pack_start(song_le, False, True, 0) song_wdg.pack_start(song_btr, False, False, 0) song_add = Button.new_from_icon_name('list-add-symbolic', 0) song_add.set_property('relief', 2) song_add.set_size_request(14, 14) song_add.connect('clicked', queue, song) song_wdg.pack_start(song_add, False, False, 0) if i <= len(album_obj.tracks)/2: column = 0 previous_column = 0 row = a else: if previous_column == 0: a = 0 column = 1 previous_column = 1 row = a grid_songs.attach(song_wdg, column, row, 1, 1) popup.show_all()
def addPage(self,textBuffer,pageTitle): print "INSIDE_ADD_PAGE" caption=_("Untitled"+str(self.counter)) #add hbox self.hbox=Gtk.HBox(); self.hbox.show(); #create text_buffer self.sourceBuffer= GtkSource.Buffer() #add textview self.textview=GtkSource.View() self.textview.set_buffer(self.sourceBuffer) self.textview.set_show_line_numbers(True) self.textview.set_show_line_marks(True) self.textview.set_size_request(250,400) self.setLanguage(self.textview) #check for textBuffer passed as param if textBuffer!=None: #set the textbuffer data to editor start, end = textBuffer.get_bounds() self.sourceBuffer.set_text(textBuffer.get_text(start, end, True)) #add vpane self.vpane=Gtk.VPaned(); #add scroll to text view self.scroll=Gtk.ScrolledWindow(); self.scroll.set_policy(Gtk.PolicyType.NEVER,Gtk.PolicyType.AUTOMATIC); self.scroll.add_with_viewport(self.textview) self.scroll.set_size_request(250,400) self.scroll.show() self.vpane.add(self.scroll) #add scroll to text view self.opScroll= Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) #create Vte Terminal self.vteObject=Vte.Terminal() self.opScroll.pack_start(self.vteObject, True, True, 0) self.outsb = Gtk.Scrollbar(orientation=Gtk.Orientation.VERTICAL) self.outsb.set_adjustment(self.vteObject.get_vadjustment()) self.outsb.show() self.opScroll.pack_start(self.outsb, False, False, 0) self.vteObject.set_colors(Gdk.color_parse('#000000'),Gdk.color_parse('#E7E7E7'),[]) self.vteObject.set_size_request(200,200) self.vteObject.show() #self.opScroll.set_size_request(250,200) self.opScroll.show() print "VTE_KARTIK:",self.vteObject.get_vadjustment() self.vpane.add(self.opScroll) self.vpane.show() self.hbox.pack_start(self.vpane,True,True,0) self.textview.show() #attach text-change listener for buffer self.attachTextChangedListener(self.hbox) self.hbox.set_size_request(250, 300) #if pageTitle is none then give a Untitled caption if pageTitle==None: self.newlabel=Label(caption) else: self.newlabel=Label(pageTitle) #self.newlabel.set_size_request(75,30) self.resizeLabel(self.newlabel) self.newlabel.show() self.notebook.append_page(self.hbox,self.newlabel) #assigning notebook page for the filename #self.pageMap[self.newlabel.get_text()]=self.hbox self.addPageToPageMap(self.newlabel.get_text(),self.hbox) self.counter=self.counter+1 print "Curr :",self.pageMap self.selectFileNamePage(self.newlabel.get_text())
def _setSentenceRelated(self) -> None: """ Sets up the sentence editing widgets related. Also initialize both text buffers. :return: """ box: Box = Box() self._main_box.pack_start(box, False, True, 0) box.set_orientation(Orientation.VERTICAL) setMargin(box, 5) toolbar: Toolbar = Toolbar() box.pack_start(toolbar, False, True, 0) toolbar.set_halign(Align.END) setMargin(toolbar, 5) lbl: Label = Label() lbl.set_markup('<i><b>Front</b></i>') box.pack_start(lbl, False, True, 0) lbl.set_halign(Align.START) setMargin(lbl, 5) scrl_wnd: ScrolledWindow = ScrolledWindow() scrl_wnd.set_hexpand(True) scrl_wnd.set_vexpand(True) textview: TextView = TextView() scrl_wnd.add(textview) box.pack_start(scrl_wnd, False, True, 0) self._textbuffer_front = textview.get_buffer() lbl2: Label = Label() lbl2.set_halign(Align.START) lbl2.set_markup('<i><b>Back</b></i>') box.pack_start(lbl2, False, True, 0) setMargin(lbl2, 5) scrl_wnd2: ScrolledWindow = ScrolledWindow() scrl_wnd2.set_hexpand(True) scrl_wnd2.set_vexpand(True) textview2: TextView = TextView() scrl_wnd2.add(textview2) box.pack_end(scrl_wnd2, False, True, 0) self._textbuffer_back = textview2.get_buffer() # this depends on the text buffer to be initialized self._setToolbarColorButton(toolbar) toolbar.insert(SeparatorToolItem(), 3) self._setToolbarUnderlineButton(toolbar) self._setToolbarBoldButton(toolbar) self._setToolbarItalicButton(toolbar) toolbar.insert(SeparatorToolItem(), 7) self._setToolbarTagRemoverButton(toolbar)