diff options
author | Benjamin Otte <otte@redhat.com> | 2015-01-17 18:55:34 +0100 |
---|---|---|
committer | Benjamin Otte <otte@redhat.com> | 2015-01-20 06:30:19 +0100 |
commit | 4ba710ea3091f9e3603c4fc77dc4c14c083021b6 (patch) | |
tree | 9f7430e4c072f8a1bee6803ea95e8b81543fcc1a /gtk/inspector/style-prop-list.c | |
parent | 8b6d419e02085fa19e73236a0bef363240b7c803 (diff) | |
download | gtk+-4ba710ea3091f9e3603c4fc77dc4c14c083021b6.tar.gz |
inspector: Use GtkCssStyle and gtk_css_value_to_string()
Diffstat (limited to 'gtk/inspector/style-prop-list.c')
-rw-r--r-- | gtk/inspector/style-prop-list.c | 81 |
1 files changed, 9 insertions, 72 deletions
diff --git a/gtk/inspector/style-prop-list.c b/gtk/inspector/style-prop-list.c index 9faa31a75a..b35bd6068e 100644 --- a/gtk/inspector/style-prop-list.c +++ b/gtk/inspector/style-prop-list.c @@ -27,6 +27,9 @@ #include "gtkcssproviderprivate.h" #include "gtkcssstylepropertyprivate.h" +#include "gtkcsssectionprivate.h" +#include "gtkcssstyleprivate.h" +#include "gtkcssvalueprivate.h" #include "gtkliststore.h" #include "gtksettings.h" #include "gtktreeview.h" @@ -286,82 +289,16 @@ gtk_inspector_style_prop_list_class_init (GtkInspectorStylePropListClass *klass) gtk_widget_class_bind_template_callback (widget_class, search_close_clicked); } -static gchar * -strip_property (const gchar *property) -{ - gchar **split; - gchar *value; - - split = g_strsplit_set (property, ":;", 3); - if (!split[0] || !split[1]) - value = g_strdup (""); - else - value = g_strdup (split[1]); - - g_strfreev (split); - - return value; -} - -static gchar * -get_css_content (GtkInspectorStylePropList *self, - GFile *file, - guint start_line, - guint end_line) -{ - GtkInspectorStylePropListPrivate *priv = self->priv; - guint i; - guint contents_lines; - gchar *value, *property; - gchar **contents; - - contents = g_hash_table_lookup (priv->css_files, file); - if (!contents) - { - gchar *tmp; - - if (g_file_load_contents (file, NULL, &tmp, NULL, NULL, NULL)) - { - contents = g_strsplit_set (tmp, "\n\r", -1); - g_free (tmp); - } - else - { - contents = g_strsplit ("", "", -1); - } - - g_object_ref (file); - g_hash_table_insert (priv->css_files, file, contents); - } - - contents_lines = g_strv_length (contents); - property = g_strdup (""); - for (i = start_line; (i < end_line + 1) && (i < contents_lines); ++i) - { - gchar *s1, *s2; - - s1 = g_strdup (contents[i]); - s1 = g_strstrip (s1); - s2 = g_strconcat (property, s1, NULL); - g_free (property); - g_free (s1); - property = s2; - } - - value = strip_property (property); - g_free (property); - - return value; -} - static void populate (GtkInspectorStylePropList *self) { GtkInspectorStylePropListPrivate *priv = self->priv; GtkStyleContext *context; + GtkCssStyle *style; gint i; context = gtk_widget_get_style_context (priv->widget); + style = gtk_style_context_lookup_style (context); for (i = 0; i < _gtk_css_style_property_get_n_properties (); i++) { @@ -379,9 +316,12 @@ populate (GtkInspectorStylePropList *self) iter = (GtkTreeIter *)g_hash_table_lookup (priv->prop_iters, name); - section = gtk_style_context_get_section (context, name); + value = _gtk_css_value_to_string (gtk_css_style_get_value (style, i)); + + section = gtk_css_style_get_section (style, i); if (section) { + location = _gtk_css_section_to_string (section); GFileInfo *info; GFile *file; const gchar *path; @@ -400,14 +340,12 @@ populate (GtkInspectorStylePropList *self) path = "<broken file>"; uri = g_file_get_uri (file); - value = get_css_content (self, file, start_line, end_line); } else { info = NULL; path = "<data>"; uri = NULL; - value = NULL; } if (end_line != start_line) @@ -420,7 +358,6 @@ populate (GtkInspectorStylePropList *self) else { location = NULL; - value = NULL; uri = NULL; start_line = -1; } |