• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdelibs API Reference
  • KDE Home
  • Contact Us
 

KDEUI

  • sources
  • kde-4.14
  • kdelibs
  • kdeui
  • actions
kdualaction.cpp
Go to the documentation of this file.
1 /* This file is part of the KDE libraries
2  *
3  * Copyright (c) 2010 Aurélien Gâteau <agateau@kde.org>
4  *
5  * This library is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU Lesser General Public
7  * License as published by the Free Software Foundation; either
8  * version 2.1 of the License, or (at your option) any later version.
9  *
10  * This library is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13  * Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public
16  * License along with this library; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
18  * 02110-1301 USA
19  */
20 #include "kdualaction.h"
21 
22 #include <QIcon>
23 
24 #include <kdebug.h>
25 
26 #include "kdualaction_p.h"
27 
28 //---------------------------------------------------------------------
29 // KDualActionPrivate
30 //---------------------------------------------------------------------
31 void KDualActionPrivate::init(KDualAction *q_ptr)
32 {
33  q = q_ptr;
34  autoToggle = true;
35  isActive = false;
36 
37  QObject::connect(q, SIGNAL(triggered()), q, SLOT(slotTriggered()));
38 }
39 
40 void KDualActionPrivate::updateFromCurrentState()
41 {
42  KGuiItem& currentItem = item(isActive);
43  QAction* qq = static_cast<QAction*>(q);
44  qq->setIcon(currentItem.icon());
45  qq->setText(currentItem.text());
46  qq->setToolTip(currentItem.toolTip());
47 }
48 
49 void KDualActionPrivate::slotTriggered()
50 {
51  if (!autoToggle) {
52  return;
53  }
54  q->setActive(!isActive);
55  q->activeChangedByUser(isActive);
56 }
57 
58 //---------------------------------------------------------------------
59 // KDualAction
60 //---------------------------------------------------------------------
61 KDualAction::KDualAction(const QString &inactiveText, const QString &activeText, QObject *parent)
62 : KAction(parent)
63 , d(new KDualActionPrivate)
64 {
65  d->init(this);
66  d->item(false).setText(inactiveText);
67  d->item(true).setText(activeText);
68  d->updateFromCurrentState();
69 }
70 
71 KDualAction::KDualAction(QObject *parent)
72 : KAction(parent)
73 , d(new KDualActionPrivate)
74 {
75  d->init(this);
76 }
77 
78 KDualAction::~KDualAction()
79 {
80  delete d;
81 }
82 
83 void KDualAction::setActiveGuiItem(const KGuiItem &item) { d->setGuiItem(true, item); }
84 KGuiItem KDualAction::activeGuiItem() const { return d->item(true); }
85 void KDualAction::setInactiveGuiItem(const KGuiItem &item) { d->setGuiItem(false, item); }
86 KGuiItem KDualAction::inactiveGuiItem() const { return d->item(false); }
87 
88 void KDualAction::setActiveIcon(const QIcon &icon) { d->setIcon(true, icon); }
89 QIcon KDualAction::activeIcon() const { return d->item(true).icon(); }
90 void KDualAction::setInactiveIcon(const QIcon &icon) { d->setIcon(false, icon); }
91 QIcon KDualAction::inactiveIcon() const { return d->item(false).icon(); }
92 
93 void KDualAction::setActiveText(const QString &text) { d->setText(true, text); }
94 QString KDualAction::activeText() const { return d->item(true).text(); }
95 void KDualAction::setInactiveText(const QString &text) { d->setText(false, text); }
96 QString KDualAction::inactiveText() const { return d->item(false).text(); }
97 
98 void KDualAction::setActiveToolTip(const QString &toolTip) { d->setToolTip(true, toolTip); }
99 QString KDualAction::activeToolTip() const { return d->item(true).toolTip(); }
100 void KDualAction::setInactiveToolTip(const QString &toolTip) { d->setToolTip(false, toolTip); }
101 QString KDualAction::inactiveToolTip() const { return d->item(false).toolTip(); }
102 
103 void KDualAction::setIconForStates(const QIcon &icon)
104 {
105  setInactiveIcon(icon);
106  setActiveIcon(icon);
107 }
108 
109 void KDualAction::setAutoToggle(bool value)
110 {
111  d->autoToggle = value;
112 }
113 
114 bool KDualAction::autoToggle() const
115 {
116  return d->autoToggle;
117 }
118 
119 void KDualAction::setActive(bool active)
120 {
121  if (active == d->isActive) {
122  return;
123  }
124  d->isActive = active;
125  d->updateFromCurrentState();
126  activeChanged(active);
127 }
128 
129 bool KDualAction::isActive() const
130 {
131  return d->isActive;
132 }
133 
134 #include "kdualaction.moc"
QAction::setText
void setText(const QString &text)
KDualAction::inactiveText
QString inactiveText() const
Gets the text for the inactive state.
Definition: kdualaction.cpp:96
KDualAction::isActive
bool isActive() const
Returns the action state.
Definition: kdualaction.cpp:129
kdebug.h
KDualAction::setActiveToolTip
void setActiveToolTip(const QString &)
Sets the tooltip for the active state.
Definition: kdualaction.cpp:98
KDualAction::setInactiveText
void setInactiveText(const QString &)
Sets the text for the inactive state.
Definition: kdualaction.cpp:95
QAction::setIcon
void setIcon(const QIcon &icon)
KDualAction::activeChanged
void activeChanged(bool)
Emitted when the state changes.
KDualAction::setIconForStates
void setIconForStates(const QIcon &icon)
Convenience method to set the icon for both active and inactive states.
Definition: kdualaction.cpp:103
KDualAction::~KDualAction
~KDualAction()
Definition: kdualaction.cpp:78
KDualAction::inactiveIcon
QIcon inactiveIcon() const
Gets the icon for the inactive state.
Definition: kdualaction.cpp:91
KDualAction::activeGuiItem
KGuiItem activeGuiItem() const
Gets the KGuiItem for the active state.
Definition: kdualaction.cpp:84
KGuiItem::toolTip
QString toolTip() const
Definition: kguiitem.cpp:184
KDualAction::setActiveText
void setActiveText(const QString &)
Sets the text for the active state.
Definition: kdualaction.cpp:93
QAction::setToolTip
void setToolTip(const QString &tip)
KDualAction::activeToolTip
QString activeToolTip() const
Gets the tooltip for the active state.
Definition: kdualaction.cpp:99
KGuiItem::icon
KIcon icon() const
Definition: kguiitem.cpp:151
KDualAction::autoToggle
bool autoToggle() const
Returns whether the current action will automatically be changed when the user triggers this action...
Definition: kdualaction.cpp:114
QObject
KGuiItem
An abstract class for GUI data such as ToolTip and Icon.
Definition: kguiitem.h:36
KDualAction::setInactiveIcon
void setInactiveIcon(const QIcon &)
Sets the icon for the inactive state.
Definition: kdualaction.cpp:90
QString
kdualaction.h
KDualAction::activeText
QString activeText() const
Gets the text for the active state.
Definition: kdualaction.cpp:94
KDualAction::setInactiveGuiItem
void setInactiveGuiItem(const KGuiItem &)
Sets the KGuiItem for the inactive state.
Definition: kdualaction.cpp:85
KDualAction::inactiveGuiItem
KGuiItem inactiveGuiItem() const
Gets the KGuiItem for the inactive state.
Definition: kdualaction.cpp:86
KDualAction::setAutoToggle
void setAutoToggle(bool)
Defines whether the current action should automatically be changed when the user triggers this action...
Definition: kdualaction.cpp:109
KDualAction::setActive
void setActive(bool state)
Sets the action state.
Definition: kdualaction.cpp:119
KDualAction::activeIcon
QIcon activeIcon() const
Gets the icon for the active state.
Definition: kdualaction.cpp:89
QAction
KAction
Class to encapsulate user-driven action or event.
Definition: kaction.h:216
KDualAction::setActiveIcon
void setActiveIcon(const QIcon &)
Sets the icon for the active state.
Definition: kdualaction.cpp:88
KDualAction
An action which can alternate between two texts/icons when triggered.
Definition: kdualaction.h:58
KDualAction::setInactiveToolTip
void setInactiveToolTip(const QString &)
Sets the tooltip for the inactive state.
Definition: kdualaction.cpp:100
KGuiItem::text
QString text() const
Definition: kguiitem.cpp:117
KDualAction::inactiveToolTip
QString inactiveToolTip() const
Gets the tooltip for the inactive state.
Definition: kdualaction.cpp:101
QObject::connect
bool connect(const QObject *sender, const char *signal, const QObject *receiver, const char *method, Qt::ConnectionType type)
KDualAction::KDualAction
KDualAction(QObject *parent)
Constructs a KDualAction with the specified parent.
Definition: kdualaction.cpp:71
QIcon
KDualAction::setActiveGuiItem
void setActiveGuiItem(const KGuiItem &)
Sets the KGuiItem for the active state.
Definition: kdualaction.cpp:83
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:23:59 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KDEUI

Skip menu "KDEUI"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Modules
  • Related Pages

kdelibs API Reference

Skip menu "kdelibs API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal