Krita Source Code Documentation
Loading...
Searching...
No Matches
KoToolManager.h
Go to the documentation of this file.
1/* This file is part of the KDE project
2 * SPDX-FileCopyrightText: 2005-2006 Boudewijn Rempt <boud@valdyas.org>
3 * SPDX-FileCopyrightText: 2006, 2008 Thomas Zander <zander@kde.org>
4 * SPDX-FileCopyrightText: 2006 Thorsten Zachmann <zachmann@kde.org>
5 *
6 * SPDX-License-Identifier: LGPL-2.0-or-later
7 */
8#ifndef KO_TOOL_MANAGER
9#define KO_TOOL_MANAGER
10
11#include "KoInputDevice.h"
12#include "kritaflake_export.h"
15
16#include <QObject>
17#include <QList>
18
22class KoCanvasBase;
23class KoToolBase;
25class KoShape;
26class KoShapeLayer;
27class QKeySequence;
28
29class QCursor;
30
40class KRITAFLAKE_EXPORT KoToolAction : public QObject
41{
42 Q_OBJECT
43public:
44 explicit KoToolAction(KoToolFactoryBase *toolFactory);
45 ~KoToolAction() override;
46
47public:
48 QString id() const;
49 QString iconText() const;
50 QString toolTip() const;
51 QString iconName() const;
52 QKeySequence shortcut() const;
53
54 QString section() const;
55 int priority() const;
56 int buttonGroupId() const;
57 QString visibilityCode() const;
58
60
61public Q_SLOTS:
62 void trigger();
63
64Q_SIGNALS:
65 void changed();
66
67private:
68 class Private;
69 Private *const d;
70};
71
72
127class KRITAFLAKE_EXPORT KoToolManager : public QObject
128{
129 Q_OBJECT
130
131public:
134 static KoToolManager* instance();
135 ~KoToolManager() override;
136
143 void initializeToolActions();
144
149 void addController(KoCanvasController *controller);
150
157 void removeCanvasController(KoCanvasController *controller);
165 Q_SLOT void attemptCanvasControllerRemoval(QObject *controller);
166
168 KoCanvasController *activeCanvasController() const;
169
177 KoToolBase *toolById(KoCanvasBase *canvas, const QString &id) const;
178
180 KoInputDevice currentInputDevice() const;
181
187 QString preferredToolForSelection(const QList<KoShape*> &shapes);
188
194
196 void requestToolActivation(KoCanvasController *controller);
197
199 QString activeToolId() const;
200
201 void initializeCurrentToolForCanvas();
202
203 void setConverter(KoDerivedResourceConverterSP converter, KoToolBase *tool);
204 void setAbstractResource(KoAbstractCanvasResourceInterfaceSP abstractResource, KoToolBase *tool);
205
206 class Private;
211
212public Q_SLOTS:
217 void switchToolRequested(const QString &id);
218
223 void switchInputDeviceRequested(const KoInputDevice &id);
224
228 void switchBackRequested();
229
233 void themeChanged();
234
235Q_SIGNALS:
241
247
254
260 void currentLayerChanged(const KoCanvasController *canvas, const KoShapeLayer *layer);
261
267
272 void changedCanvas(const KoCanvasBase *canvas);
273
278 void changedStatusText(const QString &statusText);
279
283 void addedTool(KoToolAction *toolAction, KoCanvasController *canvas);
284
289
294 void textModeChanged(bool text);
295
300 void createOpacityResource(bool isOpacityPresetMode, KoToolBase *tool);
301
302private:
305
306 Q_PRIVATE_SLOT(d, void detachCanvas(KoCanvasController *controller))
307 Q_PRIVATE_SLOT(d, void attachCanvas(KoCanvasController *controller))
308 Q_PRIVATE_SLOT(d, void movedFocus(QWidget *from, QWidget *to))
309 Q_PRIVATE_SLOT(d, void updateCursor(const QCursor &cursor))
310 Q_PRIVATE_SLOT(d, void selectionChanged(const QList<KoShape*> &shapes))
311 Q_PRIVATE_SLOT(d, void currentLayerChanged(const KoShapeLayer *layer))
312
313 Private *const d;
314};
315
316#endif
PythonPluginManager * instance
A container for a set of QAction objects.
KoToolFactoryBase * toolFactory() const
Factory to create new tool object instances.
Private *const d
int buttonGroupId() const
A unique ID for this tool as passed by changedTool(), >= 0.
void changed()
Emitted when a property changes (shortcut ATM)
void addedTool(KoToolAction *toolAction, KoCanvasController *canvas)
void createOpacityResource(bool isOpacityPresetMode, KoToolBase *tool)
void inputDeviceChanged(const KoInputDevice &device)
KoToolManager(const KoToolManager &)
void changedTool(KoCanvasController *canvas)
void changedCanvas(const KoCanvasBase *canvas)
void changedStatusText(const QString &statusText)
void toolOptionWidgetsChanged(KoCanvasController *controller, const QList< QPointer< QWidget > > &widgets)
Private(KoToolManager *qq)
QList< KoToolAction * > toolActionList() const
void textModeChanged(bool text)
void aboutToChangeTool(KoCanvasController *canvas)
KoToolManager operator=(const KoToolManager &)
void toolCodesSelected(const QList< QString > &types)
void currentLayerChanged(const KoCanvasController *canvas, const KoShapeLayer *layer)