[gnome-builder/wip/mwleeds/ide-config-provider: 6/6] Make IdeBuildConfigurationView derivable
- From: Matthew Leeds <mwleeds src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder/wip/mwleeds/ide-config-provider: 6/6] Make IdeBuildConfigurationView derivable
- Date: Mon, 26 Dec 2016 23:19:38 +0000 (UTC)
commit c6d9f422118bf7f4b363a146c373df64d3460742
Author: Matthew Leeds <mleeds redhat com>
Date: Mon Dec 26 17:18:16 2016 -0600
Make IdeBuildConfigurationView derivable
libide/buildui/ide-build-configuration-view.c | 90 ++++++++++++++-----------
libide/buildui/ide-build-configuration-view.h | 24 ++++++-
2 files changed, 73 insertions(+), 41 deletions(-)
---
diff --git a/libide/buildui/ide-build-configuration-view.c b/libide/buildui/ide-build-configuration-view.c
index fba74f6..06feb0d 100644
--- a/libide/buildui/ide-build-configuration-view.c
+++ b/libide/buildui/ide-build-configuration-view.c
@@ -26,10 +26,8 @@
#include "ide-environment-editor.h"
#include "ide-internal.h"
-struct _IdeBuildConfigurationView
+typedef struct
{
- EggColumnLayout parent_instance;
-
IdeConfiguration *configuration;
GBinding *configure_binding;
@@ -42,7 +40,7 @@ struct _IdeBuildConfigurationView
IdeEnvironmentEditor *environment_editor;
GtkEntry *prefix_entry;
GtkListBox *runtime_list_box;
-};
+} IdeBuildConfigurationViewPrivate;
enum {
PROP_0,
@@ -50,7 +48,7 @@ enum {
LAST_PROP
};
-G_DEFINE_TYPE (IdeBuildConfigurationView, ide_build_configuration_view, EGG_TYPE_COLUMN_LAYOUT)
+G_DEFINE_TYPE_WITH_PRIVATE (IdeBuildConfigurationView, ide_build_configuration_view, EGG_TYPE_COLUMN_LAYOUT)
static GParamSpec *properties [LAST_PROP];
@@ -181,6 +179,7 @@ device_row_activated (IdeBuildConfigurationView *self,
GtkListBoxRow *row,
GtkListBox *list_box)
{
+ IdeBuildConfigurationViewPrivate *priv = ide_build_configuration_view_get_instance_private (self);
IdeDevice *device;
g_assert (IDE_IS_BUILD_CONFIGURATION_VIEW (self));
@@ -189,8 +188,8 @@ device_row_activated (IdeBuildConfigurationView *self,
device = g_object_get_data (G_OBJECT (row), "IDE_DEVICE");
- if (self->configuration != NULL)
- ide_configuration_set_device (self->configuration, device);
+ if (priv->configuration != NULL)
+ ide_configuration_set_device (priv->configuration, device);
}
static void
@@ -198,6 +197,7 @@ runtime_row_activated (IdeBuildConfigurationView *self,
GtkListBoxRow *row,
GtkListBox *list_box)
{
+ IdeBuildConfigurationViewPrivate *priv = ide_build_configuration_view_get_instance_private (self);
IdeRuntime *runtime;
g_assert (IDE_IS_BUILD_CONFIGURATION_VIEW (self));
@@ -206,8 +206,8 @@ runtime_row_activated (IdeBuildConfigurationView *self,
runtime = g_object_get_data (G_OBJECT (row), "IDE_RUNTIME");
- if (self->configuration != NULL)
- ide_configuration_set_runtime (self->configuration, runtime);
+ if (priv->configuration != NULL)
+ ide_configuration_set_runtime (priv->configuration, runtime);
}
static gboolean
@@ -225,6 +225,7 @@ static void
ide_build_configuration_view_connect (IdeBuildConfigurationView *self,
IdeConfiguration *configuration)
{
+ IdeBuildConfigurationViewPrivate *priv = ide_build_configuration_view_get_instance_private (self);
IdeRuntimeManager *runtime_manager;
IdeDeviceManager *device_manager;
IdeContext *context;
@@ -237,64 +238,67 @@ ide_build_configuration_view_connect (IdeBuildConfigurationView *self,
runtime_manager = ide_context_get_runtime_manager (context);
device_manager = ide_context_get_device_manager (context);
- self->display_name_binding =
+ priv->display_name_binding =
g_object_bind_property_full (configuration, "display-name",
- self->display_name_entry, "text",
+ priv->display_name_entry, "text",
G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL,
treat_null_as_empty, NULL, NULL, NULL);
- self->configure_binding =
+ priv->configure_binding =
g_object_bind_property_full (configuration, "config-opts",
- self->configure_entry, "text",
+ priv->configure_entry, "text",
G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL,
treat_null_as_empty, NULL, NULL, NULL);
- self->prefix_binding =
+ priv->prefix_binding =
g_object_bind_property_full (configuration, "prefix",
- self->prefix_entry, "text",
+ priv->prefix_entry, "text",
G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL,
treat_null_as_empty, NULL, NULL, NULL);
- gtk_list_box_bind_model (self->runtime_list_box,
+ gtk_list_box_bind_model (priv->runtime_list_box,
G_LIST_MODEL (runtime_manager),
create_runtime_row,
g_object_ref (configuration),
g_object_unref);
- gtk_list_box_bind_model (self->device_list_box,
+ gtk_list_box_bind_model (priv->device_list_box,
G_LIST_MODEL (device_manager),
create_device_row,
g_object_ref (configuration),
g_object_unref);
environment = ide_configuration_get_environment (configuration);
- ide_environment_editor_set_environment (self->environment_editor, environment);
+ ide_environment_editor_set_environment (priv->environment_editor, environment);
}
static void
ide_build_configuration_view_disconnect (IdeBuildConfigurationView *self,
IdeConfiguration *configuration)
{
+ IdeBuildConfigurationViewPrivate *priv = ide_build_configuration_view_get_instance_private (self);
+
g_assert (IDE_IS_BUILD_CONFIGURATION_VIEW (self));
g_assert (IDE_IS_CONFIGURATION (configuration));
- gtk_list_box_bind_model (self->device_list_box, NULL, NULL, NULL, NULL);
- gtk_list_box_bind_model (self->runtime_list_box, NULL, NULL, NULL, NULL);
+ gtk_list_box_bind_model (priv->device_list_box, NULL, NULL, NULL, NULL);
+ gtk_list_box_bind_model (priv->runtime_list_box, NULL, NULL, NULL, NULL);
- g_clear_pointer (&self->configure_binding, g_binding_unbind);
- g_clear_pointer (&self->display_name_binding, g_binding_unbind);
- g_clear_pointer (&self->prefix_binding, g_binding_unbind);
+ g_clear_pointer (&priv->configure_binding, g_binding_unbind);
+ g_clear_pointer (&priv->display_name_binding, g_binding_unbind);
+ g_clear_pointer (&priv->prefix_binding, g_binding_unbind);
}
static void
ide_build_configuration_view_destroy (GtkWidget *widget)
{
IdeBuildConfigurationView *self = (IdeBuildConfigurationView *)widget;
+ IdeBuildConfigurationViewPrivate *priv = ide_build_configuration_view_get_instance_private (self);
- if (self->configuration != NULL)
+ if (priv->configuration != NULL)
{
- ide_build_configuration_view_disconnect (self, self->configuration);
- g_clear_object (&self->configuration);
+ ide_build_configuration_view_disconnect (self, priv->configuration);
+ g_clear_object (&priv->configuration);
}
GTK_WIDGET_CLASS (ide_build_configuration_view_parent_class)->destroy (widget);
@@ -360,12 +364,12 @@ ide_build_configuration_view_class_init (IdeBuildConfigurationViewClass *klass)
gtk_widget_class_set_template_from_resource (widget_class,
"/org/gnome/builder/plugins/buildui/ide-build-configuration-view.ui");
gtk_widget_class_set_css_name (widget_class, "configurationview");
- gtk_widget_class_bind_template_child (widget_class, IdeBuildConfigurationView, configure_entry);
- gtk_widget_class_bind_template_child (widget_class, IdeBuildConfigurationView, device_list_box);
- gtk_widget_class_bind_template_child (widget_class, IdeBuildConfigurationView, display_name_entry);
- gtk_widget_class_bind_template_child (widget_class, IdeBuildConfigurationView, environment_editor);
- gtk_widget_class_bind_template_child (widget_class, IdeBuildConfigurationView, prefix_entry);
- gtk_widget_class_bind_template_child (widget_class, IdeBuildConfigurationView, runtime_list_box);
+ gtk_widget_class_bind_template_child_private (widget_class, IdeBuildConfigurationView, configure_entry);
+ gtk_widget_class_bind_template_child_private (widget_class, IdeBuildConfigurationView, device_list_box);
+ gtk_widget_class_bind_template_child_private (widget_class, IdeBuildConfigurationView, display_name_entry);
+ gtk_widget_class_bind_template_child_private (widget_class, IdeBuildConfigurationView, environment_editor);
+ gtk_widget_class_bind_template_child_private (widget_class, IdeBuildConfigurationView, prefix_entry);
+ gtk_widget_class_bind_template_child_private (widget_class, IdeBuildConfigurationView, runtime_list_box);
g_type_ensure (IDE_TYPE_ENVIRONMENT_EDITOR);
}
@@ -373,15 +377,17 @@ ide_build_configuration_view_class_init (IdeBuildConfigurationViewClass *klass)
static void
ide_build_configuration_view_init (IdeBuildConfigurationView *self)
{
+ IdeBuildConfigurationViewPrivate *priv = ide_build_configuration_view_get_instance_private (self);
+
gtk_widget_init_template (GTK_WIDGET (self));
- g_signal_connect_object (self->device_list_box,
+ g_signal_connect_object (priv->device_list_box,
"row-activated",
G_CALLBACK (device_row_activated),
self,
G_CONNECT_SWAPPED);
- g_signal_connect_object (self->runtime_list_box,
+ g_signal_connect_object (priv->runtime_list_box,
"row-activated",
G_CALLBACK (runtime_row_activated),
self,
@@ -391,29 +397,33 @@ ide_build_configuration_view_init (IdeBuildConfigurationView *self)
IdeConfiguration *
ide_build_configuration_view_get_configuration (IdeBuildConfigurationView *self)
{
+ IdeBuildConfigurationViewPrivate *priv = ide_build_configuration_view_get_instance_private (self);
+
g_return_val_if_fail (IDE_IS_BUILD_CONFIGURATION_VIEW (self), NULL);
- return self->configuration;
+ return priv->configuration;
}
void
ide_build_configuration_view_set_configuration (IdeBuildConfigurationView *self,
IdeConfiguration *configuration)
{
+ IdeBuildConfigurationViewPrivate *priv = ide_build_configuration_view_get_instance_private (self);
+
g_return_if_fail (IDE_IS_BUILD_CONFIGURATION_VIEW (self));
g_return_if_fail (!configuration || IDE_IS_CONFIGURATION (configuration));
- if (self->configuration != configuration)
+ if (priv->configuration != configuration)
{
- if (self->configuration != NULL)
+ if (priv->configuration != NULL)
{
- ide_build_configuration_view_disconnect (self, self->configuration);
- g_clear_object (&self->configuration);
+ ide_build_configuration_view_disconnect (self, priv->configuration);
+ g_clear_object (&priv->configuration);
}
if (configuration != NULL)
{
- self->configuration = g_object_ref (configuration);
+ priv->configuration = g_object_ref (configuration);
ide_build_configuration_view_connect (self, configuration);
}
diff --git a/libide/buildui/ide-build-configuration-view.h b/libide/buildui/ide-build-configuration-view.h
index 2adea17..be1c356 100644
--- a/libide/buildui/ide-build-configuration-view.h
+++ b/libide/buildui/ide-build-configuration-view.h
@@ -27,7 +27,29 @@ G_BEGIN_DECLS
#define IDE_TYPE_BUILD_CONFIGURATION_VIEW (ide_build_configuration_view_get_type())
-G_DECLARE_FINAL_TYPE (IdeBuildConfigurationView, ide_build_configuration_view, IDE,
BUILD_CONFIGURATION_VIEW, EggColumnLayout)
+G_DECLARE_DERIVABLE_TYPE (IdeBuildConfigurationView, ide_build_configuration_view, IDE,
BUILD_CONFIGURATION_VIEW, EggColumnLayout)
+
+struct _IdeBuildConfigurationViewClass
+{
+ EggColumnLayoutClass parent;
+
+ gpointer _reserved1;
+ gpointer _reserved2;
+ gpointer _reserved3;
+ gpointer _reserved4;
+ gpointer _reserved5;
+ gpointer _reserved6;
+ gpointer _reserved7;
+ gpointer _reserved8;
+ gpointer _reserved9;
+ gpointer _reserved10;
+ gpointer _reserved11;
+ gpointer _reserved12;
+ gpointer _reserved13;
+ gpointer _reserved14;
+ gpointer _reserved15;
+ gpointer _reserved16;
+};
IdeConfiguration *ide_build_configuration_view_get_configuration (IdeBuildConfigurationView *self);
void ide_build_configuration_view_set_configuration (IdeBuildConfigurationView *self,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]