glom r1812 - in trunk: . glom glom/utility_widgets/db_adddel
- From: arminb svn gnome org
- To: svn-commits-list gnome org
- Subject: glom r1812 - in trunk: . glom glom/utility_widgets/db_adddel
- Date: Wed, 17 Dec 2008 17:52:30 +0000 (UTC)
Author: arminb
Date: Wed Dec 17 17:52:30 2008
New Revision: 1812
URL: http://svn.gnome.org/viewvc/glom?rev=1812&view=rev
Log:
2008-12-17 Armin Burgmeier <armin openismus com>
* glom/base_db.cc (create_table_with_default_fields): Don't create the
"comments" and "description" columns if the database system does not
support removing columns.
* glom/utility_widgets/db_adddel/glom_db_treemodel.cc
(fill_values_if_necessary): Adapt to libgdamm API change.
Gda::DataModelIter::move_at_row has been renamed to move_to_row.
Modified:
trunk/ChangeLog
trunk/glom/base_db.cc
trunk/glom/utility_widgets/db_adddel/glom_db_treemodel.cc
Modified: trunk/glom/base_db.cc
==============================================================================
--- trunk/glom/base_db.cc (original)
+++ trunk/glom/base_db.cc Wed Dec 17 17:52:30 2008
@@ -1051,6 +1051,19 @@
if(table_name.empty())
return false;
+#ifdef GLIBMM_EXCEPTIONS_ENABLED
+ sharedptr<SharedConnection> sharedconnection = connect_to_server();
+#else
+ std::auto_ptr<ExceptionConnection> error;
+ sharedptr<SharedConnection> sharedconnection = connect_to_server(0, error);
+ // TODO: Rethrow?
+#endif
+ if(!sharedconnection)
+ {
+ g_warning("Base_DB::create_table_with_default_fields: connection failed.");
+ return false;
+ }
+
bool created = false;
//Primary key:
@@ -1070,20 +1083,28 @@
type_vecFields fields;
fields.push_back(field_primary_key);
- //Description:
- sharedptr<Field> field_description(new Field());
- field_description->set_name("description");
- field_description->set_title(_("Description")); //Use a translation, because the original locale will be marked as non-English if the current locale is non-English.
- field_description->set_glom_type(Field::TYPE_TEXT);
- fields.push_back(field_description);
-
- //Comments:
- sharedptr<Field> field_comments(new Field());
- field_comments->set_name("comments");
- field_comments->set_title(_("Comments"));
- field_comments->set_glom_type(Field::TYPE_TEXT);
- field_comments->m_default_formatting.set_text_format_multiline();
- fields.push_back(field_comments);
+ // Don't create these standard fields if the database system does not
+ // support deleting them. We still create the primary key column because
+ // there are database systems that don't support adding primary key columns
+ // into existing databases (such as SQLite).
+ Glib::RefPtr<Gnome::Gda::Set> set;
+ if(sharedconnection->get_gda_connection()->get_provider()->supports_operation(sharedconnection->get_gda_connection(), Gnome::Gda::SERVER_OPERATION_DROP_COLUMN, set))
+ {
+ //Description:
+ sharedptr<Field> field_description(new Field());
+ field_description->set_name("description");
+ field_description->set_title(_("Description")); //Use a translation, because the original locale will be marked as non-English if the current locale is non-English.
+ field_description->set_glom_type(Field::TYPE_TEXT);
+ fields.push_back(field_description);
+
+ //Comments:
+ sharedptr<Field> field_comments(new Field());
+ field_comments->set_name("comments");
+ field_comments->set_title(_("Comments"));
+ field_comments->set_glom_type(Field::TYPE_TEXT);
+ field_comments->m_default_formatting.set_text_format_multiline();
+ fields.push_back(field_comments);
+ }
sharedptr<TableInfo> table_info(new TableInfo());
table_info->set_name(table_name);
@@ -1113,22 +1134,6 @@
{
document->add_table(table_info);
document->set_table_fields(table_info->get_name(), fields);
- }
-
-#ifdef GLIBMM_EXCEPTIONS_ENABLED
- sharedptr<SharedConnection> sharedconnection = connect_to_server();
-#else
- std::auto_ptr<ExceptionConnection> error;
- sharedptr<SharedConnection> sharedconnection = connect_to_server(0, error);
- // TODO: Rethrow?
-#endif
-
- if(!sharedconnection)
- {
- g_warning("Base_DB::create_table_with_default_fields: connection failed.");
- }
- else
- {
// Update meta store, so that get_fields_for_table_from_database
// returns the fields correctly for the new table.
Modified: trunk/glom/utility_widgets/db_adddel/glom_db_treemodel.cc
==============================================================================
--- trunk/glom/utility_widgets/db_adddel/glom_db_treemodel.cc (original)
+++ trunk/glom/utility_widgets/db_adddel/glom_db_treemodel.cc Wed Dec 17 17:52:30 2008
@@ -265,7 +265,7 @@
Glib::RefPtr<Gnome::Gda::DataModelIter> iter = model.m_gda_datamodel->create_iter();
if(iter)
{
- iter->move_at_row(row);
+ iter->move_to_row(row);
//It is a row from the database;
const int cols_count = model.m_data_model_columns_count;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]