Krita Source Code Documentation
Loading...
Searching...
No Matches
KisViewManager.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2006 Boudewijn Rempt <boud@valdyas.org>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6
7#ifndef KIS_GUI_CLIENT_H
8#define KIS_GUI_CLIENT_H
9
10#include <QQueue>
11#include <QPointer>
12#include <QMainWindow>
13
14#include <KoToolManager.h>
15
16#include <kritaui_export.h>
17#include <kis_types.h>
18
20
21class QPoint;
22class KisView;
23
24class KisCanvas2;
26class KisDocument;
28class KisGridManager;
30class KisImageManager;
31class KisNodeManager;
33class KisPaintopBox;
35class KisStatusBar;
36class KisUndoAdapter;
37class KisZoomManager;
38class KisPaintopBox;
40class KisInputManager;
41class KoUpdater;
43class KisMainWindow;
47
51class KRITAUI_EXPORT KisViewManager : public QObject
52{
53
54 Q_OBJECT
55
56public:
62 KisViewManager(QWidget *parent, KisKActionCollection *actionCollection);
63 ~KisViewManager() override;
64
68 virtual KisKActionCollection* actionCollection() const;
69
70public: // Krita specific interfaces
71
72 void setCurrentView(KisView *view);
73
75 KisImageWSP image() const;
76
79 KisCanvasResourceProvider *canvasResourceProvider();
80
82 KisCanvas2 *canvasBase() const;
83
85 QWidget* canvas() const;
86
88 KisStatusBar *statusBar() const;
89
90 KisPaintopBox* paintOpBox() const;
91
93 QPointer<KoUpdater> createUnthreadedUpdater(const QString &name);
94 QPointer<KoUpdater> createThreadedUpdater(const QString &name);
95
98 KisSelectionManager *selectionManager();
99
101 KisNodeManager *nodeManager() const;
102
103 KisActionManager *actionManager() const;
104
109 KisNodeSP activeNode();
110
112 KisLayerSP activeLayer();
113
115 KisPaintDeviceSP activeDevice();
116
118 KisFilterManager *filterManager();
119
122 KisImageManager *imageManager();
123
125 KisInputManager *inputManager() const;
126
127 KisIdleTasksManager *idleTasksManager();
128
129 KisTextPropertiesManager *textPropertyManager() const;
130
134 KisSelectionSP selection();
135
137 bool selectionEditable();
138
140 KisUndoAdapter *undoAdapter();
141
142 KisDocument *document() const;
143
144 int viewCount() const;
145
153 bool blockUntilOperationsFinished(KisImageSP image);
154
155
162 void blockUntilOperationsFinishedForced(KisImageSP image);
163
164 void notifyWorkspaceLoaded();
165
166public:
167
168 KisGridManager * gridManager() const;
169 KisGuidesManager * guidesManager() const;
170
172 void enableControls();
173 void disableControls();
174
175
177 void showFloatingMessage(const QString &message, const QIcon& icon, int timeout = 4500,
179 int alignment = Qt::AlignCenter | Qt::TextWordWrap);
180
181 void showFloatingZoomMessage(const QString &message);
182 void showFloatingRotationMessage(const QString &message);
183
185 KisMainWindow *mainWindow() const;
186
192 QWidget *mainWindowAsQWidget() const;
193
197 QMainWindow* qtMainWindow() const;
198
201 void setQtMainWindow(QMainWindow* newMainWindow);
202
203 static void initializeResourceManager(KoCanvasResourceProvider *resourceManager);
204 static void testingInitializeOpacityToPresetResourceConverter(KoCanvasResourceProvider *resourceManager);
205
206public Q_SLOTS:
207
208 void switchCanvasOnly(bool toggled);
209 void setShowFloatingMessage(bool show);
210 void showHideScrollbars();
211
214 void updateGUI();
215
217 void updateIcons();
218
219 void slotViewAdded(KisView *view);
220 void slotViewRemoved(KisView *view);
221
222 void slotActivateTransformTool();
223
224 // Change and update author
225 void changeAuthorProfile(const QString &profileName);
226 void slotUpdateAuthorProfileActions();
227
228 void slotToggleFgBg();
229 void slotResetFgBg();
230
231 // Enable the last set brush outline, or disable it if already enabled
232 void slotToggleBrushOutline();
233
234Q_SIGNALS:
235
236 void floatingMessageRequested(const QString &message, const QString &iconName);
242
244
245private Q_SLOTS:
246
247 void slotCreateTemplate();
248 void slotCreateCopy();
249 void slotDocumentSaved();
250 void slotSaveIncremental();
251 void slotSaveIncrementalBackup();
252 void showStatusBar(bool toggled);
253 void toggleTabletLogger();
254 void openResourcesDirectory();
255 void guiUpdateTimeout();
256 void slotUpdatePixelGridAction();
257 void slotSaveShowRulersState(bool value);
258 void slotSaveRulersTrackMouseState(bool value);
259 void slotResetRotation();
260 void slotResetDisplay();
261 void slotCreateOpacityResource(bool isOpacityPresetMode, KoToolBase *tool);
262private:
263 void createActions();
264 void setupManagers();
265
266 QString canonicalPath();
267
269 KisZoomManager * zoomManager();
270
271 void handleFloatingZoomRotationMessage(QString &messageToClear);
272
273private:
276};
277
278#endif
float value(const T *src, size_t ch)
A KisActionManager class keeps track of KisActions. These actions are always associated with the GUI....
Central object to manage canvas input.
A container for a set of QAction objects.
Main window for Krita.
The KisTextPropertyManager class.
void floatingMessageRequested(const QString &message, const QString &iconName)
void brushOutlineToggled()
void viewChanged()
viewChanged sent out when the view has changed.
KisViewManagerPrivate *const d