Krita Source Code Documentation
Loading...
Searching...
No Matches
KToggleToolBarAction Class Reference

#include <ktoggletoolbaraction.h>

+ Inheritance diagram for KToggleToolBarAction:

Classes

class  Private
 

Public Member Functions

bool eventFilter (QObject *watched, QEvent *event) override
 
 KToggleToolBarAction (const char *toolBarName, const QString &text, QObject *parent)
 
 KToggleToolBarAction (KisToolBar *toolBar, const QString &text, QObject *parent)
 
KisToolBartoolBar ()
 
 ~KToggleToolBarAction () override
 

Private Slots

void slotToggled (bool checked) override
 

Private Attributes

Private *const d
 

Detailed Description

An action that takes care of everything associated with showing or hiding a toolbar by a menu action. It will show or hide the toolbar with the given name when activated, and check or uncheck itself if the toolbar is manually shown or hidden.

If you need to perform some additional action when the toolbar is shown or hidden, connect to the toggled(bool) signal. It will be emitted after the toolbar's visibility has changed, whenever it changes.

Definition at line 35 of file ktoggletoolbaraction.h.

Constructor & Destructor Documentation

◆ KToggleToolBarAction() [1/2]

KToggleToolBarAction::KToggleToolBarAction ( const char * toolBarName,
const QString & text,
QObject * parent )

Create a KisKToggleToolbarAction that manages the toolbar named toolBarName. This can be either the name of a toolbar in an xml ui file, or a toolbar programmatically created with that name.

Parameters
toolBarNameThe toolbar name.
textThe toolbar hint text.
parentThe action's parent object.

Definition at line 40 of file ktoggletoolbaraction.cpp.

41 : KToggleAction(text, parent),
42 d(new Private)
43{
44 d->toolBarName = toolBarName;
45}

References d, and KToggleToolBarAction::Private::toolBarName.

◆ KToggleToolBarAction() [2/2]

KToggleToolBarAction::KToggleToolBarAction ( KisToolBar * toolBar,
const QString & text,
QObject * parent )

Create a KisKToggleToolbarAction that manages the toolBar. This can be either the name of a toolbar in an xml ui file, or a toolbar programmatically created with that name.

Parameters
toolBarthe toolbar to be managed
textThe action's text
parentThe action's parent object.

Definition at line 47 of file ktoggletoolbaraction.cpp.

48 : KToggleAction(text, parent),
49 d(new Private)
50{
51 d->toolBar = toolBar;
52 d->toolBar->installEventFilter(this);
53
54 d->beingToggled = true;
55 setChecked(d->toolBar->isVisible());
56 d->beingToggled = false;
57}

References KToggleToolBarAction::Private::beingToggled, d, KToggleToolBarAction::Private::toolBar, and toolBar().

◆ ~KToggleToolBarAction()

KToggleToolBarAction::~KToggleToolBarAction ( )
override

Destroys toggle toolbar action.

Definition at line 59 of file ktoggletoolbaraction.cpp.

60{
61 delete d;
62}

References d.

Member Function Documentation

◆ eventFilter()

bool KToggleToolBarAction::eventFilter ( QObject * watched,
QEvent * event )
override

Reimplemented from

See also
QObject.

Definition at line 64 of file ktoggletoolbaraction.cpp.

65{
66 if (d->beingToggled) {
67 return false;
68 }
69
70 d->beingToggled = true;
71
72 if (watched == d->toolBar) {
73 switch (event->type()) {
74 case QEvent::Hide:
75 if (isChecked()) {
76 setChecked(false);
77 }
78 break;
79
80 case QEvent::Show:
81 if (!isChecked()) {
82 setChecked(true);
83 }
84 break;
85
86 default:
87 break;
88 }
89 }
90
91 d->beingToggled = false;
92
93 return false;
94}

References KToggleToolBarAction::Private::beingToggled, d, and KToggleToolBarAction::Private::toolBar.

◆ slotToggled

void KToggleToolBarAction::slotToggled ( bool checked)
overrideprivateslot

Definition at line 101 of file ktoggletoolbaraction.cpp.

102{
103 if (!d->beingToggled && d->toolBar && checked != d->toolBar->isVisible()) {
104 d->beingToggled = true;
105 d->toolBar->setVisible(checked);
106 d->beingToggled = false;
107
108 QMainWindow *mw = d->toolBar->mainWindow();
109 if (mw && qobject_cast<KisKMainWindow *>(mw)) {
110 static_cast<KisKMainWindow *>(mw)->setSettingsDirty();
111 }
112 }
113
114 KToggleAction::slotToggled(checked);
115}
KDE top level main window
Definition kmainwindow.h:89

References KToggleToolBarAction::Private::beingToggled, d, and KToggleToolBarAction::Private::toolBar.

◆ toolBar()

KisToolBar * KToggleToolBarAction::toolBar ( )

Returns a pointer to the tool bar it manages.

Definition at line 96 of file ktoggletoolbaraction.cpp.

97{
98 return d->toolBar;
99}

References d, and KToggleToolBarAction::Private::toolBar.

Member Data Documentation

◆ d

Private* const KToggleToolBarAction::d
private

Definition at line 83 of file ktoggletoolbaraction.h.


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