def __init__(self, totem): self._totem = totem self._dialog = DialogBox(self._totem, self) # Add sidebar GUI builder = Totem.plugin_load_interface ("lyrics-downloader", # "ui/sidebar.ui", True, self._totem.get_main_window (), self) # GUI objects self._container = builder.get_object ('lyrics_vbox') self._lyrics_buffer = builder.get_object('lyrics_text_buffer') self._get_button = builder.get_object('get_button') # Add sidebar to totem self._totem.add_sidebar_page ("lyrics-view", ("Lyrics view"), self._container) self._container.show_all() # Controlling supported files self._totem.connect ('file-opened', self.__on_totem__file_opened) self._totem.connect ('file-closed', self.__on_totem__file_closed) # Setup signals self._get_button.set_sensitive(self._totem.is_playing () and self._check_is_mp3()) self._get_button.connect('clicked', self._dialog.show_dialog)
def _build_dialog(self): """ Builds the main gui of the lyrics plugin Uses the lyrics-downloader.ui file to build the GUI """ builder = Totem.plugin_load_interface( "lyrics-downloader", "ui/lyrics-downloader.ui", True, self._totem.get_main_window(), self ) self._dialog = builder.get_object("lyrics_dialog") self._close_button = builder.get_object("close_button") self._apply_button = builder.get_object("apply_button") self._find_button = builder.get_object("find_button") self._tree_view = builder.get_object("lyrics_treeview") self._list_store = builder.get_object("lyrics_model") self._progress = builder.get_object("progress_bar") combobox = builder.get_object("server_combobox") servers = builder.get_object("server_model") self._apply_button.set_sensitive(False) # Setup the combobox renderer = Gtk.CellRendererText() sorted_servers = Gtk.TreeModelSort(model=servers) sorted_servers.set_sort_column_id(0, Gtk.SortType.ASCENDING) combobox.set_model(sorted_servers) combobox.pack_start(renderer, True) combobox.add_attribute(renderer, "text", 0) itera = servers.append(["Chart Lyrics", "1"]) servers.append(["Lyrdb", "2"]) success, parentit = sorted_servers.convert_child_iter_to_iter(itera) combobox.set_active_iter(parentit) # Set up the results treeview renderer = Gtk.CellRendererText() self._tree_view.set_model(self._list_store) # This is the title of the song column = Gtk.TreeViewColumn("Song", renderer, text=0) column.set_resizable(True) column.set_expand(True) self._tree_view.append_column(column) # This is the Artist of the song column = Gtk.TreeViewColumn("Artist", renderer, text=1) column.set_resizable(True) self._tree_view.append_column(column) # Set up signals combobox.connect("changed", self.__on_combobox__changed) self._close_button.connect("clicked", self.__on_close_clicked) self._dialog.connect("delete-event", self._dialog.hide_on_delete) self._dialog.set_transient_for(self._totem.get_main_window()) self._apply_button.connect("clicked", self.__on_apply_clicked) self._find_button.connect("clicked", self.__on_find_clicked) self._tree_view.connect("row-activated", self.__on_treeview__row_activate) # connect callbacks self._tree_view.get_selection().connect("changed", self.__on_treeview__row_change)
def do_activate(self): self.totem = self.object # bug, Tracker stuff should be async self.conn = Tracker.SparqlConnection.get (None) builder = Totem.plugin_load_interface ("musiclibrary", "musiclibrary.ui", True, self.totem.get_main_window (), self) container = builder.get_object ('root_window') self.music_store = builder.get_object ('music_tree_store') self.music_view = builder.get_object ('music_tree_view') container.show_all () self.totem.add_sidebar_page ("musiclibrary", "Music Library", container) GObject.idle_add(self.populate_artists) self.song_clicked = self.music_view.connect("row-activated", self._song_activated_cb)
def build(self): """ Build and obtain all the widgets we need to initialize """ builder = Totem.plugin_load_interface( "opensubtitles", "opensubtitles.ui", True, self.totem_object.get_main_window(), None) self.languages = [ builder.get_object('main_language'), builder.get_object('alt_language') ] self.language_model = builder.get_object('language_model') self.dialog = builder.get_object('subtitles_dialog') self.progress = builder.get_object('progress_bar') self.tree_view = builder.get_object('subtitle_treeview') self.list_store = builder.get_object('subtitle_model') self.find_button = builder.get_object('find_button') self.apply_button = builder.get_object('apply_button') self.close_button = builder.get_object('close_button')
def do_activate(self): """ Plugin activation. """ self.totem = self.object # Initialise the interface builder = Totem.plugin_load_interface ("jamendo", "jamendo.ui", True, self.totem.get_main_window (), self) self.popup = builder.get_object('popup_menu') container = builder.get_object('container') self.notebook = builder.get_object('notebook') self.search_entry = builder.get_object('search_entry') self.search_combo = builder.get_object('search_combo') self.search_combo.set_active(0) self.album_button = builder.get_object('album_button') self.previous_button = builder.get_object('previous_button') self.next_button = builder.get_object('next_button') self.progressbars = [ builder.get_object('results_progressbar'), builder.get_object('popular_progressbar'), builder.get_object('latest_progressbar'), ] self.treeviews = [ builder.get_object('results_treeview'), builder.get_object('popular_treeview'), builder.get_object('latest_treeview'), ] self.setup_treeviews() # Set up signals builder.get_object('search_button').connect('clicked', self.on_search_button_clicked) self.search_entry.connect('activate', self.on_search_entry_activate) self.notebook.connect('switch-page', self.on_notebook_switch_page) self.previous_button.connect('clicked', self.on_previous_button_clicked) self.next_button.connect('clicked', self.on_next_button_clicked) self.album_button.connect('clicked', self.on_album_button_clicked) builder.get_object('add_to_playlist').connect('activate', self.on_add_to_playlist_activate) builder.get_object('jamendo_album_page').connect('activate', self.on_open_jamendo_album_page_activate) self.reset() container.show_all() self.totem.add_sidebar_page("jamendo", _(u"Jamendo"), container)
def do_activate (self): self.totem = self.object # Build the interface builder = Totem.plugin_load_interface ("iplayer", "iplayer.ui", True, self.totem.get_main_window (), self) container = builder.get_object ('iplayer_vbox') self.tv_tree_store = builder.get_object ('iplayer_programme_store') programme_list = builder.get_object ('iplayer_programme_list') programme_list.connect ('row-expanded', self.__row_expanded_cb) programme_list.connect ('row-activated', self.__row_activated_cb) container.show_all () self.tv_feed = iplayer2.Feed ('tv') # Add the interface to Totem's sidebar self.totem.add_sidebar_page ("iplayer", _(u"BBC iPlayer"), container) # Get the channel category listings self._populate_channel_list (self.tv_feed, self.tv_tree_store)
def do_activate(self): self.totem = self.object # Build the interface builder = Totem.plugin_load_interface("iplayer", "iplayer.ui", True, self.totem.get_main_window(), self) container = builder.get_object('iplayer_vbox') self.tv_tree_store = builder.get_object('iplayer_programme_store') programme_list = builder.get_object('iplayer_programme_list') programme_list.connect('row-expanded', self.__row_expanded_cb) programme_list.connect('row-activated', self.__row_activated_cb) container.show_all() self.tv_feed = iplayer2.Feed('tv') # Add the interface to Totem's sidebar self.totem.add_sidebar_page("iplayer", _(u"BBC iPlayer"), container) # Get the channel category listings self._populate_channel_list(self.tv_feed, self.tv_tree_store)
def do_create_configure_widget(self): """ Plugin config widget. This code must be independent from the rest of the plugin. FIXME: bgo#624073 """ builder = Totem.plugin_load_interface ('jamendo', 'jamendo.ui', True, None, self) config_widget = builder.get_object ('config_widget') config_widget.connect ('destroy', self.on_config_widget_destroy) format = self.settings.get_enum ('format') num_per_page = self.settings.get_value ('num-per-page').get_uint32 () # Set up the "format" combo box. We can't use g_settings_bind() here, as it won't automatically convert between enums and ints. To do so, # we'd need to use g_settings_bind_with_mapping(), but that isn't introspectable. We have to handle the binding manually. combo = builder.get_object('preferred_format_combo') combo.set_active(format) combo.connect ('changed', self.on_format_combo_changed) self.settings.connect ('changed::format', self.on_format_setting_changed, combo) spinbutton = builder.get_object('album_num_spinbutton') spinbutton.set_value(num_per_page) self.settings.bind ('num-per-page', spinbutton, 'value', Gio.SettingsBindFlags.DEFAULT) return config_widget
def _build_dialog (self): builder = Totem.plugin_load_interface ("opensubtitles", "opensubtitles.ui", True, self._totem.get_main_window (), self) # Obtain all the widgets we need to initialize combobox = builder.get_object ('language_combobox') languages = builder.get_object ('language_model') self._progress = builder.get_object ('progress_bar') self._tree_view = builder.get_object ('subtitle_treeview') self._list_store = builder.get_object ('subtitle_model') self._dialog = builder.get_object ('subtitles_dialog') self._find_button = builder.get_object ('find_button') self._apply_button = builder.get_object ('apply_button') self._close_button = builder.get_object ('close_button') # Set up and populate the languages combobox renderer = Gtk.CellRendererText () sorted_languages = Gtk.TreeModelSort (model = languages) sorted_languages.set_sort_column_id (0, Gtk.SortType.ASCENDING) combobox.set_model (sorted_languages) combobox.pack_start (renderer, True) combobox.add_attribute (renderer, 'text', 0) lang = self._settings.get_string ('language') if lang is not None: self._model.lang = lang for lang in LANGUAGES_STR: itera = languages.append (lang) if LANGUAGES[lang[1]] == self._model.lang: (success, parentit) = sorted_languages.convert_child_iter_to_iter (itera) if success: combobox.set_active_iter (parentit) # Set up the results treeview renderer = Gtk.CellRendererText () self._tree_view.set_model (self._list_store) renderer.set_property ('ellipsize', Pango.EllipsizeMode.END) column = Gtk.TreeViewColumn (_(u"Subtitles"), renderer, text=0) column.set_resizable (True) column.set_expand (True) self._tree_view.append_column (column) # translators comment: # This is the file-type of the subtitle file detected column = Gtk.TreeViewColumn (_(u"Format"), renderer, text=1) column.set_resizable (False) self._tree_view.append_column (column) # translators comment: # This is a rating of the quality of the subtitle column = Gtk.TreeViewColumn (_(u"Rating"), renderer, text=2) column.set_resizable (False) self._tree_view.append_column (column) self._apply_button.set_sensitive (False) self._apply_button.connect ('clicked', self.__on_apply_clicked) self._find_button.connect ('clicked', self.__on_find_clicked) self._close_button.connect ('clicked', self.__on_close_clicked) # Set up signals combobox.connect ('changed', self.__on_combobox__changed) self._dialog.set_transient_for (self._totem.get_main_window ()) self._dialog.set_position (Gtk.WindowPosition.CENTER_ON_PARENT) # Connect the callbacks self._dialog.connect ('key-press-event', self.__on_window__key_press_event) self._tree_view.get_selection ().connect ('changed', self.__on_treeview__row_change) self._tree_view.connect ('row-activated', self.__on_treeview__row_activate)
def _build_dialog (self): builder = Totem.plugin_load_interface ("opensubtitles", "opensubtitles.ui", True, self._totem.get_main_window (), None) # Obtain all the widgets we need to initialize combobox = builder.get_object ('language_combobox') languages = builder.get_object ('language_model') self._progress = builder.get_object ('progress_bar') self._tree_view = builder.get_object ('subtitle_treeview') self._list_store = builder.get_object ('subtitle_model') self._dialog = builder.get_object ('subtitles_dialog') self._find_button = builder.get_object ('find_button') self._apply_button = builder.get_object ('apply_button') self._close_button = builder.get_object ('close_button') # Set up and populate the languages combobox renderer = Gtk.CellRendererText () sorted_languages = Gtk.TreeModelSort (model = languages) sorted_languages.set_sort_column_id (0, Gtk.SortType.ASCENDING) combobox.set_model (sorted_languages) combobox.pack_start (renderer, True) combobox.add_attribute (renderer, 'text', 0) lang = self._settings.get_string ('language') if lang is not None: self._model.lang = lang for lang in LANGUAGES_STR: itera = languages.append (lang) if LANGUAGES[lang[1]] == self._model.lang: (success, parentit) = sorted_languages.convert_child_iter_to_iter (itera) if success: combobox.set_active_iter (parentit) # Set up the results treeview renderer = Gtk.CellRendererText () self._tree_view.set_model (self._list_store) renderer.set_property ('ellipsize', Pango.EllipsizeMode.END) column = Gtk.TreeViewColumn (_(u"Subtitles"), renderer, text=0) column.set_resizable (True) column.set_expand (True) self._tree_view.append_column (column) # translators comment: # This is the file-type of the subtitle file detected column = Gtk.TreeViewColumn (_(u"Format"), renderer, text=1) column.set_resizable (False) self._tree_view.append_column (column) # translators comment: # This is a rating of the quality of the subtitle column = Gtk.TreeViewColumn (_(u"Rating"), renderer, text=2) column.set_resizable (False) self._tree_view.append_column (column) self._apply_button.set_sensitive (False) self._apply_button.connect ('clicked', self.__on_apply_clicked) self._find_button.connect ('clicked', self.__on_find_clicked) self._close_button.connect ('clicked', self.__on_close_clicked) # Set up signals combobox.connect ('changed', self.__on_combobox__changed) self._dialog.connect ('delete-event', self._dialog.hide_on_delete) self._dialog.set_transient_for (self._totem.get_main_window ()) self._dialog.set_position (Gtk.WindowPosition.CENTER_ON_PARENT) # Connect the callbacks self._dialog.connect ('key-press-event', self.__on_window__key_press_event) self._tree_view.get_selection ().connect ('changed', self.__on_treeview__row_change) self._tree_view.connect ('row-activated', self.__on_treeview__row_activate)
def os_build_dialog(self, action): builder = Totem.plugin_load_interface ("opensubtitles", "opensubtitles.ui", True, self.totem.get_main_window(), None) # Obtain all the widgets we need to initialize combobox = builder.get_object('language_combobox') languages = builder.get_object('language_model') hash_or_title_combobox = builder.get_object('file_hash_title') hash_filename_model = builder.get_object('hash_filename_model'); save_same_location_select = builder.get_object('save_same_location'); self.save_same_location = True; self.progress = builder.get_object('progress_bar') self.treeview = builder.get_object('subtitle_treeview') self.liststore = builder.get_object('subtitle_model') self.dialog = builder.get_object('subtitles_dialog') self.find_button = builder.get_object('find_button') self.apply_button = builder.get_object('apply_button') self.close_button = builder.get_object('close_button') # Set up and populate the languages combobox renderer = Gtk.CellRendererText() sorted_languages = Gtk.TreeModelSort (model = languages) sorted_languages.set_sort_column_id(0, Gtk.SortType.ASCENDING) combobox.set_model(sorted_languages) combobox.pack_start(renderer, True) combobox.add_attribute(renderer, 'text', 0) lang = self.settings.get_string ('language') if lang is not None: self.model.lang = lang for lang in LANGUAGES_STR: it = languages.append(lang) if LANGUAGES[lang[1]] == self.model.lang: (success, parentit) = sorted_languages.convert_child_iter_to_iter (it) if success: combobox.set_active_iter (parentit) # Set up and populate hash or title option renderer = Gtk.CellRendererText() hash_or_title_combobox.pack_start(renderer, True) hash_or_title_combobox.add_attribute(renderer, 'text', 1) hash_or_title_model = Gtk.ListStore(int,str); hash_or_title_model.append([DOWNLOAD_BY_HASH,"Use Hash"]); hash_or_title_model.append([DOWNLOAD_BY_FILENAME,"Use Filename"]); hash_or_title_combobox.set_model(hash_or_title_model); hash_or_title_combobox.set_active(0); self.model.hash_or_filename = DOWNLOAD_BY_HASH; # Set up the results treeview renderer = Gtk.CellRendererText() self.treeview.set_model(self.liststore) self.treeview.set_headers_visible(False) renderer.set_property('ellipsize', Pango.EllipsizeMode.END) column = Gtk.TreeViewColumn(_(u"Subtitles"), renderer, text=0) column.set_resizable(True) column.set_expand(True) self.treeview.append_column(column) # translators comment: # This is the file-type of the subtitle file detected column = Gtk.TreeViewColumn(_(u"Format"), renderer, text=1) column.set_resizable(False) self.treeview.append_column(column) # translators comment: # This is a rating of the quality of the subtitle column = Gtk.TreeViewColumn(_(u"Rating"), renderer, text=2) column.set_resizable(False) self.treeview.append_column(column) self.apply_button.set_sensitive(False) self.apply_button.connect('clicked', self.on_apply_clicked) self.find_button.connect('clicked', self.on_find_clicked) self.close_button.connect('clicked', self.on_close_clicked) # Set up signals combobox_changed_id = combobox.connect('changed', self.on_combobox__changed) hash_or_file_combobox_changed_id = hash_or_title_combobox.connect('changed',self.on_hash_or_filename_combobox__changed); save_same_location_select_changed_id = save_same_location_select.connect('toggled',self.on_save_same_select__changed); self.dialog.connect ('delete-event', self.dialog.hide_on_delete) self.dialog.set_transient_for (self.totem.get_main_window()) self.dialog.set_position (Gtk.WindowPosition.CENTER_ON_PARENT) # Connect the callbacks self.dialog.connect ('key-press-event', self.on_window__key_press_event) self.treeview.get_selection().connect('changed', self.on_treeview__row_change) self.treeview.connect('row-activated', self.on_treeview__row_activate)