1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>4.5. Undoing</title>
<link rel="stylesheet" href="gimp-help-plain.css" type="text/css" />
<link rel="stylesheet" href="gimp-help-screen.css" type="text/css" />
<meta name="generator" content="DocBook XSL Stylesheets V1.66.1" />
<link rel="start" href="index.html" title=" " />
<link rel="up" href="ch02s04.html" title="4. Working with Images" />
<link rel="prev" href="ch02s04s04.html" title="4.4. The Selection" />
<link rel="next" href="ch02s04s06.html" title="4.6. Grids and Guides" />
</head>
<body>
<div xmlns="" class="navheader">
<table width="100%" summary="Navigation header">
<tr>
<th colspan="3" align="center" id="chaptername">4.5. Undoing</th>
</tr>
<tr>
<td width="20%" align="left"><a accesskey="p" href="ch02s04s04.html">Prev</a> </td>
<th width="60%" align="center" id="sectionname">4.5. Undoing</th>
<td width="20%" align="right"> <a accesskey="n" href="ch02s04s06.html">Next</a></td>
</tr>
</table>
<hr />
</div>
<div class="sect2" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h3 class="title"><a id="gimp-undo"></a>4.5. Undoing</h3>
</div>
</div>
</div>
<a id="id3309714" class="indexterm"></a>
<p>
Almost anything you do to an image in GIMP can be undone. You can
undo the most recent action by choosing
<span class="guimenu">Edit</span>-><span class="guimenuitem">Undo</span>
from the image menu, but this is done so frequently that you
really should memorize the keyboard shortcut,
<span><b class="keycap">Ctrl</b></span>-<span><b class="keycap">Z</b></span>.
</p>
<p>
Undoing can itself be undone. After having undone an action, you
can <span class="emphasis"><em>redo</em></span> it by choosing
<span class="guimenu">Edit</span>-><span class="guimenuitem">Redo</span>
from the image menu, or use the keyboard shortcut,
<span><b class="keycap">Ctrl</b></span>-<span><b class="keycap">Y</b></span>.
It is often helpful to judge the effect of an action by repeatedly
undoing and redoing it. This is usually very quick, and does not
consume any extra resources or alter the undo history, so there is
never any harm in it.
</p>
<div class="caution" style="margin-left: 0.5in; margin-right: 0.5in;">
<table border="0" summary="Caution">
<tr>
<td rowspan="2" align="center" valign="top" width="25">
<img alt="[Caution]" src="../images/caution.png" />
</td>
<th align="left">Caution</th>
</tr>
<tr>
<td colspan="2" align="left" valign="top">
<p>
If you undo one or more actions and then operate on the image in
any way except by using Undo or Redo, it will no longer be possible
to redo those actions: they are lost forever. The solution to
this, if it creates a problem for you, is to duplicate the image
and then operate on the copy. (<span class="emphasis"><em>Not</em></span> the
original, because the undo/redo history is not copied when you
duplicate an image.)
</p>
</td>
</tr>
</table>
</div>
<p>
If you often find yourself undoing and redoing many steps at a
time, it may be more convenient to work with the <a href="ch04s08.html" title="8. Undo History dialog">Undo History dialog</a>, a
dockable dialog that shows you a small sketch of each point in the
Undo History, allowing you to go back or forward to that point by
clicking.
</p>
<p>
Undo is performed on an image-specific basis: the "Undo History"
is one of the components of an image. GIMP allocates a certain
amount of memory to each image for this purpose. You can
customize your Preferences to increase or decrease the amount,
using the <a href="ch04s18s14.html" title="18.14. Environment">Environment</a> page of the
Preferences dialog. There are two important variables: the
<span class="emphasis"><em>minimal number of undo levels</em></span>, which GIMP
will maintain regardless of how much memory they consume, and the
<span class="emphasis"><em>maximum undo memory</em></span>, beyond which GIMP will
begin to delete the oldest items from the Undo History.
</p>
<div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
<table border="0" summary="Note">
<tr>
<td rowspan="2" align="center" valign="top" width="25">
<img alt="[Note]" src="../images/note.png" />
</td>
<th align="left">Note</th>
</tr>
<tr>
<td colspan="2" align="left" valign="top">
<p>
Even though the Undo History is a component of an image, it is not
saved when you save the image using GIMP's native XCF format,
which preserves every other image property. When the image is
reopened, it will have an empty Undo History.
</p>
</td>
</tr>
</table>
</div>
<p>
The implementation of Undo by GIMP is rather sophisticated. Many
operations require very little Undo memory (e.g., changing
visibility of a layer), so you can perform long sequences of them
before they drop out of the Undo History. Some operations
(changing layer visibility is again an example) are
<span class="emphasis"><em>compressed</em></span>, so that doing them several times
in a row produces only a single point in the Undo History.
However, there are other operations that may consume a lot of undo
memory. Most filters are examples of this: because they are
implemented by plug-ins, the GIMP core has no really efficient way
of knowing what they have changed, so it has no way to implement
Undo except by memorizing the entire contents of the affected
layer before and after the operation. You might only be able to
perform a few such operations before they drop out of the Undo
History.
</p>
<div class="simplesect" lang="en" xml:lang="en">
<div class="titlepage">
<div>
<div>
<h4 class="title"><a id="id3309910"></a>Things that cannot be Undone</h4>
</div>
</div>
</div>
<p>
Most actions that alter an image can be undone. Actions that do
not alter the image generally cannot be. This includes
operations such as saving the image to a file, duplicating the
image, copying part of the image to the clipboard, etc. It also
includes most actions that affect the image display without
altering the underlying image data. The most important example
is zooming. There are, however, exceptions: toggling QuickMask
on or off can be undone, even though it does not alter the image
data.
</p>
<p>
There are a few important actions that do alter an image but
cannot be undone:
</p>
<div class="variablelist">
<dl>
<dt>
<span class="term">Closing the image</span>
</dt>
<dd>
<p>
The Undo History is a component of the image, so when the
image is closed and all of its resources are freed, the Undo
History goes along. Because of this, unless the image has not
been modified since the last time it was saved, GIMP always
asks you to confirm that you really want to close it. (You
can disable this in the <a href="ch04s18s14.html" title="18.14. Environment">Environment</a> page of
the Preferences dialog; if you do, you are assuming
responsibility for thinking about what you are doing.)
</p>
</dd>
<dt>
<span class="term">Reverting the image</span>
</dt>
<dd>
<p>
"Reverting" means reloading the image from file. GIMP
actually implements this by closing the image and creating a
new image, so the Undo History is lost as a consequence.
Because of this, if the image is unclean, GIMP always asks you
to confirm that you really want to revert the image.
</p>
</dd>
<dt>
<span class="term">"Pieces" of actions</span>
</dt>
<dd>
<p>
Some tools require you to perform a complex series of
manipulations before they take effect, but only allow you to
undo the whole thing rather than the individual elements.
For example, the Intelligent Scissors require you to create
a closed path by clicking at multiple points in the image,
and then clicking inside the path to create a selection.
You cannot undo the individual clicks: undoing after you
are finished takes you all the way back to the starting
point. For another example, when you are working with the
Text tool, you cannot undo individual letters, font changes,
etc.: undoing after you are finished removes the newly
created text layer.
</p>
</dd>
</dl>
</div>
<p>
Filters, and other actions performed by plugins or scripts, can
be undone just like actions implemented by the GIMP core, but
this requires them to make correct use of GIMP's Undo
functions. If the code is not correct, a plugin can potentially
corrupt the Undo History, so that not only the plugin but also
previous actions can no longer properly be undone. The plugins
and scripts distributed with GIMP are all believed to be set up
correctly, but obviously no guarantees can be given for plugins
you obtain from other sources. Also, even if the code is
correct, canceling a plugin while it is running can sometimes
leave the Undo History corrupted, so it is best to avoid this
unless you have accidentally done something whose consequences
are going to be very harmful.
</p>
</div>
</div>
<div class="navfooter">
<hr />
<table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left"><a accesskey="p" href="ch02s04s04.html">Prev</a> </td>
<td width="20%" align="center">
<a accesskey="u" href="ch02s04.html">Up</a>
</td>
<td width="40%" align="right"> <a accesskey="n" href="ch02s04s06.html">Next</a></td>
</tr>
<tr>
<td width="40%" align="left" valign="top">4.4. The Selection </td>
<td width="20%" align="center">
<a accesskey="h" href="index.html">Home</a>
</td>
<td width="40%" align="right" valign="top"> 4.6. Grids and Guides</td>
</tr>
</table>
</div>
</body>
</html>
|