1 /* 2 This file is part of the KDE libraries 3 SPDX-FileCopyrightText: 2010 Aurélien Gâteau <agateau@kde.org> 4 5 SPDX-License-Identifier: LGPL-2.1-or-later 6 */ 7 #ifndef KDUALACTION_P_H 8 #define KDUALACTION_P_H 9 10 #include "kguiitem.h" 11 12 class KDualActionPrivate 13 { 14 public: 15 KDualAction *q; 16 17 KGuiItem items[2]; 18 bool autoToggle; 19 bool isActive; 20 21 void init(KDualAction *q_ptr); 22 void updateFromCurrentState(); item(bool active)23 KGuiItem &item(bool active) 24 { 25 return active ? items[1] : items[0]; 26 } 27 void slotTriggered(); 28 updatedItem(bool active)29 void updatedItem(bool active) 30 { 31 if (active == isActive) { 32 updateFromCurrentState(); 33 } 34 } 35 setGuiItem(bool active,const KGuiItem & _item)36 void setGuiItem(bool active, const KGuiItem &_item) 37 { 38 item(active) = _item; 39 updatedItem(active); 40 } 41 setIcon(bool active,const QIcon & icon)42 void setIcon(bool active, const QIcon &icon) 43 { 44 item(active).setIcon(icon); 45 updatedItem(active); 46 } 47 setText(bool active,const QString & text)48 void setText(bool active, const QString &text) 49 { 50 item(active).setText(text); 51 updatedItem(active); 52 } 53 setToolTip(bool active,const QString & toolTip)54 void setToolTip(bool active, const QString &toolTip) 55 { 56 item(active).setToolTip(toolTip); 57 updatedItem(active); 58 } 59 }; 60 61 #endif /* KDUALACTION_P_H */ 62