1.19.4:

2011-04-11  Murray Cumming  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	Fix the build.

	* glom/libglom/init.cc: Add an include so we can use std::cerr.

2011-03-14  Murray Cumming  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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<Gnome::Gda::Value> where there was a Value<ustring>.

2011-03-08  Murray Cumming  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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  <murrayc@murrayc-x61>

	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  <murrayc@murrayc.com>

	Correct a (translatable) string.

	* glom/glom.glade: Correct an English string. A comma is not a full stop.

2011-02-25  Murray Cumming  <murrayc@murrayc.com>

	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  <murrayc@murrayc.com>

	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.