gchar *rating_symbol;
gchar *path;
gchar *basename;
+ gchar *download_locn;
GNetworkMonitor *net_mon;
GSocketConnectable *geeqie_org;
gboolean internet_available;
tz = g_new0(TZData, 1);
- path = path_from_utf8(TIMEZONE_DATABASE);
+ path = path_from_utf8(TIMEZONE_DATABASE_WEB);
basename = g_path_get_basename(path);
- tz->timezone_database_user = g_build_filename(get_rc_dir(), basename, NULL);
+ tz->timezone_database_user = g_build_filename(get_rc_dir(), TIMEZONE_DATABASE_FILE, NULL);
g_free(path);
g_free(basename);
button = pref_button_new(GTK_WIDGET(hbox), NULL, _("Install"), FALSE, G_CALLBACK(timezone_database_install_cb), tz);
}
+ download_locn = g_strconcat(_("Download database from: "), TIMEZONE_DATABASE_WEB, NULL);
+ pref_label_new(GTK_WIDGET(hbox), download_locn);
+ g_free(download_locn);
+
if (!internet_available)
{
gtk_widget_set_tooltip_text(button, _("No Internet connection!\nThe timezone database is used to display exif time and date\ncorrected for UTC offset and Daylight Saving Time"));
gchar *path;
GString *copyright;
gchar *timezone_path;
- gchar *basename;
ZoneDetect *cd;
FILE *fp = NULL;
#define LINE_LENGTH 1000
copyright = g_string_new(NULL);
copyright = g_string_append(copyright, "This program comes with absolutely no warranty.\nGNU General Public License, version 2 or later.\nSee https://www.gnu.org/licenses/old-licenses/gpl-2.0.html\n\n");
- path = path_from_utf8(TIMEZONE_DATABASE);
- basename = g_path_get_basename(path);
- timezone_path = g_build_filename(get_rc_dir(), basename, NULL);
+ timezone_path = g_build_filename(get_rc_dir(), TIMEZONE_DATABASE_FILE, NULL);
if (g_file_test(timezone_path, G_FILE_TEST_EXISTS))
{
cd = ZDOpenDatabase(timezone_path);
if (cd)
{
copyright = g_string_append(copyright, ZDGetNotice(cd));
- ZDCloseDatabase(cd);
}
+ else
+ {
+ log_printf("Error: Init of timezone database %s failed\n", timezone_path);
+ }
+ ZDCloseDatabase(cd);
}
- g_free(path);
g_free(timezone_path);
- g_free(basename);
authors[0] = NULL;
path = g_build_filename(gq_helpdir, "AUTHORS", NULL);
GError *error = NULL;
TZData *tz = data;
gchar *tmp_filename;
+ gchar *timezone_bin;
+ gchar *tmp_dir = NULL;
+ FileData *fd;
if (!g_cancellable_is_cancelled(tz->cancellable))
{
if (g_file_copy_finish(G_FILE(source_object), res, &error))
{
- tmp_filename = g_file_get_parse_name(tz->tmp_g_file);
- move_file(tmp_filename, tz->timezone_database_user);
+ tmp_filename = g_file_get_path(tz->tmp_g_file);
+ fd = file_data_new_simple(tmp_filename);
+ tmp_dir = open_archive(fd);
+
+ if (tmp_dir)
+ {
+ timezone_bin = g_build_filename(tmp_dir, TIMEZONE_DATABASE_VERSION, TIMEZONE_DATABASE_FILE, NULL);
+ if (isfile(timezone_bin))
+ {
+ move_file(timezone_bin, tz->timezone_database_user);
+ }
+ else
+ {
+ warning_dialog(_("Warning: Cannot open timezone database file"), _("See the Log Window"), GTK_STOCK_DIALOG_WARNING, NULL);
+ }
+
+ g_free(timezone_bin);
+ g_free(tmp_dir); // The folder in /tmp is deleted in exit_program_final()
+ }
+ else
+ {
+ warning_dialog(_("Warning: Cannot open timezone database file"), _("See the Log Window"), GTK_STOCK_DIALOG_WARNING, NULL);
+ }
g_free(tmp_filename);
+ file_data_unref(fd);
}
else
{
- file_util_warning_dialog(_("Timezone database download failed"), error->message, GTK_STOCK_DIALOG_ERROR, NULL);
+ file_util_warning_dialog(_("Error: Timezone database download failed"), error->message, GTK_STOCK_DIALOG_ERROR, NULL);
}
g_file_delete(tz->tmp_g_file, NULL, &error);
}
else
{
- tz->timezone_database_gq = g_file_new_for_uri(TIMEZONE_DATABASE);
+ tz->timezone_database_gq = g_file_new_for_uri(TIMEZONE_DATABASE_WEB);
tz->gd = generic_dialog_new(_("Timezone database"), "download_timezone_database", NULL, TRUE, timezone_cancel_button_cb, tz);