Define .error files correctly and external-editor crash fix
** Fix for bug #561188
This commit is contained in:
@ -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
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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.
|
||||
|
||||
@ -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)
|
||||
|
||||
|
||||
@ -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 */
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)
|
||||
|
||||
Reference in New Issue
Block a user