<?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>