#include <gtk/gtk.h>
#include "gtkbuilderprivate.h"
#include "gtk-builder-tool.h"
+#include "fake-scope.h"
+
static GType
make_fake_type (const char *type_name,
0);
}
+/* {{{ Deprecations */
+
static gboolean
-is_deprecated (GObject *object)
+is_deprecated (const char *name)
{
const char *names[] = {
"GtkAppChooser",
NULL
};
- return g_strv_contains (names, G_OBJECT_TYPE_NAME (object));
-}
-
-static const char *
-object_get_id (GObject *object)
-{
- const char *name;
-
- if (GTK_IS_BUILDABLE (object))
- name = gtk_buildable_get_buildable_id (GTK_BUILDABLE (object));
- else
- name = g_object_get_data (object, "gtk-builder-id");
-
- if (g_str_has_prefix (name, "___"))
- return NULL;
-
- return name;
+ return g_strv_contains (names, name);
}
static gboolean
-check_deprecations (GtkBuilder *builder,
- GError **error)
+fake_scope_check_deprecations (FakeScope *self,
+ GError **error)
{
- GSList *objects;
+ GPtrArray *types;
GString *s;
+ types = fake_scope_get_types (self);
+
s = g_string_new ("");
- objects = gtk_builder_get_objects (builder);
- for (GSList *l = objects; l; l = l->next)
+ for (int i = 0; i < types->len; i++)
{
- GObject *obj = l->data;
+ const char *name = g_ptr_array_index (types, i);
- if (1 || is_deprecated (obj))
+ if (is_deprecated (name))
{
if (s->len == 0)
g_string_append (s, "Deprecated types:\n");
- g_string_append_printf (s, "%s", G_OBJECT_TYPE_NAME (obj));
- if (object_get_id (obj))
- g_string_append_printf (s, " (named '%s')", object_get_id (obj));
+ g_string_append_printf (s, "%s", name);
g_string_append (s, "\n");
}
}
- g_slist_free (objects);
-
if (s->len > 0)
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED, s->str);
return *error == NULL;
}
+/* }}} */
+
static gboolean
validate_template (const char *filename,
const char *type_name,
{
GType template_type;
GObject *object;
+ FakeScope *scope;
GtkBuilder *builder;
GError *error = NULL;
gboolean ret;
}
builder = gtk_builder_new ();
+ scope = fake_scope_new ();
+ gtk_builder_set_scope (builder, GTK_BUILDER_SCOPE (scope));
ret = gtk_builder_extend_with_template (builder, object, template_type, " ", 1, &error);
if (ret)
ret = gtk_builder_add_from_file (builder, filename, &error);
if (ret && deprecations)
- ret = check_deprecations (builder, &error);
+ ret = fake_scope_check_deprecations (scope, &error);
+ g_object_unref (scope);
g_object_unref (builder);
if (!ret)
validate_file (const char *filename,
gboolean deprecations)
{
+ FakeScope *scope;
GtkBuilder *builder;
GError *error = NULL;
gboolean ret;
char *parent_name = NULL;
builder = gtk_builder_new ();
+ scope = fake_scope_new ();
+ gtk_builder_set_scope (builder, GTK_BUILDER_SCOPE (scope));
ret = gtk_builder_add_from_file (builder, filename, &error);
if (ret && deprecations)
- ret = check_deprecations (builder, &error);
+ ret = fake_scope_check_deprecations (scope, &error);
+ g_object_unref (scope);
g_object_unref (builder);
if (!ret)
g_strfreev (filenames);
}
+
+/* vim:set foldmethod=marker expandtab: */