aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/gui
diff options
context:
space:
mode:
Diffstat (limited to 'addressbook/gui')
-rw-r--r--addressbook/gui/component/e-addressbook-model.c14
-rw-r--r--addressbook/gui/contact-editor/e-contact-editor-categories.c22
-rw-r--r--addressbook/gui/widgets/e-addressbook-model.c14
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;
}