GUI: HUD configurator fully working, dont even need to restart fpdb
This commit is contained in:
parent
5bf7937f9e
commit
c23a1388fc
|
@ -655,6 +655,14 @@ class Config:
|
||||||
if site_node.getAttribute("site_name") == site:
|
if site_node.getAttribute("site_name") == site:
|
||||||
return site_node
|
return site_node
|
||||||
|
|
||||||
|
def getGameNode(self,gameName):
|
||||||
|
"""returns DOM game node for a given game"""
|
||||||
|
for gameNode in self.doc.getElementsByTagName("game"):
|
||||||
|
#print "getGameNode gameNode:",gameNode
|
||||||
|
if gameNode.getAttribute("game_name") == gameName:
|
||||||
|
return gameNode
|
||||||
|
#end def getGameNode
|
||||||
|
|
||||||
def get_aux_node(self, aux):
|
def get_aux_node(self, aux):
|
||||||
for aux_node in self.doc.getElementsByTagName("aw"):
|
for aux_node in self.doc.getElementsByTagName("aw"):
|
||||||
if aux_node.getAttribute("name") == aux:
|
if aux_node.getAttribute("name") == aux:
|
||||||
|
@ -734,6 +742,49 @@ class Config:
|
||||||
location_node.setAttribute("y", str( locations[i-1][1] ))
|
location_node.setAttribute("y", str( locations[i-1][1] ))
|
||||||
self.supported_sites[site_name].layout[max].location[i] = ( locations[i-1][0], locations[i-1][1] )
|
self.supported_sites[site_name].layout[max].location[i] = ( locations[i-1][0], locations[i-1][1] )
|
||||||
|
|
||||||
|
def editStats(self, gameName, statArray):
|
||||||
|
"""replaces stat selection for the given gameName with the given statArray"""
|
||||||
|
gameNode = self.getGameNode(gameName)
|
||||||
|
statNodes = gameNode.getElementsByTagName("stat")
|
||||||
|
|
||||||
|
for node in statNodes:
|
||||||
|
gameNode.removeChild(node)
|
||||||
|
|
||||||
|
gameNode.setAttribute("rows", str(len(statArray)))
|
||||||
|
gameNode.setAttribute("cols", str(len(statArray[0])))
|
||||||
|
|
||||||
|
for rowNumber in range(len(statArray)):
|
||||||
|
for columnNumber in range(len(statArray[rowNumber])):
|
||||||
|
newStat=self.doc.createElement("stat")
|
||||||
|
|
||||||
|
newAttrStatName=self.doc.createAttribute("stat_name")
|
||||||
|
newStat.setAttributeNode(newAttrStatName)
|
||||||
|
newStat.setAttribute("stat_name", statArray[rowNumber][columnNumber])
|
||||||
|
|
||||||
|
newAttrStatName=self.doc.createAttribute("row")
|
||||||
|
newStat.setAttributeNode(newAttrStatName)
|
||||||
|
newStat.setAttribute("row", str(rowNumber))
|
||||||
|
|
||||||
|
newAttrStatName=self.doc.createAttribute("col")
|
||||||
|
newStat.setAttributeNode(newAttrStatName)
|
||||||
|
newStat.setAttribute("col", str(columnNumber))
|
||||||
|
|
||||||
|
newAttrStatName=self.doc.createAttribute("click")
|
||||||
|
newStat.setAttributeNode(newAttrStatName)
|
||||||
|
newStat.setAttribute("click", "tog_decorate")
|
||||||
|
|
||||||
|
newAttrStatName=self.doc.createAttribute("popup")
|
||||||
|
newStat.setAttributeNode(newAttrStatName)
|
||||||
|
newStat.setAttribute("popup", "default")
|
||||||
|
|
||||||
|
newAttrStatName=self.doc.createAttribute("tip")
|
||||||
|
newStat.setAttributeNode(newAttrStatName)
|
||||||
|
newStat.setAttribute("tip", "tip1")
|
||||||
|
|
||||||
|
gameNode.appendChild(newStat)
|
||||||
|
statNodes = gameNode.getElementsByTagName("stat")
|
||||||
|
#end def editStats
|
||||||
|
|
||||||
def edit_aux_layout(self, aux_name, max, width = None, height = None, locations = None):
|
def edit_aux_layout(self, aux_name, max, width = None, height = None, locations = None):
|
||||||
aux_node = self.get_aux_node(aux_name)
|
aux_node = self.get_aux_node(aux_name)
|
||||||
layout_node = self.get_layout_node(aux_node, max)
|
layout_node = self.get_layout_node(aux_node, max)
|
||||||
|
|
|
@ -339,6 +339,7 @@ class fpdb:
|
||||||
#end def dia_database_stats
|
#end def dia_database_stats
|
||||||
|
|
||||||
def diaHudConfigurator(self, widget, data=None):
|
def diaHudConfigurator(self, widget, data=None):
|
||||||
|
"""Opens dialog to set parameters (game category, row count, column count for HUD stat configurator"""
|
||||||
self.hudConfiguratorRows=None
|
self.hudConfiguratorRows=None
|
||||||
self.hudConfiguratorColumns=None
|
self.hudConfiguratorColumns=None
|
||||||
self.hudConfiguratorGame=None
|
self.hudConfiguratorGame=None
|
||||||
|
@ -353,8 +354,6 @@ class fpdb:
|
||||||
diaSelections.vbox.add(label)
|
diaSelections.vbox.add(label)
|
||||||
label.show()
|
label.show()
|
||||||
|
|
||||||
#combo=gtk.ComboBox()
|
|
||||||
|
|
||||||
comboGame = gtk.combo_box_new_text()
|
comboGame = gtk.combo_box_new_text()
|
||||||
comboGame.connect("changed", self.hudConfiguratorComboSelection)
|
comboGame.connect("changed", self.hudConfiguratorComboSelection)
|
||||||
diaSelections.vbox.add(comboGame)
|
diaSelections.vbox.add(comboGame)
|
||||||
|
@ -384,11 +383,12 @@ class fpdb:
|
||||||
diaSelections.destroy()
|
diaSelections.destroy()
|
||||||
|
|
||||||
if response == gtk.RESPONSE_ACCEPT and self.hudConfiguratorRows!=None and self.hudConfiguratorColumns!=None and self.hudConfiguratorGame!=None:
|
if response == gtk.RESPONSE_ACCEPT and self.hudConfiguratorRows!=None and self.hudConfiguratorColumns!=None and self.hudConfiguratorGame!=None:
|
||||||
print "clicked ok and selected:", self.hudConfiguratorGame,"with", str(self.hudConfiguratorRows), "rows and", str(self.hudConfiguratorColumns), "columns"
|
#print "clicked ok and selected:", self.hudConfiguratorGame,"with", str(self.hudConfiguratorRows), "rows and", str(self.hudConfiguratorColumns), "columns"
|
||||||
self.diaHudConfiguratorTable()
|
self.diaHudConfiguratorTable()
|
||||||
#end def diaHudConfigurator
|
#end def diaHudConfigurator
|
||||||
|
|
||||||
def hudConfiguratorComboSelection(self, widget):
|
def hudConfiguratorComboSelection(self, widget):
|
||||||
|
#TODO: remove this and handle it directly in diaHudConfigurator
|
||||||
result=widget.get_active_text()
|
result=widget.get_active_text()
|
||||||
if result.endswith(" rows"):
|
if result.endswith(" rows"):
|
||||||
self.hudConfiguratorRows=int(result[0])
|
self.hudConfiguratorRows=int(result[0])
|
||||||
|
@ -399,6 +399,8 @@ class fpdb:
|
||||||
#end def hudConfiguratorComboSelection
|
#end def hudConfiguratorComboSelection
|
||||||
|
|
||||||
def diaHudConfiguratorTable(self):
|
def diaHudConfiguratorTable(self):
|
||||||
|
"""shows dialogue with Table of ComboBoxes to allow choosing of HUD stats"""
|
||||||
|
#TODO: add notices to hud configurator: no duplicates, no empties, display options
|
||||||
#TODO: show explanation of what each stat means
|
#TODO: show explanation of what each stat means
|
||||||
diaHudTable = gtk.Dialog("HUD Configurator - please choose your stats",
|
diaHudTable = gtk.Dialog("HUD Configurator - please choose your stats",
|
||||||
self.window,
|
self.window,
|
||||||
|
@ -421,11 +423,9 @@ class fpdb:
|
||||||
"player", "c", "db_connection", "do_stat", "do_tip", "stat_dict",
|
"player", "c", "db_connection", "do_stat", "do_tip", "stat_dict",
|
||||||
"h", "re", "re_Percent", "re_Places", ): continue
|
"h", "re", "re_Percent", "re_Places", ): continue
|
||||||
statDict[attr]=eval("Stats.%s.__doc__" % (attr))
|
statDict[attr]=eval("Stats.%s.__doc__" % (attr))
|
||||||
#print "statDict:",statDict
|
|
||||||
|
|
||||||
for rowNumber in range(self.hudConfiguratorRows+1):
|
for rowNumber in range(self.hudConfiguratorRows+1):
|
||||||
newRow=[]
|
newRow=[]
|
||||||
|
|
||||||
for columnNumber in range(self.hudConfiguratorColumns+1):
|
for columnNumber in range(self.hudConfiguratorColumns+1):
|
||||||
if rowNumber==0:
|
if rowNumber==0:
|
||||||
if columnNumber==0:
|
if columnNumber==0:
|
||||||
|
@ -449,6 +449,7 @@ class fpdb:
|
||||||
table.attach(child=comboBox, left_attach=columnNumber, right_attach=columnNumber+1, top_attach=rowNumber, bottom_attach=rowNumber+1)
|
table.attach(child=comboBox, left_attach=columnNumber, right_attach=columnNumber+1, top_attach=rowNumber, bottom_attach=rowNumber+1)
|
||||||
|
|
||||||
comboBox.show()
|
comboBox.show()
|
||||||
|
if rowNumber!=0:
|
||||||
self.hudConfiguratorTableContents.append(newRow)
|
self.hudConfiguratorTableContents.append(newRow)
|
||||||
diaHudTable.vbox.add(table)
|
diaHudTable.vbox.add(table)
|
||||||
table.show()
|
table.show()
|
||||||
|
@ -461,12 +462,18 @@ class fpdb:
|
||||||
#end def diaHudConfiguratorTable
|
#end def diaHudConfiguratorTable
|
||||||
|
|
||||||
def storeNewHudStatConfig(self):
|
def storeNewHudStatConfig(self):
|
||||||
print "start of storeNewHudStatConfig"
|
"""stores selections made in diaHudConfiguratorTable"""
|
||||||
self.obtain_global_lock("diaHudConfiguratorTable")
|
self.obtain_global_lock("diaHudConfiguratorTable")
|
||||||
|
statTable=[]
|
||||||
for row in self.hudConfiguratorTableContents:
|
for row in self.hudConfiguratorTableContents:
|
||||||
|
newRow=[]
|
||||||
for column in row:
|
for column in row:
|
||||||
print column.get_active_text()
|
newField = column.get_active_text()
|
||||||
|
newRow.append(newField)
|
||||||
|
statTable.append(newRow)
|
||||||
|
|
||||||
|
self.config.editStats(self.hudConfiguratorGame,statTable)
|
||||||
|
self.config.save() #TODO: make it not store in horrible formatting
|
||||||
self.release_global_lock()
|
self.release_global_lock()
|
||||||
#end def storeNewHudStatConfig
|
#end def storeNewHudStatConfig
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user