Kill the subject-thread plugin.

All this time I never realized the subject-thread plugin was nothing
more than a stupid checkbox.  The actual thread-by-subject code lives
in the core mail library.
This commit is contained in:
Matthew Barnes
2010-09-14 14:50:50 -04:00
parent 95fe925630
commit c7f5d54cb7
7 changed files with 33 additions and 127 deletions

View File

@ -1465,7 +1465,7 @@ plugins_base_always="calendar-file calendar-http itip-formatter default-source a
plugins_base="$plugins_base_always $SA_JUNK_PLUGIN $BF_JUNK_PLUGIN"
dist_plugins_base="$plugins_base_always calendar-weather sa-junk-plugin bogo-junk-plugin"
plugins_standard_always="bbdb subject-thread save-calendar mail-to-task mailing-list-actions prefer-plain mail-notification attachment-reminder backup-restore email-custom-header templates vcard-inline dbx-import"
plugins_standard_always="bbdb save-calendar mail-to-task mailing-list-actions prefer-plain mail-notification attachment-reminder backup-restore email-custom-header templates vcard-inline dbx-import"
plugins_standard="$plugins_standard_always"
dist_plugins_standard="$plugins_standard audio-inline image-inline pst-import"
@ -1842,7 +1842,6 @@ plugins/pst-import/Makefile
plugins/publish-calendar/Makefile
plugins/sa-junk-plugin/Makefile
plugins/save-calendar/Makefile
plugins/subject-thread/Makefile
plugins/templates/Makefile
plugins/tnef-attachments/Makefile
plugins/vcard-inline/Makefile

View File

@ -258,8 +258,8 @@ For example: "Work" or "Personal"</property>
<property name="can_focus">True</property>
<property name="invisible_char">&#x25CF;</property>
<accessibility>
<relation type="labelled-by" target="identity-required-header"/>
<relation type="labelled-by" target="identity_address_label"/>
<relation type="labelled-by" target="identity-required-header"/>
</accessibility>
</object>
<packing>
@ -304,8 +304,8 @@ For example: "Work" or "Personal"</property>
<property name="can_focus">True</property>
<property name="invisible_char">&#x25CF;</property>
<accessibility>
<relation type="labelled-by" target="identity_full_name_label"/>
<relation type="labelled-by" target="identity-required-header"/>
<relation type="labelled-by" target="identity_full_name_label"/>
</accessibility>
</object>
<packing>
@ -420,8 +420,8 @@ For example: "Work" or "Personal"</property>
<property name="can_focus">True</property>
<property name="invisible_char">&#x25CF;</property>
<accessibility>
<relation type="labelled-by" target="identity-optional-header"/>
<relation type="labelled-by" target="identity_organization_label"/>
<relation type="labelled-by" target="identity-optional-header"/>
</accessibility>
</object>
<packing>
@ -453,8 +453,8 @@ For example: "Work" or "Personal"</property>
<property name="can_focus">True</property>
<property name="invisible_char">&#x25CF;</property>
<accessibility>
<relation type="labelled-by" target="reply_to_label"/>
<relation type="labelled-by" target="identity-optional-header"/>
<relation type="labelled-by" target="reply_to_label"/>
</accessibility>
</object>
<packing>
@ -1496,9 +1496,6 @@ For example: "Work" or "Personal"</property>
<property name="bottom_attach">5</property>
</packing>
</child>
<child>
<placeholder/>
</child>
<child>
<object class="EMFolderSelectionButton" id="drafts_button">
<property name="visible">True</property>
@ -1549,6 +1546,9 @@ For example: "Work" or "Personal"</property>
<property name="bottom_attach">4</property>
</packing>
</child>
<child>
<placeholder/>
</child>
</object>
</child>
</object>
@ -2628,6 +2628,19 @@ For example: "Work" or "Personal"</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkCheckButton" id="thread-by-subject">
<property name="label" translatable="yes">F_all back to threading messages by subject</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
<property name="use_underline">True</property>
<property name="draw_indicator">True</property>
</object>
<packing>
<property name="position">5</property>
</packing>
</child>
</object>
</child>
</object>
@ -4993,15 +5006,15 @@ for display purposes only. </property>
</object>
<object class="GtkSizeGroup" id="composer-label-size-group">
<widgets>
<widget name="lblForwardStyle"/>
<widget name="lblReplyStyle"/>
<widget name="lblCharset"/>
<widget name="lblReplyStyle"/>
<widget name="lblForwardStyle"/>
</widgets>
</object>
<object class="GtkSizeGroup" id="composer-combo-box-size-group">
<widgets>
<widget name="comboboxForwardStyle"/>
<widget name="comboboxReplyStyle"/>
<widget name="comboboxForwardStyle"/>
</widgets>
</object>
</interface>

View File

@ -185,6 +185,10 @@ e_mail_shell_settings_init (EShell *shell)
"mail-side-bar-search",
"/apps/evolution/mail/display/side_bar_search");
e_shell_settings_install_property_for_key (
"mail-thread-by-subject",
"/apps/evolution/mail/display/thread_subject");
e_shell_settings_install_property_for_key (
"mail-use-custom-fonts",
"/apps/evolution/mail/display/fonts/use_custom");

View File

@ -847,6 +847,11 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs,
e_binding_transform_color_to_string,
NULL, NULL);
widget = e_builder_get_widget (prefs->builder, "thread-by-subject");
e_mutual_binding_new (
shell_settings, "mail-thread-by-subject",
widget, "active");
/* Deleting Mail */
widget = e_builder_get_widget (prefs->builder, "chkEmptyTrashOnExit");
e_mutual_binding_new (

View File

@ -1,25 +0,0 @@
plugin_LTLIBRARIES = liborg-gnome-subject-thread.la
@EVO_PLUGIN_RULE@
plugin_DATA = org-gnome-subject-thread.eplug
liborg_gnome_subject_thread_la_CPPFLAGS = \
$(AM_CPPFLAGS) \
-I$(top_srcdir) \
$(GNOME_PLATFORM_CFLAGS) \
$(EVOLUTION_MAIL_CFLAGS)
liborg_gnome_subject_thread_la_SOURCES = subject-thread.c
liborg_gnome_subject_thread_la_LDFLAGS = -module -avoid-version $(NO_UNDEFINED)
liborg_gnome_subject_thread_la_LIBADD = \
$(GNOME_PLATFORM_CFLAGS) \
$(EVOLUTION_MAIL_LIBS)
EXTRA_DIST = org-gnome-subject-thread.eplug.xml
BUILT_SOURCES = $(plugin_DATA)
CLEANFILES = $(BUILT_SOURCES)
-include $(top_srcdir)/git.mk

View File

@ -1,14 +0,0 @@
<?xml version="1.0"?>
<e-plugin-list>
<e-plugin id="org.gnome.evolution.mail_subject_thread" type="shlib" _name="Subject Threading"
location="@PLUGINDIR@/liborg-gnome-subject-thread@SOEXT@">
<author name="JP Rosevear" email="jpr@novell.com"/>
<_description>Sort mail message threads by subject.</_description>
<hook class="org.gnome.evolution.mail.config:1.0">
<group id="org.gnome.evolution.mail.prefs" target="prefs">
<item type="item" path="00.general/10.display/80.subject_thread" _label="Thread messages by subject" factory="org_gnome_subject_thread_factory"/>
</group>
</hook>
</e-plugin>
</e-plugin-list>

View File

@ -1,76 +0,0 @@
/*
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) version 3.
*
* 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with the program; if not, see <http://www.gnu.org/licenses/>
*
*
* Authors:
* JP Rosevear <jpr@novell.com>
*
* Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
*
*/
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <string.h>
#include <glib.h>
#include <gtk/gtk.h>
#include <glib/gi18n.h>
#include <gconf/gconf-client.h>
#include <e-util/e-config.h>
#include <mail/em-config.h>
#define GCONF_KEY "/apps/evolution/mail/display/thread_subject"
GtkWidget *org_gnome_subject_thread_factory (EPlugin *ep, EConfigHookItemFactoryData *hook_data);
gint e_plugin_lib_enable (EPlugin *ep, gint enable);
gint
e_plugin_lib_enable (EPlugin *ep, gint enable)
{
return 0;
}
static void
toggled_cb (GtkWidget *widget, EConfig *config)
{
EMConfigTargetPrefs *target = (EMConfigTargetPrefs *) config->target;
/* Save the new setting to gconf */
gconf_client_set_bool (target->gconf, GCONF_KEY, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)), NULL);
}
GtkWidget *
org_gnome_subject_thread_factory (EPlugin *ep, EConfigHookItemFactoryData *hook_data)
{
GtkWidget *check;
EMConfigTargetPrefs *target = (EMConfigTargetPrefs *) hook_data->config->target;
/* Create the checkbox we will display, complete with mnemonic that is unique in the dialog */
check = gtk_check_button_new_with_mnemonic (_("F_all back to threading messages by subject"));
/* Set the toggle button to the current gconf setting */
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check), gconf_client_get_bool (target->gconf, GCONF_KEY, NULL));
/* Listen for the item being toggled on and off */
g_signal_connect (GTK_TOGGLE_BUTTON (check), "toggled", G_CALLBACK (toggled_cb), hook_data->config);
/* Pack the checkbox in the parent widget and show it */
gtk_box_pack_start (GTK_BOX (hook_data->parent), check, FALSE, FALSE, 0);
gtk_widget_show (check);
return check;
}