def do_activate(self): # initialise the utils module LastFMExtensionUtils.init(rb.find_plugin_file(self, LASTFM_ICON)) # create the settings for the plugin settings = LastFMExtensionUtils.Settings(self) # get the settings section for the connection self.settings = settings.get_section(Keys.CONNECTION_SECTION) # connect a signal to the connected property self.settings.connect(Keys.CONNECTED, self.conection_changed) # asign variables and initialise the network and extensions self.conection_changed(self.connected) # initialise the extensions bag self.shell = self.object self.uim = self.object.props.ui_manager LastFMExtensionBag.initialise_instance(self, settings)
def do_activate(self): #obtenemos el shell y el player shell = self.object player = shell.props.shell_player #inicializamos el modulo de notificacion LastFMExtensionUtils.init( rb.find_plugin_file( self, LASTFM_ICON ) ) #obtenemos el ui manager manager = shell.props.ui_manager #creamos el action group self.action_group = Gtk.ActionGroup( 'LastFMExtensionActions' ) #creamos el action love action_love = Gtk.Action( 'LoveTrack', _('_Love Track'), _("Love this track."), None ) #creamos y asignamos el icono al action love icon = Gio.FileIcon.new( Gio.File.new_for_path( rb.find_plugin_file( self, LOVE_ICON ) ) ) action_love.set_gicon( icon ) #conectamos la señal al método love_track self.love_id = action_love.connect( 'activate', self.love_track ) #agregamos el action al action group self.action_group.add_action( action_love ) #creamos el action ban action_ban = Gtk.Action('BanTrack', _('_Ban Track'), _("Ban this track."), None) #creamos y asignamos el icono al action love icon = Gio.FileIcon.new( Gio.File.new_for_path( rb.find_plugin_file( self, BAN_ICON ) ) ) action_ban.set_gicon( icon ) #conectamos la señal al método love_track self.ban_id = action_ban.connect( 'activate', self.ban_track) #agregamos el action al action group self.action_group.add_action( action_ban ) #insertamos el action group y guardamos el ui_id manager.insert_action_group( self.action_group, -1 ) self.ui_id = manager.add_ui_from_string( ui_str ) #disableamos los botones self.enable_buttons( False ) #updateamos la ui manager.ensure_update() #guardamos la db como atributo self.db = shell.get_property('db') #guardamos el player en una variable para tenerla mas a mano self.player = player #conectamos la señal playing_changed para activar o desactivar #los botones de love/ban self.benable_id = player.connect( 'playing-changed', lambda sp, playing: self.enable_buttons( playing and self.settings[Keys.CONNECTED] ) ) #conectamos la señal para conectar o desconectar self.settings.connect( 'changed::connected', self.conection_changed ) #conectamos una señal con la setting de play count para #activar/desactivar la funcionalidad cuando sea necesario self.playcount_id = None self.settings.connect( 'changed::%s' % Keys.PLAY_COUNT, self.connect_playcount ) #conectamos una señal con la setting de loved para activar/desactivar #la funcionalidad cuando sea necesario self.loved_id = None self.settings.connect( 'changed::%s' % Keys.LOVED, self.connect_loved ) #inicializamos la network si estan los datos disponibles self.conection_changed( self.settings, Keys.CONNECTED )