Try to make hud more configurable
Modified files: * Configuration.py * HUD_config.xml.example * HUD_main.py Instead of tweaking aggregation settings directly in code, make the values configurable through HUD_config.xml; use the newly created <hud_ui> element for this. Retain coding convention and key-value names as they are.
This commit is contained in:
parent
b3ab2c3b81
commit
a232a94eb1
|
@ -282,6 +282,19 @@ class HudUI:
|
|||
def __init__(self, node):
|
||||
self.node = node
|
||||
self.label = node.getAttribute('label')
|
||||
#
|
||||
self.aggregate_ring = fix_tf(node.getAttribute('aggregate_ring_game_stats'))
|
||||
self.aggregate_tour = fix_tf(node.getAttribute('aggregate_tourney_stats'))
|
||||
self.hud_style = node.getAttribute('stat_aggregation_range')
|
||||
self.hud_days = node.getAttribute('aggregation_days')
|
||||
self.agg_bb_mult = node.getAttribute('aggregation_level_multiplier')
|
||||
#
|
||||
self.h_aggregate_ring = fix_tf(node.getAttribute('aggregate_hero_ring_game_stats'))
|
||||
self.h_aggregate_tour = fix_tf(node.getAttribute('aggregate_hero_tourney_stats'))
|
||||
self.h_hud_style = node.getAttribute('hero_stat_aggregation_range')
|
||||
self.h_hud_days = node.getAttribute('hero_aggregation_days')
|
||||
self.h_agg_bb_mult = node.getAttribute('hero_aggregation_level_multiplier')
|
||||
|
||||
|
||||
def __str__(self):
|
||||
return " label = %s\n" % self.label
|
||||
|
@ -629,6 +642,7 @@ class Config:
|
|||
# Allow to change the menu appearance
|
||||
def get_hud_ui_parameters(self):
|
||||
hui = {}
|
||||
|
||||
default_text = 'FPDB Menu - Right click\nLeft-Drag to Move'
|
||||
try:
|
||||
hui['label'] = self.ui.label
|
||||
|
@ -636,6 +650,39 @@ class Config:
|
|||
hui['label'] = default_text
|
||||
except:
|
||||
hui['label'] = default_text
|
||||
|
||||
try: hui['aggregate_ring'] = self.ui.aggregate_ring
|
||||
except: hui['aggregate_ring'] = False
|
||||
|
||||
try: hui['aggregate_tour'] = self.ui.aggregate_tour
|
||||
except: hui['aggregate_tour'] = True
|
||||
|
||||
try: hui['hud_style'] = self.ui.hud_style
|
||||
except: hui['hud_style'] = 'A'
|
||||
|
||||
try: hui['hud_days'] = self.ui.hud_days
|
||||
except: hui['hud_days'] = 90
|
||||
|
||||
try: hui['agg_bb_mult'] = self.ui.agg_bb_mult
|
||||
except: hui['agg_bb_mult'] = 1
|
||||
|
||||
# Hero specific
|
||||
|
||||
try: hui['h_aggregate_ring'] = self.ui.h_aggregate_ring
|
||||
except: hui['h_aggregate_ring'] = False
|
||||
|
||||
try: hui['h_aggregate_tour'] = self.ui.h_aggregate_tour
|
||||
except: hui['h_aggregate_tour'] = True
|
||||
|
||||
try: hui['h_hud_style'] = self.ui.h_hud_style
|
||||
except: hui['h_hud_style'] = 'S'
|
||||
|
||||
try: hui['h_hud_days'] = self.ui.h_hud_days
|
||||
except: hui['h_hud_days'] = 30
|
||||
|
||||
try: hui['h_agg_bb_mult'] = self.ui.h_agg_bb_mult
|
||||
except: hui['h_agg_bb_mult'] = 1
|
||||
|
||||
return hui
|
||||
|
||||
|
||||
|
|
|
@ -4,8 +4,97 @@
|
|||
|
||||
<import callFpdbHud = "True" interval = "10" fastStoreHudCache="False" hhArchiveBase="~/.fpdb/HandHistories/" saveActions="True"></import>
|
||||
|
||||
<hud_ui label="FPDB Menu - Right-click
|
||||
Left-Drag to Move" />
|
||||
|
||||
<!-- These values need some explaining
|
||||
|
||||
aggregate_ring_game_stats :
|
||||
- True/False
|
||||
- if set to True, includes data from other blind levels
|
||||
- defaults to False
|
||||
|
||||
aggregate_tourney_stats :
|
||||
- True/False
|
||||
- if set to True, includes data from other blind levels
|
||||
- defaults to True
|
||||
|
||||
stat_aggregation_range :
|
||||
- A/S/T
|
||||
- if set to A, includes stats from all time
|
||||
- if set to S, includes stats from current sessions
|
||||
- if set to T, includes stats from last N days; set value in hud_days
|
||||
- defaults to A
|
||||
|
||||
aggregation_days :
|
||||
- a numeric value
|
||||
- if hud_style is set to 'T', this value tells how many days are
|
||||
included in the stat calculation
|
||||
- defaults to 90
|
||||
- value not used by default, as depends on hud_style setting
|
||||
|
||||
aggregation_level_multiplier :
|
||||
- float value
|
||||
- defines how many blind levels are used for aggregation
|
||||
- the logic is weird, at best
|
||||
- if value is 100, almost all levels are included
|
||||
- if value is 2.1, levels from half to double the current blind
|
||||
level are included
|
||||
- if value it 1, no aggregation is performed
|
||||
- defaults to 1
|
||||
|
||||
|
||||
The following values define how hero's stats are done
|
||||
|
||||
|
||||
aggregate_hero_ring_game_stats :
|
||||
- True/False
|
||||
- if set to True, hero's data is calculated over multiple blind levels
|
||||
- defaults to False
|
||||
|
||||
aggregate_hero_tourney_stats :
|
||||
- True/False
|
||||
- if set to True, hero's data is calculated over multiple blind levels
|
||||
- defaults to False
|
||||
|
||||
hero_stat_aggregation_range :
|
||||
- A/S/T
|
||||
- if set to A, includes stats from all time
|
||||
- if set to S, includes stats from current sessions
|
||||
- if set to T, includes stats from last N days; set value in hud_days
|
||||
- defaults to S
|
||||
|
||||
hero_aggregation_days :
|
||||
- a numeric value
|
||||
- if hero_stat_aggregation_range is set to 'T', this value tells
|
||||
how many days are included in the stat calculation
|
||||
- defaults to 30
|
||||
- value not used by default, as depends on hud_style setting
|
||||
|
||||
hero_aggregation_level_multiplier :
|
||||
- float value
|
||||
- defines how many blind levels are used for aggregation
|
||||
- the logic is weird, at best
|
||||
- if value is 100, almost all levels are included
|
||||
- if value is 2.1, levels from half to double the current blind
|
||||
level are included
|
||||
- if value it 1, no aggregation is performed
|
||||
- defaults to 1
|
||||
-->
|
||||
<hud_ui
|
||||
aggregate_ring_game_stats="False"
|
||||
aggregate_tourney_stats="False"
|
||||
stat_aggregation_style="A"
|
||||
aggregation_days="90"
|
||||
aggregation_level_multiplier="1"
|
||||
|
||||
aggregate_hero_ring_game_stats="False"
|
||||
aggregate_hero_tourney_stats="True"
|
||||
hero_stat_aggregation_range="S"
|
||||
hero_aggregation_days="30"
|
||||
hero_aggregation_level_multiplier="1"
|
||||
|
||||
label="FPDB Menu - Right-click
|
||||
Left-Drag to Move"
|
||||
/>
|
||||
|
||||
<supported_sites>
|
||||
|
||||
|
|
|
@ -91,7 +91,7 @@ class HUD_main(object):
|
|||
self.db_name = db_name
|
||||
self.config = Configuration.Config(file=options.config, dbname=options.dbname)
|
||||
self.hud_dict = {}
|
||||
self.hud_params = def_hud_params
|
||||
self.hud_params = self.config.get_hud_ui_parameters()
|
||||
|
||||
# a thread to read stdin
|
||||
gobject.threads_init() # this is required
|
||||
|
|
Loading…
Reference in New Issue
Block a user