Krita Source Code Documentation
Loading...
Searching...
No Matches
KisPart.h
Go to the documentation of this file.
1/* This file is part of the KDE project
2 SPDX-FileCopyrightText: 1998, 1999 Torben Weis <weis@kde.org>
3 SPDX-FileCopyrightText: 2000-2005 David Faure <faure@kde.org>
4 SPDX-FileCopyrightText: 2007 Thorsten Zachmann <zachmann@kde.org>
5 SPDX-FileCopyrightText: 2010 Boudewijn Rempt <boud@valdyas.org>
6 SPDX-FileCopyrightText: 2015 Michael Abrahams <miabraha@gmail.com>
7
8 SPDX-License-Identifier: LGPL-2.0-or-later
9*/
10
11#ifndef KIS_PART_H
12#define KIS_PART_H
13
14#include <QList>
15#include <QPointer>
16#include <QUrl>
17#include <QUuid>
18
19#include <KisSessionResource.h>
20
21#include "kritaui_export.h"
22#include <kconfiggroup.h>
23#include <KoConfig.h>
24#include <kis_types.h>
25
26namespace KIO {
27}
28
29class KisAction;
30class KisDocument;
31class KisView;
32class KisDocument;
33class KisIdleWatcher;
35class KisMainWindow;
36class KisInputManager;
37class KisViewManager;
38
39
51class KRITAUI_EXPORT KisPart : public QObject
52{
53 Q_OBJECT
54
55public:
56
57 static KisPart *instance();
58
65 explicit KisPart();
66
73 ~KisPart() override;
74
75 // ----------------- Document management -----------------
76
81
85 KisDocument *createTemporaryDocument() const;
86
90 void addDocument(KisDocument *document, bool notify = true);
91
96
100 int documentCount() const;
101
102 void removeDocument(KisDocument *document, bool deleteDocument = true);
103
104 // ----------------- MainWindow management -----------------
105
106
110 KisMainWindow *createMainWindow(QUuid id = QUuid());
111
116 void notifyMainWindowIsBeingCreated(KisMainWindow *mainWindow);
117
118
124 void removeMainWindow(KisMainWindow *mainWindow);
125
130
134 int mainwindowCount() const;
135
136 void addRecentURLToAllMainWindows(QUrl url, QUrl oldUrl = QUrl());
137
142 void queueAddRecentURLToAllMainWindowsOnFileSaved(QUrl url, QUrl oldUrl = QUrl());
143
147 KisMainWindow *currentMainwindow() const;
148
154 QWidget *currentMainwindowAsQWidget() const;
155
156 KisMainWindow *windowById(QUuid id) const;
157
162
163 // ----------------- Cache Populator Management -----------------
167 KisAnimationCachePopulator *cachePopulator() const;
168
170
177 void prioritizeFrameForCache(KisImageSP image, int frame);
178
179public Q_SLOTS:
180
185 void openExistingFile(const QString &path);
186
191 void openTemplate(const QUrl &url);
192
193
198 void startCustomDocument(KisDocument *doc);
199
200private Q_SLOTS:
201
202 void updateIdleWatcherConnections();
203
204 void updateShortcuts();
205
206Q_SIGNALS:
210 void documentOpened(const QString &ref);
211
215 void documentClosed(const QString &ref);
216
222 void playbackEngineChanged(KisPlaybackEngine *newPlaybackEngine);
223
224 // These signals are for libkis or sketch
228 void sigDocumentSaved(const QString &url);
229 void sigDocumentRemoved(const QString &filename);
232
233public:
234
235 KisInputManager *currentInputManager();
236
237 //------------------ View management ------------------
238
243 KisView *createView(KisDocument *document,
244 KisViewManager *viewManager,
245 QWidget *parent);
246
254 void addView(KisView *view);
255
259 void removeView(KisView *view);
260
265
269 int viewCount(KisDocument *doc) const;
270
271 //------------------ Session management ------------------
272
273 void showSessionManager();
274
275 void startBlankSession();
276
280 bool restoreSession(const QString &sessionName);
281 bool restoreSession(KisSessionResourceSP session);
282
283 void setCurrentSession(KisSessionResourceSP session);
284
290 bool closeSession(bool keepWindows = false);
291
295 bool closingSession() const;
296
303 static bool exists();
304
305 //------------------ Animation PlaybackEngine management ------------------
306public:
307 void upgradeToPlaybackEngineMLT(class KoCanvasBase *canvas);
308
313 void unloadPlaybackEngine();
314
315private:
316
317 void setPlaybackEngine(KisPlaybackEngine *p_playbackEngine);
318
319private Q_SLOTS:
320
321 void slotDocumentSaved(const QString &filePath);
322
323private:
324
325 Q_DISABLE_COPY(KisPart)
326
327 class Private;
328 Private *const d;
329
330};
331
332#endif
PythonPluginManager * instance
Central object to manage canvas input.
Main window for Krita.
void sigDocumentSaved(const QString &url)
void sigViewAdded(KisView *view)
QList< QPointer< KisDocument > > documents() const
void documentClosed(const QString &ref)
void sigDocumentAdded(KisDocument *document)
Private *const d
Definition KisPart.h:328
void playbackEngineChanged(KisPlaybackEngine *newPlaybackEngine)
const QList< QPointer< KisMainWindow > > & mainWindows() const
void sigMainWindowCreated()
bool closingSession() const
KisIdleWatcher * idleWatcher() const
void sigViewRemoved(KisView *view)
void documentOpened(const QString &ref)
class KisPlaybackEngine * playbackEngine() const
void sigDocumentRemoved(const QString &filename)
QList< QPointer< KisView > > views() const
void sigMainWindowIsBeingCreated(KisMainWindow *window)
Krita's base animation playback engine for producing image frame changes and associated audio.
KisDocument * createDocument(QList< KisNodeSP > nodes, KisImageSP srcImage, const QRect &copiedBounds)
Definition KisPart.h:26