aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-component.c
diff options
context:
space:
mode:
authorJeffrey Stedfast <fejj@ximian.com>2003-11-15 03:54:48 +0800
committerJeffrey Stedfast <fejj@src.gnome.org>2003-11-15 03:54:48 +0800
commit151829030a4aa8ee9cc98438c6a809b5889f3c3e (patch)
treedcd41a117c9e588d48bcdf63956d1d3c13c256ec /mail/mail-component.c
parent9e4e84a941e10ee4cef1ebc73e6b2381da3cf298 (diff)
downloadgsoc2013-evolution-151829030a4aa8ee9cc98438c6a809b5889f3c3e.tar.gz
gsoc2013-evolution-151829030a4aa8ee9cc98438c6a809b5889f3c3e.tar.zst
gsoc2013-evolution-151829030a4aa8ee9cc98438c6a809b5889f3c3e.zip
Removed.
2003-11-14 Jeffrey Stedfast <fejj@ximian.com> * folder-browser-factory.[c,h]: Removed. * mail-component.c (folder_selected_cb): Don't create a new view anymore, simply set the new folder uri on the folder browser. This makes the mailer use a lot less memory than in 1.x (view_control_activate_cb): Moved here from folder-browser-factory.c (impl_createControls): Connect to the activate signal on the view control. svn path=/trunk/; revision=23360
Diffstat (limited to 'mail/mail-component.c')
-rw-r--r--mail/mail-component.c38
1 files changed, 33 insertions, 5 deletions
diff --git a/mail/mail-component.c b/mail/mail-component.c
index c036deac8b..a551eb26ce 100644
--- a/mail/mail-component.c
+++ b/mail/mail-component.c
@@ -33,12 +33,14 @@
#include <fcntl.h>
#include <errno.h>
+#include "em-popup.h"
+#include "em-utils.h"
+#include "em-format.h"
#include "em-folder-tree.h"
#include "em-folder-browser.h"
#include "em-folder-selector.h"
#include "em-folder-selection.h"
-#include "folder-browser-factory.h"
#include "mail-config.h"
#include "mail-component.h"
#include "mail-folder-cache.h"
@@ -49,8 +51,6 @@
#include "mail-send-recv.h"
#include "mail-session.h"
-#include "em-popup.h"
-#include "em-utils.h"
#include "em-migrate.h"
#include <gtk/gtklabel.h>
@@ -232,6 +232,31 @@ folder_selected_cb (EMFolderTree *emft, const char *path, const char *uri, EMFol
em_folder_view_set_folder_uri (view, uri);
}
+static void
+view_control_activate_cb (BonoboControl *control, gboolean activate, EMFolderView *view)
+{
+ BonoboUIComponent *uic;
+
+ uic = bonobo_control_get_ui_component (control);
+ g_assert (uic != NULL);
+
+ if (activate) {
+ Bonobo_UIContainer container;
+
+ container = bonobo_control_get_remote_ui_container (control, NULL);
+ bonobo_ui_component_set_container (uic, container, NULL);
+ bonobo_object_release_unref (container, NULL);
+
+ g_assert (container == bonobo_ui_component_get_container(uic));
+ g_return_if_fail (container != CORBA_OBJECT_NIL);
+
+ em_folder_view_activate (view, uic, activate);
+ } else {
+ em_folder_view_activate (view, uic, activate);
+ bonobo_ui_component_unset_container (uic, NULL);
+ }
+}
+
/* GObject methods. */
@@ -304,6 +329,7 @@ impl_createControls (PortableServer_Servant servant,
tree_widget = (GtkWidget *) priv->emft;
view_widget = em_folder_browser_new ();
+ em_format_set_session ((EMFormat *) ((EMFolderView *) view_widget)->preview, session);
gtk_widget_show (tree_widget);
gtk_widget_show (view_widget);
@@ -314,6 +340,8 @@ impl_createControls (PortableServer_Servant servant,
*corba_tree_control = CORBA_Object_duplicate (BONOBO_OBJREF (tree_control), ev);
*corba_view_control = CORBA_Object_duplicate (BONOBO_OBJREF (view_control), ev);
+ g_signal_connect (view_control, "activate", G_CALLBACK (view_control_activate_cb), view_widget);
+
g_signal_connect (tree_widget, "folder-selected", G_CALLBACK (folder_selected_cb), view_widget);
}
@@ -396,7 +424,7 @@ mail_component_init (MailComponent *component)
if (camel_mkdir (priv->base_directory, 0777) == -1 && errno != EEXIST)
abort ();
- priv->emft = em_folder_tree_new ();
+ priv->emft = (EMFolderTree *) em_folder_tree_new ();
/* EPFIXME: Turn into an object? */
mail_session_init (priv->base_directory);
@@ -642,7 +670,7 @@ mail_component_get_tree_model (MailComponent *component)
{
EMFolderTreeModel *model;
- model = em_folder_tree_get_model ((GtkTreeView *) component->priv->emft);
+ model = em_folder_tree_get_model (component->priv->emft);
g_object_ref (model);
return model;