# kdeui Library API Documentation

Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Source Files

# KCommandHistory Class Reference

The command history stores a (user) configurable amount of Commands. More...

`#include <kcommand.h>`

Inheritance diagram for KCommandHistory:

[legend]
Collaboration diagram for KCommandHistory:

[legend]
List of all members.

## Public Slots

virtual void | undo ()
| Undoes the last action.
virtual void | redo ()
| Redoes the last undone action.
virtual void | documentSaved ()
| Remembers when you saved the document.

## Signals

void | commandExecuted ()
| Emitted every time a command is executed (whether by addCommand, undo or redo).
void | documentRestored ()
| Emitted everytime we reach the index where you saved the document for the last time.

## Public Member Functions

| KCommandHistory ()
| Creates a command history, to store commands.
| KCommandHistory (KActionCollection *actionCollection, bool withMenus=true)
| Creates a command history, to store commands.
virtual | ~KCommandHistory ()
| Destructs the command history object.
void | clear ()
| Erases all the undo/redo history.
void | addCommand (KCommand *command, bool execute=true)
| Adds a command to the history.
int | undoLimit () const
void | setUndoLimit (int limit)
| Sets the maximum number of items in the undo history.
int | redoLimit () const
void | setRedoLimit (int limit)
| Sets the maximum number of items in the redo history.
void | updateActions ()
| Enable or disable the undo and redo actions.

## Protected Slots

void | slotUndoAboutToShow ()
void | slotUndoActivated (int)
void | slotRedoAboutToShow ()
void | slotRedoActivated (int)

## Protected Member Functions

virtual void | virtual_hook (int id, void *data)

## Detailed Description

The command history stores a (user) configurable amount of Commands.

It keeps track of its size and deletes commands if it gets too large. The user can set a maximum undo and a maximum redo limit (e.g. max. 50 undo / 30 redo commands). The KCommandHistory keeps track of the "borders" and deletes commands, if appropriate. It also activates/deactivates the undo/redo actions in the menu and changes the text according to the name of the command.

Definition at line 155 of file kcommand.h.

## Constructor & Destructor Documentation

KCommandHistory::KCommandHistory | ( |  | ) |

| Creates a command history, to store commands. This constructor doesn't create actions, so you need to call undo and redo yourself. Definition at line 72 of file kcommand.cpp. References clear(), and QPtrList< KCommand >::setAutoDelete().

KCommandHistory::KCommandHistory | ( | KActionCollection * | actionCollection,
|  | bool | withMenus = true
| ) |

Creates a command history, to store commands.

This also creates an undo and a redo action, in the `actionCollection`, using the standard names ("edit_undo" and "edit_redo").

Parameters:

  withMenus | if true, the actions will display a menu when plugged into a toolbar.

Definition at line 80 of file kcommand.cpp.

References clear(), QObject::connect(), KStdAction::redo(), KStdAccel::redo(), redo(), QPtrList< KCommand >::setAutoDelete(), KStdAction::undo(), KStdAccel::undo(), and undo().

KCommandHistory::~KCommandHistory | ( |  | ) | `[virtual]`

| Destructs the command history object. Definition at line 113 of file kcommand.cpp.

## Member Function Documentation

void KCommandHistory::clear | ( |  | ) |

| Erases all the undo/redo history. Use this when reloading the data, for instance, since this invalidates all the commands. Definition at line 117 of file kcommand.cpp. References KAction::setEnabled(), and KAction::setText(). Referenced by KCommandHistory().

void KCommandHistory::addCommand | ( | KCommand * | command,
|  | bool | execute = true
| ) |

Adds a command to the history.

Call this for each `command` you create. Unless you set `execute` to false, this will also execute the command. This means, most of the application's code will look like MyCommand * cmd = new MyCommand(i18n("The name"), parameters); m_historyCommand.addCommand( cmd );

Definition at line 130 of file kcommand.cpp.

References QPtrList< KCommand >::append(), QPtrList< KCommand >::clear(), commandExecuted(), QPtrList< KCommand >::count(), KCommand::execute(), QPtrList< KCommand >::findRef(), QPtrList< KCommand >::insert(), KAction::isEnabled(), QPtrList< KCommand >::removeLast(), KAction::setEnabled(), and KAction::setText().

int KCommandHistory::undoLimit | ( |  | ) | const`[inline]`

Returns:
  the maximum number of items in the undo history

Definition at line 198 of file kcommand.h.

void KCommandHistory::setUndoLimit | ( | int | limit | ) |

| Sets the maximum number of items in the undo history. Definition at line 264 of file kcommand.cpp.

int KCommandHistory::redoLimit | ( |  | ) | const`[inline]`

Returns:
  the maximum number of items in the redo history

Definition at line 206 of file kcommand.h.

void KCommandHistory::setRedoLimit | ( | int | limit | ) |

| Sets the maximum number of items in the redo history. Definition at line 272 of file kcommand.cpp.

void KCommandHistory::updateActions | ( |  | ) |

| Enable or disable the undo and redo actions. This isn't usually necessary, but this method can be useful if you disable all actions (to go to a "readonly" state), and then want to come back to a readwrite mode. Definition at line 354 of file kcommand.cpp. References QPtrList< KCommand >::findRef(), QPtrList< KCommand >::next(), and KAction::setEnabled().

void KCommandHistory::undo | ( |  | ) | `[virtual, slot]`

| Undoes the last action. Call this if you don't use the builtin KActions. Definition at line 181 of file kcommand.cpp. References commandExecuted(), QPtrList< KCommand >::current(), documentRestored(), QPtrList< KCommand >::findRef(), QPtrList< KCommand >::prev(), KAction::setEnabled(), and KAction::setText(). Referenced by KCommandHistory().

void KCommandHistory::redo | ( |  | ) | `[virtual, slot]`

Redoes the last undone action.

Call this if you don't use the builtin KActions.

Definition at line 215 of file kcommand.cpp.

References commandExecuted(), QPtrList< KCommand >::current(), documentRestored(), QPtrList< KCommand >::findRef(), QPtrList< KCommand >::first(), KAction::isEnabled(), QPtrList< KCommand >::next(), KAction::setEnabled(), and KAction::setText().

Referenced by KCommandHistory().

void KCommandHistory::documentSaved | ( |  | ) | `[virtual, slot]`

| Remembers when you saved the document. Call this right after saving the document. As soon as the history reaches the current index again (via some undo/redo operations) it will emit documentRestored If you implemented undo/redo properly the document is the same you saved before. Definition at line 254 of file kcommand.cpp. References QPtrList< KCommand >::findRef().

void KCommandHistory::commandExecuted | ( |  | ) | `[signal]`

| Emitted every time a command is executed (whether by addCommand, undo or redo). You can use this to update the GUI, for instance. Referenced by addCommand(), redo(), and undo().

void KCommandHistory::documentRestored | ( |  | ) | `[signal]`

| Emitted everytime we reach the index where you saved the document for the last time. See documentSaved Referenced by redo(), and undo().

The documentation for this class was generated from the following files:

- kcommand.h
- kcommand.cpp

This file is part of the documentation for kdelibs Version 3.1.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Jan 28 12:59:20 2004 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001