[evolution-patches] Re: default-mailer patch



Okay, I've removed the 'ask default' option, and created a gconf schema. I also prefixed all public symbols with org_gnome_default_mailer, though after removing the 'ask default' option, the only public symbol left was the check_default() function. Let me know if there's anything else you think should be changed.

Not Zed wrote:



Looks prety good at a first glance.

I don't think we realy need the 'ask default' option in the mail configuratin window though. To me it just seems like clutter for an option very few people, if anyone, would ever want to reset. If they do, there's always gconf-editor, assuming the key is properly documented - you should add a gconf schemas file for this purpose (although to be honest i don't know how you do that off the top of my head).

You should probably also prefix the public symbol names with the org_gnome_xxxx stuff, to avoid name clashes (these will become public symbols in the whole evolution application). (i..e the callbacks).

Thanks,
Michael

diff -upNr evolution/configure.in evolution-new/configure.in
--- evolution/configure.in	2005-03-01 08:17:18.000000000 +0200
+++ evolution-new/configure.in	2005-03-17 21:42:58.000000000 +0200
@@ -1337,7 +1337,7 @@ AC_ARG_ENABLE(plugins, [  --enable-plugi
 dnl Add any new plugins here
 plugins_base="calendar-file calendar-http calendar-weather groupwise-account-setup itip-formatter plugin-manager send-options shared-folder groupwise-send-options exchange-account-setup groupwise-status-tracking default-source addressbook-file addressbook-groupwise startup-wizard" 
 
-plugins_standard="bbdb subject-thread save-attachments prefer-plain save-calendar select-one-source copy-tool mail-to-task folder-unsubscribe mark-calendar-offline audio-inline mailing-list-actions new-mail-notify" 
+plugins_standard="bbdb subject-thread save-attachments prefer-plain save-calendar select-one-source copy-tool mail-to-task folder-unsubscribe mark-calendar-offline audio-inline mailing-list-actions new-mail-notify default-mailer" 
 
 plugins_experimental="backup-restore folder-unsubscribe mail-to-meeting"
 
@@ -1587,6 +1587,7 @@ plugins/groupwise-send-options/Makefile
 plugins/exchange-account-setup/Makefile
 plugins/groupwise-status-tracking/Makefile
 plugins/default-source/Makefile
+plugins/default-mailer/Makefile
 plugins/addressbook-file/Makefile
 plugins/addressbook-groupwise/Makefile
 plugins/startup-wizard/Makefile
diff -upNr evolution/plugins/default-mailer/apps-evolution-mail-prompts-checkdefault.schemas.in.in evolution-new/plugins/default-mailer/apps-evolution-mail-prompts-checkdefault.schemas.in.in
--- evolution/plugins/default-mailer/apps-evolution-mail-prompts-checkdefault.schemas.in.in	1970-01-01 02:00:00.000000000 +0200
+++ evolution-new/plugins/default-mailer/apps-evolution-mail-prompts-checkdefault.schemas.in.in	2005-03-24 16:20:11.134962444 +0200
@@ -0,0 +1,16 @@
+<gconfschemafile>
+  <schemalist>
+    <schema>
+      <key>/schemas/apps/evolution/mail/prompts/checkdefault</key>
+      <applyto>/apps/evolution/mail/prompts/checkdefault</applyto>
+      <owner>evolution-mail</owner>
+      <type>bool</type>
+      <default>true</default>
+      <locale name="C">
+        <short>Check whether Evolution is the default mailer</short>
+        <long>Every time Evolution starts, check whether or not it is the default mailer.</long>
+      </locale>
+    </schema>
+  </schemalist>
+</gconfschemafile>
+
diff -upNr evolution/plugins/default-mailer/ChangeLog evolution-new/plugins/default-mailer/ChangeLog
--- evolution/plugins/default-mailer/ChangeLog	1970-01-01 02:00:00.000000000 +0200
+++ evolution-new/plugins/default-mailer/ChangeLog	2005-03-24 16:24:35.522159368 +0200
@@ -0,0 +1,47 @@
+2005-03-24  Jonathan Dieter  <jdieter99 gmx net>
+	* default-mailer.c: removed code to put a checkbox in the
+	configuration menu, changed procedure names to avoid
+	namespace pollution.
+
+	* org-gnome-default-mailer.eplug.in: removed definitions
+	to put a checkbox in the configuration menu.
+
+	* apps-evolution-mail-prompts-checkdefault.schema.in.in:
+	schema for GConf key /apps/evolution/mail/prompts/checkdefault.
+
+	* Makefile.am: added steps to build GConf schema.
+
+2005-03-17  Jonathan Dieter  <jdieter99 gmx net>
+
+	* default-mailer.c: renamed from default-mail-client-check.c
+	Renamed modules to fit new name and cleaned up code.  Fixed
+	small memory leak.
+
+	* org-gnome-default-mailer.xml: renamed from
+	org-gnome-default-mail-client-check.xml.
+
+	* org-gnome-default-mailer.eplug.in: renamed from
+	org-gnome-default-mail-client-check.eplug.in.
+
+	* Makefile.am: Fixed references to fit new file names.
+
+2005-03-15  Jonathan Dieter  <jdieter99 gmx net>
+
+	* default-mail-client-check.c (check_default_mail_client):
+	Removed gtk_message_dialog() call and replaced with 
+	e_error().
+	
+	* Makefile.am: added necessary steps to build xml.
+	
+	* org-gnome-default-mail-client-check.xml: define the
+	message box that shows up on startup.
+
+2005-03-07  Jonathan Dieter  <jdieter99 gmx net>
+
+	* default-mail-client-check.c: Plugin implementation.
+
+	* org-gnome-default-mail-client-check.eplug.in: define the
+	default mail client check plugin.
+
+	* Makefile.am: build the default mail client check plugin.
+
diff -upNr evolution/plugins/default-mailer/default-mailer.c evolution-new/plugins/default-mailer/default-mailer.c
--- evolution/plugins/default-mailer/default-mailer.c	1970-01-01 02:00:00.000000000 +0200
+++ evolution-new/plugins/default-mailer/default-mailer.c	2005-03-24 16:20:11.135962297 +0200
@@ -0,0 +1,69 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/*
+ *  Author: Jonathan Dieter <jdieter99 gmx net>
+ *
+ *  Copyright 2005 Jonathan Dieter
+ *
+ *  This program is free software; you can redistribute it and/or
+ *  modify it under the terms of version 2 of the GNU General Public
+ *  License as published by the Free Software Foundation.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#include <gtk/gtk.h>
+#include <gconf/gconf-client.h>
+#include <widgets/misc/e-error.h>
+
+#include <mail/em-utils.h>
+#include <mail/em-config.h>
+#include <e-util/e-config.h>
+#include <shell/es-event.h>
+
+#define GCONF_KEY_CHECKDEFAULT   "/apps/evolution/mail/prompts/checkdefault"
+#define GCONF_KEY_MAILTO_ENABLED "/desktop/gnome/url-handlers/mailto/enabled"
+#define GCONF_KEY_MAILTO_COMMAND "/desktop/gnome/url-handlers/mailto/command"
+
+void
+org_gnome_default_mailer_check_default (EPlugin *ep, ESEventTargetUpgrade *target)
+{
+	GConfClient *client;
+	gchar       *mailer;
+	GConfValue  *is_key;
+	
+	
+	client = gconf_client_get_default ();
+	
+	/* See whether the check default mailer key has already been set */
+	is_key = gconf_client_get(client, GCONF_KEY_CHECKDEFAULT, NULL);
+	if(!is_key)
+		gconf_client_set_bool(client, GCONF_KEY_CHECKDEFAULT, TRUE, NULL);
+	g_free(is_key);
+	
+	/* Check whether we're supposed to check whether or not we are the default mailer */
+	if(gconf_client_get_bool(client, GCONF_KEY_CHECKDEFAULT, NULL)) { 
+		mailer  = gconf_client_get_string(client, GCONF_KEY_MAILTO_COMMAND, NULL);
+
+		/* Check whether we are the default mailer */
+		if(mailer == NULL || (strcmp(mailer, "@evolution %s") != 0 && strcmp(mailer, "evolution %s") != 0)) { 
+			/* Ask whether we should be the default mailer */
+			if(em_utils_prompt_user(NULL, GCONF_KEY_CHECKDEFAULT, "org.gnome.default.mailer:check-default", NULL)) {
+				gconf_client_set_bool(client, GCONF_KEY_MAILTO_ENABLED, TRUE, NULL);
+				gconf_client_set_string(client, GCONF_KEY_MAILTO_COMMAND, "evolution %s", NULL);
+			}
+		}
+		
+		g_free(mailer);
+	}
+}
diff -upNr evolution/plugins/default-mailer/Makefile.am evolution-new/plugins/default-mailer/Makefile.am
--- evolution/plugins/default-mailer/Makefile.am	1970-01-01 02:00:00.000000000 +0200
+++ evolution-new/plugins/default-mailer/Makefile.am	2005-03-24 16:20:11.136962151 +0200
@@ -0,0 +1,43 @@
+INCLUDES =						\
+	-I$(top_srcdir)					\
+	$(EVOLUTION_MAIL_CFLAGS)
+
+ EVO_PLUGIN_RULE@
+
+error_DATA = org-gnome-default-mailer.xml
+error_i18n = $(error_DATA:.xml=.xml.h)
+errordir = $(privdatadir)/errors
+
+%.xml.h: %.xml
+	 $(top_builddir)/e-util/e-error-tool $^
+
+plugin_DATA        = org-gnome-default-mailer.eplug 
+plugin_LTLIBRARIES = liborg-gnome-default-mailer.la
+
+liborg_gnome_default_mailer_la_SOURCES = default-mailer.c
+liborg_gnome_default_mailer_la_LDFLAGS = -module -avoid-version
+
+
+schemadir       = $(GCONF_SCHEMA_FILE_DIR)
+schema_in_files = apps-evolution-mail-prompts-checkdefault.schemas.in.in
+schema_DATA     = $(schema_in_files:.schemas.in.in=-$(BASE_VERSION).schemas)
+
+%-$(BASE_VERSION).schemas.in: %.schemas.in.in
+	cp $< $@
+
+ INTLTOOL_SCHEMAS_RULE@
+
+install-data-local:
+	if test -z "$(DESTDIR)" ; then                                                                                          \
+		for p in $(schema_DATA) ; do                                                                                    \
+			GCONF_CONFIG_SOURCE=$(GCONF_SCHEMA_CONFIG_SOURCE) $(GCONFTOOL) --makefile-install-rule $$p;             \
+		done                                                                                                            \
+	fi
+
+EXTRA_DIST = \
+	org-gnome-default-mailer.eplug.in       \
+	$(error_DATA)                           \
+	$(error_i18n)                           \
+	$(schema_in_files)
+
+BUILT_SOURCES = $(error_i18n)
diff -upNr evolution/plugins/default-mailer/org-gnome-default-mailer.eplug.in evolution-new/plugins/default-mailer/org-gnome-default-mailer.eplug.in
--- evolution/plugins/default-mailer/org-gnome-default-mailer.eplug.in	1970-01-01 02:00:00.000000000 +0200
+++ evolution-new/plugins/default-mailer/org-gnome-default-mailer.eplug.in	2005-03-24 16:20:11.136962151 +0200
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<e-plugin-list>
+	<e-plugin
+	id="org.gnome.evolution.default.mailer" 
+	type="shlib" 
+	name="Default Mail Client " 
+	location="@PLUGINDIR@/liborg-gnome-default-mailer.so">
+
+		<description>Checks whether Evolution is the default mail client on startup.</description>
+		<author name="Jonathan Dieter" email="jdieter99 gmx net"/>
+
+		<hook class="org.gnome.evolution.shell.events:1.0">
+			<event
+				id="upgrade.done"
+				handle="org_gnome_default_mailer_check_default"
+				target="upgrade"
+			/>
+		</hook>
+	</e-plugin>
+</e-plugin-list>
diff -upNr evolution/plugins/default-mailer/org-gnome-default-mailer.xml evolution-new/plugins/default-mailer/org-gnome-default-mailer.xml
--- evolution/plugins/default-mailer/org-gnome-default-mailer.xml	1970-01-01 02:00:00.000000000 +0200
+++ evolution-new/plugins/default-mailer/org-gnome-default-mailer.xml	2005-03-24 16:20:11.136962151 +0200
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<error-list domain="org.gnome.default.mailer">
+
+ <error id="check-default" type="question" default="GTK_RESPONSE_YES">
+  <title>Evolution</title>
+  <secondary>Do you want to make Evolution your default e-mail client?</secondary>
+  <button stock="gtk-yes" response="GTK_RESPONSE_YES"/>
+  <button stock="gtk-no"  response="GTK_RESPONSE_NO"/>
+ </error>
+
+</error-list>


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]