Merge maint. The gnc_gui_refresh_all statement in gnc_book_options_dialog_apply_cb causes the 'apply' and 'OK' buttons to be set to sensitive on the open Book Options dialog in some circumstances; this commit causes them to be reset to insensitive, as they should be.

This commit is contained in:
Alex Aycinena 2016-06-05 13:21:30 -07:00
commit 079257a074
9 changed files with 41 additions and 14 deletions

6
README
View File

@ -323,8 +323,7 @@ Getting Source with Git
We maintain a mirror of our master repository on Github. You can
browse the code at https://github.com/Gnucash/gnucash. Clone URIs are
on that page, or if you have a Github account you can fork it
there. Note, however, that we do *not* accept Github pull requests:
All patches should be submitted via Bugzilla, see below.
there.
##################
Developing GnuCash
@ -355,5 +354,8 @@ Submitting a Patch:
patches to either of the mailing lists, as they tend to be
forgotten.
Alternatively, you can also submit your patches in the form of a git
pull request.
Thank you.

View File

@ -263,7 +263,6 @@ gnc_book_option_num_field_source_change_cb (gboolean num_action)
}
gnc_book_option_num_field_source_change (num_action);
gnc_resume_gui_refresh ();
gnc_gui_refresh_all ();
}
/** Calls gnc_book_option_book_currency_selected to initiate registered

View File

@ -9,7 +9,7 @@ SET(GNC_BUILDDIR ${CMAKE_BINARY_DIR})
CONFIGURE_FILE(gnucash-make-guids.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-make-guids)
GNC_CONFIGURE(gnucash-env.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-env)
GNC_CONFIGURE(guile.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/guile)
GNC_CONFIGURE(guile.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/guile) #not installed
GNC_CONFIGURE(gnucash-build-env.in ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/gnucash-build-env) # not installed
SET(SCRIPT_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR})
@ -28,6 +28,5 @@ INSTALL(
PROGRAMS
${SCRIPT_OUTPUT_DIR}/gnucash-env
${SCRIPT_OUTPUT_DIR}/gnucash-make-guids
${SCRIPT_OUTPUT_DIR}/guile
DESTINATION libexec/gnucash/overrides
)
)

View File

@ -2,8 +2,7 @@ gncoverridesdir = ${GNC_LIBEXECDIR}/overrides
# When you add a file here, please modify ../test/Makefile.am's overrides.stamp
gncoverrides_SCRIPTS = \
gnucash-env \
gnucash-make-guids \
guile
gnucash-make-guids
EXTRA_DIST = \
gnucash-env.in \
@ -11,7 +10,7 @@ EXTRA_DIST = \
gnucash-make-guids \
guile.in
noinst_DATA = gnucash-build-env
noinst_DATA = gnucash-build-env guile
PWD := $(shell pwd)

View File

@ -1,5 +1,5 @@
#!/bin/sh
exec gnucash-env @GUILE@ -s "$0" "$@"
exec gnucash-env guile -s "$0" "$@"
!#
(define (usage)

View File

@ -168,6 +168,14 @@ gnc_options_dialog_changed (GNCOptionWin *win)
gnc_options_dialog_changed_internal (win->dialog, TRUE);
}
void
gnc_options_dialog_not_changed (GNCOptionWin *win)
{
if (!win) return;
gnc_options_dialog_changed_internal (win->dialog, FALSE);
}
void
gnc_option_changed_widget_cb(GtkWidget *widget, GNCOption *option)
{

View File

@ -46,6 +46,7 @@ GtkWidget * gnc_options_page_list(GNCOptionWin * win);
GtkWidget * gnc_options_dialog_notebook(GNCOptionWin * win);
void gnc_options_dialog_changed (GNCOptionWin *win);
void gnc_options_dialog_not_changed (GNCOptionWin *win);
void gnc_option_changed_widget_cb(GtkWidget *widget, GNCOption *option);
void gnc_option_changed_option_cb(GtkWidget *dummy, GNCOption *option);

View File

@ -3923,7 +3923,7 @@ gnc_main_window_cmd_page_setup (GtkAction *action,
gnc_ui_page_setup(gtk_window);
}
void
gboolean
gnc_book_options_dialog_apply_helper(GNCOptionDB * options)
{
QofBook *book = gnc_get_current_book ();
@ -3933,8 +3933,9 @@ gnc_book_options_dialog_apply_helper(GNCOptionDB * options)
gnc_book_use_book_currency (book);
gboolean use_split_action_for_num_after;
gboolean use_book_currency_after;
gboolean return_val = FALSE;
if (!options) return;
if (!options) return return_val;
gnc_option_db_commit (options);
qof_book_begin_edit (book);
@ -3943,11 +3944,18 @@ gnc_book_options_dialog_apply_helper(GNCOptionDB * options)
qof_book_use_split_action_for_num_field (book);
use_book_currency_after = gnc_book_use_book_currency (book);
if (use_split_action_for_num_before != use_split_action_for_num_after)
{
gnc_book_option_num_field_source_change_cb (
use_split_action_for_num_after);
return_val = TRUE;
}
if (use_book_currency_before != use_book_currency_after)
{
gnc_book_option_book_currency_selected_cb (use_book_currency_after);
return_val = TRUE;
}
qof_book_commit_edit (book);
return return_val;
}
static void
@ -3955,8 +3963,18 @@ gnc_book_options_dialog_apply_cb(GNCOptionWin * optionwin,
gpointer user_data)
{
GNCOptionDB * options = user_data;
if (!options) return;
gnc_book_options_dialog_apply_helper (options);
if (gnc_book_options_dialog_apply_helper (options));
{
gnc_gui_refresh_all ();
if (!optionwin) return;
/* the previous stmt causes the 'apply' and 'OK' buttons to be set to
sensitive on the open Book Options dialog; the next stmt resets them
to insensitive, as they should be */
gnc_options_dialog_not_changed (optionwin);
}
}
static void

View File

@ -431,8 +431,9 @@ GtkWidget *gnc_book_options_dialog_cb (gboolean modal, gchar *title);
*
* @param GNCOptionDB * options.
*
* @return TRUE if gnc_gui_refresh_all should be called; otherwise FALSE.
**/
void gnc_book_options_dialog_apply_helper(GNCOptionDB * options);
gboolean gnc_book_options_dialog_apply_helper(GNCOptionDB * options);
#endif /* __GNC_MAIN_WINDOW_H */