Changeset 9644

Show
Ignore:
Timestamp:
05/15/08 21:52:04 (2 months ago)
Author:
js
Message:

* Remove old code to update status to current track.
* Don't bind the track listener when not enabled anymore.
* Remove the signal / add the signal when changed in preferences.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/common/config.py

    r9619 r9644  
    152152                'after_nickname': [ opt_str, ':', _('Characters that are printed after the nickname in conversations') ], 
    153153                'send_os_info': [ opt_bool, True ], 
    154                 'set_status_msg_from_lastfm': [ opt_bool, False, _('If checked, Gajim can regularly poll a Last.fm account and sends recently played songs through PEP.') ], 
    155154                'lastfm_username': [ opt_str, '', _('The username used to identify the Last.fm account.')], 
    156155                'notify_on_new_gmail_email': [ opt_bool, True ], 
  • trunk/src/common/connection_handlers.py

    r9639 r9644  
    821821                                                        track = listener.get_playing_track() 
    822822                                                        if gajim.config.get('publish_tune'): 
    823                                                                 gajim.interface.roster._music_track_changed(listener, 
     823                                                                gajim.interface.roster.music_track_changed(listener, 
    824824                                                                                track, self.name) 
    825825                                                break 
  • trunk/src/common/connection.py

    r9611 r9644  
    196196        # We are doing disconnect at so many places, better use one function in all 
    197197        def disconnect(self, on_purpose=False): 
    198                 #FIXME: set the Tune to None before disconnection per account 
    199                 #gajim.interface.roster._music_track_changed(None, None) 
     198                gajim.interface.roster.music_track_changed(None, None) 
    200199                self.on_purpose = on_purpose 
    201200                self.connected = 0 
  • trunk/src/config.py

    r9585 r9644  
    5454 
    5555from common.exceptions import GajimGeneralException 
     56 
     57if dbus_support.supported: 
     58        from music_track_listener import MusicTrackListener 
     59        import dbus 
    5660 
    5761#---------- PreferencesWindow class -------------# 
     
    556560 
    557561        def on_publish_tune_checkbutton_toggled(self, widget): 
    558                 if not widget.get_active(): 
     562                if widget.get_active(): 
     563                        listener = MusicTrackListener.get() 
     564                        gajim.interface.roster.music_track_changed_signal = listener.connect( 
     565                                'music-track-changed', gajim.interface.roster.music_track_changed) 
     566                        track = listener.get_playing_track() 
     567                        gajim.interface.roster.music_track_changed(listener, track) 
     568                else: 
     569                        gajim.interface.roster.music_track_changed_signal = None 
     570                         
    559571                        for account in gajim.connections: 
    560572                                if gajim.connections[account].pep_supported: 
     
    564576                self.on_checkbutton_toggled(widget, 'publish_tune') 
    565577                helpers.update_optional_features() 
    566                 gajim.interface.roster.enable_syncing_status_msg_from_current_music_track( 
    567                         widget.get_active()) 
    568578 
    569579        def on_publish_nick_checkbutton_toggled(self, widget): 
     
    11691179                        gajim.interface.instances['advanced_config'] = \ 
    11701180                                dialogs.AdvancedConfigurationWindow() 
    1171  
    1172         def set_status_msg_from_current_music_track_checkbutton_toggled(self, 
    1173                 widget): 
    1174                 self.on_checkbutton_toggled(widget, 
    1175                         'set_status_msg_from_current_music_track') 
    1176                 gajim.interface.roster.enable_syncing_status_msg_from_current_music_track( 
    1177                         widget.get_active()) 
    11781181 
    11791182#---------- ManageProxiesWindow class -------------# 
  • trunk/src/roster_window.py

    r9643 r9644  
    15491549                        for chat_control in gajim.interface.msg_win_mgr.get_chat_controls(ji, account): 
    15501550                                chat_control.contact = contact1 
    1551          
    1552         def enable_syncing_status_msg_from_current_music_track(self, enabled): 
    1553                 '''enable setting status msg from currently playing music track 
    1554                  
    1555                 if enabled is True, we listen to events from music players about 
    1556                 currently played music track, and we update our 
    1557                 status message accordinly''' 
    1558                 if not dbus_support.supported: 
    1559                         # do nothing if user doesn't have D-Bus bindings 
    1560                         return 
    1561                 if enabled: 
    1562                         listener = MusicTrackListener.get() 
    1563                         if self._music_track_changed_signal is None: 
    1564                                 self._music_track_changed_signal = listener.connect( 
    1565                                         'music-track-changed', self._music_track_changed) 
    1566                         track = listener.get_playing_track() 
    1567                         self._music_track_changed(listener, track) 
    1568                 else: 
    1569                         if self._music_track_changed_signal is not None: 
    1570                                 listener = MusicTrackListener.get() 
    1571                                 listener.disconnect(self._music_track_changed_signal) 
    1572                                 self._music_track_changed_signal = None 
    1573                         self._music_track_changed(None, None) 
    1574   
    1575         def enable_syncing_status_msg_from_lastfm(self, enabled): 
    1576                 ''' enable setting status msg from a Last.fm account 
    1577                  
    1578                 if enabled is True, we start polling the Last.fm server, 
    1579                 and we update our status message accordinly''' 
    1580                 if enabled: 
    1581                         if self._music_track_changed_signal is None: 
    1582                                 listener = LastFMTrackListener.get( 
    1583                                         gajim.config.get('lastfm_username')) 
    1584                                 self._music_track_changed_signal = listener.connect( 
    1585                                         'music-track-changed', self._music_track_changed) 
    1586                                 track = listener.get_playing_track() 
    1587                                 self._music_track_changed(listener, track) 
    1588                 else: 
    1589                         if self._music_track_changed_signal is not None: 
    1590                                 listener = LastFMTrackListener.get( 
    1591                                         gajim.config.get('lastfm_username')) 
    1592                                 listener.disconnect(self._music_track_changed_signal) 
    1593                                 self._music_track_changed_signal = None 
    1594                                 self._music_track_changed(None, None) 
    15951551 
    15961552        def _change_awn_icon_status(self, status): 
     
    16201576                        pass 
    16211577 
    1622         def _music_track_changed(self, unused_listener, music_track_info, 
     1578        def music_track_changed(self, unused_listener, music_track_info, 
    16231579        account=''): 
    16241580                from common import pep 
     
    16551611                                pep.user_send_tune(account, artist, title, source) 
    16561612                                self._music_track_info = music_track_info 
    1657  
    16581613 
    16591614        def connected_rooms(self, account): 
     
    57125667                self.window = self.xml.get_widget('roster_window') 
    57135668                self.hpaned = self.xml.get_widget('roster_hpaned') 
    5714                 self._music_track_changed_signal = None 
     5669                self.music_track_changed_signal = None 
    57155670                gajim.interface.msg_win_mgr = MessageWindowMgr(self.window, self.hpaned) 
    57165671                gajim.interface.msg_win_mgr.connect('window-delete', 
     
    59165871                publish_tune = gajim.config.get('publish_tune') 
    59175872                if publish_tune: 
    5918                         if gajim.config.get('set_status_msg_from_lastfm'): 
    5919                                 self.enable_syncing_status_msg_from_lastfm(True) 
    5920                         else: 
    5921                                 self.enable_syncing_status_msg_from_current_music_track(True) 
    5922                 else: 
    5923                         self.enable_syncing_status_msg_from_current_music_track(False) 
     5873                        listener = MusicTrackListener.get() 
     5874                        self.music_track_changed_signal = listener.connect( 
     5875                                'music-track-changed', self.music_track_changed) 
     5876                        track = listener.get_playing_track() 
     5877                        self.music_track_changed(listener, track) 
    59245878 
    59255879                if gajim.config.get('show_roster_on_startup'):