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);