Changeset 9157

Show
Ignore:
Timestamp:
12/16/07 01:47:20 (10 months ago)
Author:
nicfit
Message:

Resizing fixes and make the roster window shrink when last tab is removed

Location:
branches/one_window/src
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • branches/one_window/src/message_control.py

    r9141 r9157  
    11##      message_control.py 
    22## 
    3 ## Copyright (C) 2006 Travis Shirk <travis@pobox.com> 
     3## Copyright (C) 2006-2007 Travis Shirk <travis@pobox.com> 
    44## Copyright (C) 2007 Stephan Erb <steve-e@h3c.de>  
    55## 
     
    3535                # dict { cb id : widget}  
    3636                # keep all registered callbacks of widgets, created by self.xml 
    37                 self.handlers = {}  
     37                self.handlers = {} 
    3838                self.type_id = type_id 
    3939                self.parent_win = parent_win 
     
    127127                                was_encrypted = True 
    128128 
    129                         print "starting a new session, dropping the old one!" 
    130                         gajim.connections[self.account].delete_session(self.session.jid, self.session.thread_id) 
     129                        gajim.connections[self.account].delete_session(self.session.jid, 
     130                                                                        self.session.thread_id) 
    131131 
    132132                self.session = session 
  • branches/one_window/src/message_window.py

    r9155 r9157  
    428428                        # dnd clean up 
    429429                        self.notebook.drag_dest_unset() 
    430                         self.window.destroy() 
     430                        if self.parent_paned: 
     431                                # Don't close parent window, just remove the child 
     432                                child = self.parent_paned.get_child2() 
     433                                self.parent_paned.remove(child) 
     434                                # FIXME: restore preferred roster size 
     435                        else: 
     436                                self.window.destroy() 
    431437                        return # don't show_title, we are dead 
    432438                elif self.get_num_controls() == 1: # we are going from two tabs to one 
     
    694700 
    695701################################################################################ 
    696 class MessageWindowMgr: 
     702class MessageWindowMgr(gobject.GObject): 
    697703        '''A manager and factory for MessageWindow objects''' 
     704        __gsignals__ = { 
     705                'window-delete': (gobject.SIGNAL_RUN_LAST, None, (object,)), 
     706        } 
    698707 
    699708        # These constants map to common.config.opt_one_window_types indices 
     
    717726                ONE_MSG_WINDOW_PERACCT: The key is the account name 
    718727                ONE_MSG_WINDOW_PERTYPE: The key is a message type constant''' 
     728                gobject.GObject.__init__(self) 
    719729                self._windows = {} 
    720730 
     
    879889                for k in self._windows.keys(): 
    880890                        if self._windows[k].window == win: 
     891                                self.emit('window-delete', self._windows[k]) 
    881892                                del self._windows[k] 
    882893                                return 
     
    945956                        size_height_key = type + '-msgwin-height' 
    946957                elif self.mode == self.ONE_MSG_WINDOW_ALWAYS_WITH_ROSTER: 
    947                         width -= msg_win.parent_paned.get_position() 
     958                        # Ignore any hpaned width 
     959                        width = msg_win.notebook.allocation.width 
    948960 
    949961                if acct: 
  • branches/one_window/src/roster_window.py

    r9155 r9157  
    53265326                return 
    53275327 
     5328        def _on_message_window_delete(self, win_mgr, msg_win): 
     5329                if gajim.config.get('one_message_window') == 'always_with_roster': 
     5330                        gtkgui_helpers.resize_window(self.window, 
     5331                                gajim.config.get('roster_width'), 
     5332                                gajim.config.get('roster_height')) 
     5333 
    53285334        def __init__(self): 
    53295335                self.xml = gtkgui_helpers.get_glade('roster_window.glade') 
     
    53325338                self._music_track_changed_signal = None 
    53335339                gajim.interface.msg_win_mgr = MessageWindowMgr(self.window, self.hpaned) 
     5340                gajim.interface.msg_win_mgr.connect('window-delete', self._on_message_window_delete) 
    53345341                self.advanced_menus = [] # We keep them to destroy them 
    53355342                if gajim.config.get('roster_window_skip_taskbar'):