aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Toshok <toshok@ximian.com>2002-09-13 18:02:24 +0800
committerChris Toshok <toshok@src.gnome.org>2002-09-13 18:02:24 +0800
commitdbe5c76eb0241a143c365f0f2731830e04fe1cc7 (patch)
treeb3c7cbb1417289485ee0c090a383f27de2796fce
parent285af5226ade1b9de2681bcf166945c028d33f42 (diff)
downloadgsoc2013-evolution-dbe5c76eb0241a143c365f0f2731830e04fe1cc7.tar.gz
gsoc2013-evolution-dbe5c76eb0241a143c365f0f2731830e04fe1cc7.tar.zst
gsoc2013-evolution-dbe5c76eb0241a143c365f0f2731830e04fe1cc7.zip
[ Fixes bug #30250 ] handle "Unnamed Lists" here by setting their name to
2002-09-13 Chris Toshok <toshok@ximian.com> [ Fixes bug #30250 ] * backend/ebook/e-destination.c (e_destination_get_name): handle "Unnamed Lists" here by setting their name to _("Unnamed List'). * backend/ebook/e-card-simple.c (e_card_simple_get): same. * gui/contact-list-editor/e-contact-list-editor.c (is_named): new function, return TRUE if the name field is filled in. (prompt_to_save_changes): return TRUE if the list isn't named (meaning it's not saveable.) (command_state_changed): saving requires a name. (add_email_cb): always call command_state_changed. (remove_entry_cb): same. (list_name_changed_cb): same. (visible_addrs_toggled_cb): same. (table_drag_data_received_cb): same. svn path=/trunk/; revision=18059
-rw-r--r--addressbook/ChangeLog19
-rw-r--r--addressbook/backend/ebook/e-card-simple.c10
-rw-r--r--addressbook/backend/ebook/e-destination.c5
-rw-r--r--addressbook/gui/contact-list-editor/e-contact-list-editor.c50
4 files changed, 61 insertions, 23 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog
index 2acabe88ff..bdd792a5b0 100644
--- a/addressbook/ChangeLog
+++ b/addressbook/ChangeLog
@@ -1,3 +1,22 @@
+2002-09-13 Chris Toshok <toshok@ximian.com>
+
+ [ Fixes bug #30250 ]
+ * backend/ebook/e-destination.c (e_destination_get_name): handle
+ "Unnamed Lists" here by setting their name to _("Unnamed List').
+
+ * backend/ebook/e-card-simple.c (e_card_simple_get): same.
+
+ * gui/contact-list-editor/e-contact-list-editor.c (is_named): new
+ function, return TRUE if the name field is filled in.
+ (prompt_to_save_changes): return TRUE if the list isn't named
+ (meaning it's not saveable.)
+ (command_state_changed): saving requires a name.
+ (add_email_cb): always call command_state_changed.
+ (remove_entry_cb): same.
+ (list_name_changed_cb): same.
+ (visible_addrs_toggled_cb): same.
+ (table_drag_data_received_cb): same.
+
2002-09-12 Dan Winship <danw@ximian.com>
* backend/ebook/e-card-simple.c (e_card_simple_get): return
diff --git a/addressbook/backend/ebook/e-card-simple.c b/addressbook/backend/ebook/e-card-simple.c
index d6baddaadd..7f0dd263b4 100644
--- a/addressbook/backend/ebook/e-card-simple.c
+++ b/addressbook/backend/ebook/e-card-simple.c
@@ -831,6 +831,8 @@ char *e_card_simple_get (ECardSimple *simple,
switch (field) {
case E_CARD_SIMPLE_FIELD_NAME_OR_ORG:
if (simple->card) {
+ gboolean is_list;
+
gtk_object_get(GTK_OBJECT(simple->card),
"file_as", &string,
NULL);
@@ -846,8 +848,12 @@ char *e_card_simple_get (ECardSimple *simple,
NULL);
if (string && *string)
return g_strdup(string);
- string = e_card_simple_get_email(simple,
- E_CARD_SIMPLE_EMAIL_ID_EMAIL);
+ is_list = e_card_evolution_list (simple->card);
+ if (is_list)
+ string = _("Unnamed List");
+ else
+ string = e_card_simple_get_email(simple,
+ E_CARD_SIMPLE_EMAIL_ID_EMAIL);
return g_strdup(string);
} else
return NULL;
diff --git a/addressbook/backend/ebook/e-destination.c b/addressbook/backend/ebook/e-destination.c
index c83d908e9b..25932c29e6 100644
--- a/addressbook/backend/ebook/e-destination.c
+++ b/addressbook/backend/ebook/e-destination.c
@@ -702,7 +702,10 @@ e_destination_get_name (const EDestination *dest)
if (priv->name == NULL || *priv->name == '\0') {
g_free (priv->name);
- priv->name = g_strdup (e_destination_get_email (dest));
+ if (e_card_evolution_list (priv->card))
+ priv->name = g_strdup (_("Unnamed List"));
+ else
+ priv->name = g_strdup (e_destination_get_email (dest));
}
} else if (priv->raw != NULL) {
CamelInternetAddress *addr = camel_internet_address_new ();
diff --git a/addressbook/gui/contact-list-editor/e-contact-list-editor.c b/addressbook/gui/contact-list-editor/e-contact-list-editor.c
index e75d8d35e8..5dd61ebec4 100644
--- a/addressbook/gui/contact-list-editor/e-contact-list-editor.c
+++ b/addressbook/gui/contact-list-editor/e-contact-list-editor.c
@@ -391,9 +391,24 @@ save_card (EContactListEditor *cle, gboolean should_close)
}
static gboolean
+is_named (EContactListEditor *editor)
+{
+ char *string = e_utf8_gtk_editable_get_chars(GTK_EDITABLE (editor->list_name_entry), 0, -1);
+ gboolean named = FALSE;
+
+ if (string && *string) {
+ named = TRUE;
+ }
+
+ g_free (string);
+
+ return named;
+}
+
+static gboolean
prompt_to_save_changes (EContactListEditor *editor)
{
- if (!editor->changed)
+ if (!editor->changed || !is_named (editor))
return TRUE;
switch (e_addressbook_prompt_save_dialog (GTK_WINDOW(editor->app))) {
@@ -718,10 +733,9 @@ add_email_cb (GtkWidget *w, EContactListEditor *editor)
gtk_entry_set_text (GTK_ENTRY(editor->email_entry), "");
- if (!editor->changed) {
- editor->changed = TRUE;
- command_state_changed (editor);
- }
+ editor->changed = TRUE;
+
+ command_state_changed (editor);
}
static void
@@ -735,28 +749,22 @@ remove_entry_cb (GtkWidget *w, EContactListEditor *editor)
{
e_table_selected_row_foreach (e_table_scrolled_get_table(E_TABLE_SCROLLED(editor->table)),
(EForeachFunc)remove_row, editor);
- if (!editor->changed) {
- editor->changed = TRUE;
- command_state_changed (editor);
- }
+ editor->changed = TRUE;
+ command_state_changed (editor);
}
static void
list_name_changed_cb (GtkWidget *w, EContactListEditor *editor)
{
- if (!editor->changed) {
- editor->changed = TRUE;
- command_state_changed (editor);
- }
+ editor->changed = TRUE;
+ command_state_changed (editor);
}
static void
visible_addrs_toggled_cb (GtkWidget *w, EContactListEditor *editor)
{
- if (!editor->changed) {
- editor->changed = TRUE;
- command_state_changed (editor);
- }
+ editor->changed = TRUE;
+ command_state_changed (editor);
}
static void
@@ -878,7 +886,7 @@ table_drag_data_received_cb (ETable *table, int row, int col,
gtk_adjustment_set_value (adj, adj->upper);
}
- if (changed && !editor->changed) {
+ if (changed) {
editor->changed = TRUE;
command_state_changed (editor);
}
@@ -887,15 +895,17 @@ table_drag_data_received_cb (ETable *table, int row, int col,
static void
command_state_changed (EContactListEditor *editor)
{
+ gboolean named = is_named (editor);
+
bonobo_ui_component_set_prop (editor->uic,
"/commands/ContactListEditorSaveClose",
"sensitive",
- editor->changed && editor->editable ? "1" : "0", NULL);
+ editor->changed && named && editor->editable ? "1" : "0", NULL);
bonobo_ui_component_set_prop (editor->uic,
"/commands/ContactListEditorSave",
"sensitive",
- editor->changed && editor->editable ? "1" : "0", NULL);
+ editor->changed && named && editor->editable ? "1" : "0", NULL);
bonobo_ui_component_set_prop (editor->uic,
"/commands/ContactListEditorDelete",