[gimp] app: move all GimpImagefile members to private
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: move all GimpImagefile members to private
- Date: Wed, 2 Mar 2011 11:26:33 +0000 (UTC)
commit c550eae5e1e1194d305bf768f710e656a32b7920
Author: Michael Natterer <mitch gimp org>
Date: Wed Mar 2 12:26:04 2011 +0100
app: move all GimpImagefile members to private
app/actions/documents-commands.c | 7 +-
app/core/gimpimagefile.c | 201 +++++++++++++++++++-----------
app/core/gimpimagefile.h | 10 +-
app/widgets/gimpthumbbox.c | 11 +-
app/widgets/gimpviewrendererimagefile.c | 13 +-
5 files changed, 148 insertions(+), 94 deletions(-)
---
diff --git a/app/actions/documents-commands.c b/app/actions/documents-commands.c
index ecf110b..dcb3965 100644
--- a/app/actions/documents-commands.c
+++ b/app/actions/documents-commands.c
@@ -268,7 +268,7 @@ documents_recreate_preview_cmd_callback (GtkAction *action,
{
gimp_imagefile_create_thumbnail (imagefile,
context, NULL,
- imagefile->gimp->config->thumbnail_size,
+ context->gimp->config->thumbnail_size,
FALSE);
}
}
@@ -291,8 +291,9 @@ static void
documents_remove_dangling_foreach (GimpImagefile *imagefile,
GimpContainer *container)
{
- if (gimp_thumbnail_peek_image (imagefile->thumbnail) ==
- GIMP_THUMB_STATE_NOT_FOUND)
+ GimpThumbnail *thumbnail = gimp_imagefile_get_thumbnail (imagefile);
+
+ if (gimp_thumbnail_peek_image (thumbnail) == GIMP_THUMB_STATE_NOT_FOUND)
{
const gchar *uri = gimp_object_get_name (imagefile);
diff --git a/app/core/gimpimagefile.c b/app/core/gimpimagefile.c
index fc9a4d1..daa1a0f 100644
--- a/app/core/gimpimagefile.c
+++ b/app/core/gimpimagefile.c
@@ -56,6 +56,23 @@ enum
};
+typedef struct _GimpImagefilePrivate GimpImagefilePrivate;
+
+struct _GimpImagefilePrivate
+{
+ Gimp *gimp;
+
+ GimpThumbnail *thumbnail;
+
+ gchar *description;
+ gboolean static_desc;
+};
+
+#define GET_PRIVATE(imagefile) G_TYPE_INSTANCE_GET_PRIVATE (imagefile, \
+ GIMP_TYPE_IMAGEFILE, \
+ GimpImagefilePrivate)
+
+
static void gimp_imagefile_finalize (GObject *object);
static void gimp_imagefile_name_changed (GimpObject *object);
@@ -131,16 +148,18 @@ gimp_imagefile_class_init (GimpImagefileClass *klass)
gimp_thumb_init (creator, NULL);
g_free (creator);
+
+ g_type_class_add_private (klass, sizeof (GimpImagefilePrivate));
}
static void
gimp_imagefile_init (GimpImagefile *imagefile)
{
- imagefile->gimp = NULL;
- imagefile->thumbnail = gimp_thumbnail_new ();
- imagefile->description = NULL;
+ GimpImagefilePrivate *private = GET_PRIVATE (imagefile);
+
+ private->thumbnail = gimp_thumbnail_new ();
- g_signal_connect_object (imagefile->thumbnail, "notify",
+ g_signal_connect_object (private->thumbnail, "notify",
G_CALLBACK (gimp_imagefile_notify_thumbnail),
imagefile, G_CONNECT_SWAPPED);
}
@@ -148,20 +167,20 @@ gimp_imagefile_init (GimpImagefile *imagefile)
static void
gimp_imagefile_finalize (GObject *object)
{
- GimpImagefile *imagefile = GIMP_IMAGEFILE (object);
+ GimpImagefilePrivate *private = GET_PRIVATE (object);
- if (imagefile->description)
+ if (private->description)
{
- if (! imagefile->static_desc)
- g_free (imagefile->description);
+ if (! private->static_desc)
+ g_free (private->description);
- imagefile->description = NULL;
+ private->description = NULL;
}
- if (imagefile->thumbnail)
+ if (private->thumbnail)
{
- g_object_unref (imagefile->thumbnail);
- imagefile->thumbnail = NULL;
+ g_object_unref (private->thumbnail);
+ private->thumbnail = NULL;
}
G_OBJECT_CLASS (parent_class)->finalize (object);
@@ -177,7 +196,7 @@ gimp_imagefile_new (Gimp *gimp,
imagefile = g_object_new (GIMP_TYPE_IMAGEFILE, NULL);
- imagefile->gimp = gimp;
+ GET_PRIVATE (imagefile)->gimp = gimp;
if (uri)
gimp_object_set_name (GIMP_OBJECT (imagefile), uri);
@@ -185,13 +204,21 @@ gimp_imagefile_new (Gimp *gimp,
return imagefile;
}
+GimpThumbnail *
+gimp_imagefile_get_thumbnail (GimpImagefile *imagefile)
+{
+ g_return_val_if_fail (GIMP_IS_IMAGEFILE (imagefile), NULL);
+
+ return GET_PRIVATE (imagefile)->thumbnail;
+}
+
void
gimp_imagefile_set_mime_type (GimpImagefile *imagefile,
const gchar *mime_type)
{
g_return_if_fail (GIMP_IS_IMAGEFILE (imagefile));
- g_object_set (imagefile->thumbnail,
+ g_object_set (GET_PRIVATE (imagefile)->thumbnail,
"image-mimetype", mime_type,
NULL);
}
@@ -199,20 +226,23 @@ gimp_imagefile_set_mime_type (GimpImagefile *imagefile,
void
gimp_imagefile_update (GimpImagefile *imagefile)
{
- gchar *uri;
+ GimpImagefilePrivate *private;
+ gchar *uri;
g_return_if_fail (GIMP_IS_IMAGEFILE (imagefile));
+ private = GET_PRIVATE (imagefile);
+
gimp_viewable_invalidate_preview (GIMP_VIEWABLE (imagefile));
- g_object_get (imagefile->thumbnail,
+ g_object_get (private->thumbnail,
"image-uri", &uri,
NULL);
if (uri)
{
GimpImagefile *documents_imagefile = (GimpImagefile *)
- gimp_container_get_child_by_name (imagefile->gimp->documents, uri);
+ gimp_container_get_child_by_name (private->gimp->documents, uri);
if (documents_imagefile != imagefile &&
GIMP_IS_IMAGEFILE (documents_imagefile))
@@ -229,8 +259,9 @@ gimp_imagefile_create_thumbnail (GimpImagefile *imagefile,
gint size,
gboolean replace)
{
- GimpThumbnail *thumbnail;
- GimpThumbState image_state;
+ GimpImagefilePrivate *private;
+ GimpThumbnail *thumbnail;
+ GimpThumbState image_state;
g_return_if_fail (GIMP_IS_IMAGEFILE (imagefile));
g_return_if_fail (GIMP_IS_CONTEXT (context));
@@ -239,7 +270,9 @@ gimp_imagefile_create_thumbnail (GimpImagefile *imagefile,
if (size < 1)
return;
- thumbnail = imagefile->thumbnail;
+ private = GET_PRIVATE (imagefile);
+
+ thumbnail = private->thumbnail;
gimp_thumbnail_set_uri (thumbnail,
gimp_object_get_name (imagefile));
@@ -260,14 +293,14 @@ gimp_imagefile_create_thumbnail (GimpImagefile *imagefile,
g_object_ref (imagefile);
- image = file_open_thumbnail (imagefile->gimp, context, progress,
+ image = file_open_thumbnail (private->gimp, context, progress,
thumbnail->image_uri, size,
&mime_type, &width, &height,
&type, &num_layers, NULL);
if (image)
{
- gimp_thumbnail_set_info (imagefile->thumbnail,
+ gimp_thumbnail_set_info (private->thumbnail,
mime_type, width, height,
type, num_layers);
}
@@ -275,14 +308,14 @@ gimp_imagefile_create_thumbnail (GimpImagefile *imagefile,
{
GimpPDBStatusType status;
- image = file_open_image (imagefile->gimp, context, progress,
+ image = file_open_image (private->gimp, context, progress,
thumbnail->image_uri,
thumbnail->image_uri,
FALSE, NULL, GIMP_RUN_NONINTERACTIVE,
&status, &mime_type, NULL);
if (image)
- gimp_thumbnail_set_info_from_image (imagefile->thumbnail,
+ gimp_thumbnail_set_info_from_image (private->thumbnail,
mime_type, image);
}
@@ -306,7 +339,7 @@ gimp_imagefile_create_thumbnail (GimpImagefile *imagefile,
if (! success)
{
- gimp_message_literal (imagefile->gimp,
+ gimp_message_literal (private->gimp,
G_OBJECT (progress), GIMP_MESSAGE_ERROR,
error->message);
g_clear_error (&error);
@@ -326,19 +359,22 @@ gimp_imagefile_create_thumbnail_weak (GimpImagefile *imagefile,
gint size,
gboolean replace)
{
- GimpImagefile *local;
- const gchar *uri;
+ GimpImagefilePrivate *private;
+ GimpImagefile *local;
+ const gchar *uri;
g_return_if_fail (GIMP_IS_IMAGEFILE (imagefile));
if (size < 1)
return;
+ private = GET_PRIVATE (imagefile);
+
uri = gimp_object_get_name (imagefile);
if (! uri)
return;
- local = gimp_imagefile_new (imagefile->gimp, uri);
+ local = gimp_imagefile_new (private->gimp, uri);
g_object_add_weak_pointer (G_OBJECT (imagefile), (gpointer) &imagefile);
@@ -364,17 +400,20 @@ gimp_imagefile_create_thumbnail_weak (GimpImagefile *imagefile,
gboolean
gimp_imagefile_check_thumbnail (GimpImagefile *imagefile)
{
- gint size;
+ GimpImagefilePrivate *private;
+ gint size;
g_return_val_if_fail (GIMP_IS_IMAGEFILE (imagefile), FALSE);
- size = imagefile->gimp->config->thumbnail_size;
+ private = GET_PRIVATE (imagefile);
+
+ size = private->gimp->config->thumbnail_size;
if (size > 0)
{
GimpThumbState state;
- state = gimp_thumbnail_check_thumb (imagefile->thumbnail, size);
+ state = gimp_thumbnail_check_thumb (private->thumbnail, size);
return (state == GIMP_THUMB_STATE_OK);
}
@@ -387,18 +426,21 @@ gimp_imagefile_save_thumbnail (GimpImagefile *imagefile,
const gchar *mime_type,
GimpImage *image)
{
- gint size;
- gboolean success = TRUE;
- GError *error = NULL;
+ GimpImagefilePrivate *private;
+ gint size;
+ gboolean success = TRUE;
+ GError *error = NULL;
g_return_val_if_fail (GIMP_IS_IMAGEFILE (imagefile), FALSE);
g_return_val_if_fail (GIMP_IS_IMAGE (image), FALSE);
- size = imagefile->gimp->config->thumbnail_size;
+ private = GET_PRIVATE (imagefile);
+
+ size = private->gimp->config->thumbnail_size;
if (size > 0)
{
- gimp_thumbnail_set_info_from_image (imagefile->thumbnail,
+ gimp_thumbnail_set_info_from_image (private->thumbnail,
mime_type, image);
success = gimp_imagefile_save_thumb (imagefile,
@@ -406,7 +448,7 @@ gimp_imagefile_save_thumbnail (GimpImagefile *imagefile,
&error);
if (! success)
{
- gimp_message_literal (imagefile->gimp, NULL, GIMP_MESSAGE_ERROR,
+ gimp_message_literal (private->gimp, NULL, GIMP_MESSAGE_ERROR,
error->message);
g_clear_error (&error);
}
@@ -415,26 +457,31 @@ gimp_imagefile_save_thumbnail (GimpImagefile *imagefile,
return success;
}
+
+/* private functions */
+
static void
gimp_imagefile_name_changed (GimpObject *object)
{
- GimpImagefile *imagefile = GIMP_IMAGEFILE (object);
+ GimpImagefilePrivate *private = GET_PRIVATE (object);
if (GIMP_OBJECT_CLASS (parent_class)->name_changed)
GIMP_OBJECT_CLASS (parent_class)->name_changed (object);
- gimp_thumbnail_set_uri (imagefile->thumbnail, gimp_object_get_name (object));
+ gimp_thumbnail_set_uri (private->thumbnail, gimp_object_get_name (object));
}
static void
gimp_imagefile_info_changed (GimpImagefile *imagefile)
{
- if (imagefile->description)
+ GimpImagefilePrivate *private = GET_PRIVATE (imagefile);
+
+ if (private->description)
{
- if (! imagefile->static_desc)
- g_free (imagefile->description);
+ if (! private->static_desc)
+ g_free (private->description);
- imagefile->description = NULL;
+ private->description = NULL;
}
g_signal_emit (imagefile, gimp_imagefile_signals[INFO_CHANGED], 0);
@@ -469,9 +516,10 @@ static gchar *
gimp_imagefile_get_description (GimpViewable *viewable,
gchar **tooltip)
{
- GimpImagefile *imagefile = GIMP_IMAGEFILE (viewable);
- GimpThumbnail *thumbnail = imagefile->thumbnail;
- gchar *basename;
+ GimpImagefile *imagefile = GIMP_IMAGEFILE (viewable);
+ GimpImagefilePrivate *private = GET_PRIVATE (imagefile);
+ GimpThumbnail *thumbnail = private->thumbnail;
+ gchar *basename;
if (! thumbnail->image_uri)
return NULL;
@@ -514,36 +562,39 @@ gimp_imagefile_get_description (GimpViewable *viewable,
const gchar *
gimp_imagefile_get_desc_string (GimpImagefile *imagefile)
{
- GimpThumbnail *thumbnail;
+ GimpImagefilePrivate *private;
+ GimpThumbnail *thumbnail;
g_return_val_if_fail (GIMP_IS_IMAGEFILE (imagefile), NULL);
- if (imagefile->description)
- return (const gchar *) imagefile->description;
+ private = GET_PRIVATE (imagefile);
+
+ if (private->description)
+ return (const gchar *) private->description;
- thumbnail = imagefile->thumbnail;
+ thumbnail = private->thumbnail;
switch (thumbnail->image_state)
{
case GIMP_THUMB_STATE_UNKNOWN:
- imagefile->description = NULL;
- imagefile->static_desc = TRUE;
+ private->description = NULL;
+ private->static_desc = TRUE;
break;
case GIMP_THUMB_STATE_FOLDER:
- imagefile->description = (gchar *) _("Folder");
- imagefile->static_desc = TRUE;
+ private->description = (gchar *) _("Folder");
+ private->static_desc = TRUE;
break;
case GIMP_THUMB_STATE_SPECIAL:
- imagefile->description = (gchar *) _("Special File");
- imagefile->static_desc = TRUE;
+ private->description = (gchar *) _("Special File");
+ private->static_desc = TRUE;
break;
case GIMP_THUMB_STATE_NOT_FOUND:
- imagefile->description =
+ private->description =
(gchar *) g_strerror (thumbnail->image_not_found_errno);
- imagefile->static_desc = TRUE;
+ private->static_desc = TRUE;
break;
default:
@@ -643,12 +694,12 @@ gimp_imagefile_get_desc_string (GimpImagefile *imagefile)
break;
}
- imagefile->description = g_string_free (str, FALSE);
- imagefile->static_desc = FALSE;
+ private->description = g_string_free (str, FALSE);
+ private->static_desc = FALSE;
}
}
- return (const gchar *) imagefile->description;
+ return (const gchar *) private->description;
}
static GdkPixbuf *
@@ -656,14 +707,15 @@ gimp_imagefile_load_thumb (GimpImagefile *imagefile,
gint width,
gint height)
{
- GimpThumbnail *thumbnail = imagefile->thumbnail;
- GdkPixbuf *pixbuf = NULL;
- GError *error = NULL;
- gint size = MAX (width, height);
- gint pixbuf_width;
- gint pixbuf_height;
- gint preview_width;
- gint preview_height;
+ GimpImagefilePrivate *private = GET_PRIVATE (imagefile);
+ GimpThumbnail *thumbnail = private->thumbnail;
+ GdkPixbuf *pixbuf = NULL;
+ GError *error = NULL;
+ gint size = MAX (width, height);
+ gint pixbuf_width;
+ gint pixbuf_height;
+ gint preview_width;
+ gint preview_height;
if (gimp_thumbnail_peek_thumb (thumbnail, size) < GIMP_THUMB_STATE_EXISTS)
return NULL;
@@ -677,7 +729,7 @@ gimp_imagefile_load_thumb (GimpImagefile *imagefile,
{
if (error)
{
- gimp_message (imagefile->gimp, NULL, GIMP_MESSAGE_ERROR,
+ gimp_message (private->gimp, NULL, GIMP_MESSAGE_ERROR,
_("Could not open thumbnail '%s': %s"),
thumbnail->thumb_filename, error->message);
g_clear_error (&error);
@@ -737,10 +789,11 @@ gimp_imagefile_save_thumb (GimpImagefile *imagefile,
gboolean replace,
GError **error)
{
- GimpThumbnail *thumbnail = imagefile->thumbnail;
- GdkPixbuf *pixbuf;
- gint width, height;
- gboolean success = FALSE;
+ GimpImagefilePrivate *private = GET_PRIVATE (imagefile);
+ GimpThumbnail *thumbnail = private->thumbnail;
+ GdkPixbuf *pixbuf;
+ gint width, height;
+ gboolean success = FALSE;
if (size < 1)
return TRUE;
diff --git a/app/core/gimpimagefile.h b/app/core/gimpimagefile.h
index 5cac889..d85fcaa 100644
--- a/app/core/gimpimagefile.h
+++ b/app/core/gimpimagefile.h
@@ -42,12 +42,7 @@ typedef struct _GimpImagefileClass GimpImagefileClass;
struct _GimpImagefile
{
- GimpViewable parent_instance;
-
- Gimp *gimp;
- GimpThumbnail *thumbnail;
- gchar *description;
- gboolean static_desc;
+ GimpViewable parent_instance;
};
struct _GimpImagefileClass
@@ -62,6 +57,9 @@ GType gimp_imagefile_get_type (void) G_GNUC_CONST;
GimpImagefile * gimp_imagefile_new (Gimp *gimp,
const gchar *uri);
+
+GimpThumbnail * gimp_imagefile_get_thumbnail (GimpImagefile *imagefile);
+
void gimp_imagefile_set_mime_type (GimpImagefile *imagefile,
const gchar *mime_type);
void gimp_imagefile_update (GimpImagefile *imagefile);
diff --git a/app/widgets/gimpthumbbox.c b/app/widgets/gimpthumbbox.c
index 34ab6f2..357cf4e 100644
--- a/app/widgets/gimpthumbbox.c
+++ b/app/widgets/gimpthumbbox.c
@@ -378,7 +378,8 @@ gimp_thumb_box_new (GimpContext *context)
G_CALLBACK (gimp_thumb_box_imagefile_info_changed),
box);
- g_signal_connect (box->imagefile->thumbnail, "notify::thumb-state",
+ g_signal_connect (gimp_imagefile_get_thumbnail (box->imagefile),
+ "notify::thumb-state",
G_CALLBACK (gimp_thumb_box_thumb_state_notify),
box);
@@ -547,7 +548,7 @@ static void
gimp_thumb_box_create_thumbnails (GimpThumbBox *box,
gboolean force)
{
- Gimp *gimp = box->imagefile->gimp;
+ Gimp *gimp = box->context->gimp;
GimpProgress *progress = GIMP_PROGRESS (box);
GimpFileDialog *dialog = NULL;
GtkWidget *toplevel;
@@ -679,7 +680,7 @@ gimp_thumb_box_create_thumbnail (GimpThumbBox *box,
return;
}
- thumb = box->imagefile->thumbnail;
+ thumb = gimp_imagefile_get_thumbnail (box->imagefile);
basename = file_utils_uri_display_basename (uri);
gtk_label_set_text (GTK_LABEL (box->filename), basename);
@@ -701,8 +702,8 @@ gimp_thumb_box_create_thumbnail (GimpThumbBox *box,
static gboolean
gimp_thumb_box_auto_thumbnail (GimpThumbBox *box)
{
- Gimp *gimp = box->imagefile->gimp;
- GimpThumbnail *thumb = box->imagefile->thumbnail;
+ Gimp *gimp = box->context->gimp;
+ GimpThumbnail *thumb = gimp_imagefile_get_thumbnail (box->imagefile);
const gchar *uri = gimp_object_get_name (box->imagefile);
box->idle_id = 0;
diff --git a/app/widgets/gimpviewrendererimagefile.c b/app/widgets/gimpviewrendererimagefile.c
index a2cabf1..01e4ec4 100644
--- a/app/widgets/gimpviewrendererimagefile.c
+++ b/app/widgets/gimpviewrendererimagefile.c
@@ -156,9 +156,10 @@ gimp_view_renderer_imagefile_get_icon (GimpImagefile *imagefile,
GtkWidget *widget,
gint size)
{
- GdkScreen *screen = gtk_widget_get_screen (widget);
- GtkIconTheme *icon_theme = gtk_icon_theme_get_for_screen (screen);
- GdkPixbuf *pixbuf = NULL;
+ GdkScreen *screen = gtk_widget_get_screen (widget);
+ GtkIconTheme *icon_theme = gtk_icon_theme_get_for_screen (screen);
+ GimpThumbnail *thumbnail = gimp_imagefile_get_thumbnail (imagefile);
+ GdkPixbuf *pixbuf = NULL;
if (! gimp_object_get_name (imagefile))
return NULL;
@@ -198,9 +199,9 @@ gimp_view_renderer_imagefile_get_icon (GimpImagefile *imagefile,
g_object_unref (file);
}
- if (! pixbuf && imagefile->thumbnail->image_mimetype)
+ if (! pixbuf && thumbnail->image_mimetype)
{
- pixbuf = get_icon_for_mime_type (imagefile->thumbnail->image_mimetype,
+ pixbuf = get_icon_for_mime_type (thumbnail->image_mimetype,
size);
}
@@ -208,7 +209,7 @@ gimp_view_renderer_imagefile_get_icon (GimpImagefile *imagefile,
{
const gchar *icon_name = GTK_STOCK_FILE;
- if (imagefile->thumbnail->image_state == GIMP_THUMB_STATE_FOLDER)
+ if (thumbnail->image_state == GIMP_THUMB_STATE_FOLDER)
icon_name = GTK_STOCK_DIRECTORY;
pixbuf = gtk_icon_theme_load_icon (icon_theme,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]