}
}
-static void xdg_open(GtkLinkButton *button, const gchar *link, gpointer user_data)
+static void xdg_open(GtkWidget *widget, const gchar *link, gpointer user_data)
{
gchar *argv[] = {"xdg-open", (gchar*)link, NULL};
g_spawn_async(NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, NULL);
/* Set time
* Do this before setting setting location
* so that it doesn't refresh twice */
- int year, mon, day, hour, min;
- sscanf(time, "%d-%d-%d %d:%d", &year, &mon, &day, &hour, &min);
- time_t sec = mktime(&(struct tm){0, year-1900, mon-1, day, hour, min});
- if (sec > 0)
- grits_viewer_set_time(gui->viewer, sec);
- g_debug("date = [%s] == %lu\n", time, sec);
+ if (time) {
+ int year, mon, day, hour, min;
+ sscanf(time, "%d-%d-%d %d:%d", &year, &mon, &day, &hour, &min);
+ time_t sec = mktime(&(struct tm){0, year-1900, mon-1, day, hour, min});
+ if (sec > 0)
+ grits_viewer_set_time(gui->viewer, sec);
+ g_debug("date = [%s] == %lu\n", time, sec);
+ }
/* Set location */
- for (city_t *city = cities; city->type; city++) {
- if (city->type == LOCATION_CITY && g_str_equal(city->code, site)) {
- grits_viewer_set_location(gui->viewer,
- city->pos.lat, city->pos.lon, EARTH_R/35);
- break;
+ if (site) {
+ for (city_t *city = cities; city->type; city++) {
+ if (city->type == LOCATION_CITY && g_str_equal(city->code, site)) {
+ grits_viewer_set_location(gui->viewer,
+ city->pos.lat, city->pos.lon, EARTH_R/35);
+ break;
+ }
}
}
}
{
/* Defaults */
gint debug = 2; // G_LOG_LEVEL_WARNING
- gchar *site = "";
- gchar *time = "";
+ gchar *site = NULL;
+ gchar *time = NULL;
gboolean autoupdate = FALSE;
gboolean offline = FALSE;
gboolean fullscreen = FALSE;
{NULL}
};
+ /* All times in UTC */
+ g_setenv("TZ", "UTC", TRUE);
+
/* Init */
GError *error = NULL;
- g_thread_init(NULL);
gdk_threads_init();
if (!gtk_init_with_args(&argc, &argv, "aweather", entries, NULL, &error)) {
g_print("%s\n", error->message);
}
/* Use external handler for link buttons */
- gtk_link_button_set_uri_hook(xdg_open, NULL, NULL);
+ gtk_link_button_set_uri_hook((GtkLinkButtonUriFunc)xdg_open, NULL, NULL);
+ gtk_about_dialog_set_url_hook((GtkAboutDialogActivateLinkFunc)xdg_open, NULL, NULL);
+ gtk_about_dialog_set_email_hook((GtkAboutDialogActivateLinkFunc)xdg_open, NULL, NULL);
/* Setup debug level for aweather_gui_new */
g_log_set_handler(NULL, G_LOG_LEVEL_MASK, log_func, NULL);