def define_menu(self):
        popup = Menu(self.plugin, self.shell)
        popup.load_from_file('N/A', 'ui/coverart_entryview_full_pop_rb3.ui')
        signals = {
            'ev_full_play_track_menu_item':
            self.play_track_menu_item_callback,
            'ev_full_play_next_track_menu_item':
            self.play_next_track_menu_item_callback,
            'ev_full_queue_track_menu_item':
            self.queue_track_menu_item_callback,
            'ev_full_add_to_playing_menu_item':
            self.add_to_playing_menu_item_callback,
            'ev_full_new_playlist':
            self.add_playlist_menu_item_callback,
            'ev_full_show_properties_menu_item':
            self.show_properties_menu_item_callback,
            'ev_full_similar_track_menu_item':
            self.play_similar_track_menu_item_callback,
            'ev_full_similar_artist_menu_item':
            self.play_similar_artist_menu_item_callback,
            'ev_full_similar_genre_menu_item':
            self.play_similar_genre_menu_item_callback
        }

        popup.connect_signals(signals)
        popup.connect('pre-popup', self.pre_popup_menu_callback)
        self.popup = popup
예제 #2
0
    def define_menu(self):
        popup = Menu(self.plugin, self.shell)
        popup.load_from_file('N/A', 'ui/coverart_play_pop_rb3.ui')
        signals = {
            'remove_from_playlist_menu_item':
            self.remove_from_playlist_menu_item_callback
        }

        popup.connect_signals(signals)
        popup.connect('pre-popup', self.pre_popup_menu_callback)
        self.popup = popup
예제 #3
0
    def initialise(self, source):
        if self._has_initialised:
            return
            
        self._has_initialised = True

        self.view_name = "artist_view"
        super(ArtistView, self).initialise(source)
        self.album_manager = source.album_manager
        self.shell = source.shell
        self.props.has_tooltip = True
        
        self.set_enable_tree_lines(True)
        
        col = Gtk.TreeViewColumn('       ', Gtk.CellRendererText(), text=6)
        self.append_column(col)
        
        pixbuf = Gtk.CellRendererPixbuf()
        col = Gtk.TreeViewColumn(_('Covers'), pixbuf, pixbuf=1)
        
        self.append_column(col)
        
        col = Gtk.TreeViewColumn(_('Artist'), Gtk.CellRendererText(), markup=5)
        self._artist_col = col
        col.set_clickable(True)
        col.set_sort_column_id(0)
        col.set_sort_indicator(True)
        col.connect('clicked', self._artist_sort_clicked)
        self.append_column(col)
        col = Gtk.TreeViewColumn('', Gtk.CellRendererText(), text=4)
        self.append_column(col) # dummy column to expand horizontally
        
        self.artist_manager = self.album_manager.artist_man
        self.artist_manager.model.store.set_sort_column_id(0, Gtk.SortType.ASCENDING)
        self.set_model(self.artist_manager.model.store)
        
        # setup iconview drag&drop support
        # first drag and drop on the coverart view to receive coverart
        self.enable_model_drag_dest([], Gdk.DragAction.COPY)
        self.drag_dest_add_image_targets()
        self.drag_dest_add_text_targets()
        self.connect('drag-drop', self.on_drag_drop)
        self.connect('drag-data-received',
            self.on_drag_data_received)
            
        # lastly support drag-drop from coverart to devices/nautilus etc
        # n.b. enabling of drag-source is controlled by the selection-changed to ensure
        # we dont allow drag from artists
        self.connect('drag-begin', self.on_drag_begin)
        self._targets = Gtk.TargetList.new([Gtk.TargetEntry.new("text/uri-list", 0, 0) ])
    
        # N.B. values taken from rhythmbox v2.97 widgets/rb_entry_view.c
        self._targets.add_uri_targets(1)
        self.connect("drag-data-get", self.on_drag_data_get)
        
        # define artist specific popup menu
        self.artist_popup_menu = Menu(self.plugin, self.shell)
        self.artist_popup_menu.load_from_file('ui/coverart_artist_pop_rb2.ui',
            'ui/coverart_artist_pop_rb3.ui')
        signals = \
            { 'play_album_menu_item': self.source.play_album_menu_item_callback,
              'queue_album_menu_item': self.source.queue_album_menu_item_callback,
              'new_playlist': self.source.add_playlist_menu_item_callback,
              'artist_cover_search_menu_item': self.cover_search_menu_item_callback
            }
              
        self.artist_popup_menu.connect_signals(signals)
        self.artist_popup_menu.connect('pre-popup', self.add_external_menu)
            
        # connect properties and signals
        self._connect_properties()
        self._connect_signals()
    def _create_ui(self):
        '''
        Creates the ui for the source and saves the important widgets onto
        properties.
        '''
        print("CoverArtBrowser DEBUG - _create_ui")

        # dialog has not been created so lets do so.
        cl = CoverLocale()
        ui = Gtk.Builder()
        ui.set_translation_domain(cl.Locale.LOCALE_DOMAIN)
        ui.add_from_file(
            rb.find_plugin_file(self.plugin, 'ui/coverart_browser.ui'))
        ui.connect_signals(self)

        # load the page and put it in the source
        self.page = ui.get_object('main_box')
        self.pack_start(self.page, True, True, 0)

        # get widgets for main icon-view
        self.status_label = ui.get_object('status_label')
        window = ui.get_object('scrolled_window')

        self.viewmgr = ViewManager(self, window)

        # get widgets for the artist paned
        self.artist_paned = ui.get_object('vertical_paned')
        Gdk.threads_add_timeout(GLib.PRIORITY_DEFAULT_IDLE, 50,
                                self._change_artist_paned_pos,
                                self.viewmgr.view_name)
        self.viewmgr.connect('new-view', self.on_view_changed)
        self.artist_treeview = ui.get_object('artist_treeview')
        self.artist_scrolledwindow = ui.get_object('artist_scrolledwindow')

        # define menu's
        self.popup_menu = Menu(self.plugin, self.shell)
        self.popup_menu.load_from_file('ui/coverart_browser_pop_rb2.ui',
                                       'ui/coverart_browser_pop_rb3.ui')
        self._external_plugins = None

        signals = \
            { 'play_album_menu_item': self.play_album_menu_item_callback,
              'queue_album_menu_item': self.queue_album_menu_item_callback,
              'new_playlist': self.add_playlist_menu_item_callback,
              'cover_search_menu_item': self.cover_search_menu_item_callback,
              'export_embed_menu_item': self.export_embed_menu_item_callback,
              'show_properties_menu_item': self.show_properties_menu_item_callback,
              'play_similar_artist_menu_item': self.play_similar_artist_menu_item_callback}

        self.popup_menu.connect_signals(signals)
        self.popup_menu.connect('pre-popup', self.add_external_menu)

        self.status_label = ui.get_object('status_label')
        self.request_status_box = ui.get_object('request_status_box')
        self.request_spinner = ui.get_object('request_spinner')
        self.request_statusbar = ui.get_object('request_statusbar')
        self.request_cancel_button = ui.get_object('request_cancel_button')
        self.paned = ui.get_object('paned')
        self.notebook = ui.get_object('bottom_notebook')

        #---- set up info pane -----#
        info_scrolled_window = ui.get_object('info_scrolled_window')
        info_button_box = ui.get_object('info_button_box')
        artist_info_paned = ui.get_object('vertical_info_paned')

        self.artist_info = ArtistInfoPane(info_button_box,
                                          info_scrolled_window,
                                          artist_info_paned, self)

        # quick search
        self.quick_search = ui.get_object('quick_search_entry')

        print("CoverArtBrowser DEBUG - end _create_ui")