Author: akv
Date: 2011-09-22 19:16:15 +0200 (Thu, 22 Sep 2011)
New Revision: 4044
Modified:
trunk/librawstudio/rs-lens-db-editor.c
Log:
Allowing to deselect a lens in lens editor.
Modified: trunk/librawstudio/rs-lens-db-editor.c
===================================================================
--- trunk/librawstudio/rs-lens-db-editor.c 2011-09-21 18:24:38 UTC (rev
4043)
+++ trunk/librawstudio/rs-lens-db-editor.c 2011-09-22 17:16:15 UTC (rev
4044)
@@ -84,7 +84,7 @@
static void lens_set (lens_data *data, const lfLens *lens)
{
- if (data->single_lens_data)
+ if (data->single_lens_data && lens)
{
/* Set Maker and Model to the selected RSLens */
rs_lens_set_lensfun_make(data->single_lens_data->lens,
lens->Maker);
@@ -117,13 +117,26 @@
gtk_tree_selection_get_selected(selection, &model, &iter);
/* Set Maker and Model to the tree view */
- gtk_list_store_set (GTK_LIST_STORE(model), &iter,
- RS_LENS_DB_EDITOR_LENS_MAKE, lens->Maker,
- RS_LENS_DB_EDITOR_LENS_MODEL, lens->Model,
- RS_LENS_DB_EDITOR_ENABLED_ACTIVATABLE, TRUE,
- RS_LENS_DB_EDITOR_ENABLED, TRUE,
- RS_LENS_DB_EDITOR_DEFISH, FALSE,
- -1);
+ if (lens)
+ {
+ gtk_list_store_set (GTK_LIST_STORE(model), &iter,
+ RS_LENS_DB_EDITOR_LENS_MAKE,
lens->Maker,
+ RS_LENS_DB_EDITOR_LENS_MODEL,
lens->Model,
+ RS_LENS_DB_EDITOR_ENABLED_ACTIVATABLE,
TRUE,
+ RS_LENS_DB_EDITOR_ENABLED, TRUE,
+ RS_LENS_DB_EDITOR_DEFISH, FALSE,
+ -1);
+ }
+ else
+ {
+ gtk_list_store_set (GTK_LIST_STORE(model), &iter,
+ RS_LENS_DB_EDITOR_LENS_MAKE, "",
+ RS_LENS_DB_EDITOR_LENS_MODEL, "",
+ RS_LENS_DB_EDITOR_ENABLED_ACTIVATABLE,
FALSE,
+ RS_LENS_DB_EDITOR_ENABLED, FALSE,
+ RS_LENS_DB_EDITOR_DEFISH, FALSE,
+ -1);
+ }
RSLens *rs_lens = NULL;
gtk_tree_model_get (model, &iter,
@@ -131,10 +144,20 @@
-1);
/* Set Maker and Model to the selected RSLens */
- rs_lens_set_lensfun_make(rs_lens, lens->Maker);
- rs_lens_set_lensfun_model(rs_lens, lens->Model);
- rs_lens_set_lensfun_enabled(rs_lens, TRUE);
- rs_lens_set_lensfun_defish(rs_lens, FALSE);
+ if (lens)
+ {
+ rs_lens_set_lensfun_make(rs_lens, lens->Maker);
+ rs_lens_set_lensfun_model(rs_lens, lens->Model);
+ rs_lens_set_lensfun_enabled(rs_lens, TRUE);
+ rs_lens_set_lensfun_defish(rs_lens, FALSE);
+ }
+ else
+ {
+ rs_lens_set_lensfun_make(rs_lens, NULL);
+ rs_lens_set_lensfun_model(rs_lens, NULL);
+ rs_lens_set_lensfun_enabled(rs_lens, FALSE);
+ rs_lens_set_lensfun_defish(rs_lens, FALSE);
+ }
RSLensDb *lens_db = rs_lens_db_get_default();
@@ -150,6 +173,13 @@
lens_set (data, (lfLens *)g_object_get_data(G_OBJECT(menuitem),
"lfLens"));
}
+static void lens_menu_deselect (
+ GtkMenuItem *menuitem, gpointer user_data)
+{
+ lens_data *data = (lens_data *)user_data;
+ lens_set (data, NULL);
+}
+
int ptr_array_insert_sorted (
GPtrArray *array, const void *item, GCompareFunc compare)
{
@@ -331,6 +361,12 @@
gtk_menu_item_set_submenu (
GTK_MENU_ITEM (item), allmenu);
+ GtkWidget *deselect = gtk_menu_item_new_with_label (_("Deselect"));
+ gtk_widget_show (deselect);
+ gtk_menu_shell_append (GTK_MENU_SHELL (data->LensMenu), deselect);
+ g_signal_connect(G_OBJECT(deselect), "activate",
+ G_CALLBACK(lens_menu_deselect), data);
+
g_ptr_array_free (submenus, TRUE);
g_ptr_array_free (makers, TRUE);
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit