summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosselin Mouette <joss@malsain.org>2009-04-29 20:30:22 +0100
committerDon Scorgie <dscorgie@git.gnome.org>2009-04-29 20:30:22 +0100
commite7698c7b903845e8e2719869192cac97e6acfa5e (patch)
tree87852acc4d0fca2322274d12e48cfeec48f58992
parent8130453be3722d9799908a0b1409b5616cb1f6b3 (diff)
downloadyelp-e7698c7b903845e8e2719869192cac97e6acfa5e.tar.gz
Add ability to view text files
-rw-r--r--ChangeLog8
-rw-r--r--src/yelp-utils.c4
-rw-r--r--src/yelp-utils.h1
-rw-r--r--src/yelp-window.c13
4 files changed, 23 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index efcc44b5..1c69919e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2009-04-29 Don Scorgie <dscorgie@src.gnome.org>
+ * src/yelp-window.c:
+ * src/yelp-utils.c:
+ * src/yelp-utils.h:
+ Add plain text handler
+ Bug #565502 - patch from Josselin Mouette
+
+2009-04-29 Don Scorgie <dscorgie@src.gnome.org>
+
* src/yelp-bookmarks.c:
* src/yelp-window.c:
Convert gnome-config useage to GKeyFile
diff --git a/src/yelp-utils.c b/src/yelp-utils.c
index aa645857..a8686280 100644
--- a/src/yelp-utils.c
+++ b/src/yelp-utils.c
@@ -92,6 +92,8 @@ resolve_process_ghelp (char *uri, gchar **result)
type = YELP_RRN_TYPE_HTML;
else if (g_str_equal (mime, "application/xhtml+xml"))
type = YELP_RRN_TYPE_XHTML;
+ else if (g_str_equal (mime, "text/plain"))
+ type = YELP_RRN_TYPE_TEXT;
} else {
gint file_cut = 6;
@@ -209,7 +211,7 @@ resolve_full_file (const gchar *path)
} else if (resolve_is_man_path (path, NULL)) {
type = YELP_RRN_TYPE_MAN;
} else {
- type = YELP_RRN_TYPE_EXTERNAL;
+ type = YELP_RRN_TYPE_TEXT;
}
} else {
type = YELP_RRN_TYPE_EXTERNAL;
diff --git a/src/yelp-utils.h b/src/yelp-utils.h
index faf08e74..d5e482cc 100644
--- a/src/yelp-utils.h
+++ b/src/yelp-utils.h
@@ -29,6 +29,7 @@ typedef enum {
YELP_RRN_TYPE_DOC = 0,
YELP_RRN_TYPE_MAN,
YELP_RRN_TYPE_INFO,
+ YELP_RRN_TYPE_TEXT,
YELP_RRN_TYPE_HTML,
YELP_RRN_TYPE_XHTML,
YELP_RRN_TYPE_TOC,
diff --git a/src/yelp-window.c b/src/yelp-window.c
index 462c4fdc..7b0524e8 100644
--- a/src/yelp-window.c
+++ b/src/yelp-window.c
@@ -1081,6 +1081,7 @@ yelp_window_load (YelpWindow *window, const gchar *uri)
break;
case YELP_RRN_TYPE_HTML:
case YELP_RRN_TYPE_XHTML:
+ case YELP_RRN_TYPE_TEXT:
priv->base_uri = g_strdup ("file:///fakefile");
window_do_load_html (window, real_uri, frag_id, type, TRUE);
break;
@@ -1124,7 +1125,8 @@ yelp_window_load (YelpWindow *window, const gchar *uri)
frag_id = g_strdup ("x-yelp-index");
if (priv->current_document || (priv->current_type == YELP_RRN_TYPE_HTML ||
- priv->current_type == YELP_RRN_TYPE_XHTML))
+ priv->current_type == YELP_RRN_TYPE_XHTML ||
+ priv->current_type == YELP_RRN_TYPE_TEXT))
need_hist = TRUE;
window_setup_window (window, type, real_uri, frag_id,
(gchar *) uri, current_base, need_hist);
@@ -1693,6 +1695,9 @@ window_do_load_html (YelpWindow *window,
case YELP_RRN_TYPE_XHTML:
yelp_html_open_stream (priv->html_view, "application/xhtml+xml");
break;
+ case YELP_RRN_TYPE_TEXT:
+ yelp_html_open_stream (priv->html_view, "text/plain");
+ break;
default:
g_assert_not_reached ();
}
@@ -1820,6 +1825,7 @@ html_frame_selected_cb (YelpHtml *html, gchar *uri, gboolean handled,
switch (window->priv->current_type) {
case YELP_RRN_TYPE_XHTML:
case YELP_RRN_TYPE_HTML:
+ case YELP_RRN_TYPE_TEXT:
handle = TRUE;
break;
default:
@@ -2137,6 +2143,9 @@ window_print_page_cb (GtkAction *action, YelpWindow *window)
case YELP_RRN_TYPE_XHTML:
yelp_html_open_stream (html, "application/xhtml+xml");
break;
+ case YELP_RRN_TYPE_TEXT:
+ yelp_html_open_stream (html, "text/plain");
+ break;
default:
g_assert_not_reached ();
}
@@ -2309,7 +2318,7 @@ history_load_entry (YelpWindow *window, YelpHistoryEntry *entry)
{
g_return_if_fail (YELP_IS_WINDOW (window));
- if (entry->type == YELP_RRN_TYPE_HTML || entry->type == YELP_RRN_TYPE_XHTML) {
+ if (entry->type == YELP_RRN_TYPE_HTML || entry->type == YELP_RRN_TYPE_XHTML || entry->type == YELP_RRN_TYPE_TEXT) {
window_do_load_html (window, entry->uri, entry->frag_id, entry->type, FALSE);
} else {
g_assert (entry->doc != NULL);