[gnumeric] Fix printing of repeated rows and columns. [#607451]
- From: Andreas J. Guelzow <guelzow src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnumeric] Fix printing of repeated rows and columns. [#607451]
- Date: Tue, 19 Jan 2010 18:27:23 +0000 (UTC)
commit 1e866de1f035289c61a40e712261d22ff9c0f527
Author: Andreas J. Guelzow <aguelzow pyrshep ca>
Date: Tue Jan 19 11:26:57 2010 -0700
Fix printing of repeated rows and columns. [#607451]
2010-01-19 Andreas J. Guelzow <aguelzow pyrshep ca>
* src/print.c (load_repeat_range): range_parse does not
handle full rows or columns.
(compute_sheet_pages): don't use the same range for two
different purposes.
ChangeLog | 7 +++++++
NEWS | 1 +
src/print.c | 31 +++++++++++++++++++++++--------
3 files changed, 31 insertions(+), 8 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index aa6a60d..042e361 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2010-01-19 Andreas J. Guelzow <aguelzow pyrshep ca>
+
+ * src/print.c (load_repeat_range): range_parse does not
+ handle full rows or columns.
+ (compute_sheet_pages): don't use the same range for two
+ different purposes.
+
2010-01-12 Jody Goldberg <jody gnome org>
* src/test-pango.c (cb_kill_wbcg) : new.
diff --git a/NEWS b/NEWS
index 99a6ee1..c979323 100644
--- a/NEWS
+++ b/NEWS
@@ -33,6 +33,7 @@ Andreas:
* Fix sheet handling in validation setup. [#606458]
* Allow some of the text export properties to be saved as default.
[#559749]
+ * Fix printing of repeated rows and columns. [#607451]
Jean
* Fix import export of line type in scatter plots. [#605043]
diff --git a/src/print.c b/src/print.c
index ca4e301..736c333 100644
--- a/src/print.c
+++ b/src/print.c
@@ -886,7 +886,22 @@ compute_sheet_pages_across_then_down (PrintingInstance * pi,
static gboolean
load_repeat_range (char const *str, GnmRange *r, Sheet *sheet)
{
- return str && range_parse (r, str, gnm_sheet_get_size (sheet));
+ GnmParsePos pp;
+ GnmRangeRef res;
+
+ if (str == NULL || *str == '\0')
+ return FALSE;
+
+ if (str != rangeref_parse (&res, str,
+ parse_pos_init_sheet (&pp, sheet),
+ gnm_conventions_default)) {
+ Sheet *start_sheet = sheet, *end_sheet = sheet;
+ gnm_rangeref_normalize_pp (&res, &pp,
+ &start_sheet, &end_sheet,
+ r);
+ return TRUE;
+ } else
+ return FALSE;
}
/*
@@ -929,13 +944,13 @@ compute_sheet_pages (GtkPrintContext *context,
if (selection_range == NULL)
return TRUE;
if (spi->ignore_printarea) {
- r = *selection_range;
+ print_area = *selection_range;
} else {
if (!range_intersection (&r, selection_range, &print_area))
return FALSE;
+ print_area = r;
}
- } else
- r = print_area;
+ };
page_width = gtk_print_context_get_width (context);
page_height = gtk_print_context_get_height (context);
@@ -971,7 +986,7 @@ compute_sheet_pages (GtkPrintContext *context,
/* whether we print first down or across! */
gdouble pxy;
- pxy = compute_scale_fit_to (sheet, r.start.row, r.end.row,
+ pxy = compute_scale_fit_to (sheet, print_area.start.row, print_area.end.row,
page_height, sheet_row_get_info,
sheet_row_get_distance_pts,
pinfo->scaling.dim.rows, 1.,
@@ -979,7 +994,7 @@ compute_sheet_pages (GtkPrintContext *context,
repeat_top_use,
repeat_top_start, repeat_top_end,
pi->ignore_pb ? NULL : pinfo->page_breaks.v);
- pxy = compute_scale_fit_to (sheet, r.start.col, r.end.col,
+ pxy = compute_scale_fit_to (sheet, print_area.start.col, print_area.end.col,
page_width, sheet_col_get_info,
sheet_col_get_distance_pts,
pinfo->scaling.dim.cols, pxy,
@@ -1003,12 +1018,12 @@ compute_sheet_pages (GtkPrintContext *context,
usable_x = page_width / px;
usable_y = page_height / py;
- paginate (&column_pagination, sheet, r.start.col, r.end.col,
+ paginate (&column_pagination, sheet, print_area.start.col, print_area.end.col,
usable_x - row_header_width,
repeat_left_use, repeat_left_start, repeat_left_end,
sheet_col_get_distance_pts, sheet_col_get_info,
pi->ignore_pb ? NULL : pinfo->page_breaks.h, !pi->ignore_pb);
- paginate (&row_pagination, sheet, r.start.row, r.end.row,
+ paginate (&row_pagination, sheet, print_area.start.row, print_area.end.row,
usable_y - col_header_height,
repeat_top_use, repeat_top_start, repeat_top_end,
sheet_row_get_distance_pts, sheet_row_get_info,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]