9e6bb54bca
Displays a set of properties under /scenery/sources This property tree is populated with the contents of sources.xml files in Scenery directories. Such files should have the following format: <?xml version="1.0"?> <PropertyList> <source> <name>Corine Land Cover (CLC) 2018, Version 2020_20u1</name> <link>http://web.archive.org/web/20221112175615/https://land.copernicus.eu/pan-european/corine-land-cover/clc2018?tab=metadata%2A</link> <license>GMES Open License</license> </source> <source> <name>NASADEM Merged DEM Global 1 arc second V001</name> <link>https://www.earthdata.nasa.gov/</link> <license>Public Domain</license> </source> <source> <name>OpenStreetMap</name> <link>https://www.openstreetmap.org/copyright</link> <license>Open Data Commons Open Database License</license> </source> </PropertyList>
131 lines
3.1 KiB
XML
131 lines
3.1 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<!-- Sound control dialog -->
|
|
|
|
<PropertyList>
|
|
<name>scenery-sources</name>
|
|
<modal>false</modal>
|
|
<width>1000</width>
|
|
<layout>vbox</layout>
|
|
|
|
<group>
|
|
<layout>hbox</layout>
|
|
<empty><stretch>1</stretch></empty>
|
|
|
|
<text>
|
|
<label>Scenery Sources</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/>
|
|
|
|
<group>
|
|
<name>source-table</name>
|
|
<layout>table</layout>
|
|
<halign>fill</halign>
|
|
|
|
<text>
|
|
<row>0</row>
|
|
<col>0</col>
|
|
<label>Directory</label>
|
|
<padding>10</padding>
|
|
</text>
|
|
|
|
<text>
|
|
<row>0</row>
|
|
<col>1</col>
|
|
<label>Source</label>
|
|
<padding>10</padding>
|
|
</text>
|
|
|
|
<text>
|
|
<row>0</row>
|
|
<col>2</col>
|
|
<label>License</label>
|
|
<padding>10</padding>
|
|
</text>
|
|
|
|
<text>
|
|
<row>0</row>
|
|
<col>3</col>
|
|
<label>URL</label>
|
|
<padding>10</padding>
|
|
</text>
|
|
|
|
</group>
|
|
|
|
<hrule/>
|
|
|
|
<group>
|
|
<layout>hbox</layout>
|
|
<default-padding>10</default-padding>
|
|
|
|
<button>
|
|
<legend>Close</legend>
|
|
<default>true</default>
|
|
<key>Esc</key>
|
|
<binding>
|
|
<command>dialog-close</command>
|
|
</binding>
|
|
</button>
|
|
</group>
|
|
|
|
<nasal>
|
|
<open><![CDATA[
|
|
var dlg_root = cmdarg();
|
|
|
|
# Fill the table of scenery sources
|
|
var table = gui.findElementByName( dlg_root, "source-table" );
|
|
var row = 1;
|
|
var sources = props.globals.getNode( "scenery/sources" );
|
|
if( sources != nil ) {
|
|
var dirs = sources.getChildren("directory");
|
|
forindex (var i; dirs ) {
|
|
var path = dirs[i].getValue("path");
|
|
var path_txt = table.addChild("text");
|
|
path_txt.setValues( { row: row, col: 0, label: path, padding: 5, halign: "left"} );
|
|
|
|
var source = dirs[i].getChildren("source");
|
|
forindex (var j; source) {
|
|
var name = source[j].getValue("name");
|
|
var link = source[j].getValue("link");
|
|
var license = source[j].getValue("license");
|
|
|
|
var name_txt = table.addChild("text");
|
|
name_txt.setValues( { row: row, col: 1, label: name, padding: 5, halign: "left"} );
|
|
|
|
var license_txt = table.addChild("text");
|
|
license_txt.setValues( { row: row, col: 2, label: license, padding: 5, halign: "left"} );
|
|
|
|
|
|
if (link != "") {
|
|
var button = table.addChild("button");
|
|
button.setValues( { row: row, col: 3, legend: "Website", padding: 5, halign: "left",
|
|
binding: { command: "open-browser", url: link }
|
|
} );
|
|
}
|
|
|
|
row +=1;
|
|
}
|
|
}
|
|
} else {
|
|
var txt = table.addChild("text");
|
|
txt.setValues( { row: row, col: 0, colspan: 4, label: "No scenery source attributions found", padding: 10, halign: "center"} );
|
|
}
|
|
]]></open>
|
|
</nasal>
|
|
|
|
</PropertyList>
|