Krita Source Code Documentation
Loading...
Searching...
No Matches
ktoggletoolbaraction.cpp
Go to the documentation of this file.
1
/* This file is part of the KDE libraries
2
SPDX-FileCopyrightText: 1999 Reginald Stadlbauer <reggie@kde.org>
3
SPDX-FileCopyrightText: 1999 Simon Hausmann <hausmann@kde.org>
4
SPDX-FileCopyrightText: 2000 Nicolas Hadacek <haadcek@kde.org>
5
SPDX-FileCopyrightText: 2000 Kurt Granroth <granroth@kde.org>
6
SPDX-FileCopyrightText: 2000 Michael Koch <koch@kde.org>
7
SPDX-FileCopyrightText: 2001 Holger Freyther <freyther@kde.org>
8
SPDX-FileCopyrightText: 2002 Ellis Whitehead <ellis@kde.org>
9
SPDX-FileCopyrightText: 2002 Joseph Wenninger <jowenn@kde.org>
10
SPDX-FileCopyrightText: 2003 Andras Mantia <amantia@kde.org>
11
SPDX-FileCopyrightText: 2005-2006 Hamish Rodda <rodda@kde.org>
12
13
SPDX-License-Identifier: LGPL-2.0-only
14
*/
15
16
#include "
ktoggletoolbaraction.h
"
17
18
#include <QByteArray>
19
#include <QEvent>
20
#include <QPointer>
21
22
#include <klocalizedstring.h>
23
24
#include "
kmainwindow.h
"
25
#include "
ktoolbar.h
"
26
27
class
KToggleToolBarAction::Private
28
{
29
public
:
30
Private
()
31
:
toolBarName
(0),
toolBar
(0),
beingToggled
(false)
32
{
33
}
34
35
QByteArray
toolBarName
;
36
QPointer<KisToolBar>
toolBar
;
37
bool
beingToggled
;
38
};
39
40
KToggleToolBarAction::KToggleToolBarAction
(
const
char
*toolBarName,
const
QString &text, QObject *parent)
41
: KToggleAction(text, parent),
42
d(new
Private
)
43
{
44
d
->
toolBarName
= toolBarName;
45
}
46
47
KToggleToolBarAction::KToggleToolBarAction
(
KisToolBar
*toolBar,
const
QString &text, QObject *parent)
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
}
58
59
KToggleToolBarAction::~KToggleToolBarAction
()
60
{
61
delete
d
;
62
}
63
64
bool
KToggleToolBarAction::eventFilter
(QObject *watched, QEvent *event)
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
}
95
96
KisToolBar
*
KToggleToolBarAction::toolBar
()
97
{
98
return
d
->
toolBar
;
99
}
100
101
void
KToggleToolBarAction::slotToggled
(
bool
checked)
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
}
116
KToggleToolBarAction::Private
Definition
ktoggletoolbaraction.cpp:28
KToggleToolBarAction::Private::beingToggled
bool beingToggled
Definition
ktoggletoolbaraction.cpp:37
KToggleToolBarAction::Private::toolBar
QPointer< KisToolBar > toolBar
Definition
ktoggletoolbaraction.cpp:36
KToggleToolBarAction::Private::toolBarName
QByteArray toolBarName
Definition
ktoggletoolbaraction.cpp:35
KToggleToolBarAction::Private::Private
Private()
Definition
ktoggletoolbaraction.cpp:30
KToggleToolBarAction::~KToggleToolBarAction
~KToggleToolBarAction() override
Definition
ktoggletoolbaraction.cpp:59
KToggleToolBarAction::slotToggled
void slotToggled(bool checked) override
Definition
ktoggletoolbaraction.cpp:101
KToggleToolBarAction::eventFilter
bool eventFilter(QObject *watched, QEvent *event) override
Definition
ktoggletoolbaraction.cpp:64
KToggleToolBarAction::KToggleToolBarAction
KToggleToolBarAction(const char *toolBarName, const QString &text, QObject *parent)
Definition
ktoggletoolbaraction.cpp:40
KToggleToolBarAction::toolBar
KisToolBar * toolBar()
Definition
ktoggletoolbaraction.cpp:96
KToggleToolBarAction::d
Private *const d
Definition
ktoggletoolbaraction.h:83
KisKMainWindow
KDE top level main window
Definition
kmainwindow.h:89
KisToolBar
Floatable toolbar with auto resize.
Definition
ktoolbar.h:47
QPointer
Definition
kis_types.h:255
kmainwindow.h
ktoggletoolbaraction.h
ktoolbar.h
Private
Definition
SvgTransformParser.cpp:20
libs
widgetutils
xmlgui
ktoggletoolbaraction.cpp
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52