Krita Source Code Documentation
Loading...
Searching...
No Matches
ktoolbar.h
Go to the documentation of this file.
1/* This file is part of the KDE libraries
2 SPDX-FileCopyrightText: 2000 Reginald Stadlbauer (reggie@kde.org)
3 SPDX-FileCopyrightText: 1997, 1998 Stephan Kulow (coolo@kde.org)
4 SPDX-FileCopyrightText: 1997, 1998 Sven Radej (radej@kde.org)
5 SPDX-FileCopyrightText: 1997, 1998 Mark Donohoe (donohoe@kde.org)
6 SPDX-FileCopyrightText: 1997, 1998 Matthias Ettrich (ettrich@kde.org)
7 SPDX-FileCopyrightText: 1999, 2000 Kurt Granroth (granroth@kde.org)
8 SPDX-FileCopyrightText: 2005-2006 Hamish Rodda (rodda@kde.org)
9
10 SPDX-License-Identifier: LGPL-2.0-only
11 */
12
13#ifndef KTOOLBAR_H
14#define KTOOLBAR_H
15
16#include <kritawidgetutils_export.h>
17
18#include <QToolBar>
19
20class QDomElement;
21
22class KConfigGroup;
23class KConfig;
24class KisKMainWindow;
27
46class KRITAWIDGETUTILS_EXPORT KisToolBar : public QToolBar
47{
48 Q_OBJECT
49
50public:
66 explicit KisToolBar(const QString &objectName, QWidget *parent, bool readConfig = true);
67
71 ~KisToolBar() override;
72
76 KisKMainWindow *mainWindow() const;
77
81 void setIconDimensions(int size);
82
88 int iconSizeDefault() const; // KDE5: hide from public API. Doesn't make sense to export this, and it isn't used.
89
93 void saveSettings(KConfigGroup &cg);
94
99 void applySettings(const KConfigGroup &cg);
100
105 void addXMLGUIClient(KisKXMLGUIClient *client);
106
111 void removeXMLGUIClient(KisKXMLGUIClient *client);
112
116 void loadState(const QDomElement &element);
117
121 void saveState(QDomElement &element) const;
122
126 bool eventFilter(QObject *watched, QEvent *event) override;
127
131 static bool toolBarsEditable();
132
138 static void setToolBarsEditable(bool editable);
139
143 static bool toolBarsLocked();
144
148 static void setToolBarsLocked(bool locked);
149
155 static void emitToolbarStyleChanged();
156
157 static KisToolBarStateModel* toolBarStateModel();
158
159protected Q_SLOTS:
160 virtual void slotMovableChanged(bool movable);
161
162protected:
163 void contextMenuEvent(QContextMenuEvent *) override;
164 void actionEvent(QActionEvent *) override;
165
166 // Draggable toolbar configuration
167 void dragEnterEvent(QDragEnterEvent *) override;
168 void dragMoveEvent(QDragMoveEvent *) override;
169 void dragLeaveEvent(QDragLeaveEvent *) override;
170 void dropEvent(QDropEvent *) override;
171 void mousePressEvent(QMouseEvent *) override;
172 void mouseMoveEvent(QMouseEvent *) override;
173 void mouseReleaseEvent(QMouseEvent *) override;
174
175private:
176 class Private;
177 Private *const d;
178
179 Q_PRIVATE_SLOT(d, void slotAppearanceChanged())
180 Q_PRIVATE_SLOT(d, void slotContextAboutToShow())
181 Q_PRIVATE_SLOT(d, void slotContextAboutToHide())
182 Q_PRIVATE_SLOT(d, void slotContextLeft())
183 Q_PRIVATE_SLOT(d, void slotContextRight())
184 Q_PRIVATE_SLOT(d, void slotContextShowText())
185 Q_PRIVATE_SLOT(d, void slotContextTop())
186 Q_PRIVATE_SLOT(d, void slotContextBottom())
187 Q_PRIVATE_SLOT(d, void slotContextIcons())
188 Q_PRIVATE_SLOT(d, void slotContextText())
189 Q_PRIVATE_SLOT(d, void slotContextTextRight())
190 Q_PRIVATE_SLOT(d, void slotContextTextUnder())
191 Q_PRIVATE_SLOT(d, void slotContextIconSize())
192 Q_PRIVATE_SLOT(d, void slotLockToolBars(bool))
193 Q_PRIVATE_SLOT(d, void slotToolButtonToggled(bool))
194};
195
196#endif
KDE top level main window
Definition kmainwindow.h:89
Floatable toolbar with auto resize.
Definition ktoolbar.h:47
Private *const d
Definition ktoolbar.h:177