gimp r28004 - in trunk: . app/config app/tools app/widgets
- From: mitch svn gnome org
- To: svn-commits-list gnome org
- Subject: gimp r28004 - in trunk: . app/config app/tools app/widgets
- Date: Sun, 8 Feb 2009 23:19:12 +0000 (UTC)
Author: mitch
Date: Sun Feb 8 23:19:12 2009
New Revision: 28004
URL: http://svn.gnome.org/viewvc/gimp?rev=28004&view=rev
Log:
2009-02-09 Michael Natterer <mitch gimp org>
Bug 569470 â pls, introduce an option 'how many latest presets for
color curves should be saved'
* app/config/gimprc-blurbs.h
* app/config/gimpguiconfig.[ch]: add integer property
"image-map-tool-max-recent" which defaults to ten. Adding a GUI
for this IMO needs discussion, the value of ten seems appropriate.
* app/widgets/gimpsettingsbox.[ch]
(gimp_settings_box_add_current): add "gint max_recent" parameter
and limit the number of recent settings to this number.
* app/tools/gimpimagemaptool.c (gimp_image_map_tool_response):
pass the new settings property to above function.
Modified:
trunk/ChangeLog
trunk/app/config/gimpguiconfig.c
trunk/app/config/gimpguiconfig.h
trunk/app/config/gimprc-blurbs.h
trunk/app/tools/gimpimagemaptool.c
trunk/app/widgets/gimpsettingsbox.c
trunk/app/widgets/gimpsettingsbox.h
Modified: trunk/app/config/gimpguiconfig.c
==============================================================================
--- trunk/app/config/gimpguiconfig.c (original)
+++ trunk/app/config/gimpguiconfig.c Sun Feb 8 23:19:12 2009
@@ -53,6 +53,7 @@
PROP_0,
PROP_DEFAULT_THRESHOLD,
PROP_MOVE_TOOL_CHANGES_ACTIVE,
+ PROP_IMAGE_MAP_TOOL_MAX_RECENT,
PROP_TRUST_DIRTY_FLAG,
PROP_SAVE_DEVICE_STATUS,
PROP_SAVE_SESSION_INFO,
@@ -126,6 +127,11 @@
MOVE_TOOL_CHANGES_ACTIVE_BLURB,
FALSE,
GIMP_PARAM_STATIC_STRINGS);
+ GIMP_CONFIG_INSTALL_PROP_INT (object_class, PROP_IMAGE_MAP_TOOL_MAX_RECENT,
+ "image-map-tool-max-recent",
+ IMAGE_MAP_TOOL_MAX_RECENT_BLURB,
+ 0, 255, 10,
+ GIMP_PARAM_STATIC_STRINGS);
GIMP_CONFIG_INSTALL_PROP_BOOLEAN (object_class, PROP_TRUST_DIRTY_FLAG,
"trust-dirty-flag",
TRUST_DIRTY_FLAG_BLURB,
@@ -327,6 +333,9 @@
case PROP_MOVE_TOOL_CHANGES_ACTIVE:
gui_config->move_tool_changes_active = g_value_get_boolean (value);
break;
+ case PROP_IMAGE_MAP_TOOL_MAX_RECENT:
+ gui_config->image_map_tool_max_recent = g_value_get_int (value);
+ break;
case PROP_TRUST_DIRTY_FLAG:
gui_config->trust_dirty_flag = g_value_get_boolean (value);
break;
@@ -451,6 +460,9 @@
case PROP_MOVE_TOOL_CHANGES_ACTIVE:
g_value_set_boolean (value, gui_config->move_tool_changes_active);
break;
+ case PROP_IMAGE_MAP_TOOL_MAX_RECENT:
+ g_value_set_int (value, gui_config->image_map_tool_max_recent);
+ break;
case PROP_TRUST_DIRTY_FLAG:
g_value_set_boolean (value, gui_config->trust_dirty_flag);
break;
Modified: trunk/app/config/gimpguiconfig.h
==============================================================================
--- trunk/app/config/gimpguiconfig.h (original)
+++ trunk/app/config/gimpguiconfig.h Sun Feb 8 23:19:12 2009
@@ -41,6 +41,7 @@
gint default_threshold;
gboolean move_tool_changes_active;
+ gint image_map_tool_max_recent;
gboolean trust_dirty_flag;
gboolean save_device_status;
gboolean save_session_info;
Modified: trunk/app/config/gimprc-blurbs.h
==============================================================================
--- trunk/app/config/gimprc-blurbs.h (original)
+++ trunk/app/config/gimprc-blurbs.h Sun Feb 8 23:19:12 2009
@@ -150,6 +150,9 @@
"colon-separated list of language identifiers with decreasing priority. " \
"If empty, the language is taken from the user's locale setting."
+#define IMAGE_MAP_TOOL_MAX_RECENT_BLURB \
+"How many recent settings to keep around in color correction tools"
+
#define IMAGE_STATUS_FORMAT_BLURB \
N_("Sets the text to appear in image window status bars.")
Modified: trunk/app/tools/gimpimagemaptool.c
==============================================================================
--- trunk/app/tools/gimpimagemaptool.c (original)
+++ trunk/app/tools/gimpimagemaptool.c Sun Feb 8 23:19:12 2009
@@ -29,6 +29,8 @@
#include "tools-types.h"
+#include "config/gimpguiconfig.h"
+
#include "core/gimp.h"
#include "core/gimpdrawable.h"
#include "core/gimpimage.h"
@@ -563,7 +565,8 @@
gimp_image_flush (tool->display->image);
if (image_map_tool->config)
- gimp_settings_box_add_current (GIMP_SETTINGS_BOX (image_map_tool->settings_box));
+ gimp_settings_box_add_current (GIMP_SETTINGS_BOX (image_map_tool->settings_box),
+ GIMP_GUI_CONFIG (tool->tool_info->gimp->config)->image_map_tool_max_recent);
}
tool->display = NULL;
Modified: trunk/app/widgets/gimpsettingsbox.c
==============================================================================
--- trunk/app/widgets/gimpsettingsbox.c (original)
+++ trunk/app/widgets/gimpsettingsbox.c Sun Feb 8 23:19:12 2009
@@ -113,6 +113,8 @@
GimpSettingsBox *box);
static void gimp_settings_box_toplevel_unmap (GtkWidget *toplevel,
GtkWidget *dialog);
+static void gimp_settings_box_truncate_list (GimpSettingsBox *box,
+ gint max_recent);
G_DEFINE_TYPE (GimpSettingsBox, gimp_settings_box, GTK_TYPE_HBOX)
@@ -828,6 +830,39 @@
gtk_dialog_response (GTK_DIALOG (dialog), GTK_RESPONSE_DELETE_EVENT);
}
+static void
+gimp_settings_box_truncate_list (GimpSettingsBox *box,
+ gint max_recent)
+{
+ GList *list;
+ gint n_recent = 0;
+
+ list = GIMP_LIST (box->container)->list;
+ while (list)
+ {
+ GimpConfig *config = list->data;
+ guint t;
+
+ list = g_list_next (list);
+
+ g_object_get (config,
+ "time", &t,
+ NULL);
+
+ if (t > 0)
+ {
+ n_recent++;
+
+ if (n_recent > max_recent)
+ gimp_container_remove (box->container, GIMP_OBJECT (config));
+ }
+ else
+ {
+ break;
+ }
+ }
+}
+
/* public functions */
@@ -866,7 +901,8 @@
}
void
-gimp_settings_box_add_current (GimpSettingsBox *box)
+gimp_settings_box_add_current (GimpSettingsBox *box,
+ gint max_recent)
{
GimpConfig *config = NULL;
GList *list;
@@ -903,5 +939,7 @@
g_object_unref (config);
}
+ gimp_settings_box_truncate_list (box, max_recent);
+
gimp_settings_box_serialize (box);
}
Modified: trunk/app/widgets/gimpsettingsbox.h
==============================================================================
--- trunk/app/widgets/gimpsettingsbox.h (original)
+++ trunk/app/widgets/gimpsettingsbox.h Sun Feb 8 23:19:12 2009
@@ -81,7 +81,8 @@
const gchar *default_folder,
const gchar *last_filename);
-void gimp_settings_box_add_current (GimpSettingsBox *box);
+void gimp_settings_box_add_current (GimpSettingsBox *box,
+ gint max_recent);
#endif /* __GIMP_SETTINGS_BOX_H__ */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]