aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/gui
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@src.gnome.org>2008-12-11 02:30:29 +0800
committerMatthew Barnes <mbarnes@src.gnome.org>2008-12-11 02:30:29 +0800
commitd158af8cdfa6e4bf85c1e74769e8d61bc469494c (patch)
treeba55b970ae3a23e5ade4edbddc4eb8dcaf3033bd /addressbook/gui
parentdc0d0ee010319425b19d8d8d493f0bc489d5fd07 (diff)
downloadgsoc2013-evolution-d158af8cdfa6e4bf85c1e74769e8d61bc469494c.tar.gz
gsoc2013-evolution-d158af8cdfa6e4bf85c1e74769e8d61bc469494c.tar.zst
gsoc2013-evolution-d158af8cdfa6e4bf85c1e74769e8d61bc469494c.zip
Merge revisions 36811:36865 from trunk.
svn path=/branches/kill-bonobo/; revision=36867
Diffstat (limited to 'addressbook/gui')
-rw-r--r--addressbook/gui/component/ldap-config.glade4
-rw-r--r--addressbook/gui/contact-editor/e-contact-editor-im.c59
-rw-r--r--addressbook/gui/contact-editor/e-contact-editor.c11
-rw-r--r--addressbook/gui/widgets/addresstypes.xml67
-rw-r--r--addressbook/gui/widgets/eab-contact-display.c2
-rw-r--r--addressbook/gui/widgets/eab-gui-util.c37
6 files changed, 82 insertions, 98 deletions
diff --git a/addressbook/gui/component/ldap-config.glade b/addressbook/gui/component/ldap-config.glade
index 58ffba43bf..2cf886b914 100644
--- a/addressbook/gui/component/ldap-config.glade
+++ b/addressbook/gui/component/ldap-config.glade
@@ -1394,7 +1394,7 @@
<property name="update_policy">GTK_UPDATE_ALWAYS</property>
<property name="snap_to_ticks">False</property>
<property name="wrap">False</property>
- <property name="adjustment">0 0 1000 1 10 10</property>
+ <property name="adjustment">0 0 1000 1 10 0</property>
</widget>
<packing>
<property name="left_attach">1</property>
@@ -2942,7 +2942,7 @@
<property name="update_policy">GTK_UPDATE_ALWAYS</property>
<property name="snap_to_ticks">False</property>
<property name="wrap">False</property>
- <property name="adjustment">0 0 1000 1 10 10</property>
+ <property name="adjustment">0 0 1000 1 10 0</property>
</widget>
<packing>
<property name="left_attach">1</property>
diff --git a/addressbook/gui/contact-editor/e-contact-editor-im.c b/addressbook/gui/contact-editor/e-contact-editor-im.c
index 7facb68b45..cc4fcc5d05 100644
--- a/addressbook/gui/contact-editor/e-contact-editor-im.c
+++ b/addressbook/gui/contact-editor/e-contact-editor-im.c
@@ -47,8 +47,8 @@ enum {
PROP_EDITABLE
};
-#define FIRST_IM_TYPE E_CONTACT_IM_AIM
-#define LAST_IM_TYPE E_CONTACT_IM_ICQ
+/*#define FIRST_IM_TYPE E_CONTACT_IM_AIM
+#define LAST_IM_TYPE E_CONTACT_IM_ICQ*/
static const char *im_labels[] = {
N_("AOL Instant Messenger"),
@@ -57,7 +57,8 @@ static const char *im_labels[] = {
N_("Yahoo Messenger"),
N_("Gadu-Gadu Messenger"),
N_("MSN Messenger"),
- N_("ICQ")
+ N_("ICQ"),
+ N_("Skype")
};
static const char *im_images[] = {
@@ -67,9 +68,47 @@ static const char *im_images[] = {
"im-yahoo",
"im-gadugadu",
"im-msn",
- "im-icq"
+ "im-icq",
+ "stock_people"
};
+/**
+ * Decodes from service (E_CONTACT_IM_ value to the index in the above
+ * fields and back, depending on the second parameter.
+ * @param val Value to decode
+ * @param val_is_service TRUE, if val is E_CONTACT_IM_ value, otherwise it's an index number.
+ **/
+static int
+decode_service (int val, gboolean val_is_service)
+{
+ static const int fields[] = {
+ E_CONTACT_IM_AIM,
+ E_CONTACT_IM_GROUPWISE,
+ E_CONTACT_IM_JABBER,
+ E_CONTACT_IM_YAHOO,
+ E_CONTACT_IM_GADUGADU,
+ E_CONTACT_IM_MSN,
+ E_CONTACT_IM_ICQ,
+ E_CONTACT_IM_SKYPE
+ };
+
+ int i, sz = G_N_ELEMENTS (fields);
+ if (val_is_service) {
+ for (i = 0; i < sz; i++) {
+ if (val == fields[i])
+ break;
+ }
+ if (i >= sz)
+ i = 0;
+ } else if (val >= 0 && val < sz) {
+ i = fields [val];
+ } else {
+ i = fields [0];
+ }
+
+ return i;
+}
+
GType
e_contact_editor_im_get_type (void)
{
@@ -111,9 +150,9 @@ e_contact_editor_im_class_init (EContactEditorImClass *klass)
g_param_spec_int ("service",
_("Service"),
/*_( */"XXX blurb" /*)*/,
- FIRST_IM_TYPE,
- LAST_IM_TYPE,
- FIRST_IM_TYPE,
+ E_CONTACT_IM_AIM,
+ E_CONTACT_IM_SKYPE,
+ E_CONTACT_IM_AIM,
G_PARAM_READWRITE));
g_object_class_install_property (object_class, PROP_LOCATION,
@@ -141,7 +180,7 @@ e_contact_editor_im_class_init (EContactEditorImClass *klass)
static void
service_changed_cb(GtkWidget *optmenu, EContactEditorIm *editor)
{
- editor->service = gtk_option_menu_get_history(GTK_OPTION_MENU(optmenu)) + FIRST_IM_TYPE;
+ editor->service = decode_service (gtk_option_menu_get_history(GTK_OPTION_MENU(optmenu)), FALSE);
}
static void
@@ -254,7 +293,7 @@ e_contact_editor_im_init (EContactEditorIm *e_contact_editor_im)
gtk_window_set_resizable(GTK_WINDOW(e_contact_editor_im), TRUE);
- e_contact_editor_im->service = FIRST_IM_TYPE;
+ e_contact_editor_im->service = decode_service (0, FALSE);
e_contact_editor_im->location = g_strdup("HOME");
e_contact_editor_im->username = NULL;
@@ -440,7 +479,7 @@ fill_in_info(EContactEditorIm *editor)
optmenu = glade_xml_get_widget(editor->gui, "optmenu-service");
if (optmenu != NULL)
- gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu), editor->service - FIRST_IM_TYPE);
+ gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu), decode_service (editor->service, TRUE));
optmenu = glade_xml_get_widget(editor->gui, "optmenu-location");
diff --git a/addressbook/gui/contact-editor/e-contact-editor.c b/addressbook/gui/contact-editor/e-contact-editor.c
index 30d672161a..e5686d3f76 100644
--- a/addressbook/gui/contact-editor/e-contact-editor.c
+++ b/addressbook/gui/contact-editor/e-contact-editor.c
@@ -36,6 +36,7 @@
#include <misc/e-gui-utils.h>
#include <libebook/e-address-western.h>
+#include <libedataserverui/e-category-completion.h>
#include <libedataserverui/e-source-combo-box.h>
#include <camel/camel.h>
@@ -176,7 +177,8 @@ im_service [] =
{ E_CONTACT_IM_GADUGADU, N_ ("Gadu-Gadu") },
{ E_CONTACT_IM_MSN, N_ ("MSN") },
{ E_CONTACT_IM_ICQ, N_ ("ICQ") },
- { E_CONTACT_IM_GROUPWISE, N_ ("GroupWise") }
+ { E_CONTACT_IM_GROUPWISE, N_ ("GroupWise") },
+ { E_CONTACT_IM_SKYPE, N_ ("Skype") }
};
/* Defaults from the table above */
@@ -3102,6 +3104,7 @@ static const EContactField non_string_fields [] = {
E_CONTACT_IM_GADUGADU,
E_CONTACT_IM_MSN,
E_CONTACT_IM_ICQ,
+ E_CONTACT_IM_SKYPE,
E_CONTACT_PHOTO,
E_CONTACT_LOGO,
E_CONTACT_X509_CERT,
@@ -3357,6 +3360,7 @@ e_contact_editor_init (EContactEditor *e_contact_editor)
{
GladeXML *gui;
GtkWidget *widget, *label;
+ GtkEntryCompletion *completion;
char *gladefile;
e_contact_editor->name = e_contact_name_new();
@@ -3417,6 +3421,11 @@ e_contact_editor_init (EContactEditor *e_contact_editor)
if (widget)
gtk_widget_grab_focus (widget);
+ widget = glade_xml_get_widget (e_contact_editor->gui, "entry-categories");
+ completion = e_category_completion_new ();
+ gtk_entry_set_completion (GTK_ENTRY (widget), completion);
+ g_object_unref (completion);
+
/* Connect to the deletion of the dialog */
g_signal_connect (e_contact_editor->app, "delete_event",
diff --git a/addressbook/gui/widgets/addresstypes.xml b/addressbook/gui/widgets/addresstypes.xml
index 813bf1c0ac..c93f9cac19 100644
--- a/addressbook/gui/widgets/addresstypes.xml
+++ b/addressbook/gui/widgets/addresstypes.xml
@@ -74,72 +74,7 @@
</option>
</input>
<input type="optionlist" name="category">
- <option value="Anniversary">
- <title>Anniversary</title>
- </option>
- <option value="Holiday">
- <title>Holiday</title>
- </option>
- <option value="Ideas">
- <title>Ideas</title>
- </option>
- <option value="Status">
- <title>Status</title>
- </option>
- <option value="Holiday Cards">
- <title>Holiday Cards</title>
- </option>
- <option value="Hot Contacts">
- <title>Hot Contacts</title>
- </option>
- <option value="International">
- <title>International</title>
- </option>
- <option value="Birthday">
- <title>Birthday</title>
- </option>
- <option value="VIP">
- <title>VIP</title>
- </option>
- <option value="Gifts">
- <title>Gifts</title>
- </option>
- <option value="Waiting">
- <title>Waiting</title>
- </option>
- <option value="Key Customer">
- <title>Key Customer</title>
- </option>
- <option value="Time &amp; Expenses">
- <title>Time &amp; Expenses </title>
- </option>
- <option value="Miscellaneous">
- <title>Miscellaneous</title>
- </option>
- <option value="Business">
- <title>Business</title>
- </option>
- <option value="Personal">
- <title>Personal</title>
- </option>
- <option value="Suppliers">
- <title>Suppliers</title>
- </option>
- <option value="Goals/Objectives">
- <title>Goals/Objectives</title>
- </option>
- <option value="Strategies">
- <title>Strategies</title>
- </option>
- <option value="Competition">
- <title>Competition</title>
- </option>
- <option value="Favourites">
- <title>Favourites</title>
- </option>
- <option value="Phone Calls">
- <title>Phone Calls</title>
- </option>
+ <dynamic func="e_util_get_category_filter_options"/>
</input>
</part>
<part name="sexp">
diff --git a/addressbook/gui/widgets/eab-contact-display.c b/addressbook/gui/widgets/eab-contact-display.c
index 1d22f3ea70..0208c4fd0f 100644
--- a/addressbook/gui/widgets/eab-contact-display.c
+++ b/addressbook/gui/widgets/eab-contact-display.c
@@ -91,6 +91,7 @@ common_location [] =
#define MSN_ICON "im-msn"
#define YAHOO_ICON "im-yahoo"
#define GADUGADU_ICON "im-gadugadu"
+#define SKYPE_ICON "stock_people"
#define VIDEOCONF_ICON "stock_video-conferencing"
#define MAX_COMPACT_IMAGE_DIMENSION 48
@@ -617,6 +618,7 @@ render_contact (GtkHTMLStream *html_stream, EContact *contact)
accum_multival_attribute (accum, contact, _("MSN"), E_CONTACT_IM_MSN, MSN_ICON, 0);
accum_multival_attribute (accum, contact, _("Yahoo"), E_CONTACT_IM_YAHOO, YAHOO_ICON, 0);
accum_multival_attribute (accum, contact, _("Gadu-Gadu"), E_CONTACT_IM_GADUGADU, GADUGADU_ICON, 0);
+ accum_multival_attribute (accum, contact, _("Skype"), E_CONTACT_IM_SKYPE, SKYPE_ICON, 0);
if (accum->len > 0)
gtk_html_stream_printf (html_stream, "%s", accum->str);
diff --git a/addressbook/gui/widgets/eab-gui-util.c b/addressbook/gui/widgets/eab-gui-util.c
index d3c0910827..9db9630b72 100644
--- a/addressbook/gui/widgets/eab-gui-util.c
+++ b/addressbook/gui/widgets/eab-gui-util.c
@@ -101,46 +101,45 @@ eab_load_error_dialog (GtkWidget *parent, ESource *source, EBookStatus status)
if (status == E_BOOK_ERROR_OFFLINE_UNAVAILABLE) {
can_detail_error = FALSE;
- label_string = _("We were unable to open this address book. This either means "
- "this book is not marked for offline usage or not yet downloaded "
+ label_string = _("This address book cannot be opened. This either means this "
+ "book is not marked for offline usage or not yet downloaded "
"for offline usage. Please load the address book once in online mode "
- "to download its contents");
+ "to download its contents.");
}
else if (!strncmp (uri, "file:", 5)) {
char *path = g_filename_from_uri (uri, NULL, NULL);
label = g_strdup_printf (
- _("We were unable to open this address book. Please check that the "
- "path %s exists and that you have permission to access it."), path);
+ _("This address book cannot be opened. Please check that the "
+ "path %s exists and that permissions are set to access it."), path);
g_free (path);
label_string = label;
}
+
+#ifndef HAVE_LDAP
else if (!strncmp (uri, "ldap:", 5)) {
/* special case for ldap: contact folders so we can tell the user about openldap */
-#ifdef HAVE_LDAP
- label_string =
- _("We were unable to open this address book. This either "
- "means you have entered an incorrect URI, or the LDAP server "
- "is unreachable.");
-#else
+
can_detail_error = FALSE;
label_string =
_("This version of Evolution does not have LDAP support "
- "compiled in to it. If you want to use LDAP in Evolution, "
- "you must install an LDAP-enabled Evolution package.");
+ "compiled in to it. To use LDAP in Evolution "
+ "an LDAP-enabled Evolution package must be installed.");
+
+ }
#endif
- } else {
- /* other network folders */
+ else {
+ /* other network folders (or if ldap is enabled and server is unreachable) */
label_string =
- _("We were unable to open this address book. This either "
- "means you have entered an incorrect URI, or the server "
+ _("This address book cannot be opened. This either "
+ "means that an incorrect URI was entered, or the server "
"is unreachable.");
}
if (can_detail_error) {
/* do not show repository offline message, it's kind of generic error */
if (status != E_BOOK_ERROR_REPOSITORY_OFFLINE && status > 0 && status < G_N_ELEMENTS (status_to_string) && status_to_string [status]) {
- label = g_strconcat (label_string, "\n\n", _("Detailed error:"), " ", _(status_to_string [status]), NULL);
+ label = g_strconcat (label_string, "\n\n", _("Detailed error message:"), " ", _(status_to_string [status]), NULL);
label_string = label;
}
}
@@ -170,7 +169,7 @@ eab_search_result_dialog (GtkWidget *parent,
break;
case E_BOOK_VIEW_STATUS_TIME_LIMIT_EXCEEDED:
str = _("The time to execute this query exceeded the server limit or the limit\n"
- "you have configured for this address book. Please make your search\n"
+ "configured for this address book. Please make your search\n"
"more specific or raise the time limit in the directory server\n"
"preferences for this address book.");
break;