[gimp] libgimpwidgets: use a GimpColorProfileView in GimpColorProfileChooserDialog
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] libgimpwidgets: use a GimpColorProfileView in GimpColorProfileChooserDialog
- Date: Sun, 16 Mar 2014 17:37:35 +0000 (UTC)
commit c6ac6913af49fd8006635f37f3e16a769b8c9ebd
Author: Michael Natterer <mitch gimp org>
Date: Sun Mar 16 16:54:23 2014 +0100
libgimpwidgets: use a GimpColorProfileView in GimpColorProfileChooserDialog
libgimpwidgets/gimpcolorprofilechooserdialog.c | 212 ++++++------------------
1 files changed, 51 insertions(+), 161 deletions(-)
---
diff --git a/libgimpwidgets/gimpcolorprofilechooserdialog.c b/libgimpwidgets/gimpcolorprofilechooserdialog.c
index f087760..4fc0d8f 100644
--- a/libgimpwidgets/gimpcolorprofilechooserdialog.c
+++ b/libgimpwidgets/gimpcolorprofilechooserdialog.c
@@ -35,40 +35,23 @@
#include "gimpwidgetstypes.h"
#include "gimpcolorprofilechooserdialog.h"
+#include "gimpcolorprofileview.h"
#include "libgimp/libgimp-intl.h"
-enum
-{
- PROP_0
-};
-
-
struct _GimpColorProfileChooserDialogPrivate
{
- GtkTextBuffer *buffer;
- gchar *filename;
- gchar *desc;
+ GimpColorProfileView *profile_view;
+ gchar *filename;
+ gchar *desc;
};
-static void gimp_color_profile_chooser_dialog_constructed (GObject *object);
-static void gimp_color_profile_chooser_dialog_finalize (GObject *object);
-static void gimp_color_profile_chooser_dialog_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
-static void gimp_color_profile_chooser_dialog_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
-
+static void gimp_color_profile_chooser_dialog_constructed (GObject *object);
static void gimp_color_profile_chooser_dialog_add_shortcut (GimpColorProfileChooserDialog *dialog);
static void gimp_color_profile_chooser_dialog_update_preview (GimpColorProfileChooserDialog *dialog);
-static GtkWidget * gimp_color_profile_view_new (GtkTextBuffer *buffer);
-
G_DEFINE_TYPE (GimpColorProfileChooserDialog, gimp_color_profile_chooser_dialog,
GTK_TYPE_FILE_CHOOSER_DIALOG);
@@ -81,10 +64,7 @@ gimp_color_profile_chooser_dialog_class_init (GimpColorProfileChooserDialogClass
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
- object_class->constructed = gimp_color_profile_chooser_dialog_constructed;
- object_class->finalize = gimp_color_profile_chooser_dialog_finalize;
- object_class->get_property = gimp_color_profile_chooser_dialog_get_property;
- object_class->set_property = gimp_color_profile_chooser_dialog_set_property;
+ object_class->constructed = gimp_color_profile_chooser_dialog_constructed;
g_type_class_add_private (klass, sizeof (GimpColorProfileChooserDialogPrivate));
}
@@ -96,16 +76,6 @@ gimp_color_profile_chooser_dialog_init (GimpColorProfileChooserDialog *dialog)
G_TYPE_INSTANCE_GET_PRIVATE (dialog,
GIMP_TYPE_COLOR_PROFILE_CHOOSER_DIALOG,
GimpColorProfileChooserDialogPrivate);
-
- dialog->private->buffer = gtk_text_buffer_new (NULL);
-
- gtk_text_buffer_create_tag (dialog->private->buffer, "strong",
- "weight", PANGO_WEIGHT_BOLD,
- "scale", PANGO_SCALE_LARGE,
- NULL);
- gtk_text_buffer_create_tag (dialog->private->buffer, "emphasis",
- "style", PANGO_STYLE_OBLIQUE,
- NULL);
}
static void
@@ -113,6 +83,9 @@ gimp_color_profile_chooser_dialog_constructed (GObject *object)
{
GimpColorProfileChooserDialog *dialog;
GtkFileFilter *filter;
+ GtkWidget *frame;
+ GtkWidget *scrolled_window;
+ GtkWidget *profile_view;
dialog = GIMP_COLOR_PROFILE_CHOOSER_DIALOG (object);
@@ -147,56 +120,30 @@ gimp_color_profile_chooser_dialog_constructed (GObject *object)
gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (dialog), filter);
- gtk_file_chooser_set_preview_widget (GTK_FILE_CHOOSER (dialog),
- gimp_color_profile_view_new (dialog->private->buffer));
-
- g_signal_connect (dialog, "update-preview",
- G_CALLBACK (gimp_color_profile_chooser_dialog_update_preview),
- NULL);
-}
+ /* the preview widget */
-static void
-gimp_color_profile_chooser_dialog_finalize (GObject *object)
-{
- GimpColorProfileChooserDialog *dialog;
+ frame = gtk_frame_new (NULL);
+ gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
+ gtk_widget_set_size_request (frame, 300, -1);
- dialog = GIMP_COLOR_PROFILE_CHOOSER_DIALOG (object);
+ scrolled_window = gtk_scrolled_window_new (NULL, NULL);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
+ GTK_POLICY_AUTOMATIC,
+ GTK_POLICY_AUTOMATIC);
+ gtk_container_add (GTK_CONTAINER (frame), scrolled_window);
+ gtk_widget_show (scrolled_window);
- if (dialog->private->buffer)
- {
- g_object_unref (dialog->private->buffer);
- dialog->private->buffer = NULL;
- }
+ profile_view = gimp_color_profile_view_new ();
+ gtk_container_add (GTK_CONTAINER (scrolled_window), profile_view);
+ gtk_widget_show (profile_view);
- G_OBJECT_CLASS (parent_class)->finalize (object);
-}
+ dialog->private->profile_view = GIMP_COLOR_PROFILE_VIEW (profile_view);
-static void
-gimp_color_profile_chooser_dialog_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- switch (prop_id)
- {
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
+ gtk_file_chooser_set_preview_widget (GTK_FILE_CHOOSER (dialog), frame);
-static void
-gimp_color_profile_chooser_dialog_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- switch (prop_id)
- {
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
+ g_signal_connect (dialog, "update-preview",
+ G_CALLBACK (gimp_color_profile_chooser_dialog_update_preview),
+ NULL);
}
GtkWidget *
@@ -257,109 +204,52 @@ gimp_color_profile_chooser_dialog_add_shortcut (GimpColorProfileChooserDialog *d
static void
gimp_color_profile_chooser_dialog_update_preview (GimpColorProfileChooserDialog *dialog)
{
- cmsHPROFILE profile;
- gchar *filename;
- GtkTextIter iter;
- gchar *desc;
- gchar *model;
- gchar *summary;
- GError *error = NULL;
-
- gtk_text_buffer_set_text (dialog->private->buffer, "", 0);
-
- g_free (dialog->private->filename);
- dialog->private->filename = NULL;
-
- g_free (dialog->private->desc);
- dialog->private->desc = NULL;
+ GimpColorProfile profile;
+ gchar *filename;
+ gchar *desc;
+ gchar *model;
+ GError *error = NULL;
filename = gtk_file_chooser_get_preview_filename (GTK_FILE_CHOOSER (dialog));
if (! filename)
- return;
-
- gtk_text_buffer_get_start_iter (dialog->private->buffer, &iter);
+ {
+ gimp_color_profile_view_set_profile (dialog->private->profile_view, NULL);
+ return;
+ }
profile = gimp_lcms_profile_open_from_file (filename, NULL, &error);
if (! profile)
{
- gtk_text_buffer_insert_with_tags_by_name (dialog->private->buffer,
- &iter,
- error->message, -1,
- "emphasis", NULL);
+ gimp_color_profile_view_set_error (dialog->private->profile_view,
+ error->message);
g_clear_error (&error);
g_free (filename);
return;
}
- desc = gimp_lcms_profile_get_description (profile);
- model = gimp_lcms_profile_get_model (profile);
- summary = gimp_lcms_profile_get_summary (profile);
+ gimp_color_profile_view_set_profile (dialog->private->profile_view,
+ profile);
+
+ desc = gimp_lcms_profile_get_description (profile);
+ model = gimp_lcms_profile_get_model (profile);
cmsCloseProfile (profile);
- if ((desc && strlen (desc)) ||
- (model && strlen (model)))
+ if (desc && strlen (desc))
{
- if (desc && strlen (desc))
- {
- dialog->private->desc = desc;
- desc = NULL;
- }
- else
- {
- dialog->private->desc = model;
- model = NULL;
- }
-
- gtk_text_buffer_insert_with_tags_by_name (dialog->private->buffer,
- &iter,
- dialog->private->desc, -1,
- "strong", NULL);
- gtk_text_buffer_insert (dialog->private->buffer, &iter, "\n", 1);
+ dialog->private->desc = desc;
+ desc = NULL;
+ }
+ else if (model && strlen (model))
+ {
+ dialog->private->desc = model;
+ model = NULL;
}
-
- if (summary)
- gtk_text_buffer_insert (dialog->private->buffer, &iter, summary, -1);
dialog->private->filename = filename;
g_free (desc);
g_free (model);
- g_free (summary);
-}
-
-static GtkWidget *
-gimp_color_profile_view_new (GtkTextBuffer *buffer)
-{
- GtkWidget *frame;
- GtkWidget *scrolled_window;
- GtkWidget *text_view;
-
- frame = gtk_frame_new (NULL);
- gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN);
-
- scrolled_window = gtk_scrolled_window_new (NULL, NULL);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
- GTK_POLICY_AUTOMATIC,
- GTK_POLICY_AUTOMATIC);
- gtk_container_add (GTK_CONTAINER (frame), scrolled_window);
- gtk_widget_show (scrolled_window);
-
- text_view = gtk_text_view_new_with_buffer (buffer);
-
- gtk_text_view_set_editable (GTK_TEXT_VIEW (text_view), FALSE);
- gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_view), GTK_WRAP_WORD);
-
- gtk_text_view_set_pixels_above_lines (GTK_TEXT_VIEW (text_view), 6);
- gtk_text_view_set_left_margin (GTK_TEXT_VIEW (text_view), 6);
- gtk_text_view_set_right_margin (GTK_TEXT_VIEW (text_view), 6);
-
- gtk_container_add (GTK_CONTAINER (scrolled_window), text_view);
- gtk_widget_show (text_view);
-
- gtk_widget_set_size_request (scrolled_window, 300, -1);
-
- return frame;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]