[gtk] Fix display of rings and fading orbits

Closes: #1360
pull/588/merge
Hleb Valoshka 2022-04-15 23:40:20 +03:00
parent 6ab7660e0c
commit 698d03cd82
5 changed files with 14 additions and 3 deletions

View File

@ -943,6 +943,11 @@ void actionRenderSpacecrafts(GtkToggleAction* action, AppData* app)
}
void actionRenderPlanetRings(GtkToggleAction* action, AppData* app)
{
setRenderFlag(app, Renderer::ShowPlanetRings, gtk_toggle_action_get_active(action));
}
void actionRenderRingShadows(GtkToggleAction* action, AppData* app)
{
setRenderFlag(app, Renderer::ShowRingShadows, gtk_toggle_action_get_active(action));
@ -1270,9 +1275,9 @@ void resyncRenderActions(AppData* app)
/* Unlike the other interfaces, which go through each menu item and set
* the corresponding renderFlag, we go the other way and set the menu
* based on the renderFlag. Last one is ShowFadingOrbits. */
* based on the renderFlag. Last one is ShowPlanetRings. */
for (uint64_t i = Renderer::ShowStars; i <= Renderer::ShowFadingOrbits; i *= 2)
for (uint64_t i = Renderer::ShowStars; i <= Renderer::ShowPlanetRings; i *= 2)
{
switch (i)
{
@ -1294,6 +1299,7 @@ void resyncRenderActions(AppData* app)
case Renderer::ShowAtmospheres: actionName = "RenderAtmospheres"; break;
case Renderer::ShowSmoothLines: actionName = "RenderAA"; break;
case Renderer::ShowEclipseShadows: actionName = "RenderEclipseShadows"; break;
case Renderer::ShowPlanetRings: actionName = "RenderPlanetRings"; break;
case Renderer::ShowRingShadows: actionName = "RenderRingShadows"; break;
case Renderer::ShowBoundaries: actionName = "RenderConstellationBoundaries"; break;
case Renderer::ShowAutoMag: actionName = "RenderAutoMagnitude"; break;
@ -1317,7 +1323,7 @@ void resyncRenderActions(AppData* app)
action = gtk_action_group_get_action(app->agRender, actionName);
/* The current i anded with the renderFlags gives state of flag */
gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), (i & rf));
gtk_toggle_action_set_active(GTK_TOGGLE_ACTION(action), (i & rf) != 0);
}
}
}

View File

@ -96,6 +96,7 @@ void actionRenderMinorMoons(GtkToggleAction*, AppData*);
void actionRenderAsteroids(GtkToggleAction*, AppData*);
void actionRenderComets(GtkToggleAction*, AppData*);
void actionRenderSpacecrafts(GtkToggleAction*, AppData*);
void actionRenderPlanetRings(GtkToggleAction*, AppData*);
void actionRenderRingShadows(GtkToggleAction*, AppData*);
void actionRenderStars(GtkToggleAction*, AppData*);

View File

@ -58,6 +58,7 @@
<menuitem action='RenderAsteroids'/>
<menuitem action='RenderComets'/>
<menuitem action='RenderSpacecrafts'/>
<menuitem action='RenderPlanetRings'/>
<menuitem action='RenderRingShadows'/>
<menuitem action='RenderStars'/>
</menu>

View File

@ -155,6 +155,7 @@ void applySettingsFileMain(AppData* app, GKeyFile* file)
getFlag64(file, &rf, Renderer::ShowAtmospheres, "RenderFlags", "atmospheres", &errors);
getFlag64(file, &rf, Renderer::ShowSmoothLines, "RenderFlags", "smoothLines", &errors);
getFlag64(file, &rf, Renderer::ShowEclipseShadows, "RenderFlags", "eclipseShadows", &errors);
getFlag64(file, &rf, Renderer::ShowPlanetRings, "RenderFlags", "planetRings", &errors);
getFlag64(file, &rf, Renderer::ShowRingShadows, "RenderFlags", "ringShadows", &errors);
getFlag64(file, &rf, Renderer::ShowBoundaries, "RenderFlags", "boundaries", &errors);
getFlag64(file, &rf, Renderer::ShowAutoMag, "RenderFlags", "autoMag", &errors);
@ -267,6 +268,7 @@ void saveSettingsFile(AppData* app)
g_key_file_set_boolean(file, "RenderFlags", "atmospheres", (rf & Renderer::ShowAtmospheres) != 0);
g_key_file_set_boolean(file, "RenderFlags", "smoothLines", (rf & Renderer::ShowSmoothLines) != 0);
g_key_file_set_boolean(file, "RenderFlags", "eclipseShadows", (rf & Renderer::ShowEclipseShadows) != 0);
g_key_file_set_boolean(file, "RenderFlags", "planetRings", (rf & Renderer::ShowPlanetRings) != 0);
g_key_file_set_boolean(file, "RenderFlags", "ringShadows", (rf & Renderer::ShowRingShadows) != 0);
g_key_file_set_boolean(file, "RenderFlags", "boundaries", (rf & Renderer::ShowBoundaries) != 0);
g_key_file_set_boolean(file, "RenderFlags", "autoMag", (rf & Renderer::ShowAutoMag) != 0);

View File

@ -155,6 +155,7 @@ static const GtkToggleActionEntry actionsRenderFlags[] = {
{ "RenderComets", NULL, "Comets", NULL, NULL, G_CALLBACK(actionRenderComets), FALSE },
{ "RenderAsteroids", NULL, "Asteroids", NULL, NULL, G_CALLBACK(actionRenderAsteroids), FALSE },
{ "RenderSpacecrafts", NULL, "Spacecraft", NULL, NULL, G_CALLBACK(actionRenderSpacecrafts), FALSE },
{ "RenderPlanetRings", NULL, "Planet Rings", NULL, NULL, G_CALLBACK(actionRenderPlanetRings), FALSE },
{ "RenderRingShadows", NULL, "Ring Shadows", NULL, NULL, G_CALLBACK(actionRenderRingShadows), FALSE },
{ "RenderStars", NULL, "Stars", NULL, NULL, G_CALLBACK(actionRenderStars), FALSE },
};