Mail module + EMailView cleanups.
This commit is contained in:
@ -140,7 +140,7 @@ mnv_page_changed (GtkNotebook *book,
|
||||
em_folder_tree_set_selected (folder_tree, uri, FALSE);
|
||||
|
||||
if (mview != priv->current_view) {
|
||||
mview->prev = priv->current_view;
|
||||
e_mail_view_set_previous_view (mview, priv->current_view);
|
||||
priv->current_view = mview;
|
||||
}
|
||||
|
||||
@ -268,7 +268,7 @@ mnv_tab_closed_cb (ClutterTimeline *timeline,
|
||||
|
||||
if (E_IS_MAIL_FOLDER_PANE (page))
|
||||
g_hash_table_remove (data->view->priv->views, folder_uri);
|
||||
prev = page->prev;
|
||||
prev = e_mail_view_get_previous_view (page);
|
||||
if (prev) {
|
||||
num = emnv_get_page_num (data->view, (GtkWidget *)prev);
|
||||
mnv_set_current_tab (data->view, num);
|
||||
@ -343,7 +343,7 @@ tab_remove_gtk_cb (GtkWidget *button,
|
||||
if (E_IS_MAIL_FOLDER_PANE (page))
|
||||
g_hash_table_remove (view->priv->views, folder_uri);
|
||||
|
||||
prev = page->prev;
|
||||
prev = e_mail_view_get_previous_view (page);
|
||||
if (prev) {
|
||||
num = emnv_get_page_num (view, (GtkWidget *)prev);
|
||||
gtk_notebook_set_current_page (view->priv->book, num);
|
||||
@ -865,7 +865,7 @@ mail_netbook_view_open_mail (EMailView *view,
|
||||
shell_view = e_mail_view_get_shell_view (E_MAIL_VIEW (nview));
|
||||
pos = emnv_get_page_num (nview, GTK_WIDGET (priv->current_view));
|
||||
pane = e_mail_message_pane_new (shell_view);
|
||||
pane->prev = priv->current_view;
|
||||
e_mail_view_set_previous_view (pane, priv->current_view);
|
||||
E_MAIL_MESSAGE_PANE(pane)->parent_folder_view = priv->current_view;
|
||||
priv->current_view = pane;
|
||||
|
||||
@ -1086,7 +1086,7 @@ mail_notebook_view_set_folder (EMailReader *reader,
|
||||
shell_view = e_mail_view_get_shell_view (E_MAIL_VIEW (reader));
|
||||
priv->current_view = e_mail_folder_pane_new (shell_view);
|
||||
gtk_widget_show ((GtkWidget *)priv->current_view);
|
||||
priv->current_view->prev = old_view;
|
||||
e_mail_view_set_previous_view (priv->current_view, old_view);
|
||||
page = gtk_notebook_append_page (
|
||||
priv->book, (GtkWidget *)priv->current_view,
|
||||
create_tab_label (
|
||||
|
||||
@ -35,11 +35,21 @@
|
||||
struct _EMailViewPrivate {
|
||||
EShellView *shell_view;
|
||||
GtkOrientation orientation;
|
||||
EMailView *previous_view;
|
||||
|
||||
guint preview_visible : 1;
|
||||
guint show_deleted : 1;
|
||||
};
|
||||
|
||||
enum {
|
||||
PROP_0,
|
||||
PROP_ORIENTATION,
|
||||
PROP_PREVIEW_VISIBLE,
|
||||
PROP_PREVIOUS_VIEW,
|
||||
PROP_SHELL_VIEW,
|
||||
PROP_SHOW_DELETED
|
||||
};
|
||||
|
||||
enum {
|
||||
PANE_CLOSE,
|
||||
VIEW_CHANGED,
|
||||
@ -47,14 +57,6 @@ enum {
|
||||
LAST_SIGNAL
|
||||
};
|
||||
|
||||
enum {
|
||||
PROP_0,
|
||||
PROP_ORIENTATION,
|
||||
PROP_PREVIEW_VISIBLE,
|
||||
PROP_SHELL_VIEW,
|
||||
PROP_SHOW_DELETED
|
||||
};
|
||||
|
||||
static guint signals[LAST_SIGNAL];
|
||||
|
||||
G_DEFINE_TYPE (EMailView, e_mail_view, GTK_TYPE_VBOX)
|
||||
@ -88,6 +90,12 @@ mail_view_set_property (GObject *object,
|
||||
g_value_get_boolean (value));
|
||||
return;
|
||||
|
||||
case PROP_PREVIOUS_VIEW:
|
||||
e_mail_view_set_previous_view (
|
||||
E_MAIL_VIEW (object),
|
||||
g_value_get_object (value));
|
||||
return;
|
||||
|
||||
case PROP_SHELL_VIEW:
|
||||
mail_view_set_shell_view (
|
||||
E_MAIL_VIEW (object),
|
||||
@ -123,6 +131,12 @@ mail_view_get_property (GObject *object,
|
||||
E_MAIL_VIEW (object)));
|
||||
return;
|
||||
|
||||
case PROP_PREVIOUS_VIEW:
|
||||
g_value_set_object (
|
||||
value, e_mail_view_get_previous_view (
|
||||
E_MAIL_VIEW (object)));
|
||||
return;
|
||||
|
||||
case PROP_SHELL_VIEW:
|
||||
g_value_set_object (
|
||||
value, e_mail_view_get_shell_view (
|
||||
@ -151,6 +165,11 @@ mail_view_dispose (GObject *object)
|
||||
priv->shell_view = NULL;
|
||||
}
|
||||
|
||||
if (priv->previous_view != NULL) {
|
||||
g_object_unref (priv->previous_view);
|
||||
priv->previous_view = NULL;
|
||||
}
|
||||
|
||||
/* Chain up to parent's dispose() method. */
|
||||
G_OBJECT_CLASS (e_mail_view_parent_class)->dispose (object);
|
||||
}
|
||||
@ -269,6 +288,16 @@ e_mail_view_class_init (EMailViewClass *class)
|
||||
FALSE,
|
||||
G_PARAM_READWRITE));
|
||||
|
||||
g_object_class_install_property (
|
||||
object_class,
|
||||
PROP_PREVIOUS_VIEW,
|
||||
g_param_spec_object (
|
||||
"previous-view",
|
||||
"Previous View",
|
||||
NULL,
|
||||
E_TYPE_MAIL_VIEW,
|
||||
G_PARAM_READWRITE));
|
||||
|
||||
g_object_class_install_property (
|
||||
object_class,
|
||||
PROP_SHELL_VIEW,
|
||||
@ -399,6 +428,33 @@ e_mail_view_set_preview_visible (EMailView *view,
|
||||
class->set_preview_visible (view, visible);
|
||||
}
|
||||
|
||||
EMailView *
|
||||
e_mail_view_get_previous_view (EMailView *view)
|
||||
{
|
||||
g_return_val_if_fail (E_IS_MAIL_VIEW (view), NULL);
|
||||
|
||||
return view->priv->previous_view;
|
||||
}
|
||||
|
||||
void
|
||||
e_mail_view_set_previous_view (EMailView *view,
|
||||
EMailView *previous_view)
|
||||
{
|
||||
g_return_if_fail (E_IS_MAIL_VIEW (view));
|
||||
|
||||
if (previous_view != NULL) {
|
||||
g_return_if_fail (E_IS_MAIL_VIEW (previous_view));
|
||||
g_object_ref (previous_view);
|
||||
}
|
||||
|
||||
if (view->priv->previous_view != NULL)
|
||||
g_object_unref (view->priv->previous_view);
|
||||
|
||||
view->priv->previous_view = previous_view;
|
||||
|
||||
g_object_notify (G_OBJECT (view), "previous-view");
|
||||
}
|
||||
|
||||
gboolean
|
||||
e_mail_view_get_show_deleted (EMailView *view)
|
||||
{
|
||||
|
||||
@ -55,7 +55,6 @@ typedef struct _EMailViewPrivate EMailViewPrivate;
|
||||
struct _EMailView {
|
||||
GtkVBox parent;
|
||||
EMailViewPrivate *priv;
|
||||
EMailView *prev;
|
||||
};
|
||||
|
||||
struct _EMailViewClass {
|
||||
@ -97,6 +96,9 @@ GtkOrientation e_mail_view_get_orientation (EMailView *);
|
||||
void e_mail_view_set_preview_visible (EMailView *view,
|
||||
gboolean visible);
|
||||
gboolean e_mail_view_get_preview_visible (EMailView *view);
|
||||
EMailView * e_mail_view_get_previous_view (EMailView *view);
|
||||
void e_mail_view_set_previous_view (EMailView *view,
|
||||
EMailView *previous_view);
|
||||
gboolean e_mail_view_get_show_deleted (EMailView *view);
|
||||
void e_mail_view_set_show_deleted (EMailView *view,
|
||||
gboolean show_deleted);
|
||||
|
||||
@ -38,7 +38,6 @@
|
||||
#include "mail-ops.h"
|
||||
#include "message-list.h"
|
||||
|
||||
#include "e-mail-view.h"
|
||||
#include "e-mail-paned-view.h"
|
||||
#include "e-mail-notebook-view.h"
|
||||
#include "e-mail-reader.h"
|
||||
@ -51,31 +50,18 @@
|
||||
((obj), E_TYPE_MAIL_SHELL_CONTENT, EMailShellContentPrivate))
|
||||
|
||||
struct _EMailShellContentPrivate {
|
||||
gint temp;
|
||||
EMailView *mail_view;
|
||||
};
|
||||
|
||||
enum {
|
||||
PROP_0,
|
||||
PROP_GROUP_BY_THREADS,
|
||||
PROP_ORIENTATION,
|
||||
PROP_PREVIEW_VISIBLE,
|
||||
PROP_SHOW_DELETED
|
||||
PROP_MAIL_VIEW
|
||||
};
|
||||
|
||||
static gpointer parent_class;
|
||||
static GType mail_shell_content_type;
|
||||
|
||||
static void
|
||||
mail_shell_content_dispose (GObject *object)
|
||||
{
|
||||
EMailShellContentPrivate *priv;
|
||||
|
||||
priv = E_MAIL_SHELL_CONTENT_GET_PRIVATE (object);
|
||||
|
||||
/* Chain up to parent's dispose() method. */
|
||||
G_OBJECT_CLASS (parent_class)->dispose (object);
|
||||
}
|
||||
|
||||
static void
|
||||
reconnect_changed_event (EMailReader *child, EMailReader *parent)
|
||||
{
|
||||
@ -94,12 +80,65 @@ mail_shell_content_view_changed_cb (EMailView *view,
|
||||
{
|
||||
g_object_freeze_notify (G_OBJECT (content));
|
||||
g_object_notify (G_OBJECT (content), "group-by-threads");
|
||||
g_object_notify (G_OBJECT (content), "show-deleted");
|
||||
g_object_notify (G_OBJECT (content), "preview-visible");
|
||||
g_object_notify (G_OBJECT (content), "orientation");
|
||||
g_object_thaw_notify (G_OBJECT (content));
|
||||
}
|
||||
|
||||
static void
|
||||
mail_shell_content_set_property (GObject *object,
|
||||
guint property_id,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
switch (property_id) {
|
||||
case PROP_GROUP_BY_THREADS:
|
||||
e_mail_reader_set_group_by_threads (
|
||||
E_MAIL_READER (object),
|
||||
g_value_get_boolean (value));
|
||||
return;
|
||||
}
|
||||
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
}
|
||||
|
||||
static void
|
||||
mail_shell_content_get_property (GObject *object,
|
||||
guint property_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
switch (property_id) {
|
||||
case PROP_GROUP_BY_THREADS:
|
||||
g_value_set_boolean (
|
||||
value, e_mail_reader_get_group_by_threads (
|
||||
E_MAIL_READER (object)));
|
||||
return;
|
||||
|
||||
case PROP_MAIL_VIEW:
|
||||
g_value_set_object (
|
||||
value, e_mail_shell_content_get_mail_view (
|
||||
E_MAIL_SHELL_CONTENT (object)));
|
||||
return;
|
||||
}
|
||||
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
}
|
||||
|
||||
static void
|
||||
mail_shell_content_dispose (GObject *object)
|
||||
{
|
||||
EMailShellContentPrivate *priv;
|
||||
|
||||
priv = E_MAIL_SHELL_CONTENT_GET_PRIVATE (object);
|
||||
|
||||
if (priv->mail_view != NULL) {
|
||||
g_object_unref (priv->mail_view);
|
||||
priv->mail_view = NULL;
|
||||
}
|
||||
|
||||
/* Chain up to parent's dispose() method. */
|
||||
G_OBJECT_CLASS (parent_class)->dispose (object);
|
||||
}
|
||||
|
||||
static void
|
||||
mail_shell_content_constructed (GObject *object)
|
||||
{
|
||||
@ -113,7 +152,7 @@ mail_shell_content_constructed (GObject *object)
|
||||
|
||||
priv = E_MAIL_SHELL_CONTENT_GET_PRIVATE (object);
|
||||
|
||||
/* Chain up to parent's constructed() method. */
|
||||
/* Chain up to parent's constructed () method. */
|
||||
G_OBJECT_CLASS (parent_class)->constructed (object);
|
||||
|
||||
shell_content = E_SHELL_CONTENT (object);
|
||||
@ -125,7 +164,7 @@ mail_shell_content_constructed (GObject *object)
|
||||
|
||||
container = GTK_WIDGET (object);
|
||||
|
||||
if (e_shell_get_express_mode(e_shell_get_default ())) {
|
||||
if (e_shell_get_express_mode (e_shell_get_default ())) {
|
||||
widget = e_mail_notebook_view_new (shell_view);
|
||||
g_signal_connect (
|
||||
widget, "view-changed",
|
||||
@ -134,8 +173,8 @@ mail_shell_content_constructed (GObject *object)
|
||||
} else
|
||||
widget = e_mail_paned_view_new (shell_view);
|
||||
|
||||
E_MAIL_SHELL_CONTENT(object)->view = (EMailView *)widget;
|
||||
gtk_container_add (GTK_CONTAINER (container), widget);
|
||||
priv->mail_view = g_object_ref (widget);
|
||||
gtk_widget_show (widget);
|
||||
|
||||
g_signal_connect (
|
||||
@ -150,23 +189,45 @@ mail_shell_content_constructed (GObject *object)
|
||||
static guint32
|
||||
mail_shell_content_check_state (EShellContent *shell_content)
|
||||
{
|
||||
return e_mail_reader_check_state (E_MAIL_READER (E_MAIL_SHELL_CONTENT(shell_content)->view));
|
||||
EMailShellContentPrivate *priv;
|
||||
EMailReader *reader;
|
||||
|
||||
priv = E_MAIL_SHELL_CONTENT_GET_PRIVATE (shell_content);
|
||||
|
||||
/* Forward this to our internal EMailView, which
|
||||
* also implements the EMailReader interface. */
|
||||
reader = E_MAIL_READER (priv->mail_view);
|
||||
|
||||
return e_mail_reader_check_state (reader);
|
||||
}
|
||||
|
||||
static void
|
||||
mail_shell_content_focus_search_results (EShellContent *shell_content)
|
||||
{
|
||||
EMailShellContentPrivate *priv;
|
||||
GtkWidget *message_list;
|
||||
EMailReader *reader;
|
||||
|
||||
priv = E_MAIL_SHELL_CONTENT_GET_PRIVATE (shell_content);
|
||||
|
||||
gtk_widget_grab_focus (e_mail_reader_get_message_list(E_MAIL_READER (E_MAIL_SHELL_CONTENT(shell_content)->view)));
|
||||
reader = E_MAIL_READER (priv->mail_view);
|
||||
message_list = e_mail_reader_get_message_list (reader);
|
||||
|
||||
gtk_widget_grab_focus (message_list);
|
||||
}
|
||||
|
||||
static guint
|
||||
mail_shell_content_open_selected_mail (EMailReader *reader)
|
||||
{
|
||||
return e_mail_reader_open_selected_mail (E_MAIL_READER(E_MAIL_SHELL_CONTENT(reader)->view));
|
||||
EMailShellContentPrivate *priv;
|
||||
|
||||
priv = E_MAIL_SHELL_CONTENT_GET_PRIVATE (reader);
|
||||
|
||||
/* Forward this to our internal EMailView, which
|
||||
* also implements the EMailReader interface. */
|
||||
reader = E_MAIL_READER (priv->mail_view);
|
||||
|
||||
return e_mail_reader_open_selected_mail (reader);
|
||||
}
|
||||
|
||||
static GtkActionGroup *
|
||||
@ -186,37 +247,85 @@ mail_shell_content_get_action_group (EMailReader *reader)
|
||||
static EMFormatHTML *
|
||||
mail_shell_content_get_formatter (EMailReader *reader)
|
||||
{
|
||||
return e_mail_reader_get_formatter (E_MAIL_READER(E_MAIL_SHELL_CONTENT(reader)->view));
|
||||
EMailShellContentPrivate *priv;
|
||||
|
||||
priv = E_MAIL_SHELL_CONTENT_GET_PRIVATE (reader);
|
||||
|
||||
/* Forward this to our internal EMailView, which
|
||||
* also implements the EMailReader interface. */
|
||||
reader = E_MAIL_READER (priv->mail_view);
|
||||
|
||||
return e_mail_reader_get_formatter (reader);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
mail_shell_content_get_hide_deleted (EMailReader *reader)
|
||||
{
|
||||
return e_mail_reader_get_hide_deleted (E_MAIL_READER(E_MAIL_SHELL_CONTENT(reader)->view));
|
||||
EMailShellContentPrivate *priv;
|
||||
|
||||
priv = E_MAIL_SHELL_CONTENT_GET_PRIVATE (reader);
|
||||
|
||||
/* Forward this to our internal EMailView, which
|
||||
* also implements the EMailReader interface. */
|
||||
reader = E_MAIL_READER (priv->mail_view);
|
||||
|
||||
return e_mail_reader_get_hide_deleted (reader);
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
mail_shell_content_get_message_list (EMailReader *reader)
|
||||
{
|
||||
return e_mail_reader_get_message_list (E_MAIL_READER(E_MAIL_SHELL_CONTENT(reader)->view));
|
||||
EMailShellContentPrivate *priv;
|
||||
|
||||
priv = E_MAIL_SHELL_CONTENT_GET_PRIVATE (reader);
|
||||
|
||||
/* Forward this to our internal EMailView, which
|
||||
* also implements the EMailReader interface. */
|
||||
reader = E_MAIL_READER (priv->mail_view);
|
||||
|
||||
return e_mail_reader_get_message_list (reader);
|
||||
}
|
||||
|
||||
static GtkMenu *
|
||||
mail_shell_content_get_popup_menu (EMailReader *reader)
|
||||
{
|
||||
return e_mail_reader_get_popup_menu (E_MAIL_READER(E_MAIL_SHELL_CONTENT(reader)->view));
|
||||
EMailShellContentPrivate *priv;
|
||||
|
||||
priv = E_MAIL_SHELL_CONTENT_GET_PRIVATE (reader);
|
||||
|
||||
/* Forward this to our internal EMailView, which
|
||||
* also implements the EMailReader interface. */
|
||||
reader = E_MAIL_READER (priv->mail_view);
|
||||
|
||||
return e_mail_reader_get_popup_menu (reader);
|
||||
}
|
||||
|
||||
static EShellBackend *
|
||||
mail_shell_content_get_shell_backend (EMailReader *reader)
|
||||
{
|
||||
return e_mail_reader_get_shell_backend (E_MAIL_READER(E_MAIL_SHELL_CONTENT(reader)->view));
|
||||
EMailShellContentPrivate *priv;
|
||||
|
||||
priv = E_MAIL_SHELL_CONTENT_GET_PRIVATE (reader);
|
||||
|
||||
/* Forward this to our internal EMailView, which
|
||||
* also implements the EMailReader interface. */
|
||||
reader = E_MAIL_READER (priv->mail_view);
|
||||
|
||||
return e_mail_reader_get_shell_backend (reader);
|
||||
}
|
||||
|
||||
static GtkWindow *
|
||||
mail_shell_content_get_window (EMailReader *reader)
|
||||
{
|
||||
return e_mail_reader_get_window (E_MAIL_READER(E_MAIL_SHELL_CONTENT(reader)->view));
|
||||
EMailShellContentPrivate *priv;
|
||||
|
||||
priv = E_MAIL_SHELL_CONTENT_GET_PRIVATE (reader);
|
||||
|
||||
/* Forward this to our internal EMailView, which
|
||||
* also implements the EMailReader interface. */
|
||||
reader = E_MAIL_READER (priv->mail_view);
|
||||
|
||||
return e_mail_reader_get_window (reader);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -224,93 +333,29 @@ mail_shell_content_set_folder (EMailReader *reader,
|
||||
CamelFolder *folder,
|
||||
const gchar *folder_uri)
|
||||
{
|
||||
return e_mail_reader_set_folder (E_MAIL_READER(E_MAIL_SHELL_CONTENT(reader)->view),
|
||||
folder,
|
||||
folder_uri);
|
||||
EMailShellContentPrivate *priv;
|
||||
|
||||
priv = E_MAIL_SHELL_CONTENT_GET_PRIVATE (reader);
|
||||
|
||||
/* Forward this to our internal EMailView, which
|
||||
* also implements the EMailReader interface. */
|
||||
reader = E_MAIL_READER (priv->mail_view);
|
||||
|
||||
return e_mail_reader_set_folder (reader, folder, folder_uri);
|
||||
}
|
||||
|
||||
static void
|
||||
mail_shell_content_show_search_bar (EMailReader *reader)
|
||||
{
|
||||
e_mail_reader_show_search_bar (E_MAIL_READER(E_MAIL_SHELL_CONTENT(reader)->view));
|
||||
}
|
||||
EMailShellContentPrivate *priv;
|
||||
|
||||
static void
|
||||
mail_shell_content_set_property (GObject *object,
|
||||
guint property_id,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
switch (property_id) {
|
||||
case PROP_GROUP_BY_THREADS:
|
||||
g_object_set (
|
||||
E_MAIL_READER (E_MAIL_SHELL_CONTENT(object)->view),
|
||||
"group-by-threads",
|
||||
g_value_get_boolean (value),
|
||||
NULL);
|
||||
return;
|
||||
priv = E_MAIL_SHELL_CONTENT_GET_PRIVATE (reader);
|
||||
|
||||
case PROP_ORIENTATION:
|
||||
e_mail_view_set_orientation (
|
||||
E_MAIL_SHELL_CONTENT(object)->view,
|
||||
g_value_get_enum (value));
|
||||
return;
|
||||
/* Forward this to our internal EMailView, which
|
||||
* also implements the EMailReader interface. */
|
||||
reader = E_MAIL_READER (priv->mail_view);
|
||||
|
||||
case PROP_PREVIEW_VISIBLE:
|
||||
e_mail_view_set_preview_visible (
|
||||
E_MAIL_SHELL_CONTENT(object)->view,
|
||||
g_value_get_boolean (value));
|
||||
return;
|
||||
|
||||
case PROP_SHOW_DELETED:
|
||||
e_mail_view_set_show_deleted (
|
||||
E_MAIL_SHELL_CONTENT(object)->view,
|
||||
g_value_get_boolean (value));
|
||||
return;
|
||||
}
|
||||
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
}
|
||||
|
||||
static void
|
||||
mail_shell_content_get_property (GObject *object,
|
||||
guint property_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
switch (property_id) {
|
||||
case PROP_GROUP_BY_THREADS: {
|
||||
gboolean thr;
|
||||
|
||||
g_object_get ((GObject *)E_MAIL_SHELL_CONTENT(object)->view, "group-by-threads", &thr, NULL);
|
||||
g_value_set_boolean (
|
||||
value,
|
||||
thr);
|
||||
return;
|
||||
}
|
||||
case PROP_ORIENTATION:
|
||||
g_value_set_enum (
|
||||
value,
|
||||
e_mail_view_get_orientation (
|
||||
E_MAIL_SHELL_CONTENT(object)->view));
|
||||
return;
|
||||
|
||||
case PROP_PREVIEW_VISIBLE:
|
||||
g_value_set_boolean (
|
||||
value,
|
||||
e_mail_view_get_preview_visible (
|
||||
E_MAIL_SHELL_CONTENT(object)->view));
|
||||
return;
|
||||
|
||||
case PROP_SHOW_DELETED:
|
||||
g_value_set_boolean (
|
||||
value,
|
||||
e_mail_view_get_show_deleted (
|
||||
E_MAIL_SHELL_CONTENT(object)->view));
|
||||
return;
|
||||
}
|
||||
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
|
||||
e_mail_reader_show_search_bar (reader);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -323,10 +368,10 @@ mail_shell_content_class_init (EMailShellContentClass *class)
|
||||
g_type_class_add_private (class, sizeof (EMailShellContentPrivate));
|
||||
|
||||
object_class = G_OBJECT_CLASS (class);
|
||||
object_class->dispose = mail_shell_content_dispose;
|
||||
object_class->constructed = mail_shell_content_constructed;
|
||||
object_class->set_property = mail_shell_content_set_property;
|
||||
object_class->get_property = mail_shell_content_get_property;
|
||||
object_class->dispose = mail_shell_content_dispose;
|
||||
object_class->constructed = mail_shell_content_constructed;
|
||||
|
||||
shell_content_class = E_SHELL_CONTENT_CLASS (class);
|
||||
shell_content_class->check_state = mail_shell_content_check_state;
|
||||
@ -339,26 +384,13 @@ mail_shell_content_class_init (EMailShellContentClass *class)
|
||||
|
||||
g_object_class_install_property (
|
||||
object_class,
|
||||
PROP_PREVIEW_VISIBLE,
|
||||
g_param_spec_boolean (
|
||||
"preview-visible",
|
||||
"Preview is Visible",
|
||||
"Whether the preview pane is visible",
|
||||
TRUE,
|
||||
G_PARAM_READWRITE));
|
||||
|
||||
g_object_class_install_property (
|
||||
object_class,
|
||||
PROP_SHOW_DELETED,
|
||||
g_param_spec_boolean (
|
||||
"show-deleted",
|
||||
"Show Deleted",
|
||||
PROP_MAIL_VIEW,
|
||||
g_param_spec_object (
|
||||
"mail-view",
|
||||
"Mail View",
|
||||
NULL,
|
||||
FALSE,
|
||||
G_PARAM_READWRITE));
|
||||
|
||||
g_object_class_override_property (
|
||||
object_class, PROP_ORIENTATION, "orientation");
|
||||
E_TYPE_MAIL_VIEW,
|
||||
G_PARAM_READABLE));
|
||||
}
|
||||
|
||||
static void
|
||||
@ -413,12 +445,6 @@ e_mail_shell_content_register_type (GTypeModule *type_module)
|
||||
NULL /* interface_data */
|
||||
};
|
||||
|
||||
static const GInterfaceInfo orientable_info = {
|
||||
(GInterfaceInitFunc) NULL,
|
||||
(GInterfaceFinalizeFunc) NULL,
|
||||
NULL /* interface_data */
|
||||
};
|
||||
|
||||
mail_shell_content_type = g_type_module_register_type (
|
||||
type_module, E_TYPE_SHELL_CONTENT,
|
||||
"EMailShellContent", &type_info, 0);
|
||||
@ -426,10 +452,6 @@ e_mail_shell_content_register_type (GTypeModule *type_module)
|
||||
g_type_module_add_interface (
|
||||
type_module, mail_shell_content_type,
|
||||
E_TYPE_MAIL_READER, &reader_info);
|
||||
|
||||
g_type_module_add_interface (
|
||||
type_module, mail_shell_content_type,
|
||||
GTK_TYPE_ORIENTABLE, &orientable_info);
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
@ -442,6 +464,15 @@ e_mail_shell_content_new (EShellView *shell_view)
|
||||
"shell-view", shell_view, NULL);
|
||||
}
|
||||
|
||||
EMailView *
|
||||
e_mail_shell_content_get_mail_view (EMailShellContent *mail_shell_content)
|
||||
{
|
||||
g_return_val_if_fail (
|
||||
E_IS_MAIL_SHELL_CONTENT (mail_shell_content), NULL);
|
||||
|
||||
return mail_shell_content->priv->mail_view;
|
||||
}
|
||||
|
||||
EShellSearchbar *
|
||||
e_mail_shell_content_get_searchbar (EMailShellContent *mail_shell_content)
|
||||
{
|
||||
@ -458,23 +489,3 @@ e_mail_shell_content_get_searchbar (EMailShellContent *mail_shell_content)
|
||||
|
||||
return E_SHELL_SEARCHBAR (searchbar);
|
||||
}
|
||||
|
||||
void
|
||||
e_mail_shell_content_set_search_strings (EMailShellContent *mail_shell_content,
|
||||
GSList *search_strings)
|
||||
{
|
||||
e_mail_view_set_search_strings (mail_shell_content->view, search_strings);
|
||||
}
|
||||
|
||||
GalViewInstance *
|
||||
e_mail_shell_content_get_view_instance (EMailShellContent *mail_shell_content)
|
||||
{
|
||||
return e_mail_view_get_view_instance (mail_shell_content->view);
|
||||
}
|
||||
|
||||
void
|
||||
e_mail_shell_content_update_view_instance (EMailShellContent *mail_shell_content)
|
||||
{
|
||||
e_mail_view_update_view_instance (mail_shell_content->view);
|
||||
}
|
||||
|
||||
|
||||
@ -55,7 +55,6 @@ typedef struct _EMailShellContentPrivate EMailShellContentPrivate;
|
||||
|
||||
struct _EMailShellContent {
|
||||
EShellContent parent;
|
||||
EMailView *view;
|
||||
EMailShellContentPrivate *priv;
|
||||
};
|
||||
|
||||
@ -67,27 +66,11 @@ GType e_mail_shell_content_get_type (void);
|
||||
void e_mail_shell_content_register_type
|
||||
(GTypeModule *type_module);
|
||||
GtkWidget * e_mail_shell_content_new(EShellView *shell_view);
|
||||
gboolean e_mail_shell_content_get_preview_visible
|
||||
EMailView * e_mail_shell_content_get_mail_view
|
||||
(EMailShellContent *mail_shell_content);
|
||||
void e_mail_shell_content_set_preview_visible
|
||||
(EMailShellContent *mail_shell_content,
|
||||
gboolean preview_visible);
|
||||
EShellSearchbar *
|
||||
e_mail_shell_content_get_searchbar
|
||||
(EMailShellContent *mail_shell_content);
|
||||
gboolean e_mail_shell_content_get_show_deleted
|
||||
(EMailShellContent *mail_shell_content);
|
||||
void e_mail_shell_content_set_show_deleted
|
||||
(EMailShellContent *mail_shell_content,
|
||||
gboolean show_deleted);
|
||||
GalViewInstance *
|
||||
e_mail_shell_content_get_view_instance
|
||||
(EMailShellContent *mail_shell_content);
|
||||
void e_mail_shell_content_set_search_strings
|
||||
(EMailShellContent *mail_shell_content,
|
||||
GSList *search_strings);
|
||||
void e_mail_shell_content_update_view_instance
|
||||
(EMailShellContent *mail_shell_content);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
||||
@ -28,6 +28,7 @@ action_gal_save_custom_view_cb (GtkAction *action,
|
||||
{
|
||||
EMailShellContent *mail_shell_content;
|
||||
EShellView *shell_view;
|
||||
EMailView *mail_view;
|
||||
GalViewInstance *view_instance;
|
||||
|
||||
/* All shell views repond to the activation of this action,
|
||||
@ -38,7 +39,9 @@ action_gal_save_custom_view_cb (GtkAction *action,
|
||||
return;
|
||||
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
view_instance = e_mail_shell_content_get_view_instance (mail_shell_content);
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
view_instance = e_mail_view_get_view_instance (mail_view);
|
||||
|
||||
gal_view_instance_save_as (view_instance);
|
||||
}
|
||||
|
||||
@ -87,6 +90,7 @@ action_mail_create_search_folder_cb (GtkAction *action,
|
||||
EShellSearchbar *searchbar;
|
||||
EFilterRule *search_rule;
|
||||
EMVFolderRule *vfolder_rule;
|
||||
EMailView *mail_view;
|
||||
const gchar *folder_uri;
|
||||
const gchar *search_text;
|
||||
gchar *rule_name;
|
||||
@ -98,13 +102,14 @@ action_mail_create_search_folder_cb (GtkAction *action,
|
||||
g_return_if_fail (search_rule != NULL);
|
||||
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
searchbar = e_mail_shell_content_get_searchbar (mail_shell_content);
|
||||
search_text = e_shell_searchbar_get_search_text (searchbar);
|
||||
|
||||
search_text = e_shell_searchbar_get_search_text (searchbar);
|
||||
if (search_text == NULL || *search_text == '\0')
|
||||
search_text = "''";
|
||||
|
||||
reader = E_MAIL_READER (mail_shell_content->view);
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
folder_uri = e_mail_reader_get_folder_uri (reader);
|
||||
|
||||
search_rule = vfolder_clone_rule (search_rule);
|
||||
@ -212,13 +217,15 @@ static void
|
||||
action_mail_folder_mark_all_as_read_cb (GtkAction *action,
|
||||
EMailShellView *mail_shell_view)
|
||||
{
|
||||
EMailReader *reader;
|
||||
EShellWindow *shell_window;
|
||||
EShellView *shell_view;
|
||||
EShellWindow *shell_window;
|
||||
EMailShellContent *mail_shell_content;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
CamelFolder *folder;
|
||||
GtkWindow *parent;
|
||||
MailFolderCache *cache;
|
||||
MessageList *message_list;
|
||||
GtkWidget *message_list;
|
||||
GPtrArray *uids;
|
||||
const gchar *key;
|
||||
const gchar *prompt;
|
||||
@ -228,7 +235,10 @@ action_mail_folder_mark_all_as_read_cb (GtkAction *action,
|
||||
shell_window = e_shell_view_get_shell_window (shell_view);
|
||||
parent = GTK_WINDOW (shell_window);
|
||||
|
||||
reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content->view);
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
|
||||
folder = e_mail_reader_get_folder (reader);
|
||||
g_return_if_fail (folder != NULL);
|
||||
@ -243,10 +253,10 @@ action_mail_folder_mark_all_as_read_cb (GtkAction *action,
|
||||
if (!em_utils_prompt_user (parent, key, prompt, NULL))
|
||||
return;
|
||||
|
||||
message_list = MESSAGE_LIST (e_mail_reader_get_message_list (reader));
|
||||
message_list = e_mail_reader_get_message_list (reader);
|
||||
g_return_if_fail (message_list != NULL);
|
||||
|
||||
uids = message_list_get_uids (message_list);
|
||||
uids = message_list_get_uids (MESSAGE_LIST (message_list));
|
||||
|
||||
camel_folder_freeze (folder);
|
||||
for (ii = 0; ii < uids->len; ii++)
|
||||
@ -364,10 +374,15 @@ static void
|
||||
action_mail_folder_select_thread_cb (GtkAction *action,
|
||||
EMailShellView *mail_shell_view)
|
||||
{
|
||||
EMailShellContent *mail_shell_content;
|
||||
GtkWidget *message_list;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
|
||||
reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content->view);
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
message_list = e_mail_reader_get_message_list (reader);
|
||||
|
||||
message_list_select_thread (MESSAGE_LIST (message_list));
|
||||
@ -377,10 +392,15 @@ static void
|
||||
action_mail_folder_select_subthread_cb (GtkAction *action,
|
||||
EMailShellView *mail_shell_view)
|
||||
{
|
||||
EMailShellContent *mail_shell_content;
|
||||
GtkWidget *message_list;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
|
||||
reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content->view);
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
message_list = e_mail_reader_get_message_list (reader);
|
||||
|
||||
message_list_select_subthread (MESSAGE_LIST (message_list));
|
||||
@ -419,7 +439,9 @@ static void
|
||||
action_mail_label_cb (GtkToggleAction *action,
|
||||
EMailShellView *mail_shell_view)
|
||||
{
|
||||
EMailShellContent *mail_shell_content;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
CamelFolder *folder;
|
||||
GPtrArray *uids;
|
||||
const gchar *tag;
|
||||
@ -428,7 +450,10 @@ action_mail_label_cb (GtkToggleAction *action,
|
||||
tag = g_object_get_data (G_OBJECT (action), "tag");
|
||||
g_return_if_fail (tag != NULL);
|
||||
|
||||
reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content->view);
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
folder = e_mail_reader_get_folder (reader);
|
||||
uids = e_mail_reader_get_selected_uids (reader);
|
||||
|
||||
@ -452,12 +477,14 @@ action_mail_label_new_cb (GtkAction *action,
|
||||
EMailShellView *mail_shell_view)
|
||||
{
|
||||
EShell *shell;
|
||||
EShellSettings *shell_settings;
|
||||
EShellWindow *shell_window;
|
||||
EShellView *shell_view;
|
||||
EShellWindow *shell_window;
|
||||
EShellSettings *shell_settings;
|
||||
EMailShellContent *mail_shell_content;
|
||||
EMailLabelDialog *label_dialog;
|
||||
EMailLabelListStore *store;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
CamelFolder *folder;
|
||||
GtkTreeModel *model;
|
||||
GtkTreeIter iter;
|
||||
@ -502,7 +529,10 @@ action_mail_label_new_cb (GtkAction *action,
|
||||
gtk_tree_model_iter_nth_child (model, &iter, NULL, n_children - 1);
|
||||
label_tag = e_mail_label_list_store_get_tag (store, &iter);
|
||||
|
||||
reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content->view);
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
folder = e_mail_reader_get_folder (reader);
|
||||
uids = e_mail_reader_get_selected_uids (reader);
|
||||
|
||||
@ -524,9 +554,11 @@ action_mail_label_none_cb (GtkAction *action,
|
||||
{
|
||||
EShell *shell;
|
||||
EShellView *shell_view;
|
||||
EShellSettings *shell_settings;
|
||||
EShellWindow *shell_window;
|
||||
EShellSettings *shell_settings;
|
||||
EMailShellContent *mail_shell_content;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
GtkTreeModel *tree_model;
|
||||
CamelFolder *folder;
|
||||
GtkTreeIter iter;
|
||||
@ -542,7 +574,10 @@ action_mail_label_none_cb (GtkAction *action,
|
||||
tree_model = e_shell_settings_get_object (
|
||||
shell_settings, "mail-label-list-store");
|
||||
|
||||
reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content->view);
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
folder = e_mail_reader_get_folder (reader);
|
||||
uids = e_mail_reader_get_selected_uids (reader);
|
||||
|
||||
@ -573,11 +608,16 @@ static void
|
||||
action_mail_show_deleted_cb (GtkToggleAction *action,
|
||||
EMailShellView *mail_shell_view)
|
||||
{
|
||||
EMailShellContent *mail_shell_content;
|
||||
GtkWidget *message_list;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
gboolean active;
|
||||
|
||||
reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content->view);
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
message_list = e_mail_reader_get_message_list (reader);
|
||||
|
||||
active = gtk_toggle_action_get_active (action);
|
||||
@ -592,10 +632,12 @@ action_mail_smart_backward_cb (GtkAction *action,
|
||||
EShellView *shell_view;
|
||||
EShellWindow *shell_window;
|
||||
EShellSettings *shell_settings;
|
||||
EMailShellContent *mail_shell_content;
|
||||
EMailShellSidebar *mail_shell_sidebar;
|
||||
EMFolderTree *folder_tree;
|
||||
EMFormatHTML *formatter;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
GtkWidget *message_list;
|
||||
GtkToggleAction *toggle_action;
|
||||
EWebView *web_view;
|
||||
@ -609,10 +651,13 @@ action_mail_smart_backward_cb (GtkAction *action,
|
||||
shell = e_shell_window_get_shell (shell_window);
|
||||
shell_settings = e_shell_get_shell_settings (shell);
|
||||
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
mail_shell_sidebar = mail_shell_view->priv->mail_shell_sidebar;
|
||||
folder_tree = e_mail_shell_sidebar_get_folder_tree (mail_shell_sidebar);
|
||||
|
||||
reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content->view);
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
formatter = e_mail_reader_get_formatter (reader);
|
||||
message_list = e_mail_reader_get_message_list (reader);
|
||||
|
||||
@ -658,10 +703,12 @@ action_mail_smart_forward_cb (GtkAction *action,
|
||||
EShellView *shell_view;
|
||||
EShellWindow *shell_window;
|
||||
EShellSettings *shell_settings;
|
||||
EMailShellContent *mail_shell_content;
|
||||
EMailShellSidebar *mail_shell_sidebar;
|
||||
EMFolderTree *folder_tree;
|
||||
EMFormatHTML *formatter;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
GtkWidget *message_list;
|
||||
GtkToggleAction *toggle_action;
|
||||
EWebView *web_view;
|
||||
@ -675,10 +722,13 @@ action_mail_smart_forward_cb (GtkAction *action,
|
||||
shell = e_shell_window_get_shell (shell_window);
|
||||
shell_settings = e_shell_get_shell_settings (shell);
|
||||
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
mail_shell_sidebar = mail_shell_view->priv->mail_shell_sidebar;
|
||||
folder_tree = e_mail_shell_sidebar_get_folder_tree (mail_shell_sidebar);
|
||||
|
||||
reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content->view);
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
formatter = e_mail_reader_get_formatter (reader);
|
||||
message_list = e_mail_reader_get_message_list (reader);
|
||||
|
||||
@ -727,10 +777,15 @@ static void
|
||||
action_mail_threads_collapse_all_cb (GtkAction *action,
|
||||
EMailShellView *mail_shell_view)
|
||||
{
|
||||
EMailShellContent *mail_shell_content;
|
||||
GtkWidget *message_list;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
|
||||
reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content->view);
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
message_list = e_mail_reader_get_message_list (reader);
|
||||
|
||||
message_list_set_threaded_collapse_all (MESSAGE_LIST (message_list));
|
||||
@ -740,10 +795,15 @@ static void
|
||||
action_mail_threads_expand_all_cb (GtkAction *action,
|
||||
EMailShellView *mail_shell_view)
|
||||
{
|
||||
EMailShellContent *mail_shell_content;
|
||||
GtkWidget *message_list;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
|
||||
reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content->view);
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
message_list = e_mail_reader_get_message_list (reader);
|
||||
|
||||
message_list_set_threaded_expand_all (MESSAGE_LIST (message_list));
|
||||
@ -793,11 +853,11 @@ action_mail_view_cb (GtkRadioAction *action,
|
||||
EMailShellView *mail_shell_view)
|
||||
{
|
||||
EMailShellContent *mail_shell_content;
|
||||
GtkOrientable *orientable;
|
||||
GtkOrientation orientation;
|
||||
EMailView *mail_view;
|
||||
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
orientable = GTK_ORIENTABLE (mail_shell_content);
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
switch (gtk_radio_action_get_current_value (action)) {
|
||||
case 0:
|
||||
@ -810,7 +870,7 @@ action_mail_view_cb (GtkRadioAction *action,
|
||||
g_return_if_reached ();
|
||||
}
|
||||
|
||||
gtk_orientable_set_orientation (orientable, orientation);
|
||||
e_mail_view_set_orientation (mail_view, orientation);
|
||||
}
|
||||
|
||||
static GtkActionEntry mail_entries[] = {
|
||||
@ -1289,6 +1349,7 @@ e_mail_shell_view_actions_init (EMailShellView *mail_shell_view)
|
||||
EShell *shell;
|
||||
EShellSearchbar *searchbar;
|
||||
EActionComboBox *combo_box;
|
||||
EMailView *mail_view;
|
||||
GtkActionGroup *action_group;
|
||||
GtkAction *action;
|
||||
GConfBridge *bridge;
|
||||
@ -1302,6 +1363,7 @@ e_mail_shell_view_actions_init (EMailShellView *mail_shell_view)
|
||||
shell = e_shell_window_get_shell (shell_window);
|
||||
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
searchbar = e_mail_shell_content_get_searchbar (mail_shell_content);
|
||||
|
||||
/* Mail Actions */
|
||||
@ -1371,7 +1433,7 @@ e_mail_shell_view_actions_init (EMailShellView *mail_shell_view)
|
||||
|
||||
e_mutual_binding_new (
|
||||
ACTION (MAIL_PREVIEW), "active",
|
||||
mail_shell_content, "preview-visible");
|
||||
mail_view, "preview-visible");
|
||||
|
||||
e_mutual_binding_new (
|
||||
ACTION (MAIL_THREADS_GROUP_BY), "active",
|
||||
@ -1387,7 +1449,7 @@ e_mail_shell_view_actions_init (EMailShellView *mail_shell_view)
|
||||
|
||||
e_mutual_binding_new (
|
||||
ACTION (MAIL_SHOW_DELETED), "active",
|
||||
mail_shell_content, "show-deleted");
|
||||
mail_view, "show-deleted");
|
||||
|
||||
/* Keep the sensitivity of "Create Search Folder from Search"
|
||||
* in sync with "Save Search" so that its only selectable when
|
||||
@ -1464,10 +1526,12 @@ void
|
||||
e_mail_shell_view_update_popup_labels (EMailShellView *mail_shell_view)
|
||||
{
|
||||
EShell *shell;
|
||||
EShellSettings *shell_settings;
|
||||
EShellWindow *shell_window;
|
||||
EShellView *shell_view;
|
||||
EShellWindow *shell_window;
|
||||
EShellSettings *shell_settings;
|
||||
EMailShellContent *mail_shell_content;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
GtkUIManager *ui_manager;
|
||||
GtkActionGroup *action_group;
|
||||
GtkTreeModel *tree_model;
|
||||
@ -1498,7 +1562,10 @@ e_mail_shell_view_update_popup_labels (EMailShellView *mail_shell_view)
|
||||
gtk_ui_manager_remove_ui (ui_manager, merge_id);
|
||||
e_action_group_remove_all_actions (action_group);
|
||||
|
||||
reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content->view);
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
uids = e_mail_reader_get_selected_uids (reader);
|
||||
|
||||
valid = gtk_tree_model_get_iter_first (tree_model, &iter);
|
||||
|
||||
@ -32,12 +32,18 @@ mail_shell_view_folder_tree_selected_cb (EMailShellView *mail_shell_view,
|
||||
guint32 flags,
|
||||
EMFolderTree *folder_tree)
|
||||
{
|
||||
EMailShellContent *mail_shell_content;
|
||||
EShellView *shell_view;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
gboolean folder_selected;
|
||||
|
||||
shell_view = E_SHELL_VIEW (mail_shell_view);
|
||||
reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content->view);
|
||||
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
|
||||
folder_selected =
|
||||
!(flags & CAMEL_FOLDER_NOSELECT) &&
|
||||
@ -55,9 +61,13 @@ static gboolean
|
||||
mail_shell_view_folder_tree_key_press_event_cb (EMailShellView *mail_shell_view,
|
||||
GdkEventKey *event)
|
||||
{
|
||||
EMailReader *reader;
|
||||
EMailShellContent *mail_shell_content;
|
||||
EMailView *mail_view;
|
||||
gboolean handled = FALSE;
|
||||
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
if ((event->state & GDK_CONTROL_MASK) != 0)
|
||||
goto ctrl;
|
||||
|
||||
@ -89,8 +99,7 @@ ctrl:
|
||||
|
||||
emit:
|
||||
/* Forward the key press to the EMailReader interface. */
|
||||
reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content->view);
|
||||
g_signal_emit_by_name (reader, "key-press-event", event, &handled);
|
||||
g_signal_emit_by_name (mail_view, "key-press-event", event, &handled);
|
||||
|
||||
exit:
|
||||
return handled;
|
||||
@ -100,19 +109,24 @@ static void
|
||||
mail_shell_view_folder_tree_selection_done_cb (EMailShellView *mail_shell_view,
|
||||
GtkWidget *menu)
|
||||
{
|
||||
EMailShellContent *mail_shell_content;
|
||||
EMailShellSidebar *mail_shell_sidebar;
|
||||
EMFolderTree *folder_tree;
|
||||
GtkWidget *message_list;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
const gchar *list_uri;
|
||||
gchar *tree_uri;
|
||||
|
||||
reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content->view);
|
||||
message_list = e_mail_reader_get_message_list (reader);
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
mail_shell_sidebar = mail_shell_view->priv->mail_shell_sidebar;
|
||||
folder_tree = e_mail_shell_sidebar_get_folder_tree (mail_shell_sidebar);
|
||||
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
message_list = e_mail_reader_get_message_list (reader);
|
||||
|
||||
/* Don't use e_mail_reader_get_folder_uri() here. The fact that
|
||||
* the method gets the folder URI from the message list is supposed
|
||||
* to be a hidden implementation detail, and we want to explicitly
|
||||
@ -223,17 +237,22 @@ mail_shell_view_popup_event_cb (EMailShellView *mail_shell_view,
|
||||
GdkEventButton *event,
|
||||
const gchar *uri)
|
||||
{
|
||||
EMailShellContent *mail_shell_content;
|
||||
EShellView *shell_view;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
GtkMenu *menu;
|
||||
|
||||
if (uri != NULL)
|
||||
return FALSE;
|
||||
|
||||
shell_view = E_SHELL_VIEW (mail_shell_view);
|
||||
reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content->view);
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
menu = e_mail_reader_get_popup_menu (reader);
|
||||
|
||||
shell_view = E_SHELL_VIEW (mail_shell_view);
|
||||
e_shell_view_update_actions (shell_view);
|
||||
|
||||
if (event == NULL)
|
||||
@ -259,7 +278,9 @@ mail_shell_view_scroll_cb (EMailShellView *mail_shell_view,
|
||||
EShellView *shell_view;
|
||||
EShellWindow *shell_window;
|
||||
EShellSettings *shell_settings;
|
||||
EMailShellContent *mail_shell_content;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
EWebView *web_view;
|
||||
GtkWidget *message_list;
|
||||
gboolean magic_spacebar;
|
||||
@ -283,7 +304,10 @@ mail_shell_view_scroll_cb (EMailShellView *mail_shell_view,
|
||||
if (!magic_spacebar)
|
||||
return;
|
||||
|
||||
reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content->view);
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
message_list = e_mail_reader_get_message_list (reader);
|
||||
|
||||
if (scroll_type == GTK_SCROLL_PAGE_FORWARD)
|
||||
@ -372,17 +396,22 @@ static void
|
||||
mail_shell_view_prepare_for_quit_cb (EMailShellView *mail_shell_view,
|
||||
EActivity *activity)
|
||||
{
|
||||
EMailShellContent *mail_shell_content;
|
||||
CamelFolder *folder;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
GtkWidget *message_list;
|
||||
|
||||
/* If we got here, it means the application is shutting down
|
||||
* and this is the last EMailShellView instance. Synchronize
|
||||
* the currently selected folder before we terminate. */
|
||||
|
||||
reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content->view);
|
||||
message_list = e_mail_reader_get_message_list (reader);
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
folder = e_mail_reader_get_folder (reader);
|
||||
message_list = e_mail_reader_get_message_list (reader);
|
||||
|
||||
message_list_save_state (MESSAGE_LIST (message_list));
|
||||
|
||||
@ -427,10 +456,13 @@ mail_shell_view_notify_view_id_cb (EMailShellView *mail_shell_view)
|
||||
{
|
||||
EMailShellContent *mail_shell_content;
|
||||
GalViewInstance *view_instance;
|
||||
EMailView *mail_view;
|
||||
const gchar *view_id;
|
||||
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
view_instance = e_mail_shell_content_get_view_instance (mail_shell_content);
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
view_instance = e_mail_view_get_view_instance (mail_view);
|
||||
view_id = e_shell_view_get_view_id (E_SHELL_VIEW (mail_shell_view));
|
||||
|
||||
/* A NULL view ID implies we're in a custom view. But you can
|
||||
@ -481,6 +513,7 @@ e_mail_shell_view_private_constructed (EMailShellView *mail_shell_view)
|
||||
GtkUIManager *ui_manager;
|
||||
GtkWidget *message_list;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
EWebView *web_view;
|
||||
const gchar *source;
|
||||
guint merge_id;
|
||||
@ -513,19 +546,21 @@ e_mail_shell_view_private_constructed (EMailShellView *mail_shell_view)
|
||||
priv->mail_shell_content = g_object_ref (shell_content);
|
||||
priv->mail_shell_sidebar = g_object_ref (shell_sidebar);
|
||||
|
||||
reader = E_MAIL_READER (E_MAIL_SHELL_CONTENT(shell_content)->view);
|
||||
formatter = e_mail_reader_get_formatter (reader);
|
||||
message_list = e_mail_reader_get_message_list (reader);
|
||||
|
||||
mail_shell_sidebar = E_MAIL_SHELL_SIDEBAR (shell_sidebar);
|
||||
folder_tree = e_mail_shell_sidebar_get_folder_tree (mail_shell_sidebar);
|
||||
em_folder_tree_set_selectable_widget (folder_tree, message_list);
|
||||
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (folder_tree));
|
||||
|
||||
mail_shell_content = E_MAIL_SHELL_CONTENT (shell_content);
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
searchbar = e_mail_shell_content_get_searchbar (mail_shell_content);
|
||||
combo_box = e_shell_searchbar_get_scope_combo_box (searchbar);
|
||||
|
||||
reader = E_MAIL_READER (shell_content);
|
||||
formatter = e_mail_reader_get_formatter (reader);
|
||||
message_list = e_mail_reader_get_message_list (reader);
|
||||
|
||||
em_folder_tree_set_selectable_widget (folder_tree, message_list);
|
||||
|
||||
/* The folder tree and scope combo box are both insensitive
|
||||
* when searching beyond the currently selected folder. */
|
||||
e_mutual_binding_new (
|
||||
@ -571,8 +606,8 @@ e_mail_shell_view_private_constructed (EMailShellView *mail_shell_view)
|
||||
|
||||
g_signal_connect_object (
|
||||
reader, "folder-loaded",
|
||||
G_CALLBACK (e_mail_shell_content_update_view_instance),
|
||||
shell_content, G_CONNECT_SWAPPED);
|
||||
G_CALLBACK (e_mail_view_update_view_instance),
|
||||
mail_view, G_CONNECT_SWAPPED);
|
||||
|
||||
/* Use the same callback as "changed". */
|
||||
g_signal_connect_object (
|
||||
@ -634,6 +669,11 @@ e_mail_shell_view_private_constructed (EMailShellView *mail_shell_view)
|
||||
e_mail_shell_view_actions_init (mail_shell_view);
|
||||
e_mail_shell_view_update_search_filter (mail_shell_view);
|
||||
|
||||
/* This binding must come after e_mail_reader_init(). */
|
||||
e_mutual_binding_new (
|
||||
shell_content, "group-by-threads",
|
||||
mail_view, "group-by-threads");
|
||||
|
||||
/* Populate built-in rules for search entry popup menu.
|
||||
* Keep the assertions, please. If the conditions aren't
|
||||
* met we're going to crash anyway, just more mysteriously. */
|
||||
@ -707,6 +747,7 @@ e_mail_shell_view_restore_state (EMailShellView *mail_shell_view)
|
||||
EMailShellContent *mail_shell_content;
|
||||
EShellSearchbar *searchbar;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
CamelFolder *folder;
|
||||
CamelVeeFolder *vee_folder;
|
||||
const gchar *old_state_group;
|
||||
@ -718,9 +759,10 @@ e_mail_shell_view_restore_state (EMailShellView *mail_shell_view)
|
||||
g_return_if_fail (E_IS_MAIL_SHELL_VIEW (mail_shell_view));
|
||||
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
searchbar = e_mail_shell_content_get_searchbar (mail_shell_content);
|
||||
|
||||
reader = E_MAIL_READER (mail_shell_content->view);
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
folder = e_mail_reader_get_folder (reader);
|
||||
folder_uri = e_mail_reader_get_folder_uri (reader);
|
||||
|
||||
@ -774,7 +816,9 @@ void
|
||||
e_mail_shell_view_create_filter_from_selected (EMailShellView *mail_shell_view,
|
||||
gint filter_type)
|
||||
{
|
||||
EMailShellContent *mail_shell_content;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
CamelFolder *folder;
|
||||
const gchar *filter_source;
|
||||
const gchar *folder_uri;
|
||||
@ -787,7 +831,10 @@ e_mail_shell_view_create_filter_from_selected (EMailShellView *mail_shell_view,
|
||||
|
||||
g_return_if_fail (E_IS_MAIL_SHELL_VIEW (mail_shell_view));
|
||||
|
||||
reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content->view);
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
folder = e_mail_reader_get_folder (reader);
|
||||
folder_uri = e_mail_reader_get_folder_uri (reader);
|
||||
uids = e_mail_reader_get_selected_uids (reader);
|
||||
@ -837,7 +884,9 @@ void
|
||||
e_mail_shell_view_create_vfolder_from_selected (EMailShellView *mail_shell_view,
|
||||
gint vfolder_type)
|
||||
{
|
||||
EMailShellContent *mail_shell_content;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
CamelFolder *folder;
|
||||
const gchar *folder_uri;
|
||||
GPtrArray *uids;
|
||||
@ -849,7 +898,10 @@ e_mail_shell_view_create_vfolder_from_selected (EMailShellView *mail_shell_view,
|
||||
|
||||
g_return_if_fail (E_IS_MAIL_SHELL_VIEW (mail_shell_view));
|
||||
|
||||
reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content->view);
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
folder = e_mail_reader_get_folder (reader);
|
||||
folder_uri = e_mail_reader_get_folder_uri (reader);
|
||||
uids = e_mail_reader_get_selected_uids (reader);
|
||||
@ -875,6 +927,7 @@ e_mail_shell_view_update_sidebar (EMailShellView *mail_shell_view)
|
||||
EShellSidebar *shell_sidebar;
|
||||
EShellView *shell_view;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
CamelStore *local_store;
|
||||
CamelStore *parent_store;
|
||||
CamelFolder *folder;
|
||||
@ -893,11 +946,12 @@ e_mail_shell_view_update_sidebar (EMailShellView *mail_shell_view)
|
||||
g_return_if_fail (E_IS_MAIL_SHELL_VIEW (mail_shell_view));
|
||||
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
shell_view = E_SHELL_VIEW (mail_shell_view);
|
||||
shell_sidebar = e_shell_view_get_shell_sidebar (shell_view);
|
||||
|
||||
reader = E_MAIL_READER (mail_shell_content->view);
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
folder = e_mail_reader_get_folder (reader);
|
||||
folder_uri = e_mail_reader_get_folder_uri (reader);
|
||||
|
||||
|
||||
@ -119,10 +119,15 @@ mail_shell_view_show_search_results_folder (EMailShellView *mail_shell_view,
|
||||
CamelFolder *folder,
|
||||
const gchar *folder_uri)
|
||||
{
|
||||
EMailShellContent *mail_shell_content;
|
||||
GtkWidget *message_list;
|
||||
EMailView *mail_view;
|
||||
EMailReader *reader;
|
||||
|
||||
reader = E_MAIL_READER (mail_shell_view->priv->mail_shell_content->view);
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
|
||||
message_list = e_mail_reader_get_message_list (reader);
|
||||
|
||||
message_list_freeze (MESSAGE_LIST (message_list));
|
||||
@ -177,10 +182,14 @@ mail_shell_view_toggled (EShellView *shell_view)
|
||||
basename = E_MAIL_READER_UI_DEFINITION;
|
||||
|
||||
if (view_is_active && priv->merge_id == 0) {
|
||||
EMailView *mail_view;
|
||||
|
||||
priv->merge_id = e_ui_manager_add_ui_from_file (
|
||||
E_UI_MANAGER (ui_manager), basename);
|
||||
mail_view = e_mail_shell_content_get_mail_view (
|
||||
priv->mail_shell_content);
|
||||
e_mail_reader_create_charset_menu (
|
||||
E_MAIL_READER (priv->mail_shell_content->view),
|
||||
E_MAIL_READER (mail_view),
|
||||
ui_manager, priv->merge_id);
|
||||
} else if (!view_is_active && priv->merge_id != 0) {
|
||||
gtk_ui_manager_remove_ui (ui_manager, priv->merge_id);
|
||||
@ -210,6 +219,7 @@ mail_shell_view_execute_search (EShellView *shell_view)
|
||||
GtkWidget *message_list;
|
||||
EFilterRule *rule;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
CamelVeeFolder *search_folder;
|
||||
CamelFolder *folder;
|
||||
CamelStore *store;
|
||||
@ -242,13 +252,14 @@ mail_shell_view_execute_search (EShellView *shell_view)
|
||||
shell_settings = e_shell_get_shell_settings (shell);
|
||||
|
||||
mail_shell_content = E_MAIL_SHELL_CONTENT (shell_content);
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
searchbar = e_mail_shell_content_get_searchbar (mail_shell_content);
|
||||
|
||||
mail_shell_sidebar = E_MAIL_SHELL_SIDEBAR (shell_sidebar);
|
||||
folder_tree = e_mail_shell_sidebar_get_folder_tree (mail_shell_sidebar);
|
||||
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (folder_tree));
|
||||
|
||||
reader = E_MAIL_READER (E_MAIL_SHELL_CONTENT (shell_content)->view);
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
folder = e_mail_reader_get_folder (reader);
|
||||
folder_uri = e_mail_reader_get_folder_uri (reader);
|
||||
message_list = e_mail_reader_get_message_list (reader);
|
||||
@ -698,8 +709,7 @@ execute:
|
||||
|
||||
message_list_set_search (MESSAGE_LIST (message_list), query);
|
||||
|
||||
e_mail_shell_content_set_search_strings (
|
||||
mail_shell_content, search_strings);
|
||||
e_mail_view_set_search_strings (mail_view, search_strings);
|
||||
|
||||
g_slist_foreach (search_strings, (GFunc) g_free, NULL);
|
||||
g_slist_free (search_strings);
|
||||
@ -769,6 +779,7 @@ mail_shell_view_update_actions (EShellView *shell_view)
|
||||
EShellWindow *shell_window;
|
||||
EMFolderTree *folder_tree;
|
||||
EMailReader *reader;
|
||||
EMailView *mail_view;
|
||||
EAccount *account = NULL;
|
||||
GtkAction *action;
|
||||
const gchar *label;
|
||||
@ -795,7 +806,9 @@ mail_shell_view_update_actions (EShellView *shell_view)
|
||||
shell_window = e_shell_view_get_shell_window (shell_view);
|
||||
|
||||
mail_shell_content = mail_shell_view->priv->mail_shell_content;
|
||||
reader = E_MAIL_READER (mail_shell_content->view);
|
||||
mail_view = e_mail_shell_content_get_mail_view (mail_shell_content);
|
||||
|
||||
reader = E_MAIL_READER (mail_view);
|
||||
state = e_mail_reader_check_state (reader);
|
||||
e_mail_reader_update_actions (reader, state);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user