Author: post
Date: 2010-12-19 21:01:45 +0100 (Sun, 19 Dec 2010)
New Revision: 3687
Modified:
trunk/src/gtk-interface.c
trunk/src/rs-actions.c
trunk/src/rs-actions.h
Log:
Add single function to update sensitivity of all menu items, so keyboard
shortcuts aren't disabled until the menu has been accessed.
Modified: trunk/src/gtk-interface.c
===================================================================
--- trunk/src/gtk-interface.c 2010-12-19 19:37:04 UTC (rev 3686)
+++ trunk/src/gtk-interface.c 2010-12-19 20:01:45 UTC (rev 3687)
@@ -190,6 +190,7 @@
rs_toolbox_set_photo(RS_TOOLBOX(rs->tools), photo);
GTK_CATCHUP();
gui_set_busy(FALSE);
+ rs_core_actions_update_menu_items(rs);
return TRUE;
}
Modified: trunk/src/rs-actions.c
===================================================================
--- trunk/src/rs-actions.c 2010-12-19 19:37:04 UTC (rev 3686)
+++ trunk/src/rs-actions.c 2010-12-19 20:01:45 UTC (rev 3687)
@@ -68,23 +68,22 @@
g_string_free(gs, TRUE);
}
-ACTION(file_menu)
+void
+rs_core_actions_update_menu_items(RS_BLOB *rs)
{
+ /* File Menu */
rs_core_action_group_set_sensivity("QuickExport",
RS_IS_PHOTO(rs->photo));
rs_core_action_group_set_sensivity("ExportAs", RS_IS_PHOTO(rs->photo));
rs_core_action_group_set_sensivity("ExportToGimp",
RS_IS_PHOTO(rs->photo));
-}
-ACTION(edit_menu)
-{
+ /* Edit Menu */
rs_core_action_group_set_sensivity("RevertSettings",
RS_IS_PHOTO(rs->photo));
rs_core_action_group_set_sensivity("CopySettings",
RS_IS_PHOTO(rs->photo));
- rs_core_action_group_set_sensivity("CopyImage",
RS_IS_PHOTO(rs->photo));
rs_core_action_group_set_sensivity("PasteSettings", !!(rs->settings_buffer));
+ rs_core_action_group_set_sensivity("CopyImage", RS_IS_PHOTO(rs->photo));
+ rs_core_action_group_set_sensivity("PasteSettings",
!!(rs->settings_buffer));
rs_core_action_group_set_sensivity("SaveDefaultSettings",
RS_IS_PHOTO(rs->photo));
-}
-ACTION(photo_menu)
-{
+ /* Photo Menu */
GList *selected = NULL, *selected_iters = NULL;
gint num_selected, selected_groups;
gboolean photos_selected;
@@ -116,38 +115,56 @@
rs_core_action_group_set_visibility("Ungroup", FALSE);
rs_core_action_group_set_visibility("AutoGroup", FALSE);
#endif
+
+ /* View Menu */
+ rs_core_action_group_set_sensivity("Lightsout", !rs->window_fullscreen);
+
+ /* Batch Menu */
+ rs_core_action_group_set_sensivity("AddToBatch", photos_selected &&
!rs_batch_exists_in_queue(rs->queue, rs->photo->filename, rs->current_setting));
+ rs_core_action_group_set_sensivity("RemoveFromBatch", photos_selected
&& rs->photo && rs_batch_exists_in_queue(rs->queue, rs->photo->filename,
rs->current_setting));
+ rs_core_action_group_set_sensivity("ProcessBatch",
(rs_batch_num_entries(rs->queue)>0));
+
+ /* Preview */
+ rs_core_action_group_set_sensivity("Crop", RS_IS_PHOTO(rs->photo));
+ rs_core_action_group_set_sensivity("Uncrop", (RS_IS_PHOTO(rs->photo) &&
rs->photo->crop));
+ rs_core_action_group_set_sensivity("Straighten",
RS_IS_PHOTO(rs->photo));
+ rs_core_action_group_set_sensivity("Unstraighten",
(RS_IS_PHOTO(rs->photo) && (rs->photo->angle != 0.0)));
+
g_list_free(selected);
+
}
-ACTION(view_menu)
+ACTION(file_menu)
{
- rs_core_action_group_set_sensivity("Lightsout", !rs->window_fullscreen);
+ rs_core_actions_update_menu_items(rs);
}
-ACTION(batch_menu)
+ACTION(edit_menu)
{
- GList *selected = NULL;
- gint num_selected;
- gboolean photos_selected;
+ rs_core_actions_update_menu_items(rs);
+}
- selected = rs_store_get_selected_names(rs->store);
- num_selected = g_list_length(selected);
- photos_selected = (RS_IS_PHOTO(rs->photo) || (num_selected > 0));
+ACTION(photo_menu)
+{
+ rs_core_actions_update_menu_items(rs);
+}
- rs_core_action_group_set_sensivity("AddToBatch", photos_selected &&
!rs_batch_exists_in_queue(rs->queue, rs->photo->filename, rs->current_setting));
- rs_core_action_group_set_sensivity("RemoveFromBatch", photos_selected
&& rs->photo && rs_batch_exists_in_queue(rs->queue, rs->photo->filename,
rs->current_setting));
- rs_core_action_group_set_sensivity("ProcessBatch",
(rs_batch_num_entries(rs->queue)>0));
- g_list_free(selected);
+ACTION(view_menu)
+{
+ rs_core_actions_update_menu_items(rs);
}
+ACTION(batch_menu)
+{
+ rs_core_actions_update_menu_items(rs);
+}
+
ACTION(preview_popup)
{
- rs_core_action_group_set_sensivity("Crop", RS_IS_PHOTO(rs->photo));
- rs_core_action_group_set_sensivity("Uncrop", (RS_IS_PHOTO(rs->photo) &&
rs->photo->crop));
- rs_core_action_group_set_sensivity("Straighten",
RS_IS_PHOTO(rs->photo));
- rs_core_action_group_set_sensivity("Unstraighten",
(RS_IS_PHOTO(rs->photo) && (rs->photo->angle != 0.0)));
+ rs_core_actions_update_menu_items(rs);
}
+
ACTION(open)
{
GtkWidget *fc;
@@ -176,6 +193,7 @@
gtk_widget_destroy (fc);
g_free(lwd);
+ rs_core_actions_update_menu_items(rs);
}
ACTION(quick_export)
@@ -298,6 +316,7 @@
{
rs_store_remove(rs->store, NULL, NULL);
rs_store_load_directory(rs->store, NULL);
+ rs_core_actions_update_menu_items(rs);
}
ACTION(delete_flagged)
@@ -723,11 +742,13 @@
ACTION(crop)
{
rs_preview_widget_crop_start(RS_PREVIEW_WIDGET(rs->preview));
+ rs_core_actions_update_menu_items(rs);
}
ACTION(uncrop)
{
rs_preview_widget_uncrop(RS_PREVIEW_WIDGET(rs->preview));
+ rs_core_actions_update_menu_items(rs);
}
ACTION(straighten)
@@ -976,6 +997,8 @@
g_list_free(selected);
gui_status_notify(gs->str);
g_string_free(gs, TRUE);
+ rs_core_actions_update_menu_items(rs);
+
}
ACTION(add_view_to_batch)
@@ -1053,6 +1076,7 @@
gtk_widget_destroy (dialog);
g_string_free(gs, TRUE);
+ rs_core_actions_update_menu_items(rs);
}
ACTION(remove_from_batch)
Modified: trunk/src/rs-actions.h
===================================================================
--- trunk/src/rs-actions.h 2010-12-19 19:37:04 UTC (rev 3686)
+++ trunk/src/rs-actions.h 2010-12-19 20:01:45 UTC (rev 3687)
@@ -63,4 +63,6 @@
*/
extern GtkAction *rs_core_action_group_get_action(const gchar *name);
+extern void rs_core_actions_update_menu_items(RS_BLOB *rs);
+
#endif /* RS_ACTIONS_H */
_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit