1.19.13 (unstable): 2011-10-17 Murray Cumming Print Layout: Print Standard: Avoid page break spaces in the middle of pages. * glom/print_layout/canvas_print_layout.[h|cc]: fill_with_data(): Add an avoid_page_margins parameter, so we can choose to always move items past the margins on to the next page while setting their data. * glom/print_layout/print_layout_utils.[h|cc]: create_standard(): Add an avoid_page_margins parameter, so we can choose to do this later instead when setting the data, to avoid big gaps that are later moved down into the middle of the page. do_print_layout(): Add an avoid_page_margins parameter here too, passing it to fill_with_data(). * glom/mode_data/box_data_details.cc: print_layout(): Do not avoid page margins when creating, because that will happen when expanding items. Avoid the page margins when setting the details. * glom/mode_design/print_layouts/window_print_layout_edit.cc: on_menu_insert_create_standard(): Avoid page margins when creating. However, those gaps could be left in the middle of the page when printing, because some items may be expanded. We need a way to squash that space later when it is unecessary. 2011-10-15 Jasper Lievisse Adriaanse Remove glibc-specific function call. * tests/python/test_python_module.cc: Fix build on OpenBSD (and other non-glibc systems) by wrapping calls to __libc_freeres() in correct #ifdefs. Bug #660496 2011-10-14 Murray Cumming Fix DTD to fix make check. * glom/glom_document.dtd: Mention several attributes that were added in the last year or so. The new examples/test/ uses them. 2011-10-14 Murray Cumming Tests: Fix cast error when using dlerror(). * tests/python/test_load_python_library.cc: Noticed on OpenBSD in bug #660495 (Jasper Lievisse Adriaanse). I don't know why this worked on Linux. 2011-10-14 Murray Cumming Examples: Remove other uses of pygtk. * examples/example_lesson_planner.glom: Remove an old button script from the XML though it was not used anymore in the UI. * examples/example_project_manager.glom: Contacts: Remove the Test button. It is in the small business example already instead. 2011-10-14 Murray Cumming Small Business Example: Port pygtk code to PyGObject+Introspection. * examples/example_smallbusiness.glom: This fixes this crash, which apparently happens when trying to use pygtk when pygobject-3 is already loaded: Warning: specified class size for type `PyGtkGenericCellRenderer' is smaller than the parenttype's `GtkCellRenderer' class size Bug #661766 (André Klapper) 2011-10-14 Murray Cumming List: Actually show custom choices, instead of crashing. * glom/mode_data/datawidget/cellcreation.cc: create_cell(): Call set_choices_fixed() if appropriate. * glom/mode_data/datawidget/cellrenderer_dblist.cc: on_editing_started(): Replace a g_assert with a warning to std::cerr, in case this happens again, particularly now that we know when it can happen - if there is no text-column set. Bug #661764 (André Klapper) 2011-10-14 Murray Cumming Print Layout: Avoid grouping items at the tops of pages. * glom/print_layout/print_layout_utils.[h|cc]: move_fully_to_page(): Change this to needs_move_fully_to_page(), so we can decide later how much to move the items. * glom/print_layout/canvas_print_layout.[h|cc]: move_items_below_item(): Rename to move_items_down(), not taking an item, and ignoring the x dimension, moving everything down. Remember the highest item that needs moving down more, because it is in a page margin, then move everything below it down by the same offset. Keep doing that until no items are in margins, gradually adding pages. This is a simple form of pagination, and not a particularly efficient one. 2011-10-14 Murray Cumming Print Layout: Another expansion fixes. * glom/print_layout/print_layout_utils.[h|cc]: move_fully_to_page(): Move generic CanvasItemMovables instead of just CanvasLayoutItems. * glom/print_layout/canvas_print_layout.cc: move_items_below_item(): Likewise. 2011-10-14 Murray Cumming Print Layout: Increase page count correctly when expanding portals. * glom/print_layout/canvas_print_layout.cc: move_items_below_item(): Correct an off-by-one error in the calculation of the number of pages needed. 2011-10-14 Murray Cumming Print Layout: Create standard: Use the multiline text formatting. * glom/print_layout/print_layout_utils.cc: create_standard(): Make text fields multiline if they are multiline on the details layout. 2011-10-14 Murray Cumming Print Layout: Small improvement. * glom/print_layout/canvas_print_layout.cc: move_items_below_item(): Check that we don't move the item itself. 2011-10-13 Murray Cumming Print Layout: Code improvement. * glom/print_layout/print_layout_utils.[h|cc]: Remove the hacky get_units() function. 2011-10-13 Murray Cumming Print Layout: Create Standard: Move items to the next page when necessary. * glom/libglom/data_structure/layout/layoutitem.[h|cc]: Add set_print_layout_position_y() for convenience. * glom/print_layout/print_layout_utils.cc: create_standard(): Use move_fully_to_page(). 2011-10-13 Murray Cumming Print Layout: Moved some code around. * glom/print_layout/canvas_print_layout.[h|cc]: Moved get_page_for_y() and move_fully_to_page() to: * glom/print_layout/print_layout_utils.[h|cc]: 2011-10-13 Murray Cumming PrintLayout: Standard: Do not move to next page unnecessarily. * glom/print_layout/canvas_print_layout.cc: get_page_for_y(): Correct this calculation. 2011-10-13 Murray Cumming About dialog: Show the version number. * glom/application.cc: Use set_version(). 2011-10-13 Murray Cumming Deleting tables: Remove all auto-increment rows. * glom/navigation/box_tables.cc: Remove the autoincrement rows for all autoincrement fields. 2011-10-13 Murray Cumming Deleting tables: Remove the auto-increment too. * glom/libglom/db_utils.[h|cc]: Added remove_auto_increment(). * glom/navigation/box_tables.cc: on_adddel_Delete(): Remove the primary key's autoincrement too. Bug #661653 2011-10-13 Murray Cumming DbUtils: Add some parameter checks to the autoincrement methods. * glom/libglom/db_utils.cc: Otherwise we risk having an empty where clause, and doing unwanted things to the entire table. 2011-10-13 Murray Cumming DbUtils: Avoid some repeated code. * glom/libglom/db_utils.cc: Add a utility function for adding the where clause for the auto-increments table. 2011-10-13 Murray Cumming Use Glib::ustring::compose() instead of concatenation for translatable strings. * glom/bakery/dialog_offersave.cc: * glom/import_csv/dialog_import_csv.cc: * glom/mode_design/fields/dialog_fieldcalculation.cc: * glom/mode_design/layout/combobox_relationship.cc: * glom/mode_design/layout/dialog_layout_details.cc: * glom/mode_design/layout/layout_item_dialogs/dialog_buttonscript.cc: * glom/navigation/box_tables.cc: * glom/utils_ui.cc: Let translators arrange built strings. 2011-10-13 Ben Konrath Add example document to test field formatting. * examples/tests/example_field_formatting_test.glom: New file. 2011-10-13 Murray Cumming Print/Standard: Do print, not preview. * glom/mode_data/box_data_details.cc: This is now the same as when printing a non-standard print layout. 2011-10-13 Murray Cumming Replace Gtk::Table with Gtk::Grid in the source code. * glom/mode_design/fields/dialog_fielddefinition.h: Use the table (from the .glade file) via Gtk::Widget*. * ui/developer/window_print_layout_edit.glade: Replace the GtkTable with a GtkGrid. * glom/mode_design/print_layouts/window_print_layout_edit.cc: Adapt. There are still GtkTables in the other .glade files, but this at least lets us build with gtkmm 3.3/3.4 even with --enable-warnings=fatal. 2011-10-12 Murray Cumming Print Layout: Avoid some code duplication. * glom/print_layout/print_layout_utils.[h|cc]: moved get_page_height() from CanvasPrintLayout to here. And actually get the margins. * glom/print_layout/canvas_print_layout.cc: get_page_y_start_and_end(): Use it here. get_page_height(): Forward to the PrintLayoutUtils versions, passing the extra parameters. 2011-10-12 Murray Cumming Print Layout: Move items to next page when expanding portals. * glom/print_layout/canvas_print_layout.[h|cc]: move_items_below_item(): Use a new move_fully_to_page() method to make sure that items are never in the margins if that is possible, when expanding related records portals for real data. Also add extra pages when necessary. 2011-10-12 Murray Cumming Print Layout: Related Records: Move others down when expanding. * glom/print_layout/canvas_layout_item.[h|cc]: Added move_items_below_item(). * glom/print_layout/canvas_print_layout.[h|cc]: fill_with_data_portal(): move other items lower when changing the size of the portal's table. 2011-10-12 Murray Cumming Print Layout: Related Records: Expand according to min/max rows count. * glom/print_layout/canvas_layout_item.[h|cc]: Moved get_canvas_table_cell_child() here from CanvasPrintLayout. create_canvas_item_for_layout_item(): Move the table-child creation code into add_portal_rows_if_necessary(). * glom/print_layout/canvas_print_layout.[h|cc]: fill_with_data_portal(): Add rows, up to the maximum, according to the number of database rows. * glom/print_layout/print_layout_utils.cc: create_standard(): Set a simple default height for one row, but set a min of 1 and a max of 100 so it will expand later. 2011-10-11 Murray Cumming Update the example files for the portal rows count change. * examples/example_film_manager.glom: * examples/example_music_collection.glom: * examples/example_project_manager.glom: * examples/example_smallbusiness.glom: Adapt to new document structure. 2011-10-11 Murray Cumming Related Records Portals: Change rows count to min and max counts. * glom/glom_document.dtd: Adapted. * glom/libglom/data_structure/layout/layoutitem_portal.[h|cc]: set_rows_count(): Return a min and max, and change it from double to gulong. * glom/libglom/document/document.cc: load_after(), save_before(): Store it in the document. The old XML attribute was new in Glom 1.19 anyway, so we can change it. * ui/developer/window_data_layout.glade: Add an extra SpinButton, adjust the labels, and add explanatory tooltips. * glom/mode_design/layout/dialog_layout_details.[h|cc]: Adapted. * glom/mode_data/db_adddel/db_adddel.[h|cc]: set_height_rows(): Take the min and max. construct_specified_column(): Increase the size if appropriate when there are more database rows to show. * glom/mode_design/layout/dialog_layout_list_related.cc: * glom/print_layout/print_layout_utils.cc: * glom/libglom/db_utils.cc: * glom/mode_data/box_data_list_related.cc: Adapted. 2011-10-11 Murray Cumming Print Layout: Create Standard: Use the full page width. * glom/print_layout/print_layout_utils.cc: Instead of hard-coding the width. However, the field title widths are still hard-coded. 2011-10-11 Murray Cumming Small fixes to Film Manager example. * examples/example_film_manager.glom: Remove the unused (and hiddent) Teams table. Contacts: Remove the unnecessary groups around the related records portals in the notebook. 2011-10-11 Murray Cumming CanvasPrintLayout: Wipe empty rows when filling with data. * glom/print_layout/canvas_print_layout.cc: fill_with_data_portal(): Otherwise, the field names appear on the printout, left over from the default non-data preview. 2011-10-11 Murray Cumming TranslatableItem: Make get_title() virtual. * glom/libglom/data_structure/translatable_item.h: Make get_title() virtual, like get_title_or_name() already is, so we can make get_title() useful generically via the base class. * glom/libglom/data_structure/layout/layoutitem_field.[h|cc]: * glom/libglom/data_structure/layout/layoutitem_portal.[h|cc]: * glom/libglom/data_structure/layout/report_parts/layoutitem_fields ummary.[h|cc]: Add get_title() overrides. * glom/mode_data/box_data_calendar_related.cc: * glom/mode_data/box_data_list_related.cc: * glom/print_layout/print_layout_utils.cc: Use get_title() instead of get_title_or_name(), to avoid showing names of intentionally title-less groups and notebooks. 2011-10-11 Murray Cumming LayoutItem_Portal: Make get_title_or_name() useful. * glom/libglom/data_structure/layout/layoutitem_portal.[h|cc]: Add an override for get_title_or_nam(), so that callers do not need to special-case portals compared to other groups. * glom/mode_data/box_data_calendar_related.cc: * glom/mode_data/box_data_list_related.cc: * glom/mode_data/box_data_portal.cc: * glom/mode_data/flowtablewithfields.cc: * glom/print_layout/print_layout_utils.cc: Use get_title_or_name() instead of more complicated code. 2011-10-11 Murray Cumming Print Layout: Standard: Handle related records portals too. * glom/print_layout/print_layout_utils.cc: create_standard(): If the group is a portal, just add that portal item, setting appropriate sizes. 2011-10-11 Murray Cumming Simplify OptionEntry code. * glom/glom_create_from_example.cc: * glom/main.cc: Reuse one OptionEntry instance. 2011-10-10 Murray Cumming Cope with Gnome::Gda::DataModelIter::get_value_at() throwing. * glom/libglom/connectionpool_backends/postgres.cc: Add a catch/try around get_value_at(), because the latest version of libgdamm can throw an exception there. 2011-10-10 Murray Cumming Use gdk_window_get_device_position() instead of gdk_window_get_pointer(). * glom/mode_data/box_data_calendar_related.cc: * glom/mode_data/buttonglom.cc: * glom/mode_data/datawidget/checkbutton.cc: * glom/mode_data/datawidget/combo.cc: * glom/mode_data/datawidget/combo_as_radio_buttons.cc: * glom/mode_data/datawidget/datawidget.cc: * glom/mode_data/datawidget/entry.cc: * glom/mode_data/datawidget/label.cc: * glom/mode_data/datawidget/textview.cc: * glom/mode_data/db_adddel/db_adddel.cc: * glom/mode_data/flowtablewithfields.cc: * glom/utility_widgets/adddel/adddel.cc: * glom/utility_widgets/imageglom.cc: * glom/utility_widgets/notebooklabelglom.cc: A fairly simple search/replace.