From a78b442e4b673ac29d7dd29cfb2c9bca6f07130a Mon Sep 17 00:00:00 2001
From: auroux
Date: Sat, 3 Jun 2006 13:38:32 +0000
Subject: [PATCH] Public release 0.2.1.
---
ChangeLog | 9 +-
NEWS | 4 +-
README | 4 +-
configure.in | 11 +--
html-doc/manual.html | 16 +++-
src/TODO | 21 ++---
src/main.c | 57 +++++++++---
src/xo-callbacks.c | 166 ++++++++++++++++++++++++++--------
src/xo-callbacks.h | 4 +
src/xo-file.c | 90 +++++++++++++++++++
src/xo-file.h | 6 ++
src/xo-interface.c | 210 ++++++++++++++++++++++++++++++-------------
src/xo-misc.c | 18 +++-
src/xo-misc.h | 2 +-
src/xo-paint.c | 58 ++++++++++++
src/xo-paint.h | 3 +
src/xo-print.c | 12 ++-
src/xournal | Bin 362824 -> 0 bytes
src/xournal.h | 13 ++-
xournal.glade | 117 +++++++++++++++++++++---
20 files changed, 661 insertions(+), 160 deletions(-)
delete mode 100755 src/xournal
diff --git a/ChangeLog b/ChangeLog
index 7627fdd..644872b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,13 @@
-Version ?:
+Version 0.2.1 (Jun 3, 2006):
+ - recently used files listed in file menu
+ - can change color or thickness of pen strokes in selection
+ - function to apply paper style to all pages
- can specify on command line a PDF file to annotate
+ - suggest a derived file name for PDF annotation
+ - speed up switching between pages
- fixed a bug in XInput initialization (thanks to Luca de Cicco)
+ - fixed a bug in print ranges (thanks to Mathieu Bouchard)
+ - fixed a refresh bug in rescaling bitmap backgrounds
Version 0.2 (Jan 29, 2006):
- PDF file annotation using xpdf's pdftoppm
diff --git a/NEWS b/NEWS
index d94177b..c1e9555 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,7 @@
-Version 0.2 (Jan 29, 2006)
+Version 0.2.1 (June 3, 2006)
Installation: see INSTALL
User's manual: see html-doc/manual.html
Updates: see http://math.mit.edu/~auroux/software/xournal/
+
+See also: http://sourceforge.net/projects/xournal
diff --git a/README b/README
index d94177b..c1e9555 100644
--- a/README
+++ b/README
@@ -1,5 +1,7 @@
-Version 0.2 (Jan 29, 2006)
+Version 0.2.1 (June 3, 2006)
Installation: see INSTALL
User's manual: see html-doc/manual.html
Updates: see http://math.mit.edu/~auroux/software/xournal/
+
+See also: http://sourceforge.net/projects/xournal
diff --git a/configure.in b/configure.in
index 85c4e00..d7e52a9 100644
--- a/configure.in
+++ b/configure.in
@@ -10,20 +10,11 @@ AC_PROG_CC
AM_PROG_CC_STDC
AC_HEADER_STDC
-dnl set this var to NONE (PC) or other thing (Maemo)
-usehildon='NONE'
-if test "x$usehildon" != xNONE
-then
- pkg_modules="gtk+-2.0 >= 2.4.0 libgnomecanvas-2.0 >= 2.4.0 libgnomeprintui-2.2 >= 2.0.0 hildon-libs libosso"
-else
- pkg_modules="gtk+-2.0 >= 2.4.0 libgnomecanvas-2.0 >= 2.4.0 libgnomeprintui-2.2 >= 2.0.0"
-fi
+pkg_modules="gtk+-2.0 >= 2.4.0 libgnomecanvas-2.0 >= 2.4.0 libgnomeprintui-2.2 >= 2.0.0"
PKG_CHECK_MODULES(PACKAGE, [$pkg_modules])
AC_SUBST(PACKAGE_CFLAGS)
AC_SUBST(PACKAGE_LIBS)
-AM_CONDITIONAL(USE_HILDON, test "x$usehildon" != xNONE)
-
AC_OUTPUT([
Makefile
src/Makefile
diff --git a/html-doc/manual.html b/html-doc/manual.html
index a7bfcc4..e1036cb 100644
--- a/html-doc/manual.html
+++ b/html-doc/manual.html
@@ -24,7 +24,7 @@
Xournal User's Manual
- Version 0.2
+ Version 0.2.1
@@ -449,6 +449,20 @@ A core file may also be helpful.
Version history
+Version 0.2.1 (Jun 3, 2006):
+
+ - recently used files listed in file menu
+ - can change color or thickness of pen strokes in selection
+ - function to apply paper style to all pages
+ - can specify on command line a PDF file to annotate
+ - suggest a derived file name for PDF annotation
+ - speed up switching between pages
+ - fixed a bug in XInput initialization (thanks to Luca de Cicco)
+ - fixed a bug in print ranges (thanks to Mathieu Bouchard)
+ - fixed a refresh bug in rescaling bitmap backgrounds
+
+
+
Version 0.2 (January 29, 2006):
- PDF file annotation using xpdf's pdftoppm
diff --git a/src/TODO b/src/TODO
index fcb3fcb..8323a09 100644
--- a/src/TODO
+++ b/src/TODO
@@ -1,32 +1,27 @@
-- print range bugfix (SEE PATCH?)
-- non-attached annotation => suggest a derived filename for save-as
- when opening a PDF file from command-line, store full path in name
-- gtk_message_dialog_format_secondary_text in xo-print.c crashes 2.4 ?
-- lasso selection tool
-- prefs file, save prefs
-- recent files list
+List of features to be implemented (not in any particular order)
+----------------------------------------------------------------
+
- map tools to stylus buttons (maybe: btn click on toolbar item affects
the corresponding tool; tool switching cleaner than for eraser)
-- flatten (incl undo/redo...) - enabled only if nlayers>1
-- bg: apply to all pages (SEE PATCH?)
-- recolor selection / change pen stroke thickness
-- resize selection
- move selection to another page by drag-drop
(should apply to vertspacer when origin moves to another page,
but in the up direction only do so when all the stuff fits on prev page)
(SEE ALSO FEATURE REQUEST 1472482 and reply to it - optional behavior too?)
+- lasso selection tool
+- prefs file, save prefs
+- flatten (incl undo/redo...) - enabled only if nlayers>1
+- resize selection
- text tool, font chooser, default font
- color chooser (papercolor, pen color); maybe more default colors
- printing: print-to-PDF? (with & without pdf background to merge)
opacity issue for highlighter strokes (maybe print them below ?)
save gnome printer settings (throughout a session, and on disk)
(maybe a separate config file .xournal/gnome-print-settings)
-....
- file print-options, own print-to-ps/pdf
- help index
- pressure sensitivity
- insert images (screen capture or from file or from clipboard),
not as full-page backgrounds (new ITEM type)
- more pen/highlighter shapes (chisel)
-- convert to/from Jarnal format
+- convert to/from Jarnal format; to/from MS Journal format???
- recalibration upon screen resize / compensation for miscalibration
diff --git a/src/main.c b/src/main.c
index 52b889c..7a5e641 100644
--- a/src/main.c
+++ b/src/main.c
@@ -31,7 +31,6 @@ void hide_unimplemented(void)
gtk_widget_hide(GET_COMPONENT("filePrintOptions"));
gtk_widget_hide(GET_COMPONENT("journalFlatten"));
gtk_widget_hide(GET_COMPONENT("papercolorOther"));
- gtk_widget_hide(GET_COMPONENT("journalApplyAllPages"));
gtk_widget_hide(GET_COMPONENT("toolsText"));
gtk_widget_hide(GET_COMPONENT("buttonText"));
gtk_widget_hide(GET_COMPONENT("toolsSelectRegion"));
@@ -51,11 +50,18 @@ void init_stuff (int argc, char *argv[])
GdkScreen *screen;
int i;
struct Brush *b;
- gboolean can_xinput;
+ gboolean can_xinput, success;
+ gchar *tmppath, *tmpfn;
// we need an empty canvas prior to creating the journal structures
canvas = GNOME_CANVAS (gnome_canvas_new_aa ());
+ // initialize config file names
+ tmppath = g_build_filename(g_get_home_dir(), CONFIG_DIR, NULL);
+ g_mkdir(tmppath, 0700); // safer (MRU data may be confidential)
+ ui.mrufile = g_build_filename(tmppath, MRU_FILE, NULL);
+ g_free(tmppath);
+
// initialize data
// TODO: load this from a preferences file
@@ -84,15 +90,8 @@ void init_stuff (int argc, char *argv[])
undo = NULL; redo = NULL;
journal.pages = NULL;
bgpdf.status = STATUS_NOT_INIT;
-
- if (argc == 1) new_journal();
- else if (!open_journal(argv[1])) {
- new_journal();
- w = gtk_message_dialog_new(GTK_WINDOW (winMain), GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Error opening file '%s'", argv[1]);
- gtk_dialog_run(GTK_DIALOG(w));
- gtk_widget_destroy(w);
- }
+
+ new_journal();
ui.cur_item_type = ITEM_NONE;
ui.cur_item = NULL;
@@ -207,6 +206,37 @@ void init_stuff (int argc, char *argv[])
update_undo_redo_enabled();
update_copy_paste_enabled();
+
+ // show everything...
+
+ gtk_widget_show (winMain);
+ update_cursor();
+
+ // load the MRU
+
+ init_mru();
+
+ // and finally, open a file specified on the command line
+ // (moved here because display parameters weren't initialized yet...)
+
+ if (argc == 1) return;
+ set_cursor_busy(TRUE);
+ if (g_path_is_absolute(argv[1]))
+ tmpfn = g_strdup(argv[1]);
+ else {
+ tmppath = g_get_current_dir();
+ tmpfn = g_build_filename(tmppath, argv[1], NULL);
+ g_free(tmppath);
+ }
+ success = open_journal(tmpfn);
+ g_free(tmpfn);
+ set_cursor_busy(FALSE);
+ if (!success) {
+ w = gtk_message_dialog_new(GTK_WINDOW (winMain), GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Error opening file '%s'", argv[1]);
+ gtk_dialog_run(GTK_DIALOG(w));
+ gtk_widget_destroy(w);
+ }
}
@@ -238,13 +268,12 @@ main (int argc, char *argv[])
init_stuff (argc, argv);
- gtk_widget_show (winMain);
- update_cursor();
-
gtk_main ();
if (bgpdf.status != STATUS_NOT_INIT) shutdown_bgpdf();
if (bgpdf.status != STATUS_NOT_INIT) end_bgpdf_shutdown();
+
+ save_mru_list();
return 0;
}
diff --git a/src/xo-callbacks.c b/src/xo-callbacks.c
index 88b61ac..032a5c8 100644
--- a/src/xo-callbacks.c
+++ b/src/xo-callbacks.c
@@ -188,11 +188,18 @@ on_fileSaveAs_activate (GtkMenuItem *menuitem,
GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL);
if (ui.filename!=NULL) {
- if (ui.filename[0] == '/')
- gtk_file_chooser_set_filename(GTK_FILE_CHOOSER (dialog), ui.filename);
- else
- gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER (dialog), ui.filename);
- } else {
+ gtk_file_chooser_set_filename(GTK_FILE_CHOOSER (dialog), ui.filename);
+ gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER (dialog), g_basename(ui.filename));
+ }
+ else
+ if (bgpdf.status!=STATUS_NOT_INIT && bgpdf.file_domain == DOMAIN_ABSOLUTE
+ && bgpdf.filename != NULL) {
+ filename = g_strdup_printf("%s.xoj", bgpdf.filename->s);
+ gtk_file_chooser_set_filename(GTK_FILE_CHOOSER (dialog), filename);
+ gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER (dialog), g_basename(filename));
+ g_free(filename);
+ }
+ else {
curtime = time(NULL);
strftime(stime, 30, "%F-Note-%H-%M.xoj", localtime(&curtime));
gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER (dialog), stime);
@@ -329,6 +336,8 @@ on_filePrint_activate (GtkMenuItem *menuitem,
switch(gnome_print_dialog_get_range(GNOME_PRINT_DIALOG(printDialog))) {
case GNOME_PRINT_RANGE_RANGE:
gnome_print_dialog_get_range_page(GNOME_PRINT_DIALOG(printDialog), &fromPage, &toPage);
+ fromPage--;
+ toPage--;
break;
default:
fromPage = 0;
@@ -366,9 +375,8 @@ on_filePrintPDF_activate (GtkMenuItem *menuitem,
}
else
in_fn = g_strdup_printf("%s.pdf", ui.filename);
- if (in_fn[0] == '/')
- gtk_file_chooser_set_filename(GTK_FILE_CHOOSER (dialog), in_fn);
- gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER (dialog), in_fn);
+ gtk_file_chooser_set_filename(GTK_FILE_CHOOSER (dialog), in_fn);
+ gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER (dialog), g_basename(in_fn));
} else {
curtime = time(NULL);
strftime(stime, 30, "%F-Note-%H-%M.pdf", localtime(&curtime));
@@ -425,6 +433,7 @@ on_editUndo_activate (GtkMenuItem *menuitem,
GList *list, *itemlist;
struct UndoErasureData *erasure;
struct Item *it;
+ struct Brush tmp_brush;
struct Background *tmp_bg;
double tmp_x, tmp_y;
@@ -485,7 +494,7 @@ on_editUndo_activate (GtkMenuItem *menuitem,
make_page_clipbox(undo->page);
}
update_canvas_bg(undo->page);
- do_switch_page(g_list_index(journal.pages, undo->page), TRUE);
+ do_switch_page(g_list_index(journal.pages, undo->page), TRUE, TRUE);
}
else if (undo->type == ITEM_NEW_DEFAULT_BG) {
tmp_bg = ui.default_page.bg;
@@ -510,13 +519,13 @@ on_editUndo_activate (GtkMenuItem *menuitem,
// so do_switch_page() won't try to remap the layers of the defunct page
if (ui.pageno >= undo->val) ui.pageno--;
if (ui.pageno < 0) ui.pageno = 0;
- do_switch_page(ui.pageno, TRUE);
+ do_switch_page(ui.pageno, TRUE, TRUE);
}
else if (undo->type == ITEM_DELETE_PAGE) {
journal.pages = g_list_insert(journal.pages, undo->page, undo->val);
journal.npages++;
make_canvas_items(); // re-create the canvas items
- do_switch_page(undo->val, TRUE);
+ do_switch_page(undo->val, TRUE, TRUE);
}
else if (undo->type == ITEM_MOVESEL) {
for (itemlist = undo->itemlist; itemlist != NULL; itemlist = itemlist->next) {
@@ -541,7 +550,7 @@ on_editUndo_activate (GtkMenuItem *menuitem,
undo->layer->group = NULL;
undo->page->layers = g_list_remove(undo->page->layers, undo->layer);
undo->page->nlayers--;
- do_switch_page(ui.pageno, FALSE); // don't stay with bad cur_layer info
+ do_switch_page(ui.pageno, FALSE, FALSE); // don't stay with bad cur_layer info
}
else if (undo->type == ITEM_DELETE_LAYER) {
// special case of -1: deleted the last layer, created a new one
@@ -572,7 +581,20 @@ on_editUndo_activate (GtkMenuItem *menuitem,
"width-units", it->brush.thickness, NULL);
}
}
- do_switch_page(ui.pageno, FALSE); // show the restored layer & others...
+ do_switch_page(ui.pageno, FALSE, FALSE); // show the restored layer & others...
+ }
+ else if (undo->type == ITEM_REPAINTSEL) {
+ for (itemlist = undo->itemlist, list = undo->auxlist; itemlist!=NULL;
+ itemlist = itemlist->next, list = list->next) {
+ it = (struct Item *)itemlist->data;
+ g_memmove(&tmp_brush, &(it->brush), sizeof(struct Brush));
+ g_memmove(&(it->brush), list->data, sizeof(struct Brush));
+ g_memmove(list->data, &tmp_brush, sizeof(struct Brush));
+ if (it->type == ITEM_STROKE && it->canvas_item != NULL)
+ gnome_canvas_item_set(it->canvas_item,
+ "fill-color-rgba", it->brush.color_rgba,
+ "width-units", it->brush.thickness, NULL);
+ }
}
// move item from undo to redo stack
@@ -594,6 +616,7 @@ on_editRedo_activate (GtkMenuItem *menuitem,
GList *list, *itemlist, *target;
struct UndoErasureData *erasure;
struct Item *it;
+ struct Brush tmp_brush;
struct Background *tmp_bg;
struct Layer *l;
double tmp_x, tmp_y;
@@ -654,7 +677,7 @@ on_editRedo_activate (GtkMenuItem *menuitem,
make_page_clipbox(redo->page);
}
update_canvas_bg(redo->page);
- do_switch_page(g_list_index(journal.pages, redo->page), TRUE);
+ do_switch_page(g_list_index(journal.pages, redo->page), TRUE, TRUE);
}
else if (redo->type == ITEM_NEW_DEFAULT_BG) {
tmp_bg = ui.default_page.bg;
@@ -680,7 +703,7 @@ on_editRedo_activate (GtkMenuItem *menuitem,
journal.pages = g_list_insert(journal.pages, redo->page, redo->val);
journal.npages++;
- do_switch_page(redo->val, TRUE);
+ do_switch_page(redo->val, TRUE, TRUE);
}
else if (redo->type == ITEM_DELETE_PAGE) {
// unmap all the canvas items
@@ -698,7 +721,7 @@ on_editRedo_activate (GtkMenuItem *menuitem,
if (ui.pageno > undo->val || ui.pageno == journal.npages) ui.pageno--;
ui.cur_page = NULL;
// so do_switch_page() won't try to remap the layers of the defunct page
- do_switch_page(ui.pageno, TRUE);
+ do_switch_page(ui.pageno, TRUE, TRUE);
}
else if (redo->type == ITEM_MOVESEL) {
for (itemlist = redo->itemlist; itemlist != NULL; itemlist = itemlist->next) {
@@ -729,7 +752,7 @@ on_editRedo_activate (GtkMenuItem *menuitem,
redo->page->bg->canvas_item);
redo->page->layers = g_list_insert(redo->page->layers, redo->layer, redo->val);
redo->page->nlayers++;
- do_switch_page(ui.pageno, FALSE);
+ do_switch_page(ui.pageno, FALSE, FALSE);
}
else if (redo->type == ITEM_DELETE_LAYER) {
gtk_object_destroy(GTK_OBJECT(redo->layer->group));
@@ -744,7 +767,20 @@ on_editRedo_activate (GtkMenuItem *menuitem,
redo->page->layers = g_list_append(redo->page->layers, redo->layer2);
redo->page->nlayers++;
}
- do_switch_page(ui.pageno, FALSE);
+ do_switch_page(ui.pageno, FALSE, FALSE);
+ }
+ else if (redo->type == ITEM_REPAINTSEL) {
+ for (itemlist = redo->itemlist, list = redo->auxlist; itemlist!=NULL;
+ itemlist = itemlist->next, list = list->next) {
+ it = (struct Item *)itemlist->data;
+ g_memmove(&tmp_brush, &(it->brush), sizeof(struct Brush));
+ g_memmove(&(it->brush), list->data, sizeof(struct Brush));
+ g_memmove(list->data, &tmp_brush, sizeof(struct Brush));
+ if (it->type == ITEM_STROKE && it->canvas_item != NULL)
+ gnome_canvas_item_set(it->canvas_item,
+ "fill-color-rgba", it->brush.color_rgba,
+ "width-units", it->brush.thickness, NULL);
+ }
}
// move item from redo to undo stack
@@ -797,14 +833,16 @@ on_viewContinuous_activate (GtkMenuItem *menuitem,
{
GtkAdjustment *v_adj;
double yscroll;
+ struct Page *pg;
if (!gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM (menuitem))) return;
if (ui.view_continuous) return;
ui.view_continuous = TRUE;
v_adj = gtk_layout_get_vadjustment(GTK_LAYOUT(canvas));
- yscroll = gtk_adjustment_get_value(v_adj) - ui.cur_page->voffset*ui.zoom;
+ pg = ui.cur_page;
+ yscroll = gtk_adjustment_get_value(v_adj) - pg->voffset*ui.zoom;
update_page_stuff();
- gtk_adjustment_set_value(v_adj, yscroll + ui.cur_page->voffset*ui.zoom);
+ gtk_adjustment_set_value(v_adj, yscroll + pg->voffset*ui.zoom);
// force a refresh
gnome_canvas_set_pixels_per_unit(canvas, ui.zoom);
}
@@ -875,7 +913,7 @@ void
on_viewFirstPage_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
- do_switch_page(0, TRUE);
+ do_switch_page(0, TRUE, FALSE);
}
@@ -884,7 +922,7 @@ on_viewPreviousPage_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
if (ui.pageno == 0) return;
- do_switch_page(ui.pageno-1, TRUE);
+ do_switch_page(ui.pageno-1, TRUE, FALSE);
}
@@ -897,7 +935,7 @@ on_viewNextPage_activate (GtkMenuItem *menuitem,
on_journalNewPageEnd_activate(menuitem, user_data);
return;
}
- do_switch_page(ui.pageno+1, TRUE);
+ do_switch_page(ui.pageno+1, TRUE, FALSE);
}
@@ -905,7 +943,7 @@ void
on_viewLastPage_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
- do_switch_page(journal.npages-1, TRUE);
+ do_switch_page(journal.npages-1, TRUE, FALSE);
}
@@ -947,7 +985,7 @@ on_journalNewPageBefore_activate (GtkMenuItem *menuitem,
pg = new_page(ui.cur_page);
journal.pages = g_list_insert(journal.pages, pg, ui.pageno);
journal.npages++;
- do_switch_page(ui.pageno, TRUE);
+ do_switch_page(ui.pageno, TRUE, TRUE);
prepare_new_undo();
undo->type = ITEM_NEW_PAGE;
@@ -967,7 +1005,7 @@ on_journalNewPageAfter_activate (GtkMenuItem *menuitem,
pg = new_page(ui.cur_page);
journal.pages = g_list_insert(journal.pages, pg, ui.pageno+1);
journal.npages++;
- do_switch_page(ui.pageno+1, TRUE);
+ do_switch_page(ui.pageno+1, TRUE, TRUE);
prepare_new_undo();
undo->type = ITEM_NEW_PAGE;
@@ -987,7 +1025,7 @@ on_journalNewPageEnd_activate (GtkMenuItem *menuitem,
pg = new_page((struct Page *)g_list_last(journal.pages)->data);
journal.pages = g_list_append(journal.pages, pg);
journal.npages++;
- do_switch_page(journal.npages-1, TRUE);
+ do_switch_page(journal.npages-1, TRUE, TRUE);
prepare_new_undo();
undo->type = ITEM_NEW_PAGE;
@@ -1027,7 +1065,7 @@ on_journalDeletePage_activate (GtkMenuItem *menuitem,
if (ui.pageno == journal.npages) ui.pageno--;
ui.cur_page = NULL;
// so do_switch_page() won't try to remap the layers of the defunct page
- do_switch_page(ui.pageno, TRUE);
+ do_switch_page(ui.pageno, TRUE, TRUE);
}
@@ -1172,7 +1210,7 @@ on_journalPaperSize_activate (GtkMenuItem *menuitem,
make_page_clipbox(ui.cur_page);
update_canvas_bg(ui.cur_page);
- do_switch_page(ui.pageno, TRUE);
+ do_switch_page(ui.pageno, TRUE, TRUE);
}
@@ -1376,7 +1414,7 @@ on_journalLoadBackground_activate (GtkMenuItem *menuitem,
gnome_canvas_set_pixels_per_unit(canvas, ui.zoom);
rescale_bg_pixmaps();
}
- do_switch_page(ui.pageno, TRUE);
+ do_switch_page(ui.pageno, TRUE, TRUE);
}
void
@@ -1420,7 +1458,7 @@ on_journalScreenshot_activate (GtkMenuItem *menuitem,
gnome_canvas_set_pixels_per_unit(canvas, ui.zoom);
rescale_bg_pixmaps();
}
- do_switch_page(ui.pageno, TRUE);
+ do_switch_page(ui.pageno, TRUE, TRUE);
}
@@ -1428,7 +1466,31 @@ void
on_journalApplyAllPages_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
-
+ struct Page *page;
+ GList *pglist;
+
+ if (ui.cur_page->bg->type != BG_SOLID) return;
+ reset_selection();
+ for (pglist = journal.pages; pglist!=NULL; pglist = pglist->next) {
+ page = (struct Page *)pglist->data;
+ prepare_new_undo();
+ undo->type = ITEM_NEW_BG_RESIZE;
+ undo->page = page;
+ undo->bg = page->bg;
+ undo->val_x = page->width;
+ undo->val_y = page->height;
+ if (pglist->next!=NULL) undo->multiop |= MULTIOP_CONT_REDO;
+ if (pglist->prev!=NULL) undo->multiop |= MULTIOP_CONT_UNDO;
+ page->bg = (struct Background *)g_memdup(ui.cur_page->bg, sizeof(struct Background));
+ page->width = ui.cur_page->width;
+ page->height = ui.cur_page->height;
+ page->bg->canvas_item = undo->bg->canvas_item;
+ undo->bg->canvas_item = NULL;
+
+ make_page_clipbox(page);
+ update_canvas_bg(page);
+ }
+ do_switch_page(ui.pageno, TRUE, TRUE);
}
@@ -2008,7 +2070,7 @@ on_canvas_button_press_event (GtkWidget *widget,
ui.pageno++;
tmppage = g_list_nth_data(journal.pages, ui.pageno);
}
- if (page_change) do_switch_page(ui.pageno, FALSE);
+ if (page_change) do_switch_page(ui.pageno, FALSE, FALSE);
// can't paint on the background...
@@ -2114,7 +2176,7 @@ on_canvas_expose_event (GtkWidget *widget,
GdkEventExpose *event,
gpointer user_data)
{
-
+ if (ui.view_continuous && ui.progressive_bg) rescale_bg_pixmaps();
return FALSE;
}
@@ -2184,7 +2246,6 @@ on_canvas_motion_notify_event (GtkWidget *widget,
return FALSE;
}
-
void
on_comboLayer_changed (GtkComboBox *combobox,
gpointer user_data)
@@ -2261,7 +2322,7 @@ on_vscroll_changed (GtkAdjustment *adjustment,
ui.pageno--;
tmppage = g_list_nth_data(journal.pages, ui.pageno);
}
- if (need_update) do_switch_page(ui.pageno, FALSE);
+ if (need_update) do_switch_page(ui.pageno, FALSE, FALSE);
return;
}
@@ -2286,7 +2347,7 @@ on_spinPageNo_value_changed (GtkSpinButton *spinbutton,
if (val == ui.pageno) return;
if (val < 0) val = 0;
if (val > journal.npages-1) val = journal.npages-1;
- do_switch_page(val, TRUE);
+ do_switch_page(val, TRUE, FALSE);
}
@@ -2310,7 +2371,7 @@ on_journalDefaultBackground_activate (GtkMenuItem *menuitem,
make_page_clipbox(ui.cur_page);
update_canvas_bg(ui.cur_page);
- do_switch_page(ui.pageno, TRUE);
+ do_switch_page(ui.pageno, TRUE, TRUE);
}
@@ -2502,3 +2563,32 @@ on_optionsProgressiveBG_activate (GtkMenuItem *menuitem,
if (!ui.progressive_bg) rescale_bg_pixmaps();
}
+
+void
+on_mru_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+ int which;
+ gboolean success;
+ GtkWidget *dialog;
+
+ if (!ok_to_close()) return; // user aborted on save confirmation
+
+ for (which = 0 ; which < MRU_SIZE; which++) {
+ if (ui.mrumenu[which] == GTK_WIDGET(menuitem)) break;
+ }
+ if (which == MRU_SIZE || ui.mru[which] == NULL) return; // not found...
+
+ set_cursor_busy(TRUE);
+ success = open_journal(ui.mru[which]);
+ set_cursor_busy(FALSE);
+ if (success) return;
+
+ /* open failed */
+ dialog = gtk_message_dialog_new(GTK_WINDOW (winMain), GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Error opening file '%s'", ui.mru[which]);
+ gtk_dialog_run(GTK_DIALOG(dialog));
+ gtk_widget_destroy(dialog);
+ delete_mru_entry(which);
+}
+
diff --git a/src/xo-callbacks.h b/src/xo-callbacks.h
index a4799a8..622a25e 100644
--- a/src/xo-callbacks.h
+++ b/src/xo-callbacks.h
@@ -479,3 +479,7 @@ void
on_optionsProgressiveBG_activate (GtkMenuItem *menuitem,
gpointer user_data);
+
+void
+on_mru_activate (GtkMenuItem *menuitem,
+ gpointer user_data);
diff --git a/src/xo-file.c b/src/xo-file.c
index a052475..c180d61 100644
--- a/src/xo-file.c
+++ b/src/xo-file.c
@@ -1107,3 +1107,93 @@ void bgpdf_update_bg(int pageno, struct BgPdfPage *bgpg)
}
}
+// initialize the recent files list
+void init_mru(void)
+{
+ int i;
+ gsize lfptr;
+ char s[5];
+ GIOChannel *f;
+ gchar *str;
+ GIOStatus status;
+
+ g_strlcpy(s, "mru0", 5);
+ for (s[3]='0', i=0; i0) {
+ str[lfptr] = 0;
+ ui.mru[i] = str;
+ i++;
+ }
+ }
+ if (f) {
+ g_io_channel_shutdown(f, FALSE, NULL);
+ g_io_channel_unref(f);
+ }
+ update_mru_menu();
+}
+
+void update_mru_menu(void)
+{
+ int i;
+ gboolean anyone = FALSE;
+
+ for (i=0; i=1; j--) ui.mru[j] = ui.mru[j-1];
+ ui.mru[0] = g_strdup(name);
+ update_mru_menu();
+}
+
+void delete_mru_entry(int which)
+{
+ int i;
+
+ if (ui.mru[which]!=NULL) g_free(ui.mru[which]);
+ for (i=which+1;ivoffset*ui.zoom);
- gnome_canvas_set_pixels_per_unit(canvas, ui.zoom);
+ if (refresh_all)
+ gnome_canvas_set_pixels_per_unit(canvas, ui.zoom);
+ else if (!ui.view_continuous)
+ gnome_canvas_item_move(GNOME_CANVAS_ITEM(ui.cur_page->group), 0., 0.);
}
}
@@ -1047,6 +1052,8 @@ void update_page_stuff(void)
ui.cur_page->bg->type == BG_SOLID);
gtk_widget_set_sensitive(GET_COMPONENT("journalSetAsDefault"),
ui.cur_page->bg->type == BG_SOLID);
+ gtk_widget_set_sensitive(GET_COMPONENT("journalApplyAllPages"),
+ ui.cur_page->bg->type == BG_SOLID);
gtk_widget_set_sensitive(GET_COMPONENT("viewFirstPage"), ui.pageno!=0);
gtk_widget_set_sensitive(GET_COMPONENT("viewPreviousPage"), ui.pageno!=0);
@@ -1093,6 +1100,7 @@ void update_file_name(char *filename)
else p = g_utf8_next_char(p);
g_snprintf(tmp, 100, "Xournal - %s", p);
gtk_window_set_title(GTK_WINDOW (winMain), tmp);
+ new_mru_entry(filename);
}
void update_undo_redo_enabled(void)
@@ -1142,7 +1150,9 @@ void process_color_activate(GtkMenuItem *menuitem, int color)
if (ui.toolno == TOOL_PEN || ui.toolno == TOOL_HIGHLIGHTER)
set_cur_color(color);
- // later add selection tools
+ if ((ui.toolno == TOOL_SELECTREGION || ui.toolno == TOOL_SELECTRECT) &&
+ ui.selection != NULL)
+ recolor_selection(color);
update_color_buttons();
update_color_menu();
@@ -1160,6 +1170,8 @@ void process_thickness_activate(GtkMenuItem *menuitem, int tool, int val)
}
if (tool >= NUM_STROKE_TOOLS) {
+ if ((tool == TOOL_SELECTREGION || tool == TOOL_SELECTRECT) && ui.selection != NULL)
+ rethicken_selection(val);
update_thickness_buttons(); // undo illegal button selection
return;
}
diff --git a/src/xo-misc.h b/src/xo-misc.h
index 8662cd3..7fd40cb 100644
--- a/src/xo-misc.h
+++ b/src/xo-misc.h
@@ -47,7 +47,7 @@ void update_file_name(char *filename);
void update_undo_redo_enabled(void);
void update_copy_paste_enabled(void);
-void do_switch_page(int pg, gboolean rescroll);
+void do_switch_page(int pg, gboolean rescroll, gboolean refresh_all);
void set_cur_color(int color);
void process_color_activate(GtkMenuItem *menuitem, int color);
void process_thickness_activate(GtkMenuItem *menuitem, int tool, int val);
diff --git a/src/xo-paint.c b/src/xo-paint.c
index 348334d..2aed317 100644
--- a/src/xo-paint.c
+++ b/src/xo-paint.c
@@ -774,3 +774,61 @@ void clipboard_paste(void)
gtk_selection_data_free(sel_data);
update_copy_paste_enabled();
}
+
+// modify the color or thickness of pen strokes in a selection
+
+void recolor_selection(int color)
+{
+ GList *itemlist;
+ struct Item *item;
+ struct Brush *brush;
+
+ if (ui.selection == NULL) return;
+ prepare_new_undo();
+ undo->type = ITEM_REPAINTSEL;
+ undo->itemlist = NULL;
+ undo->auxlist = NULL;
+ for (itemlist = ui.selection->items; itemlist!=NULL; itemlist = itemlist->next) {
+ item = (struct Item *)itemlist->data;
+ if (item->type != ITEM_STROKE || item->brush.tool_type!=TOOL_PEN) continue;
+ // store info for undo
+ undo->itemlist = g_list_append(undo->itemlist, item);
+ brush = (struct Brush *)g_malloc(sizeof(struct Brush));
+ g_memmove(brush, &(item->brush), sizeof(struct Brush));
+ undo->auxlist = g_list_append(undo->auxlist, brush);
+ // repaint the stroke
+ item->brush.color_no = color;
+ item->brush.color_rgba = predef_colors_rgba[color];
+ if (item->canvas_item!=NULL)
+ gnome_canvas_item_set(item->canvas_item,
+ "fill-color-rgba", item->brush.color_rgba, NULL);
+ }
+}
+
+void rethicken_selection(int val)
+{
+ GList *itemlist;
+ struct Item *item;
+ struct Brush *brush;
+
+ if (ui.selection == NULL) return;
+ prepare_new_undo();
+ undo->type = ITEM_REPAINTSEL;
+ undo->itemlist = NULL;
+ undo->auxlist = NULL;
+ for (itemlist = ui.selection->items; itemlist!=NULL; itemlist = itemlist->next) {
+ item = (struct Item *)itemlist->data;
+ if (item->type != ITEM_STROKE || item->brush.tool_type!=TOOL_PEN) continue;
+ // store info for undo
+ undo->itemlist = g_list_append(undo->itemlist, item);
+ brush = (struct Brush *)g_malloc(sizeof(struct Brush));
+ g_memmove(brush, &(item->brush), sizeof(struct Brush));
+ undo->auxlist = g_list_append(undo->auxlist, brush);
+ // repaint the stroke
+ item->brush.thickness_no = val;
+ item->brush.thickness = predef_thickness[TOOL_PEN][val];
+ if (item->canvas_item!=NULL)
+ gnome_canvas_item_set(item->canvas_item,
+ "width-units", item->brush.thickness, NULL);
+ }
+}
diff --git a/src/xo-paint.h b/src/xo-paint.h
index 4df6f1b..4d3a43c 100644
--- a/src/xo-paint.h
+++ b/src/xo-paint.h
@@ -17,3 +17,6 @@ void finalize_movesel(void);
void selection_delete(void);
void selection_to_clip(void);
void clipboard_paste(void);
+
+void recolor_selection(int color);
+void rethicken_selection(int val);
diff --git a/src/xo-print.c b/src/xo-print.c
index 933868e..147fd2e 100644
--- a/src/xo-print.c
+++ b/src/xo-print.c
@@ -168,15 +168,21 @@ void print_job_render(GnomePrintJob *gpj, int fromPage, int toPage)
g_signal_connect(wait_dialog, "response", G_CALLBACK (cb_print_abort), &abort);
for (i = fromPage; i <= toPage; i++) {
- gtk_message_dialog_format_secondary_text(
- GTK_MESSAGE_DIALOG(wait_dialog), "Page %d", i+1);
+#if GTK_CHECK_VERSION(2,6,0)
+ if (!gtk_check_version(2, 6, 0))
+ gtk_message_dialog_format_secondary_text(
+ GTK_MESSAGE_DIALOG(wait_dialog), "Page %d", i+1);
+#endif
while (gtk_events_pending()) gtk_main_iteration();
print_page(gpc, (struct Page *)g_list_nth_data(journal.pages, i), i+1,
pgwidth, pgheight, &abort);
if (abort) break;
}
- gtk_message_dialog_format_secondary_text(
+#if GTK_CHECK_VERSION(2,6,0)
+ if (!gtk_check_version(2, 6, 0))
+ gtk_message_dialog_format_secondary_text(
GTK_MESSAGE_DIALOG(wait_dialog), "Finalizing...");
+#endif
while (gtk_events_pending()) gtk_main_iteration();
gnome_print_context_close(gpc);
diff --git a/src/xournal b/src/xournal
deleted file mode 100755
index f9ca5c4f4edd55fd9ac9bb7ccac5040c360b8d8c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 362824
zcmd44dwkqe{y+Xsnn_2621VE+D8d#gEkTi9(xwzcdP%R7G?z}=G&7P(n^I&Yr7I_vSGVb)aLhmzRv4C^PZ%Bm(Sz-$M4PQ>pahS
zo!7a%Ugvc#@5#(fIg=+OBqUhQlV}aFh;|?4@s0%DbAm^*Mq26CKr6#K#X8AKMhf#r
z)+Tuwx)5g|XA;5ygdq?zl{-SRZH6^UO83DvKVY?b=MKh
znZppiM|_*|eGKZ+cro&vXQsyUmCjQhCw~!e1;RlH)4_AT=2sz}f_R%Uwu3G}+H$1L
z1Dywa3@D!)kTwc*2yh$X=?DdgZvb5>9Oy6bnaY1B(oaEnK=a(B2kBi%fN5GUA$~H#
zmoA3;Tyb}FHe{a)-U`rN$T%PL-@wlyJgto55g&u}r+^26^0^pkM`-*Xh(Cp}1L-r6
z_AA6oG!N0}GY+x!QDj*^AoE8zgDdYbq@M*Dt)PtvcewJLXbSSjBWy;3AG91{8p3dd
z{~+xo&;*1a!V0bDZ%7}g0_GwuS<{)cLDNY-MS2Osxtb66V!e;}i3n#PehtFu2z=f~
zxCh~GI9>R9Te+Mnp_-$I|D$rLE4%76ppnElbrSdcZ
zpMo|dBCJB%aiE_e?P5^pIZw-c3HobIyb$^C0GGM=9R3NKHWqX)!r_|nYn3w;X=4!o
z0^u^{{T%TRH2+!9ZxCiGu2xDhc`ECEq$O$DLeMb6KaqDeLILt>5Neh8IK;~k_`C*s
zp@~{&AYO@bF9WYd{1JpJfX_x)syul}y9Z&a;!Nc6*@v`r&<8>1Xj&cOd{Ti2X#7;f
zix3}#@E7Erth`u$tQknV1b8P4;jw|2AoP7wk#-xxiQpZl`TqlYCGeY|BS61Kp$Nh_
z#E(Qc3h6%qPeuF>pz}fVLHT4N?<#~`q;dUuA7MT4O`x}cdXdh@13C#|Fv2dRpNljv
zXbtGspnpQ(a|6O-2vZa@EeY{UQSM;Sg`j+XMkqr3au=Uu;Gfl+b}jP%#6-{}kim@O
zDMfy|${{`k@prY%7GOW(uOqBOd@}MrAQPTJ2%~|!kT(M10fd89&gGy_0?z_H7h#~L
zOF{f|D8gQZ&otp*;N{~3-yw+SD`wii5bgyI65u%k@mCQ>s?1-34nVjXY1|VyPoCxz
zUx~awAp9BOa98@}$omh{h9K-gsM5mw5ii&H|6j>5|A!hT`?&vwtV{nFWe!y2;sYiA
zA4?<-o9GxYRUkAebFNa7Gc`WbmF7f?5P8J`pbK5`KfB^ibgdI{
z(GHEDr1TM2o)dl4iGXfInCQYsA^wr#YF9d=&m#O4;RymfKOkI&;3L5EM?{vaSPd(D-De@7K6P-q6Ug$a6mrxxg~S%aK1Cq1%;ysg`+5(*`RhoX_CG
z%3@_{+9+4v*{*o8EAB<1H3+s-81y)V?-8aW3`J-~_#cER2-#Y;9`OL;Uw~e(Y17vUDoxEC~xkbtx+5Wdm$hn14Ni|_)%K;-i|9buZri7!O_9Y*lUp<0B0cVQ2Yew%LrQ#b}KK*
zSDOD%&?jB#PV^ehKUyi%S899?=y|{+L7#UDC>`eFFF{&2@Cl%2g8ohOwt`O7_*mp^
z()dT9n-SU({)?~%fzK>MtlhxJYWyU`hiQDO@)0&8-r>T_G=2i;B!o{8j)xOppy@1g
zJL11V_!jYA(6d2bL%0s{W5IhT;vXV@5yB~m9}fCQgxLsuc7pB!Efoa21m(R6pN+^H
z0=iUrnRXY#eTpNl^beVdCk8uJsx2l;u8=SAbyUvZ7$+Dh!=wL`4Pbf9zNe8%#m39KSR>7Pd~-u<@`9@
zO0iA>PCCuwU9UJ3cwK$6mp+8~j=ngj4@bBP`B@8-y+><)8Ssv)lD+-`hJRZsGVpXE
zkpBz>KJ{o9@ovp;LY%lZ9p~z!JzjIhOR
+zl|{3+IRz&$6&
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
uzk)3+{Yv4x4QI|FFpeQgXsJvq`zx
zBt5ZTs*+jEB6AdOG0Qm*cqtyfz*?9CQ4c9dxxLh1h`F4E%k00hEvM-$>E1U7fD!#%
z5#0
zK8<#NT`r#^9Mt|Cr3)B6
zDqbHKBr{<{sb>ul&&aELr)gha(ufNm8&s2=r(Q!{^+-<(KKT_lZKW
z-0>e|S5y6XrhdmjuOaqj`9+Ggjmd8tQj5X@R-uJF@190Yn}yDrpNTN
zQ;6TCe$t1ujp|PTMj0@#Zcy8(fh{lSyHIU!?pl{u_m#F$L)&6IvjBY8Dd(G7d9^kE
zpyEpPxYOSqPak)tQpwfh+>vT&)|I#mcS;KzCG}p(5M@JKRjK|+wkbQ?FGCYO=If92
znBv;Y?H$fJvE%CT>N>DQe2biK%y=jUy}2Zo^Qjwb3z_@uPqby9{wu@j;T1sp?^^ec
zE(SUvUEXh4fr6%XAALc}&XlR+DVOTW$UNOs28BcYupV`7sNFU)Ke|-n8*L+lk?jLy
zwSC)SyW2*VM#WWaBhe>xKkN2sYZe1vRm`P!YddEsm)@jfyVI3>QX|V#=bV`uIWTq3
zU~M__UVY^_H+cp+3_*wNE-_hElydS&A9os*RcBUA|g{(N+(_sCyaNG6XGvbS-Ua
z?9f#8h}78rsp`xr&rFRSn5rHe!snVFDMyj2I|olo!C)dHZCi0#N3j}jmkBGD
z5*!0>#A5$jFtLKELDPO}5q&6a`DZqivTMVGBdZiMP*=U%r?|LQTQOvA(^fvT_42K9
z!SeFf%N-rqbls-(oXyqT1fo3^?zuX{Y;n=h<44|$LKYc0G<6QWV9Os??}0__g(w~o
z>7epY!@b$TWK7dF<7t7uN}aI3u^)3%r8&THcd!Tbf!7-4)27%~g!U`1Eq)vHfn1apIm;`FQA8xx0Uh`-clPuB^<+@-_c-flB-jxv$1ft6h>-!=-QeC~Xz$!{$$YO5(~8#SP<
zyi_krTg&^j)!1hyXN+^LpNd8ppQDUzylg*ohvM2DKzQdQLIxe}d$wo$9YwwlbWOxt
zDC1V&*SY1jI8UF`FO_Y4zdb%>XDk|i4T5iQr}eYm-621eCDoE%N|#YB={fYHv
zi92@|FP~2h&U+dTA+v~b^<`q&C
zI2UGnM2fCPHWn|LbIJEfd6Qde0@@2Lj?>Sh>w9~6>0`wY6(}j>d%cvTr);WU+uvJt
zwz3o{s^|8r*z^1spW!Y^pUU|oZdLmZ(DN(u0kMli{>rz>)wQ1JPKvlP7!Vqs!v1
zuU@Y0$M-eWwH_q};~ghexB~H{*KI1>@e$vz{3Y=yn}_2gp?fcviMdyB866$ll$dd6
zL1AJ5f2QZnuiVNd*H_!D2UQX-z039=FH84S(0b
z{o2shq+^THHEdH*1&zi|+QIoTIo;oh*wkG;F5fhaqF-7xy^I@~;%sf1=>DwCzqWsB
z%6(Q-p}7J^30X&5!u;!4tm_UY+_D=bx8cK@^q61SJaK+ytFCXe`PBglIdh-+Y;v2=
z^%UvKX3bq6oww|n?Wo#3-T5&)As4|Av`nleB
z65GZWwT;c^lbUb0@twxmJmHH1m)O3uVodT|%!i
zQ&i@d9d-9rxeI9c(o^mu^Mq)xt;F?m_}uVI+Z!9TfQkg~xZG-x(-MxODWD}}@V>~6
zr{Q;FA2f-haIK!+r^1Hk|DsoG?9;LP>Kn`ONXPxKytHTLzE%_d&JAT8qaphor-)>s
zR`)y&+CcXywvcI{U1_$2Fk`lqsmDHtFiLJMFKj#ikiwDmT&DQvy0_Dn3wa7q%0H9_341Gx-DH+TMiXn|2Y~)-zHu&N|=G7F)381$zFK>q7**fNQ_dK1|Rp
zKC}p&_BLh~+TLn;Vf&6~Og+Nyz2!VL*Rkj;C&dlAuoUmneL(v~)w008v2s0ek^XjR
zYJ!IEIz@Pd{F-KbcVXRY;nlv@Ln1lWd2@~>PsO?4t!1nFH+Dxyl{;p-@Ji{7?p&kn
zqt)#%eqirJ_T(!9S(X9U!84HV6TN2N=1yMQ*Sjstw|@ZF1snpjk1KE=!KGMpY=1tI
zj0+V%_MATQ@YezTS_wG{`u<5yO^Qs(NA&AyHbo?F{~umL^I{Hl4wrl9DR7od%i&3yd!5
zt8yo(cTo+AlKLO(io=Joyxn2gQqX{)i0MBfTwB@J3PKJeS+l|XiJ7`ke0X$tvBdpJt*t)z{&ssY_`uK+
z;mEaZmT76+&UcmNes;x7)=2)BOr>LI71Sfv;;TYZ(ammpgp@mo{6)sFE_5{)K12z;xN
z;DU>-?siCM$9lCWRH^g5uB`oKVm~`>JD+`gww$oamJ^n1Vc-mUrX6)9i3Ru`+bgDQ
zsc@fONC!yAmJ8j}#1xDQT^$7N%QCBonlXi%di;PI(2NH&z{Sb0TI)%h*mE9)>UZ=}
z)6K+WxU7|jw#wyNccr=9(0chQpSV^jJ#a5B*HeCkQj@p_v89ouq4ilSasRXg(OXB2
z3*7>=rB`mhKVsBRoOjgqV@O%(zQW{W`jix3vcWBO)mEk_^s~=5jcuX?SU3x(Am~_DEA+Lmj+v}r=69T|f@3j&mLA5^
zQ!ZnhVP5fV+5{VTzUEn_Cv4{On$(2N$~}WLx{LMG@SxcCeXDd>`c%$zypcY;DD}d?
zS6T8I*f{Lj+OZY?PYLnWiJ62b(fZ@+2n9`&=g25d*&diTUsv)1rA
zCB?VuTV(E+@&;|vqHqdyxm#l;uyHr=0zsB+FT@V+SjfAh@M@gx-&X7E+zrSi={xGy
zxnqO;-@*IH8HMg(YfrTu2#f=RpIjaqX9hPmKle}N4Ycm%vDUj~zNwDdc(+G3i)~ym
z774lQO)@@i-dj{{If3sRVJAts&jNP?EZvV0L^7tQG^guYwJ0g
zU%6vq6*+{9PFGc%0#}Fi1G`xwsSRDj=9J92*>#TMFspBp|
zD}KR>xsdaF6h%i{56a%oL4R`e(CrUZCtj5^l(6e(x96V)@pAw)bE=oSDV?m(9Bg9O
zkQ)#6CHjS2xjtKzYDyaf*=jiW)rt4yKc^(x`N!=uNup5oB^B-;_?jtI*NaN#zH^k#
zEGDeay&}QpGSX9uuvx*};oa&E2=m9yQmonCNWMrtk8zHMPTc(s=StaCGOLgg4${Xi
zY^zA@j8yIERo%Wa%#*M?g0ZCVVG)n5X}j{n9^bVjk}TJaEmQCYYC+@m5*`zmm}Z2
zamR>4qWLX?HkBL-PuGZispMdOq7i@ecdwmi8jKR^FO>?CcLmh#)iPu!)Iv}tyFlXZZcvGwJiGSD4KRZ)
z49E|I?2eanB)1~IP9hkVdybSP5(137!!RnF61@1jJ;@~@no2GTWG?9{Lqi}SkhnV(
z@C<>oO@AYBUm)<+t^`I00s=vQbj}c{5rG~?U}+%mPE{8xbPogs5_fk%z})~;D!DA+
zJi?P`s)~crU&a(uF{VJ`?gDV+mj2n@h|l0f7m0f>C8Xr?KonwL*X))#M0^xhM3c_(frIL*S=f^zl<*RpsBWD*#+#L^&
z_Ja6lca{Zr5dW8wVVoInU7+{%uHuh{-c+hVAaU11a3KC~ggOCYspR^A`mb|y#aGC>
zq9DFN;_lZ<3Hw?8*~klttuQ5#@Z`2$?8R15+?^!MC`Olx*&=0v!KGCUy}-U5K+6zDw#^}UpMlOcsFPatu38Q>WL&x*j^Mqq0oa9vjd
zzYGKf5_c!$5_nMrCK-Wkfxz&t1Zn~Sf$)7E;vpl!Ya-Cw2)IDtvx!|)I4lql2;YB%
z0RFO7sC}_VD!C(|t^svw#+v3Yt=7%$SSgUWy8=|#LcFDtJ9(j~^8TV?w;WiZt0?Ze
z!<4S;K)!iJyLFM}^W6e#QMk}qspwc~&)2AV!GW%{sQm~Kyv#~Y>?DuKy72(3HdN03
zaY(t}39o4?t34j;cmq)vyqGppd_vZU+9Om5JM8QimG>b}HFzkEeS@S6b;nOCYRwK#R|8;+}eT
zr(;^G=3lCsf19K0jtWWG4@%i2W>SrW5(m&%+BFvLFGPZSIxg;o0f!~`y>WU59D&5$
zz2NxZ(6jYVL~t+}An_l`@H7CaWKp2Es4Kmv&{-$~iMz9nULdgV{ScUA1WEz{n$NvW
zdmRL1T7ksffq-WuC>4PbMxZnhII61z!-E6@Vb3W>!+>8A>QC{WRI+zK{rlNnjL|Ki
z3MB4+2CDS~1_-$yhDs&-1myccmQVOLNbqhgnO1@eg#HpC=*odgCCdWNRRPDRCabaA
z0**lVUONnZ-Rs$n!Zi_nn7F@gUeqs8>fcrLm>Lc2E|9o;15HizGlhI9YNe9>1M>Fo
z=87(OR~W<)NZc`{FTNE*ooajs1k~jLHAjP&Xe*?(K;mv1e9<5;@jW4b0NGS>U_hP;
zvK-c%Oz>_2$P!v0j3;n?_+Bp5cd1u;#sPI`K+WM>8Bhfhckfv+z;~9AuQ9$u1M+_+
zN+$X;A&@%c#vu5YDOcj2~(OY(w%do8%x=0h~xT>(`farbqP`fs8B+E6bFsO4Qzrvy}i
z#NEFL47hgZ1EcOjLrnzKg085?1XO`g|Dd{i&yu8<1)NuS+Dp>+&-Y3Sg!|&a@d--L
zZm~}k2a3DK6RG5kKEWg92c`93JgfdmqFr+C483-v)mtqrK-yP{qiPzA#GdGTy?
z-t-Gle`Kh$1L{FtQNI~b1;YKipt^^?ElIBnIBh)bCFy76T}djCxVyzdQW2+T_j{i#
zmOcXa5BQz3^Ylsn(?pTx70M8s!B)PC7qks0~4gny#pI0aYN}FDk*WvX*Zi
zFT}<>u!`Nc1FVYT?pHj~#~B10x>=uFo40@x>)#wjp@cou^7<{jhLlR(=5e{=imEsVIm44ia(UP&;v4Q?uOH+SWBpHcMX_=w{$YWVm(n+%7k6&b=a&
zCGU&4{aYyz-TpzWvMT^?Dsm5v>0-(CK*~{6PX8g|X5h=LOpfw15)_ua#<=Zp7aF&v
z5x0iG?K#j{gBs$_O^@=11i9=>BSDQsz0I`))!Rr;idaw*i36m5$|-wA{BekQ7MVeG8KA
zx2F9HUSxw=#qPQQt0MN7@`TNv;Ic=8d7vq=ni31Fb0`$YZ<8IE-QYD=Q>ojxlMEu|
zWDlvOa`tCi@L@FrXDd5pQtN&468swB*RfI*-D=fGvXP(0vrQQnp05#{ENsD0MeY}8
z<|=Ir9|ckjRUUV-h@pYsX=P$K$1{9h4C^+z?;5vt5jV^4aJ$5~ZHAkQT>q}zVu72=
z>Hk_ppq_yrpW#;QxotFVo84A3-1>-H9&pm_Q-aghSXZjZJu$kAZf`(Gx~ZJ;U&PJ8
zpR_XRwwQ#CF}({myQ_@b#)#YPz?r{vYN^e1vjcg-#@+rAc|E%GGvr74PS~w-!N;g@
zW?ldg$-+(&n+qNnND3tG{zOz+=g;OQzb(C!n*;KTqkN0#`{{yr4o+$j1%m$)-!#C#
z7T@=+zM2E-f`IBfVaE6O0aYMzcLsbxT_My*4Yf6(R(3^Idnc{}iMxDI-M>ak(yamK
zD_wC;4>$seyG>Zd4`=o4KA-~N-X!irjQh4g=?&;+(|`&75nWAHu|VSPzn}!_YeN0Z
z>d^(%gTBG(eIB@-9=M%i+#2DgBKOG|UAUD7
zZYqzv`z>Nn&%k%X!>hN2G>ugYmWo@W`-9mp9~3j|Cg7yodLopSV2q_Amx5ciPieZ{
z52Soq<#9I@Zu$a&2mgtcDPhcjn>zq(rfdKd>C?K>njB~eg!a#ZK>brayPlR!5(k*T
z>)aQzL$ZhxtBj+Az=xT@G}|jxxt(C#Ho9YsTWQ2?
zbl^4|Zm`mO*Kt}G#rgzRDv!H|Ed;3v1Lu1jq2AvmJ-8deX1)kOY4K=RTAL6^MiL17
zbD`x&M|yVk_zEfGTS)5;!`qoW3Y0E|(q8`YUr>^N2qf-$L&>IZMhf{sDV8h?$OAxD
z;P~_`c=zofhCt~56F6>+*`^;avPr{W`vzDQF@M1m^|#x1FJ4hSB?nMq)%S0uNEH7E
z1ereKHEdPtmX63Zt4O)$0G26K&VBh7-I&$De`jU#m)ppH@T*Y`t`tQ##dr?nr}4Z#
z@Vr_)V+&xYB6n(6hUW%`Dv!H&Ex=)D;F>S;@q3hK_=Pq23*5g*s7xzG+)4tsLgRJ^
z+*IT?4DX`eyU>w(Dv!I_5jO*W!OEoGavQNEE;I+d!`*1yhDO|e1Dx!6H_@Mp-32!l
zx%0Ymn;p2Roc2HBX5i;%xQ&7vxv9H-`ROiqh;bVMish!kf!hG%wh-A>*
z+aE~zp338HA<=2M$-v(?9@1?yiN*a0>{PNGKq<1gE3Kyuo*6Eq6*pSSO?q}$QrFb}
zL^IDq_kHuLGbypE*Z5LYuO<4~HII2zOAw$cVYi9S{t
z_qqQvZsQ|v4*(}__Y&Bt*iyKu$X(Et+nm5n<*Zjk+zkAC8E#`ew>QkKm%84@Ego?j
z7Pt*EZVbRys>uC&Xcygz12>h^U$rR1k_P@EJbVzfkjbdGEyit`dr&4zo*Qv{Q7tgK
ztyPYTEr*+mTtioGi;bc$kGqp2ZU(NStDf5rJ-2s^+j2L;xYb15rUY)4#%%@MROAlr
z%I)O9P34T&EXvT$zz@rC`zoP2E&fo=x=)eN^H&+TU8c8hDXYML8y`+`#Q
z7lIR3dhebX+(ofB0Fz=WXZ#znGVmv@Oo}b0MZz6_1}pcR)mQ`YB7aFIlID&Lfuum#
z{{cyNqgi4eFS72aVpkJjRTOs*@`O9eJ#fb&Q)mGt<{ICiP#lj#A+{{>8nsmF{(f?<
zS|a7T1-dF{zRIE;3mW(~l<^7b1==n6nRl!dMR(U}B7O%yjpyTPiQ)MOSs)dg3quvT
ztGY70&4~JP{6Au7;4?D}C&7@0-aE)#_jTiT7bLBr*Z5N0M#GIN(R;Tqtg<~!)2$z1
zYUNeV{12gFt-OI3TA8ZseX@p2og{S@0w}sq^0XJNW)q0HOrtg3XsMOgvrAI}m}jxC
zjyY!c`zSEe{90{3M1Mi3vmJ`pSVyJqT-apWc@z0cfaPT>kGmcg%~XehS6Z1w9*)TH
zdr%I&QWV{O#&an@jpx?`&tr_|bsff2rEcq>E<8Vnns}<5d~Hz%PXmA3%EYsYLOyJ)KDt9F5>yQnq>6+Sh2|bp}0MM
zBB7Jn^ko{pE;>w=s66fxaGP`<+zk8)%BHb@FzyzS^r*PkRdJ;jRO^8k`HLZ$-Bx53
zR}Y$uCJ^=yNP%grXm1tr1F}SNV?aJW$m55Af_Gz#CtU_ZzKc+CYriR+O#$a)p7vsR
za9}79=8uqXT8*Mu&+a*@0?~Jh`+nxzn**hXx>8z?o)TRk%>P3P)ICCd*=n>opw0kw
zYGyl;X+0lQ*;XLj_2N+v_#LRX8)|Dn9Rg}L3mNJ}P(@83akq_7fa}phtufTC0rj(Q
zYKvb(4T%_AKC}dD=_KrQk?O
zfiQmxj-Qp(vpWw5MDWw@M(|?%n%!4{(#WoqrUps^VgDQ8pk6LZUu1r~GobDRYSvsf
zwRkM3l1m_rS3q@T7FZwgLelvaMHRbG$lboZjvBT&*8TH@~KPy%(bP_Hr6Lf#AY
zAy6fypX4?n)}Q9hB@p}{R2MVBivrFpp0a*qICp>}I|(H2z6y?yK0Uj!WFNR+CGKf{
zr;;Us(l@$NIxA2TNZhp|EU5KDjT>rdK>hdEb1iN@q4A}35eWS?P+bwZgGn!5$UfdD
zRP6pvDLiWW%R
z#U<#Aggf*1kkp|LD{*%Mru$SLQlAAU1$G-^NWdaXK>fkDLl&pOBkMWFV=~C{9KkUE
zOH8;^`NPazkZZqAI0AED4LAacyH$Xrl5Kb0(O;+o1M15>WqV=9ZaV_0It0S}M+iab
z{zxP~cG<}g#HG-3N;e_|X42M(8Y<&X*-1QK^gcH*FSF5x*0$l)Xl
zHq7=n4nqTn{kwAbTHqiMzE4aHsouN}dgu1>9A3I7t3!oxD0A0Zk{kh)Rmifhb*YdI
zq+V5sVB+pPsJr`d8YaqkArGD12}fY==K)6`tj~Z$h1e$Q^8jW?SU^3Er@bm<^7c$qkJK+e-T^w)(!u$u|
zn9DXd4lrfT4X6ipRpx}Cj6mYBOBjdq1BbJ^a=0XL5D57X2hZxDcWw*-
zaM0e#h{NrHgKbUR$2eRNIOqe3d+AURI0z)}?(D=t@7y+WG#s=`GU71EIFz|bj9XI4
zi-58!{|VIhs`3XwR+S5e`6H;i26OWSFI44Kop1!^W(FLA#9aY6RJrXT9tJQ|O9A!B
zuF4DrRTUzTxO)LkS##-~JIpKdJB%MGa}fqmh1h1_H;xsD8G*y&Jnf~>>!>V+1VaBG
z4g&BAMep2705F&K9Y-9x8;9PVz-~1nwsFlAiXIUi}2b=;W{(HEu9qpDbOfGYz-UEkpQ5ugoqSQU<0qPL41l6OJS+Qeq;Kh
zrm&T@Q6`1upR_?hxalau>@WPXzWkWQK|+Ii;u$H?^q8!sw?7+cI;C%}rXu2g46bSV
zit;*>!+JR+z~%VzMC0Mh89#&=_aSUJg8)EN2@z>}J<2PD@23_y5({NZb8qy?Z2&Am
ze1u~wB?*T8Pf&NSn4$}LAqy-4C)+Fu%r#mtFb`}v6TykR;c7G2BHm|h^fQA_6p>*V
zpP?T%8j!WokDiHaG%RrPX--63l}SgM`#p&SZ?KmK0k@Yod=ofvR5|;JA=l^^hOw3y8lBXeH-JwB-oM>h18}|VmCb}yE
z-9stLdbZxWlcDPyTkUGTxWcVJRI;rKvi+E%tj<dV6GrYBoM|wfJc%1q*dU0
z-e(>A4GW4ye=Z;7z5uWKkFsW2u^K*BW!DEzK6QzR`xUt6*#9O)5XttkDpZlL0edwQ
zIA4E{_v%uARaWSc8Z
zD5^bc9}#iWz%~0kc9bPWdwB$KiU99B_UcrF(+FhFAzi}b2rFd1)Kpo9_h#&4$ai<8
z_a6R$eI#>apTU^S+sBZe141z;?HO;8vu)gCWxu0L_BjYvc1^0rPVPdp)@Fndo*x3-
zAitX$MuyT~qnn&A&onD%lGjB4z?_Rrtw%T7%IFfDr3OR0Ywfko55fEnfZZRcH|`1m
zT=Kl#)iz(yosc*JiMs{Dd5bFIK7fGpdvLO;LtswxL-J37FrEb`s{XlBIJu4Y+0?Pn
zpc7N9`lsQ&RR8>J^pPcG^-C{Q|4Q&e~qo}eWT2aVf&lOwjy$5
ziL0>+OJtoa@iU+agoja{{vTRkiB(xk{OC`SC59agyG)`G5t}cvK=?fw2us+@gMiCg
z!d`tdBWZ0(7fT#ug&sNXmf&uCVeiC~u!JOxEO8pv^Oi9BF9V^vm9CsOAfsDau(Cf=
zCTl1@Q^^rIX(3_u+0n@w8ZTjuTJwvsXo5BF%v$4nk44rvfhx^fLqyy-aLpR`l5env
zz3dUH-lqk7Rc6vEEnHmO#Tq@V&?B?{74m8h_TL!eVGT(bS>r@3=&fP&8-b8Dq-)$g
zdvvgdmEETiBGxE^Ff-#h)|hPe+1be&R|AbTn#?zbp$XP_HEWHEm60|2Qmt8Qh=}_Z
zxMq!?l3|n=_44DOu-C_49csDpmKQZ4p0gbW7y;*C-Rz%h)
zM$4=4M`YT
z;}Fd2tzi)N1rpMg^A>b-EmEv(9%Zt|PAZy(i5zR3j^SBu?qrS0Kx2)i<{N#{7;8M5
zwZ^HBM%Ktf%d9m-#2p2$S)-1Ggf;ACOHkNb!(Qz=S_;b=BZ|6Mqs0n6a@_r}Q=A$0
zDgdyCB#f+4fO)+&4B{7ogmmS;A=0^7!^(b4nXK_QDw>rPAfhZf(7a_&Cu@uc8f!db
z)+k0}tnpIT8pr=Jvc`uflC_42xDs&98kdleu!g;SF(~YqV)&?Cp)$WB?uux|wbYe>S#8gC)Aw}wGn7Dz}}_S=xs%^Fq~r%cvZ
zMMbkhmt&26%v%aOS>qU>vBoQAjd#!lYkZisM#saEH8!9~)*2$>-o+=)8mEzvu!g-{
z92EA}uvbs3J7RewpJ#O^a(Z5itbjU=2waS>q*y_SP_nsey!a<-Rpi
zx>>`@Mo}hfJV*euhdsv{yUjkl&WVps~glv&I`}f;GO#TH}M?N7i@};#q5mh-=0t
z%^D|?km#7%%iDp=4nyqKa)VPA-L+4bVaV-P=#k^@I1u*2z6t=WAqgXEtU+jR4Wl0q
zB&2KHO(dn;pu@@rQzmOH#O#j`t~JGY#Wvj}}Js
zc=hOBwlaF;uaQA*&|$Ct#A`7>8erY*#=hjzeZ`qrvVx0wl6P$Sgcp9#NO7+;>@1z_K
z2v_1(1Q*GXWJZo8T+Pijl(#~X%g~wW_*%9501RjygjUqYP|3apqiK@p6!j@t!V}A{
zL&fjhzMw!g$=#fX@rp2Ii{|G@hO%FgWzI3@C<~TZE8t8Ofxv!Y4;(H1u^-7S^C@{v
zOdql8>Bl>pnYsxA+4?a8_j&^RKtXqnvm3|=tTF!{rfM*3)rCNs0-D-PNloExXV>~VyDt>=VowMsq~;urRP>{7&
zL+qB-w{TLXRF^cm*E*H<%a(3Z>7P24uD>9IyIG~b>{MEt$dtCK^x96P^RlJ7ZqQBX
zRC-6YRCfuwGdh(n%9iS)K=+kSrOQ-0&T4SCN_%uFz3kFV=^mB7gIE3^_TD`{%HsMT
zUqXT_1`{hNR?uw(MdcbnK|w+wfQk?j2zO#a0#7hElU)eb3qqo-D~d>!dgs#C3*HbF
zm1?+@5XFi}ThPQJrFB-KMnsB=?)UvZ^UUrJ+E4p={eIuq>-$I1lYO3Z<~?WT%*>fH
z^W0+AIKDhu=EUQWHdxZ0bEDE^N}sf(H8E)_r6EgNACq>Zw9JwoiAg(CI?j>~ygsV8
z8>Rg$X?9H7lhV^IX=_;&+n>^}6XNUZk6{N>`WH*OEG8XI>8qCXcubm2=|h&(UmDdr
zozj~vX=_Y+9i{n}v@%xaB1(r@(v0$G&JLyLS<<44sI-#OBujc-WmM{?^piI6)~LTB
zDy^Zk(USJOJ1SjB>C={U2eG=>Eu(a)CEXj7uAsESlB$?=C8gsn>9LsfVM;Htq~5Bi
z-p48JWJx>6q-!btCxZ1@Z|@P4K0)a|OWHRk-9+i@mNX+Kt*7)6OPU>%Zlm;8OL|>Q
zx`WaJOIk^(_Q1O+9d1e2&WlR-Qrg{;X4FKbO_ZKwNu4{R(u0(SBR|Ahqh}~8Rg}JM
zNk=nh*Q-$aj3sT2Nsm){k0o8UAd2;T59tk-wC{~kX(FY$mULiDnoQ{cOPUdrrc!#Q
zCEXR1cBJ&1AL8p<^vkH;o|JxQN&PWtUrK*(No!-${**puNmswMqba?>lJ1E~$548*B|R9EW>b3T`*>>{iAg6=`i><{yeVp{$&@~4
zNjt`*(6nIsq;!=fZHh_PQo7iZrrsR2M7MeX9uP4TGAac=^jd7u%w-DiDLIsdY>hA
zV$vo`1D14SOv*=o)FewUO)agY
z^kYjZQLdKyDcx#GC63k78cKg-NhN;Peexzs@35qCb7(E4C6+X94qZa&HI_7P4!w)g
zUY0a&4qZlRiY1L3DJv-b@}Ke6h?`*_r}TYG8aKnPrSv6B8aKl}LFogQw8uh>1#PPh
zlrFHO;#IVCBc;