diff options
Diffstat (limited to 'addressbook/gui')
-rw-r--r-- | addressbook/gui/component/e-addressbook-model.c | 14 | ||||
-rw-r--r-- | addressbook/gui/contact-editor/e-contact-editor-categories.c | 22 | ||||
-rw-r--r-- | addressbook/gui/widgets/e-addressbook-model.c | 14 |
3 files changed, 50 insertions, 0 deletions
diff --git a/addressbook/gui/component/e-addressbook-model.c b/addressbook/gui/component/e-addressbook-model.c index b2f7332c52..598f6786cf 100644 --- a/addressbook/gui/component/e-addressbook-model.c +++ b/addressbook/gui/component/e-addressbook-model.c @@ -125,6 +125,18 @@ addressbook_free_value (ETableModel *etc, int col, void *value) g_free(value); } +static void * +addressbook_initialize_value (ETableModel *etc, int col) +{ + return g_strdup(""); +} + +static gboolean +addressbook_value_is_empty (ETableModel *etc, int col, const void *value) +{ + return !(value && *(char *)value); +} + /* This function is for when the model is unfrozen. This can mostly be ignored for simple models. */ static void @@ -201,6 +213,8 @@ e_addressbook_model_class_init (GtkObjectClass *object_class) model_class->is_cell_editable = addressbook_is_cell_editable; model_class->duplicate_value = addressbook_duplicate_value; model_class->free_value = addressbook_free_value; + model_class->initialize_value = addressbook_initialize_value; + model_class->value_is_empty = addressbook_value_is_empty; model_class->thaw = addressbook_thaw; } diff --git a/addressbook/gui/contact-editor/e-contact-editor-categories.c b/addressbook/gui/contact-editor/e-contact-editor-categories.c index 3287672861..831fbce2b9 100644 --- a/addressbook/gui/contact-editor/e-contact-editor-categories.c +++ b/addressbook/gui/contact-editor/e-contact-editor-categories.c @@ -40,6 +40,8 @@ static void e_contact_editor_categories_set_value_at (ETableModel *etc, int col, static gboolean e_contact_editor_categories_is_cell_editable (ETableModel *etc, int col, int row, gpointer data); static void *e_contact_editor_categories_duplicate_value (ETableModel *etc, int col, const void *value, gpointer data); static void e_contact_editor_categories_free_value (ETableModel *etc, int col, void *value, gpointer data); +static void *e_contact_editor_categories_initialize_value (ETableModel *etc, int col, gpointer data); +static gboolean e_contact_editor_categories_value_is_empty (ETableModel *etc, int col, const void *value, gpointer data); static void e_contact_editor_categories_thaw (ETableModel *etc, gpointer data); static GnomeDialogClass *parent_class = NULL; @@ -271,6 +273,8 @@ e_contact_editor_categories_init (EContactEditorCategories *categories) e_contact_editor_categories_is_cell_editable, e_contact_editor_categories_duplicate_value, e_contact_editor_categories_free_value, + e_contact_editor_categories_initialize_value, + e_contact_editor_categories_value_is_empty, e_contact_editor_categories_thaw, categories); @@ -435,6 +439,24 @@ e_contact_editor_categories_free_value (ETableModel *etc, int col, void *value, g_free(value); } +static void * +e_contact_editor_categories_initialize_value (ETableModel *etc, int col, gpointer data) +{ + if (col == 0) + return NULL; + else + return g_strdup(""); +} + +static gboolean +e_contact_editor_categories_value_is_empty (ETableModel *etc, int col, const void *value, gpointer data) +{ + if (col == 0) + return value == NULL; + else + return !(value && *(char *)value); +} + /* This function is for when the model is unfrozen. This can mostly be ignored for simple models. */ static void diff --git a/addressbook/gui/widgets/e-addressbook-model.c b/addressbook/gui/widgets/e-addressbook-model.c index b2f7332c52..598f6786cf 100644 --- a/addressbook/gui/widgets/e-addressbook-model.c +++ b/addressbook/gui/widgets/e-addressbook-model.c @@ -125,6 +125,18 @@ addressbook_free_value (ETableModel *etc, int col, void *value) g_free(value); } +static void * +addressbook_initialize_value (ETableModel *etc, int col) +{ + return g_strdup(""); +} + +static gboolean +addressbook_value_is_empty (ETableModel *etc, int col, const void *value) +{ + return !(value && *(char *)value); +} + /* This function is for when the model is unfrozen. This can mostly be ignored for simple models. */ static void @@ -201,6 +213,8 @@ e_addressbook_model_class_init (GtkObjectClass *object_class) model_class->is_cell_editable = addressbook_is_cell_editable; model_class->duplicate_value = addressbook_duplicate_value; model_class->free_value = addressbook_free_value; + model_class->initialize_value = addressbook_initialize_value; + model_class->value_is_empty = addressbook_value_is_empty; model_class->thaw = addressbook_thaw; } |