celestia/src/celestia/qt/qtpreferencesdialog.cpp

835 lines
24 KiB
C++

// qtpreferencesdialog.cpp
//
// Copyright (C) 2007-2008, Celestia Development Team
// celestia-developers@lists.sourceforge.net
//
// Preferences dialog for Celestia's Qt front-end. Based on
// kdepreferencesdialog.h by Christophe Teyssier.
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
#include <QMainWindow>
#include <QPushButton>
#include <QTextEdit>
#include <QComboBox>
#include <QFrame>
#include <QCheckBox>
#include <QGroupBox>
#include <QSlider>
#include <QSpinBox>
#include <QLabel>
#include <QLayout>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include "qtappwin.h"
#include "qtpreferencesdialog.h"
#include <celengine/render.h>
#ifdef USE_GLCONTEXT
#include <celengine/glcontext.h>
#endif
#include <celestia/celestiacore.h>
#include <celutil/gettext.h>
static void SetComboBoxValue(QComboBox* combo, const QVariant& value)
{
int index;
int count = combo->count();
for (index = 0; index < count; ++index)
{
if (combo->itemData(index, Qt::UserRole) == value)
{
combo->setCurrentIndex(index);
break;
}
}
}
static uint64_t FilterOtherLocations = ~(Location::City |
Location::Observatory |
Location::LandingSite |
Location::Mons |
Location::Mare |
Location::Crater |
Location::Vallis |
Location::Terra |
Location::EruptiveCenter);
PreferencesDialog::PreferencesDialog(QWidget* parent, CelestiaCore* core) :
QDialog(parent),
appCore(core)
{
ui.setupUi(this);
// Get flags
Renderer* renderer = appCore->getRenderer();
Observer* observer = appCore->getSimulation()->getActiveObserver();
#ifdef USE_GLCONTEXT
GLContext* glContext = appCore->getRenderer()->getGLContext();
GLContext::GLRenderPath renderPath = glContext->getRenderPath();
#endif
uint64_t renderFlags = renderer->getRenderFlags();
int orbitMask = renderer->getOrbitMask();
uint64_t locationFlags = observer->getLocationFilter();
int labelMode = renderer->getLabelMode();
ColorTableType colors;
const ColorTemperatureTable* current = renderer->getStarColorTable();
if (current == GetStarColorTable(ColorTable_Blackbody_D65))
{
colors = ColorTable_Blackbody_D65;
}
else // if (current == GetStarColorTable(ColorTable_Enhanced))
{
// TODO: Figure out what we should do if we have an unknown color table
colors = ColorTable_Enhanced;
}
ui.starsCheck->setChecked((renderFlags & Renderer::ShowStars) != 0);
ui.planetsCheck->setChecked((renderFlags & Renderer::ShowPlanets) != 0);
ui.dwarfPlanetsCheck->setChecked((renderFlags & Renderer::ShowDwarfPlanets) != 0);
ui.moonsCheck->setChecked((renderFlags & Renderer::ShowMoons) != 0);
ui.minorMoonsCheck->setChecked((renderFlags & Renderer::ShowMinorMoons) != 0);
ui.asteroidsCheck->setChecked((renderFlags & Renderer::ShowAsteroids) != 0);
ui.cometsCheck->setChecked((renderFlags & Renderer::ShowComets) != 0);
ui.spacecraftsCheck->setChecked((renderFlags & Renderer::ShowSpacecrafts) != 0);
ui.galaxiesCheck->setChecked((renderFlags & Renderer::ShowGalaxies) != 0);
ui.nebulaeCheck->setChecked((renderFlags & Renderer::ShowNebulae) != 0);
ui.openClustersCheck->setChecked((renderFlags & Renderer::ShowOpenClusters) != 0);
ui.globularClustersCheck->setChecked((renderFlags & Renderer::ShowGlobulars) != 0);
ui.atmospheresCheck->setChecked((renderFlags & Renderer::ShowAtmospheres) != 0);
ui.cloudsCheck->setChecked((renderFlags & Renderer::ShowCloudMaps) != 0);
ui.cloudShadowsCheck->setChecked((renderFlags & Renderer::ShowCloudShadows) != 0);
ui.eclipseShadowsCheck->setChecked((renderFlags & Renderer::ShowEclipseShadows) != 0);
ui.ringShadowsCheck->setChecked((renderFlags & Renderer::ShowRingShadows) != 0);
ui.planetRingsCheck->setChecked((renderFlags & Renderer::ShowPlanetRings) != 0);
ui.nightsideLightsCheck->setChecked((renderFlags & Renderer::ShowNightMaps) != 0);
ui.cometTailsCheck->setChecked((renderFlags & Renderer::ShowCometTails) != 0);
ui.limitOfKnowledgeCheck->setChecked(observer->getDisplayedSurface() == "limit of knowledge");
ui.orbitsCheck->setChecked((renderFlags & Renderer::ShowOrbits) != 0);
ui.fadingOrbitsCheck->setChecked((renderFlags & Renderer::ShowFadingOrbits) != 0);
ui.starOrbitsCheck->setChecked(orbitMask & Body::Stellar);
ui.planetOrbitsCheck->setChecked(orbitMask & Body::Planet);
ui.dwarfPlanetOrbitsCheck->setChecked(orbitMask & Body::DwarfPlanet);
ui.moonOrbitsCheck->setChecked(orbitMask & Body::Moon);
ui.minorMoonOrbitsCheck->setChecked(orbitMask & Body::MinorMoon);
ui.asteroidOrbitsCheck->setChecked(orbitMask & Body::Asteroid);
ui.cometOrbitsCheck->setChecked(orbitMask & Body::Comet);
ui.spacecraftOrbitsCheck->setChecked(orbitMask & Body::Spacecraft);
ui.partialTrajectoriesCheck->setChecked((renderFlags & Renderer::ShowPartialTrajectories) != 0);
ui.equatorialGridCheck->setChecked((renderFlags & Renderer::ShowCelestialSphere) != 0);
ui.eclipticGridCheck->setChecked((renderFlags & Renderer::ShowEclipticGrid) != 0);
ui.galacticGridCheck->setChecked((renderFlags & Renderer::ShowGalacticGrid) != 0);
ui.horizontalGridCheck->setChecked((renderFlags & Renderer::ShowHorizonGrid) != 0);
ui.diagramsCheck->setChecked((renderFlags & Renderer::ShowDiagrams) != 0);
ui.boundariesCheck->setChecked((renderFlags & Renderer::ShowBoundaries) != 0);
ui.latinNamesCheck->setChecked(!(labelMode & Renderer::I18nConstellationLabels));
ui.markersCheck->setChecked((renderFlags & Renderer::ShowMarkers) != 0);
ui.eclipticLineCheck->setChecked((renderFlags & Renderer::ShowEcliptic) != 0);
ui.starLabelsCheck->setChecked(labelMode & Renderer::StarLabels);
ui.planetLabelsCheck->setChecked(labelMode & Renderer::PlanetLabels);
ui.dwarfPlanetLabelsCheck->setChecked(labelMode & Renderer::DwarfPlanetLabels);
ui.moonLabelsCheck->setChecked(labelMode & Renderer::MoonLabels);
ui.minorMoonLabelsCheck->setChecked(labelMode & Renderer::MinorMoonLabels);
ui.asteroidLabelsCheck->setChecked(labelMode & Renderer::AsteroidLabels);
ui.cometLabelsCheck->setChecked(labelMode & Renderer::CometLabels);
ui.spacecraftLabelsCheck->setChecked(labelMode & Renderer::SpacecraftLabels);
ui.galaxyLabelsCheck->setChecked(labelMode & Renderer::GalaxyLabels);
ui.nebulaLabelsCheck->setChecked(labelMode & Renderer::NebulaLabels);
ui.openClusterLabelsCheck->setChecked(labelMode & Renderer::OpenClusterLabels);
ui.globularClusterLabelsCheck->setChecked(labelMode & Renderer::GlobularLabels);
ui.constellationLabelsCheck->setChecked(labelMode & Renderer::ConstellationLabels);
ui.locationsCheck->setChecked((labelMode & Renderer::LocationLabels) != 0);
ui.citiesCheck->setChecked((locationFlags & Location::City) != 0);
ui.observatoriesCheck->setChecked((locationFlags & Location::Observatory) != 0);
ui.landingSitesCheck->setChecked((locationFlags & Location::LandingSite) != 0);
ui.montesCheck->setChecked((locationFlags & Location::Mons) != 0);
ui.mariaCheck->setChecked((locationFlags & Location::Mare) != 0);
ui.cratersCheck->setChecked((locationFlags & Location::Crater) != 0);
ui.vallesCheck->setChecked((locationFlags & Location::Vallis) != 0);
ui.terraeCheck->setChecked((locationFlags & Location::Terra) != 0);
ui.volcanoesCheck->setChecked((locationFlags & Location::EruptiveCenter) != 0);
ui.otherLocationsCheck->setChecked((locationFlags & FilterOtherLocations) != 0);
int minimumFeatureSize = (int)renderer->getMinimumFeatureSize();
ui.featureSizeSlider->setValue(minimumFeatureSize);
ui.featureSizeEdit->setText(QString::number(minimumFeatureSize));
#ifdef USE_GLCONTEXT
if (glContext->renderPathSupported(GLContext::GLPath_GLSL))
ui.renderPathBox->addItem(_("OpenGL 2.1"), GLContext::GLPath_GLSL);
SetComboBoxValue(ui.renderPathBox, renderPath);
#else
ui.renderPathBox->addItem(_("OpenGL 2.1"), 0);
#endif
ui.antialiasLinesCheck->setChecked(renderFlags & Renderer::ShowSmoothLines);
ui.tintedIlluminationCheck->setChecked(renderFlags & Renderer::ShowTintedIllumination);
switch (renderer->getResolution())
{
case 0:
ui.lowResolutionButton->setChecked(true);
break;
case 1:
ui.mediumResolutionButton->setChecked(true);
break;
case 2:
ui.highResolutionButton->setChecked(true);
}
float ambient = renderer->getAmbientLightLevel();
ui.ambientLightSlider->setValue((int) (ambient * 100.0f));
int starStyle = renderer->getStarStyle();
switch (starStyle)
{
case Renderer::PointStars:
ui.pointStarsButton->setChecked(true);
break;
case Renderer::FuzzyPointStars:
ui.fuzzyPointStarsButton->setChecked(true);
break;
case Renderer::ScaledDiscStars:
ui.scaledDiscsButton->setChecked(true);
}
ui.starColorBox->addItem(_("Blackbody D65"), ColorTable_Blackbody_D65);
ui.starColorBox->addItem(_("Classic colors"), ColorTable_Enhanced);
SetComboBoxValue(ui.starColorBox, colors);
ui.autoMagnitudeCheck->setChecked(renderFlags & Renderer::ShowAutoMag);
#ifndef _WIN32
ui.dateFormatBox->addItem(_("Local format"), astro::Date::Locale);
#endif
ui.dateFormatBox->addItem(_("Time zone name"), astro::Date::TZName);
ui.dateFormatBox->addItem(_("UTC offset"), astro::Date::UTCOffset);
astro::Date::Format dateFormat = appCore->getDateFormat();
SetComboBoxValue(ui.dateFormatBox, dateFormat);
}
static void setRenderFlag(CelestiaCore* appCore,
uint64_t flag,
int state)
{
bool isActive = (state == Qt::Checked);
Renderer* renderer = appCore->getRenderer();
uint64_t renderFlags = renderer->getRenderFlags() & ~flag;
renderer->setRenderFlags(renderFlags | (isActive ? flag : 0));
}
static void setOrbitFlag(CelestiaCore* appCore,
int flag,
int state)
{
bool isActive = (state == Qt::Checked);
Renderer* renderer = appCore->getRenderer();
int orbitMask = renderer->getOrbitMask() & ~flag;
renderer->setOrbitMask(orbitMask | (isActive ? flag : 0));
}
static void setLocationFlag(CelestiaCore* appCore,
uint64_t flag,
int state)
{
bool isActive = (state == Qt::Checked);
Observer* observer = appCore->getSimulation()->getActiveObserver();
uint64_t locationFilter = observer->getLocationFilter() & ~flag;
observer->setLocationFilter(locationFilter | (isActive ? flag : 0));
}
static void setLabelFlag(CelestiaCore* appCore,
int flag,
int state)
{
bool isActive = (state == Qt::Checked);
Renderer* renderer = appCore->getRenderer();
int labelMode = renderer->getLabelMode() & ~flag;
renderer->setLabelMode(labelMode | (isActive ? flag : 0));
}
// Objects
void PreferencesDialog::on_starsCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowStars, state);
}
void PreferencesDialog::on_planetsCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowPlanets, state);
}
void PreferencesDialog::on_dwarfPlanetsCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowDwarfPlanets, state);
}
void PreferencesDialog::on_moonsCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowMoons, state);
}
void PreferencesDialog::on_minorMoonsCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowMinorMoons, state);
}
void PreferencesDialog::on_asteroidsCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowAsteroids, state);
}
void PreferencesDialog::on_cometsCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowComets, state);
}
void PreferencesDialog::on_spacecraftsCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowSpacecrafts, state);
}
void PreferencesDialog::on_galaxiesCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowGalaxies, state);
}
void PreferencesDialog::on_nebulaeCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowNebulae, state);
}
void PreferencesDialog::on_openClustersCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowOpenClusters, state);
}
void PreferencesDialog::on_globularClustersCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowGlobulars, state);
}
// Features
void PreferencesDialog::on_atmospheresCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowAtmospheres, state);
}
void PreferencesDialog::on_cloudsCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowCloudMaps, state);
}
void PreferencesDialog::on_cloudShadowsCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowCloudShadows, state);
}
void PreferencesDialog::on_eclipseShadowsCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowEclipseShadows, state);
}
void PreferencesDialog::on_ringShadowsCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowRingShadows, state);
}
void PreferencesDialog::on_planetRingsCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowPlanetRings, state);
}
void PreferencesDialog::on_nightsideLightsCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowNightMaps, state);
}
void PreferencesDialog::on_cometTailsCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowCometTails, state);
}
void PreferencesDialog::on_limitOfKnowledgeCheck_stateChanged(int state)
{
Observer* observer = appCore->getSimulation()->getActiveObserver();
if (state == Qt::Checked)
{
observer->setDisplayedSurface("limit of knowledge");
}
else
{
observer->setDisplayedSurface("");
}
}
// Orbits
void PreferencesDialog::on_orbitsCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowOrbits, state);
}
void PreferencesDialog::on_fadingOrbitsCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowFadingOrbits, state);
}
void PreferencesDialog::on_starOrbitsCheck_stateChanged(int state)
{
setOrbitFlag(appCore, Body::Stellar, state);
}
void PreferencesDialog::on_planetOrbitsCheck_stateChanged(int state)
{
setOrbitFlag(appCore, Body::Planet, state);
}
void PreferencesDialog::on_dwarfPlanetOrbitsCheck_stateChanged(int state)
{
setOrbitFlag(appCore, Body::DwarfPlanet, state);
}
void PreferencesDialog::on_moonOrbitsCheck_stateChanged(int state)
{
setOrbitFlag(appCore, Body::Moon, state);
}
void PreferencesDialog::on_minorMoonOrbitsCheck_stateChanged(int state)
{
setOrbitFlag(appCore, Body::MinorMoon, state);
}
void PreferencesDialog::on_asteroidOrbitsCheck_stateChanged(int state)
{
setOrbitFlag(appCore, Body::Asteroid, state);
}
void PreferencesDialog::on_cometOrbitsCheck_stateChanged(int state)
{
setOrbitFlag(appCore, Body::Comet, state);
}
void PreferencesDialog::on_spacecraftOrbitsCheck_stateChanged(int state)
{
setOrbitFlag(appCore, Body::Spacecraft, state);
}
void PreferencesDialog::on_partialTrajectoriesCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowPartialTrajectories, state);
}
// Grids
void PreferencesDialog::on_equatorialGridCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowCelestialSphere, state);
}
void PreferencesDialog::on_eclipticGridCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowEclipticGrid, state);
}
void PreferencesDialog::on_galacticGridCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowGalacticGrid, state);
}
void PreferencesDialog::on_horizontalGridCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowHorizonGrid, state);
}
// Constellations
void PreferencesDialog::on_diagramsCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowDiagrams, state);
}
void PreferencesDialog::on_boundariesCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowBoundaries, state);
}
void PreferencesDialog::on_latinNamesCheck_stateChanged(int state)
{
// "Latin Names" Checkbox has inverted meaning
state = state == Qt::Checked ? Qt::Unchecked : Qt::Checked;
setLabelFlag(appCore, Renderer::I18nConstellationLabels, state);
}
// Other guides
void PreferencesDialog::on_markersCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowMarkers, state);
}
void PreferencesDialog::on_eclipticLineCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowEcliptic, state);
}
// Labels
void PreferencesDialog::on_starLabelsCheck_stateChanged(int state)
{
setLabelFlag(appCore, Renderer::StarLabels, state);
}
void PreferencesDialog::on_planetLabelsCheck_stateChanged(int state)
{
setLabelFlag(appCore, Renderer::PlanetLabels, state);
}
void PreferencesDialog::on_dwarfPlanetLabelsCheck_stateChanged(int state)
{
setLabelFlag(appCore, Renderer::DwarfPlanetLabels, state);
}
void PreferencesDialog::on_moonLabelsCheck_stateChanged(int state)
{
setLabelFlag(appCore, Renderer::MoonLabels, state);
}
void PreferencesDialog::on_minorMoonLabelsCheck_stateChanged(int state)
{
setLabelFlag(appCore, Renderer::MinorMoonLabels, state);
}
void PreferencesDialog::on_asteroidLabelsCheck_stateChanged(int state)
{
setLabelFlag(appCore, Renderer::AsteroidLabels, state);
}
void PreferencesDialog::on_cometLabelsCheck_stateChanged(int state)
{
setLabelFlag(appCore, Renderer::CometLabels, state);
}
void PreferencesDialog::on_spacecraftLabelsCheck_stateChanged(int state)
{
setLabelFlag(appCore, Renderer::SpacecraftLabels, state);
}
void PreferencesDialog::on_galaxyLabelsCheck_stateChanged(int state)
{
setLabelFlag(appCore, Renderer::GalaxyLabels, state);
}
void PreferencesDialog::on_nebulaLabelsCheck_stateChanged(int state)
{
setLabelFlag(appCore, Renderer::NebulaLabels, state);
}
void PreferencesDialog::on_openClusterLabelsCheck_stateChanged(int state)
{
setLabelFlag(appCore, Renderer::OpenClusterLabels, state);
}
void PreferencesDialog::on_globularClusterLabelsCheck_stateChanged(int state)
{
setLabelFlag(appCore, Renderer::GlobularLabels, state);
}
void PreferencesDialog::on_constellationLabelsCheck_stateChanged(int state)
{
setLabelFlag(appCore, Renderer::ConstellationLabels, state);
}
// Locations
void PreferencesDialog::on_locationsCheck_stateChanged(int state)
{
setLabelFlag(appCore, Renderer::LocationLabels, state);
}
void PreferencesDialog::on_citiesCheck_stateChanged(int state)
{
setLocationFlag(appCore, Location::City, state);
}
void PreferencesDialog::on_observatoriesCheck_stateChanged(int state)
{
setLocationFlag(appCore, Location::Observatory, state);
}
void PreferencesDialog::on_landingSitesCheck_stateChanged(int state)
{
setLocationFlag(appCore, Location::LandingSite, state);
}
void PreferencesDialog::on_montesCheck_stateChanged(int state)
{
setLocationFlag(appCore, Location::Mons, state);
}
void PreferencesDialog::on_mariaCheck_stateChanged(int state)
{
setLocationFlag(appCore, Location::Mare, state);
}
void PreferencesDialog::on_cratersCheck_stateChanged(int state)
{
setLocationFlag(appCore, Location::Crater, state);
}
void PreferencesDialog::on_vallesCheck_stateChanged(int state)
{
setLocationFlag(appCore, Location::Vallis, state);
}
void PreferencesDialog::on_terraeCheck_stateChanged(int state)
{
setLocationFlag(appCore, Location::Terra, state);
}
void PreferencesDialog::on_volcanoesCheck_stateChanged(int state)
{
setLocationFlag(appCore, Location::EruptiveCenter, state);
}
void PreferencesDialog::on_otherLocationsCheck_stateChanged(int state)
{
setLocationFlag(appCore, FilterOtherLocations, state);
}
void PreferencesDialog::on_featureSizeSlider_valueChanged(int value)
{
Renderer* renderer = appCore->getRenderer();
renderer->setMinimumFeatureSize((float) value);
ui.featureSizeEdit->setText(QString::number(value));
}
void PreferencesDialog::on_featureSizeEdit_textEdited(const QString& text)
{
int featureSize = text.toInt();
ui.featureSizeSlider->setValue(featureSize);
}
#ifdef USE_GLCONTEXT
void PreferencesDialog::on_renderPathBox_currentIndexChanged(int index)
{
GLContext* glContext = appCore->getRenderer()->getGLContext();
QVariant itemData = ui.renderPathBox->itemData(index, Qt::UserRole);
GLContext::GLRenderPath renderPath = (GLContext::GLRenderPath) itemData.toInt();
glContext->setRenderPath(renderPath);
}
#else
void PreferencesDialog::on_renderPathBox_currentIndexChanged(int /*index*/)
{
}
#endif
void PreferencesDialog::on_antialiasLinesCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowSmoothLines, state);
}
void PreferencesDialog::on_tintedIlluminationCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowTintedIllumination, state);
}
// Texture resolution
void PreferencesDialog::on_lowResolutionButton_clicked()
{
if (ui.lowResolutionButton->isChecked())
{
Renderer* renderer = appCore->getRenderer();
renderer->setResolution(0);
}
}
void PreferencesDialog::on_mediumResolutionButton_clicked()
{
if (ui.mediumResolutionButton->isChecked())
{
Renderer* renderer = appCore->getRenderer();
renderer->setResolution(1);
}
}
void PreferencesDialog::on_highResolutionButton_clicked()
{
if (ui.highResolutionButton->isChecked())
{
Renderer* renderer = appCore->getRenderer();
renderer->setResolution(2);
}
}
// Ambient light
void PreferencesDialog::on_ambientLightSlider_valueChanged(int value)
{
Renderer* renderer = appCore->getRenderer();
float ambient = ((float) value) / 100.0f;
renderer->setAmbientLightLevel(ambient);
}
// Star style
void PreferencesDialog::on_pointStarsButton_clicked()
{
if (ui.pointStarsButton->isChecked())
{
Renderer* renderer = appCore->getRenderer();
renderer->setStarStyle(Renderer::PointStars);
}
}
void PreferencesDialog::on_scaledDiscsButton_clicked()
{
if (ui.scaledDiscsButton->isChecked())
{
Renderer* renderer = appCore->getRenderer();
renderer->setStarStyle(Renderer::ScaledDiscStars);
}
}
void PreferencesDialog::on_fuzzyPointStarsButton_clicked()
{
if (ui.fuzzyPointStarsButton->isChecked())
{
Renderer* renderer = appCore->getRenderer();
renderer->setStarStyle(Renderer::FuzzyPointStars);
}
}
void PreferencesDialog::on_autoMagnitudeCheck_stateChanged(int state)
{
setRenderFlag(appCore, Renderer::ShowAutoMag, state);
}
// Star colors
void PreferencesDialog::on_starColorBox_currentIndexChanged(int index)
{
Renderer* renderer = appCore->getRenderer();
QVariant itemData = ui.starColorBox->itemData(index, Qt::UserRole);
ColorTableType value = (ColorTableType) itemData.toInt();
renderer->setStarColorTable(GetStarColorTable(value));
}
// Time
void PreferencesDialog::on_dateFormatBox_currentIndexChanged(int index)
{
QVariant itemData = ui.dateFormatBox->itemData(index, Qt::UserRole);
astro::Date::Format dateFormat = (astro::Date::Format) itemData.toInt();
appCore->setDateFormat(dateFormat);
}