Exemple #1
0
    def show(self):
        self.initial_options = dict(fullscreen=gg.fullscreen,
                                    grab=pygame.event.get_grab(),
                                    daynight=g.daynight,
                                    resolution=gg.screen_size,
                                    language=i18n.language,
                                    sound=not mixer.nosound,
                                    gui_volume=mixer.get_volume("gui"),
                                    music_volume=mixer.get_volume("music"),
                                    soundbuf=mixer.get_soundbuf(),
                                    warnings={
                                        warn.id: warn.active
                                        for warn in warning.warnings.values()
                                    })

        self.set_options(self.initial_options)

        retval = super(OptionsScreen, self).show()
        if retval:
            self.apply_options()
            save_options()

        else:
            # Cancel, revert all options to initial state
            self.set_options(self.initial_options)

        return retval
Exemple #2
0
def save_options():
    # Build a ConfigParser for writing the various preferences out.
    prefs = SafeConfigParser()
    prefs.add_section("Preferences")
    prefs.set("Preferences", "fullscreen", str(bool(gg.fullscreen)))
    prefs.set("Preferences", "nosound", str(bool(mixer.nosound)))
    prefs.set("Preferences", "grab", str(bool(pygame.event.get_grab())))
    prefs.set("Preferences", "daynight", str(bool(g.daynight)))
    prefs.set("Preferences", "xres", str(int(gg.screen_size[0])))
    prefs.set("Preferences", "yres", str(int(gg.screen_size[1])))
    prefs.set("Preferences", "soundbuf", str(mixer.get_soundbuf()))
    prefs.set("Preferences", "lang", str(i18n.language))
    prefs.set("Preferences", "theme", str(theme.current.id))

    for name in mixer.itervolumes():
        prefs.set("Preferences", name + "_volume", str(mixer.get_volume(name)))

    prefs.add_section("Warning")
    for warn_id, warn in warning.warnings.items():
        prefs.set("Warning", warn_id, str(bool(warn.active)))

    prefs.add_section("Textsizes")
    for text_size_id, text_size in gg.configured_text_sizes.items():
        prefs.set("Textsizes", text_size_id, str(text_size))

    # Actually write the preferences out.
    save_loc = dirs.get_writable_file_in_dirs("prefs.dat", "pref")
    with open(save_loc, 'w') as savefile:
        prefs.write(savefile)