forked from AuroraMiddleware/gtk
inspector: Drop the recorder Private struct
This commit is contained in:
parent
96ce0eb600
commit
cb906c80eb
@ -52,8 +52,10 @@
|
||||
#include "renderrecording.h"
|
||||
#include "startrecording.h"
|
||||
|
||||
struct _GtkInspectorRecorderPrivate
|
||||
struct _GtkInspectorRecorder
|
||||
{
|
||||
GtkWidget parent;
|
||||
|
||||
GListModel *recordings;
|
||||
GtkTreeListModel *render_node_model;
|
||||
GListStore *render_node_root_model;
|
||||
@ -71,6 +73,12 @@ struct _GtkInspectorRecorderPrivate
|
||||
gboolean debug_nodes;
|
||||
};
|
||||
|
||||
typedef struct _GtkInspectorRecorderClass
|
||||
{
|
||||
GtkWidgetClass parent;
|
||||
} GtkInspectorRecorderClass;
|
||||
|
||||
|
||||
enum
|
||||
{
|
||||
PROP_0,
|
||||
@ -81,7 +89,7 @@ enum
|
||||
|
||||
static GParamSpec *props[LAST_PROP] = { NULL, };
|
||||
|
||||
G_DEFINE_TYPE_WITH_PRIVATE (GtkInspectorRecorder, gtk_inspector_recorder, GTK_TYPE_WIDGET)
|
||||
G_DEFINE_TYPE (GtkInspectorRecorder, gtk_inspector_recorder, GTK_TYPE_WIDGET)
|
||||
|
||||
static GListModel *
|
||||
create_render_node_list_model (GskRenderNode **nodes,
|
||||
@ -201,9 +209,7 @@ static void
|
||||
recordings_clear_all (GtkButton *button,
|
||||
GtkInspectorRecorder *recorder)
|
||||
{
|
||||
GtkInspectorRecorderPrivate *priv = gtk_inspector_recorder_get_instance_private (recorder);
|
||||
|
||||
g_list_store_remove_all (G_LIST_STORE (priv->recordings));
|
||||
g_list_store_remove_all (G_LIST_STORE (recorder->recordings));
|
||||
}
|
||||
|
||||
static const char *
|
||||
@ -361,11 +367,10 @@ recordings_list_row_selected (GtkListBox *box,
|
||||
GtkListBoxRow *row,
|
||||
GtkInspectorRecorder *recorder)
|
||||
{
|
||||
GtkInspectorRecorderPrivate *priv = gtk_inspector_recorder_get_instance_private (recorder);
|
||||
GtkInspectorRecording *recording;
|
||||
|
||||
if (row)
|
||||
recording = g_list_model_get_item (priv->recordings, gtk_list_box_row_get_index (row));
|
||||
recording = g_list_model_get_item (recorder->recordings, gtk_list_box_row_get_index (row));
|
||||
else
|
||||
recording = NULL;
|
||||
|
||||
@ -378,18 +383,18 @@ recordings_list_row_selected (GtkListBox *box,
|
||||
node = gtk_inspector_render_recording_get_node (GTK_INSPECTOR_RENDER_RECORDING (recording));
|
||||
gsk_render_node_get_bounds (node, &bounds);
|
||||
paintable = gtk_render_node_paintable_new (node, &bounds);
|
||||
gtk_picture_set_paintable (GTK_PICTURE (priv->render_node_view), paintable);
|
||||
gtk_picture_set_paintable (GTK_PICTURE (recorder->render_node_view), paintable);
|
||||
|
||||
g_list_store_splice (priv->render_node_root_model,
|
||||
0, g_list_model_get_n_items (G_LIST_MODEL (priv->render_node_root_model)),
|
||||
g_list_store_splice (recorder->render_node_root_model,
|
||||
0, g_list_model_get_n_items (G_LIST_MODEL (recorder->render_node_root_model)),
|
||||
(gpointer[1]) { paintable },
|
||||
1);
|
||||
g_object_unref (paintable);
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_picture_set_paintable (GTK_PICTURE (priv->render_node_view), NULL);
|
||||
g_list_store_remove_all (priv->render_node_root_model);
|
||||
gtk_picture_set_paintable (GTK_PICTURE (recorder->render_node_view), NULL);
|
||||
g_list_store_remove_all (recorder->render_node_root_model);
|
||||
}
|
||||
|
||||
if (recording)
|
||||
@ -906,12 +911,11 @@ populate_render_node_properties (GtkListStore *store,
|
||||
static GskRenderNode *
|
||||
get_selected_node (GtkInspectorRecorder *recorder)
|
||||
{
|
||||
GtkInspectorRecorderPrivate *priv = gtk_inspector_recorder_get_instance_private (recorder);
|
||||
GtkTreeListRow *row_item;
|
||||
GdkPaintable *paintable;
|
||||
GskRenderNode *node;
|
||||
|
||||
row_item = gtk_single_selection_get_selected_item (priv->render_node_selection);
|
||||
row_item = gtk_single_selection_get_selected_item (recorder->render_node_selection);
|
||||
if (row_item == NULL)
|
||||
return NULL;
|
||||
|
||||
@ -927,21 +931,20 @@ render_node_list_selection_changed (GtkListBox *list,
|
||||
GtkListBoxRow *row,
|
||||
GtkInspectorRecorder *recorder)
|
||||
{
|
||||
GtkInspectorRecorderPrivate *priv = gtk_inspector_recorder_get_instance_private (recorder);
|
||||
GskRenderNode *node;
|
||||
GdkPaintable *paintable;
|
||||
GtkTreeListRow *row_item;
|
||||
|
||||
row_item = gtk_single_selection_get_selected_item (priv->render_node_selection);
|
||||
row_item = gtk_single_selection_get_selected_item (recorder->render_node_selection);
|
||||
if (row_item == NULL)
|
||||
return;
|
||||
|
||||
paintable = gtk_tree_list_row_get_item (row_item);
|
||||
|
||||
gtk_widget_set_sensitive (priv->render_node_save_button, TRUE);
|
||||
gtk_picture_set_paintable (GTK_PICTURE (priv->render_node_view), paintable);
|
||||
gtk_widget_set_sensitive (recorder->render_node_save_button, TRUE);
|
||||
gtk_picture_set_paintable (GTK_PICTURE (recorder->render_node_view), paintable);
|
||||
node = gtk_render_node_paintable_get_render_node (GTK_RENDER_NODE_PAINTABLE (paintable));
|
||||
populate_render_node_properties (GTK_LIST_STORE (priv->render_node_properties), node);
|
||||
populate_render_node_properties (GTK_LIST_STORE (recorder->render_node_properties), node);
|
||||
|
||||
g_object_unref (paintable);
|
||||
}
|
||||
@ -1077,7 +1080,6 @@ node_property_activated (GtkTreeView *tv,
|
||||
GtkTreeViewColumn *col,
|
||||
GtkInspectorRecorder *recorder)
|
||||
{
|
||||
GtkInspectorRecorderPrivate *priv = gtk_inspector_recorder_get_instance_private (recorder);
|
||||
GtkTreeIter iter;
|
||||
GdkRectangle rect;
|
||||
GdkTexture *texture;
|
||||
@ -1085,8 +1087,8 @@ node_property_activated (GtkTreeView *tv,
|
||||
GtkWidget *popover;
|
||||
GtkWidget *image;
|
||||
|
||||
gtk_tree_model_get_iter (GTK_TREE_MODEL (priv->render_node_properties), &iter, path);
|
||||
gtk_tree_model_get (GTK_TREE_MODEL (priv->render_node_properties), &iter,
|
||||
gtk_tree_model_get_iter (GTK_TREE_MODEL (recorder->render_node_properties), &iter, path);
|
||||
gtk_tree_model_get (GTK_TREE_MODEL (recorder->render_node_properties), &iter,
|
||||
2, &visible,
|
||||
3, &texture,
|
||||
-1);
|
||||
@ -1120,16 +1122,15 @@ gtk_inspector_recorder_get_property (GObject *object,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
GtkInspectorRecorder *recorder = GTK_INSPECTOR_RECORDER (object);
|
||||
GtkInspectorRecorderPrivate *priv = gtk_inspector_recorder_get_instance_private (recorder);
|
||||
|
||||
switch (param_id)
|
||||
{
|
||||
case PROP_RECORDING:
|
||||
g_value_set_boolean (value, priv->recording != NULL);
|
||||
g_value_set_boolean (value, recorder->recording != NULL);
|
||||
break;
|
||||
|
||||
case PROP_DEBUG_NODES:
|
||||
g_value_set_boolean (value, priv->debug_nodes);
|
||||
g_value_set_boolean (value, recorder->debug_nodes);
|
||||
break;
|
||||
|
||||
default:
|
||||
@ -1166,11 +1167,10 @@ static void
|
||||
gtk_inspector_recorder_dispose (GObject *object)
|
||||
{
|
||||
GtkInspectorRecorder *recorder = GTK_INSPECTOR_RECORDER (object);
|
||||
GtkInspectorRecorderPrivate *priv = gtk_inspector_recorder_get_instance_private (recorder);
|
||||
|
||||
g_clear_object (&priv->render_node_model);
|
||||
g_clear_object (&priv->render_node_root_model);
|
||||
g_clear_object (&priv->render_node_selection);
|
||||
g_clear_object (&recorder->render_node_model);
|
||||
g_clear_object (&recorder->render_node_root_model);
|
||||
g_clear_object (&recorder->render_node_selection);
|
||||
|
||||
G_OBJECT_CLASS (gtk_inspector_recorder_parent_class)->dispose (object);
|
||||
}
|
||||
@ -1202,12 +1202,12 @@ gtk_inspector_recorder_class_init (GtkInspectorRecorderClass *klass)
|
||||
|
||||
gtk_widget_class_set_template_from_resource (widget_class, "/org/gtk/libgtk/inspector/recorder.ui");
|
||||
|
||||
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorRecorder, recordings);
|
||||
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorRecorder, recordings_list);
|
||||
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorRecorder, render_node_view);
|
||||
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorRecorder, render_node_list);
|
||||
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorRecorder, render_node_save_button);
|
||||
gtk_widget_class_bind_template_child_private (widget_class, GtkInspectorRecorder, node_property_tree);
|
||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorRecorder, recordings);
|
||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorRecorder, recordings_list);
|
||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorRecorder, render_node_view);
|
||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorRecorder, render_node_list);
|
||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorRecorder, render_node_save_button);
|
||||
gtk_widget_class_bind_template_child (widget_class, GtkInspectorRecorder, node_property_tree);
|
||||
|
||||
gtk_widget_class_bind_template_callback (widget_class, recordings_clear_all);
|
||||
gtk_widget_class_bind_template_callback (widget_class, recordings_list_row_selected);
|
||||
@ -1220,66 +1220,61 @@ gtk_inspector_recorder_class_init (GtkInspectorRecorderClass *klass)
|
||||
static void
|
||||
gtk_inspector_recorder_init (GtkInspectorRecorder *recorder)
|
||||
{
|
||||
GtkInspectorRecorderPrivate *priv = gtk_inspector_recorder_get_instance_private (recorder);
|
||||
GtkListItemFactory *factory;
|
||||
|
||||
gtk_widget_init_template (GTK_WIDGET (recorder));
|
||||
|
||||
gtk_list_box_bind_model (GTK_LIST_BOX (priv->recordings_list),
|
||||
priv->recordings,
|
||||
gtk_list_box_bind_model (GTK_LIST_BOX (recorder->recordings_list),
|
||||
recorder->recordings,
|
||||
gtk_inspector_recorder_recordings_list_create_widget,
|
||||
recorder,
|
||||
NULL);
|
||||
|
||||
priv->render_node_root_model = g_list_store_new (GDK_TYPE_PAINTABLE);
|
||||
priv->render_node_model = gtk_tree_list_model_new (FALSE,
|
||||
G_LIST_MODEL (priv->render_node_root_model),
|
||||
recorder->render_node_root_model = g_list_store_new (GDK_TYPE_PAINTABLE);
|
||||
recorder->render_node_model = gtk_tree_list_model_new (FALSE,
|
||||
G_LIST_MODEL (recorder->render_node_root_model),
|
||||
TRUE,
|
||||
create_list_model_for_render_node_paintable,
|
||||
NULL, NULL);
|
||||
priv->render_node_selection = gtk_single_selection_new (G_LIST_MODEL (priv->render_node_model));
|
||||
g_signal_connect (priv->render_node_selection, "notify::selected-item", G_CALLBACK (render_node_list_selection_changed), recorder);
|
||||
recorder->render_node_selection = gtk_single_selection_new (G_LIST_MODEL (recorder->render_node_model));
|
||||
g_signal_connect (recorder->render_node_selection, "notify::selected-item", G_CALLBACK (render_node_list_selection_changed), recorder);
|
||||
|
||||
factory = gtk_signal_list_item_factory_new ();
|
||||
g_signal_connect (factory, "setup", G_CALLBACK (setup_widget_for_render_node), NULL);
|
||||
g_signal_connect (factory, "bind", G_CALLBACK (bind_widget_for_render_node), NULL);
|
||||
|
||||
gtk_list_view_set_factory (GTK_LIST_VIEW (priv->render_node_list), factory);
|
||||
gtk_list_view_set_factory (GTK_LIST_VIEW (recorder->render_node_list), factory);
|
||||
g_object_unref (factory);
|
||||
gtk_list_view_set_model (GTK_LIST_VIEW (priv->render_node_list),
|
||||
G_LIST_MODEL (priv->render_node_selection));
|
||||
gtk_list_view_set_model (GTK_LIST_VIEW (recorder->render_node_list),
|
||||
G_LIST_MODEL (recorder->render_node_selection));
|
||||
|
||||
priv->render_node_properties = GTK_TREE_MODEL (gtk_list_store_new (4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, GDK_TYPE_TEXTURE));
|
||||
gtk_tree_view_set_model (GTK_TREE_VIEW (priv->node_property_tree), priv->render_node_properties);
|
||||
g_object_unref (priv->render_node_properties);
|
||||
recorder->render_node_properties = GTK_TREE_MODEL (gtk_list_store_new (4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_BOOLEAN, GDK_TYPE_TEXTURE));
|
||||
gtk_tree_view_set_model (GTK_TREE_VIEW (recorder->node_property_tree), recorder->render_node_properties);
|
||||
g_object_unref (recorder->render_node_properties);
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_inspector_recorder_add_recording (GtkInspectorRecorder *recorder,
|
||||
GtkInspectorRecording *recording)
|
||||
{
|
||||
GtkInspectorRecorderPrivate *priv = gtk_inspector_recorder_get_instance_private (recorder);
|
||||
|
||||
g_list_store_append (G_LIST_STORE (priv->recordings), recording);
|
||||
g_list_store_append (G_LIST_STORE (recorder->recordings), recording);
|
||||
}
|
||||
|
||||
void
|
||||
gtk_inspector_recorder_set_recording (GtkInspectorRecorder *recorder,
|
||||
gboolean recording)
|
||||
{
|
||||
GtkInspectorRecorderPrivate *priv = gtk_inspector_recorder_get_instance_private (recorder);
|
||||
|
||||
if (gtk_inspector_recorder_is_recording (recorder) == recording)
|
||||
return;
|
||||
|
||||
if (recording)
|
||||
{
|
||||
priv->recording = gtk_inspector_start_recording_new ();
|
||||
gtk_inspector_recorder_add_recording (recorder, priv->recording);
|
||||
recorder->recording = gtk_inspector_start_recording_new ();
|
||||
gtk_inspector_recorder_add_recording (recorder, recorder->recording);
|
||||
}
|
||||
else
|
||||
{
|
||||
g_clear_object (&priv->recording);
|
||||
g_clear_object (&recorder->recording);
|
||||
}
|
||||
|
||||
g_object_notify_by_pspec (G_OBJECT (recorder), props[PROP_RECORDING]);
|
||||
@ -1288,9 +1283,7 @@ gtk_inspector_recorder_set_recording (GtkInspectorRecorder *recorder,
|
||||
gboolean
|
||||
gtk_inspector_recorder_is_recording (GtkInspectorRecorder *recorder)
|
||||
{
|
||||
GtkInspectorRecorderPrivate *priv = gtk_inspector_recorder_get_instance_private (recorder);
|
||||
|
||||
return priv->recording != NULL;
|
||||
return recorder->recording != NULL;
|
||||
}
|
||||
|
||||
void
|
||||
@ -1324,13 +1317,12 @@ void
|
||||
gtk_inspector_recorder_set_debug_nodes (GtkInspectorRecorder *recorder,
|
||||
gboolean debug_nodes)
|
||||
{
|
||||
GtkInspectorRecorderPrivate *priv = gtk_inspector_recorder_get_instance_private (recorder);
|
||||
guint flags;
|
||||
|
||||
if (priv->debug_nodes == debug_nodes)
|
||||
if (recorder->debug_nodes == debug_nodes)
|
||||
return;
|
||||
|
||||
priv->debug_nodes = debug_nodes;
|
||||
recorder->debug_nodes = debug_nodes;
|
||||
|
||||
flags = gtk_get_debug_flags ();
|
||||
|
||||
|
@ -22,23 +22,9 @@
|
||||
|
||||
#define GTK_TYPE_INSPECTOR_RECORDER (gtk_inspector_recorder_get_type())
|
||||
#define GTK_INSPECTOR_RECORDER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GTK_TYPE_INSPECTOR_RECORDER, GtkInspectorRecorder))
|
||||
#define GTK_INSPECTOR_RECORDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GTK_TYPE_INSPECTOR_RECORDER, GtkInspectorRecorderClass))
|
||||
#define GTK_INSPECTOR_IS_RECORDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GTK_TYPE_INSPECTOR_RECORDER))
|
||||
#define GTK_INSPECTOR_IS_RECORDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GTK_TYPE_INSPECTOR_RECORDER))
|
||||
#define GTK_INSPECTOR_RECORDER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GTK_TYPE_INSPECTOR_RECORDER, GtkInspectorRecorderClass))
|
||||
|
||||
|
||||
typedef struct _GtkInspectorRecorderPrivate GtkInspectorRecorderPrivate;
|
||||
|
||||
typedef struct _GtkInspectorRecorder
|
||||
{
|
||||
GtkWidget parent;
|
||||
} GtkInspectorRecorder;
|
||||
|
||||
typedef struct _GtkInspectorRecorderClass
|
||||
{
|
||||
GtkWidgetClass parent;
|
||||
} GtkInspectorRecorderClass;
|
||||
typedef struct _GtkInspectorRecorder GtkInspectorRecorder;
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user