26 #include <glib/gi18n.h> 28 #include "dialog-new-user.h" 29 #include "dialog-utils.h" 31 #include "assistant-hierarchy.h" 33 #include "gnc-hooks.h" 39 #include "gnc-session.h" 43 static QofLogModule log_module = GNC_MOD_GUI;
46 static void (*qifImportAssistantFcn)(void) = NULL;
52 GtkWidget *new_accounts_button;
53 GtkWidget *import_qif_button;
54 GtkWidget *tutorial_button;
59 gnc_ui_new_user_cancel_dialog (GtkWindow *parent);
62 gnc_new_user_dialog_register_qif_assistant (
void (*cb_fcn)(
void))
64 g_return_if_fail (qifImportAssistantFcn == NULL);
65 qifImportAssistantFcn = cb_fcn;
69 gnc_set_first_startup (gboolean first_startup)
75 after_hierarchy_assistant(
void)
77 gncp_new_user_finish ();
78 gnc_set_first_startup (FALSE);
85 gnc_ui_new_user_cancel_cb (GtkWidget * widget, gpointer data)
87 GNCNewUserDialog *new_user = data;
89 g_return_if_fail(new_user);
90 gtk_widget_destroy (new_user->window);
94 gnc_ui_new_user_destroy_cb (GtkWidget * widget, gpointer data)
96 GNCNewUserDialog *new_user = data;
98 g_return_if_fail(new_user);
99 if (new_user->ok_pressed == FALSE)
100 gnc_ui_new_user_cancel_dialog (GTK_WINDOW(new_user->window));
106 gnc_ui_new_user_ok_cb (GtkWidget * widget, gpointer data)
108 GNCNewUserDialog *new_user = data;
110 g_return_if_fail(new_user);
111 new_user->ok_pressed = TRUE;
113 if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (new_user->new_accounts_button)))
115 gnc_ui_hierarchy_assistant_with_callback(TRUE, after_hierarchy_assistant);
117 else if ((qifImportAssistantFcn != NULL)
118 && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (new_user->import_qif_button)))
120 qifImportAssistantFcn();
121 gncp_new_user_finish ();
123 else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (new_user->tutorial_button)))
127 gtk_widget_destroy (new_user->window);
131 gnc_ui_new_user_window_present (GtkWindow *window)
133 gtk_window_present (GTK_WINDOW(window));
138 gnc_ui_new_user_dialog_create (GNCNewUserDialog *new_user)
144 builder = gtk_builder_new();
145 gnc_builder_add_from_file (builder,
"dialog-new-user.glade",
"new_user_window");
146 new_user->window = GTK_WIDGET(gtk_builder_get_object (builder,
"new_user_window"));
148 gtk_window_set_keep_above (GTK_WINDOW(new_user->window), TRUE);
151 gtk_widget_set_name (GTK_WIDGET(new_user->window),
"gnc-id-new-user");
153 new_user->new_accounts_button = GTK_WIDGET(gtk_builder_get_object (builder,
"new_accounts_button"));
154 new_user->import_qif_button = GTK_WIDGET(gtk_builder_get_object (builder,
"import_qif_button"));
155 new_user->tutorial_button = GTK_WIDGET(gtk_builder_get_object (builder,
"tutorial_button"));
160 gtk_widget_set_sensitive (new_user->import_qif_button, (qifImportAssistantFcn != NULL));
162 g_signal_connect(G_OBJECT(new_user->window),
"destroy",
163 G_CALLBACK(gnc_ui_new_user_destroy_cb), new_user);
165 button = GTK_WIDGET(gtk_builder_get_object (builder,
"ok_but"));
166 g_signal_connect(button,
"clicked", G_CALLBACK(gnc_ui_new_user_ok_cb), new_user);
168 button = GTK_WIDGET(gtk_builder_get_object (builder,
"cancel_but"));
169 g_signal_connect(button,
"clicked", G_CALLBACK(gnc_ui_new_user_cancel_cb), new_user);
171 new_user->ok_pressed = FALSE;
173 g_idle_add ((GSourceFunc)gnc_ui_new_user_window_present, GTK_WINDOW(new_user->window));
175 g_object_unref(G_OBJECT(builder));
180 gnc_ui_new_user_cancel_dialog (GtkWindow *parent)
185 gboolean keepshowing;
187 builder = gtk_builder_new();
188 gnc_builder_add_from_file (builder,
"dialog-new-user.glade",
"new_user_cancel_dialog");
190 dialog = GTK_WIDGET(gtk_builder_get_object (builder,
"new_user_cancel_dialog"));
192 gtk_window_set_transient_for (GTK_WINDOW (dialog), parent);
194 result = gtk_dialog_run (GTK_DIALOG (dialog));
195 keepshowing = (result == GTK_RESPONSE_YES);
197 gnc_set_first_startup (keepshowing);
199 g_object_unref(G_OBJECT(builder));
200 gtk_widget_destroy(dialog);
204 gncp_new_user_finish (
void)
206 gnc_hook_run(HOOK_BOOK_OPENED, gnc_get_current_session());
210 gnc_ui_new_user_dialog (
void)
212 GNCNewUserDialog *new_user;
214 new_user = g_new0(GNCNewUserDialog, 1);
215 gnc_ui_new_user_dialog_create (new_user);
216 gtk_widget_show (new_user->window);
GtkWindow * gnc_ui_get_main_window(GtkWidget *widget)
Get a pointer to the final GncMainWindow widget is rooted in.
utility functions for the GnuCash UI
#define ENTER(format, args...)
Print a function entry debugging message.
Functions for adding content to a window.
void gnc_gnome_help(GtkWindow *parent, const char *file_name, const char *anchor)
Launch the systems default help browser, gnome's yelp for linux, and open to a given link within a gi...
gboolean gnc_prefs_set_bool(const gchar *group, const gchar *pref_name, gboolean value)
Store a boolean value into the preferences backend.
All type declarations for the whole Gnucash engine.
void qof_book_mark_session_dirty(QofBook *book)
The qof_book_mark_dirty() routine marks the book as having been modified.
Generic api to store and retrieve preferences.
Functions providing a chart of account page.
#define LEAVE(format, args...)
Print a function exit debugging message.
This file contains the functions to present a GUI to select a file or a database connection.