[gedit] Use the gio metadata system.
- From: Ignacio Casal Quinteiro <icq src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gedit] Use the gio metadata system.
- Date: Sun, 29 Nov 2009 20:27:41 +0000 (UTC)
commit 91cc070c0b46049badcd8db4fff304caba3b2994
Author: Ignacio Casal Quinteiro <icq gnome org>
Date: Sun Nov 29 21:26:25 2009 +0100
Use the gio metadata system.
Use the new api to get the metadata and to store, and let the old
system for win32.
plugins/spell/gedit-spell-plugin.c | 59 ++++++++++++++++++++++++++++++++----
1 files changed, 53 insertions(+), 6 deletions(-)
---
diff --git a/plugins/spell/gedit-spell-plugin.c b/plugins/spell/gedit-spell-plugin.c
index 0d5fe15..d70daf5 100644
--- a/plugins/spell/gedit-spell-plugin.c
+++ b/plugins/spell/gedit-spell-plugin.c
@@ -32,7 +32,6 @@
#include <gmodule.h>
#include <gedit/gedit-debug.h>
-#include <gedit/gedit-metadata-manager.h>
#include <gedit/gedit-prefs-manager.h>
#include <gedit/gedit-statusbar.h>
@@ -41,6 +40,12 @@
#include "gedit-spell-language-dialog.h"
#include "gedit-automatic-spell-checker.h"
+#ifdef G_OS_WIN32
+#include <gedit/gedit-metadata-manager.h>
+#else
+#define GEDIT_METADATA_ATTRIBUTE_SPELL_LANGUAGE "metadata::gedit-spell-language"
+#endif
+
#define WINDOW_DATA_KEY "GeditSpellPluginWindowData"
#define MENU_PATH "/MenuBar/ToolsMenu/ToolsOps_1"
@@ -134,11 +139,12 @@ set_spell_language_cb (GeditSpellChecker *spell,
const GeditSpellCheckerLanguage *lang,
GeditDocument *doc)
{
- gchar *uri;
-
g_return_if_fail (GEDIT_IS_DOCUMENT (doc));
g_return_if_fail (lang != NULL);
+#ifdef G_OS_WIN32
+ gchar *uri;
+
uri = gedit_document_get_uri (doc);
if (uri != NULL)
@@ -154,6 +160,21 @@ set_spell_language_cb (GeditSpellChecker *spell,
g_free (uri);
}
+#else
+ GFileInfo *info;
+ const gchar *key;
+
+ key = gedit_spell_checker_language_to_key (lang);
+ g_return_if_fail (key != NULL);
+
+ info = g_file_info_new ();
+
+ g_file_info_set_attribute_string (info, GEDIT_METADATA_ATTRIBUTE_SPELL_LANGUAGE,
+ key);
+
+ gedit_document_set_metadata (doc, info);
+ g_object_unref (info);
+#endif
}
static GeditSpellChecker *
@@ -170,10 +191,11 @@ get_spell_checker_from_document (GeditDocument *doc)
if (data == NULL)
{
- gchar *uri;
-
spell = gedit_spell_checker_new ();
+#ifdef G_OS_WIN32
+ gchar *uri;
+
uri = gedit_document_get_uri (doc);
if (uri != NULL)
@@ -194,8 +216,33 @@ get_spell_checker_from_document (GeditDocument *doc)
gedit_spell_checker_set_language (spell,
lang);
- g_free (uri);
+ g_free (uri);
}
+#else
+ GFileInfo *info;
+
+ info = gedit_document_get_metadata (doc);
+
+ if (info != NULL)
+ {
+ const GeditSpellCheckerLanguage *lang = NULL;
+ const gchar *value = NULL;
+
+ if (g_file_info_has_attribute (info,
+ GEDIT_METADATA_ATTRIBUTE_SPELL_LANGUAGE))
+ {
+ value = g_file_info_get_attribute_string (info,
+ GEDIT_METADATA_ATTRIBUTE_SPELL_LANGUAGE);
+
+ lang = gedit_spell_checker_language_from_key (value);
+ }
+
+ if (lang != NULL)
+ {
+ gedit_spell_checker_set_language (spell, lang);
+ }
+ }
+#endif
g_object_set_qdata_full (G_OBJECT (doc),
spell_checker_id,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]