Skip to content

Commit c82e114

Browse files
committed
Show/hide satellite name and marker on polar view
Implements both global and module specific config options to show or hide the satellite names and markers on the polar view. Partially implements issues #242 and #335.
1 parent 93885ee commit c82e114

6 files changed

Lines changed: 99 additions & 11 deletions

File tree

src/config-keys.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,8 @@
119119
#define MOD_CFG_POLAR_SECTION "POLAR"
120120
#define MOD_CFG_POLAR_REFRESH "REFRESH"
121121
#define MOD_CFG_POLAR_ORIENTATION "ORIENTATION"
122+
#define MOD_CFG_POLAR_SHOW_SAT_NAME "SAT_NAME"
123+
#define MOD_CFG_POLAR_SHOW_SAT_MARKER "SAT_MARKER"
122124
#define MOD_CFG_POLAR_SHOW_QTH_INFO "QTH_INFO"
123125
#define MOD_CFG_POLAR_SHOW_NEXT_EVENT "NEXT_EVENT"
124126
#define MOD_CFG_POLAR_SHOW_CURS_TRACK "CURSOR_TRACK"

src/gtk-polar-view.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,8 @@ static void gtk_polar_view_init(GtkPolarView * polview,
112112
polview->refresh = 0;
113113
polview->counter = 0;
114114
polview->swap = 0;
115+
polview->satname = FALSE;
116+
polview->satmarker = FALSE;
115117
polview->qthinfo = FALSE;
116118
polview->eventinfo = FALSE;
117119
polview->cursinfo = FALSE;
@@ -800,6 +802,13 @@ GtkWidget *gtk_polar_view_new(GKeyFile * cfgdata, GHashTable * sats,
800802
MOD_CFG_POLAR_ORIENTATION,
801803
SAT_CFG_INT_POLAR_ORIENTATION);
802804

805+
polv->satname = mod_cfg_get_bool(cfgdata, MOD_CFG_POLAR_SECTION,
806+
MOD_CFG_POLAR_SHOW_SAT_NAME,
807+
SAT_CFG_BOOL_POL_SHOW_SAT_NAME);
808+
polv->satmarker = mod_cfg_get_bool(cfgdata, MOD_CFG_POLAR_SECTION,
809+
MOD_CFG_POLAR_SHOW_SAT_MARKER,
810+
SAT_CFG_BOOL_POL_SHOW_SAT_MARKER);
811+
803812
polv->qthinfo = mod_cfg_get_bool(cfgdata, MOD_CFG_POLAR_SECTION,
804813
MOD_CFG_POLAR_SHOW_QTH_INFO,
805814
SAT_CFG_BOOL_POL_SHOW_QTH_INFO);
@@ -1359,6 +1368,14 @@ static void update_sat(gpointer key, gpointer value, gpointer data)
13591368
/* Finally, create the sky track if necessary */
13601369
if (obj->showtrack)
13611370
gtk_polar_view_create_track(polv, obj, sat);
1371+
1372+
/* show or hide satellite name and marker */
1373+
if (!polv->satname)
1374+
g_object_set(obj->label, "visibility", GOO_CANVAS_ITEM_INVISIBLE, NULL);
1375+
if (!polv->satmarker)
1376+
g_object_set(obj->marker, "visibility", GOO_CANVAS_ITEM_INVISIBLE, NULL);
1377+
1378+
13621379
}
13631380
else
13641381
{

src/gtk-polar-view.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,8 @@ struct _GtkPolarView {
102102

103103
polar_view_swap_t swap;
104104

105+
gboolean satname; /*!< Show satellite name. */
106+
gboolean satmarker; /*!< Show satellite marker. */
105107
gboolean qthinfo; /*!< Show the QTH info. */
106108
gboolean eventinfo; /*!< Show info about the next event. */
107109
gboolean cursinfo; /*!< Track the mouse cursor. */

src/sat-cfg.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,8 @@ sat_cfg_bool_t sat_cfg_bool[SAT_CFG_BOOL_NUM] = {
124124
{"MODULES", "MAP_SHOW_GRID", TRUE},
125125
{"MODULES", "MAP_SHOW_TERMINATOR", FALSE},
126126
{"MODULES", "MAP_KEEP_RATIO", FALSE},
127+
{"MODULES", "POLAR_SAT_NAME", TRUE},
128+
{"MODULES", "POLAR_SAT_MARKER", TRUE},
127129
{"MODULES", "POLAR_QTH_INFO", TRUE},
128130
{"MODULES", "POLAR_NEXT_EVENT", TRUE},
129131
{"MODULES", "POLAR_CURSOR_TRACK", TRUE},

src/sat-cfg.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ typedef enum {
4444
SAT_CFG_BOOL_MAP_SHOW_GRID, /*!< Show grid on map. */
4545
SAT_CFG_BOOL_MAP_SHOW_TERMINATOR, /*!< Show solar terminator on map. */
4646
SAT_CFG_BOOL_MAP_KEEP_RATIO, /*!< Keep original aspect ratio */
47+
SAT_CFG_BOOL_POL_SHOW_SAT_NAME, /*!< Show the satellite name */
48+
SAT_CFG_BOOL_POL_SHOW_SAT_MARKER, /*!< Show the satellite marker */
4749
SAT_CFG_BOOL_POL_SHOW_QTH_INFO, /*!< Show QTH info on polar plot */
4850
SAT_CFG_BOOL_POL_SHOW_NEXT_EV, /*!< Show next event on polar plot */
4951
SAT_CFG_BOOL_POL_SHOW_CURS_TRACK, /*!< Track mouse cursor on polar plot. */

src/sat-pref-polar-view.c

Lines changed: 74 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
static GtkWidget *nesw, *nwse, *senw, *swne;
3535

3636
/* content selectors */
37-
static GtkWidget *qth, *next, *curs, *xtick;
37+
static GtkWidget *satname, *satmarker, *qth, *next, *curs, *xtick;
3838

3939
/* colour selectors */
4040
static GtkWidget *bgd, *axis, *tick, *sat, *ssat, *track, *info;
@@ -123,6 +123,10 @@ static void reset_cb(GtkWidget * button, gpointer cfg)
123123
/* global mode, get defaults */
124124

125125
/* extra contents */
126+
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(satname),
127+
sat_cfg_get_bool_def(SAT_CFG_BOOL_POL_SHOW_SAT_NAME));
128+
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(satmarker),
129+
sat_cfg_get_bool_def(SAT_CFG_BOOL_POL_SHOW_SAT_MARKER));
126130
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(qth),
127131
sat_cfg_get_bool_def
128132
(SAT_CFG_BOOL_POL_SHOW_QTH_INFO));
@@ -175,6 +179,10 @@ static void reset_cb(GtkWidget * button, gpointer cfg)
175179
/* local mode, get global value */
176180

177181
/* extra contents */
182+
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(satname),
183+
sat_cfg_get_bool(SAT_CFG_BOOL_POL_SHOW_SAT_NAME));
184+
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(satmarker),
185+
sat_cfg_get_bool(SAT_CFG_BOOL_POL_SHOW_SAT_MARKER));
178186
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(qth),
179187
sat_cfg_get_bool
180188
(SAT_CFG_BOOL_POL_SHOW_QTH_INFO));
@@ -385,18 +393,57 @@ static void create_orient_selector(GKeyFile * cfg, GtkBox * vbox)
385393
static void create_bool_selectors(GKeyFile * cfg, GtkBox * vbox)
386394
{
387395
GtkWidget *label;
388-
GtkWidget *hbox;
396+
GtkWidget *grid;
389397

390398
/* create header */
391399
label = gtk_label_new(NULL);
392400
g_object_set(label, "xalign", 0.0f, "yalign", 0.5f, NULL);
393-
gtk_label_set_markup(GTK_LABEL(label), _("<b>Extra Contents:</b>"));
401+
gtk_label_set_markup(GTK_LABEL(label), _("<b>Contents:</b>"));
394402
gtk_box_pack_start(vbox, label, FALSE, TRUE, 0);
395403

396-
/* horizontal box to contain the radio buttons */
397-
hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 10);
398-
gtk_box_set_homogeneous(GTK_BOX(hbox), TRUE);
399-
gtk_box_pack_start(vbox, hbox, FALSE, TRUE, 0);
404+
/* grid layout for show/hide checkboxes */
405+
grid = gtk_grid_new();
406+
gtk_grid_set_column_homogeneous(GTK_GRID(grid), FALSE);
407+
gtk_grid_set_row_homogeneous(GTK_GRID(grid), TRUE);
408+
gtk_grid_set_column_spacing(GTK_GRID(grid), 10);
409+
gtk_grid_set_row_spacing(GTK_GRID(grid), 3);
410+
gtk_box_pack_start(vbox, grid, FALSE, TRUE, 0);
411+
412+
/* Satellite name */
413+
satname = gtk_check_button_new_with_label(_("Satellite Name"));
414+
gtk_widget_set_tooltip_text(satname, _("Show the satellite name on the polar plot"));
415+
if (cfg != NULL)
416+
{
417+
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(satname),
418+
mod_cfg_get_bool(cfg, MOD_CFG_POLAR_SECTION,
419+
MOD_CFG_POLAR_SHOW_SAT_NAME,
420+
SAT_CFG_BOOL_POL_SHOW_SAT_NAME));
421+
}
422+
else
423+
{
424+
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(satname),
425+
sat_cfg_get_bool(SAT_CFG_BOOL_POL_SHOW_SAT_NAME));
426+
}
427+
g_signal_connect(satname, "toggled", G_CALLBACK(content_changed), NULL);
428+
gtk_grid_attach(GTK_GRID(grid), satname, 0, 0, 1, 1);
429+
430+
/* Satellite marker */
431+
satmarker = gtk_check_button_new_with_label(_("Satellite Marker"));
432+
gtk_widget_set_tooltip_text(satmarker, _("Show the satellite marker on the polar plot"));
433+
if (cfg != NULL)
434+
{
435+
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(satmarker),
436+
mod_cfg_get_bool(cfg, MOD_CFG_POLAR_SECTION,
437+
MOD_CFG_POLAR_SHOW_SAT_MARKER,
438+
SAT_CFG_BOOL_POL_SHOW_SAT_MARKER));
439+
}
440+
else
441+
{
442+
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(satmarker),
443+
sat_cfg_get_bool(SAT_CFG_BOOL_POL_SHOW_SAT_MARKER));
444+
}
445+
g_signal_connect(satmarker, "toggled", G_CALLBACK(content_changed), NULL);
446+
gtk_grid_attach(GTK_GRID(grid), satmarker, 1, 0, 1, 1);
400447

401448
/* QTH info */
402449
qth = gtk_check_button_new_with_label(_("QTH Info"));
@@ -418,7 +465,7 @@ static void create_bool_selectors(GKeyFile * cfg, GtkBox * vbox)
418465
(SAT_CFG_BOOL_POL_SHOW_QTH_INFO));
419466
}
420467
g_signal_connect(qth, "toggled", G_CALLBACK(content_changed), NULL);
421-
gtk_box_pack_start(GTK_BOX(hbox), qth, FALSE, TRUE, 0);
468+
gtk_grid_attach(GTK_GRID(grid), qth, 2, 0, 1, 1);
422469

423470
/* Next Event */
424471
next = gtk_check_button_new_with_label(_("Next Event"));
@@ -440,7 +487,7 @@ static void create_bool_selectors(GKeyFile * cfg, GtkBox * vbox)
440487
(SAT_CFG_BOOL_POL_SHOW_NEXT_EV));
441488
}
442489
g_signal_connect(next, "toggled", G_CALLBACK(content_changed), NULL);
443-
gtk_box_pack_start(GTK_BOX(hbox), next, FALSE, TRUE, 0);
490+
gtk_grid_attach(GTK_GRID(grid), next, 0, 1, 1, 1);
444491

445492
/* Cursor position */
446493
curs = gtk_check_button_new_with_label(_("Cursor Position"));
@@ -462,7 +509,7 @@ static void create_bool_selectors(GKeyFile * cfg, GtkBox * vbox)
462509
(SAT_CFG_BOOL_POL_SHOW_CURS_TRACK));
463510
}
464511
g_signal_connect(curs, "toggled", G_CALLBACK(content_changed), NULL);
465-
gtk_box_pack_start(GTK_BOX(hbox), curs, FALSE, TRUE, 0);
512+
gtk_grid_attach(GTK_GRID(grid), curs, 1, 1, 1, 1);
466513

467514
/* Extra tick marks */
468515
xtick = gtk_check_button_new_with_label(_("Extra Az Ticks"));
@@ -484,7 +531,7 @@ static void create_bool_selectors(GKeyFile * cfg, GtkBox * vbox)
484531
(SAT_CFG_BOOL_POL_SHOW_EXTRA_AZ_TICKS));
485532
}
486533
g_signal_connect(xtick, "toggled", G_CALLBACK(content_changed), NULL);
487-
gtk_box_pack_start(GTK_BOX(hbox), xtick, FALSE, TRUE, 0);
534+
gtk_grid_attach(GTK_GRID(grid), xtick, 2, 1, 1, 1);
488535
}
489536

490537
/**
@@ -790,6 +837,14 @@ void sat_pref_polar_view_ok(GKeyFile * cfg)
790837
MOD_CFG_POLAR_SECTION,
791838
MOD_CFG_POLAR_ORIENTATION, orient);
792839
/* extra contents */
840+
g_key_file_set_boolean(cfg,
841+
MOD_CFG_POLAR_SECTION,
842+
MOD_CFG_POLAR_SHOW_SAT_NAME,
843+
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(satname)));
844+
g_key_file_set_boolean(cfg,
845+
MOD_CFG_POLAR_SECTION,
846+
MOD_CFG_POLAR_SHOW_SAT_MARKER,
847+
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(satmarker)));
793848
g_key_file_set_boolean(cfg,
794849
MOD_CFG_POLAR_SECTION,
795850
MOD_CFG_POLAR_SHOW_QTH_INFO,
@@ -860,6 +915,10 @@ void sat_pref_polar_view_ok(GKeyFile * cfg)
860915
sat_cfg_set_int(SAT_CFG_INT_POLAR_ORIENTATION, orient);
861916

862917
/* extra contents */
918+
sat_cfg_set_bool(SAT_CFG_BOOL_POL_SHOW_SAT_NAME,
919+
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(satname)));
920+
sat_cfg_set_bool(SAT_CFG_BOOL_POL_SHOW_SAT_MARKER,
921+
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(satmarker)));
863922
sat_cfg_set_bool(SAT_CFG_BOOL_POL_SHOW_QTH_INFO,
864923
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON
865924
(qth)));
@@ -918,6 +977,8 @@ void sat_pref_polar_view_ok(GKeyFile * cfg)
918977
g_key_file_remove_key(cfg,
919978
MOD_CFG_POLAR_SECTION,
920979
MOD_CFG_POLAR_ORIENTATION, NULL);
980+
g_key_file_remove_key(cfg, MOD_CFG_POLAR_SECTION, MOD_CFG_POLAR_SHOW_SAT_NAME, NULL);
981+
g_key_file_remove_key(cfg, MOD_CFG_POLAR_SECTION, MOD_CFG_POLAR_SHOW_SAT_MARKER, NULL);
921982
g_key_file_remove_key(cfg,
922983
MOD_CFG_POLAR_SECTION,
923984
MOD_CFG_POLAR_SHOW_QTH_INFO, NULL);
@@ -962,6 +1023,8 @@ void sat_pref_polar_view_ok(GKeyFile * cfg)
9621023
/* orientation */
9631024
sat_cfg_reset_int(SAT_CFG_INT_POLAR_ORIENTATION);
9641025
/* extra contents */
1026+
sat_cfg_reset_bool(SAT_CFG_BOOL_POL_SHOW_SAT_NAME);
1027+
sat_cfg_reset_bool(SAT_CFG_BOOL_POL_SHOW_SAT_MARKER);
9651028
sat_cfg_reset_bool(SAT_CFG_BOOL_POL_SHOW_QTH_INFO);
9661029
sat_cfg_reset_bool(SAT_CFG_BOOL_POL_SHOW_NEXT_EV);
9671030
sat_cfg_reset_bool(SAT_CFG_BOOL_POL_SHOW_CURS_TRACK);

0 commit comments

Comments
 (0)