Mercurial > traipse
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) |