[evolution] Define .error files correctly and external-editor crash fix
- From: Milan Crha <mcrha src gnome org>
- To: svn-commits-list gnome org
- Subject: [evolution] Define .error files correctly and external-editor crash fix
- Date: Mon, 27 Apr 2009 05:36:01 -0400 (EDT)
commit 0f7060ee7dcceac8d10aaa9100c919712de491ff
Author: Milan Crha <mcrha redhat com>
Date: Mon Apr 27 11:34:11 2009 +0200
Define .error files correctly and external-editor crash fix
** Fix for bug #561188
---
e-util/ChangeLog | 7 +
e-util/e-error.c | 12 +-
plugins/external-editor/ChangeLog | 11 ++
plugins/external-editor/Makefile.am | 6 +-
plugins/external-editor/external-editor.c | 143 ++++++++++---------
...ors.xml => org-gnome-external-editor.error.xml} | 0
plugins/face/ChangeLog | 8 +
plugins/face/Makefile.am | 6 +-
...me-face.errors.xml => org-gnome-face.error.xml} | 0
plugins/groupwise-features/ChangeLog | 15 ++
plugins/groupwise-features/Makefile.am | 17 ++-
...errors.xml => org-gnome-mail-retract.error.xml} | 0
...-errors.xml => org-gnome-proxy-login.error.xml} | 0
...-proxy-errors.xml => org-gnome-proxy.error.xml} | 0
...rrors.xml => org-gnome-shared-folder.error.xml} | 0
15 files changed, 137 insertions(+), 88 deletions(-)
diff --git a/e-util/ChangeLog b/e-util/ChangeLog
index 69db24d..77d035c 100644
--- a/e-util/ChangeLog
+++ b/e-util/ChangeLog
@@ -1,3 +1,10 @@
+2009-04-27 Milan Crha <mcrha redhat com>
+
+ ** Fix for bug #561188
+
+ * e-error.c: (e_error_newv): Do not localize already localized text.
+ Use default title for empty titles too, not only for NULL titles.
+
2009-04-24 Milan Crha <mcrha redhat com>
** Fix for bug #572348
diff --git a/e-util/e-error.c b/e-util/e-error.c
index da4d034..7c1248b 100644
--- a/e-util/e-error.c
+++ b/e-util/e-error.c
@@ -507,8 +507,8 @@ e_error_newv(GtkWindow *parent, const char *tag, const char *arg0, va_list ap)
out = g_string_new("");
- if (e->title) {
- ee_build_label(out, dgettext(table->translation_domain, e->title), args, FALSE);
+ if (e->title && *e->title) {
+ ee_build_label(out, e->title, args, FALSE);
gtk_window_set_title((GtkWindow *)dialog, out->str);
g_string_truncate(out, 0);
} else
@@ -517,19 +517,19 @@ e_error_newv(GtkWindow *parent, const char *tag, const char *arg0, va_list ap)
if (e->primary) {
g_string_append(out, "<span weight=\"bold\" size=\"larger\">");
- ee_build_label(out, dgettext(table->translation_domain, e->primary), args, TRUE);
+ ee_build_label(out, e->primary, args, TRUE);
g_string_append(out, "</span>\n\n");
oerr = g_string_new("");
- ee_build_label(oerr, dgettext(table->translation_domain, e->primary), args, FALSE);
+ ee_build_label(oerr, e->primary, args, FALSE);
perr = g_strdup (oerr->str);
g_string_free (oerr, TRUE);
} else
perr = g_strdup (gtk_window_get_title (GTK_WINDOW (dialog)));
if (e->secondary) {
- ee_build_label(out, dgettext(table->translation_domain, e->secondary), args, TRUE);
+ ee_build_label(out, e->secondary, args, TRUE);
oerr = g_string_new("");
- ee_build_label(oerr, dgettext(table->translation_domain, e->secondary), args, TRUE);
+ ee_build_label(oerr, e->secondary, args, TRUE);
serr = g_strdup (oerr->str);
g_string_free (oerr, TRUE);
}
diff --git a/plugins/external-editor/ChangeLog b/plugins/external-editor/ChangeLog
index 3bf30a6..dae79fc 100644
--- a/plugins/external-editor/ChangeLog
+++ b/plugins/external-editor/ChangeLog
@@ -1,3 +1,14 @@
+2009-04-27 Milan Crha <mcrha redhat com>
+
+ ** Fix for bug #561188
+
+ * external-editor.c: (show_error), (read_file),
+ (async_external_editor), (show_composer_dialog):
+ Do more things in main thread.
+ * Makefile.am:
+ * org-gnome-external-editor-errors.xml: Renamed to:
+ * org-gnome-external-editor.error.xml: Create .error file properly.
+
2009-01-28 Tor Lillqvist <tml novell com>
Windows port by Fridrich Strba.
diff --git a/plugins/external-editor/Makefile.am b/plugins/external-editor/Makefile.am
index bae2c64..ff64941 100644
--- a/plugins/external-editor/Makefile.am
+++ b/plugins/external-editor/Makefile.am
@@ -21,7 +21,7 @@ INCLUDES = \
@EVO_PLUGIN_RULE@
-error_DATA = org-gnome-external-editor-errors.xml
+error_DATA = org-gnome-external-editor.error
errordir = $(privdatadir)/errors
plugin_DATA = \
@@ -53,12 +53,12 @@ install-data-local:
EXTRA_DIST = \
org-gnome-external-editor.eplug.xml \
- org-gnome-external-editor-errors.xml \
+ org-gnome-external-editor.error.xml \
org-gnome-external-editor.xml \
$(schema_in_files)
BUILT_SOURCES = org-gnome-external-editor.eplug \
- $(error_i18n)
+ org-gnome-external-editor.error
CLEANFILES = $(BUILT_SOURCES)
diff --git a/plugins/external-editor/external-editor.c b/plugins/external-editor/external-editor.c
index 140eff1..c541124 100644
--- a/plugins/external-editor/external-editor.c
+++ b/plugins/external-editor/external-editor.c
@@ -54,8 +54,6 @@
void org_gnome_external_editor (EPlugin *ep, EMMenuTargetSelect *select);
void ee_editor_command_changed (GtkWidget *textbox);
GtkWidget * e_plugin_lib_get_configure_widget (EPlugin *epl);
-void async_external_editor (GArray *array);
-static gboolean show_composer_dialog (EMsgComposer *composer);
/* Utility function to convert an email address to CamelInternetAddress.
May be this should belong to CamelInternetAddress.h file itself. */
@@ -132,7 +130,76 @@ e_plugin_lib_get_configure_widget (EPlugin *epl)
return vbox;
}
-void
+static gboolean
+show_error (const char *id)
+{
+ if (id)
+ e_error_run (NULL, id, NULL);
+ return FALSE;
+}
+
+static gboolean
+read_file (char *filename)
+{
+ gchar *buf;
+ CamelMimeMessage *message;
+ EMsgComposer *composer;
+
+ message = camel_mime_message_new ();
+
+ if (filename && g_file_get_contents (filename, &buf, NULL, NULL)) {
+ gchar **tokens;
+ int i, j;
+
+ tokens = g_strsplit (buf, "###|||", 6);
+
+ for (i = 1; tokens[i]; ++i) {
+
+ for (j = 0; tokens[i][j] && tokens[i][j] != '\n'; ++j) {
+ tokens [i][j] = ' ';
+ }
+
+ if (tokens[i][j] == '\n')
+ tokens[i][j] = ' ';
+
+ d(printf ("\nstripped off token[%d] is : %s \n", i, tokens[i]));
+ }
+
+ camel_mime_message_set_recipients (message, "To", convert_to_camel_internet_address(g_strchug(g_strdup(tokens[1]))));
+ camel_mime_message_set_recipients (message, "Cc", convert_to_camel_internet_address(g_strchug(g_strdup(tokens[2]))));
+ camel_mime_message_set_recipients (message, "Bcc", convert_to_camel_internet_address(g_strchug(g_strdup(tokens[3]))));
+ camel_mime_message_set_subject (message, tokens[4]);
+ camel_mime_part_set_content ((CamelMimePart *)message, tokens [5], strlen (tokens [5]), "text/plain");
+
+ /* FIXME: We need to make mail-remote working properly.
+ So that we neednot invoke composer widget at all.
+
+ May be we can do it now itself by invoking local CamelTransport.
+ But all that is not needed for the first release.
+
+ People might want to format mails using their editor (80 cols width etc.)
+ But might want to use evolution addressbook for auto-completion etc.
+ So starting the composer window anyway.
+ */
+
+ composer = e_msg_composer_new_with_message (message);
+ g_signal_connect (GTK_OBJECT (composer), "send", G_CALLBACK (em_utils_composer_send_cb), NULL);
+ g_signal_connect (GTK_OBJECT (composer), "save-draft", G_CALLBACK (em_utils_composer_save_draft_cb), NULL);
+
+ gtk_widget_show (GTK_WIDGET (composer));
+
+ g_strfreev (tokens);
+
+ /* We no longer need that temporary file */
+ g_remove (filename);
+ }
+
+ g_free (filename);
+
+ return FALSE;
+}
+
+static void
async_external_editor (GArray *array)
{
char *filename = NULL;
@@ -148,9 +215,9 @@ async_external_editor (GArray *array)
if (!g_spawn_sync (NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, NULL, &status, NULL))
{
g_warning ("Unable to launch %s: ", argv[0]);
- e_error_run (NULL, "org.gnome.evolution.plugins.external-editor:editor-not-launchable", NULL);
+ g_idle_add ((GSourceFunc)show_error, "org.gnome.evolution.plugins.external-editor:editor-not-launchable");
g_free (filename);
- return ;
+ return;
}
#ifdef HAVE_SYS_WAIT_H
@@ -159,73 +226,13 @@ async_external_editor (GArray *array)
if (status) {
#endif
d(printf ("\n\nsome problem here with external editor\n\n"));
- return ;
+ g_free (filename);
+ return;
} else {
- gchar *buf;
- CamelMimeMessage *message;
- EMsgComposer *composer;
-
- message = camel_mime_message_new ();
-
- if (g_file_get_contents (filename, &buf, NULL, NULL)) {
- gchar **tokens;
- int i, j;
-
- tokens = g_strsplit (buf, "###|||", 6);
-
- for (i = 1; tokens[i]; ++i) {
-
- for (j = 0; tokens[i][j] && tokens[i][j] != '\n'; ++j) {
- tokens [i][j] = ' ';
- }
-
- if (tokens[i][j] == '\n')
- tokens[i][j] = ' ';
-
- d(printf ("\nstripped off token[%d] is : %s \n", i, tokens[i]));
- }
-
- camel_mime_message_set_recipients (message, "To", convert_to_camel_internet_address(g_strchug(g_strdup(tokens[1]))));
- camel_mime_message_set_recipients (message, "Cc", convert_to_camel_internet_address(g_strchug(g_strdup(tokens[2]))));
- camel_mime_message_set_recipients (message, "Bcc", convert_to_camel_internet_address(g_strchug(g_strdup(tokens[3]))));
- camel_mime_message_set_subject (message, tokens[4]);
- camel_mime_part_set_content ((CamelMimePart *)message, tokens [5], strlen (tokens [5]), "text/plain");
-
-
- /* FIXME: We need to make mail-remote working properly.
- So that we neednot invoke composer widget at all.
-
- May be we can do it now itself by invoking local CamelTransport.
- But all that is not needed for the first release.
-
- People might want to format mails using their editor (80 cols width etc.)
- But might want to use evolution addressbook for auto-completion etc.
- So starting the composer window anyway.
- */
-
- composer = e_msg_composer_new_with_message (message);
- g_signal_connect (GTK_OBJECT (composer), "send", G_CALLBACK (em_utils_composer_send_cb), NULL);
- g_signal_connect (GTK_OBJECT (composer), "save-draft", G_CALLBACK (em_utils_composer_save_draft_cb), NULL);
-
- /* Composer cannot be shown in any random thread. Should happen in main thread */
- g_idle_add ((GSourceFunc) show_composer_dialog, composer);
-
- g_strfreev (tokens);
-
- /* We no longer need that temporary file */
- g_remove (filename);
- g_free (filename);
- }
+ g_idle_add ((GSourceFunc)read_file, filename);
}
}
-static gboolean
-show_composer_dialog (EMsgComposer *composer)
-{
- gtk_widget_show (GTK_WIDGET(composer));
- return FALSE;
-}
-
void org_gnome_external_editor (EPlugin *ep, EMMenuTargetSelect *select)
{
/* The template to be used in the external editor */
diff --git a/plugins/external-editor/org-gnome-external-editor-errors.xml b/plugins/external-editor/org-gnome-external-editor.error.xml
similarity index 100%
rename from plugins/external-editor/org-gnome-external-editor-errors.xml
rename to plugins/external-editor/org-gnome-external-editor.error.xml
diff --git a/plugins/face/ChangeLog b/plugins/face/ChangeLog
index 81bb76d..7737ac7 100644
--- a/plugins/face/ChangeLog
+++ b/plugins/face/ChangeLog
@@ -1,3 +1,11 @@
+2009-04-27 Milan Crha <mcrha redhat com>
+
+ ** Part of fix for bug #561188
+
+ * Makefile.am:
+ * org-gnome-face.errors.xml: Renamed to:
+ * org-gnome-face.error.xml: Create .error file properly.
+
2008-08-27 Sankar P <psankar novell com>
License Changes
diff --git a/plugins/face/Makefile.am b/plugins/face/Makefile.am
index 8a44c94..a29c658 100644
--- a/plugins/face/Makefile.am
+++ b/plugins/face/Makefile.am
@@ -29,16 +29,16 @@ liborg_gnome_face_la_LIBADD = \
liborg_gnome_face_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
error_DATA = \
- org-gnome-face.errors.xml
+ org-gnome-face.error
errordir = $(privdatadir)/errors
EXTRA_DIST = \
org-gnome-face.eplug.xml \
- $(error_DATA)
+ org-gnome-face.error.xml
BUILT_SOURCES = \
org-gnome-face.eplug \
- $(error_i18n)
+ org-gnome-face.error
CLEANFILES = $(BUILT_SOURCES)
diff --git a/plugins/face/org-gnome-face.errors.xml b/plugins/face/org-gnome-face.error.xml
similarity index 100%
rename from plugins/face/org-gnome-face.errors.xml
rename to plugins/face/org-gnome-face.error.xml
diff --git a/plugins/groupwise-features/ChangeLog b/plugins/groupwise-features/ChangeLog
index 2afaec6..085b621 100644
--- a/plugins/groupwise-features/ChangeLog
+++ b/plugins/groupwise-features/ChangeLog
@@ -1,3 +1,18 @@
+2009-04-27 Milan Crha <mcrha redhat com>
+
+ ** Part of fix for bug #561188
+
+ * Makefile.am:
+ * org-gnome-proxy-login-errors.xml: Renamed to:
+ * org-gnome-proxy-login.error.xml:
+ * org-gnome-mail-retract-errors.xml: Renamed to:
+ * org-gnome-mail-retract.error.xml:
+ * org-gnome-shared-folder.errors.xml: Renamed to:
+ * org-gnome-shared-folder.error.xml:
+ * org-gnome-proxy-errors.xml: Renamed to:
+ * org-gnome-proxy.error.xml:
+ Create .error files properly.
+
2009-01-21 Suman Manjunath <msuman novell com>
** Fix for bug #541209
diff --git a/plugins/groupwise-features/Makefile.am b/plugins/groupwise-features/Makefile.am
index 3ece8b0..d18a7c8 100644
--- a/plugins/groupwise-features/Makefile.am
+++ b/plugins/groupwise-features/Makefile.am
@@ -62,22 +62,23 @@ glade_DATA = \
proxy-listing.glade \
proxy-login-dialog.glade
-error_DATA = \
- org-gnome-shared-folder.errors.xml \
- org-gnome-proxy-errors.xml \
- org-gnome-proxy-login-errors.xml \
- org-gnome-mail-retract-errors.xml
+error_DATA = \
+ org-gnome-shared-folder.error \
+ org-gnome-proxy.error \
+ org-gnome-proxy-login.error \
+ org-gnome-mail-retract.error
errordir = $(privdatadir)/errors
BUILT_SOURCES = org-gnome-groupwise-features.eplug $(error_i18n)
EXTRA_DIST = \
- $(error_DATA) \
$(glade_DATA) \
org-gnome-compose-send-options.xml \
org-gnome-groupwise-features.eplug.xml \
- org-gnome-proxy-login-errors.xml \
- org-gnome-mail-retract-errors.xml
+ org-gnome-shared-folder.error.xml \
+ org-gnome-proxy.error.xml \
+ org-gnome-proxy-login.error.xml \
+ org-gnome-mail-retract.error.xml
CLEANFILES = $(BUILT_SOURCES)
diff --git a/plugins/groupwise-features/org-gnome-mail-retract-errors.xml b/plugins/groupwise-features/org-gnome-mail-retract.error.xml
similarity index 100%
rename from plugins/groupwise-features/org-gnome-mail-retract-errors.xml
rename to plugins/groupwise-features/org-gnome-mail-retract.error.xml
diff --git a/plugins/groupwise-features/org-gnome-proxy-login-errors.xml b/plugins/groupwise-features/org-gnome-proxy-login.error.xml
similarity index 100%
rename from plugins/groupwise-features/org-gnome-proxy-login-errors.xml
rename to plugins/groupwise-features/org-gnome-proxy-login.error.xml
diff --git a/plugins/groupwise-features/org-gnome-proxy-errors.xml b/plugins/groupwise-features/org-gnome-proxy.error.xml
similarity index 100%
rename from plugins/groupwise-features/org-gnome-proxy-errors.xml
rename to plugins/groupwise-features/org-gnome-proxy.error.xml
diff --git a/plugins/groupwise-features/org-gnome-shared-folder.errors.xml b/plugins/groupwise-features/org-gnome-shared-folder.error.xml
similarity index 100%
rename from plugins/groupwise-features/org-gnome-shared-folder.errors.xml
rename to plugins/groupwise-features/org-gnome-shared-folder.error.xml
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]