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
182 KisMainWindow *mainWindow() const;
183
189 QWidget *mainWindowAsQWidget() const;
190
194 QMainWindow* qtMainWindow() const;
195
198 void setQtMainWindow(QMainWindow* newMainWindow);
199
200 static void initializeResourceManager(KoCanvasResourceProvider *resourceManager);
201 static void testingInitializeOpacityToPresetResourceConverter(KoCanvasResourceProvider *resourceManager);
202
203public Q_SLOTS:
204
205 void switchCanvasOnly(bool toggled);
206 void setShowFloatingMessage(bool show);
207 void showHideScrollbars();
208
211 void updateGUI();
212
214 void updateIcons();
215
216 void slotViewAdded(KisView *view);
217 void slotViewRemoved(KisView *view);
218
219 void slotActivateTransformTool();
220
221 // Change and update author
222 void changeAuthorProfile(const QString &profileName);
223 void slotUpdateAuthorProfileActions();
224
225 void slotToggleFgBg();
226 void slotResetFgBg();
227
228 // Enable the last set brush outline, or disable it if already enabled
229 void slotToggleBrushOutline();
230
231Q_SIGNALS:
232
233 void floatingMessageRequested(const QString &message, const QString &iconName);
239
241
242private Q_SLOTS:
243
244 void slotCreateTemplate();
245 void slotCreateCopy();
246 void slotDocumentSaved();
247 void slotSaveIncremental();
248 void slotSaveIncrementalBackup();
249 void showStatusBar(bool toggled);
250 void toggleTabletLogger();
251 void openResourcesDirectory();
252 void guiUpdateTimeout();
253 void slotUpdatePixelGridAction();
254 void slotSaveShowRulersState(bool value);
255 void slotSaveRulersTrackMouseState(bool value);
256 void slotResetRotation();
257 void slotResetDisplay();
258 void slotCreateOpacityResource(bool isOpacityPresetMode, KoToolBase *tool);
259private:
260 void createActions();
261 void setupManagers();
262
263 QString canonicalPath();
264
266 KisZoomManager * zoomManager();
267
268private:
271};
272
273#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