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):
|
def __init__(self, node):
|
||||||
self.node = node
|
self.node = node
|
||||||
self.label = node.getAttribute('label')
|
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):
|
def __str__(self):
|
||||||
return " label = %s\n" % self.label
|
return " label = %s\n" % self.label
|
||||||
|
@ -629,6 +642,7 @@ class Config:
|
||||||
# Allow to change the menu appearance
|
# Allow to change the menu appearance
|
||||||
def get_hud_ui_parameters(self):
|
def get_hud_ui_parameters(self):
|
||||||
hui = {}
|
hui = {}
|
||||||
|
|
||||||
default_text = 'FPDB Menu - Right click\nLeft-Drag to Move'
|
default_text = 'FPDB Menu - Right click\nLeft-Drag to Move'
|
||||||
try:
|
try:
|
||||||
hui['label'] = self.ui.label
|
hui['label'] = self.ui.label
|
||||||
|
@ -636,6 +650,39 @@ class Config:
|
||||||
hui['label'] = default_text
|
hui['label'] = default_text
|
||||||
except:
|
except:
|
||||||
hui['label'] = default_text
|
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
|
return hui
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -4,8 +4,97 @@
|
||||||
|
|
||||||
<import callFpdbHud = "True" interval = "10" fastStoreHudCache="False" hhArchiveBase="~/.fpdb/HandHistories/" saveActions="True"></import>
|
<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>
|
<supported_sites>
|
||||||
|
|
||||||
|
|
|
@ -91,7 +91,7 @@ class HUD_main(object):
|
||||||
self.db_name = db_name
|
self.db_name = db_name
|
||||||
self.config = Configuration.Config(file=options.config, dbname=options.dbname)
|
self.config = Configuration.Config(file=options.config, dbname=options.dbname)
|
||||||
self.hud_dict = {}
|
self.hud_dict = {}
|
||||||
self.hud_params = def_hud_params
|
self.hud_params = self.config.get_hud_ui_parameters()
|
||||||
|
|
||||||
# a thread to read stdin
|
# a thread to read stdin
|
||||||
gobject.threads_init() # this is required
|
gobject.threads_init() # this is required
|
||||||
|
|
Loading…
Reference in New Issue
Block a user