comparison gui/menus.py @ 167:b3b82c2aebee

Using fife settings module again instead of our own.
author Beliar <KarstenBock@gmx.net>
date Mon, 20 Feb 2012 16:50:10 +0100
parents bf1dd9c24a7e
children
comparison
equal deleted inserted replaced
166:a6bbb732b27b 167:b3b82c2aebee
75 class SettingsMenu(object): 75 class SettingsMenu(object):
76 def __init__(self, engine, settings): 76 def __init__(self, engine, settings):
77 self.engine = engine 77 self.engine = engine
78 self.settings = settings 78 self.settings = settings
79 79
80 width = self.settings.fife.ScreenWidth
81 height = self.settings.fife.ScreenHeight
82
83 # available options 80 # available options
84 screen_modes = self.engine.getDeviceCaps().getSupportedScreenModes() 81 screen_modes = self.engine.getDeviceCaps().getSupportedScreenModes()
85 resolutions = list(set([(mode.getWidth(), mode.getHeight()) 82 resolutions = list(set([(mode.getWidth(), mode.getHeight())
86 for mode in screen_modes])) 83 for mode in screen_modes]))
87 self.resolutions = ["{0}x{1}".format(item[0], item[1]) 84 self.resolutions = ["{0}x{1}".format(item[0], item[1])
89 86
90 self.render_backends = ['OpenGL', 'SDL'] 87 self.render_backends = ['OpenGL', 'SDL']
91 self.lighting_models = range(3) 88 self.lighting_models = range(3)
92 89
93 # selected options 90 # selected options
94 self.resolution = "{0}x{1}".format(width, height) 91 self.resolution = self.settings.get("FIFE", "ScreenResolution")
95 self.render_backend = self.settings.fife.RenderBackend 92 self.render_backend = self.settings.get("FIFE", "RenderBackend")
96 self.lighting_model = self.settings.fife.Lighting 93 self.lighting_model = self.settings.get("FIFE", "Lighting")
97 self.fullscreen = self.settings.fife.FullScreen 94 self.fullscreen = self.settings.get("FIFE", "FullScreen")
98 self.sound = self.settings.fife.EnableSound 95 self.sound = self.settings.get("FIFE", "PlaySounds")
99 self.scroll_speed = self.settings.parpg.ScrollSpeed 96 self.scroll_speed = self.settings.get("parpg", "ScrollSpeed")
100 97
101 xml_file = vfs.VFS.open('gui/settings_menu.xml') 98 xml_file = vfs.VFS.open('gui/settings_menu.xml')
102 self.window = pychan.loadXML(xml_file) 99 self.window = pychan.loadXML(xml_file)
103 self.restart_dialog = RestartDialog(self.settings) 100 self.restart_dialog = RestartDialog(self.settings)
104 self.window.mapEvents({'okButton': self.save, 101 self.window.mapEvents({'okButton': self.save,
155 def save(self): 152 def save(self):
156 (resolution, backend, lighting, fullscreen, sound, scroll_speed) = \ 153 (resolution, backend, lighting, fullscreen, sound, scroll_speed) = \
157 self.window.collectData('screen_resolution', 'render_backend', 154 self.window.collectData('screen_resolution', 'render_backend',
158 'lighting_model', 'enable_fullscreen', 155 'lighting_model', 'enable_fullscreen',
159 'enable_sound', 'scroll_speed') 156 'enable_sound', 'scroll_speed')
160 157 self.settings.set("FIFE", "ScreenResolution", self.resolutions[resolution])
161 width, height = self.resolutions[resolution].split('x') 158 self.settings.set("FIFE", "RenderBackend", self.render_backends[backend])
162 self.settings.fife.ScreenWidth = width 159 self.settings.set("FIFE", "Lighting", self.lighting_models[lighting])
163 self.settings.fife.ScreenHeight = height 160 self.settings.set("FIFE", "FullScreen", fullscreen)
164 self.settings.fife.RenderBackend = self.render_backends[backend] 161 self.settings.set("FIFE", "EnableSound", sound)
165 self.settings.fife.Lighting = self.lighting_models[lighting] 162 self.settings.set("FIFE", "ScrollSpeed", scroll_speed)
166 self.settings.fife.FullScreen = fullscreen 163 self.settings.saveSettings("../settings.xml")
167 self.settings.fife.EnableSound = sound
168 self.settings.parpg.ScrollSpeed = scroll_speed
169 self.settings.write()
170 164
171 self.restart_dialog.show() 165 self.restart_dialog.show()
172 self.hide() 166 self.hide()