Author: abrander
Date: 2009-12-31 03:45:13 +0100 (Thu, 31 Dec 2009)
New Revision: 2947

Modified:
   branches/rawstudio-ng-color/src/rs-toolbox.c
Log:
Added profile selector to toolbox.

Modified: branches/rawstudio-ng-color/src/rs-toolbox.c
===================================================================
--- branches/rawstudio-ng-color/src/rs-toolbox.c        2009-12-31 02:44:28 UTC 
(rev 2946)
+++ branches/rawstudio-ng-color/src/rs-toolbox.c        2009-12-31 02:45:13 UTC 
(rev 2947)
@@ -68,6 +68,9 @@
 
 struct _RSToolbox {
        GtkScrolledWindow parent;
+
+       RSProfileSelector *selector;
+
        GtkWidget *notebook;
        GtkBox *toolbox;
        GtkRange *ranges[3][NBASICS];
@@ -96,6 +99,8 @@
 };
 static guint signals[LAST_SIGNAL] = { 0 };
 
+static void dcp_profile_selected(RSProfileSelector *selector, RSDcpFile *dcp, 
RSToolbox *toolbox);
+static void icc_profile_selected(RSProfileSelector *selector, RSIccProfile 
*icc, RSToolbox *toolbox);
 static void conf_histogram_height_changed(GConfClient *client, guint cnxn_id, 
GConfEntry *entry, gpointer user_data);
 static void notebook_switch_page(GtkNotebook *notebook, GtkNotebookPage *page, 
guint page_num, RSToolbox *toolbox);
 static void basic_range_value_changed(GtkRange *range, gpointer user_data);
@@ -149,6 +154,14 @@
        GtkWidget *viewport;
        gint height;
 
+       /* A box to hold everything */
+       self->toolbox = GTK_BOX(gtk_vbox_new (FALSE, 1));
+
+       self->selector = rs_profile_selector_new();
+       g_signal_connect(self->selector, "dcp-selected", 
G_CALLBACK(dcp_profile_selected), self);
+       g_signal_connect(self->selector, "icc-selected", 
G_CALLBACK(icc_profile_selected), self);
+       gtk_box_pack_start(self->toolbox, GTK_WIDGET(self->selector), FALSE, 
FALSE, 0);
+
        for(page=0;page<3;page++)
                self->settings[page] = NULL;
 
@@ -169,9 +182,6 @@
        self->notebook = gtk_notebook_new();
        g_signal_connect(self->notebook, "switch-page", 
G_CALLBACK(notebook_switch_page), self);
 
-       /* A box to hold everything */
-       self->toolbox = GTK_BOX(gtk_vbox_new (FALSE, 1));
-
        /* Iterate over 3 snapshots */
        for(page=0;page<3;page++)
                gtk_notebook_append_page(GTK_NOTEBOOK(self->notebook), 
new_snapshot_page(self, page), label[page]);
@@ -207,6 +217,21 @@
 }
 
 static void
+dcp_profile_selected(RSProfileSelector *selector, RSDcpFile *dcp, RSToolbox 
*toolbox)
+{
+       if (toolbox->photo)
+               rs_photo_set_dcp_profile(toolbox->photo, dcp);
+}
+
+static void
+icc_profile_selected(RSProfileSelector *selector, RSIccProfile *icc, RSToolbox 
*toolbox)
+{
+       /* FIXME: stub */
+//     if (toolbox->photo)
+//             rs_photo_set_icc_profile(toolbox->photo, icc);
+}
+
+static void
 conf_histogram_height_changed(GConfClient *client, guint cnxn_id, GConfEntry 
*entry, gpointer user_data)
 {
        RSToolbox *toolbox = RS_TOOLBOX(user_data);
@@ -822,6 +847,16 @@
                photo_finalized(toolbox, NULL);
 
        toolbox->mute_from_sliders = FALSE;
+
+       /* Update profile selector */
+       GList *dcp_profiles = NULL;
+       if (photo && photo->metadata)
+       {
+               RSDcpFactory *factory = rs_dcp_factory_new_default();
+               dcp_profiles = rs_dcp_factory_get_compatible(factory, 
photo->metadata->make_ascii, photo->metadata->model_ascii);
+       }
+
+       rs_profile_selector_set_profiles_steal(toolbox->selector, dcp_profiles);
 }
 
 GtkWidget *


_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit

Reply via email to