def mkview(self): """Create and return view object for the model.""" if self.view is not None: return self.view v = gtk.TreeView(self.model) v.set_reorderable(True) v.set_enable_search(False) v.set_rules_hint(True) v.connect('key-press-event', self.__view_key) v.show() uiutil.mkviewcoltxt(v, 'No.', COL_EVNO, self.__editcol_cb, editcb=self.__editstart_cb) uiutil.mkviewcoltxt(v, 'Prefix', COL_PREFIX, self.__editcol_cb, expand=True, editcb=self.__editstart_cb) uiutil.mkviewcoltxt(v, 'Info', COL_INFO, self.__editcol_cb, expand=True, editcb=self.__editstart_cb) uiutil.mkviewcoltxt(v, 'Ser', COL_SERIES, self.__editcol_cb, editcb=self.__editstart_cb) i = gtk.CellRendererCombo() i.set_property('editable', True) m = gtk.ListStore(gobject.TYPE_STRING) for race in self.racetypes: m.append([race]) i.set_property('model', m) i.set_property('text-column', 0) i.connect('edited', self.__editcol_cb, COL_TYPE) i.connect('editing-started', self.__editstart_cb, 'combo') j = gtk.TreeViewColumn('Type', i, text=COL_TYPE) j.set_min_width(90) v.append_column(j) self.view = v return self.view
def __init__(self, meet, event, ui=True): self.meet = meet self.event = event # Note: now a treerowref self.evno = meet.edb.getvalue(event, eventdb.COL_EVNO) self.series = meet.edb.getvalue(event, eventdb.COL_SERIES) self.configpath = os.path.join(self.meet.configpath, 'event_' + self.evno) self.log = logging.getLogger('scbdo.sportif') self.log.setLevel(logging.DEBUG) self.log.debug('opening event: ' + str(self.evno)) # race run time attributes self.readonly = not ui self.start = None self.lstart = None self.finish = None self.winopen = True self.timerstat = 'idle' self.minlap = tod.tod('20:00.0') self.riders = gtk.ListStore(gobject.TYPE_STRING, # BIB = 0 gobject.TYPE_STRING, # NAMESTR = 1 gobject.TYPE_STRING, # CAT = 2 gobject.TYPE_STRING, # COMMENT = 3 gobject.TYPE_PYOBJECT, # RFTIME = 4 gobject.TYPE_PYOBJECT) # RFSEEN = 5 b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, 'sportif.ui')) # !! destroy?? self.frame = b.get_object('race_vbox') self.frame.connect('destroy', self.shutdown) # meta info pane self.title_namestr = b.get_object('title_namestr') self.set_titlestr() self.time_lbl = b.get_object('time_lbl') self.time_lbl.modify_font(pango.FontDescription("monospace bold")) # results pane t = gtk.TreeView(self.riders) t.set_reorderable(True) t.set_rules_hint(True) t.show() uiutil.mkviewcoltxt(t, 'No.', COL_BIB, calign=1.0) uiutil.mkviewcoltxt(t, 'Rider', COL_NAMESTR, expand=True) uiutil.mkviewcoltxt(t, 'Comment', COL_COMMENT, cb=self.editcol_cb, width=120) b.get_object('race_result_win').add(t) if ui: # connect signal handlers b.connect_signals(self) self.meet.edb.editevent(event, winopen=True) self.meet.rfu.arm()
def __init__(self): self.io = uscbio() self.io.setcb(self.msg_cb) self.started = False self.running = True self.timetick = TIMETICK self.fontsize = FONTSIZE fnszstr = str(self.fontsize)+'px' b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, 'rr_announce.ui')) self.window = b.get_object('window') self.lbl_header = b.get_object('lbl_header') self.lbl_header.modify_font(pango.FontDescription('bold '+fnszstr)) self.lbl_header.set_text('SCBdo road announce ' + scbdo.VERSION) self.elap_lbl = b.get_object('elap_lbl') self.elap_lbl.set_text('--:--') self.elap_lbl.modify_font(pango.FontDescription('monospace bold '+fnszstr)) self.map_winsz = 0 self.map_xoft = 0 self.map_w = 0 self.map_area = b.get_object('map_area') self.map_src = None self.map_area.set_size_request(-1, 80) self.map_area.show() # lap & bunch status values self.cur_lap = tod.tod(0) self.cur_split = tod.tod(0) self.cur_bunchid = 0 self.cur_bunchcnt = 0 self.riders = gtk.ListStore(gobject.TYPE_STRING, # rank gobject.TYPE_STRING, # no. gobject.TYPE_STRING, # namestr gobject.TYPE_STRING, # cat/com gobject.TYPE_STRING, # timestr gobject.TYPE_STRING, # bunchcnt gobject.TYPE_STRING, # colour gobject.TYPE_PYOBJECT) # rftod t = gtk.TreeView(self.riders) self.view = t t.set_reorderable(False) t.set_rules_hint(False) t.set_headers_visible(False) self.search_lbl = b.get_object('search_lbl') self.search_lbl.modify_font(pango.FontDescription(fnszstr)) self.search_entry = b.get_object('search_entry') self.search_entry.modify_font(pango.FontDescription(fnszstr)) t.set_search_entry(b.get_object('search_entry')) t.set_search_column(1) t.modify_font(pango.FontDescription('bold '+fnszstr)) uiutil.mkviewcoltxt(t, 'Rank', 0,width=60) uiutil.mkviewcoltxt(t, 'No.', 1,calign=1.0,width=60) uiutil.mkviewcoltxt(t, 'Rider', 2,expand=True,fixed=True) uiutil.mkviewcoltxt(t, 'Cat', 3,calign=0.0) uiutil.mkviewcoltxt(t, 'Time', 4,calign=1.0,width=100, fontdesc='monospace bold') uiutil.mkviewcoltxt(t, 'Bunch', 5,width=50,bgcol=6,calign=0.5) t.show() b.get_object('text_scroll').add(t) b.connect_signals(self)
def __init__(self, meet, event, ui=True): """Constructor.""" self.meet = meet self.event = event # Note: now a treerowref self.evno = meet.edb.getvalue(event, eventdb.COL_EVNO) self.evtype = meet.edb.getvalue(event, eventdb.COL_TYPE) self.series = meet.edb.getvalue(event, eventdb.COL_SERIES) self.configpath = os.path.join(self.meet.configpath, 'event_' + self.evno) self.log = logging.getLogger('scbdo.points') self.log.setLevel(logging.DEBUG) self.log.debug('opening event: ' + str(self.evno)) # race run time attributes self.onestart = False self.readonly = not ui self.winopen = True self.riders = gtk.ListStore( gobject.TYPE_STRING, # 0 bib gobject.TYPE_STRING, # 1 first name gobject.TYPE_STRING, # 2 last name gobject.TYPE_STRING, # 3 club gobject.TYPE_STRING, # 4 comment gobject.TYPE_INT, # 5 total gobject.TYPE_PYOBJECT, # 6 time total gobject.TYPE_STRING, # 7 place gobject.TYPE_PYOBJECT) # event points b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, 'omnium.ui')) self.frame = b.get_object('omnium_vbox') self.frame.connect('destroy', self.shutdown) # info pane self.info_expand = b.get_object('info_expand') b.get_object('omnium_info_evno').set_text(self.evno) self.showev = b.get_object('omnium_info_evno_show') self.prefix_ent = b.get_object('omnium_info_prefix') self.prefix_ent.set_text( self.meet.edb.getvalue(self.event, eventdb.COL_PREFIX)) self.prefix_ent.connect('changed', self.editent_cb, eventdb.COL_PREFIX) self.info_ent = b.get_object('omnium_info_title') self.info_ent.set_text( self.meet.edb.getvalue(self.event, eventdb.COL_INFO)) self.info_ent.connect('changed', self.editent_cb, eventdb.COL_INFO) self.update_expander_lbl_cb() # riders pane t = gtk.TreeView(self.riders) self.view = t t.set_reorderable(True) t.set_enable_search(False) t.set_rules_hint(True) # riders columns uiutil.mkviewcoltxt(t, 'No.', COL_BIB, calign=1.0) uiutil.mkviewcoltxt(t, 'First Name', COL_FIRST, expand=True) uiutil.mkviewcoltxt(t, 'Last Name', COL_LAST, expand=True) uiutil.mkviewcoltxt(t, 'Club', COL_CLUB) uiutil.mkviewcoltxt(t, 'Points', COL_TOTAL, calign=1.0) uiutil.mkviewcoltod(t, 'Time', cb=self.todstr) uiutil.mkviewcoltxt(t, 'Rank', COL_PLACE, halign=0.5, calign=0.5) t.show() b.get_object('omnium_result_win').add(t) if ui: # connect signal handlers b.connect_signals(self) # update properties in meet self.meet.menu_race_properties.set_sensitive(True) self.meet.edb.editevent(event, winopen=True) glib.timeout_add_seconds(3, self.delayed_announce)
def __init__(self, meet, event, ui=True): """Constructor. Parameters: meet -- handle to meet object event -- event object handle ui -- display user interface? """ self.meet = meet self.event = event # Note: now a treerowref self.evno = meet.edb.getvalue(event, eventdb.COL_EVNO) self.evtype = meet.edb.getvalue(event, eventdb.COL_TYPE) self.series = meet.edb.getvalue(event, eventdb.COL_SERIES) self.configpath = meet.event_configfile(self.evno) self.log = logging.getLogger('scbdo.race') self.log.setLevel(logging.DEBUG) # config may override? self.log.debug('Creating new event: ' + str(self.evno)) self.results = [] self.readonly = not ui self.onestart = False self.start = None self.lstart = None self.finish = None self.winopen = True self.timerwin = False self.timerstat = 'idle' self.distance = None self.units = 'laps' self.timetype = 'start/finish' self.topn_places = 0 self.topn_event = '' self.topn_transfer = False self.riders = gtk.ListStore(gobject.TYPE_STRING, # 0 bib gobject.TYPE_STRING, # 1 first name gobject.TYPE_STRING, # 2 last name gobject.TYPE_STRING, # 3 club gobject.TYPE_STRING, # 4 xtra info gobject.TYPE_BOOLEAN,# 5 DNF/DNS gobject.TYPE_STRING) # 6 placing b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, 'race.ui')) self.frame = b.get_object('race_vbox') self.frame.connect('destroy', self.shutdown) # info pane self.info_expand = b.get_object('info_expand') b.get_object('race_info_evno').set_text(self.evno) self.showev = b.get_object('race_info_evno_show') self.prefix_ent = b.get_object('race_info_prefix') self.prefix_ent.connect('changed', self.editent_cb, eventdb.COL_PREFIX) self.prefix_ent.set_text(self.meet.edb.getvalue( self.event, eventdb.COL_PREFIX)) self.info_ent = b.get_object('race_info_title') self.info_ent.connect('changed', self.editent_cb, eventdb.COL_INFO) self.info_ent.set_text(self.meet.edb.getvalue( self.event, eventdb.COL_INFO)) self.time_lbl = b.get_object('race_info_time') self.time_lbl.modify_font(pango.FontDescription("monospace bold")) self.type_lbl = b.get_object('race_type') self.type_lbl.set_text(self.meet.edb.getvalue( self.event, eventdb.COL_TYPE).capitalize()) # ctrl pane self.stat_but = b.get_object('race_ctrl_stat_but') self.ctrl_places = b.get_object('race_ctrl_places') self.ctrl_action_combo = b.get_object('race_ctrl_action_combo') self.ctrl_action = b.get_object('race_ctrl_action') self.action_model = b.get_object('race_action_model') # riders pane t = gtk.TreeView(self.riders) self.view = t t.set_reorderable(True) t.set_enable_search(False) t.set_rules_hint(True) # riders columns uiutil.mkviewcoltxt(t, 'No.', COL_BIB, self.editcol_cb, calign=1.0) uiutil.mkviewcoltxt(t, 'First Name', COL_FIRSTNAME, self.editcol_cb, expand=True) uiutil.mkviewcoltxt(t, 'Last Name', COL_LASTNAME, self.editcol_cb, expand=True) uiutil.mkviewcoltxt(t, 'Club', COL_CLUB, self.editcol_cb) uiutil.mkviewcoltxt(t, 'Info', COL_INFO, self.editcol_cb) uiutil.mkviewcolbool(t, 'DNF', COL_DNF, self.dnf_cb) uiutil.mkviewcoltxt(t, 'Place', COL_PLACE, self.editcol_cb, halign=0.5, calign=0.5) t.show() b.get_object('race_result_win').add(t) # start timer and show window if ui: # connect signal handlers b.connect_signals(self) self.meet.menu_race_properties.set_sensitive(True) self.meet.edb.editevent(event, winopen=True) glib.timeout_add_seconds(3, self.delayed_announce)
def __init__(self, meet, event, ui=True): self.meet = meet self.event = event # Note: now a treerowref self.evno = meet.edb.getvalue(event, eventdb.COL_EVNO) self.series = meet.edb.getvalue(event, eventdb.COL_SERIES) self.configpath = os.path.join(self.meet.configpath, 'event_' + self.evno) self.log = logging.getLogger('scbdo.sportif') self.log.setLevel(logging.DEBUG) self.log.debug('opening event: ' + str(self.evno)) # race run time attributes self.readonly = not ui self.start = None self.lstart = None self.finish = None self.winopen = True self.timerstat = 'idle' self.minlap = tod.tod('20:00.0') self.riders = gtk.ListStore( gobject.TYPE_STRING, # BIB = 0 gobject.TYPE_STRING, # NAMESTR = 1 gobject.TYPE_STRING, # CAT = 2 gobject.TYPE_STRING, # COMMENT = 3 gobject.TYPE_PYOBJECT, # RFTIME = 4 gobject.TYPE_PYOBJECT) # RFSEEN = 5 b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, 'sportif.ui')) # !! destroy?? self.frame = b.get_object('race_vbox') self.frame.connect('destroy', self.shutdown) # meta info pane self.title_namestr = b.get_object('title_namestr') self.set_titlestr() self.time_lbl = b.get_object('time_lbl') self.time_lbl.modify_font(pango.FontDescription("monospace bold")) # results pane t = gtk.TreeView(self.riders) t.set_reorderable(True) t.set_rules_hint(True) t.show() uiutil.mkviewcoltxt(t, 'No.', COL_BIB, calign=1.0) uiutil.mkviewcoltxt(t, 'Rider', COL_NAMESTR, expand=True) uiutil.mkviewcoltxt(t, 'Comment', COL_COMMENT, cb=self.editcol_cb, width=120) b.get_object('race_result_win').add(t) if ui: # connect signal handlers b.connect_signals(self) self.meet.edb.editevent(event, winopen=True) self.meet.rfu.arm()
def __init__(self, meet, event, ui=True): """Constructor. Parameters: meet -- handle to meet object event -- event object handle ui -- display user interface? """ self.meet = meet self.event = event # Note: now a treerowref self.evno = meet.edb.getvalue(event, eventdb.COL_EVNO) self.evtype = meet.edb.getvalue(event, eventdb.COL_TYPE) self.series = meet.edb.getvalue(event, eventdb.COL_SERIES) self.configpath = meet.event_configfile(self.evno) self.log = logging.getLogger('scbdo.race') self.log.setLevel(logging.DEBUG) # config may override? self.log.debug('Creating new event: ' + str(self.evno)) self.results = [] self.readonly = not ui self.onestart = False self.start = None self.lstart = None self.finish = None self.winopen = True self.timerwin = False self.timerstat = 'idle' self.distance = None self.units = 'laps' self.timetype = 'start/finish' self.topn_places = 0 self.topn_event = '' self.topn_transfer = False self.riders = gtk.ListStore( gobject.TYPE_STRING, # 0 bib gobject.TYPE_STRING, # 1 first name gobject.TYPE_STRING, # 2 last name gobject.TYPE_STRING, # 3 club gobject.TYPE_STRING, # 4 xtra info gobject.TYPE_BOOLEAN, # 5 DNF/DNS gobject.TYPE_STRING) # 6 placing b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, 'race.ui')) self.frame = b.get_object('race_vbox') self.frame.connect('destroy', self.shutdown) # info pane self.info_expand = b.get_object('info_expand') b.get_object('race_info_evno').set_text(self.evno) self.showev = b.get_object('race_info_evno_show') self.prefix_ent = b.get_object('race_info_prefix') self.prefix_ent.connect('changed', self.editent_cb, eventdb.COL_PREFIX) self.prefix_ent.set_text( self.meet.edb.getvalue(self.event, eventdb.COL_PREFIX)) self.info_ent = b.get_object('race_info_title') self.info_ent.connect('changed', self.editent_cb, eventdb.COL_INFO) self.info_ent.set_text( self.meet.edb.getvalue(self.event, eventdb.COL_INFO)) self.time_lbl = b.get_object('race_info_time') self.time_lbl.modify_font(pango.FontDescription("monospace bold")) self.type_lbl = b.get_object('race_type') self.type_lbl.set_text( self.meet.edb.getvalue(self.event, eventdb.COL_TYPE).capitalize()) # ctrl pane self.stat_but = b.get_object('race_ctrl_stat_but') self.ctrl_places = b.get_object('race_ctrl_places') self.ctrl_action_combo = b.get_object('race_ctrl_action_combo') self.ctrl_action = b.get_object('race_ctrl_action') self.action_model = b.get_object('race_action_model') # riders pane t = gtk.TreeView(self.riders) self.view = t t.set_reorderable(True) t.set_enable_search(False) t.set_rules_hint(True) # riders columns uiutil.mkviewcoltxt(t, 'No.', COL_BIB, self.editcol_cb, calign=1.0) uiutil.mkviewcoltxt(t, 'First Name', COL_FIRSTNAME, self.editcol_cb, expand=True) uiutil.mkviewcoltxt(t, 'Last Name', COL_LASTNAME, self.editcol_cb, expand=True) uiutil.mkviewcoltxt(t, 'Club', COL_CLUB, self.editcol_cb) uiutil.mkviewcoltxt(t, 'Info', COL_INFO, self.editcol_cb) uiutil.mkviewcolbool(t, 'DNF', COL_DNF, self.dnf_cb) uiutil.mkviewcoltxt(t, 'Place', COL_PLACE, self.editcol_cb, halign=0.5, calign=0.5) t.show() b.get_object('race_result_win').add(t) # start timer and show window if ui: # connect signal handlers b.connect_signals(self) self.meet.menu_race_properties.set_sensitive(True) self.meet.edb.editevent(event, winopen=True) glib.timeout_add_seconds(3, self.delayed_announce)
def __init__(self, meet, event, ui=True): """Constructor.""" self.meet = meet self.event = event # Note: now a treerowref self.evno = meet.edb.getvalue(event, eventdb.COL_EVNO) self.configpath = os.path.join(self.meet.configpath, 'event_' + self.evno) self.log = logging.getLogger('scbdo.rhcp') self.log.setLevel(logging.DEBUG) self.log.debug('Creating new rhcp event: ' + str(self.evno)) # race run time attributes self.limit_tod = None # Maximum handicap ToD, set on START! self.readonly = not ui self.winopen = True self.timerstat = 'idle' self.start = None self.lstart = None self.riders = gtk.ListStore( gobject.TYPE_STRING, # 0 bib gobject.TYPE_STRING, # 1 series gobject.TYPE_STRING, # 2 namestr gobject.TYPE_STRING, # 3 cat gobject.TYPE_STRING, # 4 comment gobject.TYPE_BOOLEAN, # 5 inrace? gobject.TYPE_PYOBJECT, # 6 hcap gobject.TYPE_PYOBJECT, # 7 finish gobject.TYPE_PYOBJECT, # 8 c-bunch gobject.TYPE_PYOBJECT, # 9 m-bunch gobject.TYPE_STRING) # 10 place b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, 'rhcp.ui')) self.frame = b.get_object('race_vbox') self.frame.connect('destroy', self.shutdown) # meta info pane self.title_namestr = b.get_object('title_namestr') self.set_titlestr() # Control Pane # TODO -> ctrl, places, action # Result Pane t = gtk.TreeView(self.riders) self.view = t t.set_reorderable(True) t.set_rules_hint(True) t.connect('button_press_event', self.treeview_button_press) # TODO: show team name & club but pop up for rider list uiutil.mkviewcolbibser(t) uiutil.mkviewcoltxt(t, 'Rider', COL_NAMESTR, expand=True) #uiutil.mkviewcoltxt(t, 'Cat', COL_CAT, self.editcol_cb) #!!! #uiutil.mkviewcoltod(t, 'Hcap', cb=self.hcapstr, width=60) #uiutil.mkviewcoltod(t, 'RFtime', cb=self.rftimestr) #uiutil.mkviewcoltod(t, 'Bunch', cb=self.bunchstr) uiutil.mkviewcoltxt(t, 'Rank', COL_PLACE, halign=0.5, calign=0.5) t.show() b.get_object('race_result_win').add(t) # show window if ui: b.connect_signals(self) b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, 'tod_context.ui')) self.context_menu = b.get_object('tod_context') b.connect_signals(self) self.meet.edb.editevent(event, winopen=True) self.meet.rfu.arm()
def __init__(self, meet, event, ui=True): """Constructor.""" self.meet = meet self.event = event # Note: now a treerowref self.evno = meet.edb.getvalue(event, eventdb.COL_EVNO) self.evtype = meet.edb.getvalue(event, eventdb.COL_TYPE) self.series = meet.edb.getvalue(event, eventdb.COL_SERIES) self.configpath = os.path.join(self.meet.configpath, 'event_' + self.evno) self.log = logging.getLogger('scbdo.points') self.log.setLevel(logging.DEBUG) self.log.debug('opening event: ' + str(self.evno)) # race run time attributes self.onestart = False self.readonly = not ui self.winopen = True self.riders = gtk.ListStore(gobject.TYPE_STRING, # 0 bib gobject.TYPE_STRING, # 1 first name gobject.TYPE_STRING, # 2 last name gobject.TYPE_STRING, # 3 club gobject.TYPE_STRING, # 4 comment gobject.TYPE_INT, # 5 total gobject.TYPE_PYOBJECT, # 6 time total gobject.TYPE_STRING, # 7 place gobject.TYPE_PYOBJECT) # event points b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, 'omnium.ui')) self.frame = b.get_object('omnium_vbox') self.frame.connect('destroy', self.shutdown) # info pane self.info_expand = b.get_object('info_expand') b.get_object('omnium_info_evno').set_text(self.evno) self.showev = b.get_object('omnium_info_evno_show') self.prefix_ent = b.get_object('omnium_info_prefix') self.prefix_ent.set_text(self.meet.edb.getvalue( self.event, eventdb.COL_PREFIX)) self.prefix_ent.connect('changed', self.editent_cb, eventdb.COL_PREFIX) self.info_ent = b.get_object('omnium_info_title') self.info_ent.set_text(self.meet.edb.getvalue( self.event, eventdb.COL_INFO)) self.info_ent.connect('changed', self.editent_cb, eventdb.COL_INFO) self.update_expander_lbl_cb() # riders pane t = gtk.TreeView(self.riders) self.view = t t.set_reorderable(True) t.set_enable_search(False) t.set_rules_hint(True) # riders columns uiutil.mkviewcoltxt(t, 'No.', COL_BIB, calign=1.0) uiutil.mkviewcoltxt(t, 'First Name', COL_FIRST, expand=True) uiutil.mkviewcoltxt(t, 'Last Name', COL_LAST, expand=True) uiutil.mkviewcoltxt(t, 'Club', COL_CLUB) uiutil.mkviewcoltxt(t, 'Points', COL_TOTAL, calign=1.0) uiutil.mkviewcoltod(t, 'Time', cb=self.todstr) uiutil.mkviewcoltxt(t, 'Rank', COL_PLACE, halign=0.5, calign=0.5) t.show() b.get_object('omnium_result_win').add(t) if ui: # connect signal handlers b.connect_signals(self) # update properties in meet self.meet.menu_race_properties.set_sensitive(True) self.meet.edb.editevent(event, winopen=True) glib.timeout_add_seconds(3, self.delayed_announce)
def mkview(self, bib=True, first=True, last=True, club=True, cat=False, series=True, refid=False): """Create and return view object for the model.""" if self.view is not None: return self.view v = gtk.TreeView(self.model) v.set_reorderable(True) v.set_enable_search(False) v.set_rules_hint(True) v.connect('key-press-event', self.__view_key) v.show() self.colmap = {} colcnt = 0 if bib: uiutil.mkviewcoltxt(v, 'No.', COL_BIB, self.__editcol_cb, halign=0.5, calign=0.5, editcb=self.__editstart_cb) self.colmap[COL_BIB] = colcnt colcnt += 1 if first: uiutil.mkviewcoltxt(v, 'First Name', COL_FIRST, self.__editcol_cb, expand=True, editcb=self.__editstart_cb) self.colmap[COL_FIRST] = colcnt colcnt += 1 if last: uiutil.mkviewcoltxt(v, 'Last Name', COL_LAST, self.__editcol_cb, expand=True, editcb=self.__editstart_cb) self.colmap[COL_LAST] = colcnt colcnt += 1 if club: uiutil.mkviewcoltxt(v, 'Club', COL_CLUB, self.__editcol_cb, editcb=self.__editstart_cb) self.colmap[COL_CLUB] = colcnt colcnt += 1 if cat: uiutil.mkviewcoltxt(v, 'Cat', COL_CAT, self.__editcol_cb, editcb=self.__editstart_cb) self.colmap[COL_CAT] = colcnt colcnt += 1 if series: uiutil.mkviewcoltxt(v, 'Ser', COL_SERIES, self.__editcol_cb, editcb=self.__editstart_cb) self.colmap[COL_SERIES] = colcnt colcnt += 1 if refid: uiutil.mkviewcoltxt(v, 'Refid', COL_REFID, self.__editcol_cb, editcb=self.__editstart_cb) self.colmap[COL_REFID] = colcnt colcnt += 1 self.view = v return self.view
def __init__(self, meet, event, ui=True): """Constructor.""" self.meet = meet self.event = event # Note: now a treerowref self.evno = meet.edb.getvalue(event, eventdb.COL_EVNO) self.configpath = os.path.join(self.meet.configpath, 'event_' + self.evno) self.log = logging.getLogger('scbdo.irtt') self.log.setLevel(logging.DEBUG) self.log.debug('Creating new irtt event: ' + str(self.evno)) # properties # race run time attributes self.onestart = False self.readonly = not ui self.winopen = True self.timerstat = 'idle' self.start = None self.lstart = None self.start_unload = None self.results = tod.todlist('NET') self.unstarters = {} self.curfintod = None self.recent_starts = {} self.riders = gtk.ListStore( gobject.TYPE_STRING, # 0 bib gobject.TYPE_STRING, # 1 series gobject.TYPE_STRING, # 2 namestr gobject.TYPE_STRING, # 3 cat gobject.TYPE_STRING, # 4 comment gobject.TYPE_PYOBJECT, # 5 wstart gobject.TYPE_PYOBJECT, # 6 tstart gobject.TYPE_PYOBJECT, # 7 finish gobject.TYPE_STRING) # 8 place b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, 'irtt.ui')) self.frame = b.get_object('race_vbox') self.frame.connect('destroy', self.shutdown) # meta info pane self.title_namestr = b.get_object('title_namestr') self.set_titlestr() # Timer Panes mf = b.get_object('race_timer_pane') self.sl = timerpane.timerpane('Start Line', doser=True) self.sl.disable() self.sl.bibent.connect('activate', self.bibent_cb, self.sl) self.sl.serent.connect('activate', self.bibent_cb, self.sl) self.fl = timerpane.timerpane('Finish Line', doser=True) self.fl.disable() self.fl.bibent.connect('activate', self.bibent_cb, self.fl) self.fl.serent.connect('activate', self.bibent_cb, self.fl) mf.pack_start(self.sl.frame) mf.pack_start(self.fl.frame) mf.set_focus_chain([self.sl.frame, self.fl.frame, self.sl.frame]) # Result Pane t = gtk.TreeView(self.riders) self.view = t t.set_reorderable(True) t.set_rules_hint(True) t.connect('button_press_event', self.treeview_button_press) # TODO: show team name & club but pop up for rider list uiutil.mkviewcolbibser(t) uiutil.mkviewcoltxt(t, 'Rider', COL_NAMESTR, expand=True) uiutil.mkviewcoltxt(t, 'Cat', COL_CAT, self.editcol_cb) # -> Add in start time field with edit! uiutil.mkviewcoltod(t, 'Start', cb=self.wallstartstr, width=90) uiutil.mkviewcoltod(t, 'Time', cb=self.elapstr) uiutil.mkviewcoltxt(t, 'Rank', COL_PLACE, halign=0.5, calign=0.5) t.show() b.get_object('race_result_win').add(t) # show window if ui: b.connect_signals(self) b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, 'tod_context.ui')) self.context_menu = b.get_object('tod_context') b.connect_signals(self) self.meet.edb.editevent(event, winopen=True) self.meet.rfu.arm()
def __init__(self, meet, event, ui=True): """Constructor.""" self.meet = meet self.event = event # Note: now a treerowref self.evno = meet.edb.getvalue(event, eventdb.COL_EVNO) self.configpath = os.path.join(self.meet.configpath, 'event_' + self.evno) self.log = logging.getLogger('scbdo.rhcp') self.log.setLevel(logging.DEBUG) self.log.debug('Creating new rhcp event: ' + str(self.evno)) # race run time attributes self.limit_tod = None # Maximum handicap ToD, set on START! self.readonly = not ui self.winopen = True self.timerstat = 'idle' self.start = None self.lstart = None self.riders = gtk.ListStore(gobject.TYPE_STRING, # 0 bib gobject.TYPE_STRING, # 1 series gobject.TYPE_STRING, # 2 namestr gobject.TYPE_STRING, # 3 cat gobject.TYPE_STRING, # 4 comment gobject.TYPE_BOOLEAN, # 5 inrace? gobject.TYPE_PYOBJECT, # 6 hcap gobject.TYPE_PYOBJECT, # 7 finish gobject.TYPE_PYOBJECT, # 8 c-bunch gobject.TYPE_PYOBJECT, # 9 m-bunch gobject.TYPE_STRING) # 10 place b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, 'rhcp.ui')) self.frame = b.get_object('race_vbox') self.frame.connect('destroy', self.shutdown) # meta info pane self.title_namestr = b.get_object('title_namestr') self.set_titlestr() # Control Pane # TODO -> ctrl, places, action # Result Pane t = gtk.TreeView(self.riders) self.view = t t.set_reorderable(True) t.set_rules_hint(True) t.connect('button_press_event', self.treeview_button_press) # TODO: show team name & club but pop up for rider list uiutil.mkviewcolbibser(t) uiutil.mkviewcoltxt(t, 'Rider', COL_NAMESTR, expand=True) #uiutil.mkviewcoltxt(t, 'Cat', COL_CAT, self.editcol_cb) #!!! #uiutil.mkviewcoltod(t, 'Hcap', cb=self.hcapstr, width=60) #uiutil.mkviewcoltod(t, 'RFtime', cb=self.rftimestr) #uiutil.mkviewcoltod(t, 'Bunch', cb=self.bunchstr) uiutil.mkviewcoltxt(t, 'Rank', COL_PLACE, halign=0.5, calign=0.5) t.show() b.get_object('race_result_win').add(t) # show window if ui: b.connect_signals(self) b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, 'tod_context.ui')) self.context_menu = b.get_object('tod_context') b.connect_signals(self) self.meet.edb.editevent(event, winopen=True) self.meet.rfu.arm()
def __init__(self, meet, event, ui=True): """Constructor.""" self.meet = meet self.event = event # Note: now a treerowref self.evno = meet.edb.getvalue(event, eventdb.COL_EVNO) self.configpath = os.path.join(self.meet.configpath, 'event_' + self.evno) self.log = logging.getLogger('scbdo.irtt') self.log.setLevel(logging.DEBUG) self.log.debug('Creating new irtt event: ' + str(self.evno)) # properties # race run time attributes self.onestart = False self.readonly = not ui self.winopen = True self.timerstat = 'idle' self.start = None self.lstart = None self.start_unload = None self.results = tod.todlist('NET') self.unstarters = {} self.curfintod = None self.recent_starts = {} self.riders = gtk.ListStore(gobject.TYPE_STRING, # 0 bib gobject.TYPE_STRING, # 1 series gobject.TYPE_STRING, # 2 namestr gobject.TYPE_STRING, # 3 cat gobject.TYPE_STRING, # 4 comment gobject.TYPE_PYOBJECT, # 5 wstart gobject.TYPE_PYOBJECT, # 6 tstart gobject.TYPE_PYOBJECT, # 7 finish gobject.TYPE_STRING) # 8 place b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, 'irtt.ui')) self.frame = b.get_object('race_vbox') self.frame.connect('destroy', self.shutdown) # meta info pane self.title_namestr = b.get_object('title_namestr') self.set_titlestr() # Timer Panes mf = b.get_object('race_timer_pane') self.sl = timerpane.timerpane('Start Line', doser=True) self.sl.disable() self.sl.bibent.connect('activate', self.bibent_cb, self.sl) self.sl.serent.connect('activate', self.bibent_cb, self.sl) self.fl = timerpane.timerpane('Finish Line', doser=True) self.fl.disable() self.fl.bibent.connect('activate', self.bibent_cb, self.fl) self.fl.serent.connect('activate', self.bibent_cb, self.fl) mf.pack_start(self.sl.frame) mf.pack_start(self.fl.frame) mf.set_focus_chain([self.sl.frame, self.fl.frame, self.sl.frame]) # Result Pane t = gtk.TreeView(self.riders) self.view = t t.set_reorderable(True) t.set_rules_hint(True) t.connect('button_press_event', self.treeview_button_press) # TODO: show team name & club but pop up for rider list uiutil.mkviewcolbibser(t) uiutil.mkviewcoltxt(t, 'Rider', COL_NAMESTR, expand=True) uiutil.mkviewcoltxt(t, 'Cat', COL_CAT, self.editcol_cb) # -> Add in start time field with edit! uiutil.mkviewcoltod(t, 'Start', cb=self.wallstartstr, width=90) uiutil.mkviewcoltod(t, 'Time', cb=self.elapstr) uiutil.mkviewcoltxt(t, 'Rank', COL_PLACE, halign=0.5, calign=0.5) t.show() b.get_object('race_result_win').add(t) # show window if ui: b.connect_signals(self) b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, 'tod_context.ui')) self.context_menu = b.get_object('tod_context') b.connect_signals(self) self.meet.edb.editevent(event, winopen=True) self.meet.rfu.arm()
def __init__(self): self.io = uscbio() self.io.setcb(self.msg_cb) self.started = False self.running = True self.timetick = TIMETICK self.fontsize = FONTSIZE fnszstr = str(self.fontsize) + "px" b = gtk.Builder() b.add_from_file(os.path.join(scbdo.UI_PATH, "rr_announce.ui")) self.window = b.get_object("window") self.lbl_header = b.get_object("lbl_header") self.lbl_header.modify_font(pango.FontDescription("bold " + fnszstr)) self.lbl_header.set_text("SCBdo road announce " + scbdo.VERSION) self.elap_lbl = b.get_object("elap_lbl") self.elap_lbl.set_text("--:--") self.elap_lbl.modify_font(pango.FontDescription("monospace bold " + fnszstr)) self.map_winsz = 0 self.map_xoft = 0 self.map_w = 0 self.map_area = b.get_object("map_area") self.map_src = None self.map_area.set_size_request(-1, 80) self.map_area.show() # lap & bunch status values self.cur_lap = tod.tod(0) self.cur_split = tod.tod(0) self.cur_bunchid = 0 self.cur_bunchcnt = 0 self.riders = gtk.ListStore( gobject.TYPE_STRING, # rank gobject.TYPE_STRING, # no. gobject.TYPE_STRING, # namestr gobject.TYPE_STRING, # cat/com gobject.TYPE_STRING, # timestr gobject.TYPE_STRING, # bunchcnt gobject.TYPE_STRING, # colour gobject.TYPE_PYOBJECT, ) # rftod t = gtk.TreeView(self.riders) self.view = t t.set_reorderable(False) t.set_rules_hint(False) t.set_headers_visible(False) self.search_lbl = b.get_object("search_lbl") self.search_lbl.modify_font(pango.FontDescription(fnszstr)) self.search_entry = b.get_object("search_entry") self.search_entry.modify_font(pango.FontDescription(fnszstr)) t.set_search_entry(b.get_object("search_entry")) t.set_search_column(1) t.modify_font(pango.FontDescription("bold " + fnszstr)) uiutil.mkviewcoltxt(t, "Rank", 0, width=60) uiutil.mkviewcoltxt(t, "No.", 1, calign=1.0, width=60) uiutil.mkviewcoltxt(t, "Rider", 2, expand=True, fixed=True) uiutil.mkviewcoltxt(t, "Cat", 3, calign=0.0) uiutil.mkviewcoltxt(t, "Time", 4, calign=1.0, width=100, fontdesc="monospace bold") uiutil.mkviewcoltxt(t, "Bunch", 5, width=50, bgcol=6, calign=0.5) t.show() b.get_object("text_scroll").add(t) b.connect_signals(self)