Skip to content

Commit 1df63f9

Browse files
authored
Merge pull request #13 from hbeni/Issue_12-GuiAdditions
Added rates to settings gui
2 parents 177820e + c11b45d commit 1df63f9

File tree

3 files changed

+211
-17
lines changed

3 files changed

+211
-17
lines changed

addon-config.xml

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
<sharemp userarchive="y" type="bool">0</sharemp> <!-- share and send mp message when land? 1: yes 0: no -->
99
</addon-devel>
1010
<ranks>
11+
<loaded-from>defaults</loaded-from>
1112
<bad>
1213
<min-fpm>600</min-fpm>
1314
</bad>
@@ -29,4 +30,4 @@
2930
</org.flightgear.addons.landing-rate>
3031
</by-id>
3132
</addons>
32-
</PropertyList>
33+
</PropertyList>

addon-main.nas

+22-3
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,17 @@ var evaluateLandingRateAddonCfg = func(base, addon) {
166166
}
167167
};
168168

169+
var initListenForUserRanksChange = func(addon) {
170+
foreach (var rank; LANDING_RANK) {
171+
var rank_prop_name = string.replace(string.lc(rank.name), " ", "-");
172+
var cfg_prop_path = "ranks/"~rank_prop_name~"/min-fpm";
173+
var rank_prop_val_minfpm_node = addon.node.getNode(cfg_prop_path);
174+
setlistener(rank_prop_val_minfpm_node, func (node) {
175+
setprop(addon.node.getPath()~"/ranks/loaded-from", "user defined");
176+
}, 0, 0);
177+
}
178+
};
179+
169180
var main = func (addon) {
170181
# Must be _setlistener because removelistener doesn't work well with setlistener
171182
var fdmInitListener = _setlistener("/sim/signals/fdm-initialized", func {
@@ -177,28 +188,36 @@ var main = func (addon) {
177188
var icao_wake_t_cat = getprop("/aircraft/icao/wake-turbulence-category");
178189
if (icao_wake_t_cat != nil and icao_wake_t_cat != "") {
179190
var icao_wake_t_cat_cfg = LANDING_RANK_CFG.getNode("icao-wake-turbulence-category/"~icao_wake_t_cat);
180-
if (icao_wake_t_cat_cfg != nil)
191+
if (icao_wake_t_cat_cfg != nil) {
181192
evaluateLandingRateAddonCfg(icao_wake_t_cat_cfg, addon);
193+
setprop(addon.node.getPath()~"/ranks/loaded-from", "icao-wakecategory");
194+
}
182195
}
183196

184197
# If defined, load aircraft type values
185198
var aircraft = getprop("/sim/aircraft");
186199
if (aircraft != nil and aircraft != "") {
187200
var aircraft_type_cfg = LANDING_RANK_CFG.getNode("aircraft-types/"~aircraft);
188-
if (aircraft_type_cfg != nil)
201+
if (aircraft_type_cfg != nil) {
189202
evaluateLandingRateAddonCfg(aircraft_type_cfg, addon);
203+
setprop(addon.node.getPath()~"/ranks/loaded-from", "aircraft-type");
204+
}
190205
}
191206

192207
# load addon-hints from aircraft
193208
var addon_hints = props.globals.getNode("/sim/addon-hints/landing_rate/");
194-
if (addon_hints != nil)
209+
if (addon_hints != nil) {
195210
evaluateLandingRateAddonCfg(addon_hints, addon);
211+
setprop(addon.node.getPath()~"/ranks/loaded-from", "aircraft-addon-hints");
212+
}
196213

197214
aglFt = getprop("/position/altitude-agl-ft") + 6;
198215

199216
initLandingRateTimer(addon); # init addon
200217
removelistener(fdmInitListener);
201218

219+
initListenForUserRanksChange(addon);
220+
202221
printPersistentScreenMsg("Landing Rate Addon Loaded", COLOR_WHITE, 20); # success
203222
print("Landing Rate addon loaded."); # success
204223

gui/dialogs/landing-rate-settings.xml

+187-13
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22
<PropertyList>
33
<name>landing_rate_settings</name>
44
<layout>vbox</layout>
5-
<width>285</width>
6-
<resizable>false</resizable>
5+
<width>450</width>
6+
<resizable>true</resizable>
77

8+
<!-- DIALOG HEADER -->
89
<group>
910
<layout>hbox</layout>
1011
<text>
@@ -25,22 +26,195 @@
2526
</button>
2627
</group>
2728

29+
30+
<!-- GENERIC OPTIONS -->
2831
<hrule/>
32+
<group>
33+
<layout>hbox</layout>
34+
<halign>left</halign>
35+
<!-- Small left padding -->
36+
<group>
37+
<layout>vbox</layout>
38+
<padding>6</padding>
39+
</group>
40+
41+
<group>
42+
<layout>vbox</layout>
43+
<halign>left</halign>
44+
<checkbox>
45+
<label>Send landing stats in mp chat?</label>
46+
<halign>left</halign>
47+
<property>/addons/by-id/org.flightgear.addons.landing-rate/addon-devel/sharemp</property>
48+
</checkbox>
49+
</group>
50+
</group>
51+
2952

30-
<checkbox>
31-
<label>Send landing stats in mp chat?</label>
32-
<live>true</live>
53+
<!-- RANKS CONFIG -->
54+
<hrule/>
55+
<group>
56+
<layout>hbox</layout>
3357
<halign>left</halign>
34-
<property>/addons/by-id/org.flightgear.addons.landing-rate/addon-devel/sharemp</property>
35-
<binding>
36-
<command>dialog-apply</command>
37-
</binding>
38-
</checkbox>
58+
<!-- Small left padding -->
59+
<group>
60+
<layout>vbox</layout>
61+
<padding>6</padding>
62+
</group>
63+
64+
<group>
65+
<layout>vbox</layout>
66+
<halign>left</halign>
67+
68+
<group>
69+
<layout>vbox</layout>
70+
<text>
71+
<halign>left</halign>
72+
<label>Landing Rate Ranks:</label>
73+
</text>
74+
<text>
75+
<halign>left</halign>
76+
<label>(loaded from: source invalid)</label>
77+
<format> (loaded from: %s)</format>
78+
<live>true</live>
79+
<property>/addons/by-id/org.flightgear.addons.landing-rate/ranks/loaded-from</property>
80+
</text>
81+
</group>
82+
83+
<group>
84+
<layout>table</layout>
85+
<halign>left</halign>
86+
<valign>top</valign>
3987

40-
<!--hrule/>
88+
<text>
89+
<row>0</row>
90+
<col>0</col>
91+
<label>Bad:</label>
92+
<halign>left</halign>
93+
</text>
94+
<input>
95+
<row>0</row>
96+
<col>1</col>
97+
<label>ft/m</label>
98+
<halign>left</halign>
99+
<property>/addons/by-id/org.flightgear.addons.landing-rate/ranks/bad/min-fpm</property>
100+
</input>
41101

102+
103+
<text>
104+
<row>1</row>
105+
<col>0</col>
106+
<label>Acceptable:</label>
107+
<halign>left</halign>
108+
</text>
109+
<input>
110+
<row>1</row>
111+
<col>1</col>
112+
<label>ft/m</label>
113+
<halign>left</halign>
114+
<property>/addons/by-id/org.flightgear.addons.landing-rate/ranks/acceptable/min-fpm</property>
115+
</input>
116+
117+
<text>
118+
<row>2</row>
119+
<col>0</col>
120+
<label>Good:</label>
121+
<halign>left</halign>
122+
</text>
123+
<input>
124+
<row>2</row>
125+
<col>1</col>
126+
<label>ft/m</label>
127+
<halign>left</halign>
128+
<property>/addons/by-id/org.flightgear.addons.landing-rate/ranks/good/min-fpm</property>
129+
</input>
130+
131+
<text>
132+
<row>3</row>
133+
<col>0</col>
134+
<label>Very Good:</label>
135+
<halign>left</halign>
136+
</text>
137+
<input>
138+
<row>3</row>
139+
<col>1</col>
140+
<label>ft/m</label>
141+
<halign>left</halign>
142+
<property>/addons/by-id/org.flightgear.addons.landing-rate/ranks/very-good/min-fpm</property>
143+
</input>
144+
145+
<!-- Excellent is always the lowest/best rank and need to start at 0 values!
146+
<text>
147+
<row>4</row>
148+
<col>0</col>
149+
<label>Excellent:</label>
150+
<halign>left</halign>
151+
</text>
152+
<input>
153+
<row>4</row>
154+
<col>1</col>
155+
<label>ft/m</label>
156+
<halign>left</halign>
157+
<property>/addons/by-id/org.flightgear.addons.landing-rate/ranks/excellent/min-fpm</property>
158+
</input>
159+
-->
160+
</group>
161+
</group>
162+
</group>
163+
164+
165+
<!-- DIALOG FOOTER / BUTTONS -->
166+
<hrule/>
167+
<group>
168+
<layout>vbox</layout>
169+
<empty><stretch>true</stretch></empty>
170+
<group>
171+
<layout>hbox</layout>
172+
<default-padding>6</default-padding>
173+
<empty><stretch>true</stretch></empty>
174+
<button>
175+
<legend>OK</legend>
176+
<pref-width>90</pref-width>
177+
<pref-height>30</pref-height>
178+
<binding>
179+
<command>dialog-apply</command>
180+
</binding>
181+
<binding>
182+
<command>dialog-close</command>
183+
</binding>
184+
</button>
185+
<button>
186+
<legend>Apply</legend>
187+
<pref-width>90</pref-width>
188+
<pref-height>30</pref-height>
189+
<equal>true</equal>
190+
<default>true</default>
191+
<binding>
192+
<command>dialog-apply</command>
193+
</binding>
194+
</button>
195+
<button>
196+
<legend>Cancel</legend>
197+
<pref-width>90</pref-width>
198+
<pref-height>30</pref-height>
199+
<equal>true</equal>
200+
<key>Esc</key>
201+
<default>true</default>
202+
<binding>
203+
<command>dialog-close</command>
204+
</binding>
205+
</button>
206+
<empty><stretch>true</stretch></empty>
207+
</group>
208+
</group>
209+
210+
<text>
211+
<label>If you see bugs or want to suggest better values,</label>
212+
</text>
213+
<text>
214+
<label>please report at the projects page:</label>
215+
</text>
42216
<text>
43217
<label>https://github.com/RenanMsV/landing_rate</label>
44-
</text-->
218+
</text>
45219

46-
</PropertyList>
220+
</PropertyList>

0 commit comments

Comments
 (0)