1.19.4: 2011-04-11 Murray Cumming Fix a test. * tests/python/test_python_execute_func_bad_syntax.cc: Allow the result to be a null Gda::Value, because that is acceptable for a python script with invalid syntax. 2011-04-08 Murray Cumming Port the debian repository analyzer script example to GTK+ 3. * examples/example_scripts/repository_analyzer_begin_scan.py: Use PyGObject+Introspection instead of pygtk, and adapt for a minidom API change. This is also here: https://gitorious.org/debian_repository_analyzer 2011-04-08 Murray Cumming Fix use of bool python return types. * glom/libglom/python_embed/pygdavalue_conversions.cc: glom_pygda_value_from_pyobject(): Use the C Py*_Check() functions because boost::python::extract<>::check() does not really check for the exact type and has no way to do that. Previously we were interpreting bools as ints. Note also that the order fo the Py*_Check() checks is important, because python considers bool to be derived from int. * tests/python/test_python_execute_func_with_record.cc: Uncomment the checks for the return type and value now that it works. 2011-04-07 Murray Cumming Initialize pygobject, to fix the use of the PyRecord API. * configure.ac: Require the latest pygobject with gi.repository support. * glom/libglom/init.cc: Include pygobject.h so we can call pygobject_init() here. * glom/libglom/python_embed/py_glom_record.cc: Define NO_IMPORT_PYGOBJECT so we can still include pygobject.h again here. pygobject.h uses a nasty variable declared in the header. * tests/python/test_python_execute_func_with_record.cc: Fix the python example code. However, this shows a problem with getting bool results from python, apparently because boost::python::extract<>::check() checks that the type is compatible rather than checking that it's the exact type. 2011-04-07 Murray Cumming Added a python function test that uses an actual database connection. * Makefile_tests.am: Mention the new test. * tests/python/test_python_execute_func_with_record.cc: This shows a crash in Glom::PyGlomRecord::get_connection(). 2011-04-07 Murray Cumming Moved the python tests to a sub-directory. * tests/test_load_python_library.cc: * tests/test_python_execute_func.cc: * tests/test_python_execute_func_bad_syntax.cc: * tests/test_python_execute_func_change_result_type.cc: * tests/test_python_execute_func_date.cc: * tests/test_python_execute_script.cc: * tests/test_python_module.cc: Moved to tests/python/ * Makefile_tests.am: Adapted. 2011-04-05 Murray Cumming Remove more small traces of pygda. * glom/libglom/python_embed/py_glom_record.cc: * glom/python_embed/glom_python.cc: * glom/python_embed/python_module/py_glom_module.cc: Some last minor renames from pygda to gi.repository.Gda. 2011-04-05 Murray Cumming Python: Use gi.repository.Gda instead of Gda. * configure.ac: Do not require pygda at build time, though we check for it at program startup. There is probably no similar way to check at configure time, and it's debatable that it's appropriate anyway. The pygda check was probably here before in order to use a pygda .h file that we no longer use. * glom/main.cc: Add and call check_gir_is_available_with_warning() to check that gi.repository (gobject intropsection) in general is available. * glom/python_embed/glom_python.[h|cc]: * tests/test_python_module.[h|cc]: Add gir_python_module_is_available() for use by main.cc. gda_python_module_is_available(), glom_python_call(): Use the new python module instead of the old Gda module. 2011-04-05 Murray Cumming Write Python tracebacks to stderr. * glom/application.cc: * glom/mode_data/box_data.cc: * glom/mode_design/dialog_database_preferences.cc: * tests/test_python_execute_script.cc: Output python errors to stderr as a clue when things go wrong. 2011-04-04 Murray Cumming Fix an error found by the gtkmm change to use operator const void*. * glom/utility_widgets/adddel/adddel.cc: There is no TreeNodeChildren::operator[](TreeIter). The compiler was casting the TreeIter to bool and then to (int)0. 2011-04-04 Murray Cumming Require the latest mm-common and dist the mm-common scripts. * configure.ac: Add a MM_CONFIG_DOCTOOL_DIR() call so that the scripts will be distributed with the tarball, avoiding a runtime dependency on mm-common. 2011-03-30 Murray Cumming Adapt to the recent gtksourceviewmm API change. * configure.ac: Require the latest gtksourceviewmm. * glom/mode_design/dialog_database_preferences.[h|cc]: * glom/mode_design/fields/dialog_fieldcalculation.[h|cc]: * glom/mode_design/fields/dialog_fielddefinition.h: * glom/mode_design/layout/layout_item_dialogs/dialog_buttonscript.[h|cc]: : * glom/mode_design/script_library/dialog_script_library.[h|cc]: Use Gsv::* instead of Gsv::Source*. 2011-03-30 Murray Cumming Update the document DTD. * glom/glom_document.dtd: Mention some the new attribute and element for the choices, to fix the DTD test during make check. 2011-03-30 Murray Cumming A simpler way to avoid the PyDateTime_Check() crash. * glom/libglom/init.cc: libglom_init(): Remove the g_assert because this can fail: See bug #644702. * glom/libglom/python_embed/pygdavalue_conversions.cc: glom_pygda_value_as_boost_pyobject(): Check that the local re-import (hopefully cached by Python) succeeded, to avoid a crash in PyDateTime_Check(). 2011-03-14 Murray Cumming Reverted the previous commit to prevent a crash if PyDateTime_IMPORT fails. * glom/libglom/init.[h|cc]: Added libglom_pydatetime_import() and libglom_pydatetime_imported(). Remove the g_assert() when it fails. * glom/libglom/python_embed/pygdavalue_conversions.cc: Use the new utility function instead of repeating our reimplementation here. There will now just be an error message on stderr. We must fix this properly but in the meantime it is better than requiring the use of a separate glom branch just for OnlineGlom. See https://bugzilla.gnome.org/show_bug.cgi?id=644702 This commit was reverted because we really must repeat the implementation everywhere, because the PyDateTime variable is declared in Python's datetime.h header, and the macros then try to use that local instance. The copy in init.cc is not available to callers. And we cannot include datetime.h from init.h because it is full of other problems that cause compiler warnings. 2011-03-29 Murray Cumming Depend on libgdamm-5.0 instead of libgdamm-4.0. * configure.ac: This change avoids an indirect dependency on GTK+ 2, needed by the libgda 4 tarball build. 2011-03-18 Murray Cumming libglom: Added utils::build_sql_select_count_rows(). * glom/base_db.[h|cc]: Make count_rows_returned_by() take a const SqlBuilder. * glom/libglom/utils.[h|cc]: Move some of count_rows_returned_by() into a build_sql_select_count_rows() method, for the convenience of UIs such as OnlineGlom. Bug #645110 (Ben Konrath) 2011-03-14 Murray Cumming Do not crash if PyDateTime_IMPORT fails. * glom/libglom/init.[h|cc]: Added libglom_pydatetime_import() and libglom_pydatetime_imported(). Remove the g_assert() when it fails. * glom/libglom/python_embed/pygdavalue_conversions.cc: Use the new utility function instead of repeating our reimplementation here. There will now just be an error message on stderr. We must fix this properly but in the meantime it is better than requiring the use of a separate glom branch just for OnlineGlom. See https://bugzilla.gnome.org/show_bug.cgi?id=644702 2011-03-14 Murray Cumming Project Manager example: Resave. * examples/example_project_manager.glom: Edit the Teams list layout, so that it actually has a layout in the file, and so that the fields order makes more sense. See http://gitorious.org/online-glom/gwt-glom/commit/1c860b7ad64f55809ecf7e6b340272800d586d35 2011-03-14 Murray Cumming Fix the build. * glom/libglom/init.cc: Add an include so we can use std::cerr. 2011-03-14 Murray Cumming libglom_init(): Show the python exception when PyDateTime_IMPORT fails. * glom/libglom/init.cc: The linker seems to behave differently when this code is run from inside a JVM in OnlineGlom. This gives us a clue. 2011-03-12 Murray Cumming Fix crashes when using choices with fixed lists. * glom/mode_data/datawidget/combochoiceswithtreemodel.[h|cc]: create_model_non_db(): Instead of creating just a text-based treemodel, create a Value-based one with an extra text column at the end. That is what the related-records model has, though it uses a custom TreeModel. The text column is needed for GtkComboBox when it has has-entry=true: (See https://bugzilla.gnome.org/show_bug.cgi?id=631167 ) Add get_fixed_model_text_column() so that other code knows which column that is. * glom/mode_data/datawidget/cellrenderer_dblist.cc: set_choices_fixed(), repack_cells_fixed(): * glom/mode_data/datawidget/combo.cc: set_choices_fixed(): Adapt to use the special column instead of assuming that column 0 is a text column. Previously Glom::Combo::set_value() crashed because we tried to get a Value where there was a Value. 2011-03-08 Murray Cumming Remove some unnecessary padding/borders around the main window. * glom/box_withbuttons.cc: Remove the border, because it is not useful. It would be for the parent widget to decide that. * glom/mode_data/flowtablewithfields.[h|cc]: add_group(): Add a with_indent optional parameter. * glom/mode_data/box_data_details.cc: create_layout(): Have no indent on top-level groups. 2011-03-08 Murray Cumming Use a custom Notebook-like widget instead of Gtk::Notebook. * glom/utility_widgets/notebook_noframe.[h|cc]: A new class with an API that is as much like the Gtk::Notebook API as we need it to be. Unlike GtkNotebook, this has no frame around the "page" at the bottom. That was wasting space because the extra division was unnecessary when it fills almost the whole window anyway. * Makefile_glom.am: Mention the new files. * glom/mode_data/notebook_data.cc: Derive from the new class instead of Gtk::Notebook. 2011-02-26 Murray Cumming Fix the CSV import test. * tests/import/test_parsing.cc: Correct the number of expected tokens. This was previously just the number that was (incorrectly) parsed before. 2011-02-26 Murray Cumming CSV Import: Fix quoted-newline detection, so we don't drop rows. * glom/import_csv/csv_parser.[h|cc]: on_idle_parse(): Make in_quotes a member variable, initialized in clear(), so we remember it across calls to on_idle_parse(), instead of thinking that we are in quotes just because we are parsing arbitrary chunks of bytes that look that way individually. This fixes bug #637529 (Darmon Xavier), so all rows should be imported instead of dropping some in the middle. 2011-02-26 Murray Cumming Dialog_Import_CSV_Progress: Try to really show progress. * glom/import_csv/dialog_import_csv_progress.cc: Try to call Main::events_pending() and iterate() to really show the text in the progress bar, though it does not seem to work. 2011-02-26 Murray Cumming Correct a (translatable) string. * glom/glom.glade: Correct an English string. A comma is not a full stop. 2011-02-25 Murray Cumming Avoid GTK+ warning when clicking on the list button. * glom/mode_data/db_adddel/db_adddel.[h|cc]: on_cell_button_clicked(): Delay the response to the click, to an idle handler, to avoid confusing GtkTreeView, which was showing a warning with GTK+ 3 about a NULL GtkAdjustment. 2011-02-10 Murray Cumming Use the new Gtk::ComboBox CellArea API to align columns properly. * glom/mode_data/datawidget/combo.cc: Get the CellAreaBox and use its more-useful pack() method instead of the standard one, so that the columns really align.