Move the undo disable/freeze APIs to gimpimage-undo.[ch]
This commit is contained in:
@ -34,6 +34,7 @@
|
|||||||
#include "gimpimage-grid.h"
|
#include "gimpimage-grid.h"
|
||||||
#include "gimpimage-guides.h"
|
#include "gimpimage-guides.h"
|
||||||
#include "gimpimage-private.h"
|
#include "gimpimage-private.h"
|
||||||
|
#include "gimpimage-undo.h"
|
||||||
#include "gimpimage-sample-points.h"
|
#include "gimpimage-sample-points.h"
|
||||||
#include "gimplayer.h"
|
#include "gimplayer.h"
|
||||||
#include "gimplayer-floating-sel.h"
|
#include "gimplayer-floating-sel.h"
|
||||||
|
@ -48,6 +48,69 @@ static GimpDirtyMask gimp_image_undo_dirty_from_type (GimpUndoType undo_type);
|
|||||||
|
|
||||||
/* public functions */
|
/* public functions */
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gimp_image_undo_is_enabled (const GimpImage *image)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (GIMP_IS_IMAGE (image), FALSE);
|
||||||
|
|
||||||
|
return (GIMP_IMAGE_GET_PRIVATE (image)->undo_freeze_count == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gimp_image_undo_enable (GimpImage *image)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (GIMP_IS_IMAGE (image), FALSE);
|
||||||
|
|
||||||
|
/* Free all undo steps as they are now invalidated */
|
||||||
|
gimp_image_undo_free (image);
|
||||||
|
|
||||||
|
return gimp_image_undo_thaw (image);
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gimp_image_undo_disable (GimpImage *image)
|
||||||
|
{
|
||||||
|
g_return_val_if_fail (GIMP_IS_IMAGE (image), FALSE);
|
||||||
|
|
||||||
|
return gimp_image_undo_freeze (image);
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gimp_image_undo_freeze (GimpImage *image)
|
||||||
|
{
|
||||||
|
GimpImagePrivate *private;
|
||||||
|
|
||||||
|
g_return_val_if_fail (GIMP_IS_IMAGE (image), FALSE);
|
||||||
|
|
||||||
|
private = GIMP_IMAGE_GET_PRIVATE (image);
|
||||||
|
|
||||||
|
private->undo_freeze_count++;
|
||||||
|
|
||||||
|
if (private->undo_freeze_count == 1)
|
||||||
|
gimp_image_undo_event (image, GIMP_UNDO_EVENT_UNDO_FREEZE, NULL);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gimp_image_undo_thaw (GimpImage *image)
|
||||||
|
{
|
||||||
|
GimpImagePrivate *private;
|
||||||
|
|
||||||
|
g_return_val_if_fail (GIMP_IS_IMAGE (image), FALSE);
|
||||||
|
|
||||||
|
private = GIMP_IMAGE_GET_PRIVATE (image);
|
||||||
|
|
||||||
|
g_return_val_if_fail (private->undo_freeze_count > 0, FALSE);
|
||||||
|
|
||||||
|
private->undo_freeze_count--;
|
||||||
|
|
||||||
|
if (private->undo_freeze_count == 0)
|
||||||
|
gimp_image_undo_event (image, GIMP_UNDO_EVENT_UNDO_THAW, NULL);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
gimp_image_undo (GimpImage *image)
|
gimp_image_undo (GimpImage *image)
|
||||||
{
|
{
|
||||||
|
@ -19,6 +19,12 @@
|
|||||||
#define __GIMP_IMAGE__UNDO_H__
|
#define __GIMP_IMAGE__UNDO_H__
|
||||||
|
|
||||||
|
|
||||||
|
gboolean gimp_image_undo_is_enabled (const GimpImage *image);
|
||||||
|
gboolean gimp_image_undo_enable (GimpImage *image);
|
||||||
|
gboolean gimp_image_undo_disable (GimpImage *image);
|
||||||
|
gboolean gimp_image_undo_freeze (GimpImage *image);
|
||||||
|
gboolean gimp_image_undo_thaw (GimpImage *image);
|
||||||
|
|
||||||
gboolean gimp_image_undo (GimpImage *image);
|
gboolean gimp_image_undo (GimpImage *image);
|
||||||
gboolean gimp_image_redo (GimpImage *image);
|
gboolean gimp_image_redo (GimpImage *image);
|
||||||
|
|
||||||
|
@ -2087,72 +2087,6 @@ gimp_image_quick_mask_changed (GimpImage *image)
|
|||||||
g_signal_emit (image, gimp_image_signals[QUICK_MASK_CHANGED], 0);
|
g_signal_emit (image, gimp_image_signals[QUICK_MASK_CHANGED], 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* undo */
|
|
||||||
|
|
||||||
gboolean
|
|
||||||
gimp_image_undo_is_enabled (const GimpImage *image)
|
|
||||||
{
|
|
||||||
g_return_val_if_fail (GIMP_IS_IMAGE (image), FALSE);
|
|
||||||
|
|
||||||
return (GIMP_IMAGE_GET_PRIVATE (image)->undo_freeze_count == 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
gboolean
|
|
||||||
gimp_image_undo_enable (GimpImage *image)
|
|
||||||
{
|
|
||||||
g_return_val_if_fail (GIMP_IS_IMAGE (image), FALSE);
|
|
||||||
|
|
||||||
/* Free all undo steps as they are now invalidated */
|
|
||||||
gimp_image_undo_free (image);
|
|
||||||
|
|
||||||
return gimp_image_undo_thaw (image);
|
|
||||||
}
|
|
||||||
|
|
||||||
gboolean
|
|
||||||
gimp_image_undo_disable (GimpImage *image)
|
|
||||||
{
|
|
||||||
g_return_val_if_fail (GIMP_IS_IMAGE (image), FALSE);
|
|
||||||
|
|
||||||
return gimp_image_undo_freeze (image);
|
|
||||||
}
|
|
||||||
|
|
||||||
gboolean
|
|
||||||
gimp_image_undo_freeze (GimpImage *image)
|
|
||||||
{
|
|
||||||
GimpImagePrivate *private;
|
|
||||||
|
|
||||||
g_return_val_if_fail (GIMP_IS_IMAGE (image), FALSE);
|
|
||||||
|
|
||||||
private = GIMP_IMAGE_GET_PRIVATE (image);
|
|
||||||
|
|
||||||
private->undo_freeze_count++;
|
|
||||||
|
|
||||||
if (private->undo_freeze_count == 1)
|
|
||||||
gimp_image_undo_event (image, GIMP_UNDO_EVENT_UNDO_FREEZE, NULL);
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
gboolean
|
|
||||||
gimp_image_undo_thaw (GimpImage *image)
|
|
||||||
{
|
|
||||||
GimpImagePrivate *private;
|
|
||||||
|
|
||||||
g_return_val_if_fail (GIMP_IS_IMAGE (image), FALSE);
|
|
||||||
|
|
||||||
private = GIMP_IMAGE_GET_PRIVATE (image);
|
|
||||||
|
|
||||||
g_return_val_if_fail (private->undo_freeze_count > 0, FALSE);
|
|
||||||
|
|
||||||
private->undo_freeze_count--;
|
|
||||||
|
|
||||||
if (private->undo_freeze_count == 0)
|
|
||||||
gimp_image_undo_event (image, GIMP_UNDO_EVENT_UNDO_THAW, NULL);
|
|
||||||
|
|
||||||
return TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
gimp_image_undo_event (GimpImage *image,
|
gimp_image_undo_event (GimpImage *image,
|
||||||
GimpUndoEvent event,
|
GimpUndoEvent event,
|
||||||
@ -2168,6 +2102,8 @@ gimp_image_undo_event (GimpImage *image,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* dirty counters */
|
||||||
|
|
||||||
/* NOTE about the image->dirty counter:
|
/* NOTE about the image->dirty counter:
|
||||||
* If 0, then the image is clean (ie, copy on disk is the same as the one
|
* If 0, then the image is clean (ie, copy on disk is the same as the one
|
||||||
* in memory).
|
* in memory).
|
||||||
@ -2305,7 +2241,6 @@ gimp_image_get_dirty_time (const GimpImage *image)
|
|||||||
return GIMP_IMAGE_GET_PRIVATE (image)->dirty_time;
|
return GIMP_IMAGE_GET_PRIVATE (image)->dirty_time;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gimp_image_saved:
|
* gimp_image_saved:
|
||||||
* @image:
|
* @image:
|
||||||
@ -2342,6 +2277,7 @@ gimp_image_exported (GimpImage *image,
|
|||||||
g_signal_emit (image, gimp_image_signals[EXPORTED], 0, uri);
|
g_signal_emit (image, gimp_image_signals[EXPORTED], 0, uri);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* flush this image's displays */
|
/* flush this image's displays */
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -265,18 +265,13 @@ void gimp_image_size_changed_detailed (GimpImage *image,
|
|||||||
gint previous_origin_y,
|
gint previous_origin_y,
|
||||||
gint previous_width,
|
gint previous_width,
|
||||||
gint previous_height);
|
gint previous_height);
|
||||||
|
|
||||||
|
|
||||||
/* undo */
|
|
||||||
|
|
||||||
gboolean gimp_image_undo_is_enabled (const GimpImage *image);
|
|
||||||
gboolean gimp_image_undo_enable (GimpImage *image);
|
|
||||||
gboolean gimp_image_undo_disable (GimpImage *image);
|
|
||||||
gboolean gimp_image_undo_freeze (GimpImage *image);
|
|
||||||
gboolean gimp_image_undo_thaw (GimpImage *image);
|
|
||||||
void gimp_image_undo_event (GimpImage *image,
|
void gimp_image_undo_event (GimpImage *image,
|
||||||
GimpUndoEvent event,
|
GimpUndoEvent event,
|
||||||
GimpUndo *undo);
|
GimpUndo *undo);
|
||||||
|
|
||||||
|
|
||||||
|
/* dirty counters */
|
||||||
|
|
||||||
gint gimp_image_dirty (GimpImage *image,
|
gint gimp_image_dirty (GimpImage *image,
|
||||||
GimpDirtyMask dirty_mask);
|
GimpDirtyMask dirty_mask);
|
||||||
gint gimp_image_clean (GimpImage *image,
|
gint gimp_image_clean (GimpImage *image,
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
#include "gimp.h"
|
#include "gimp.h"
|
||||||
#include "gimpcontext.h"
|
#include "gimpcontext.h"
|
||||||
#include "gimpimage.h"
|
#include "gimpimage.h"
|
||||||
|
#include "gimpimage-undo.h"
|
||||||
#include "gimplayer.h"
|
#include "gimplayer.h"
|
||||||
#include "gimpprojection.h"
|
#include "gimpprojection.h"
|
||||||
#include "gimptemplate.h"
|
#include "gimptemplate.h"
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
#include "core/gimpcontext.h"
|
#include "core/gimpcontext.h"
|
||||||
#include "core/gimpimage.h"
|
#include "core/gimpimage.h"
|
||||||
#include "core/gimpimage-colormap.h"
|
#include "core/gimpimage-colormap.h"
|
||||||
|
#include "core/gimpimage-undo.h"
|
||||||
#include "core/gimplayer.h"
|
#include "core/gimplayer.h"
|
||||||
#include "core/gimplayermask.h"
|
#include "core/gimplayermask.h"
|
||||||
#include "core/gimptoolinfo.h"
|
#include "core/gimptoolinfo.h"
|
||||||
|
@ -44,6 +44,7 @@
|
|||||||
#include "core/gimpimage-guides.h"
|
#include "core/gimpimage-guides.h"
|
||||||
#include "core/gimpimage-private.h"
|
#include "core/gimpimage-private.h"
|
||||||
#include "core/gimpimage-sample-points.h"
|
#include "core/gimpimage-sample-points.h"
|
||||||
|
#include "core/gimpimage-undo.h"
|
||||||
#include "core/gimpitemstack.h"
|
#include "core/gimpitemstack.h"
|
||||||
#include "core/gimplayer-floating-sel.h"
|
#include "core/gimplayer-floating-sel.h"
|
||||||
#include "core/gimplayermask.h"
|
#include "core/gimplayermask.h"
|
||||||
|
Reference in New Issue
Block a user