From e38fd5b5e5fc219cf2634382badf56c8327ccf13 Mon Sep 17 00:00:00 2001 From: Geert Janssens Date: Mon, 28 Nov 2016 10:33:56 +0100 Subject: [PATCH 1/6] Fix report html header We lost a required escaped quote in commit 4a60e4906 'Fix type in HTML header.' --- src/report/report-system/html-document.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/report/report-system/html-document.scm b/src/report/report-system/html-document.scm index cb05a1a394..0afb6a39ba 100644 --- a/src/report/report-system/html-document.scm +++ b/src/report/report-system/html-document.scm @@ -159,7 +159,7 @@ ;;./share/gnucash/scm/gnucash/report/balsheet-eg.eguile.scm: ;; Validate against HTML4 Transitional: - (push "") + (push "") (push "\n") (push "\n") (if css? From c5198be90cf7c1a4141f7463a67218201e7cd429 Mon Sep 17 00:00:00 2001 From: Geert Janssens Date: Wed, 30 Nov 2016 16:30:53 +0100 Subject: [PATCH 2/6] Fix compiler warning about misleading indentation --- src/gnome/gnc-split-reg.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/gnome/gnc-split-reg.c b/src/gnome/gnc-split-reg.c index a3362139d7..a96f4e1fe0 100644 --- a/src/gnome/gnc-split-reg.c +++ b/src/gnome/gnc-split-reg.c @@ -1042,24 +1042,24 @@ gsr_default_associate_handler_file( GNCSplitReg *gsr, gpointer data ) if (is_trans_readonly_and_warn(trans)) return; - dialog = gtk_file_chooser_dialog_new ("Associate File with Transaction", + dialog = gtk_file_chooser_dialog_new ("Associate File with Transaction", GTK_WINDOW(gsr->window), GTK_FILE_CHOOSER_ACTION_OPEN, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT, NULL); - gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER(dialog), 0); - if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) - { - char *uri; + gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER(dialog), 0); + if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) + { + char *uri; - uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (dialog)); + uri = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (dialog)); DEBUG("File URI: %s\n", uri); - xaccTransSetAssociation(trans, uri); + xaccTransSetAssociation(trans, uri); } - gtk_widget_destroy (dialog); + gtk_widget_destroy (dialog); } From 27f529e76a1787d15eec3c17f5d00820fc9e6977 Mon Sep 17 00:00:00 2001 From: Robert Fewell <14uBobIT@gmail.com> Date: Sat, 19 Nov 2016 12:55:02 +0000 Subject: [PATCH 3/6] Bug 516920 Scheduled trasaction calendar popup off screen If calendar is close to the right screen edge, the pop up can go of screen. Added test for pop up going off screen. --- src/gnome-utils/gnc-dense-cal.c | 34 ++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/src/gnome-utils/gnc-dense-cal.c b/src/gnome-utils/gnc-dense-cal.c index 4224535612..92d6882b01 100644 --- a/src/gnome-utils/gnc-dense-cal.c +++ b/src/gnome-utils/gnc-dense-cal.c @@ -1177,6 +1177,8 @@ static gint gnc_dense_cal_button_press(GtkWidget *widget, GdkEventButton *evt) { + GdkScreen *screen = gdk_screen_get_default (); + GtkAllocation alloc; gint doc; GncDenseCal *dcal = GNC_DENSE_CAL(widget); @@ -1191,15 +1193,21 @@ gnc_dense_cal_button_press(GtkWidget *widget, // second move after show_all'ing the window should do the // trick with a bit of flicker. gtk_window_move(GTK_WINDOW(dcal->transPopup), evt->x_root + 5, evt->y_root + 5); + + gtk_widget_get_allocation(GTK_WIDGET(dcal->transPopup), &alloc); + populate_hover_window(dcal, doc); gtk_widget_queue_resize(GTK_WIDGET(dcal->transPopup)); gtk_widget_show_all(GTK_WIDGET(dcal->transPopup)); - gtk_window_move(GTK_WINDOW(dcal->transPopup), evt->x_root + 5, evt->y_root + 5); + + if ((evt->x_root + 5 + alloc.width > gdk_screen_get_width(screen))|| + (evt->y_root + 5 + alloc.height > gdk_screen_get_height(screen))) + gtk_window_move(GTK_WINDOW(dcal->transPopup), evt->x_root - 2 - alloc.width, evt->y_root - 2 - alloc.height); + else + gtk_window_move(GTK_WINDOW(dcal->transPopup), evt->x_root + 5, evt->y_root + 5); } else - { gtk_widget_hide(GTK_WIDGET(dcal->transPopup)); - } return FALSE; } @@ -1207,35 +1215,39 @@ static gint gnc_dense_cal_motion_notify(GtkWidget *widget, GdkEventMotion *event) { + GdkScreen *screen = gdk_screen_get_default (); GncDenseCal *dcal; + GtkAllocation alloc; gint doc; int unused; - int x_root_offset, y_root_offset; GdkModifierType unused2; dcal = GNC_DENSE_CAL(widget); if (!dcal->showPopup) return FALSE; - x_root_offset = event->x_root; - y_root_offset = event->y_root; - /* As per http://www.gtk.org/tutorial/sec-eventhandling.html */ if (event->is_hint) gdk_window_get_pointer(event->window, &unused, &unused, &unused2); - gdk_window_move(gtk_widget_get_window (GTK_WIDGET(dcal->transPopup)), - x_root_offset + 5, y_root_offset + 5); + doc = wheres_this(dcal, event->x, event->y); if (doc >= 0) { populate_hover_window(dcal, doc); gtk_widget_queue_resize(GTK_WIDGET(dcal->transPopup)); + + gtk_widget_get_allocation(GTK_WIDGET(dcal->transPopup), &alloc); + gtk_widget_show_all(GTK_WIDGET(dcal->transPopup)); + + if ((event->x_root + 5 + alloc.width > gdk_screen_get_width(screen))|| + (event->y_root + 5 + alloc.height > gdk_screen_get_height(screen))) + gtk_window_move(GTK_WINDOW(dcal->transPopup), event->x_root - 2 - alloc.width, event->y_root - 2 - alloc.height); + else + gtk_window_move(GTK_WINDOW(dcal->transPopup), event->x_root + 5, event->y_root + 5); } else - { gtk_widget_hide(GTK_WIDGET(dcal->transPopup)); - } return TRUE; } From 755c42a087bcee3eff4ad0b144a4f0e95385a311 Mon Sep 17 00:00:00 2001 From: John Ralls Date: Sat, 3 Dec 2016 17:50:38 -0800 Subject: [PATCH 4/6] Prevent crash when there's an error loading a qif import file. --- src/import-export/qif-imp/assistant-qif-import.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/import-export/qif-imp/assistant-qif-import.c b/src/import-export/qif-imp/assistant-qif-import.c index 438975702f..941d7467fe 100644 --- a/src/import-export/qif-imp/assistant-qif-import.c +++ b/src/import-export/qif-imp/assistant-qif-import.c @@ -1698,7 +1698,7 @@ gnc_ui_qif_import_load_progress_start_cb(GtkButton * button, SCM parse_results = scm_c_eval_string("qif-file:parse-fields-results"); SCM scm_qiffile; SCM imported_files = SCM_EOL; - SCM load_return, parse_return; + SCM load_return = SCM_BOOL_F, parse_return = SCM_BOOL_F; SCM progress; /* Raise the busy flag so the assistant can't be canceled unexpectedly. */ @@ -1804,11 +1804,15 @@ gnc_ui_qif_import_load_progress_start_cb(GtkButton * button, */ /* This step will fill the remainder of the bar. */ - gnc_progress_dialog_push(wind->load_progress, 1); - parse_return = scm_call_2(qif_file_parse, SCM_CAR(imported_files), progress); - gnc_progress_dialog_pop(wind->load_progress); - wind->ask_date_format = FALSE; - wind->date_format = NULL; + if (!wind->load_stop) + { + gnc_progress_dialog_push(wind->load_progress, 1); + parse_return = scm_call_2(qif_file_parse, SCM_CAR(imported_files), + progress); + gnc_progress_dialog_pop(wind->load_progress); + wind->ask_date_format = FALSE; + wind->date_format = NULL; + } if (parse_return == SCM_BOOL_T) { /* Canceled by the user. */ From f382695345743dd0e9cbd71c5b72f17fcf6cd69b Mon Sep 17 00:00:00 2001 From: John Ralls Date: Sun, 4 Dec 2016 12:35:42 -0800 Subject: [PATCH 5/6] Bug 775567 - Importing QIF file from PayPal crashes GnuCash 2.6.14 on Windows XP service pack 3 Guile-1.8 doesn't know about BOM so check for one and strip it if it's there. --- src/import-export/qif-imp/qif-file.scm | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/import-export/qif-imp/qif-file.scm b/src/import-export/qif-imp/qif-file.scm index e03fc9ab2e..e428068c50 100644 --- a/src/import-export/qif-imp/qif-file.scm +++ b/src/import-export/qif-imp/qif-file.scm @@ -96,6 +96,25 @@ (string-append str "\n" (_ "Read aborted."))) (set! abort-read #t))) + (define (strip-bom) + (let ((c1 (read-char))) + (if (char=? c1 (integer->char #xEF)) + (let ((c2 (read-char))) + (if (char=? c2 (integer->char #xBB)) + (let ((c3 (read-char))) + (if (char=? c3 (integer->char #xBF)) #t + (begin + (unread-char c3) + (unread-char c2) + (unread-char c1) + #f))) + (begin + (unread-char c2) + (unread-char c1) + #f))) + (begin + (unread-char c1) + #f)))) (qif-file:set-path! self path) (if (not (access? path R_OK)) @@ -112,6 +131,7 @@ (with-input-from-file path (lambda () + (strip-bom) ;; loop over lines (let line-loop () (set! line (read-delimited delimiters)) From 57e7ba869db504989b694451bdf066cbaeddd21e Mon Sep 17 00:00:00 2001 From: Ryan Tucker Date: Tue, 6 Dec 2016 15:27:28 -0800 Subject: [PATCH 6/6] fix missing chmod +x in configure.ac --- configure.ac | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 76dd37162a..dd26ee8144 100644 --- a/configure.ac +++ b/configure.ac @@ -1647,7 +1647,7 @@ AC_CONFIG_FILES([src/gnc-module/test/test-scm-multi], AC_CONFIG_FILES([src/gnome-utils/test/test-load-module], [chmod +x src/gnome-utils/test/test-load-module]) AC_CONFIG_FILES([src/report/locale-specific/us/test/test-load-module], - [src/report/locale-specific/us/test/test-load-module]) + [chmod +x src/report/locale-specific/us/test/test-load-module]) AC_CONFIG_FILES([src/report/report-gnome/test/test-load-module], [chmod +x src/report/report-gnome/test/test-load-module]) AC_CONFIG_FILES([src/report/report-system/test/test-load-module],