Rose-Hulman Robotics Team

Changeset 649 for trunk/software

Show
Ignore:
Timestamp:
02/01/10 19:51:33 (2 years ago)
Author:
mosttw
Message:

Made log message scrolling "stick"

Location:
trunk/software/rb/gui
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/software/rb/gui/logs.py

    r601 r649  
    1 # Copyright (C) 2009 Thomas W. Most 
     1# Copyright (C) 2009-2010 Thomas W. Most 
    22# 
    33# This program is free software: you can redistribute it and/or modify 
     
    6262                self.display_prefixes = ('',) # List of component prefixes to display 
    6363                self.hide_prefixes = () # Tuple of prefixes to disallow 
     64                # Whether the scrollbar was at the bottom of the window before an item 
     65                # was added to the view. 
     66                self.at_bottom = True 
    6467 
    6568                # Widgets 
     
    6770                self.level_combo = builder.get_object('logs_level_combo') 
    6871                self.filter_combo = builder.get_object('logs_filter_combo') 
     72                self.vscroll_adjustment = builder.get_object('logs_vscroll_adjustment') 
    6973         
    7074                # Data model 
     
    98102                self.level_combo.connect("changed", self.level_changed_cb) 
    99103                self.filter_combo.connect("changed", self.filter_changed_cb) 
     104                self.vscroll_adjustment.connect("changed", self.vscroll_adjustment_changed_cb) 
    100105                 
    101106                logger.info("Completed loading logging GUI") 
     
    126131                @gobject.idle_add 
    127132                def update_gui(): 
     133                        page_size = self.vscroll_adjustment.page_size 
     134                        value = self.vscroll_adjustment.value 
     135                        self.at_bottom = int(value + page_size) >= int(self.vscroll_adjustment.upper) 
    128136                        self.record_store.append(row) 
    129137                        return False 
     
    156164                        self.hide_prefixes = tuple(b[1:] for b in bits if b.startswith('!')) 
    157165                        self.record_filter.refilter() 
     166         
     167        def vscroll_adjustment_changed_cb(self, adj): 
     168                if self.at_bottom: 
     169                        self.vscroll_adjustment.set_value(self.vscroll_adjustment.upper) 
    158170 
  • trunk/software/rb/gui/main.gtk

    r622 r649  
    769769                    </child> 
    770770                    <child> 
    771                       <object class="GtkScrolledWindow" id="scrolledwindow1"> 
     771                      <object class="GtkScrolledWindow" id="logs_scroll"> 
    772772                        <property name="visible">True</property> 
    773773                        <property name="can_focus">True</property> 
     774                        <property name="vadjustment">logs_vscroll_adjustment</property> 
    774775                        <property name="hscrollbar_policy">automatic</property> 
    775                         <property name="vscrollbar_policy">automatic</property> 
    776776                        <child> 
    777777                          <object class="GtkTreeView" id="logs_treeview"> 
     
    883883  <object class="GtkSizeGroup" id="sensors_1stcol_sizegroup"> 
    884884    <widgets> 
     885      <widget name="ms_orient_label"/> 
     886      <widget name="ms_ang_vel_label"/> 
     887      <widget name="ms_accel_label"/> 
     888      <widget name="gps_lat_lon_label"/> 
    885889      <widget name="gps_speed_label"/> 
    886       <widget name="gps_lat_lon_label"/> 
    887       <widget name="ms_accel_label"/> 
    888       <widget name="ms_ang_vel_label"/> 
    889       <widget name="ms_orient_label"/> 
    890890    </widgets> 
    891891  </object> 
    892892  <object class="GtkSizeGroup" id="ms_data_sizegroup"> 
    893893    <widgets> 
     894      <widget name="ms_orient_1"/> 
     895      <widget name="ms_orient_0"/> 
     896      <widget name="ms_orient_2"/> 
     897      <widget name="ms_ang_vel_0"/> 
     898      <widget name="ms_ang_vel_1"/> 
     899      <widget name="ms_ang_vel_2"/> 
     900      <widget name="ms_accel_0"/> 
     901      <widget name="ms_accel_1"/> 
    894902      <widget name="ms_accel_2"/> 
    895       <widget name="ms_accel_1"/> 
    896       <widget name="ms_accel_0"/> 
    897       <widget name="ms_ang_vel_2"/> 
    898       <widget name="ms_ang_vel_1"/> 
    899       <widget name="ms_ang_vel_0"/> 
    900       <widget name="ms_orient_2"/> 
    901       <widget name="ms_orient_0"/> 
    902       <widget name="ms_orient_1"/> 
    903903    </widgets> 
    904904  </object> 
     905  <object class="GtkAdjustment" id="logs_vscroll_adjustment"> 
     906    <property name="upper">100</property> 
     907    <property name="step_increment">1</property> 
     908    <property name="page_increment">10</property> 
     909    <property name="page_size">10</property> 
     910  </object> 
    905911</interface>