void logview_prefs_remove_stored_log (LogviewPrefs *prefs, GFile *target) { gchar **stored_logs; GFile *stored; GPtrArray *new_value; gint idx; gboolean removed = FALSE; g_assert (LOGVIEW_IS_PREFS (prefs)); g_assert (G_IS_FILE (target)); stored_logs = logview_prefs_get_stored_logfiles (prefs); new_value = g_ptr_array_new (); for (idx = 0; stored_logs[idx] != NULL; idx++) { stored = g_file_parse_name (stored_logs[idx]); if (!g_file_equal (stored, target)) { g_ptr_array_add (new_value, g_strdup (stored_logs[idx])); } g_object_unref (stored); } g_ptr_array_add (new_value, NULL); g_strfreev (stored_logs); stored_logs = (gchar **) g_ptr_array_free (new_value, FALSE); g_settings_set_strv (prefs->priv->logview_prefs, PREF_LOGFILES, (const gchar **) stored_logs); g_strfreev (stored_logs); }
void logview_app_initialize (LogviewApp *app, char **log_files) { LogviewAppPrivate *priv; g_assert (LOGVIEW_IS_APP (app)); priv = app->priv; /* open regular logs and add each log passed as a parameter */ if (log_files == NULL) { char *active_log; gchar **logs; active_log = logview_prefs_get_active_logfile (priv->prefs); logs = logview_prefs_get_stored_logfiles (priv->prefs); if (!logs) { logview_app_first_time_initialize (app); } else { logview_manager_add_logs_from_names (priv->manager, logs, active_log); g_free (active_log); g_strfreev (logs); } } else { logview_manager_add_logs_from_names (priv->manager, log_files, NULL); } gtk_widget_show (GTK_WIDGET (priv->window)); }
void logview_prefs_store_log (LogviewPrefs *prefs, GFile *file) { gchar **stored_logs; GFile *stored; gboolean found = FALSE; gint idx, old_size; g_assert (LOGVIEW_IS_PREFS (prefs)); g_assert (G_IS_FILE (file)); stored_logs = logview_prefs_get_stored_logfiles (prefs); for (idx = 0; stored_logs[idx] != NULL; idx++) { stored = g_file_parse_name (stored_logs[idx]); if (g_file_equal (file, stored)) { found = TRUE; } g_object_unref (stored); if (found) { break; } } if (!found) { old_size = g_strv_length (stored_logs); stored_logs = g_realloc (stored_logs, (old_size + 2) * sizeof (gchar *)); stored_logs[old_size] = g_file_get_parse_name (file); stored_logs[old_size + 1] = NULL; g_settings_set_strv (prefs->priv->logview_prefs, PREF_LOGFILES, (const gchar **) stored_logs); } g_strfreev (stored_logs); }
static void logview_app_activate (GApplication *application) { LogviewApp *app = LOGVIEW_APP (application); char *active_log; gchar **logs; G_APPLICATION_CLASS (logview_app_parent_class)->activate (application); logs = logview_prefs_get_stored_logfiles (app->priv->prefs); if (!logs || !logs[0]) { logview_app_first_time_initialize (app); } else { active_log = logview_prefs_get_active_logfile (app->priv->prefs); logview_manager_add_logs_from_names (app->priv->manager, logs, active_log); g_free (active_log); } g_strfreev (logs); gtk_widget_show (app->priv->window); }