Prevent "quit without saving" dialog at shutdown when there's no session.

Don't create a session if there isn't one.
This commit is contained in:
John Ralls 2018-06-17 09:24:32 -07:00
parent a9f0fe2f93
commit d906ac4136
2 changed files with 26 additions and 14 deletions

View File

@ -1615,6 +1615,8 @@ gnc_file_quit (void)
{ {
QofSession *session; QofSession *session;
if (!gnc_current_session_exist ())
return;
gnc_set_busy_cursor (NULL, TRUE); gnc_set_busy_cursor (NULL, TRUE);
session = gnc_get_current_session (); session = gnc_get_current_session ();
@ -1640,6 +1642,10 @@ gnc_file_set_shutdown_callback (GNCShutdownCB cb)
gboolean gboolean
gnc_file_save_in_progress (void) gnc_file_save_in_progress (void)
{ {
QofSession *session = gnc_get_current_session(); if (gnc_current_session_exist())
return (qof_session_save_in_progress(session) || save_in_progress > 0); {
QofSession *session = gnc_get_current_session();
return (qof_session_save_in_progress(session) || save_in_progress > 0);
}
return FALSE;
} }

View File

@ -1232,7 +1232,8 @@ gnc_main_window_prompt_for_save (GtkWidget *window)
_("If you don't save, changes from the past %d days and %d hours will be discarded."); _("If you don't save, changes from the past %d days and %d hours will be discarded.");
time64 oldest_change; time64 oldest_change;
gint minutes, hours, days; gint minutes, hours, days;
if (!gnc_current_session_exist())
return FALSE;
session = gnc_get_current_session(); session = gnc_get_current_session();
book = qof_session_get_book(session); book = qof_session_get_book(session);
filename = qof_session_get_url(session); filename = qof_session_get_url(session);
@ -1363,14 +1364,17 @@ static gboolean
gnc_main_window_quit(GncMainWindow *window) gnc_main_window_quit(GncMainWindow *window)
{ {
QofSession *session; QofSession *session;
gboolean needs_save, do_shutdown; gboolean needs_save, do_shutdown = TRUE;
if (gnc_current_session_exist())
session = gnc_get_current_session(); {
needs_save = qof_book_session_not_saved(qof_session_get_book(session)) && session = gnc_get_current_session();
!gnc_file_save_in_progress(); needs_save =
do_shutdown = !needs_save || qof_book_session_not_saved(qof_session_get_book(session)) &&
(needs_save && !gnc_main_window_prompt_for_save(GTK_WIDGET(window))); !gnc_file_save_in_progress();
do_shutdown = !needs_save ||
(needs_save &&
!gnc_main_window_prompt_for_save(GTK_WIDGET(window)));
}
if (do_shutdown) if (do_shutdown)
{ {
g_timeout_add(250, gnc_main_window_timed_quit, NULL); g_timeout_add(250, gnc_main_window_timed_quit, NULL);
@ -3758,10 +3762,12 @@ gnc_quartz_should_quit (GtkosxApplication *theApp, GncMainWindow *window)
QofSession *session; QofSession *session;
gboolean needs_save; gboolean needs_save;
if (!gnc_main_window_all_finish_pending() || if (!gnc_current_session_exist() ||
gnc_file_save_in_progress()) !gnc_main_window_all_finish_pending() ||
gnc_file_save_in_progress())
{ {
return TRUE; return FALSE;
} }
session = gnc_get_current_session(); session = gnc_get_current_session();
needs_save = qof_book_session_not_saved(qof_session_get_book(session)) && needs_save = qof_book_session_not_saved(qof_session_get_book(session)) &&