diff --git a/plugins/feature/map/cesiuminterface.cpp b/plugins/feature/map/cesiuminterface.cpp
index bcd193055..031d027a3 100644
--- a/plugins/feature/map/cesiuminterface.cpp
+++ b/plugins/feature/map/cesiuminterface.cpp
@@ -97,7 +97,16 @@ void CesiumInterface::track(const QString& name)
send(obj);
}
-void CesiumInterface::setTerrain(const QString &terrain, const QString &maptilerAPIKey)
+void CesiumInterface::setDefaultImagery(const QString &imagery)
+{
+ QJsonObject obj {
+ {"command", "setDefaultImagery"},
+ {"imagery", imagery}
+ };
+ send(obj);
+}
+
+void CesiumInterface::setTerrain(const QString &terrain, const QString &maptilerAPIKey, bool lighting, bool water)
{
QString provider;
QString url;
@@ -118,7 +127,9 @@ void CesiumInterface::setTerrain(const QString &terrain, const QString &maptiler
QJsonObject obj {
{"command", "setTerrain"},
{"provider", provider},
- {"url", url}
+ {"url", url},
+ {"lighting", lighting},
+ {"water", water}
};
send(obj);
}
@@ -132,11 +143,12 @@ void CesiumInterface::setBuildings(const QString &buildings)
send(obj);
}
-void CesiumInterface::setSunLight(bool useSunLight)
+void CesiumInterface::setLighting(bool useSunLight, float cameraLightIntensity)
{
QJsonObject obj {
- {"command", "setSunLight"},
- {"useSunLight", useSunLight}
+ {"command", "setLighting"},
+ {"useSunLight", useSunLight},
+ {"cameraLightIntensity", cameraLightIntensity}
};
send(obj);
}
@@ -150,11 +162,48 @@ void CesiumInterface::setCameraReferenceFrame(bool eci)
send(obj);
}
-void CesiumInterface::setAntiAliasing(const QString &antiAliasing)
+void CesiumInterface::setAntiAliasing(bool fxaa, int msaa)
{
QJsonObject obj {
{"command", "setAntiAliasing"},
- {"antiAliasing", antiAliasing}
+ {"fxaa", fxaa},
+ {"msaa", msaa}
+ };
+ send(obj);
+}
+
+void CesiumInterface::setHDR(bool enabled)
+{
+ QJsonObject obj {
+ {"command", "setHDR"},
+ {"hdr", enabled}
+ };
+ send(obj);
+}
+
+void CesiumInterface::setFog(bool enabled)
+{
+ QJsonObject obj {
+ {"command", "setFog"},
+ {"fog", enabled}
+ };
+ send(obj);
+}
+
+void CesiumInterface::showFPS(bool show)
+{
+ QJsonObject obj {
+ {"command", "showFPS"},
+ {"show", show}
+ };
+ send(obj);
+}
+
+void CesiumInterface::showPFD(bool show)
+{
+ QJsonObject obj {
+ {"command", "showPFD"},
+ {"show", show}
};
send(obj);
}
diff --git a/plugins/feature/map/cesiuminterface.h b/plugins/feature/map/cesiuminterface.h
index c9a472725..3322c65fa 100644
--- a/plugins/feature/map/cesiuminterface.h
+++ b/plugins/feature/map/cesiuminterface.h
@@ -60,11 +60,15 @@ public:
void setDateTime(QDateTime dateTime);
void getDateTime();
void track(const QString &name);
- void setTerrain(const QString &terrain, const QString &maptilerAPIKey);
+ void setDefaultImagery(const QString &imagery);
+ void setTerrain(const QString &terrain, const QString &maptilerAPIKey, bool lighting, bool water);
void setBuildings(const QString &buildings);
void setCameraReferenceFrame(bool eci);
- void setSunLight(bool useSunLight);
- void setAntiAliasing(const QString &antiAliasing);
+ void setLighting(bool useSunLight, float cameraLightIntensity);
+ void setAntiAliasing(bool fxaa, int msaa);
+ void setHDR(bool enabled);
+ void setFog(bool enabled);
+ void showFPS(bool show);
void showMUF(bool show);
void showfoF2(bool show);
void showMagDec(bool show);
diff --git a/plugins/feature/map/mapgui.cpp b/plugins/feature/map/mapgui.cpp
index 24b07056a..b34bfdcf6 100644
--- a/plugins/feature/map/mapgui.cpp
+++ b/plugins/feature/map/mapgui.cpp
@@ -1925,6 +1925,7 @@ void MapGUI::applyMap3DSettings(bool reloadMap)
}
m_webServer->addSubstitution("/map/map/map3d.html", "$WS_PORT$", QString::number(m_cesium->serverPort()));
m_webServer->addSubstitution("/map/map/map3d.html", "$CESIUM_ION_API_KEY$", cesiumIonAPIKey());
+ m_webServer->addSubstitution("/map/map/map3d.html", "$ARCGIS_API_KEY$", m_settings.m_arcGISAPIKey);
//ui->web->page()->profile()->clearHttpCache();
ui->web->load(QUrl(QString("http://127.0.0.1:%1/map/map/map3d.html").arg(m_webPort)));
//ui->web->load(QUrl(QString("http://webglreport.com/")));
@@ -1941,12 +1942,16 @@ void MapGUI::applyMap3DSettings(bool reloadMap)
ui->web->setVisible(m_settings.m_map3DEnabled);
if (m_cesium && m_cesium->isConnected())
{
- m_cesium->setTerrain(m_settings.m_terrain, maptilerAPIKey());
+ m_cesium->setDefaultImagery(m_settings.m_defaultImagery);
+ m_cesium->setTerrain(m_settings.m_terrain, maptilerAPIKey(), m_settings.m_terrainLighting, m_settings.m_water);
m_cesium->setBuildings(m_settings.m_buildings);
- m_cesium->setSunLight(m_settings.m_sunLightEnabled);
+ m_cesium->setLighting(m_settings.m_sunLightEnabled, m_settings.m_lightIntensity);
m_cesium->setCameraReferenceFrame(m_settings.m_eciCamera);
- m_cesium->setAntiAliasing(m_settings.m_antiAliasing);
+ m_cesium->setAntiAliasing(m_settings.m_fxaa, m_settings.m_msaa);
m_cesium->getDateTime();
+ m_cesium->setHDR(m_settings.m_hdr);
+ m_cesium->setFog(m_settings.m_fog);
+ m_cesium->showFPS(m_settings.m_fps);
m_cesium->showMUF(m_settings.m_displayMUF);
m_cesium->showfoF2(m_settings.m_displayfoF2);
m_cesium->showMagDec(m_settings.m_displayMagDec);
@@ -2030,12 +2035,16 @@ void MapGUI::init3DMap()
float stationAltitude = MainCore::instance()->getSettings().getLongitude();
m_cesium->setPosition(QGeoCoordinate(stationLatitude, stationLongitude, stationAltitude));
- m_cesium->setTerrain(m_settings.m_terrain, maptilerAPIKey());
+ m_cesium->setDefaultImagery(m_settings.m_defaultImagery);
+ m_cesium->setTerrain(m_settings.m_terrain, maptilerAPIKey(), m_settings.m_terrainLighting, m_settings.m_water);
m_cesium->setBuildings(m_settings.m_buildings);
- m_cesium->setSunLight(m_settings.m_sunLightEnabled);
+ m_cesium->setLighting(m_settings.m_sunLightEnabled, m_settings.m_lightIntensity);
m_cesium->setCameraReferenceFrame(m_settings.m_eciCamera);
- m_cesium->setAntiAliasing(m_settings.m_antiAliasing);
+ m_cesium->setAntiAliasing(m_settings.m_fxaa, m_settings.m_msaa);
m_cesium->getDateTime();
+ m_cesium->setHDR(m_settings.m_hdr);
+ m_cesium->setFog(m_settings.m_fog);
+ m_cesium->showFPS(m_settings.m_fps);
m_objectMapModel.allUpdated();
m_imageMapModel.allUpdated();
diff --git a/plugins/feature/map/mapguiwebengine.ui b/plugins/feature/map/mapguiwebengine.ui
index 49dedf0f0..f9e85f6b0 100644
--- a/plugins/feature/map/mapguiwebengine.ui
+++ b/plugins/feature/map/mapguiwebengine.ui
@@ -123,6 +123,26 @@
+ -
+
+
+ Display Maidenhead grid (3D map only)
+
+
+
+
+
+
+ :/map/icons/grid.png:/map/icons/grid.png
+
+
+ true
+
+
+ true
+
+
+
-
@@ -299,6 +319,46 @@
+ -
+
+
+ Display magnetic declination contours (3D map only)
+
+
+
+
+
+
+ :/map/icons/compass.png:/map/icons/compass.png
+
+
+ true
+
+
+ true
+
+
+
+ -
+
+
+ Display aurora probabilty (3D only)
+
+
+
+
+
+
+ :/map/icons/aurora.png:/map/icons/aurora.png
+
+
+ true
+
+
+ true
+
+
+
-
diff --git a/plugins/feature/map/mapicons.qrc b/plugins/feature/map/mapicons.qrc
index 96e6da22b..1e71f738d 100644
--- a/plugins/feature/map/mapicons.qrc
+++ b/plugins/feature/map/mapicons.qrc
@@ -14,6 +14,10 @@
icons/railway.png
icons/waypoints.png
icons/earthsat.png
+ icons/aurora.png
icons/compass.png
+ icons/grid.png
+ icons/thirdperson.png
+ icons/firstperson.png
diff --git a/plugins/feature/map/mapsettings.cpp b/plugins/feature/map/mapsettings.cpp
index a0e0539a3..e72212050 100644
--- a/plugins/feature/map/mapsettings.cpp
+++ b/plugins/feature/map/mapsettings.cpp
@@ -204,9 +204,16 @@ void MapSettings::resetToDefaults()
m_terrain = "Cesium World Terrain";
m_buildings = "None";
m_sunLightEnabled = true;
+ m_lightIntensity = 3.0f;
m_eciCamera = false;
m_modelDir = HttpDownloadManager::downloadDir() + "/3d";
- m_antiAliasing = "None";
+ m_fxaa = true;
+ m_msaa = 1;
+ m_terrainLighting = true;
+ m_water = false;
+ m_hdr = true;
+ m_fog = true;
+ m_fps = false;
m_displayMUF = false;
m_displayfoF2 = false;
m_displayRain = false;
@@ -275,9 +282,23 @@ QByteArray MapSettings::serialize() const
s.writeBool(41, m_displayNASAGlobalImagery);
s.writeString(42, m_nasaGlobalImageryIdentifier);
s.writeS32(43, m_nasaGlobalImageryOpacity);
+ s.writeBool(44, m_displayAurora);
+ s.writeBool(45, m_displayMagDec);
s.writeString(46, m_checkWXAPIKey);
+ s.writeFloat(47, m_lightIntensity);
+
+ s.writeBool(48, m_displayMaidenheadGrid);
+ s.writeString(49, m_defaultImagery);
+ s.writeString(50, m_arcGISAPIKey);
+ s.writeBool(53, m_terrainLighting);
+ s.writeBool(54, m_water);
+ s.writeBool(55, m_hdr);
+ s.writeBool(56, m_fog);
+ s.writeBool(57, m_fps);
+ s.writeBool(58, m_fxaa);
+ s.writeS32(59, m_msaa);
return s.final();
}
@@ -361,10 +382,22 @@ bool MapSettings::deserialize(const QByteArray& data)
d.readBool(41, &m_displayNASAGlobalImagery, false);
d.readString(42, &m_nasaGlobalImageryIdentifier, "");
d.readS32(43, &m_nasaGlobalImageryOpacity, 50);
+ d.readBool(44, &m_displayAurora, false);
d.readBool(45, &m_displayMagDec, false);
d.readString(46, &m_checkWXAPIKey, "");
+ d.readFloat(47, &m_lightIntensity, 3.0f);
+ d.readBool(48, &m_displayMaidenheadGrid, false);
+ d.readString(49, &m_defaultImagery, "Sentinel-2");
+ d.readString(50, &m_arcGISAPIKey, "");
+ d.readBool(53, &m_terrainLighting, true);
+ d.readBool(54, &m_water, false);
+ d.readBool(55, &m_hdr, true);
+ d.readBool(56, &m_fog, true);
+ d.readBool(57, &m_fps, false);
+ d.readBool(58, &m_fxaa, false);
+ d.readS32(59, &m_msaa, 1);
return true;
}
else
@@ -598,14 +631,35 @@ void MapSettings::applySettings(const QStringList& settingsKeys, const MapSettin
if (settingsKeys.contains("sunLightEnabled")) {
m_sunLightEnabled = settings.m_sunLightEnabled;
}
+ if (settingsKeys.contains("lightIntensity")) {
+ m_lightIntensity = settings.m_lightIntensity;
+ }
if (settingsKeys.contains("eciCamera")) {
m_eciCamera = settings.m_eciCamera;
}
if (settingsKeys.contains("modelDir")) {
m_modelDir = settings.m_modelDir;
}
- if (settingsKeys.contains("antiAliasing")) {
- m_antiAliasing = settings.m_antiAliasing;
+ if (settingsKeys.contains("fxaa")) {
+ m_fxaa = settings.m_fxaa;
+ }
+ if (settingsKeys.contains("msaa")) {
+ m_msaa = settings.m_msaa;
+ }
+ if (settingsKeys.contains("terrainLighting")) {
+ m_terrainLighting = settings.m_terrainLighting;
+ }
+ if (settingsKeys.contains("water")) {
+ m_water = settings.m_water;
+ }
+ if (settingsKeys.contains("hdr")) {
+ m_hdr = settings.m_hdr;
+ }
+ if (settingsKeys.contains("fog")) {
+ m_fog = settings.m_fog;
+ }
+ if (settingsKeys.contains("fps")) {
+ m_fps = settings.m_fps;
}
if (settingsKeys.contains("displayMUF")) {
m_displayMUF = settings.m_displayMUF;
@@ -634,9 +688,21 @@ void MapSettings::applySettings(const QStringList& settingsKeys, const MapSettin
if (settingsKeys.contains("nasaGlobalImageryOpacity")) {
m_nasaGlobalImageryOpacity = settings.m_nasaGlobalImageryOpacity;
}
+ if (settingsKeys.contains("displayAurora")) {
+ m_displayAurora = settings.m_displayAurora;
+ }
if (settingsKeys.contains("displayMagDec")) {
m_displayMagDec = settings.m_displayMagDec;
}
+ if (settingsKeys.contains("displayMaidenheadGrid")) {
+ m_displayMaidenheadGrid = settings.m_displayMaidenheadGrid;
+ }
+ if (settingsKeys.contains("defaultImagery")) {
+ m_defaultImagery = settings.m_defaultImagery;
+ }
+ if (settingsKeys.contains("arcGISAPIKey")) {
+ m_arcGISAPIKey = settings.m_arcGISAPIKey;
+ }
if (settingsKeys.contains("workspaceIndex")) {
m_workspaceIndex = settings.m_workspaceIndex;
}
@@ -709,14 +775,35 @@ QString MapSettings::getDebugString(const QStringList& settingsKeys, bool force)
if (settingsKeys.contains("sunLightEnabled") || force) {
ostr << " m_sunLightEnabled: " << m_sunLightEnabled;
}
+ if (settingsKeys.contains("lightIntensity") || force) {
+ ostr << " m_lightIntensity: " << m_lightIntensity;
+ }
if (settingsKeys.contains("eciCamera") || force) {
ostr << " m_eciCamera: " << m_eciCamera;
}
if (settingsKeys.contains("modelDir") || force) {
ostr << " m_modelDir: " << m_modelDir.toStdString();
}
- if (settingsKeys.contains("antiAliasing") || force) {
- ostr << " m_antiAliasing: " << m_antiAliasing.toStdString();
+ if (settingsKeys.contains("fxaa") || force) {
+ ostr << " m_fxaa: " << m_fxaa;
+ }
+ if (settingsKeys.contains("msaa") || force) {
+ ostr << " m_msaa: " << m_msaa;
+ }
+ if (settingsKeys.contains("terrainLighting") || force) {
+ ostr << " m_terrainLighting: " << m_terrainLighting;
+ }
+ if (settingsKeys.contains("water") || force) {
+ ostr << " m_water: " << m_water;
+ }
+ if (settingsKeys.contains("hdr") || force) {
+ ostr << " m_hdr: " << m_hdr;
+ }
+ if (settingsKeys.contains("fog") || force) {
+ ostr << " m_fog: " << m_fog;
+ }
+ if (settingsKeys.contains("fps") || force) {
+ ostr << " m_fps: " << m_fps;
}
if (settingsKeys.contains("displayMUF") || force) {
ostr << " m_displayMUF: " << m_displayMUF;
@@ -745,9 +832,21 @@ QString MapSettings::getDebugString(const QStringList& settingsKeys, bool force)
if (settingsKeys.contains("nasaGlobalImageryOpacity") || force) {
ostr << " m_nasaGlobalImageryOpacity: " << m_nasaGlobalImageryOpacity;
}
+ if (settingsKeys.contains("displayAurora") || force) {
+ ostr << " m_displayAurora: " << m_displayAurora;
+ }
if (settingsKeys.contains("displayMagDec") || force) {
ostr << " m_displayMagDec: " << m_displayMagDec;
}
+ if (settingsKeys.contains("displayMaidenheadGrid") || force) {
+ ostr << " m_displayMaidenheadGrid: " << m_displayMaidenheadGrid;
+ }
+ if (settingsKeys.contains("defaultImagery") || force) {
+ ostr << " m_defaultImagery: " << m_defaultImagery.toStdString();
+ }
+ if (settingsKeys.contains("arcGISAPIKey") || force) {
+ ostr << " m_arcGISAPIKey: " << m_arcGISAPIKey.toStdString();
+ }
if (settingsKeys.contains("workspaceIndex") || force) {
ostr << " m_workspaceIndex: " << m_workspaceIndex;
}
diff --git a/plugins/feature/map/mapsettings.h b/plugins/feature/map/mapsettings.h
index 3a128b572..7bb8bfe0d 100644
--- a/plugins/feature/map/mapsettings.h
+++ b/plugins/feature/map/mapsettings.h
@@ -97,9 +97,16 @@ struct MapSettings
QString m_modelURL; // Base URL for 3D models (Not user settable, as depends on web server port)
QString m_modelDir; // Directory to store 3D models (not customizable for now, as ADS-B plugin needs to know)
bool m_sunLightEnabled; // Light globe from direction of Sun
+ float m_lightIntensity; // Intensity of camera light
bool m_eciCamera; // Use ECI instead of ECEF for camera
QString m_cesiumIonAPIKey;
- QString m_antiAliasing;
+ bool m_fxaa;
+ int m_msaa;
+ bool m_terrainLighting;
+ bool m_water;
+ bool m_hdr;
+ bool m_fog;
+ bool m_fps;
bool m_displayMUF; // Plot MUF contours
bool m_displayfoF2; // Plot foF2 contours
@@ -110,9 +117,13 @@ struct MapSettings
bool m_displayNASAGlobalImagery;
QString m_nasaGlobalImageryIdentifier;
int m_nasaGlobalImageryOpacity;
+ bool m_displayAurora;
bool m_displayMagDec;
+ bool m_displayMaidenheadGrid;
+ QString m_defaultImagery;
QString m_checkWXAPIKey; //!< checkwxapi.com API key
+ QString m_arcGISAPIKey;
// Per source settings
QHash m_itemSettings;
diff --git a/plugins/feature/map/mapsettingsdialog.cpp b/plugins/feature/map/mapsettingsdialog.cpp
index 6d9ee7691..ea08f5afa 100644
--- a/plugins/feature/map/mapsettingsdialog.cpp
+++ b/plugins/feature/map/mapsettingsdialog.cpp
@@ -83,15 +83,25 @@ MapSettingsDialog::MapSettingsDialog(MapSettings *settings, QWidget* parent) :
ui->mapBoxAPIKey->setText(settings->m_mapBoxAPIKey);
ui->cesiumIonAPIKey->setText(settings->m_cesiumIonAPIKey);
ui->checkWXAPIKey->setText(settings->m_checkWXAPIKey);
+ ui->arcGISAPIKey->setText(settings->m_arcGISAPIKey);
ui->osmURL->setText(settings->m_osmURL);
ui->mapBoxStyles->setText(settings->m_mapBoxStyles);
ui->map2DEnabled->setChecked(m_settings->m_map2DEnabled);
ui->map3DEnabled->setChecked(m_settings->m_map3DEnabled);
+ ui->defaultImagery->setCurrentIndex(ui->defaultImagery->findText(m_settings->m_defaultImagery));
ui->terrain->setCurrentIndex(ui->terrain->findText(m_settings->m_terrain));
ui->buildings->setCurrentIndex(ui->buildings->findText(m_settings->m_buildings));
ui->sunLightEnabled->setCurrentIndex((int)m_settings->m_sunLightEnabled);
+ ui->lightIntensity->setValue(m_settings->m_lightIntensity);
+ ui->lightIntensity->setEnabled(!m_settings->m_sunLightEnabled);
ui->eciCamera->setCurrentIndex((int)m_settings->m_eciCamera);
- ui->antiAliasing->setCurrentIndex(ui->antiAliasing->findText(m_settings->m_antiAliasing));
+ ui->fxaa->setChecked(m_settings->m_fxaa);
+ ui->msaa->setCurrentText(msaaToString(m_settings->m_msaa));
+ ui->terrainLighting->setChecked(m_settings->m_terrainLighting);
+ ui->water->setChecked(m_settings->m_water);
+ ui->hdr->setChecked(m_settings->m_hdr);
+ ui->fog->setChecked(m_settings->m_fog);
+ ui->fps->setChecked(m_settings->m_fps);
// Sort groups in table alphabetically
QList itemSettings = m_settings->m_itemSettings.values();
@@ -178,6 +188,7 @@ void MapSettingsDialog::accept()
QString thunderforestAPIKey = ui->thunderforestAPIKey->text();
QString maptilerAPIKey = ui->maptilerAPIKey->text();
QString cesiumIonAPIKey = ui->cesiumIonAPIKey->text();
+ QString arcGISAPIKey = ui->arcGISAPIKey->text();
m_osmURLChanged = osmURL != m_settings->m_osmURL;
if ((mapProvider != m_settings->m_mapProvider)
|| (thunderforestAPIKey != m_settings->m_thunderforestAPIKey)
@@ -199,10 +210,14 @@ void MapSettingsDialog::accept()
{
m_map2DSettingsChanged = false;
}
- if (cesiumIonAPIKey != m_settings->m_cesiumIonAPIKey)
+ if ( (cesiumIonAPIKey != m_settings->m_cesiumIonAPIKey)
+ || (arcGISAPIKey != m_settings->m_arcGISAPIKey))
{
m_settings->m_cesiumIonAPIKey = cesiumIonAPIKey;
+ m_settings->m_arcGISAPIKey = arcGISAPIKey;
m_map3DSettingsChanged = true;
+ m_settingsKeysChanged.append("cesiumIonAPIKey");
+ m_settingsKeysChanged.append("arcGISAPIKey");
}
else
{
@@ -219,6 +234,11 @@ void MapSettingsDialog::accept()
m_settings->m_map3DEnabled = ui->map3DEnabled->isChecked();
m_settingsKeysChanged.append("map3DEnabled");
}
+ if (m_settings->m_defaultImagery != ui->defaultImagery->currentText())
+ {
+ m_settings->m_defaultImagery = ui->defaultImagery->currentText();
+ m_settingsKeysChanged.append("defaultImagery");
+ }
if (m_settings->m_terrain != ui->terrain->currentText())
{
m_settings->m_terrain = ui->terrain->currentText();
@@ -234,15 +254,50 @@ void MapSettingsDialog::accept()
m_settings->m_sunLightEnabled = ui->sunLightEnabled->currentIndex() == 1;
m_settingsKeysChanged.append("sunLightEnabled");
}
+ if (m_settings->m_lightIntensity != ui->lightIntensity->value())
+ {
+ m_settings->m_lightIntensity = ui->lightIntensity->value();
+ m_settingsKeysChanged.append("lightIntensity");
+ }
if (m_settings->m_eciCamera != (ui->eciCamera->currentIndex() == 1))
{
m_settings->m_eciCamera = ui->eciCamera->currentIndex() == 1;
m_settingsKeysChanged.append("eciCamera");
}
- if (m_settings->m_antiAliasing != ui->antiAliasing->currentText())
+ if (m_settings->m_fxaa != ui->fxaa->isChecked())
{
- m_settings->m_antiAliasing = ui->antiAliasing->currentText();
- m_settingsKeysChanged.append("antiAliasing");
+ m_settings->m_fxaa = ui->fxaa->isChecked();
+ m_settingsKeysChanged.append("fxaa");
+ }
+ if (m_settings->m_msaa != stringToMSAA(ui->msaa->currentText()))
+ {
+ m_settings->m_msaa = stringToMSAA(ui->msaa->currentText());
+ m_settingsKeysChanged.append("msaa");
+ }
+ if (m_settings->m_terrainLighting != ui->terrainLighting->isChecked())
+ {
+ m_settings->m_terrainLighting = ui->terrainLighting->isChecked();
+ m_settingsKeysChanged.append("terrainLighting");
+ }
+ if (m_settings->m_water != ui->water->isChecked())
+ {
+ m_settings->m_water = ui->water->isChecked();
+ m_settingsKeysChanged.append("water");
+ }
+ if (m_settings->m_hdr != ui->hdr->isChecked())
+ {
+ m_settings->m_hdr = ui->hdr->isChecked();
+ m_settingsKeysChanged.append("hdr");
+ }
+ if (m_settings->m_fog != ui->fog->isChecked())
+ {
+ m_settings->m_fog = ui->fog->isChecked();
+ m_settingsKeysChanged.append("fog");
+ }
+ if (m_settings->m_fps != ui->fps->isChecked())
+ {
+ m_settings->m_fps = ui->fps->isChecked();
+ m_settingsKeysChanged.append("fps");
}
for (int row = 0; row < ui->mapItemSettings->rowCount(); row++)
@@ -318,7 +373,16 @@ void MapSettingsDialog::on_map3DEnabled_clicked(bool checked)
ui->buildings->setEnabled(checked);
ui->sunLightEnabled->setEnabled(checked);
ui->eciCamera->setEnabled(checked);
- ui->antiAliasing->setEnabled(checked);
+ ui->fxaa->setEnabled(checked);
+ ui->msaa->setEnabled(checked);
+}
+
+void MapSettingsDialog::on_terrain_currentIndexChanged(int index)
+{
+ bool ellipsoid = ui->terrain->currentText() == "Ellipsoid";
+
+ ui->terrainLighting->setEnabled(!ellipsoid);
+ ui->water->setEnabled(!ellipsoid);
}
// Models have individual licensing. See LICENSE on github
@@ -554,3 +618,25 @@ void MapSettingsDialog::downloadWaypointsFinished()
}
}
+void MapSettingsDialog::on_sunLightEnabled_currentIndexChanged(int index)
+{
+ ui->lightIntensity->setEnabled(index == 0);
+}
+
+QString MapSettingsDialog::msaaToString(int msaa) const
+{
+ if (msaa <= 1) {
+ return "Off";
+ } else {
+ return QString::number(msaa);
+ }
+}
+
+int MapSettingsDialog::stringToMSAA(const QString& string) const
+{
+ if (string == "Off") {
+ return 1;
+ } else {
+ return string.toInt();
+ }
+}
diff --git a/plugins/feature/map/mapsettingsdialog.h b/plugins/feature/map/mapsettingsdialog.h
index 73589cafe..163e74831 100644
--- a/plugins/feature/map/mapsettingsdialog.h
+++ b/plugins/feature/map/mapsettingsdialog.h
@@ -91,15 +91,19 @@ private:
Waypoints m_waypoints;
void unzip(const QString &filename);
-
+ QString msaaToString(int msaa) const;
+ int stringToMSAA(const QString& string) const;
+
private slots:
void accept();
void on_map2DEnabled_clicked(bool checked=false);
void on_map3DEnabled_clicked(bool checked=false);
+ void on_terrain_currentIndexChanged(int index);
void on_downloadModels_clicked();
void on_getAirportDB_clicked();
void on_getAirspacesDB_clicked();
void on_getWaypoints_clicked();
+ void on_sunLightEnabled_currentIndexChanged(int index);
void downloadComplete(const QString &filename, bool success, const QString &url, const QString &errorMessage);
void downloadingURL(const QString& url);
void downloadProgress(qint64 bytesRead, qint64 totalBytes);