Mercurial > fife-parpg
annotate engine/python/fife/extensions/fife_settings.py @ 568:bfbf329e1da8
Forgot to add the simplexml.py file in my last commit.
author | prock@33b003aa-7bff-0310-803a-e67f0ece8222 |
---|---|
date | Mon, 28 Jun 2010 18:43:03 +0000 |
parents | 9152ed2b5bb8 |
children | 466d76db9701 |
rev | line source |
---|---|
497
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
1 # -*- coding: utf-8 -*- |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
2 |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
3 # #################################################################### |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
4 # Copyright (C) 2005-2010 by the FIFE team |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
5 # http://www.fifengine.net |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
6 # This file is part of FIFE. |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
7 # |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
8 # FIFE is free software; you can redistribute it and/or |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
9 # modify it under the terms of the GNU Lesser General Public |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
10 # License as published by the Free Software Foundation; either |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
11 # version 2.1 of the License, or (at your option) any later version. |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
12 # |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
13 # This library is distributed in the hope that it will be useful, |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
16 # Lesser General Public License for more details. |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
17 # |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
18 # You should have received a copy of the GNU Lesser General Public |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
19 # License along with this library; if not, write to the |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
20 # Free Software Foundation, Inc., |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
21 # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
22 # #################################################################### |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
23 |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
24 """ |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
25 Settings |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
26 ================================== |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
27 |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
28 This module provides a nice framework for loading and saving game settings. |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
29 It is by no means complete but it does provide a good starting point. |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
30 |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
31 @note: Please note that you MUST provide a default settings-dist.xml file |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
32 in the root directory of your project for this module to function correctly. |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
33 """ |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
34 |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
35 import shutil |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
36 import os |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
37 from StringIO import StringIO |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
38 |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
39 from fife.extensions import pychan |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
40 from fife.extensions.fife_utils import getUserDataDirectory |
567
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
41 from fife.extensions.serializers.simplexml import SimpleXMLSerializer |
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
42 |
497
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
43 try: |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
44 import xml.etree.cElementTree as ET |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
45 except: |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
46 import xml.etree.ElementTree as ET |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
47 |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
48 SETTINGS_GUI_XML="""\ |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
49 <Window name="Settings" title="Settings"> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
50 <Label text="Settings menu!" /> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
51 <HBox> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
52 <VBox> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
53 <Label text="Resolution:" /> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
54 <Label text="Renderer:" /> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
55 </VBox> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
56 <VBox min_size="120,60"> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
57 <DropDown name="screen_resolution" min_size="120,0" /> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
58 <DropDown name="render_backend" min_size="120,0" /> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
59 </VBox> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
60 </HBox> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
61 <CheckBox name="enable_fullscreen" text="Use the full screen mode" /> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
62 <CheckBox name="enable_sound" text="Enable sound" /> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
63 <HBox> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
64 <Spacer /> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
65 <Button name="cancelButton" text="Cancel" /> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
66 <Button name="okButton" text="Ok" /> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
67 <Button name="defaultButton" text="Defaults" /> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
68 </HBox> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
69 </Window> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
70 """ |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
71 |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
72 CHANGES_REQUIRE_RESTART="""\ |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
73 <Window title="Changes require restart"> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
74 <Label text="Some of your changes require you to restart." /> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
75 <HBox> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
76 <Spacer /> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
77 <Button name="closeButton" text="Ok" /> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
78 </HBox> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
79 </Window> |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
80 """ |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
81 |
554
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
82 FIFE_MODULE = "FIFE" |
538
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
83 |
497
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
84 class Setting(object): |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
85 """ |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
86 This class manages loading and saving of game settings. |
514
0cdc727f9f66
Honour the "settings_gui_xml" paramater in the Settings class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
505
diff
changeset
|
87 |
497
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
88 Usage:: |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
89 from fife.extensions.fife_settings import Setting |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
90 settings = Setting(app_name="myapp") |
515
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
91 screen_width = settings.get("FIFE", "ScreenWidth", 1024) |
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
92 screen_height = settings.get("FIFE", "ScreenHeight", 768) |
497
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
93 """ |
514
0cdc727f9f66
Honour the "settings_gui_xml" paramater in the Settings class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
505
diff
changeset
|
94 |
543
cb7ec12214a9
Items can now be serialized/deserialized to/from disk. I haven't finished actors yet. This allows for persistent states when you enter/leave maps.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
539
diff
changeset
|
95 def __init__(self, app_name="", settings_file="", settings_gui_xml="", changes_gui_xml="", copy_dist=True): |
497
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
96 """ |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
97 Initializes the Setting object. |
514
0cdc727f9f66
Honour the "settings_gui_xml" paramater in the Settings class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
505
diff
changeset
|
98 |
0cdc727f9f66
Honour the "settings_gui_xml" paramater in the Settings class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
505
diff
changeset
|
99 @param app_name: The applications name. If this parameter is provided |
0cdc727f9f66
Honour the "settings_gui_xml" paramater in the Settings class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
505
diff
changeset
|
100 alone it will try to read the settings file from the users home directory. |
497
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
101 In windows this will be something like: C:\Documents and Settings\user\Application Data\fife |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
102 @type app_name: C{string} |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
103 @param settings_file: The name of the settings file. If this parameter is |
514
0cdc727f9f66
Honour the "settings_gui_xml" paramater in the Settings class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
505
diff
changeset
|
104 provided it will look for the setting file as you specify it, first looking |
505
ee65aa323457
Updated the ApplicationBase settings to use the new and improved fife_setting extension. I was able to remove all the setting related functions from the demos and editor so that the ApplicationBase now takes care of all the FIFE related settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
499
diff
changeset
|
105 in the working directory. It will NOT look in the users home directory. |
497
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
106 @type settings_file: C{string} |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
107 @param settings_gui_xml: If you specify this parameter you can customize the look |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
108 of the settings dialog box. |
543
cb7ec12214a9
Items can now be serialized/deserialized to/from disk. I haven't finished actors yet. This allows for persistent states when you enter/leave maps.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
539
diff
changeset
|
109 @param copy_dist: Copies the settings-dist.xml file to the settings_file location. If |
cb7ec12214a9
Items can now be serialized/deserialized to/from disk. I haven't finished actors yet. This allows for persistent states when you enter/leave maps.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
539
diff
changeset
|
110 this is False it will create a new empty xml file. |
514
0cdc727f9f66
Honour the "settings_gui_xml" paramater in the Settings class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
505
diff
changeset
|
111 |
497
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
112 """ |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
113 self._app_name = app_name |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
114 self._settings_file = settings_file |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
115 self._settings_gui_xml = settings_gui_xml |
515
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
116 self._changes_gui_xml = changes_gui_xml |
514
0cdc727f9f66
Honour the "settings_gui_xml" paramater in the Settings class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
505
diff
changeset
|
117 |
554
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
118 # Holds SettingEntries |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
119 self._entries = {} |
567
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
120 |
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
121 self._xmlserializer = None |
554
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
122 |
497
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
123 if self._settings_file == "": |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
124 self._settings_file = "settings.xml" |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
125 self._appdata = getUserDataDirectory("fife", self._app_name) |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
126 else: |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
127 self._appdata = os.path.dirname(self._settings_file) |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
128 self._settings_file = os.path.basename(self._settings_file) |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
129 |
514
0cdc727f9f66
Honour the "settings_gui_xml" paramater in the Settings class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
505
diff
changeset
|
130 |
497
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
131 if self._settings_gui_xml == "": |
515
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
132 self._settings_gui_xml = SETTINGS_GUI_XML |
532
4da56756a617
Fixed a small bug that didn't allow to use xml files as gui input for the setting extension
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
515
diff
changeset
|
133 |
515
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
134 if self._changes_gui_xml == "": |
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
135 self._changes_gui_xml = CHANGES_REQUIRE_RESTART |
514
0cdc727f9f66
Honour the "settings_gui_xml" paramater in the Settings class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
505
diff
changeset
|
136 |
0cdc727f9f66
Honour the "settings_gui_xml" paramater in the Settings class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
505
diff
changeset
|
137 |
497
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
138 if not os.path.exists(os.path.join(self._appdata, self._settings_file)): |
543
cb7ec12214a9
Items can now be serialized/deserialized to/from disk. I haven't finished actors yet. This allows for persistent states when you enter/leave maps.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
539
diff
changeset
|
139 if os.path.exists('settings-dist.xml') and copy_dist: |
505
ee65aa323457
Updated the ApplicationBase settings to use the new and improved fife_setting extension. I was able to remove all the setting related functions from the demos and editor so that the ApplicationBase now takes care of all the FIFE related settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
499
diff
changeset
|
140 shutil.copyfile('settings-dist.xml', os.path.join(self._appdata, self._settings_file)) |
514
0cdc727f9f66
Honour the "settings_gui_xml" paramater in the Settings class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
505
diff
changeset
|
141 |
515
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
142 #default settings |
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
143 self._resolutions = ['640x480', '800x600', '1024x768', '1280x800', '1440x900'] |
538
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
144 self._renderbackends = ['OpenGL', 'SDL'] |
532
4da56756a617
Fixed a small bug that didn't allow to use xml files as gui input for the setting extension
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
515
diff
changeset
|
145 |
533
082e919cc348
Setting Extension:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
532
diff
changeset
|
146 #Used to stylize the options gui |
082e919cc348
Setting Extension:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
532
diff
changeset
|
147 self._gui_style = "default" |
082e919cc348
Setting Extension:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
532
diff
changeset
|
148 |
567
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
149 #Initialize the XML serializer |
515
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
150 self.loadSettings() |
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
151 |
538
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
152 self._initDefaultSettingEntries() |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
153 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
154 def _initDefaultSettingEntries(self): |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
155 """Initializes the default fife setting entries. Not to be called from |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
156 outside this class.""" |
554
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
157 self.createAndAddEntry(FIFE_MODULE, "PlaySounds", "enable_sound", |
538
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
158 requiresrestart=True) |
554
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
159 self.createAndAddEntry(FIFE_MODULE, "FullScreen", "enable_fullscreen", |
538
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
160 requiresrestart=True) |
554
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
161 self.createAndAddEntry(FIFE_MODULE, "ScreenResolution", "screen_resolution", initialdata = self._resolutions, |
538
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
162 requiresrestart=True) |
554
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
163 self.createAndAddEntry(FIFE_MODULE, "RenderBackend", "render_backend", initialdata = self._renderbackends, |
538
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
164 requiresrestart=True) |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
165 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
166 def createAndAddEntry(self, module, name, widgetname, applyfunction=None, initialdata=None, requiresrestart=False): |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
167 """" |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
168 @param module: The Setting module this Entry belongs to |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
169 @type module: C{String} |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
170 @param name: The Setting's name |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
171 @type name: C{String} |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
172 @param widgetname: The name of the widget that is used to change this |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
173 setting |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
174 @type widgetname: C{String} |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
175 @param applyfunction: function that makes the changes when the Setting is |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
176 saved |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
177 @type applyfunction: C{function} |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
178 @param initialdata: If the widget supports the setInitialData() function |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
179 this can be used to set the initial data |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
180 @type initialdata: C{String} or C{Boolean} |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
181 @param requiresrestart: Whether or not the changing of this setting |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
182 requires a restart |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
183 @type requiresrestart: C{Boolean} |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
184 """ |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
185 entry = SettingEntry(module, name, widgetname, applyfunction, initialdata, requiresrestart) |
554
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
186 self.addEntry(entry) |
538
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
187 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
188 def addEntry(self, entry): |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
189 """Adds a new C{SettingEntry} to the Settting |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
190 @param entry: A new SettingEntry that is to be added |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
191 @type entry: C{SettingEntry} |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
192 """ |
554
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
193 if entry.module not in self._entries: |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
194 self._entries[entry.module] = {} |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
195 self._entries[entry.module][entry.name] = entry |
538
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
196 |
556
1d60e0223117
Added a check when a new entry is added to the settings.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
555
diff
changeset
|
197 # Make sure the new entry is available |
1d60e0223117
Added a check when a new entry is added to the settings.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
555
diff
changeset
|
198 if self.get(entry.module, entry.name) is None: |
1d60e0223117
Added a check when a new entry is added to the settings.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
555
diff
changeset
|
199 print "Updating", self._settings_file, "to the default, it is missing the entry:"\ |
1d60e0223117
Added a check when a new entry is added to the settings.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
555
diff
changeset
|
200 , entry.name ,"for module", entry.module |
1d60e0223117
Added a check when a new entry is added to the settings.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
555
diff
changeset
|
201 self.setDefaults() |
1d60e0223117
Added a check when a new entry is added to the settings.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
555
diff
changeset
|
202 if self.get(entry.module, entry.name) is None: |
1d60e0223117
Added a check when a new entry is added to the settings.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
555
diff
changeset
|
203 print "WARNING:", entry.module, ":", entry.name, "still not found!" |
1d60e0223117
Added a check when a new entry is added to the settings.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
555
diff
changeset
|
204 print "It's probably missing in settings-dist.xml as well!" |
1d60e0223117
Added a check when a new entry is added to the settings.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
555
diff
changeset
|
205 |
515
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
206 def loadSettings(self): |
567
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
207 self._xmlserializer = SimpleXMLSerializer(os.path.join(self._appdata, self._settings_file)) |
533
082e919cc348
Setting Extension:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
532
diff
changeset
|
208 |
567
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
209 def saveSettings(self): |
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
210 """ Writes the settings to the settings file """ |
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
211 if self._xmlserializer: |
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
212 self._xmlserializer.save() |
499
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
213 |
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
214 def get(self, module, name, defaultValue=None): |
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
215 """ Gets the value of a specified setting |
514
0cdc727f9f66
Honour the "settings_gui_xml" paramater in the Settings class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
505
diff
changeset
|
216 |
499
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
217 @param module: Name of the module to get the setting from |
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
218 @param name: Setting name |
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
219 @param defaultValue: Specifies the default value to return if the setting is not found |
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
220 @type defaultValue: C{str} or C{unicode} or C{int} or C{float} or C{bool} or C{list} or C{dict} |
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
221 """ |
567
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
222 if self._xmlserializer: |
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
223 return self._xmlserializer.get(module, name, defaultValue) |
514
0cdc727f9f66
Honour the "settings_gui_xml" paramater in the Settings class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
505
diff
changeset
|
224 else: |
567
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
225 return None |
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
226 |
499
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
227 def set(self, module, name, value, extra_attrs={}): |
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
228 """ |
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
229 Sets a setting to specified value. |
514
0cdc727f9f66
Honour the "settings_gui_xml" paramater in the Settings class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
505
diff
changeset
|
230 |
499
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
231 @param module: Module where the setting should be set |
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
232 @param name: Name of setting |
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
233 @param value: Value to assign to setting |
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
234 @type value: C{str} or C{unicode} or C{int} or C{float} or C{bool} or C{list} or C{dict} |
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
235 @param extra_attrs: Extra attributes to be stored in the XML-file |
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
236 @type extra_attrs: C{dict} |
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
237 """ |
567
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
238 if self._xmlserializer: |
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
239 self._xmlserializer.set(module, name, value, extra_attrs) |
514
0cdc727f9f66
Honour the "settings_gui_xml" paramater in the Settings class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
505
diff
changeset
|
240 |
567
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
241 def setGuiStyle(self, style): |
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
242 """ Set a custom gui style used for the option dialog. |
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
243 @param style: Pychan style to be used |
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
244 @type style: C{string} |
514
0cdc727f9f66
Honour the "settings_gui_xml" paramater in the Settings class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
505
diff
changeset
|
245 """ |
567
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
246 self._gui_style = style |
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
247 |
497
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
248 def onOptionsPress(self): |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
249 """ |
499
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
250 Opens the options dialog box. Usually you would bind this to a button. |
497
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
251 """ |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
252 self.changesRequireRestart = False |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
253 self.isSetToDefault = False |
532
4da56756a617
Fixed a small bug that didn't allow to use xml files as gui input for the setting extension
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
515
diff
changeset
|
254 |
555
63226105ac45
Load the changes_gui_xml correcty, even if it is set to a file
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
554
diff
changeset
|
255 self.OptionsDlg = self._loadWidget(self._settings_gui_xml) |
533
082e919cc348
Setting Extension:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
532
diff
changeset
|
256 self.OptionsDlg.stylize(self._gui_style) |
538
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
257 self.fillWidgets() |
515
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
258 self.OptionsDlg.mapEvents({ |
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
259 'okButton' : self.applySettings, |
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
260 'cancelButton' : self.OptionsDlg.hide, |
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
261 'defaultButton' : self.setDefaults |
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
262 }) |
497
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
263 self.OptionsDlg.show() |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
264 |
555
63226105ac45
Load the changes_gui_xml correcty, even if it is set to a file
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
554
diff
changeset
|
265 def _loadWidget(self, dialog): |
63226105ac45
Load the changes_gui_xml correcty, even if it is set to a file
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
554
diff
changeset
|
266 """Loads a widget. Can load both files and pure xml strings""" |
63226105ac45
Load the changes_gui_xml correcty, even if it is set to a file
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
554
diff
changeset
|
267 if os.path.isfile(self._settings_gui_xml): |
63226105ac45
Load the changes_gui_xml correcty, even if it is set to a file
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
554
diff
changeset
|
268 return pychan.loadXML(dialog) |
63226105ac45
Load the changes_gui_xml correcty, even if it is set to a file
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
554
diff
changeset
|
269 else: |
63226105ac45
Load the changes_gui_xml correcty, even if it is set to a file
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
554
diff
changeset
|
270 return pychan.loadXML(StringIO(dialog)) |
63226105ac45
Load the changes_gui_xml correcty, even if it is set to a file
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
554
diff
changeset
|
271 |
538
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
272 def fillWidgets(self): |
554
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
273 for module in self._entries.itervalues(): |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
274 for entry in module.itervalues(): |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
275 widget = self.OptionsDlg.findChildByName(entry.settingwidgetname) |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
276 value = self.get(entry.module, entry.name) |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
277 if type(entry.initialdata) is list: |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
278 try: |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
279 value = entry.initialdata.index(value) |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
280 except ValueError: |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
281 raise ValueError("\"" + value + "\" is not a valid value for " + entry.name + ". Valid options: " + str(entry.initialdata)) |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
282 entry.initializeWidget(widget, value) |
538
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
283 |
499
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
284 def applySettings(self): |
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
285 """ |
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
286 Writes the settings file. If a change requires a restart of the engine |
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
287 it notifies you with a small dialog box. |
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
288 """ |
554
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
289 for module in self._entries.itervalues(): |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
290 for entry in module.itervalues(): |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
291 widget = self.OptionsDlg.findChildByName(entry.settingwidgetname) |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
292 data = widget.getData() |
538
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
293 |
554
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
294 # If the data is a list we need to get the correct selected data |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
295 # from the list. This is needed for e.g. dropdowns or listboxs |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
296 if type(entry.initialdata) is list: |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
297 data = entry.initialdata[data] |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
298 |
558
4cb5d0ed33a9
Fixed a small bug introduced in the last commit
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
557
diff
changeset
|
299 # only take action if something really changed |
4cb5d0ed33a9
Fixed a small bug introduced in the last commit
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
557
diff
changeset
|
300 if data != self.get(entry.module, entry.name): |
557
c62fe35ae67c
fife_settings: Make sure onApply is only called if the entry changed
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
556
diff
changeset
|
301 self.set(entry.module, entry.name, data) |
c62fe35ae67c
fife_settings: Make sure onApply is only called if the entry changed
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
556
diff
changeset
|
302 entry.onApply(data) |
499
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
303 |
558
4cb5d0ed33a9
Fixed a small bug introduced in the last commit
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
557
diff
changeset
|
304 if entry.requiresrestart: |
4cb5d0ed33a9
Fixed a small bug introduced in the last commit
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
557
diff
changeset
|
305 self.changesRequireRestart = True |
4cb5d0ed33a9
Fixed a small bug introduced in the last commit
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
557
diff
changeset
|
306 |
515
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
307 self.saveSettings() |
514
0cdc727f9f66
Honour the "settings_gui_xml" paramater in the Settings class
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
505
diff
changeset
|
308 |
499
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
309 self.OptionsDlg.hide() |
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
310 if self.changesRequireRestart: |
538
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
311 self._showChangeRequireRestartDialog() |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
312 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
313 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
314 def _showChangeRequireRestartDialog(self): |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
315 """Shows a dialog that informes the user that a restart is required |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
316 to perform the changes.""" |
555
63226105ac45
Load the changes_gui_xml correcty, even if it is set to a file
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
554
diff
changeset
|
317 RestartDlg = self._loadWidget(self._changes_gui_xml) |
63226105ac45
Load the changes_gui_xml correcty, even if it is set to a file
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
554
diff
changeset
|
318 RestartDlg.stylize(self._gui_style) |
538
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
319 RestartDlg.mapEvents({ 'closeButton' : RestartDlg.hide }) |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
320 RestartDlg.show() |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
321 |
499
3dff106b945b
Combined the settings extension with the editor settings module. It is now a little more robust. Note that the settings file format has changed.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
497
diff
changeset
|
322 |
515
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
323 def setAvailableScreenResolutions(self, reslist): |
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
324 """ |
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
325 A list of valid default screen resolutions. This should be called once |
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
326 right after you instantiate Settings. |
532
4da56756a617
Fixed a small bug that didn't allow to use xml files as gui input for the setting extension
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
515
diff
changeset
|
327 |
515
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
328 Valid screen resolutions must be strings in the form of: WIDTHxHEIGHT |
532
4da56756a617
Fixed a small bug that didn't allow to use xml files as gui input for the setting extension
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
515
diff
changeset
|
329 |
515
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
330 Example: |
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
331 settings.setAvailableScreenResolutions(["800x600", "1024x768"]) |
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
332 """ |
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
333 self._resolutions = reslist |
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
334 |
497
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
335 def setDefaults(self): |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
336 """ |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
337 Overwrites the setting file with the default settings-dist.xml file. |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
338 """ |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
339 shutil.copyfile('settings-dist.xml', os.path.join(self._appdata, self._settings_file)) |
559a26347730
Forgot to add fife_settings.py in my last commit. Adding it now.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
diff
changeset
|
340 self.changesRequireRestart = True |
515
520bd1621644
Added a loadSettings function. Added the ability to set the valid screen resolutions. Fixed a problem with the settings dialog that kept the settings you selected even though you pressed cancel. When you press the "defaults" button it now applies the defaults and prompts the user to restart the game.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
514
diff
changeset
|
341 self.loadSettings() |
567
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
342 #self._showChangeRequireRestartDialog() |
532
4da56756a617
Fixed a small bug that didn't allow to use xml files as gui input for the setting extension
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
515
diff
changeset
|
343 |
567
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
344 #if self.OptionsDlg: |
9152ed2b5bb8
Created SimpleXMLSerializer which makes loading and saving variables to an XML file simple. In the process I removed the the XML code from the Settings class. It now uses SimpleXMLSerializer to load and save settings.
prock@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
558
diff
changeset
|
345 # self.OptionsDlg.hide() |
538
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
346 |
554
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
347 def _getEntries(self): |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
348 return self._entries |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
349 |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
350 def _setEntries(self, entries): |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
351 self._entries = entries |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
352 |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
353 entries = property(_getEntries, _setEntries) |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
354 |
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
355 |
538
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
356 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
357 class SettingEntry(object): |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
358 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
359 def __init__(self, module, name, widgetname, applyfunction=None, initialdata=None, requiresrestart=False): |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
360 """ |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
361 @param module: The Setting module this Entry belongs to |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
362 @type module: C{String} |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
363 @param name: The Setting's name |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
364 @type name: C{String} |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
365 @param widgetname: The name of the widget that is used to change this |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
366 setting |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
367 @type widgetname: C{String} |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
368 @param applyfunction: function that makes the changes when the Setting is |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
369 saved |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
370 @type applyfunction: C{function} |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
371 @param initialdata: If the widget supports the setInitialData() function |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
372 this can be used to set the initial data |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
373 @type initialdata: C{String} or C{Boolean} |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
374 @param requiresrestart: Whether or not the changing of this setting |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
375 requires a restart |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
376 @type requiresrestart: C{Boolean} |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
377 """ |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
378 self._module = module |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
379 self._name = name |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
380 self._settingwidgetname = widgetname |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
381 self._requiresrestart = requiresrestart |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
382 self._initialdata = initialdata |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
383 self._applyfunction = applyfunction |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
384 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
385 def initializeWidget(self, widget, currentValue): |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
386 """Initialize the widget with needed data""" |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
387 if self._initialdata is not None: |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
388 widget.setInitialData(self._initialdata) |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
389 widget.setData(currentValue) |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
390 |
554
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
391 def onApply(self, data): |
538
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
392 """Implement actions that need to be taken when the setting is changed |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
393 here. |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
394 """ |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
395 if self._applyfunction is not None: |
554
9b549d42f9ea
Improved fife_settings:
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
543
diff
changeset
|
396 self._applyfunction(data) |
538
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
397 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
398 def _getModule(self): |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
399 return self._module |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
400 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
401 def _setModule(self, module): |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
402 self._module = module |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
403 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
404 def _getName(self): |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
405 return self._name |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
406 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
407 def _setName(self, name): |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
408 self._name = name |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
409 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
410 def _getSettingWidgetName(self): |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
411 return self._settingwidgetname |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
412 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
413 def _setSettingWidgetName(self, settingwidgetname): |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
414 self._settingwidgetname = settingwidgetname |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
415 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
416 def _getRequiresRestart(self): |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
417 return self._requiresrestart |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
418 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
419 def _setRequiresRestart(self, requiresrestart): |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
420 self._requiresrestart = requiresrestart |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
421 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
422 def _getInitialData(self): |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
423 return self._initialdata |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
424 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
425 def _setInitialData(self, initialdata): |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
426 self._initialdata = initialdata |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
427 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
428 def _getApplyFunction(self): |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
429 return self._applyfunction |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
430 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
431 def _setApplyFunction(self, applyfunction): |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
432 self._applyfunction = applyfunction |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
433 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
434 module = property(_getModule, _setModule) |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
435 name = property(_getName, _setName) |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
436 settingwidgetname = property(_getSettingWidgetName, _setSettingWidgetName) |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
437 requiresrestart = property(_getRequiresRestart, _setRequiresRestart) |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
438 initialdata = property(_getInitialData, _setInitialData) |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
439 applyfunction = property(_getApplyFunction, _setApplyFunction) |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
440 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
441 def __str__(self): |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
442 return "SettingEntry: " + self.name + " Module: " + self.module + " Widget: " + \ |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
443 self.settingwidgetname + " requiresrestart: " + str(self.requiresrestart) + \ |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
444 " initialdata: " + str(self.initialdata) |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
445 |
00aa20dc8b7f
Made the Setting class much more customizable by adding the SettingEntry class.
nihathrael@33b003aa-7bff-0310-803a-e67f0ece8222
parents:
533
diff
changeset
|
446 |