[gthumb/ext: 23/79] use the gobject private system
- From: Paolo Bacchilega <paobac src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gthumb/ext: 23/79] use the gobject private system
- Date: Sun, 2 Aug 2009 20:25:49 +0000 (UTC)
commit 394215ff6c65be9e0e0438426b941374484eda92
Author: Paolo Bacchilega <paobac src gnome org>
Date: Thu Jun 25 23:54:51 2009 +0200
use the gobject private system
gthumb/gth-filter.c | 59 ++++++++++++++++++++++++--------------------------
gthumb/gth-test.c | 57 +++++++++++++++++++++++--------------------------
2 files changed, 55 insertions(+), 61 deletions(-)
---
diff --git a/gthumb/gth-filter.c b/gthumb/gth-filter.c
index 8982484..bd1d925 100644
--- a/gthumb/gth-filter.c
+++ b/gthumb/gth-filter.c
@@ -54,7 +54,7 @@ struct _GthFilterPrivate {
const char *sort_name;
GtkSortType sort_direction;
int current_images;
- goffset current_size;
+ goffset current_size;
GtkWidget *limit_entry;
GtkWidget *size_combo_box;
};
@@ -81,7 +81,7 @@ gth_filter_real_create_element (DomDomizable *base,
if (! gth_test_is_visible (GTH_TEST (self)))
dom_element_set_attribute (element, "display", "none");
- if ((self->priv->test != NULL) && (gth_test_chain_get_match_type (self->priv->test) != GTH_MATCH_TYPE_NONE))
+ if ((self->priv->test != NULL) && (gth_test_chain_get_match_type (self->priv->test) != GTH_MATCH_TYPE_NONE))
dom_element_append_child (element, dom_domizable_create_element (DOM_DOMIZABLE (self->priv->test), doc));
if (self->priv->limit_type != GTH_LIMIT_TYPE_NONE) {
@@ -124,7 +124,7 @@ gth_filter_real_load_from_element (DomDomizable *base,
for (node = element->first_child; node; node = node->next_sibling) {
if (g_strcmp0 (node->tag_name, "tests") == 0) {
GthTest *test;
-
+
test = gth_test_chain_new (GTH_MATCH_TYPE_NONE, NULL);
dom_domizable_load_from_element (DOM_DOMIZABLE (test), node);
gth_filter_set_test (self, GTH_TEST_CHAIN (test));
@@ -148,7 +148,7 @@ qsort_campare_func (gconstpointer a,
GthFileDataSort *sort_type = user_data;
GthFileData *file_a = *((GthFileData **) a);
GthFileData *file_b = *((GthFileData **) b);
-
+
return sort_type->cmp_func (file_a, file_b);
}
@@ -158,32 +158,32 @@ gth_filter_set_file_list (GthTest *test,
GList *files)
{
GthFilter *filter = GTH_FILTER (test);
-
+
GTH_TEST_CLASS (parent_class)->set_file_list (test, files);
-
+
if ((filter->priv->limit_type != GTH_LIMIT_TYPE_NONE)
&& (filter->priv->sort_name != NULL)
- && (strcmp (filter->priv->sort_name, "") != 0))
+ && (strcmp (filter->priv->sort_name, "") != 0))
{
GthFileDataSort *sort_type;
-
+
sort_type = gth_main_get_sort_type (filter->priv->sort_name);
- if (sort_type != NULL) {
+ if (sort_type != NULL) {
g_qsort_with_data (test->files, test->n_files, (gsize) sizeof (GthFileData *), qsort_campare_func, sort_type);
if (filter->priv->sort_direction == GTK_SORT_DESCENDING) {
int i;
-
+
for (i = 0; i < test->n_files / 2; i++) {
GthFileData *tmp;
-
+
tmp = test->files[i];
test->files[i] = test->files[test->n_files - 1 - i];
- test->files[test->n_files - 1 - i] = tmp;
+ test->files[test->n_files - 1 - i] = tmp;
}
}
}
}
-
+
filter->priv->current_images = 0;
filter->priv->current_size = 0;
}
@@ -195,7 +195,7 @@ gth_filter_match (GthTest *test,
{
GthFilter *filter = GTH_FILTER (test);
GthMatch match = GTH_MATCH_NO;
-
+
if (filter->priv->test != NULL)
match = gth_test_match (GTH_TEST (filter->priv->test), file);
else
@@ -218,8 +218,8 @@ gth_filter_match (GthTest *test,
match = GTH_MATCH_LIMIT_REACHED;
break;
}
-
- return match;
+
+ return match;
}
@@ -239,11 +239,11 @@ create_control_for_files (GthFilter *filter)
GtkWidget *limit_label;
GtkWidget *label;
char *value;
-
+
control = gtk_hbox_new (FALSE, 6);
/* limit label */
-
+
limit_label = gtk_label_new_with_mnemonic (_("_Limit to"));
gtk_widget_show (limit_label);
@@ -315,7 +315,7 @@ create_control_for_size (GthFilter *filter)
control = gtk_hbox_new (FALSE, 6);
/* limit label */
-
+
limit_label = gtk_label_new_with_mnemonic (_("_Limit to"));
gtk_widget_show (limit_label);
@@ -418,28 +418,25 @@ gth_filter_finalize (GObject *object)
filter = GTH_FILTER (object);
- if (filter->priv != NULL) {
- if (filter->priv->test != NULL)
- g_object_unref (filter->priv->test);
- g_free (filter->priv);
- filter->priv = NULL;
- }
+ _g_object_unref (filter->priv->test);
G_OBJECT_CLASS (parent_class)->finalize (object);
}
static void
-gth_filter_class_init (GthFilterClass *class)
+gth_filter_class_init (GthFilterClass *klass)
{
GObjectClass *object_class;
GthTestClass *test_class;
- parent_class = g_type_class_peek_parent (class);
- object_class = G_OBJECT_CLASS (class);
- test_class = GTH_TEST_CLASS (class);
+ parent_class = g_type_class_peek_parent (klass);
+ g_type_class_add_private (klass, sizeof (GthFilterPrivate));
+ object_class = G_OBJECT_CLASS (klass);
object_class->finalize = gth_filter_finalize;
+
+ test_class = GTH_TEST_CLASS (klass);
test_class->set_file_list = gth_filter_set_file_list;
test_class->match = gth_filter_match;
test_class->create_control = gth_filter_real_create_control;
@@ -464,7 +461,7 @@ gth_filter_gth_duplicable_interface_init (GthDuplicableIface *iface)
static void
gth_filter_init (GthFilter *filter)
{
- filter->priv = g_new0 (GthFilterPrivate, 1);
+ filter->priv = G_TYPE_INSTANCE_GET_PRIVATE (filter, GTH_TYPE_FILTER, GthFilterPrivate);
filter->priv->test = NULL;
filter->priv->limit_type = GTH_LIMIT_TYPE_NONE;
filter->priv->limit = 0;
@@ -567,7 +564,7 @@ gth_filter_set_test (GthFilter *filter,
g_object_unref (filter->priv->test);
filter->priv->test = NULL;
}
- if (test != NULL)
+ if (test != NULL)
filter->priv->test = g_object_ref (test);
}
diff --git a/gthumb/gth-test.c b/gthumb/gth-test.c
index 8c80080..29598db 100644
--- a/gthumb/gth-test.c
+++ b/gthumb/gth-test.c
@@ -52,7 +52,7 @@ struct _GthTestPrivate
};
-static GObjectClass *parent_class = NULL;
+static gpointer parent_class = NULL;
static GthDuplicableIface *gth_duplicable_parent_iface = NULL;
static guint gth_test_signals[LAST_SIGNAL] = { 0 };
@@ -71,13 +71,9 @@ gth_test_finalize (GObject *object)
test = GTH_TEST (object);
- if (test->priv != NULL) {
- g_free (test->priv->id);
- g_free (test->priv->display_name);
- g_free (test->files);
- g_free (test->priv);
- test->priv = NULL;
- }
+ g_free (test->priv->id);
+ g_free (test->priv->display_name);
+ g_free (test->files);
G_OBJECT_CLASS (parent_class)->finalize (object);
}
@@ -118,16 +114,16 @@ base_set_file_list (GthTest *test,
{
GList *scan;
int i;
-
+
test->n_files = g_list_length (files);
-
+
g_free (test->files);
test->files = g_malloc (sizeof (GthFileData*) * (test->n_files + 1));
-
- for (scan = files, i = 0; scan; scan = scan->next)
+
+ for (scan = files, i = 0; scan; scan = scan->next)
test->files[i++] = scan->data;
test->files[i++] = NULL;
-
+
test->iterator = 0;
}
@@ -137,20 +133,20 @@ base_get_next (GthTest *test)
{
GthFileData *file = NULL;
GthMatch match = GTH_MATCH_NO;
-
+
if (test->files == NULL)
return NULL;
-
+
while (match == GTH_MATCH_NO) {
file = test->files[test->iterator];
if (file != NULL) {
match = gth_test_match (test, file);
test->iterator++;
}
- else
+ else
match = GTH_MATCH_LIMIT_REACHED;
}
-
+
if (match != GTH_MATCH_YES)
file = NULL;
@@ -158,7 +154,7 @@ base_get_next (GthTest *test)
g_free (test->files);
test->files = NULL;
}
-
+
return file;
}
@@ -239,23 +235,24 @@ gth_test_get_property (GObject *object,
static void
-gth_test_class_init (GthTestClass *class)
+gth_test_class_init (GthTestClass *klass)
{
GObjectClass *object_class;
- parent_class = g_type_class_peek_parent (class);
- object_class = (GObjectClass*) class;
+ parent_class = g_type_class_peek_parent (klass);
+ g_type_class_add_private (klass, sizeof (GthTestPrivate));
+ object_class = (GObjectClass*) klass;
object_class->set_property = gth_test_set_property;
object_class->get_property = gth_test_get_property;
object_class->finalize = gth_test_finalize;
- class->create_control = base_create_control;
- class->update_from_control = base_update_from_control;
- class->reset = base_reset;
- class->match = base_match;
- class->set_file_list = base_set_file_list;
- class->get_next = base_get_next;
+ klass->create_control = base_create_control;
+ klass->update_from_control = base_update_from_control;
+ klass->reset = base_reset;
+ klass->match = base_match;
+ klass->set_file_list = base_set_file_list;
+ klass->get_next = base_get_next;
/* properties */
@@ -285,7 +282,7 @@ gth_test_class_init (GthTestClass *class)
gth_test_signals[CHANGED] =
g_signal_new ("changed",
- G_TYPE_FROM_CLASS (class),
+ G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST,
G_STRUCT_OFFSET (GthTestClass, changed),
NULL, NULL,
@@ -306,7 +303,7 @@ gth_test_gth_duplicable_interface_init (GthDuplicableIface *iface)
static void
gth_test_init (GthTest *test)
{
- test->priv = g_new0 (GthTestPrivate, 1);
+ test->priv = G_TYPE_INSTANCE_GET_PRIVATE (test, GTH_TYPE_TEST, GthTestPrivate);
test->priv->id = g_strdup ("");
test->priv->display_name = g_strdup ("");
test->priv->visible = FALSE;
@@ -335,7 +332,7 @@ gth_test_get_type (void)
(GInterfaceFinalizeFunc) NULL,
NULL
};
-
+
type = g_type_register_static (G_TYPE_OBJECT,
"GthTest",
&type_info,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]