[geany/geany] ce6c0f: Add support for Keyed Data Lists for documents
Matthew Brush
git-noreply at xxxxx
Thu Sep 1 04:02:24 UTC 2016
Branch: refs/heads/master
Author: Matthew Brush <matt at geany.org>
Committer: Matthew Brush <matt at geany.org>
Date: Thu, 01 Sep 2016 04:02:24 UTC
Commit: ce6c0fad9481549c62c308a42ccfe774bacf3b55
https://github.com/geany/geany/commit/ce6c0fad9481549c62c308a42ccfe774bacf3b55
Log Message:
-----------
Add support for Keyed Data Lists for documents
Modified Paths:
--------------
src/document.c
src/document.h
src/documentprivate.h
Modified: src/document.c
23 lines changed, 23 insertions(+), 0 deletions(-)
===================================================================
@@ -657,6 +657,8 @@ static GeanyDocument *document_create(const gchar *utf8_filename)
doc->priv->last_check = time(NULL);
#endif
+ g_datalist_init(&doc->priv->data);
+
sidebar_openfiles_add(doc); /* sets doc->iter */
notebook_new_tab(doc);
@@ -712,6 +714,8 @@ static gboolean remove_page(guint page_num)
if (! main_status.closing_all && doc->real_path != NULL)
ui_add_recent_document(doc);
+ g_datalist_clear(&doc->priv->data);
+
doc->is_valid = FALSE;
doc->id = 0;
@@ -3839,3 +3843,22 @@ GEANY_API_SYMBOL
GType document_get_type (void);
G_DEFINE_BOXED_TYPE(GeanyDocument, document, copy_, free_);
+
+
+gpointer document_get_data(const GeanyDocument *doc, const gchar *key)
+{
+ return g_datalist_get_data(&doc->priv->data, key);
+}
+
+
+void document_set_data(GeanyDocument *doc, const gchar *key, gpointer data)
+{
+ g_datalist_set_data(&doc->priv->data, key, data);
+}
+
+
+void document_set_data_full(GeanyDocument *doc, const gchar *key,
+ gpointer data, GDestroyNotify free_func)
+{
+ g_datalist_set_data_full(&doc->priv->data, key, data, free_func);
+}
Modified: src/document.h
7 lines changed, 7 insertions(+), 0 deletions(-)
===================================================================
@@ -316,6 +316,13 @@ void document_grab_focus(GeanyDocument *doc);
GeanyDocument *document_clone(GeanyDocument *old_doc);
+gpointer document_get_data(const GeanyDocument *doc, const gchar *key);
+
+void document_set_data(GeanyDocument *doc, const gchar *key, gpointer data);
+
+void document_set_data_full(GeanyDocument *doc, const gchar *key,
+ gpointer data, GDestroyNotify free_func);
+
#endif /* GEANY_PRIVATE */
G_END_DECLS
Modified: src/documentprivate.h
2 lines changed, 2 insertions(+), 0 deletions(-)
===================================================================
@@ -111,6 +111,8 @@ typedef struct GeanyDocumentPrivate
gint protected;
/* Save pointer to info bars allowing to cancel them programatically (to avoid multiple ones) */
GtkWidget *info_bars[NUM_MSG_TYPES];
+ /* Keyed Data List to attach arbitrary data to the document */
+ GData *data;
}
GeanyDocumentPrivate;
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
More information about the Commits
mailing list