comparison orpg/tools/orpg_settings.py @ 18:97265586402b ornery-orc

Traipse 'OpenRPG' {090827-00} Traipse is a distribution of OpenRPG that is designed to be easy to setup and go. Traipse also makes it easy for developers to work on code without fear of sacrifice. 'Ornery-Orc' continues the trend of 'Grumpy' and adds fixes to the code. 'Ornery-Orc''s main goal is to offer more advanced features and enhance the productivity of the user. Update Summary: Update Manager is now in version 0.8. While not every button works, users can now browse the different revisions and their different changesets. The code has been refined some with feature from Core added to it. A Crash report is now created if the users software crashes. Update Manager has been moved to the Traipse Suite menu item, and a Debug Console as been added as well.
author sirebral
date Thu, 27 Aug 2009 01:04:43 -0500
parents 211ac836b6a0
children 51428d30c59e
comparison
equal deleted inserted replaced
17:265b987cce4f 18:97265586402b
25 # 25 #
26 # Description: classes for orpg settings 26 # Description: classes for orpg settings
27 # 27 #
28 28
29 from orpg.orpg_windows import * 29 from orpg.orpg_windows import *
30 import orpg.dirpath 30 from orpg.orpgCore import component
31 from orpg.dirpath import dir_struct
31 from rgbhex import * 32 from rgbhex import *
32 import sys 33 import sys
33 import os 34 import os
35 from orpg.orpg_xml import xml
34 36
35 class orpgSettings: 37 class orpgSettings:
36 def __init__(self): 38 def __init__(self):
37 self.validate = open_rpg.get_component("validate") 39 self.validate = component.get("validate")
38 self.xml = open_rpg.get_component("xml") 40 component.add('xml', xml)
39 self.log = open_rpg.get_component("log") 41 self.xml = component.get("xml")
42 self.orpgLog = component.get("log")
40 self.changes = [] 43 self.changes = []
41 self.validate.config_file("settings.xml","default_settings.xml") 44 self.validate.config_file("settings.xml","default_settings.xml")
42 self.filename = orpg.dirpath.dir_struct["user"] + "settings.xml" 45 self.filename = dir_struct["user"] + "settings.xml"
43 temp_file = open(self.filename) 46 temp_file = open(self.filename)
44 txt = temp_file.read() 47 txt = temp_file.read()
45 temp_file.close() 48 temp_file.close()
49
46 self.xml_dom = self.xml.parseXml(txt) 50 self.xml_dom = self.xml.parseXml(txt)
47 51
48 if self.xml_dom is None: self.rebuildSettings() 52 if self.xml_dom is None: self.rebuildSettings()
49 self.xml_dom = self.xml_dom._get_documentElement() 53 self.xml_dom = self.xml_dom._get_documentElement()
50 54
51 def rebuildSettings(self): 55 def rebuildSettings(self):
52 self.log.log("Settings file has be corrupted, rebuilding settings.", ORPG_INFO, True) 56 self.orpgLog.log("Settings file has be corrupted, rebuilding settings.", ORPG_INFO, True)
53 try: os.remove(self.filename) 57 try: os.remove(self.filename)
54 except: pass 58 except: pass
55 59
56 self.validate.config_file("settings.xml","default_settings.xml") 60 self.validate.config_file("settings.xml","default_settings.xml")
57 temp_file = open(self.filename) 61 temp_file = open(self.filename)
76 self.xml_dom.getElementsByTagName(name)[0].setAttribute("value", value) 80 self.xml_dom.getElementsByTagName(name)[0].setAttribute("value", value)
77 81
78 def add_setting(self, tab, setting, value, options, help): 82 def add_setting(self, tab, setting, value, options, help):
79 if len(self.xml_dom.getElementsByTagName(setting)) > 0: return False 83 if len(self.xml_dom.getElementsByTagName(setting)) > 0: return False
80 tabs = self.xml_dom.getElementsByTagName("tab") 84 tabs = self.xml_dom.getElementsByTagName("tab")
81 newsetting = self.xml.parseXml('<' + setting + ' value="' + value + '" options="' + options + '" help="' + help + '" />')._get_documentElement() 85 newsetting = self.xml.parseXml('<' + setting + ' value="' + value + '" options="' +
86 options + '" help="' + help + '" />')._get_documentElement()
82 for i in xrange(0, len(tabs)): 87 for i in xrange(0, len(tabs)):
83 if tabs[i].getAttribute("name") == tab and tabs[i].getAttribute("type") == 'grid': 88 if tabs[i].getAttribute("name") == tab and tabs[i].getAttribute("type") == 'grid':
84 tabs[i].appendChild(newsetting) 89 tabs[i].appendChild(newsetting)
85 return True 90 return True
86 return False 91 return False
123 128
124 for child in dom.getChildren(): 129 for child in dom.getChildren():
125 if child._get_tagName() == 'tab' and child.hasChildNodes(): 130 if child._get_tagName() == 'tab' and child.hasChildNodes():
126 self.proccessChildren(child, dom.getAttribute("name")) 131 self.proccessChildren(child, dom.getAttribute("name"))
127 else: 132 else:
128 self.add_setting(dom.getAttribute("name"), child._get_tagName(), child.getAttribute("value"), child.getAttribute("options"), child.getAttribute("help")) 133 self.add_setting(dom.getAttribute("name"), child._get_tagName(),
134 child.getAttribute("value"), child.getAttribute("options"),
135 child.getAttribute("help"))
129 136
130 def save(self): 137 def save(self):
131 temp_file = open(self.filename, "w") 138 temp_file = open(self.filename, "w")
132 temp_file.write(self.xml.toxml(self.xml_dom,1)) 139 temp_file.write(self.xml.toxml(self.xml_dom,1))
133 temp_file.close() 140 temp_file.close()
134 141
135 class orpgSettingsWnd(wx.Dialog): 142 class orpgSettingsWnd(wx.Dialog):
136 def __init__(self, parent): 143 def __init__(self, parent):
137 wx.Dialog.__init__(self,parent,-1,"OpenRPG Preferences",wx.DefaultPosition,size = wx.Size(-1,-1), style=wx.RESIZE_BORDER | wx.SYSTEM_MENU | wx.CAPTION) 144 wx.Dialog.__init__(self,parent,-1,"OpenRPG Preferences",
145 wx.DefaultPosition,size = wx.Size(-1,-1),
146 style=wx.RESIZE_BORDER | wx.SYSTEM_MENU | wx.CAPTION)
138 self.Freeze() 147 self.Freeze()
139 self.validate = open_rpg.get_component("validate") 148 self.validate = component.get("validate")
140 self.settings = open_rpg.get_component("settings") 149 self.settings = component.get("settings")
141 self.chat = open_rpg.get_component("chat") 150 self.chat = component.get("chat")
142 self.changes = [] 151 self.changes = []
143 self.SetMinSize((545,500)) 152 self.SetMinSize((545,500))
144 self.tabber = orpgTabberWnd(self, style=FNB.FNB_NO_X_BUTTON) 153 self.tabber = orpgTabberWnd(self, style=FNB.FNB_NO_X_BUTTON)
145 self.build_gui() 154 self.build_gui()
146 self.tabber.SetSelection(0) 155 self.tabber.SetSelection(0)
162 (w,h) = self.GetClientSizeTuple() 171 (w,h) = self.GetClientSizeTuple()
163 self.winsizer.SetDimension(0,0,w,h-25) 172 self.winsizer.SetDimension(0,0,w,h-25)
164 173
165 def build_gui(self): 174 def build_gui(self):
166 self.validate.config_file("settings.xml","default_settings.xml") 175 self.validate.config_file("settings.xml","default_settings.xml")
167 filename = open_rpg.get_component("dir_struct")["user"] + "settings.xml" 176 filename = dir_struct["user"] + "settings.xml"
168 temp_file = open(filename) 177 temp_file = open(filename)
169 temp_file.close() 178 temp_file.close()
170 children = self.settings.xml_dom._get_childNodes() 179 children = self.settings.xml_dom._get_childNodes()
171 for c in children: self.build_window(c,self.tabber) 180 for c in children: self.build_window(c,self.tabber)
172 181
208 temp_wnd = settings_grid(parent_wnd, settings, self.changes) 217 temp_wnd = settings_grid(parent_wnd, settings, self.changes)
209 return temp_wnd 218 return temp_wnd
210 219
211 def onOk(self, evt): 220 def onOk(self, evt):
212 #This will write the settings back to the XML 221 #This will write the settings back to the XML
213 self.session = open_rpg.get_component("session") 222 self.session = component.get("session")
214 tabbedwindows = open_rpg.get_component("tabbedWindows") 223 tabbedwindows = component.get("tabbedWindows")
215 new = [] 224 new = []
216 for wnd in tabbedwindows: 225 for wnd in tabbedwindows:
217 try: 226 try:
218 style = wnd.GetWindowStyleFlag() 227 style = wnd.GetWindowStyleFlag()
219 new.append(wnd) 228 new.append(wnd)
220 except: pass 229 except: pass
221 tabbedwindows = new 230 tabbedwindows = new
222 open_rpg.add_component("tabbedWindows", tabbedwindows) 231 component.add("tabbedWindows", tabbedwindows)
223 rgbconvert = RGBHex() 232 rgbconvert = RGBHex()
224 233
225 for i in xrange(0,len(self.changes)): 234 for i in xrange(0,len(self.changes)):
226 self.settings.set_setting(self.changes[i][0], self.changes[i][1]) 235 self.settings.set_setting(self.changes[i][0], self.changes[i][1])
227 top_frame = open_rpg.get_component('frame') 236 top_frame = component.get('frame')
237
238 if self.changes[i][0] == 'defaultfontsize' or self.changes[i][0] == 'defaultfont':
239 self.chat.chatwnd.SetDefaultFontAndSize(self.settings.get_setting('defaultfont'),
240 self.settings.get_setting('defaultfontsize'))
241 self.chat.InfoPost("Font is now " +
242 self.settings.get_setting('defaultfont') + " point size " +
243 self.settings.get_setting('defaultfontsize'))
244 self.chat.chatwnd.scroll_down()
228 245
229 if self.changes[i][0] == 'bgcolor' or self.changes[i][0] == 'textcolor': 246 if self.changes[i][0] == 'bgcolor' or self.changes[i][0] == 'textcolor':
230 self.chat.chatwnd.SetPage(self.chat.ResetPage()) 247 self.chat.chatwnd.SetPage(self.chat.ResetPage())
231 self.chat.chatwnd.scroll_down() 248 self.chat.chatwnd.scroll_down()
232 if self.settings.get_setting('ColorTree') == '1': 249 if self.settings.get_setting('ColorTree') == '1':
370 (w,h) = self.GetClientSizeTuple() 387 (w,h) = self.GetClientSizeTuple()
371 cols = self.GetNumberCols() 388 cols = self.GetNumberCols()
372 col_w = w/(cols) 389 col_w = w/(cols)
373 for i in range(0,cols): self.SetColSize(i,col_w) 390 for i in range(0,cols): self.SetColSize(i,col_w)
374 self.Refresh() 391 self.Refresh()
392
393 settings = orpgSettings()
394 component.add('settings', settings)