1
0
Fork 0

Advanced weather support in the launcher

This commit is contained in:
James Turner 2017-11-13 13:19:57 +01:00
parent daedf1e546
commit 78bacefb60
3 changed files with 38 additions and 2 deletions

View file

@ -143,4 +143,13 @@ QString WeatherScenariosModel::descriptionForItem(int index) const
return m_scenarios.at(index).description;
}
QString WeatherScenariosModel::nameForItem(int index) const
{
if ((index < 0) || (index >= m_scenarios.size())) {
return QString();
}
return m_scenarios.at(index).name;
}
} // of namespace flightgear

View file

@ -46,6 +46,8 @@ public:
Q_INVOKABLE QString metarForItem(int index) const;
Q_INVOKABLE QString nameForItem(int index) const;
Q_INVOKABLE QString descriptionForItem(int index) const;
private:
struct WeatherScenario

View file

@ -5,6 +5,16 @@ Section {
id: weatherSettings
title: "Weather"
Checkbox {
id: advancedWeather
label: "Advanced weather modelling"
description: "Detailed weather simulation based on local terrain and "
+ "atmospheric simulation. Note that using advanced weather with "
+ "real-world weather data (METAR) information may not show exactly "
+ "the conditions recorded, and is not recommended for multi-player "
+ "flight since the weather simulation is not shared over the network."
}
Checkbox {
id: fetchMetar
label: "Real-world weather"
@ -50,14 +60,29 @@ Section {
}
onApply: {
if (advancedWeather.checked) {
// set description from the weather scenarios, so Local-weather
// can run the appropriate simulation
_config.setProperty("/nasal/local_weather/enabled", 1);
}
var index = weatherScenario.selectedIndex;
if (!fetchMetar.checked) {
if (weatherScenario.isCustomMETAR) {
_config.setArg("metar", customMETAR.value)
} else {
_config.setArg("metar", _weatherScenarios.metarForItem(weatherScenario.selectedIndex))
_config.setArg("metar", _weatherScenarios.metarForItem(index))
}
// either way, set the scenario name since Local-Weather keys off
// this to know what to do with the scenario + metar data
_config.setProperty("/environment/weather-scenario",
_weatherScenarios.nameForItem(index))
}
}
summary: fetchMetar.checked ? "real-world weather;" : ""
summary: (advancedWeather.checked ? "advanced weather;" : "")
+ (fetchMetar.checked ? "real-world weather;" : "")
}