[glom/sqlbuilder2: 116/117] Fix merge conflicts.
- From: Murray Cumming <murrayc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glom/sqlbuilder2: 116/117] Fix merge conflicts.
- Date: Tue, 27 Apr 2010 14:44:04 +0000 (UTC)
commit 1f5eef3ea967f130aa1e51750038c30bd3fd4c2c
Merge: 8146ab4 145fde8
Author: Murray Cumming <murrayc murrayc com>
Date: Tue Apr 27 15:34:09 2010 +0200
Fix merge conflicts.
.gitignore | 4 +
ChangeLog | 781 +++
Makefile.am | 14 +-
Makefile_glom.am | 79 +-
Makefile_tests.am | 37 +-
NEWS | 70 +-
autogen.sh | 3 +-
configure.ac | 53 +-
.../Doxyfile | 0
.../Doxyfile_libglom | 0
docs/libglom_reference/.gitignore | 4 +
.../Doxyfile => libglom_reference/Doxyfile.in} | 240 +-
docs/libglom_reference/Makefile.am | 22 +
docs/pyglom_reference/.gitignore | 3 +
docs/pyglom_reference/Makefile.am | 53 +
docs/pyglom_reference/conf.py.in | 194 +
docs/pyglom_reference/index.rst.in | 25 +
docs/user-guide/.gitignore | 2 +-
glom/application.cc | 170 +-
glom/application.h | 8 +
glom/base_db.cc | 238 +-
glom/box_reports.cc | 10 +-
glom/box_reports.h | 4 +-
glom/dialog_connection.cc | 5 +-
glom/dialog_connection.h | 3 +
glom/dialog_existing_or_new.cc | 28 +-
glom/dialog_existing_or_new.h | 3 +
glom/dialog_invalid_data.cc | 15 +-
glom/dialog_invalid_data.h | 3 +
glom/dialog_progress_creating.cc | 3 +
glom/dialog_progress_creating.h | 3 +
glom/filechooser_export.cc | 26 +-
glom/frame_glom.cc | 304 +-
glom/glade_utils.cc | 31 +-
glom/glade_utils.h | 104 +-
glom/glom.glade | 391 +-
glom/glom_developer.glade | 1443 ++---
glom/glom_document.dtd | 53 +-
glom/import_csv/dialog_import_csv.cc | 7 +-
glom/import_csv/dialog_import_csv.h | 3 +
glom/import_csv/dialog_import_csv_progress.cc | 3 +
glom/import_csv/dialog_import_csv_progress.h | 3 +
glom/libglom/connectionpool.cc | 58 +-
glom/libglom/connectionpool.h | 7 +-
glom/libglom/connectionpool_backends/backend.cc | 3 +-
glom/libglom/connectionpool_backends/backend.h | 2 +-
.../connectionpool_backends/postgres_self.cc | 7 +-
.../connectionpool_backends/postgres_self.h | 2 +-
.../data_structure/layout/fieldformatting.h | 2 +-
glom/libglom/document/bakery/document.cc | 54 +-
.../{test_document.cc => example_document_load.cc} | 46 +-
glom/libglom/init.h | 53 +
glom/libglom/python_embed/py_glom_record.cc | 79 +-
glom/libglom/python_embed/py_glom_record.h | 24 +-
glom/libglom/python_embed/py_glom_related.cc | 10 +-
glom/libglom/python_embed/py_glom_related.h | 8 +-
glom/libglom/python_embed/py_glom_relatedrecord.cc | 18 +-
glom/libglom/python_embed/py_glom_relatedrecord.h | 10 +-
.../libglom/python_embed/pygdavalue_conversions.cc | 62 +-
glom/libglom/sharedptr.h | 7 +-
glom/main.cc | 13 +-
glom/mode_data/box_data_calendar_related.cc | 17 +-
glom/mode_data/box_data_details.cc | 25 +-
glom/mode_data/box_data_details.h | 2 +-
glom/mode_data/box_data_list.cc | 12 +-
glom/mode_data/box_data_list_related.cc | 12 +-
glom/mode_data/box_data_list_related.h | 2 -
glom/{utility_widgets => mode_data}/buttonglom.cc | 40 +-
glom/{utility_widgets => mode_data}/buttonglom.h | 2 +-
.../datawidget/checkbutton.cc} | 24 +-
.../datawidget/checkbutton.h} | 12 +-
.../comboglom.cc => mode_data/datawidget/combo.cc} | 10 +-
.../comboglom.h => mode_data/datawidget/combo.h} | 6 +-
.../datawidget}/combo_as_radio_buttons.cc | 8 +-
.../datawidget}/combo_as_radio_buttons.h | 6 +-
.../datawidget}/combochoices.cc | 5 +-
.../datawidget}/combochoices.h | 6 +-
.../datawidget}/combochoiceswithtreemodel.cc | 5 +-
.../datawidget}/combochoiceswithtreemodel.h | 6 +-
.../datawidget/comboentry.cc} | 59 +-
.../datawidget/comboentry.h} | 14 +-
.../datawidget}/datawidget.cc | 159 +-
.../datawidget}/datawidget.h | 5 +-
.../datawidget}/dialog_choose_date.cc | 7 +
.../datawidget}/dialog_choose_date.h | 11 +-
.../datawidget}/dialog_choose_id.cc | 8 +-
.../datawidget}/dialog_choose_id.h | 11 +-
.../entryglom.cc => mode_data/datawidget/entry.cc} | 50 +-
.../entryglom.h => mode_data/datawidget/entry.h} | 13 +-
.../labelglom.cc => mode_data/datawidget/label.cc} | 63 +-
.../labelglom.h => mode_data/datawidget/label.h} | 18 +-
.../datawidget/textview.cc} | 50 +-
.../datawidget/textview.h} | 14 +-
glom/mode_data/flowtablewithfields.cc | 100 +-
.../placeholder-glom.cc | 1 -
.../placeholder-glom.h | 2 +-
glom/mode_design/dialog_add_related_table.cc | 3 +
glom/mode_design/dialog_add_related_table.h | 3 +
glom/mode_design/dialog_database_preferences.cc | 3 +
glom/mode_design/dialog_database_preferences.h | 3 +
glom/mode_design/dialog_design.cc | 4 +-
glom/mode_design/dialog_design.h | 1 -
glom/mode_design/dialog_fields.cc | 6 +-
glom/mode_design/dialog_fields.h | 3 +
glom/mode_design/dialog_initial_password.cc | 3 +
glom/mode_design/dialog_initial_password.h | 3 +
glom/mode_design/dialog_relationships.cc | 5 +-
glom/mode_design/dialog_relationships.h | 3 +
glom/mode_design/fields/box_db_table_definition.cc | 6 +-
glom/mode_design/fields/dialog_fieldcalculation.cc | 3 +
glom/mode_design/fields/dialog_fieldcalculation.h | 3 +
glom/mode_design/fields/dialog_fielddefinition.cc | 49 +-
glom/mode_design/fields/dialog_fielddefinition.h | 8 +-
glom/mode_design/layout/dialog_choose_field.cc | 3 +
glom/mode_design/layout/dialog_choose_field.h | 3 +
.../layout/dialog_choose_relationship.cc | 3 +
.../layout/dialog_choose_relationship.h | 3 +
.../layout/dialog_layout_calendar_related.cc | 3 +
.../layout/dialog_layout_calendar_related.h | 3 +
glom/mode_design/layout/dialog_layout_details.cc | 108 +-
glom/mode_design/layout/dialog_layout_details.h | 3 +
glom/mode_design/layout/dialog_layout_export.cc | 3 +
glom/mode_design/layout/dialog_layout_export.h | 3 +
glom/mode_design/layout/dialog_layout_list.cc | 3 +
glom/mode_design/layout/dialog_layout_list.h | 3 +
.../layout/dialog_layout_list_related.cc | 3 +
.../layout/dialog_layout_list_related.h | 3 +
.../layout/layout_item_dialogs/box_formatting.cc | 3 +
.../layout/layout_item_dialogs/box_formatting.h | 3 +
.../layout_item_dialogs/dialog_buttonscript.cc | 3 +
.../layout_item_dialogs/dialog_buttonscript.h | 3 +
.../layout_item_dialogs/dialog_field_layout.cc | 14 +-
.../layout_item_dialogs/dialog_field_layout.h | 3 +
.../layout_item_dialogs/dialog_field_summary.cc | 3 +
.../layout_item_dialogs/dialog_field_summary.h | 3 +
.../layout_item_dialogs/dialog_formatting.cc | 10 +-
.../layout/layout_item_dialogs/dialog_group_by.cc | 29 +-
.../layout/layout_item_dialogs/dialog_group_by.h | 3 +
.../dialog_groupby_secondaryfields.cc | 3 +
.../dialog_groupby_secondaryfields.h | 3 +
.../dialog_groupby_sortfields.cc | 3 +
.../dialog_groupby_sortfields.h | 3 +
.../layout_item_dialogs/dialog_imageobject.cc | 5 +-
.../layout_item_dialogs/dialog_imageobject.h | 5 +-
.../layout/layout_item_dialogs/dialog_notebook.cc | 3 +
.../layout/layout_item_dialogs/dialog_notebook.h | 3 +
.../layout_item_dialogs/dialog_textobject.cc | 5 +-
.../layout/layout_item_dialogs/dialog_textobject.h | 5 +-
.../mode_design/print_layouts/box_print_layouts.cc | 10 +-
glom/mode_design/print_layouts/box_print_layouts.h | 4 +-
.../print_layouts/dialog_text_formatting.cc | 15 +-
.../print_layouts/dialog_text_formatting.h | 3 +
.../print_layouts/window_print_layout_edit.cc | 3 +
.../print_layouts/window_print_layout_edit.h | 3 +
.../dialog_relationships_overview.cc | 2 +
.../dialog_relationships_overview.h | 5 +-
.../report_layout/dialog_layout_report.cc | 135 +-
.../report_layout/dialog_layout_report.h | 3 +
.../script_library/dialog_new_script.cc | 3 +
.../mode_design/script_library/dialog_new_script.h | 3 +
.../script_library/dialog_script_library.cc | 18 +-
.../script_library/dialog_script_library.h | 3 +
.../translation/dialog_change_language.cc | 3 +
.../translation/dialog_change_language.h | 3 +
.../translation/dialog_copy_translation.cc | 3 +
.../translation/dialog_copy_translation.h | 3 +
.../translation/dialog_identify_original.cc | 3 +
.../translation/dialog_identify_original.h | 3 +
.../mode_design/translation/window_translations.cc | 99 +-
glom/mode_design/translation/window_translations.h | 3 +
glom/mode_design/users/dialog_choose_user.cc | 3 +
glom/mode_design/users/dialog_choose_user.h | 9 +-
glom/mode_design/users/dialog_groups_list.cc | 32 +-
glom/mode_design/users/dialog_groups_list.h | 3 +
glom/mode_design/users/dialog_new_group.cc | 3 +
glom/mode_design/users/dialog_new_group.h | 3 +
glom/mode_design/users/dialog_user.cc | 3 +
glom/mode_design/users/dialog_user.h | 3 +
glom/mode_design/users/dialog_users_list.cc | 44 +-
glom/mode_design/users/dialog_users_list.h | 3 +
glom/navigation/box_tables.cc | 7 +-
glom/navigation/box_tables.h | 3 +
glom/print_layout/canvas_print_layout.cc | 29 +-
glom/python_embed/glom_python.cc | 64 +-
glom/python_embed/python_module/py_glom_module.cc | 125 +-
glom/utility_widgets/adddel/adddel.cc | 2 +-
glom/utility_widgets/adddel/adddel_withbuttons.cc | 30 +-
glom/utility_widgets/adddel/adddel_withbuttons.h | 2 +-
glom/utility_widgets/alignment_justified.cc | 61 -
glom/utility_widgets/alignment_justified.h | 42 -
.../utility_widgets/canvas/canvas_image_movable.cc | 4 +-
glom/utility_widgets/db_adddel/db_adddel.cc | 6 +-
.../db_adddel/db_adddel_withbuttons.cc | 16 +-
.../db_adddel/db_adddel_withbuttons.h | 2 +-
glom/utility_widgets/dialog_flowtable.cc | 3 +
glom/utility_widgets/dialog_flowtable.h | 3 +
glom/utility_widgets/dialog_image_progress.cc | 3 +
glom/utility_widgets/dialog_image_progress.h | 7 +-
.../filechooserdialog_saveextras.cc | 4 +-
glom/utility_widgets/flowtable_dnd.cc | 7 +-
glom/utility_widgets/imageglom.cc | 78 +-
glom/utility_widgets/imageglom.h | 2 -
glom/utility_widgets/layoutwidgetbase.cc | 10 +-
glom/utility_widgets/notebooklabelglom.cc | 26 +-
glom/utility_widgets/notebooklabelglom.h | 8 +-
glom/utility_widgets/table_columns.cc | 83 -
glom/utility_widgets/table_columns.h | 53 -
glom/utils_ui.cc | 71 +-
glom/utils_ui.h | 18 +
macros/ax_boost_python_murrayc.m4 | 107 +-
macros/dk-warn.m4 | 114 -
po/POTFILES.in | 8 +-
po/cs.po | 1702 +++---
po/de.po | 1644 +++---
po/es.po | 1815 +++---
po/fr.po | 1623 +++---
po/sl.po | 6931 ++++++++++----------
tests/glade_toplevels_instantiation.cc | 137 +
tests/test_document_load/test_document_load.cc | 129 +
tests/test_dtd_file_validation.sh | 3 +-
tests/test_glade_derived_instantiation.cc | 135 +
tests/test_glade_file_validation.sh | 3 +-
tests/test_glade_toplevels_instantiation.sh | 7 +
tests/test_python_execute_func_date.cc | 83 +-
.../test_selfhosting_new_empty.cc | 186 +
win32/build-installer | 24 +-
win32/glom.iss.in | 15 +-
227 files changed, 11610 insertions(+), 10327 deletions(-)
---
diff --cc glom/libglom/python_embed/py_glom_related.cc
index 2f49217,d25a49a..3e40187
--- a/glom/libglom/python_embed/py_glom_related.cc
+++ b/glom/libglom/python_embed/py_glom_related.cc
@@@ -82,14 -82,21 +82,14 @@@ boost::python::object PyGlomRelated::ge
PyGlomRecord::type_map_field_values::const_iterator iterFromKey = record->m_map_field_values.find(from_key);
if(iterFromKey != record->m_map_field_values.end())
{
-- const Gnome::Gda::Value from_key_value = iterFromKey->second;
++ const Gnome::Gda::Value& from_key_value = iterFromKey->second;
//TODO_Performance:
//Get the full field details so we can sqlize its value:
- sharedptr<Field> from_key_field;
- from_key_field = record->m_document->get_field(record->m_table_name, from_key);
+ sharedptr<const Field> from_key_field = record->m_document->get_field(record->m_table_name, from_key);
if(from_key_field)
- {
- PyGlomRelatedRecord_SetRelationship(pyRelatedRecord, iterFind->second, from_key_value, record->m_document);
+ {
- Glib::ustring key_value_sqlized;
- //std::cout << "from_key_field=" << from_key_field->get_name() << ", from_key_value=" << from_key_value.to_string() << std::endl;
-
- if(!Conversions::value_is_empty(from_key_value)) //Do not link on null-values. That would cause us to link on 0, or "0".
- key_value_sqlized = from_key_field->sql(from_key_value);
-
- pyRelatedRecord->set_relationship(iterFind->second, key_value_sqlized, record->m_document);
++ pyRelatedRecord->set_relationship(iterFind->second, from_key_value, record->m_document);
//Store it in the cache:
boost::python::object objectRelatedRecord(pyRelatedRecord);
diff --cc glom/libglom/python_embed/py_glom_relatedrecord.cc
index 4e7e111,48d2bca..0fb059b
--- a/glom/libglom/python_embed/py_glom_relatedrecord.cc
+++ b/glom/libglom/python_embed/py_glom_relatedrecord.cc
@@@ -62,91 -61,86 +62,91 @@@ boost::python::object PyGlomRelatedReco
//If the value has already been stored, then just return it again:
return glom_pygda_value_as_boost_pyobject(iterFind->second);
}
-
++
+ const Glib::ustring related_table = m_relationship->get_to_table();
+
+ //Check whether the field exists in the table.
+ //TODO_Performance: Do this without the useless Field information?
+ sharedptr<const Field> field = m_document->get_field(m_relationship->get_to_table(), field_name);
+ if(!field)
+ {
+ g_warning("PyGlomRelatedRecord::setitem(): field %s not found in table %s", field_name.c_str(), m_relationship->get_to_table().c_str());
+ PyErr_SetString(PyExc_IndexError, "field not found");
+ return boost::python::object();
+ }
else
{
- const Glib::ustring related_table = m_relationship->get_to_table();
-
- //Check whether the field exists in the table.
- //TODO_Performance: Do this without the useless Field information?
- sharedptr<const Field> field = m_document->get_field(m_relationship->get_to_table(), field_name);
- if(!field)
- g_warning("RelatedRecord_tp_as_mapping_getitem: field %s not found in table %s", field_name.c_str(), m_relationship->get_to_table().c_str());
- else
- {
- //Try to get the value from the database:
- //const Glib::ustring parent_key_name;
+ //Try to get the value from the database:
+ //const Glib::ustring parent_key_name;
#ifdef GLIBMM_EXCEPTIONS_ENABLED
- sharedptr<SharedConnection> sharedconnection = ConnectionPool::get_instance()->connect();
+ sharedptr<SharedConnection> sharedconnection = ConnectionPool::get_instance()->connect();
#else
- std::auto_ptr<ExceptionConnection> conn_error;
- sharedptr<SharedConnection> sharedconnection = ConnectionPool::get_instance()->connect(conn_error);
- // Ignore error, sharedconnection presence is checked below
+ std::auto_ptr<ExceptionConnection> conn_error;
+ sharedptr<SharedConnection> sharedconnection = ConnectionPool::get_instance()->connect(conn_error);
+ // Ignore error, sharedconnection presence is checked below
#endif
- if(sharedconnection)
- {
- Glib::RefPtr<Gnome::Gda::Connection> gda_connection = sharedconnection->get_gda_connection();
-
- const Glib::ustring related_key_name = m_relationship->get_to_field();
-
- //Do not try to get a value based on a null key value:
- if(m_from_key_value_sqlized.empty())
- return boost::python::object();
-
- //Get the single value from the related records:
- const Glib::ustring sql_query = "SELECT \"" + related_table + "\".\"" + field_name + "\" FROM \"" + related_table + "\""
- + " WHERE \"" + related_table + "\".\"" + related_key_name + "\" = " + m_from_key_value_sqlized;
-
- /* TODO: Fix linking problems
- const Application* app = Application::get_application();
- if(app && app->get_show_sql_debug())
- {
- try
- {
- std::cout << "Debug: RelatedRecord_tp_as_mapping_getitem(): " << sql_query << std::endl;
- }
- catch(const Glib::Exception& ex)
- {
- std::cout << "Debug: query string could not be converted to std::cout: " << ex.what() << std::endl;
- }
- }*/
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
- // TODO: Does this behave well if this throws an exception?
- Glib::RefPtr<Gnome::Gda::DataModel> datamodel = gda_connection->statement_execute_select(sql_query);
-#else
- std::auto_ptr<Glib::Error> error;
- Glib::RefPtr<Gnome::Gda::DataModel> datamodel = gda_connection->statement_execute_select(sql_query, Gnome::Gda::STATEMENT_MODEL_RANDOM_ACCESS, error);
- // Ignore error, datamodel return value is checked below
-#endif
- if(datamodel && datamodel->get_n_rows())
- {
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
- Gnome::Gda::Value value = datamodel->get_value_at(0, 0);
-#else
- Gnome::Gda::Value value = datamodel->get_value_at(0, 0, error);
-#endif
- //g_warning("RelatedRecord_tp_as_mapping_getitem(): value from datamodel = %s", value.to_string().c_str());
-
- //Cache it, in case it's asked-for again.
- m_map_field_values[field_name] = value;
- return glom_pygda_value_as_boost_pyobject(value);
- }
- else if(!datamodel)
- {
- g_warning("RelatedRecord_tp_as_mapping_getitem(): The datamodel was null.");
- ConnectionPool::handle_error_cerr_only();
- RelatedRecord_HandlePythonError();
- }
- else
- {
- g_warning("RelatedRecord_tp_as_mapping_getitem(): No related records exist yet for relationship %s.", m_relationship->get_name().c_str());
- }
+ if(!sharedconnection)
+ {
+ PyErr_SetString(PyExc_IndexError, "no database connection");
+ return boost::python::object();
+ }
+
+ Glib::RefPtr<Gnome::Gda::Connection> gda_connection = sharedconnection->get_gda_connection();
+
+ const Glib::ustring related_key_name = m_relationship->get_to_field();
+
+ //Do not try to get a value based on a null key value:
+ if(Conversions::value_is_empty(m_from_key_value))
+ {
+ PyErr_SetString(PyExc_IndexError, "connection not found");
+ return boost::python::object();
+ }
+
+ //Get the single value from the related records:
+ Glib::RefPtr<Gnome::Gda::SqlBuilder> builder =
+ Gnome::Gda::SqlBuilder::create(Gnome::Gda::SQL_STATEMENT_SELECT);
+ builder->select_add_field(field_name, related_table);
+ builder->select_add_target(related_table);
+ builder->set_where(
+ builder->add_cond(Gnome::Gda::SQL_OPERATOR_TYPE_EQ,
+ builder->add_id(related_key_name), //TODO: It would nice to specify the table name here too.
+ builder->add_expr(m_from_key_value)));
-
++
+ /* TODO: Fix linking problems
+ const App_Glom* app = App_Glom::get_application();
+ if(app && app->get_show_sql_debug())
+ {
+ try
+ {
+ std::cout << "Debug: PyGlomRelatedRecord::setitem()(): " << sql_query << std::endl;
}
+ catch(const Glib::Exception& ex)
+ {
+ std::cout << "Debug: query string could not be converted to std::cout: " << ex.what() << std::endl;
+ }
+ }*/
-
++
+ // TODO: Does this behave well if this throws an exception?
+ Glib::RefPtr<Gnome::Gda::DataModel> datamodel = gda_connection->statement_execute_select_builder(builder);
+ if(datamodel && datamodel->get_n_rows())
+ {
+ const Gnome::Gda::Value value = datamodel->get_value_at(0, 0);
+ //g_warning("PyGlomRelatedRecord::setitem()(): value from datamodel = %s", value.to_string().c_str());
+
+ //Cache it, in case it's asked-for again.
+ m_map_field_values[field_name] = value;
+ return glom_pygda_value_as_boost_pyobject(value);
+ }
+ else if(!datamodel)
+ {
+ g_warning("PyGlomRelatedRecord::setitem()(): The datamodel was null.");
+ ConnectionPool::handle_error_cerr_only();
+ RelatedRecord_HandlePythonError();
+ }
+ else
+ {
+ g_warning("PyGlomRelatedRecord::setitem()(): No related records exist yet for relationship %s.", m_relationship->get_name().c_str());
}
}
@@@ -193,18 -188,15 +193,18 @@@ boost::python::object PyGlomRelatedReco
}
//Get the aggregate value from the related records:
- const Glib::ustring sql_query = "SELECT " + aggregate + "(\"" + related_table + "\".\"" + field_name + "\") FROM \"" + related_table + "\""
- + " WHERE \"" + related_table + "\".\"" + related_key_name + "\" = " + m_from_key_value_sqlized;
+ Glib::RefPtr<Gnome::Gda::SqlBuilder> builder =
+ Gnome::Gda::SqlBuilder::create(Gnome::Gda::SQL_STATEMENT_SELECT);
+ builder->add_function(aggregate, builder->add_id(field_name)); //TODO: It would be nice to specify the table here too.
+ builder->select_add_target(related_table);
+ builder->set_where(
+ builder->add_cond(Gnome::Gda::SQL_OPERATOR_TYPE_EQ,
+ builder->add_id(related_key_name), //TODO: It would nice to specify the table name here too.
+ builder->add_expr(m_from_key_value)));
+
-
+
//std::cout << "PyGlomRelatedRecord: Executing: " << sql_query << std::endl;
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
- Glib::RefPtr<Gnome::Gda::DataModel> datamodel = gda_connection->statement_execute_select(sql_query);
-#else
- std::auto_ptr<Glib::Error> error;
- Glib::RefPtr<Gnome::Gda::DataModel> datamodel = gda_connection->statement_execute_select(sql_query, Gnome::Gda::STATEMENT_MODEL_RANDOM_ACCESS, error);
+ Glib::RefPtr<Gnome::Gda::DataModel> datamodel = gda_connection->statement_execute_select_builder(builder);
// Ignore the error: The case that the command execution didn't return
// a datamodel is handled below.
@@@ -251,13 -248,11 +251,11 @@@ boost::python::object PyGlomRelatedReco
return generic_aggregate(field_name, "max");
}
- void PyGlomRelatedRecord_SetRelationship(PyGlomRelatedRecord* self, const sharedptr<const Relationship>& relationship, const Gnome::Gda::Value& from_key_value, Document* document)
-void PyGlomRelatedRecord::set_relationship(const sharedptr<const Relationship>& relationship, const Glib::ustring& from_key_value_sqlized, Document* document)
++void PyGlomRelatedRecord::set_relationship(const sharedptr<const Relationship>& relationship, const Gnome::Gda::Value& from_key_value, Document* document)
{
- self->m_relationship = relationship;
-
- self->m_from_key_value = from_key_value;
-
- self->m_document = document;
+ m_relationship = relationship;
- m_from_key_value_sqlized = from_key_value_sqlized;
++ m_from_key_value = from_key_value;
+ m_document = document;
}
} //namespace Glom
diff --cc glom/libglom/python_embed/py_glom_relatedrecord.h
index 7c92734,918794f..09b360f
--- a/glom/libglom/python_embed/py_glom_relatedrecord.h
+++ b/glom/libglom/python_embed/py_glom_relatedrecord.h
@@@ -38,6 -38,8 +38,8 @@@ public
PyGlomRelatedRecord();
~PyGlomRelatedRecord();
- void set_relationship(const sharedptr<const Relationship>& relationship, const Glib::ustring& from_key_value_sqlized, Document* document);
++ void set_relationship(const sharedptr<const Relationship>& relationship, const Gnome::Gda::Value& from_key_value, Document* document);
+
boost::python::object sum(const std::string& field_name) const;
boost::python::object count(const std::string& field_name) const;
boost::python::object min(const std::string& field_name) const;
@@@ -63,12 -65,10 +65,6 @@@ private
mutable type_map_field_values m_map_field_values; //A cache.
};
- void PyGlomRelatedRecord_SetRelationship(PyGlomRelatedRecord* self, const sharedptr<const Relationship>& relationship, const Gnome::Gda::Value& from_key_value, Document* document);
-
--/*
--void PyGlomRelatedRecord_SetConnection(PyGlomRelatedRecord* self, const Glib::RefPtr<Gnome::Gda::Connection>& connection);
--*/
--
} //namespace Glom
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]