home *** CD-ROM | disk | FTP | other *** search
- <?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>3.  Undoing</title>
- <link rel="stylesheet" href="gimp-help-plain.css" type="text/css" />
- <link rel="stylesheet" href="gimp-help-screen.css" type="text/css" />
- <link rel="stylesheet" href="gimp-help-custom.css" type="text/css" />
- <link rel="alternate stylesheet" href="gimp22.css" type="text/css" title="gimp22" />
- <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
- <link rel="start" href="index.html" title="GNU Image Manipulation Program" />
- <link rel="up" href="gimp-first-steps.html" title="Chapter 3.  First Steps With Wilber" />
- <link rel="prev" href="gimp-concepts-docks.html" title="2.3.  Dialogs and Docking" />
- <link rel="next" href="gimp-tutorial-quickies.html" title="4.  GIMPLite Quickies" />
- </head>
- <body>
- <div class="navheader">
- <table width="100%" summary="Navigation header">
- <tr>
- <th colspan="3" align="center">3. 
- <span lang="en" xml:lang="en">Undoing</span>
- </th>
- </tr>
- <tr>
- <td width="20%" align="left"><a accesskey="p" href="gimp-concepts-docks.html"><img src="../images/prev.png" alt="Prev" /></a> </td>
- <th width="60%" align="center">Chapter 3. 
- <span lang="en" xml:lang="en">First Steps With Wilber</span>
- </th>
- <td width="20%" align="right"> <a accesskey="n" href="gimp-tutorial-quickies.html"><img src="../images/next.png" alt="Next" /></a></td>
- </tr>
- </table>
- <hr />
- </div>
- <div class="sect1" lang="en" xml:lang="en">
- <div class="titlepage">
- <div>
- <div>
- <h2 class="title" style="clear: both"><a id="gimp-concepts-undo"></a>3. 
- <span lang="en" xml:lang="en">Undoing</span>
- </h2>
- </div>
- <div>
- <div class="revhistory">
- <table border="1" width="100%" summary="Revision history">
- <tr>
- <th align="left" valign="top" colspan="3">
- <b>Revision History</b>
- </th>
- </tr>
- <tr>
- <td align="left">Revision $Revision: 2353 $</td>
- <td align="left">2007-07-15</td>
- <td align="left">romanofski</td>
- </tr>
- </table>
- </div>
- </div>
- </div>
- </div>
- <a id="id2584511" 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 class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Z</strong></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 class="keycap"><strong>Ctrl</strong></span>+<span class="keycap"><strong>Y</strong></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 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 class="link" href="gimp-undo-dialog.html" title="2.7.  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 class="link" href="gimp-pimping.html#gimp-prefs-environment" title="1.2.  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 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="sect2" lang="en" xml:lang="en">
- <div class="titlepage">
- <div>
- <div>
- <h3 class="title"><a id="id2584706"></a>3.1. 
- <span lang="en" xml:lang="en">Things That Cannot be Undone</span>
- </h3>
- </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 class="link" href="gimp-pimping.html#gimp-prefs-environment" title="1.2.  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>
- “<span class="quote">Reverting</span>”
- 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">“<span class="quote">Pieces</span>” 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="gimp-concepts-docks.html"><img src="../images/prev.png" alt="Prev" /></a> </td>
- <td width="20%" align="center">
- <a accesskey="u" href="gimp-first-steps.html">
- <img src="../images/up.png" alt="Up" />
- </a>
- </td>
- <td width="40%" align="right"> <a accesskey="n" href="gimp-tutorial-quickies.html"><img src="../images/next.png" alt="Next" /></a></td>
- </tr>
- <tr>
- <td width="40%" align="left" valign="top"><a accesskey="p" href="gimp-concepts-docks.html">2.3. 
- <span lang="en" xml:lang="en">Dialogs and Docking</span>
- </a> </td>
- <td width="20%" align="center">
- <a accesskey="h" href="index.html">
- <img src="../images/home.png" alt="Home" />
- </a>
- </td>
- <td width="40%" align="right" valign="top"> <a accesskey="n" href="gimp-tutorial-quickies.html">4. 
- <span lang="en" xml:lang="en">GIMPLite Quickies</span>
- </a></td>
- </tr>
- </table>
- </div>
- </body>
- </html>
-