mirror of https://github.com/djcb/mu.git
* improve mu-widgets;
- support notes in mail body view - support cmd: pseudo urls in such views
This commit is contained in:
parent
920f714859
commit
e048b9607f
|
@ -35,9 +35,14 @@ enum {
|
|||
LAST_SIGNAL
|
||||
};
|
||||
|
||||
|
||||
struct _MuMsgBodyViewPrivate {
|
||||
WebKitWebSettings *_settings;
|
||||
MuMsg *_message;
|
||||
|
||||
/* 'mu_mode' means some internal mode where cmd: urls are
|
||||
* acceptable */
|
||||
gboolean _mu_mode;
|
||||
};
|
||||
#define MU_MSG_BODY_VIEW_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE((o), \
|
||||
MU_TYPE_MSG_BODY_VIEW, \
|
||||
|
@ -110,10 +115,16 @@ on_navigation_requested (MuMsgBodyView *self, WebKitWebFrame *frame,
|
|||
const char* uri;
|
||||
|
||||
uri = webkit_network_request_get_uri (request);
|
||||
|
||||
|
||||
if (g_ascii_strncasecmp (uri, "cmd:", 4) == 0) {
|
||||
if (self->_priv->_mu_mode)
|
||||
g_printerr ("execute: '%s'\n", uri + 4);
|
||||
return WEBKIT_NAVIGATION_RESPONSE_IGNORE;
|
||||
}
|
||||
|
||||
if (!mu_util_is_local_file(uri))
|
||||
mu_util_play (uri, FALSE, TRUE);
|
||||
|
||||
|
||||
return WEBKIT_NAVIGATION_RESPONSE_IGNORE;
|
||||
}
|
||||
|
||||
|
@ -127,6 +138,7 @@ on_resource_request_starting (MuMsgBodyView *self, WebKitWebFrame *frame,
|
|||
|
||||
msg = self->_priv->_message;
|
||||
uri = webkit_network_request_get_uri (request);
|
||||
|
||||
|
||||
if (g_ascii_strncasecmp (uri, "cid:", 4) == 0) {
|
||||
gchar *filepath;
|
||||
|
@ -148,6 +160,7 @@ mu_msg_body_view_init (MuMsgBodyView *obj)
|
|||
obj->_priv = MU_MSG_BODY_VIEW_GET_PRIVATE(obj);
|
||||
|
||||
obj->_priv->_message = NULL;
|
||||
obj->_priv->_mu_mode = FALSE;
|
||||
|
||||
obj->_priv->_settings = webkit_web_settings_new ();
|
||||
g_object_set (G_OBJECT(obj->_priv->_settings),
|
||||
|
@ -224,9 +237,11 @@ mu_msg_body_view_set_message (MuMsgBodyView *self, MuMsg *msg)
|
|||
|
||||
g_return_if_fail (self);
|
||||
|
||||
if (self->_priv->_message)
|
||||
if (self->_priv->_message) {
|
||||
mu_msg_unref (self->_priv->_message);
|
||||
|
||||
self->_priv->_message = NULL;
|
||||
}
|
||||
|
||||
self->_priv->_message = msg ? mu_msg_ref (msg) : NULL;
|
||||
|
||||
data = msg ? mu_msg_get_body_html (msg) : "";
|
||||
|
@ -234,4 +249,23 @@ mu_msg_body_view_set_message (MuMsgBodyView *self, MuMsg *msg)
|
|||
set_html (self, data);
|
||||
else
|
||||
set_text (self, mu_msg_get_body_text (msg));
|
||||
|
||||
self->_priv->_mu_mode = FALSE;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
mu_msg_body_view_set_note (MuMsgBodyView *self, const gchar *html)
|
||||
{
|
||||
g_return_if_fail (self);
|
||||
g_return_if_fail (html);
|
||||
|
||||
if (self->_priv->_message) {
|
||||
mu_msg_unref (self->_priv->_message);
|
||||
self->_priv->_message = NULL;
|
||||
}
|
||||
set_html (self, html);
|
||||
|
||||
self->_priv->_mu_mode = TRUE;
|
||||
|
||||
}
|
||||
|
|
|
@ -59,7 +59,7 @@ GType mu_msg_body_view_get_type (void) G_GNUC_CONST;
|
|||
GtkWidget* mu_msg_body_view_new (void);
|
||||
|
||||
void mu_msg_body_view_set_message (MuMsgBodyView *self, MuMsg *msg);
|
||||
|
||||
void mu_msg_body_view_set_note (MuMsgBodyView *self, const gchar *html);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
|
|
@ -141,9 +141,6 @@ mu_msg_view_init (MuMsgView *self)
|
|||
|
||||
gtk_box_pack_start (GTK_BOX(self), get_body_widget (self),
|
||||
TRUE, TRUE, 2);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -169,6 +166,7 @@ update_attachment_area (MuMsgView *self, MuMsg *msg)
|
|||
if (msg)
|
||||
attach_num = mu_msg_attach_view_set_message
|
||||
(MU_MSG_ATTACH_VIEW(self->_priv->_attach), msg);
|
||||
|
||||
if (attach_num > 0)
|
||||
gtk_widget_show_all (self->_priv->_attacharea);
|
||||
else
|
||||
|
@ -189,3 +187,15 @@ mu_msg_view_set_message (MuMsgView *self, MuMsg *msg)
|
|||
update_attachment_area (self, msg);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void
|
||||
mu_msg_view_set_note (MuMsgView *self, const char *html)
|
||||
{
|
||||
g_return_if_fail (MU_IS_MSG_VIEW(self));
|
||||
|
||||
mu_msg_header_view_set_message (MU_MSG_HEADER_VIEW(self->_priv->_headers),
|
||||
NULL);
|
||||
mu_msg_body_view_set_note (MU_MSG_BODY_VIEW(self->_priv->_body),
|
||||
html);
|
||||
}
|
||||
|
|
|
@ -59,6 +59,7 @@ GType mu_msg_view_get_type (void) G_GNUC_CONST;
|
|||
GtkWidget* mu_msg_view_new (void);
|
||||
|
||||
void mu_msg_view_set_message (MuMsgView *self, MuMsg *msg);
|
||||
void mu_msg_view_set_note (MuMsgView *self, const char *html);
|
||||
|
||||
G_END_DECLS
|
||||
|
||||
|
|
Loading…
Reference in New Issue