Reverted TLE updater to libcurl instead of GIO (was patch 2688135, see reason in comments).

git-svn-id: https://gpredict.svn.sourceforge.net/svnroot/gpredict/trunk@268 ab6734ba-2843-0410-b83b-99c217ef6c0f
This commit is contained in:
csete 2009-04-14 21:06:51 +00:00
parent 1abfc3693c
commit 79bf710fbc
8 changed files with 1348 additions and 1273 deletions

View file

@ -1,3 +1,14 @@
2009-04-14 Alexandru Csete <oz9aec@gmail.com>
* configure.ac:
Require libcur 7.16.0 or later as mandatory dependency.
* src/tle-update.c:
* src/sat-cfg.[ch]:
* src/sat-pref-tle.c:
Reverted TLE update to libcurl version.
2009-04-13 Alexandru Csete <oz9aec@gmail.com>
* src/predict-tools.c:

2
NEWS
View file

@ -20,8 +20,6 @@ Changes in version 1.0 beta 2 (TBD Apr 2009):
- Fixed bug 2130914: Gpredict doesn't handle PTT.
- Fixed bug 2170642: Small error in user manual.
- Fixed bug 2750119: Unable to set the time correctly in Time Controller.
- Applied patch 2688135: Use GIO instead of libcurl for TLE download.
Note: This removes proxy management from gpredict.
- Updated PDF user manual.
- French translation.

2
README
View file

@ -45,7 +45,7 @@ for successful compilation of Gpredict:
- Gtk+ 2.12 or later
- GLib 2.16 or later
- Gio 2.16 or later (including gvfs)
- Libcurl 7.16.0 or later
- GooCanvas 0.9 or later
- Hamlib (runtime only, not required for build)

View file

@ -21,11 +21,12 @@ if test "${ac_cv_c_compiler_gnu}" = "yes"; then
fi
dnl check for glib, gtk, and goocanvas libraries
pkg_modules="gtk+-2.0 >= 2.12.0 glib-2.0 >= 2.16.0 gio-2.0 >= 2.16.0 gthread-2.0 >= 2.14.0 goocanvas >= 0.9"
pkg_modules="gtk+-2.0 >= 2.12.0 glib-2.0 >= 2.16.0 gthread-2.0 >= 2.14.0 goocanvas >= 0.9 libcurl >= 7.16.0"
PKG_CHECK_MODULES(PACKAGE, [$pkg_modules])
AC_SUBST(PACKAGE_CFLAGS)
AC_SUBST(PACKAGE_LIBS)
dnl Hamlib not needed if we go for the TCP based I/F
dnl check for hamlib
dnl PKG_CHECK_MODULES(HAMLIB, hamlib, [
@ -65,6 +66,7 @@ GTHR_V=`pkg-config --modversion gthread-2.0`
GDK_V=`pkg-config --modversion gdk-2.0`
GTK_V=`pkg-config --modversion gtk+-2.0`
GOOC_V=`pkg-config --modversion goocanvas`
CURL_V=`pkg-config --modversion libcurl`
dnl SQL_V=`pkg-config --modversion sqlite3`
dnl if test "$havehamlib" = true ; then
dnl HAML_V=`pkg-config --modversion hamlib`
@ -100,6 +102,7 @@ echo Gthread version.... : $GTHR_V
echo Gdk version........ : $GDK_V
echo Gtk+ version....... : $GTK_V
echo GooCanvas version.. : $GOOC_V
echo Liburl version..... : $CURL_V
dnl echo SQLite version..... : $SQL_V
dnl if test "$havehamlib" = true ; then
dnl echo Hamlib version..... : $HAML_V

File diff suppressed because it is too large Load diff

View file

@ -35,113 +35,115 @@
/** \brief Symbolic references for boolean config values. */
typedef enum {
SAT_CFG_BOOL_USE_LOCAL_TIME = 0, /*!< Display local time instead of UTC. */
SAT_CFG_BOOL_USE_NSEW, /*!< Use N, S, E and W instead of sign */
SAT_CFG_BOOL_USE_IMPERIAL, /*!< Use Imperial units instead of Metric */
SAT_CFG_BOOL_MAIN_WIN_POS, /*!< Restore position of main window */
SAT_CFG_BOOL_MOD_WIN_POS, /*!< Restore size and position of module windows */
SAT_CFG_BOOL_USE_LOCAL_TIME = 0, /*!< Display local time instead of UTC. */
SAT_CFG_BOOL_USE_NSEW, /*!< Use N, S, E and W instead of sign */
SAT_CFG_BOOL_USE_IMPERIAL, /*!< Use Imperial units instead of Metric */
SAT_CFG_BOOL_MAIN_WIN_POS, /*!< Restore position of main window */
SAT_CFG_BOOL_MOD_WIN_POS, /*!< Restore size and position of module windows */
SAT_CFG_BOOL_MOD_STATE, /*!< Restore module state */
SAT_CFG_BOOL_RULES_HINT, /*!< Enable rules hint in GtkSatList. */
SAT_CFG_BOOL_MAP_SHOW_QTH_INFO, /*!< Show QTH info on map */
SAT_CFG_BOOL_MAP_SHOW_NEXT_EV, /*!< Show next event on map */
SAT_CFG_BOOL_MAP_SHOW_CURS_TRACK, /*!< Track mouse cursor on map. */
SAT_CFG_BOOL_MAP_SHOW_GRID, /*!< Show grid on map. */
SAT_CFG_BOOL_MAP_KEEP_RATIO, /*!< Keep original aspect ratio */
SAT_CFG_BOOL_POL_SHOW_QTH_INFO, /*!< Show QTH info on polar plot */
SAT_CFG_BOOL_POL_SHOW_NEXT_EV, /*!< Show next event on polar plot */
SAT_CFG_BOOL_POL_SHOW_CURS_TRACK, /*!< Track mouse cursor on polar plot. */
SAT_CFG_BOOL_POL_SHOW_EXTRA_AZ_TICKS, /*!< Extra Az ticks at every 30 deg. */
SAT_CFG_BOOL_TLE_SERVER_AUTH, /*!< TLE server requires authentication. */
SAT_CFG_BOOL_RULES_HINT, /*!< Enable rules hint in GtkSatList. */
SAT_CFG_BOOL_MAP_SHOW_QTH_INFO, /*!< Show QTH info on map */
SAT_CFG_BOOL_MAP_SHOW_NEXT_EV, /*!< Show next event on map */
SAT_CFG_BOOL_MAP_SHOW_CURS_TRACK, /*!< Track mouse cursor on map. */
SAT_CFG_BOOL_MAP_SHOW_GRID, /*!< Show grid on map. */
SAT_CFG_BOOL_MAP_KEEP_RATIO, /*!< Keep original aspect ratio */
SAT_CFG_BOOL_POL_SHOW_QTH_INFO, /*!< Show QTH info on polar plot */
SAT_CFG_BOOL_POL_SHOW_NEXT_EV, /*!< Show next event on polar plot */
SAT_CFG_BOOL_POL_SHOW_CURS_TRACK, /*!< Track mouse cursor on polar plot. */
SAT_CFG_BOOL_POL_SHOW_EXTRA_AZ_TICKS, /*!< Extra Az ticks at every 30 deg. */
SAT_CFG_BOOL_TLE_SERVER_AUTH, /*!< TLE server requires authentication. */
SAT_CFG_BOOL_TLE_PROXY_AUTH, /*!< Proxy requires authentication. */
SAT_CFG_BOOL_TLE_ADD_NEW, /*!< Add new satellites to database. */
SAT_CFG_BOOL_KEEP_LOG_FILES, /*!< Whether to keep old log files */
SAT_CFG_BOOL_PRED_USE_REAL_T0, /*!< Whether to use current time as T0 fro predictions */
SAT_CFG_BOOL_NUM /*!< Number of boolean parameters */
SAT_CFG_BOOL_NUM /*!< Number of boolean parameters */
} sat_cfg_bool_e;
/** \brief Symbolic references for integer config values. */
typedef enum {
SAT_CFG_INT_MODULE_TIMEOUT = 0, /*!< Module refresh rate */
SAT_CFG_INT_MODULE_LAYOUT, /*!< Module layout */
SAT_CFG_INT_MODULE_VIEW_1, /*!< Type of view 1 */
SAT_CFG_INT_MODULE_VIEW_2, /*!< Type of view 2 */
SAT_CFG_INT_MODULE_VIEW_3, /*!< Type of view 3 */
SAT_CFG_INT_WARP_FACTOR, /*!< Time compression factor. */
SAT_CFG_INT_LIST_REFRESH, /*!< List refresh rate (cycle). */
SAT_CFG_INT_LIST_COLUMNS, /*!< List column visibility. */
SAT_CFG_INT_MAP_REFRESH, /*!< Map refresh rate (cycle). */
SAT_CFG_INT_MAP_INFO_COL, /*!< Info text colour on maps. */
SAT_CFG_INT_MAP_INFO_BGD_COL, /*!< Info text bgd colour on maps. */
SAT_CFG_INT_MAP_QTH_COL, /*!< QTH mark colour on map. */
SAT_CFG_INT_MAP_SAT_COL, /*!< Satellite colour on maps */
SAT_CFG_INT_MAP_SAT_SEL_COL, /*!< Selected satellite colour */
SAT_CFG_INT_MAP_SAT_COV_COL, /*!< Map coverage area colour */
SAT_CFG_INT_MAP_GRID_COL, /*!< Grid colour. */
SAT_CFG_INT_MAP_TICK_COL, /*!< Tick labels colour. */
SAT_CFG_INT_MAP_TRACK_COL, /*!< Ground Track colour. */
SAT_CFG_INT_MAP_TRACK_NUM, /*!< Number of orbits to show ground track for */
SAT_CFG_INT_POLAR_REFRESH, /*!< Polar refresh rate (cycle). */
SAT_CFG_INT_POLAR_ORIENTATION, /*!< Orientation of the polar charts. */
SAT_CFG_INT_POLAR_BGD_COL, /*!< Polar view, background colour. */
SAT_CFG_INT_POLAR_AXIS_COL, /*!< Polar view, axis colour. */
SAT_CFG_INT_POLAR_TICK_COL, /*!< Tick label colour, e.g. N/W/S/E */
SAT_CFG_INT_POLAR_SAT_COL, /*!< Satellite colour. */
SAT_CFG_INT_POLAR_SAT_SEL_COL, /*!< Selected satellite colour. */
SAT_CFG_INT_POLAR_TRACK_COL, /*!< Track colour. */
SAT_CFG_INT_POLAR_INFO_COL, /*!< Info colour. */
SAT_CFG_INT_SINGLE_SAT_REFRESH, /*!< Single-sat refresh rate (cycle). */
SAT_CFG_INT_SINGLE_SAT_FIELDS, /*!< Single-sat fields. */
SAT_CFG_INT_PRED_MIN_EL, /*!< Minimum elevation for passes. */
SAT_CFG_INT_PRED_NUM_PASS, /*!< Number of passes to predict. */
SAT_CFG_INT_PRED_LOOK_AHEAD, /*!< Look-ahead time limit in days. */
SAT_CFG_INT_PRED_RESOLUTION, /*!< Time resolution in seconds */
SAT_CFG_INT_PRED_NUM_ENTRIES, /*!< Number of entries in single pass. */
SAT_CFG_INT_PRED_SINGLE_COL, /*!< Visible columns in single-pass dialog */
SAT_CFG_INT_PRED_MULTI_COL, /*!< Visible columns in multi-pass dialog */
SAT_CFG_INT_PRED_SAVE_FORMAT, /*!< Last used save format for predictions */
SAT_CFG_INT_PRED_SAVE_CONTENTS, /*!< Last selection for save file contents */
SAT_CFG_INT_MODULE_TIMEOUT = 0, /*!< Module refresh rate */
SAT_CFG_INT_MODULE_LAYOUT, /*!< Module layout */
SAT_CFG_INT_MODULE_VIEW_1, /*!< Type of view 1 */
SAT_CFG_INT_MODULE_VIEW_2, /*!< Type of view 2 */
SAT_CFG_INT_MODULE_VIEW_3, /*!< Type of view 3 */
SAT_CFG_INT_WARP_FACTOR, /*!< Time compression factor. */
SAT_CFG_INT_LIST_REFRESH, /*!< List refresh rate (cycle). */
SAT_CFG_INT_LIST_COLUMNS, /*!< List column visibility. */
SAT_CFG_INT_MAP_REFRESH, /*!< Map refresh rate (cycle). */
SAT_CFG_INT_MAP_INFO_COL, /*!< Info text colour on maps. */
SAT_CFG_INT_MAP_INFO_BGD_COL, /*!< Info text bgd colour on maps. */
SAT_CFG_INT_MAP_QTH_COL, /*!< QTH mark colour on map. */
SAT_CFG_INT_MAP_SAT_COL, /*!< Satellite colour on maps */
SAT_CFG_INT_MAP_SAT_SEL_COL, /*!< Selected satellite colour */
SAT_CFG_INT_MAP_SAT_COV_COL, /*!< Map coverage area colour */
SAT_CFG_INT_MAP_GRID_COL, /*!< Grid colour. */
SAT_CFG_INT_MAP_TICK_COL, /*!< Tick labels colour. */
SAT_CFG_INT_MAP_TRACK_COL, /*!< Ground Track colour. */
SAT_CFG_INT_MAP_TRACK_NUM, /*!< Number of orbits to show ground track for */
SAT_CFG_INT_POLAR_REFRESH, /*!< Polar refresh rate (cycle). */
SAT_CFG_INT_POLAR_ORIENTATION, /*!< Orientation of the polar charts. */
SAT_CFG_INT_POLAR_BGD_COL, /*!< Polar view, background colour. */
SAT_CFG_INT_POLAR_AXIS_COL, /*!< Polar view, axis colour. */
SAT_CFG_INT_POLAR_TICK_COL, /*!< Tick label colour, e.g. N/W/S/E */
SAT_CFG_INT_POLAR_SAT_COL, /*!< Satellite colour. */
SAT_CFG_INT_POLAR_SAT_SEL_COL, /*!< Selected satellite colour. */
SAT_CFG_INT_POLAR_TRACK_COL, /*!< Track colour. */
SAT_CFG_INT_POLAR_INFO_COL, /*!< Info colour. */
SAT_CFG_INT_SINGLE_SAT_REFRESH, /*!< Single-sat refresh rate (cycle). */
SAT_CFG_INT_SINGLE_SAT_FIELDS, /*!< Single-sat fields. */
SAT_CFG_INT_PRED_MIN_EL, /*!< Minimum elevation for passes. */
SAT_CFG_INT_PRED_NUM_PASS, /*!< Number of passes to predict. */
SAT_CFG_INT_PRED_LOOK_AHEAD, /*!< Look-ahead time limit in days. */
SAT_CFG_INT_PRED_RESOLUTION, /*!< Time resolution in seconds */
SAT_CFG_INT_PRED_NUM_ENTRIES, /*!< Number of entries in single pass. */
SAT_CFG_INT_PRED_SINGLE_COL, /*!< Visible columns in single-pass dialog */
SAT_CFG_INT_PRED_MULTI_COL, /*!< Visible columns in multi-pass dialog */
SAT_CFG_INT_PRED_SAVE_FORMAT, /*!< Last used save format for predictions */
SAT_CFG_INT_PRED_SAVE_CONTENTS, /*!< Last selection for save file contents */
SAT_CFG_INT_PRED_TWILIGHT_THLD, /*!< Twilight zone threshold */
SAT_CFG_INT_SKYATGL_TIME, /*!< Time span for sky at a glance predictions */
SAT_CFG_INT_SKYATGL_COL_01, /*!< Colour 1 in sky at a glance predictions */
SAT_CFG_INT_SKYATGL_COL_02, /*!< Colour 2 in sky at a glance predictions */
SAT_CFG_INT_SKYATGL_COL_03, /*!< Colour 3 in sky at a glance predictions */
SAT_CFG_INT_SKYATGL_COL_04, /*!< Colour 4 in sky at a glance predictions */
SAT_CFG_INT_SKYATGL_COL_05, /*!< Colour 5 in sky at a glance predictions */
SAT_CFG_INT_SKYATGL_COL_06, /*!< Colour 6 in sky at a glance predictions */
SAT_CFG_INT_SKYATGL_COL_07, /*!< Colour 7 in sky at a glance predictions */
SAT_CFG_INT_SKYATGL_COL_08, /*!< Colour 8 in sky at a glance predictions */
SAT_CFG_INT_SKYATGL_COL_09, /*!< Colour 9 in sky at a glance predictions */
SAT_CFG_INT_SKYATGL_COL_10, /*!< Colour 10 in sky at a glance predictions */
SAT_CFG_INT_WINDOW_POS_X, /*!< Main window X during last session */
SAT_CFG_INT_WINDOW_POS_Y, /*!< Main window Y during last session */
SAT_CFG_INT_WINDOW_WIDTH, /*!< Main window width during last session */
SAT_CFG_INT_WINDOW_HEIGHT, /*!< Main window height during last session */
SAT_CFG_INT_WEB_BROWSER_TYPE, /*!< Web browser type, see browser_type_t */
SAT_CFG_INT_TLE_AUTO_UPD_FREQ, /*!< TLE auto-update frequency. */
SAT_CFG_INT_TLE_AUTO_UPD_ACTION, /*!< TLE auto-update action. */
SAT_CFG_INT_TLE_LAST_UPDATE, /*!< Date and time of last update, Unix seconds. */
SAT_CFG_INT_LOG_CLEAN_AGE, /*!< Age of log file to delete (seconds) */
SAT_CFG_INT_LOG_LEVEL, /*!< Logging level */
SAT_CFG_INT_NUM /*!< Number of integer parameters. */
SAT_CFG_INT_SKYATGL_TIME, /*!< Time span for sky at a glance predictions */
SAT_CFG_INT_SKYATGL_COL_01, /*!< Colour 1 in sky at a glance predictions */
SAT_CFG_INT_SKYATGL_COL_02, /*!< Colour 2 in sky at a glance predictions */
SAT_CFG_INT_SKYATGL_COL_03, /*!< Colour 3 in sky at a glance predictions */
SAT_CFG_INT_SKYATGL_COL_04, /*!< Colour 4 in sky at a glance predictions */
SAT_CFG_INT_SKYATGL_COL_05, /*!< Colour 5 in sky at a glance predictions */
SAT_CFG_INT_SKYATGL_COL_06, /*!< Colour 6 in sky at a glance predictions */
SAT_CFG_INT_SKYATGL_COL_07, /*!< Colour 7 in sky at a glance predictions */
SAT_CFG_INT_SKYATGL_COL_08, /*!< Colour 8 in sky at a glance predictions */
SAT_CFG_INT_SKYATGL_COL_09, /*!< Colour 9 in sky at a glance predictions */
SAT_CFG_INT_SKYATGL_COL_10, /*!< Colour 10 in sky at a glance predictions */
SAT_CFG_INT_WINDOW_POS_X, /*!< Main window X during last session */
SAT_CFG_INT_WINDOW_POS_Y, /*!< Main window Y during last session */
SAT_CFG_INT_WINDOW_WIDTH, /*!< Main window width during last session */
SAT_CFG_INT_WINDOW_HEIGHT, /*!< Main window height during last session */
SAT_CFG_INT_WEB_BROWSER_TYPE, /*!< Web browser type, see browser_type_t */
SAT_CFG_INT_TLE_AUTO_UPD_FREQ, /*!< TLE auto-update frequency. */
SAT_CFG_INT_TLE_AUTO_UPD_ACTION, /*!< TLE auto-update action. */
SAT_CFG_INT_TLE_LAST_UPDATE, /*!< Date and time of last update, Unix seconds. */
SAT_CFG_INT_LOG_CLEAN_AGE, /*!< Age of log file to delete (seconds) */
SAT_CFG_INT_LOG_LEVEL, /*!< Logging level */
SAT_CFG_INT_NUM /*!< Number of integer parameters. */
} sat_cfg_int_e;
/** \brief Symbolic references for string config values. */
typedef enum {
SAT_CFG_STR_TIME_FORMAT = 0,/*!< Time format. */
SAT_CFG_STR_DEF_QTH, /*!< Default QTH file. */
SAT_CFG_STR_OPEN_MODULES, /*!< Open modules. */
SAT_CFG_STR_WEB_BROWSER, /*!< Web browser string. */
SAT_CFG_STR_MAP_FILE, /*!< Map file (abs or rel). */
SAT_CFG_STR_MAP_FONT, /*!< Map font. */
SAT_CFG_STR_POL_FONT, /*!< Polar view font. */
SAT_CFG_STR_TLE_SERVER, /*!< Server for TLE updates. */
SAT_CFG_STR_TLE_FILES, /*!< ; separated list of files on server. */
SAT_CFG_STR_TLE_FILE_DIR, /*!< Local directory from which tle were last updated. */
SAT_CFG_STR_TLE_FILE_EXT, /*!< File extensions. */
SAT_CFG_STR_PRED_SAVE_DIR, /*!< Last used save directory for pass predictions */
SAT_CFG_STR_NUM /*!< Number of string parameters */
SAT_CFG_STR_TIME_FORMAT = 0,/*!< Time format. */
SAT_CFG_STR_DEF_QTH, /*!< Default QTH file. */
SAT_CFG_STR_OPEN_MODULES, /*!< Open modules. */
SAT_CFG_STR_WEB_BROWSER, /*!< Web browser string. */
SAT_CFG_STR_MAP_FILE, /*!< Map file (abs or rel). */
SAT_CFG_STR_MAP_FONT, /*!< Map font. */
SAT_CFG_STR_POL_FONT, /*!< Polar view font. */
SAT_CFG_STR_TLE_SERVER, /*!< Server for TLE updates. */
SAT_CFG_STR_TLE_FILES, /*!< ; separated list of files on server. */
SAT_CFG_STR_TLE_PROXY, /*!< Proxy server. */
SAT_CFG_STR_TLE_FILE_DIR, /*!< Local directory from which tle were last updated. */
SAT_CFG_STR_TLE_FILE_EXT, /*!< File extensions. */
SAT_CFG_STR_PRED_SAVE_DIR, /*!< Last used save directory for pass predictions */
SAT_CFG_STR_NUM /*!< Number of string parameters */
} sat_cfg_str_e;

View file

@ -42,7 +42,7 @@ static GtkWidget *freq;
static GtkWidget *warn,*autom;
/* internet updates */
static GtkWidget *server,*files;
static GtkWidget *server,*proxy,*files;
/* add new sats */
static GtkWidget *addnew;
@ -76,28 +76,27 @@ static void value_changed_cb (GtkWidget *widget, gpointer data);
GtkWidget *sat_pref_tle_create ()
{
GtkWidget *vbox;
GtkWidget *vbox;
/* vertical box */
vbox = gtk_vbox_new (FALSE, 10);
gtk_container_set_border_width (GTK_CONTAINER (vbox), 20);
/* vertical box */
vbox = gtk_vbox_new (FALSE, 10);
gtk_container_set_border_width (GTK_CONTAINER (vbox), 20);
/* add contents */
create_auto_update (vbox);
gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, TRUE, 0);
create_network (vbox);
gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, TRUE, 0);
/* add contents */
create_auto_update (vbox);
gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, TRUE, 0);
create_network (vbox);
gtk_box_pack_start (GTK_BOX (vbox), gtk_hseparator_new (), FALSE, TRUE, 0);
create_misc (vbox);
#if 0
create_local (vbox);
#endif
/* create RESET button */
create_reset_button (GTK_BOX (vbox));
/* create RESET button */
create_reset_button (GTK_BOX (vbox));
return vbox;
return vbox;
}
@ -106,8 +105,8 @@ GtkWidget *sat_pref_tle_create ()
void
sat_pref_tle_cancel ()
{
dirty = FALSE;
reset = FALSE;
dirty = FALSE;
reset = FALSE;
}
@ -116,45 +115,50 @@ sat_pref_tle_cancel ()
void
sat_pref_tle_ok ()
{
if (dirty) {
/* save settings */
if (dirty) {
/* save settings */
/* update frequency */
sat_cfg_set_int (SAT_CFG_INT_TLE_AUTO_UPD_FREQ,
gtk_combo_box_get_active (GTK_COMBO_BOX (freq)));
/* update frequency */
sat_cfg_set_int (SAT_CFG_INT_TLE_AUTO_UPD_FREQ,
gtk_combo_box_get_active (GTK_COMBO_BOX (freq)));
/* action to take */
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (autom)))
sat_cfg_set_int (SAT_CFG_INT_TLE_AUTO_UPD_ACTION, TLE_AUTO_UPDATE_GOAHEAD);
else
sat_cfg_set_int (SAT_CFG_INT_TLE_AUTO_UPD_ACTION, TLE_AUTO_UPDATE_NOTIFY);
/* action to take */
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (autom)))
sat_cfg_set_int (SAT_CFG_INT_TLE_AUTO_UPD_ACTION, TLE_AUTO_UPDATE_GOAHEAD);
else
sat_cfg_set_int (SAT_CFG_INT_TLE_AUTO_UPD_ACTION, TLE_AUTO_UPDATE_NOTIFY);
/* server */
sat_cfg_set_str (SAT_CFG_STR_TLE_SERVER,
gtk_entry_get_text (GTK_ENTRY (server)));
/* server */
sat_cfg_set_str (SAT_CFG_STR_TLE_SERVER,
gtk_entry_get_text (GTK_ENTRY (server)));
/* files */
sat_cfg_set_str (SAT_CFG_STR_TLE_FILES,
gtk_entry_get_text (GTK_ENTRY (files)));
/* proxy */
sat_cfg_set_str (SAT_CFG_STR_TLE_PROXY,
gtk_entry_get_text (GTK_ENTRY (proxy)));
/* files */
sat_cfg_set_str (SAT_CFG_STR_TLE_FILES,
gtk_entry_get_text (GTK_ENTRY (files)));
/* add new sats */
sat_cfg_set_bool (SAT_CFG_BOOL_TLE_ADD_NEW,
gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (addnew)));
gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (addnew)));
dirty = FALSE;
}
else if (reset) {
dirty = FALSE;
}
else if (reset) {
/* use sat_cfg_reset */
sat_cfg_reset_int (SAT_CFG_INT_TLE_AUTO_UPD_FREQ);
sat_cfg_reset_int (SAT_CFG_INT_TLE_AUTO_UPD_ACTION);
sat_cfg_reset_str (SAT_CFG_STR_TLE_SERVER);
sat_cfg_reset_str (SAT_CFG_STR_TLE_FILES);
/* use sat_cfg_reset */
sat_cfg_reset_int (SAT_CFG_INT_TLE_AUTO_UPD_FREQ);
sat_cfg_reset_int (SAT_CFG_INT_TLE_AUTO_UPD_ACTION);
sat_cfg_reset_str (SAT_CFG_STR_TLE_SERVER);
sat_cfg_reset_str (SAT_CFG_STR_TLE_PROXY);
sat_cfg_reset_str (SAT_CFG_STR_TLE_FILES);
sat_cfg_reset_bool (SAT_CFG_BOOL_TLE_ADD_NEW);
reset = FALSE;
}
reset = FALSE;
}
}
@ -162,53 +166,53 @@ sat_pref_tle_ok ()
static void
create_auto_update (GtkWidget *vbox)
{
GtkWidget *label;
GtkWidget *box;
guint i;
GtkWidget *label;
GtkWidget *box;
guint i;
/* auto update */
label = gtk_label_new (NULL);
gtk_label_set_markup (GTK_LABEL (label), _("<b>Auto-Update:</b>"));
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 0);
/* auto update */
label = gtk_label_new (NULL);
gtk_label_set_markup (GTK_LABEL (label), _("<b>Auto-Update:</b>"));
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 0);
/* frequency */
freq = gtk_combo_box_new_text ();
for (i = 0; i < TLE_AUTO_UPDATE_NUM; i++) {
gtk_combo_box_append_text (GTK_COMBO_BOX (freq),
tle_update_freq_to_str (i));
}
gtk_combo_box_set_active (GTK_COMBO_BOX (freq),
sat_cfg_get_int (SAT_CFG_INT_TLE_AUTO_UPD_FREQ));
g_signal_connect (freq, "changed", G_CALLBACK (value_changed_cb), NULL);
/* frequency */
freq = gtk_combo_box_new_text ();
for (i = 0; i < TLE_AUTO_UPDATE_NUM; i++) {
gtk_combo_box_append_text (GTK_COMBO_BOX (freq),
tle_update_freq_to_str (i));
}
gtk_combo_box_set_active (GTK_COMBO_BOX (freq),
sat_cfg_get_int (SAT_CFG_INT_TLE_AUTO_UPD_FREQ));
g_signal_connect (freq, "changed", G_CALLBACK (value_changed_cb), NULL);
label = gtk_label_new (_("Check the age of TLE data:"));
label = gtk_label_new (_("Check the age of TLE data:"));
box = gtk_hbox_new (FALSE, 5);
gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (box), freq, FALSE, FALSE, 0);
box = gtk_hbox_new (FALSE, 5);
gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (box), freq, FALSE, FALSE, 0);
gtk_box_pack_start (GTK_BOX (vbox), box, FALSE, TRUE, 0);
gtk_box_pack_start (GTK_BOX (vbox), box, FALSE, TRUE, 0);
/* radio buttons selecting action */
label = gtk_label_new (_("If TLEs are too old:"));
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 0);
warn = gtk_radio_button_new_with_label (NULL,
_("Notify me"));
gtk_box_pack_start (GTK_BOX (vbox), warn, FALSE, TRUE, 0);
autom = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (warn),
_("Perform automatic update in the background"));
gtk_box_pack_start (GTK_BOX (vbox), autom, FALSE, TRUE, 0);
/* radio buttons selecting action */
label = gtk_label_new (_("If TLEs are too old:"));
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 0);
warn = gtk_radio_button_new_with_label (NULL,
_("Notify me"));
gtk_box_pack_start (GTK_BOX (vbox), warn, FALSE, TRUE, 0);
autom = gtk_radio_button_new_with_label_from_widget (GTK_RADIO_BUTTON (warn),
_("Perform automatic update in the background"));
gtk_box_pack_start (GTK_BOX (vbox), autom, FALSE, TRUE, 0);
/* warn is selected automatically by default */
if (sat_cfg_get_int (SAT_CFG_INT_TLE_AUTO_UPD_ACTION) == TLE_AUTO_UPDATE_GOAHEAD) {
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (autom), TRUE);
}
/* warn is selected automatically by default */
if (sat_cfg_get_int (SAT_CFG_INT_TLE_AUTO_UPD_ACTION) == TLE_AUTO_UPDATE_GOAHEAD) {
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (autom), TRUE);
}
g_signal_connect (warn, "toggled", G_CALLBACK (value_changed_cb), NULL);
g_signal_connect (autom, "toggled", G_CALLBACK (value_changed_cb), NULL);
g_signal_connect (warn, "toggled", G_CALLBACK (value_changed_cb), NULL);
g_signal_connect (autom, "toggled", G_CALLBACK (value_changed_cb), NULL);
}
@ -218,58 +222,75 @@ create_auto_update (GtkWidget *vbox)
static void
create_network (GtkWidget *vbox)
{
GtkWidget *label;
GtkWidget *table;
GtkTooltips *tips;
GtkWidget *label;
GtkWidget *table;
GtkTooltips *tips;
/* auto update */
label = gtk_label_new (NULL);
gtk_label_set_markup (GTK_LABEL (label), _("<b>Update from the Internet:</b>"));
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 0);
/* auto update */
label = gtk_label_new (NULL);
gtk_label_set_markup (GTK_LABEL (label), _("<b>Update from the Internet:</b>"));
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 0);
/* create table */
table = gtk_table_new (3, 3, FALSE);
gtk_table_set_row_spacings (GTK_TABLE (table), 5);
gtk_table_set_col_spacings (GTK_TABLE (table), 5);
/* create table */
table = gtk_table_new (3, 3, FALSE);
gtk_table_set_row_spacings (GTK_TABLE (table), 5);
gtk_table_set_col_spacings (GTK_TABLE (table), 5);
/* server */
label = gtk_label_new (_("Remote server:"));
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0);
server = gtk_entry_new ();
if (sat_cfg_get_str (SAT_CFG_STR_TLE_SERVER))
gtk_entry_set_text (GTK_ENTRY (server), sat_cfg_get_str (SAT_CFG_STR_TLE_SERVER));
tips = gtk_tooltips_new ();
gtk_tooltips_set_tip (tips, server,
_("Enter URL for remote server including directory, i.e.\n"\
"protocol://servername/directory\n"\
"Protocol can be both http and ftp."),
NULL);
g_signal_connect (server, "changed", G_CALLBACK (value_changed_cb), NULL);
gtk_table_attach (GTK_TABLE (table), server, 1, 2, 0, 1,
GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
/* Files */
label = gtk_label_new (_("Files to fetch:"));
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
gtk_table_attach (GTK_TABLE (table), label, 0, 1, 2, 3, GTK_FILL, GTK_FILL, 0, 0);
files = gtk_entry_new ();
if (sat_cfg_get_str (SAT_CFG_STR_TLE_FILES))
gtk_entry_set_text (GTK_ENTRY (files), sat_cfg_get_str (SAT_CFG_STR_TLE_FILES));
tips = gtk_tooltips_new ();
gtk_tooltips_set_tip (tips, files,
_("Enter list of files to fetch from remote server.\n"\
"The files should be separated with ; (semicolon)"),
NULL);
g_signal_connect (files, "changed", G_CALLBACK (value_changed_cb), NULL);
gtk_table_attach (GTK_TABLE (table), files, 1, 2, 2, 3,
GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
/* server */
label = gtk_label_new (_("Remote server:"));
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
gtk_table_attach (GTK_TABLE (table), label, 0, 1, 0, 1, GTK_FILL, GTK_FILL, 0, 0);
/* put table into vbox */
gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, TRUE, 0);
server = gtk_entry_new ();
if (sat_cfg_get_str (SAT_CFG_STR_TLE_SERVER))
gtk_entry_set_text (GTK_ENTRY (server), sat_cfg_get_str (SAT_CFG_STR_TLE_SERVER));
tips = gtk_tooltips_new ();
gtk_tooltips_set_tip (tips, server,
_("Enter URL for remote server including directory, i.e.\n"\
"protocol://servername/directory\n"\
"Protocol can be both http and ftp."),
NULL);
g_signal_connect (server, "changed", G_CALLBACK (value_changed_cb), NULL);
gtk_table_attach (GTK_TABLE (table), server, 1, 2, 0, 1,
GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
/* proxy */
label = gtk_label_new (_("Proxy server:"));
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
gtk_table_attach (GTK_TABLE (table), label, 0, 1, 1, 2, GTK_FILL, GTK_FILL, 0, 0);
proxy = gtk_entry_new ();
if (sat_cfg_get_str (SAT_CFG_STR_TLE_PROXY))
gtk_entry_set_text (GTK_ENTRY (proxy), sat_cfg_get_str (SAT_CFG_STR_TLE_PROXY));
tips = gtk_tooltips_new ();
gtk_tooltips_set_tip (tips, proxy,
_("Enter URL for local proxy server. e.g.\n"\
"http://my.proxy.com"),
NULL);
g_signal_connect (proxy, "changed", G_CALLBACK (value_changed_cb), NULL);
gtk_table_attach (GTK_TABLE (table), proxy, 1, 2, 1, 2,
GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
/* Files */
label = gtk_label_new (_("Files to fetch:"));
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
gtk_table_attach (GTK_TABLE (table), label, 0, 1, 2, 3, GTK_FILL, GTK_FILL, 0, 0);
files = gtk_entry_new ();
if (sat_cfg_get_str (SAT_CFG_STR_TLE_FILES))
gtk_entry_set_text (GTK_ENTRY (files), sat_cfg_get_str (SAT_CFG_STR_TLE_FILES));
tips = gtk_tooltips_new ();
gtk_tooltips_set_tip (tips, files,
_("Enter list of files to fetch from remote server.\n"\
"The files should be separated with ; (semicolon)"),
NULL);
g_signal_connect (files, "changed", G_CALLBACK (value_changed_cb), NULL);
gtk_table_attach (GTK_TABLE (table), files, 1, 2, 2, 3,
GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
/* put table into vbox */
gtk_box_pack_start (GTK_BOX (vbox), table, FALSE, TRUE, 0);
}
@ -299,14 +320,13 @@ create_misc (GtkWidget *vbox)
static void
create_local (GtkWidget *vbox)
{
GtkWidget *label;
/* auto update */
label = gtk_label_new (NULL);
gtk_label_set_markup (GTK_LABEL (label), _("<b>Update from Local Files:</b>"));
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 0);
GtkWidget *label;
/* auto update */
label = gtk_label_new (NULL);
gtk_label_set_markup (GTK_LABEL (label), _("<b>Update from Local Files:</b>"));
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, TRUE, 0);
}
#endif
@ -320,25 +340,25 @@ create_local (GtkWidget *vbox)
static void
create_reset_button (GtkBox *vbox)
{
GtkWidget *button;
GtkWidget *butbox;
GtkTooltips *tips;
GtkWidget *button;
GtkWidget *butbox;
GtkTooltips *tips;
button = gtk_button_new_with_label (_("Reset"));
g_signal_connect (G_OBJECT (button), "clicked",
G_CALLBACK (reset_cb), NULL);
button = gtk_button_new_with_label (_("Reset"));
g_signal_connect (G_OBJECT (button), "clicked",
G_CALLBACK (reset_cb), NULL);
tips = gtk_tooltips_new ();
gtk_tooltips_set_tip (tips, button,
_("Reset settings to the default values."),
NULL);
tips = gtk_tooltips_new ();
gtk_tooltips_set_tip (tips, button,
_("Reset settings to the default values."),
NULL);
butbox = gtk_hbutton_box_new ();
gtk_button_box_set_layout (GTK_BUTTON_BOX (butbox), GTK_BUTTONBOX_END);
gtk_box_pack_end (GTK_BOX (butbox), button, FALSE, TRUE, 10);
butbox = gtk_hbutton_box_new ();
gtk_button_box_set_layout (GTK_BUTTON_BOX (butbox), GTK_BUTTONBOX_END);
gtk_box_pack_end (GTK_BOX (butbox), button, FALSE, TRUE, 10);
gtk_box_pack_end (vbox, butbox, FALSE, TRUE, 0);
gtk_box_pack_end (vbox, butbox, FALSE, TRUE, 0);
}
@ -357,35 +377,38 @@ static void
reset_cb (GtkWidget *button, gpointer data)
{
/* get defaults */
/* get defaults */
/* update frequency */
gtk_combo_box_set_active (GTK_COMBO_BOX (freq),
sat_cfg_get_int_def (SAT_CFG_INT_TLE_AUTO_UPD_FREQ));
/* update frequency */
gtk_combo_box_set_active (GTK_COMBO_BOX (freq),
sat_cfg_get_int_def (SAT_CFG_INT_TLE_AUTO_UPD_FREQ));
/* action */
if (sat_cfg_get_int_def (SAT_CFG_INT_TLE_AUTO_UPD_ACTION) == TLE_AUTO_UPDATE_GOAHEAD) {
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (autom), TRUE);
}
else {
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (warn), TRUE);
}
/* action */
if (sat_cfg_get_int_def (SAT_CFG_INT_TLE_AUTO_UPD_ACTION) == TLE_AUTO_UPDATE_GOAHEAD) {
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (autom), TRUE);
}
else {
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (warn), TRUE);
}
/* server */
gtk_entry_set_text (GTK_ENTRY (server), sat_cfg_get_str_def (SAT_CFG_STR_TLE_SERVER));
/* server */
gtk_entry_set_text (GTK_ENTRY (server), sat_cfg_get_str_def (SAT_CFG_STR_TLE_SERVER));
/* files */
gtk_entry_set_text (GTK_ENTRY (files), sat_cfg_get_str_def (SAT_CFG_STR_TLE_FILES));
/* proxy */
gtk_entry_set_text (GTK_ENTRY (proxy), "");
/* files */
gtk_entry_set_text (GTK_ENTRY (files), sat_cfg_get_str_def (SAT_CFG_STR_TLE_FILES));
/* add new sats */
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (addnew),
sat_cfg_get_bool_def (SAT_CFG_BOOL_TLE_ADD_NEW));
sat_cfg_get_bool_def (SAT_CFG_BOOL_TLE_ADD_NEW));
/* reset flags */
reset = TRUE;
dirty = FALSE;
/* reset flags */
reset = TRUE;
dirty = FALSE;
}
@ -400,6 +423,6 @@ reset_cb (GtkWidget *button, gpointer data)
static void
value_changed_cb (GtkWidget *widget, gpointer data)
{
dirty = TRUE;
dirty = TRUE;
}

File diff suppressed because it is too large Load diff