kdeui Library API Documentation

KAction Class Reference

Class to encapsulate user-driven action or event. More...

#include <kaction.h>

Inheritance diagram for KAction:

QObject KActionMenu KPasteTextAction KSelectAction KToggleAction KToolBarPopupAction KWidgetAction KListAction KRadioAction KToggleFullScreenAction KToggleToolBarAction KRecentFilesAction List of all members.

Public Slots

virtual void setText (const QString &text)
virtual bool setShortcut (const KShortcut &)
virtual void setGroup (const QString &)
virtual void setWhatsThis (const QString &text)
virtual void setToolTip (const QString &)
virtual void setIconSet (const QIconSet &iconSet)
virtual void setIcon (const QString &icon)
virtual void setEnabled (bool enable)
virtual void setShortcutConfigurable (bool)
virtual void activate ()

Signals

void activated ()
void enabled (bool)

Public Member Functions

 KAction (const QString &text, const KShortcut &cut, const QObject *receiver, const char *slot, KActionCollection *parent, const char *name)
 KAction (const QString &text, const QIconSet &pix, const KShortcut &cut, const QObject *receiver, const char *slot, KActionCollection *parent, const char *name)
 KAction (const QString &text, const QString &pix, const KShortcut &cut, const QObject *receiver, const char *slot, KActionCollection *parent, const char *name)
 KAction (const KGuiItem &item, const KShortcut &cut, const QObject *receiver, const char *slot, KActionCollection *parent, const char *name)
 KAction (const QString &text, const KShortcut &cut=KShortcut(), QObject *parent=0, const char *name=0)
 KAction (const QString &text, const KShortcut &cut, const QObject *receiver, const char *slot, QObject *parent, const char *name=0)
 KAction (const QString &text, const QIconSet &pix, const KShortcut &cut=KShortcut(), QObject *parent=0, const char *name=0)
 KAction (const QString &text, const QString &pix, const KShortcut &cut=KShortcut(), QObject *parent=0, const char *name=0)
 KAction (const QString &text, const QIconSet &pix, const KShortcut &cut, const QObject *receiver, const char *slot, QObject *parent, const char *name=0)
 KAction (const QString &text, const QString &pix, const KShortcut &cut, const QObject *receiver, const char *slot, QObject *parent, const char *name=0)
 KAction (QObject *parent=0, const char *name=0)
virtual ~KAction ()
virtual int plug (QWidget *widget, int index=-1)
virtual void plugAccel (KAccel *accel, bool configurable=true) KDE_DEPRECATED
virtual void unplug (QWidget *w)
virtual void unplugAccel () KDE_DEPRECATED
virtual bool isPlugged () const
bool isPlugged (const QWidget *container) const
virtual bool isPlugged (const QWidget *container, int id) const
virtual bool isPlugged (const QWidget *container, const QWidget *_representative) const
QWidgetcontainer (int index) const
int itemId (int index) const
QWidgetrepresentative (int index) const
int containerCount () const
uint kaccelCount () const
virtual bool hasIcon () const
bool hasIconSet () const
virtual QString plainText () const
virtual QString text () const
virtual const KShortcutshortcut () const
virtual const KShortcutshortcutDefault () const
QString shortcutText () const
void setShortcutText (const QString &)
virtual bool isEnabled () const
virtual bool isShortcutConfigurable () const
virtual QString group () const
virtual QString whatsThis () const
virtual QString toolTip () const
virtual QIconSet iconSet (KIcon::Group group, int size=0) const
QIconSet iconSet () const
virtual QString icon () const
KActionCollectionparentCollection () const
void unplugAll ()
int accel () const KDE_DEPRECATED
QString statusText () const
void setAccel (int key) KDE_DEPRECATED
void setStatusText (const QString &text)
int menuId (int i)

Static Public Member Functions

int getToolButtonID ()

Protected Slots

virtual void slotDestroyed ()
virtual void slotKeycodeChanged ()
virtual void slotActivated ()

Protected Member Functions

KToolBartoolBar (int index) const
QPopupMenupopupMenu (int index) const
void removeContainer (int index)
int findContainer (const QWidget *widget) const
void plugMainWindowAccel (QWidget *w)
void addContainer (QWidget *parent, int id)
void addContainer (QWidget *parent, QWidget *representative)
virtual void updateShortcut (int i)
virtual void updateShortcut (QPopupMenu *menu, int id)
virtual void updateGroup (int id)
virtual void updateText (int i)
virtual void updateEnabled (int i)
virtual void updateIconSet (int i)
virtual void updateIcon (int i)
virtual void updateToolTip (int id)
virtual void updateWhatsThis (int i)
QString whatsThisWithIcon () const
const KGuiItemguiItem () const
virtual void virtual_hook (int id, void *data)

Protected Attributes

KActionCollectionm_parentCollection

Properties

int containerCount
QString text
QString shortcut
bool enabled
QString group
QString whatsThis
QString toolTip
QString icon

Friends

class KActionCollection

Detailed Description

Class to encapsulate user-driven action or event.

The KAction class (and derived and super classes) provides a way to easily encapsulate a "real" user-selected action or event in your program.

For instance, a user may want to paste the contents of the clipboard or scroll down a document or quit the application. These are all actions -- events that the user causes to happen. The KAction class allows the developer to deal with these actions in an easy and intuitive manner.

Specifically, the KAction class encapsulated the various attributes to an event/action. For instance, an action might have an icon that goes along with it (a clipboard for a "paste" action or scissors for a "cut" action). The action might have some text to describe the action. It will certainly have a method or function that actually executes the action! All these attributes are contained within the KAction object.

The advantage of dealing with Actions is that you can manipulate the Action without regard to the GUI representation of it. For instance, in the "normal" way of dealing with actions like "cut", you would manually insert a item for Cut into a menu and a button into a toolbar. If you want to disable the cut action for a moment (maybe nothing is selected), you would have to hunt down the pointer to the menu item and the toolbar button and disable both individually. Setting the menu item and toolbar item up uses very similar code - but has to be done twice!

With the Action concept, you simply "plug" the Action into whatever GUI element you want. The KAction class will then take care of correctly defining the menu item (with icons, accelerators, text, etc) or toolbar button.. or whatever. From then on, if you manipulate the Action at all, the effect will propogate through all GUI representations of it. Back to the "cut" example: if you want to disable the Cut Action, you would simply do 'cutAction->setEnabled(false)' and the menuitem and button would instantly be disabled!

This is the biggest advantage to the Action concept -- there is a one-to-one relationship between the "real" action and all GUI representations of it.

KAction emits the activated() signal if the user activated the corresponding GUI element ( menu item, toolbar button, etc. )

If you are in the situation of wanting to map the activated() signal of multiple action objects to one slot, with a special argument bound to each action, then you might consider using QSignalMapper . A tiny example:

 QSignalMapper *desktopNumberMapper = new QSignalMapper( this );
 connect( desktopNumberMapper, SIGNAL( mapped( int ) ),
          this, SLOT( moveWindowToDesktop( int ) ) );

 for ( uint i = 0; i < numberOfDesktops; ++i ) {
     KAction *desktopAction = new KAction( i18n( "Move Window to Desktop %i" ).arg( i ), ... );
     connect( desktopAction, SIGNAL( activated() ), desktopNumberMapper, SLOT( map() ) );
     desktopNumberMapper->setMapping( desktopAction, i );
 }

General Usage:

The steps to using actions are roughly as follows

Detailed Example:

Here is an example of enabling a "New [document]" action

 KAction *newAct = new KAction(i18n("&New"), "filenew",
                               KStdAccel::shortcut(KStdAccel::New),
                               this, SLOT(fileNew()),
                               actionCollection(), "new");
This line creates our action. It says that wherever this action is displayed, it will use "&New" as the text, the standard icon, and the standard shortcut. It further says that whenever this action is invoked, it will use the fileNew() slot to execute it.

 QPopupMenu *file = new QPopupMenu;
 newAct->plug(file);
That just inserted the action into the File menu. The point is, it's not important in which menu it is: all manipulation of the item is done through the newAct object.

 newAct->plug(toolBar());
And this inserted the Action into the main toolbar as a button.

That's it!

If you want to disable that action sometime later, you can do so with

 newAct->setEnabled(false)
and both the menuitem in File and the toolbar button will instantly be disabled.

Do not delete a KAction object without unplugging it from all its containers. The simplest way to do that is to use the unplugAll() as in the following example:

 newAct->unplugAll();
 delete newAct;
Normally you will not need to do this as KActionCollection manages everything for you.

Note: if you are using a "standard" action like "new", "paste", "quit", or any other action described in the KDE UI Standards, please use the methods in the KStdAction class rather than defining your own.

Usage Within the XML Framework:

If you are using KAction within the context of the XML menu and toolbar building framework, then there are a few tiny changes. The first is that you must insert your new action into an action collection. The action collection (a KActionCollection) is, logically enough, a central collection of all of the actions defined in your application. The XML UI framework code in KXMLGUI classes needs access to this collection in order to build up the GUI (it's how the builder code knows which actions are valid and which aren't).

Also, if you use the XML builder framework, then you do not ever have to plug your actions into containers manually. The framework does that for you.

See also:
KStdAction

Definition at line 203 of file kaction.h.


Constructor & Destructor Documentation

KAction::KAction const QString text,
const KShortcut cut,
const QObject receiver,
const char *  slot,
KActionCollection parent,
const char *  name
 

Constructs an action with text, potential keyboard shortcut, and a SLOT to call when this action is invoked by the user.

If you do not want or have a keyboard shortcut, set the cut param to 0.

This is the most common KAction used when you do not have a corresponding icon (note that it won't appear in the current version of the "Edit ToolBar" dialog, because an action needs an icon to be plugged in a toolbar...).

Parameters:
text The text that will be displayed.
cut The corresponding keyboard shortcut.
receiver The SLOT's parent.
slot The SLOT to invoke to execute this action.
parent This action's parent.
name An internal name for this action.

Definition at line 112 of file kaction.cpp.

KAction::KAction const QString text,
const QIconSet pix,
const KShortcut cut,
const QObject receiver,
const char *  slot,
KActionCollection parent,
const char *  name
 

Constructs an action with text, icon, potential keyboard shortcut, and a SLOT to call when this action is invoked by the user.

If you do not want or have a keyboard shortcut, set the cut param to 0.

This is the other common KAction used. Use it when you do have a corresponding icon.

Parameters:
text The text that will be displayed.
pix The icon to display.
cut The corresponding keyboard shortcut.
receiver The SLOT's parent.
slot The SLOT to invoke to execute this action.
parent This action's parent.
name An internal name for this action.

Definition at line 129 of file kaction.cpp.

KAction::KAction const QString text,
const QString pix,
const KShortcut cut,
const QObject receiver,
const char *  slot,
KActionCollection parent,
const char *  name
 

Constructs an action with text, icon, potential keyboard shortcut, and a SLOT to call when this action is invoked by the user.

The icon is loaded on demand later based on where it is plugged in.

If you do not want or have a keyboard shortcut, set the cut param to 0.

This is the other common KAction used. Use it when you do have a corresponding icon.

Parameters:
text The text that will be displayed.
pix The icon to display.
cut The corresponding keyboard shortcut (shortcut).
receiver The SLOT's parent.
slot The SLOT to invoke to execute this action.
parent This action's parent.
name An internal name for this action.

Definition at line 120 of file kaction.cpp.

KAction::KAction const KGuiItem item,
const KShortcut cut,
const QObject receiver,
const char *  slot,
KActionCollection parent,
const char *  name
 

The same as the above constructor, but with a KGuiItem providing the text and icon.

Parameters:
item The KGuiItem with the label and (optional) icon.
cut The corresponding keyboard shortcut (shortcut).
receiver The SLOT's parent.
slot The SLOT to invoke to execute this action.
parent This action's parent.
name An internal name for this action.

Definition at line 138 of file kaction.cpp.

References KGuiItem::hasIconSet(), KGuiItem::iconName(), setToolTip(), setWhatsThis(), KGuiItem::text(), KGuiItem::toolTip(), and KGuiItem::whatsThis().

KAction::KAction const QString text,
const KShortcut cut = KShortcut(),
QObject parent = 0,
const char *  name = 0
 

Deprecated:

Definition at line 151 of file kaction.cpp.

KAction::KAction const QString text,
const KShortcut cut,
const QObject receiver,
const char *  slot,
QObject parent,
const char *  name = 0
 

Deprecated:

Definition at line 158 of file kaction.cpp.

KAction::KAction const QString text,
const QIconSet pix,
const KShortcut cut = KShortcut(),
QObject parent = 0,
const char *  name = 0
 

Deprecated:

Definition at line 166 of file kaction.cpp.

References setIconSet().

KAction::KAction const QString text,
const QString pix,
const KShortcut cut = KShortcut(),
QObject parent = 0,
const char *  name = 0
 

Deprecated:

Definition at line 175 of file kaction.cpp.

KAction::KAction const QString text,
const QIconSet pix,
const KShortcut cut,
const QObject receiver,
const char *  slot,
QObject parent,
const char *  name = 0
 

Deprecated:

Definition at line 184 of file kaction.cpp.

References setIconSet().

KAction::KAction const QString text,
const QString pix,
const KShortcut cut,
const QObject receiver,
const char *  slot,
QObject parent,
const char *  name = 0
 

Deprecated:

Definition at line 194 of file kaction.cpp.

KAction::KAction QObject parent = 0,
const char *  name = 0
 

Deprecated:

Definition at line 204 of file kaction.cpp.

KAction::~KAction  )  [virtual]
 

Standard destructor.

Definition at line 211 of file kaction.cpp.

References kdDebug(), KActionCollection::take(), and unplugAccel().


Member Function Documentation

int KAction::plug QWidget widget,
int  index = -1
[virtual]
 

"Plug" or insert this action into a given widget.

This will typically be a menu or a toolbar. From this point on, you will never need to directly manipulate the item in the menu or toolbar. You do all enabling/disabling/manipulation directly with your KAction object.

Parameters:
widget The GUI element to display this action
index The position into which the action is plugged. If this is negative, the action is inserted at the end.

Reimplemented in KToggleAction, KSelectAction, KRecentFilesAction, KActionMenu, KToolBarPopupAction, KToggleToolBarAction, KWidgetAction, and KPasteTextAction.

Definition at line 596 of file kaction.cpp.

References KActionCollection::connectHighlight(), KActionCollection::count(), KToolBar::getButton(), getToolButtonID(), iconSet(), KToolBar::insertButton(), KGlobal::instance(), KActionCollection::instance(), kdBacktrace(), kdDebug(), and kdWarning().

Referenced by KPasteTextAction::plug(), KToolBarPopupAction::plug(), and KToggleAction::plug().

void KAction::plugAccel KAccel accel,
bool  configurable = true
[virtual]
 

Deprecated:
. Shouldn't be used. No substitute available.
"Plug" or insert this action into a given KAccel.

Parameters:
accel The KAccel collection which holds this accel
configurable If the shortcut is configurable via the KAccel configuration dialog (this is somehow deprecated since there is now a KAction key configuration dialog).

Definition at line 738 of file kaction.cpp.

References KAccel::actions(), KAccel::insert(), isEnabled(), kdBacktrace(), kdDebug(), kdWarning(), and unplugAccel().

void KAction::unplug QWidget w  )  [virtual]
 

"Unplug" or remove this action from a given widget.

This will typically be a menu or a toolbar. This is rarely used in "normal" application. Typically, it would be used if your application has several views or modes, each with a completely different menu structure. If you simply want to disable an action for a given period, use setEnabled() instead.

Parameters:
w Remove the action from this GUI element.

Reimplemented in KWidgetAction.

Definition at line 710 of file kaction.cpp.

References KActionCollection::disconnectHighlight(), and KToolBar::removeItemDelayed().

Referenced by KWidgetAction::unplug().

void KAction::unplugAccel  )  [virtual]
 

Deprecated:
. Complement method to plugAccel(). Disconnect this action from the KAccel.

Definition at line 766 of file kaction.cpp.

Referenced by plugAccel(), and ~KAction().

bool KAction::isPlugged  )  const [virtual]
 

returns whether the action is plugged into any container widget or not.

Since:
3.1

Definition at line 257 of file kaction.cpp.

Referenced by KWidgetAction::unplug().

bool KAction::isPlugged const QWidget container  )  const
 

returns whether the action is plugged into the given container

Definition at line 262 of file kaction.cpp.

bool KAction::isPlugged const QWidget container,
int  id
const [virtual]
 

returns whether the action is plugged into the given container with the given, container specific, id (often menu or toolbar id ) .

Definition at line 267 of file kaction.cpp.

bool KAction::isPlugged const QWidget container,
const QWidget _representative
const [virtual]
 

returns whether the action is plugged into the given container with the given, container specific, representative container widget item.

Definition at line 273 of file kaction.cpp.

uint KAction::kaccelCount  )  const
 

Since:
3.1

Definition at line 1029 of file kaction.cpp.

virtual QString KAction::text  )  const [virtual]
 

Get the text associated with this action.

Referenced by KActionMenu::plug(), and KSelectAction::plug().

virtual const KShortcut& KAction::shortcut  )  const [virtual]
 

Get the keyboard shortcut associated with this action.

const KShortcut & KAction::shortcutDefault  )  const [virtual]
 

Get the default shortcut for this action.

Definition at line 525 of file kaction.cpp.

bool KAction::isEnabled  )  const [virtual]
 

Returns true if this action is enabled.

Definition at line 564 of file kaction.cpp.

Referenced by KCommandHistory::addCommand(), KPasteTextAction::plug(), KToolBarPopupAction::plug(), KActionMenu::plug(), KRecentFilesAction::plug(), KSelectAction::plug(), plugAccel(), and KCommandHistory::redo().

bool KAction::isShortcutConfigurable  )  const [virtual]
 

Returns true if this action's shortcut is configurable.

Definition at line 569 of file kaction.cpp.

virtual QString KAction::whatsThis  )  const [virtual]
 

Get the What's this text for the action.

Referenced by KPasteTextAction::plug(), KWidgetAction::plug(), KToolBarPopupAction::plug(), KActionMenu::plug(), KRecentFilesAction::plug(), and KSelectAction::plug().

virtual QString KAction::toolTip  )  const [virtual]
 

Get the tooltip text for the action.

Reimplemented in KToggleAction.

Referenced by KSelectAction::plug(), and KToggleAction::toolTip().

QIconSet KAction::iconSet KIcon::Group  group,
int  size = 0
const [virtual]
 

Get the QIconSet from which the icons used to display this action will be chosen.

Definition at line 947 of file kaction.cpp.

Referenced by KToolBarPopupAction::plug(), KActionMenu::plug(), KSelectAction::plug(), and plug().

int KAction::getToolButtonID  )  [static]
 

How it works.

KActionCollection is an organizing container for KActions. KActionCollection keeps track of the information necessary to handle configuration and shortcuts.

Focus Widget pointer: This is the widget which is the focus for action shortcuts. It is set either by passing a QWidget* to the KActionCollection constructor or by calling setWidget() if the widget wasn't known when the object was initially constructed (as in KXMLGUIClient and KParts::PartBase)

Shortcuts: An action's shortcut will not not be connected unless a focus widget has been specified in KActionCollection.

XML Filename: This is used to save user-modified settings back to the *ui.rc file. It is set by KXMLGUIFactory.

Definition at line 65 of file kaction.cpp.

Referenced by KPasteTextAction::plug(), KWidgetAction::plug(), KToolBarPopupAction::plug(), KActionMenu::plug(), KRecentFilesAction::plug(), KSelectAction::plug(), and plug().

void KAction::setText const QString text  )  [virtual, slot]
 

Sets the text associated with this action.

The text is used for menu and toolbar labels etc.

Definition at line 831 of file kaction.cpp.

Referenced by KCommandHistory::addCommand(), KCommandHistory::clear(), KCommandHistory::redo(), KToggleFullScreenAction::setChecked(), and KCommandHistory::undo().

bool KAction::setShortcut const KShortcut  )  [virtual, slot]
 

Sets the keyboard shortcut associated with this action.

Definition at line 394 of file kaction.cpp.

References KAccel::setShortcut().

Referenced by setAccel().

void KAction::setWhatsThis const QString text  )  [virtual, slot]
 

Sets the What's this text for the action.

This text will be displayed when a widget that has been created by plugging this action into a container is clicked on in What's this mode.

The What's this text can include QML markup as well as raw text.

Definition at line 957 of file kaction.cpp.

Referenced by KAction(), KStdAction::showMenubar(), and KStdAction::showStatusbar().

void KAction::setToolTip const QString  )  [virtual, slot]
 

Sets the tooltip text for the action.

This will be used as a tooltip for a toolbar button, as a statusbar help-text for a menu item, and it also appears in the toolbar editor, to describe the action.

Definition at line 574 of file kaction.cpp.

Referenced by KAction(), and setStatusText().

void KAction::setIconSet const QIconSet iconSet  )  [virtual, slot]
 

Sets the QIconSet from which the icons used to display this action will be chosen.

Definition at line 915 of file kaction.cpp.

Referenced by KAction().

void KAction::setEnabled bool  enable  )  [virtual, slot]
 

Enables or disables this action.

All uses of this action (eg. in menus or toolbars) will be updated to reflect the state of the action.

Definition at line 791 of file kaction.cpp.

Referenced by KCommandHistory::addCommand(), KCommandHistory::clear(), KToggleToolBarAction::plug(), KCommandHistory::redo(), KSelectAction::setItems(), KCommandHistory::undo(), and KCommandHistory::updateActions().

void KAction::setShortcutConfigurable bool   )  [virtual, slot]
 

Indicate whether the user may configure the action's shortcut.

Definition at line 826 of file kaction.cpp.

void KAction::activate  )  [virtual, slot]
 

Emulate user's interaction programmatically, by activating the action.

The implementation simply emits activated().

Definition at line 1050 of file kaction.cpp.

const KGuiItem & KAction::guiItem  )  const [protected]
 

Return the underlying KGuiItem

Since:
3.3.

Definition at line 1143 of file kaction.cpp.

int KAction::accel  )  const
 

Deprecated:
. Use shortcut(). Get the keyboard accelerator associated with this action.

Definition at line 540 of file kaction.cpp.

void KAction::setAccel int  key  ) 
 

Deprecated:
. Use setShortcut(). Sets the keyboard accelerator associated with this action.

Definition at line 477 of file kaction.cpp.

References setShortcut().

void KAction::setStatusText const QString text  )  [inline]
 

Deprecated:
. Use setToolTip instead (they do the same thing now).

Definition at line 612 of file kaction.h.

References setToolTip().

int KAction::menuId int  i  )  [inline]
 

Deprecated:
. for backwards compatibility.

Definition at line 618 of file kaction.h.


The documentation for this class was generated from the following files:
KDE Logo
This file is part of the documentation for kdeui Library Version 3.3.1.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Feb 18 15:10:21 2005 by doxygen 1.3.9.1 written by Dimitri van Heesch, © 1997-2003