413 lines
11 KiB
XML
413 lines
11 KiB
XML
|
<?xml version="1.0"?>
|
||
|
|
||
|
<PropertyList>
|
||
|
<name>flight-recorder-load</name>
|
||
|
<layout>vbox</layout>
|
||
|
<resizable>true</resizable>
|
||
|
<default-padding>3</default-padding>
|
||
|
|
||
|
<nasal>
|
||
|
<open><![CDATA[
|
||
|
var DialogController = {
|
||
|
new : func( dlgRoot ) {
|
||
|
var obj = { parents: [DialogController] };
|
||
|
obj.dlgRoot = dlgRoot;
|
||
|
obj.updateCombo();
|
||
|
return obj;
|
||
|
},
|
||
|
updateCombo : func {
|
||
|
fgcommand("load-tape", props.Node.new({"tape": "",
|
||
|
"same-aircraft": getprop("/sim/gui/dialogs/flightrecorder/show-matching-aircraft-only")}));
|
||
|
|
||
|
var combo = gui.findElementByName( me.dlgRoot, "selected-tape" );
|
||
|
combo.removeChildren("value");
|
||
|
|
||
|
var i = 0;
|
||
|
var name = 1;
|
||
|
while (name != nil)
|
||
|
{
|
||
|
var name = getprop("/sim/replay/tape-list/tape[" ~ i ~ "]");
|
||
|
if (name != nil)
|
||
|
{
|
||
|
combo.getNode("value[" ~ i ~ "]", 1).setValue(name);
|
||
|
if (i==0)
|
||
|
{
|
||
|
setprop("/sim/gui/dialogs/flightrecorder/selected-tape", name);
|
||
|
}
|
||
|
}
|
||
|
i += 1;
|
||
|
}
|
||
|
if (i == 1)
|
||
|
{
|
||
|
setprop("/sim/gui/dialogs/flightrecorder/selected-tape", "No tapes in selected directory!");
|
||
|
me.haveData = 0;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
me.haveData = 1;
|
||
|
}
|
||
|
me.preview();
|
||
|
},
|
||
|
preview: func {
|
||
|
var tape = getprop("/sim/gui/dialogs/flightrecorder/selected-tape");
|
||
|
setprop("/sim/gui/dialogs/flightrecorder/preview/aircraft-description", "");
|
||
|
setprop("/sim/gui/dialogs/flightrecorder/preview/version/flightgear", "");
|
||
|
setprop("/sim/gui/dialogs/flightrecorder/preview/user-data/description", "");
|
||
|
setprop("/sim/gui/dialogs/flightrecorder/preview/tape-duration-str", "");
|
||
|
setprop("/sim/gui/dialogs/flightrecorder/preview/aircraft-version", "");
|
||
|
setprop("/sim/gui/dialogs/flightrecorder/preview/aircraft-type", "");
|
||
|
setprop("/sim/gui/dialogs/flightrecorder/preview/closest-airport-id", "");
|
||
|
setprop("/sim/gui/dialogs/flightrecorder/preview/author-name", "");
|
||
|
setprop("/sim/gui/dialogs/flightrecorder/warning", "");
|
||
|
if (!me.haveData)
|
||
|
tape = "";
|
||
|
fgcommand("load-tape", props.Node.new({"tape": tape, "preview": 1} ) );
|
||
|
var actype = getprop("/sim/gui/dialogs/flightrecorder/preview/aircraft-type");
|
||
|
if ((actype != "")and(actype != getprop("/sim/aircraft")))
|
||
|
{
|
||
|
setprop("/sim/gui/dialogs/flightrecorder/warning",
|
||
|
"Tape was recorded for another aircraft (" ~ actype ~ "). It may not work (properly). Good luck! :)");
|
||
|
}
|
||
|
},
|
||
|
close: func {},
|
||
|
redraw: func{gui.dialog_update("flight-recorder-load", "selected-tape");},
|
||
|
};
|
||
|
var setdefault = func (prop, value) { if (getprop(prop) == nil) setprop(prop, value);}
|
||
|
setdefault("/sim/gui/dialogs/flightrecorder/show-matching-aircraft-only", 1);
|
||
|
var controller = DialogController.new( cmdarg() );
|
||
|
]]></open>
|
||
|
</nasal>
|
||
|
<!--
|
||
|
|
||
|
-->
|
||
|
|
||
|
<!-- titlebar -->
|
||
|
<group>
|
||
|
<layout>hbox</layout>
|
||
|
<empty><stretch>1</stretch></empty>
|
||
|
|
||
|
<text>
|
||
|
<label>Load Flight Recorder Tape</label>
|
||
|
</text>
|
||
|
|
||
|
<empty><stretch>1</stretch></empty>
|
||
|
|
||
|
<button>
|
||
|
<pref-width>16</pref-width>
|
||
|
<pref-height>16</pref-height>
|
||
|
<legend></legend>
|
||
|
<keynum>27</keynum>
|
||
|
<border>2</border>
|
||
|
<binding>
|
||
|
<command>dialog-close</command>
|
||
|
</binding>
|
||
|
</button>
|
||
|
</group>
|
||
|
<hrule/>
|
||
|
|
||
|
<!-- main dialog area -->
|
||
|
|
||
|
<group>
|
||
|
<layout>table</layout>
|
||
|
|
||
|
<text>
|
||
|
<row>0</row><col>0</col>
|
||
|
<label>Tape Directory:</label>
|
||
|
<halign>left</halign>
|
||
|
<valign>top</valign>
|
||
|
</text>
|
||
|
<text>
|
||
|
<row>0</row><col>1</col>
|
||
|
<halign>left</halign>
|
||
|
<valign>top</valign>
|
||
|
<label>MMMMMMMMMMMMMMMMM</label>
|
||
|
<stretch>1</stretch>
|
||
|
<format>%s</format>
|
||
|
<property>/sim/replay/tape-directory</property>
|
||
|
<live>true</live>
|
||
|
<color>
|
||
|
<red>0.7</red>
|
||
|
<green>0.7</green>
|
||
|
<blue>0.7</blue>
|
||
|
<alpha>1</alpha>
|
||
|
</color>
|
||
|
</text>
|
||
|
<button>
|
||
|
<equal>false</equal>
|
||
|
<row>0</row><col>2</col>
|
||
|
<legend>Change</legend>
|
||
|
<halign>left</halign>
|
||
|
<valign>top</valign>
|
||
|
<binding>
|
||
|
<command>nasal</command>
|
||
|
<script><![CDATA[
|
||
|
var set_tapedir_sel = gui.DirSelector.new(
|
||
|
func(result) { setprop("/sim/replay/tape-directory", result.getValue());
|
||
|
controller.updateCombo();controller.redraw();
|
||
|
},
|
||
|
"Select Tape Directory", "Ok", getprop("/sim/replay/tape-directory"));
|
||
|
set_tapedir_sel.open();
|
||
|
]]></script>
|
||
|
</binding>
|
||
|
</button>
|
||
|
|
||
|
<text>
|
||
|
<row>1</row><col>0</col>
|
||
|
<label>Hide Mismatching Tapes:</label>
|
||
|
<halign>left</halign>
|
||
|
</text>
|
||
|
<checkbox>
|
||
|
<row>1</row><col>1</col>
|
||
|
<name>matching-aircraft</name>
|
||
|
<halign>left</halign>
|
||
|
<property>/sim/gui/dialogs/flightrecorder/show-matching-aircraft-only</property>
|
||
|
<live>true</live>
|
||
|
<binding>
|
||
|
<command>dialog-apply</command>
|
||
|
<object-name>matching-aircraft</object-name>
|
||
|
</binding>
|
||
|
<binding>
|
||
|
<command>nasal</command>
|
||
|
<script>controller.updateCombo();controller.redraw();</script>
|
||
|
</binding>
|
||
|
<label>(Don't show tapes from other aircraft)</label>
|
||
|
</checkbox>
|
||
|
|
||
|
<text>
|
||
|
<row>2</row><col>0</col>
|
||
|
<label>Selected Tape:</label>
|
||
|
<halign>left</halign>
|
||
|
</text>
|
||
|
<combo>
|
||
|
<name>selected-tape</name>
|
||
|
<halign>left</halign>
|
||
|
<row>2</row><col>1</col>
|
||
|
<pref-width>300</pref-width>
|
||
|
<property>/sim/gui/dialogs/flightrecorder/selected-tape</property>
|
||
|
<editable>false</editable>
|
||
|
<live>true</live>
|
||
|
<binding>
|
||
|
<command>dialog-apply</command>
|
||
|
<object-name>selected-tape</object-name>
|
||
|
</binding>
|
||
|
<binding>
|
||
|
<command>nasal</command>
|
||
|
<script>controller.preview();controller.redraw();</script>
|
||
|
</binding>
|
||
|
</combo>
|
||
|
|
||
|
<hrule><row>3</row><col>0</col><colspan>3</colspan></hrule>
|
||
|
|
||
|
<text>
|
||
|
<row>5</row><col>0</col><colspan>3</colspan>
|
||
|
<label>Tape Recording Details</label>
|
||
|
<halign>center</halign>
|
||
|
</text>
|
||
|
|
||
|
<text>
|
||
|
<row>6</row><col>0</col>
|
||
|
<label>Author/Pilot:</label>
|
||
|
<halign>left</halign>
|
||
|
</text>
|
||
|
<text>
|
||
|
<row>6</row><col>1</col>
|
||
|
<format>%s</format>
|
||
|
<property>/sim/gui/dialogs/flightrecorder/preview/user-data/author-name</property>
|
||
|
<live>true</live>
|
||
|
<halign>left</halign>
|
||
|
<color>
|
||
|
<red>0.8</red>
|
||
|
<green>0.8</green>
|
||
|
<blue>0.0</blue>
|
||
|
<alpha>1</alpha>
|
||
|
</color>
|
||
|
</text>
|
||
|
|
||
|
<text>
|
||
|
<row>8</row><col>0</col>
|
||
|
<label>Aircraft:</label>
|
||
|
<halign>left</halign>
|
||
|
</text>
|
||
|
<text>
|
||
|
<row>8</row><col>1</col>
|
||
|
<format>%s</format>
|
||
|
<property>/sim/gui/dialogs/flightrecorder/preview/aircraft-description</property>
|
||
|
<live>true</live>
|
||
|
<halign>left</halign>
|
||
|
<color>
|
||
|
<red>0.8</red>
|
||
|
<green>0.8</green>
|
||
|
<blue>0.0</blue>
|
||
|
<alpha>1</alpha>
|
||
|
</color>
|
||
|
</text>
|
||
|
|
||
|
<text>
|
||
|
<row>10</row><col>0</col>
|
||
|
<label>Aircraft Version:</label>
|
||
|
<halign>left</halign>
|
||
|
</text>
|
||
|
<text>
|
||
|
<row>10</row><col>1</col>
|
||
|
<format>%s</format>
|
||
|
<property>/sim/gui/dialogs/flightrecorder/preview/aircraft-version</property>
|
||
|
<live>true</live>
|
||
|
<halign>left</halign>
|
||
|
<color>
|
||
|
<red>0.8</red>
|
||
|
<green>0.8</green>
|
||
|
<blue>0.0</blue>
|
||
|
<alpha>1</alpha>
|
||
|
</color>
|
||
|
</text>
|
||
|
|
||
|
<text>
|
||
|
<row>14</row><col>0</col>
|
||
|
<label>Airport (nearby):</label>
|
||
|
<halign>left</halign>
|
||
|
</text>
|
||
|
<text>
|
||
|
<row>14</row><col>1</col>
|
||
|
<format>%s</format>
|
||
|
<property>/sim/gui/dialogs/flightrecorder/preview/closest-airport-id</property>
|
||
|
<live>true</live>
|
||
|
<halign>left</halign>
|
||
|
<color>
|
||
|
<red>0.8</red>
|
||
|
<green>0.8</green>
|
||
|
<blue>0.0</blue>
|
||
|
<alpha>1</alpha>
|
||
|
</color>
|
||
|
</text>
|
||
|
|
||
|
<text>
|
||
|
<row>18</row><col>0</col>
|
||
|
<label>Tape Duration:</label>
|
||
|
<halign>left</halign>
|
||
|
</text>
|
||
|
<text>
|
||
|
<row>18</row><col>1</col>
|
||
|
<property>/sim/gui/dialogs/flightrecorder/preview/tape-duration-str</property>
|
||
|
<halign>left</halign>
|
||
|
<live>true</live>
|
||
|
<color>
|
||
|
<red>0.8</red>
|
||
|
<green>0.8</green>
|
||
|
<blue>0.0</blue>
|
||
|
<alpha>1</alpha>
|
||
|
</color>
|
||
|
</text>
|
||
|
|
||
|
<text>
|
||
|
<row>22</row><col>0</col>
|
||
|
<label>FG Version (recorder):</label>
|
||
|
<halign>left</halign>
|
||
|
</text>
|
||
|
<text>
|
||
|
<row>22</row><col>1</col>
|
||
|
<property>/sim/gui/dialogs/flightrecorder/preview/version/flightgear</property>
|
||
|
<halign>left</halign>
|
||
|
<live>true</live>
|
||
|
<color>
|
||
|
<red>0.8</red>
|
||
|
<green>0.8</green>
|
||
|
<blue>0.0</blue>
|
||
|
<alpha>1</alpha>
|
||
|
</color>
|
||
|
</text>
|
||
|
|
||
|
<text>
|
||
|
<row>25</row>
|
||
|
<col>0</col>
|
||
|
<colspan>3</colspan>
|
||
|
<label>Description:</label>
|
||
|
<halign>left</halign>
|
||
|
<valign>top</valign>
|
||
|
</text>
|
||
|
</group>
|
||
|
|
||
|
<group>
|
||
|
<layout>vbox</layout>
|
||
|
<stretch>10</stretch>
|
||
|
<halign>fill</halign>
|
||
|
<valign>fill</valign>
|
||
|
<textbox>
|
||
|
<wrap>false</wrap>
|
||
|
<live>true</live>
|
||
|
<name>description-string</name>
|
||
|
<halign>fill</halign>
|
||
|
<valign>fill</valign>
|
||
|
<stretch>1</stretch>
|
||
|
<pref-width>550</pref-width>
|
||
|
<pref-height>150</pref-height>
|
||
|
<editable>false</editable>
|
||
|
<top-line>1</top-line>
|
||
|
<property>/sim/gui/dialogs/flightrecorder/preview/user-data/description</property>
|
||
|
<binding>
|
||
|
<command>dialog-apply</command>
|
||
|
<object-name>description-string</object-name>
|
||
|
</binding>
|
||
|
</textbox>
|
||
|
<text>
|
||
|
<valign>top</valign>
|
||
|
<stretch>true</stretch>
|
||
|
<property>/sim/gui/dialogs/flightrecorder/warning</property>
|
||
|
<halign>left</halign>
|
||
|
<live>true</live>
|
||
|
<color>
|
||
|
<red>1.0</red>
|
||
|
<green>0.4</green>
|
||
|
<blue>0.4</blue>
|
||
|
<alpha>1</alpha>
|
||
|
</color>
|
||
|
</text>
|
||
|
</group>
|
||
|
|
||
|
<!-- button area -->
|
||
|
<hrule/>
|
||
|
<group>
|
||
|
<layout>hbox</layout>
|
||
|
<default-padding>10</default-padding>
|
||
|
<empty><stretch>true</stretch></empty>
|
||
|
|
||
|
<button>
|
||
|
<legend>Load</legend>
|
||
|
<equal>true</equal>
|
||
|
<binding>
|
||
|
<command>dialog-apply</command>
|
||
|
</binding>
|
||
|
<binding>
|
||
|
<command>nasal</command>
|
||
|
<script>
|
||
|
# close old replay dialog and delay loading - until current replay was properly stopped
|
||
|
fgcommand("dialog-close", props.Node.new({ "dialog-name": "replay" }));
|
||
|
setprop("/sim/replay/disable", 0);
|
||
|
settimer(func {
|
||
|
var Config = props.Node.new({
|
||
|
"tape": getprop("/sim/gui/dialogs/flightrecorder/selected-tape", ""),
|
||
|
"same-aircraft": 0
|
||
|
});
|
||
|
if (fgcommand("load-tape", Config))
|
||
|
gui.showDialog("replay");
|
||
|
}, 0.2);
|
||
|
</script>
|
||
|
</binding>
|
||
|
<binding>
|
||
|
<command>dialog-close</command>
|
||
|
</binding>
|
||
|
</button>
|
||
|
|
||
|
<button>
|
||
|
<legend>Cancel</legend>
|
||
|
<default>true</default>
|
||
|
<equal>true</equal>
|
||
|
<binding>
|
||
|
<command>dialog-close</command>
|
||
|
</binding>
|
||
|
</button>
|
||
|
|
||
|
<empty><stretch>true</stretch></empty>
|
||
|
</group>
|
||
|
|
||
|
</PropertyList>
|