Changeset 285


Ignore:
Timestamp:
07/29/09 01:02:39 (3 years ago)
Author:
nahuel
Message:

New server log for twisted details, save button and timestamp preference, show traceback on GTK failures

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/uigtk.py

    r283 r285  
    4040except ImportError: 
    4141    print_e(_('Could not import Twisted Network Framework')) 
     42    traceback.print_exc() 
    4243    sys.exit(1) 
    4344 
     
    107108            self.msg = args['message'][0] 
    108109 
    109         self._write_detailed_log(self.msg, False) 
     110        self._write_server_log(self.msg, False) 
    110111 
    111112    def message(self, message, icon=None): 
     
    292293        self.gui.log_details_text_view.scroll_mark_onscreen(self.gui.log_details_buffer.get_insert()) 
    293294 
     295    def _write_server_log(self, message, bold=True): 
     296        """ 
     297        Private method to write to the server log Gui widget 
     298 
     299        @type message: str 
     300        @param message: Message to be inserted 
     301 
     302        @type bold: bool 
     303        @param bold: Whether the text will be inserted as bold 
     304        """ 
     305 
     306        message = message + '\r' 
     307 
     308        if bold: 
     309            self.gui.log_server_buffer.insert_with_tags_by_name(self.gui.log_server_buffer.get_end_iter(), message, 'bold-text') 
     310        else: 
     311            self.gui.log_server_buffer.insert_at_cursor(message, len(message)) 
     312 
     313        # Automatically scroll. Use wrap until fix 
     314        self.gui.log_server_text_view.scroll_mark_onscreen(self.gui.log_server_buffer.get_insert()) 
    294315 
    295316class Gui: 
     
    434455        self.label_log_events = gtk.Label(_('Events')) 
    435456        self.label_log_details = gtk.Label(_('Details')) 
     457        self.label_log_server = gtk.Label(_('Server')) 
    436458 
    437459        self.scroll_log_events = gtk.ScrolledWindow() 
     
    469491        self.scroll_log_details.add(self.log_details_text_view) 
    470492 
     493        self.scroll_log_server = gtk.ScrolledWindow() 
     494        self.scroll_log_server.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) 
     495        self.scroll_log_server.set_shadow_type(gtk.SHADOW_NONE) 
     496        self.log_server_text_view = gtk.TextView() 
     497        self.log_server_text_view.set_wrap_mode(gtk.WRAP_WORD) 
     498        self.log_server_text_view.set_editable(False) 
     499        self.log_server_text_view.set_size_request(-1, 160) 
     500        self.log_server_buffer = self.log_server_text_view.get_buffer() 
     501        self.log_server_buffer.create_tag ('bold-text', weight = pango.WEIGHT_BOLD) 
     502        self.scroll_log_server.add(self.log_server_text_view) 
     503 
    471504        self.notebook_log.append_page(self.scroll_log_events, self.label_log_events) 
    472505        self.notebook_log.append_page(self.scroll_log_details, self.label_log_details) 
     506        self.notebook_log.append_page(self.scroll_log_server, self.label_log_server) 
    473507 
    474508        self.hbox_log = gtk.HBox(False, 0) 
     
    485519        self.button_log_pause.connect('toggled', self.button_pause_log) 
    486520 
    487         self.hbox_log.pack_end(self.button_log_clear, False, False, 4) 
    488         self.hbox_log.pack_end(self.button_log_pause, False, False, 4) 
     521        self.button_log_save = gtk.ToggleButton(_('Save')) 
     522        self.button_log_save_image = gtk.Image() 
     523        self.button_log_save_image.set_from_stock(gtk.STOCK_SAVE, gtk.ICON_SIZE_BUTTON) 
     524        self.button_log_save.set_image(self.button_log_pause_image) 
     525        #self.button_log_save.connect('toggled', self._save_log) 
     526 
     527        self.hbox_log.pack_start(self.button_log_clear, False, False, 4) 
     528        self.hbox_log.pack_start(self.button_log_pause, False, False, 4) 
     529        self.hbox_log.pack_end(self.button_log_save, False, False, 4) 
    489530 
    490531        self.vbox_log.pack_start(self.notebook_log, False, False, 4) 
     
    509550         
    510551        # Create our Hboxes 
    511         for n in xrange(1, 10+1): 
     552        for n in xrange(1, 11+1): 
    512553            setattr(self, 'hbox_preferences_%d' % (n), gtk.HBox(False, 0)) 
    513554 
     
    556597            self.label_preferences_notifications.set_alignment(0, 0.50) 
    557598 
     599        self.label_preferences_timestamp = gtk.Label(_('Show timestamp in log')) 
     600        self.label_preferences_timestamp.set_justify(gtk.JUSTIFY_LEFT) 
     601        self.label_preferences_timestamp.set_alignment(0, 0.50) 
     602             
    558603        self.adjustment_preferences_port = gtk.Adjustment(float(self.configuration['server']['port']), 1024, 65535, 1, 0, 0) 
    559604        self.spin_preferences_port = gtk.SpinButton(self.adjustment_preferences_port) 
     
    612657            else:  
    613658                self.check_preferences_notifications.set_active(0) 
     659 
     660        self.check_preferences_timestamp = gtk.CheckButton() 
     661##        if self.configuration['log']['timestamp']: 
     662##            self.check_preferences_notifications.set_active(1) 
     663##        else:  
     664##            self.check_preferences_notifications.set_active(0) 
    614665 
    615666        if not self.itaka_globals.system == 'nt': 
     
    652703            self.hbox_preferences_9.pack_end(self.check_preferences_notifications, False, False, 7) 
    653704 
    654         self.hbox_preferences_10.pack_start(self.button_preferences_about, False, False, 7) 
    655         self.hbox_preferences_10.pack_end(self.button_preferences_close, False, False, 7) 
     705        self.hbox_preferences_10.pack_start(self.label_preferences_timestamp, False, False, 12) 
     706        self.hbox_preferences_10.pack_end(self.check_preferences_timestamp, False, False, 7) 
     707 
     708        self.hbox_preferences_11.pack_start(self.button_preferences_about, False, False, 7) 
     709        self.hbox_preferences_11.pack_end(self.button_preferences_close, False, False, 7) 
    656710 
    657711        self.vbox_preferences_items.pack_start(self.hbox_preferences_1, False, False, 0) 
     
    670724            self.vbox_preferences_items.pack_start(self.hbox_preferences_9, False, False, 0) 
    671725 
     726        self.vbox_preferences_items.pack_start(self.hbox_preferences_10, False, False, 0) 
     727 
    672728        self.frame_preference_settings.add(self.vbox_preferences_items) 
    673729        self.vbox_preferences.pack_start(self.frame_preference_settings, False, False, 0) 
    674         self.vbox_preferences.pack_start(self.hbox_preferences_10, False, False, 4) 
     730        self.vbox_preferences.pack_start(self.hbox_preferences_11, False, False, 4) 
    675731 
    676732        self.window.add(self.vbox) 
     
    10511107        self.log_events_store.clear() 
    10521108        self.log_details_buffer.set_text("") 
     1109        self.log_server_buffer.set_text("") 
    10531110 
    10541111    def button_pause_log(self, widget): 
     
    10721129        """ 
    10731130 
    1074         self.log_events_store.append([self.log_events_tree_view.render_icon(stock_id=gtk.STOCK_MEDIA_PAUSE, size=gtk.ICON_SIZE_MENU, detail=None), _('Logging paused')]) 
     1131        self.log_events_store.append([self.log_events_tree_view.render_icon(stock_id=gtk.STOCK_MEDIA_PAUSE, size=gtk.ICON_SIZE_MENU, detail=None), _('%s Logging paused' %(datetime.datetime.now().strftime(self.configuration['log']['logtimeformat'])))]) 
    10751132         
    10761133        self.log_events_tree_view.set_sensitive(False) 
     
    10911148        if (foreign): 
    10921149            self.button_log_pause.set_active(False) 
     1150             
     1151        self.log_events_tree_view.set_sensitive(True) 
    10931152        self.log_details_text_view.set_sensitive(True) 
    1094         self.log_events_tree_view.set_sensitive(True) 
    1095  
    1096         self.log_events_store.append([self.log_events_tree_view.render_icon(stock_id=gtk.STOCK_MEDIA_PLAY, size=gtk.ICON_SIZE_MENU, detail=None), _('Logging resumed')]) 
     1153        self.log_server_text_view.set_sensitive(True) 
     1154 
     1155        self.log_events_store.append([self.log_events_tree_view.render_icon(stock_id=gtk.STOCK_MEDIA_PLAY, size=gtk.ICON_SIZE_MENU, detail=None), _('%s Logging resumed' %(datetime.datetime.now().strftime(self.configuration['log']['logtimeformat'])))]) 
    10971156 
    10981157        self.log_is_paused = False 
Note: See TracChangeset for help on using the changeset viewer.