gedit r6720 - in branches/win32: . gedit plugin-loaders/python/bindings
- From: pborelli svn gnome org
- To: svn-commits-list gnome org
- Subject: gedit r6720 - in branches/win32: . gedit plugin-loaders/python/bindings
- Date: Thu, 25 Dec 2008 11:48:51 +0000 (UTC)
Author: pborelli
Date: Thu Dec 25 11:48:51 2008
New Revision: 6720
URL: http://svn.gnome.org/viewvc/gedit?rev=6720&view=rev
Log:
2008-12-25 Paolo Borelli <pborelli katamail com>
* gedit/gedit-document.[ch]:
* gedit/gedit-tab.c:
Use content type instead of mime type where possible.
Modified:
branches/win32/ChangeLog
branches/win32/gedit/gedit-document.c
branches/win32/gedit/gedit-document.h
branches/win32/gedit/gedit-tab.c
branches/win32/plugin-loaders/python/bindings/gedit.defs
Modified: branches/win32/gedit/gedit-document.c
==============================================================================
--- branches/win32/gedit/gedit-document.c (original)
+++ branches/win32/gedit/gedit-document.c Thu Dec 25 11:48:51 2008
@@ -109,7 +109,7 @@
const GeditEncoding *encoding;
- gchar *mime_type;
+ gchar *content_type;
time_t mtime;
@@ -143,6 +143,7 @@
PROP_URI,
PROP_SHORTNAME,
+ PROP_CONTENT_TYPE,
PROP_MIME_TYPE,
PROP_READ_ONLY,
PROP_ENCODING,
@@ -278,7 +279,7 @@
}
g_free (doc->priv->uri);
- g_free (doc->priv->mime_type);
+ g_free (doc->priv->content_type);
g_free (doc->priv->search_text);
if (doc->priv->to_search_region != NULL)
@@ -306,8 +307,11 @@
case PROP_SHORTNAME:
g_value_take_string (value, gedit_document_get_short_name_for_display (doc));
break;
+ case PROP_CONTENT_TYPE:
+ g_value_take_string (value, gedit_document_get_content_type (doc));
+ break;
case PROP_MIME_TYPE:
- g_value_set_string (value, doc->priv->mime_type);
+ g_value_take_string (value, gedit_document_get_mime_type (doc));
break;
case PROP_READ_ONLY:
g_value_set_boolean (value, doc->priv->readonly);
@@ -416,6 +420,14 @@
G_PARAM_READABLE |
G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (object_class, PROP_CONTENT_TYPE,
+ g_param_spec_string ("content-type",
+ "Content Type",
+ "The document's Content Type",
+ NULL,
+ G_PARAM_READABLE |
+ G_PARAM_STATIC_STRINGS));
+
g_object_class_install_property (object_class, PROP_MIME_TYPE,
g_param_spec_string ("mime-type",
"MIME Type",
@@ -689,7 +701,7 @@
doc->priv->uri = NULL;
doc->priv->untitled_number = get_untitled_number ();
- doc->priv->mime_type = g_strdup ("text/plain");
+ doc->priv->content_type = g_content_type_from_mime_type ("text/plain");
doc->priv->readonly = FALSE;
@@ -741,7 +753,7 @@
static GtkSourceLanguage *
guess_language (const gchar *uri,
- const gchar *mime_type)
+ const gchar *content_type)
{
gchar *data;
@@ -764,35 +776,32 @@
}
else
{
+ GFile *file;
+ gchar *basename;
+
gedit_debug_message (DEBUG_DOCUMENT, "Sniffing Language");
- if (strcmp (mime_type, "text/plain") != 0)
- {
- GFile *file;
- gchar *basename;
+ file = g_file_new_for_uri (uri);
+ basename = g_file_get_basename (file);
- file = g_file_new_for_uri (uri);
- basename = g_file_get_basename (file);
+ language = gtk_source_language_manager_guess_language (
+ gedit_get_language_manager (),
+ basename,
+ content_type);
- language = gtk_source_language_manager_guess_language (
- gedit_get_language_manager (),
- basename,
- mime_type);
-
- g_free (basename);
- g_object_unref (file);
- }
+ g_free (basename);
+ g_object_unref (file);
}
return language;
}
-/* If mime type is null, we guess from the filename */
-/* If uri is null, we only set the mime-type */
+/* If content type is null, we guess from the filename */
+/* If uri is null, we only set the content-type */
static void
set_uri (GeditDocument *doc,
const gchar *uri,
- const gchar *mime_type)
+ const gchar *content_type)
{
gedit_debug (DEBUG_DOCUMENT);
@@ -813,32 +822,21 @@
}
}
- g_free (doc->priv->mime_type);
- if (mime_type != NULL)
+ g_free (doc->priv->content_type);
+
+ if (content_type != NULL)
{
- doc->priv->mime_type = g_strdup (mime_type);
+ doc->priv->content_type = g_strdup (content_type);
}
else
{
if (doc->priv->uri != NULL)
{
- gchar *content_type;
- gchar *detected_mime;
-
- content_type = g_content_type_guess (doc->priv->uri, NULL, 0, NULL);
-
- if (content_type == NULL || g_content_type_is_unknown (content_type))
- detected_mime = g_strdup ("text/plain");
- else
- detected_mime = g_content_type_get_mime_type (content_type);
-
- doc->priv->mime_type = detected_mime != NULL ? detected_mime : g_strdup ("text/plain");
-
- g_free (content_type);
+ doc->priv->content_type = g_content_type_guess (doc->priv->uri, NULL, 0, NULL);
}
else
{
- doc->priv->mime_type = g_strdup ("text/plain");
+ doc->priv->content_type = g_content_type_from_mime_type ("text/plain");
}
}
@@ -846,7 +844,7 @@
{
GtkSourceLanguage *language;
- language = guess_language (doc->priv->uri, doc->priv->mime_type);
+ language = guess_language (doc->priv->uri, doc->priv->content_type);
gedit_debug_message (DEBUG_DOCUMENT, "Language: %s",
language != NULL ? gtk_source_language_get_name (language) : "None");
@@ -878,12 +876,7 @@
gedit_document_set_uri (GeditDocument *doc,
const gchar *uri)
{
- gchar *mime_type;
-
- mime_type = g_strdup (doc->priv->mime_type);
- set_uri (doc, uri, mime_type);
-
- g_free (mime_type);
+ set_uri (doc, uri, doc->priv->content_type);
}
/* Never returns NULL */
@@ -912,14 +905,29 @@
return gedit_utils_basename_for_display (doc->priv->uri);
}
+gchar *
+gedit_document_get_content_type (GeditDocument *doc)
+{
+ g_return_val_if_fail (GEDIT_IS_DOCUMENT (doc), NULL);
+
+ return g_strdup (doc->priv->content_type);
+}
+
/* Never returns NULL */
gchar *
gedit_document_get_mime_type (GeditDocument *doc)
{
+ gchar *mime_type = NULL;
+
g_return_val_if_fail (GEDIT_IS_DOCUMENT (doc), "text/plain");
- g_return_val_if_fail (doc->priv->mime_type != NULL, "text/plain");
- return g_strdup (doc->priv->mime_type);
+ if ((doc->priv->content_type != NULL) &&
+ (!g_content_type_is_unknown (doc->priv->content_type)))
+ {
+ mime_type = g_content_type_get_mime_type (doc->priv->content_type);
+ }
+
+ return mime_type != NULL ? g_strdup (mime_type) : g_strdup ("text/plain");
}
/* Note: do not emit the notify::read-only signal */
@@ -1012,12 +1020,8 @@
{
GtkTextIter iter;
const gchar *content_type;
- gchar *mime_type = NULL;
content_type = gedit_document_loader_get_content_type (loader);
-
- if (content_type)
- mime_type = g_content_type_get_mime_type (content_type);
doc->priv->mtime = gedit_document_loader_get_mtime (loader);
@@ -1031,9 +1035,7 @@
(doc->priv->requested_encoding != NULL));
/* We already set the uri */
- set_uri (doc, NULL, mime_type);
-
- g_free (mime_type);
+ set_uri (doc, NULL, content_type);
/* move the cursor at the requested line if any */
if (doc->priv->requested_line_pos > 0)
@@ -1209,12 +1211,10 @@
{
const gchar *uri;
const gchar *content_type;
- gchar *mime_type;
uri = gedit_document_saver_get_uri (saver);
content_type = gedit_document_saver_get_content_type (saver);
- mime_type = g_content_type_get_mime_type (content_type);
doc->priv->mtime = gedit_document_saver_get_mtime (saver);
@@ -1225,9 +1225,7 @@
gtk_text_buffer_set_modified (GTK_TEXT_BUFFER (doc),
FALSE);
- set_uri (doc, uri, mime_type);
-
- g_free (mime_type);
+ set_uri (doc, uri, content_type);
set_encoding (doc,
doc->priv->requested_encoding,
Modified: branches/win32/gedit/gedit-document.h
==============================================================================
--- branches/win32/gedit/gedit-document.h (original)
+++ branches/win32/gedit/gedit-document.h Thu Dec 25 11:48:51 2008
@@ -162,6 +162,9 @@
gchar *gedit_document_get_short_name_for_display
(GeditDocument *doc);
+gchar *gedit_document_get_content_type
+ (GeditDocument *doc);
+
gchar *gedit_document_get_mime_type (GeditDocument *doc);
gboolean gedit_document_get_readonly (GeditDocument *doc);
Modified: branches/win32/gedit/gedit-tab.c
==============================================================================
--- branches/win32/gedit/gedit-tab.c (original)
+++ branches/win32/gedit/gedit-tab.c Thu Dec 25 11:48:51 2008
@@ -1717,9 +1717,10 @@
switch (tab->priv->state)
{
+ gchar *content_type;
gchar *mime_type;
- gchar *mime_description;
- gchar *mime_full_description;
+ gchar *content_description;
+ gchar *content_full_description;
gchar *encoding;
const GeditEncoding *enc;
@@ -1738,16 +1739,17 @@
ruri_markup);
break;
default:
+ content_type = gedit_document_get_content_type (doc);
mime_type = gedit_document_get_mime_type (doc);
- mime_description = g_content_type_get_description (mime_type);
+ content_description = g_content_type_get_description (content_type);
- if (mime_description == NULL)
- mime_full_description = g_strdup (mime_type);
+ if (content_description == NULL)
+ content_full_description = g_strdup (mime_type);
else
- mime_full_description = g_strdup_printf ("%s (%s)",
- mime_description, mime_type);
+ content_full_description = g_strdup_printf ("%s (%s)",
+ content_description, mime_type);
- g_free (mime_description);
+ g_free (content_description);
g_free (mime_type);
enc = gedit_document_get_encoding (doc);
@@ -1761,15 +1763,15 @@
"<b>%s</b> %s\n"
"<b>%s</b> %s",
_("Name:"), ruri,
- _("MIME Type:"), mime_full_description,
+ _("MIME Type:"), content_full_description,
_("Encoding:"), encoding);
g_free (encoding);
- g_free (mime_full_description);
+ g_free (content_full_description);
break;
}
-
+
g_free (ruri);
g_free (ruri_markup);
Modified: branches/win32/plugin-loaders/python/bindings/gedit.defs
==============================================================================
--- branches/win32/plugin-loaders/python/bindings/gedit.defs (original)
+++ branches/win32/plugin-loaders/python/bindings/gedit.defs Thu Dec 25 11:48:51 2008
@@ -244,6 +244,12 @@
(return-type "gchar*")
)
+(define-method get_content_type
+ (of-object "GeditDocument")
+ (c-name "gedit_document_get_content_type")
+ (return-type "gchar*")
+)
+
(define-method get_mime_type
(of-object "GeditDocument")
(c-name "gedit_document_get_mime_type")
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]