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