Exemple #1
0
    def __init__(self, exaile, doubanfm_plugin):
        self.exaile = exaile
        self.dbfm_plugin = doubanfm_plugin

        self.builder = gtk.Builder()
        self.builder.add_from_file(get_resource_path('doubanfm_mode.ui'))

        self.builder.connect_signals({
            'on_bookmark_button_clicked':
            self.on_bookmark_button_clicked,
            'on_skip_button_clicked':
            self.on_skip_button_clicked,
            'on_delete_button_clicked':
            self.on_delete_button_clicked,
            'on_go_home_button_clicked':
            self.on_go_home_button_clicked,
            'on_volume_slider_value_changed':
            self.on_volume_slider_value_changed,
            'on_volume_mute_button_toggled':
            self.on_volume_mute_button_toggled
        })

        self.window = self.builder.get_object('doubanfm_mode_window')
        self.window.connect('destroy', self.hide)

        volume = settings.get_option('player/volume', 1)
        self.volume_scale = self.builder.get_object('volume_scale')
        self.volume_scale.set_value(volume)

        hbox2 = self.builder.get_object('hbox2')
        self.mute_button = guiutil.VolumeControl()
        hbox2.pack_end(self.mute_button)

        self.cover_box = self.builder.get_object('cover_eventbox1')
        image = gtk.Image()
        self.cover = cover.CoverWidget(image)
        self.cover_box.add(self.cover)

        self.track_title_label = self.builder.get_object('track_title_label')
        self.track_info_label = self.builder.get_object('track_info_label')

        self.bookmark_button = self.builder.get_object('bookmark_button')

        progress_box = self.builder.get_object('playback_progressbar')
        self.progress_bar = PlaybackProgressBar(progress_box,
                                                self.exaile.player)

        self.visible = False
        self.active = False

        event.add_callback(self.on_playback_start, 'playback_track_start',
                           self.exaile.player)
        self._toggle_id = self.exaile.gui.main.connect('main-visible-toggle',
                                                       self.toggle_visible)
Exemple #2
0
    def __init__(self, player):
        Gtk.Bin.__init__(self)
        self.__player = player

        builder = Gtk.Builder()
        builder.add_from_file(
            xdg.get_data_path('ui', 'widgets', 'track_info.ui'))

        info_box = builder.get_object('info_box')
        info_box.reparent(self)

        self.__auto_update = False
        self.__display_progress = False
        self.__formatter = formatter.TrackFormatter(
            _('<span size="x-large" weight="bold">$title</span>\n'
              'by $artist\n'
              'from $album'))
        self.__formatter.connect('notify::format', self.on_notify_format)
        self.__default_text = ('<span size="x-large" '
                               'weight="bold">%s</span>\n\n' %
                               _('Not Playing'))
        self.__cover_size = None
        self.__timer = None
        self.__track = None

        self.info_label = builder.get_object('info_label')
        self.action_area = builder.get_object('action_area')
        self.progress_box = builder.get_object('progress_box')
        self.playback_image = builder.get_object('playback_image')
        self.progressbar = PlaybackProgressBar(player)
        guiutil.gtk_widget_replace(builder.get_object('progressbar'),
                                   self.progressbar)

        self.cover = cover.CoverWidget(builder.get_object('cover_image'))
        self.cover.hide()
        self.cover.set_no_show_all(True)

        self.clear()
        self.__update_widget_state()
Exemple #3
0
    def __init__(self, display_tracklist=False):
        """
            :param display_tracklist: Whether to display
                a short list of tracks
        """
        gtk.Alignment.__init__(self)

        builder = gtk.Builder()
        builder.add_from_file(
            xdg.get_data_path('ui', 'widgets', 'tracklist_info.ui'))

        info_box = builder.get_object('info_box')
        info_box.reparent(self)

        self._display_tracklist = display_tracklist

        self.cover = cover.CoverWidget(builder.get_object('cover_image'))
        self.album_label = builder.get_object('album_label')
        self.artist_label = builder.get_object('artist_label')

        if self._display_tracklist:
            self.tracklist_table = builder.get_object('tracklist_table')
            self.tracklist_table.set_no_show_all(False)
            self.tracklist_table.set_property('visible', True)

            self.total_label = builder.get_object('total_label')
            self.total_label.set_no_show_all(False)
            self.total_label.set_property('visible', True)

            self.rownumber = 1
            self.pango_attributes = pango.AttrList()
            self.pango_attributes.insert(
                pango.AttrScale(pango.SCALE_SMALL, end_index=-1))
            self.pango_attributes.insert(
                pango.AttrStyle(pango.STYLE_ITALIC, end_index=-1))
            self.ellipse_pango_attributes = pango.AttrList()
            self.ellipse_pango_attributes.insert(
                pango.AttrWeight(pango.WEIGHT_BOLD, end_index=-1))
Exemple #4
0
    def __init__(self, exaile, doubanfm_plugin):
        self.exaile = exaile
        self.dbfm_plugin = doubanfm_plugin

        self.builder = gtk.Builder()
        self.builder.add_from_file(get_resource_path('doubanfm_mode.ui'))

        self.builder.connect_signals({
            'on_bookmark_button_clicked':
            self.on_bookmark_button_clicked,
            'on_skip_button_clicked':
            self.on_skip_button_clicked,
            'on_delete_button_clicked':
            self.on_delete_button_clicked,
            'on_go_home_button_clicked':
            self.on_go_home_button_clicked,
            'on_item_setting_clicked':
            self.on_button_setting_clicked,
            'on_item_album_clicked':
            self.on_button_album_clicked,
            'on_item_report_clicked':
            self.on_button_report_clicked,
            'on_menu_toggle':
            self.on_menu_toggle,
            'on_quit':
            self.on_quit,
            'on_pausebutton_clicked':
            self.on_pausebutton_clicked,
            'on_recommend_song':
            self.on_recommend_song,
            'on_share_sina':
            self.on_share_sina,
            'on_share_renren':
            self.on_share_renren,
            'on_share_kaixin001':
            self.on_share_kaixin001,
            'on_share_twitter':
            self.on_share_twitter,
            'on_share_fanfou':
            self.on_share_fanfou,
            'on_copy_permalink':
            self.on_copy_permalink,
        })

        self.window = self.builder.get_object('doubanfm_mode_window')
        self.window.connect('destroy', self.hide)

        volume = settings.get_option('player/volume', 1)

        self.volume_control = playback.VolumeControl(player.PLAYER)
        self.builder.get_object('hbox2').pack_start(self.volume_control)

        self.cover_box = self.builder.get_object('cover_eventbox1')
        self.info_area = info.TrackInfoPane(player.PLAYER)
        self.cover = cover.CoverWidget(self.cover_box, player.PLAYER)
        #        self.cover_box.add(self.cover)

        self.track_title_label = self.builder.get_object('track_title_label')
        attr = pango.AttrList()
        attr.change(pango.AttrWeight(pango.WEIGHT_BOLD, 0, 800))
        attr.change(pango.AttrSize(12500, 0, 600))
        self.track_title_label.set_attributes(attr)
        self.track_info_label = self.builder.get_object('track_info_label')

        self.bookmark_button = self.builder.get_object('bookmark_button')
        self.trash_button = self.builder.get_object('delete_button')
        self.skip_button = self.builder.get_object('skip_button')
        self.pause_button = self.builder.get_object('pause_button')

        self.popup_menu = self.builder.get_object('moremenu')

        self.report_menuitem = self.builder.get_object('menuitem1')
        self.album_menuitem = self.builder.get_object('menuitem2')
        self.recmd_menuitem = self.builder.get_object('menuitem10')

        self.sensitive_widgets = [
            self.bookmark_button,
            self.trash_button,
            self.skip_button,
            self.pause_button,
            self.report_menuitem,
            self.album_menuitem,
            self.recmd_menuitem,
        ]

        self.progress_bar = playback.PlaybackProgressBar(player.PLAYER)
        self.builder.get_object('vbox2').pack_start(self.progress_bar)

        self.visible = False
        self.active = False

        self._build_channel_menu()

        event.add_callback(self.on_playback_start, 'playback_track_start',
                           player.PLAYER)
        event.add_callback(self.on_playback_stop, 'playback_track_end',
                           player.PLAYER)
        event.add_callback(self.on_pausebutton_toggled,
                           'playback_toggle_pause', player.PLAYER)
        event.add_callback(self.on_tag_update, 'track_tags_changed')
        self._toggle_id = self.exaile.gui.main.connect('main-visible-toggle',
                                                       self.toggle_visible)

        ## added for 0.3.2
        self._init_alpha()