Krita Source Code Documentation
Loading...
Searching...
No Matches
KoCanvasBase.cpp
Go to the documentation of this file.
1/* This file is part of the KDE project
2
3 SPDX-FileCopyrightText: 2006 Thorsten Zachmann <zachmann@kde.org>
4
5 SPDX-License-Identifier: LGPL-2.0-or-later
6*/
7
8#include <QRectF>
9#include <QPointer>
10#include <QDebug>
11
12#include "KoCanvasBase.h"
14#include "KoShapeController.h"
15#include "KoCanvasController.h"
16#include "KoViewConverter.h"
17#include "KoSnapGuide.h"
18#include "KoShapeManager.h"
19#include "KoToolProxy.h"
20#include "KoSelection.h"
22
23class Q_DECL_HIDDEN KoCanvasBase::Private
24{
25public:
27 : shapeController(0),
28 resourceManager(0),
29 isResourceManagerShared(false),
30 controller(0),
31 snapGuide(0)
32 {
33 }
34
36 delete shapeController;
37 if (!isResourceManagerShared) {
38 delete resourceManager;
39 }
40 delete snapGuide;
41 }
47};
48
50 : d(new Private())
51{
52 d->resourceManager = sharedResourceManager ?
53 sharedResourceManager : new KoCanvasResourceProvider();
54 d->isResourceManagerShared = sharedResourceManager;
55
56 d->shapeController = new KoShapeController(this, shapeController);
57 d->snapGuide = new KoSnapGuide(this);
58}
59
61{
62 d->shapeController->reset();
63 delete d;
64}
65
66QPointF KoCanvasBase::viewToDocument(const QPointF &viewPoint) const
67{
68 return viewConverter()->viewToDocument(viewPoint - documentOrigin());
69}
70
72{
73 if (d->shapeController)
74 return d->shapeController;
75 else
76 return 0;
77}
78
80{
81 if (shapeManager()) shapeManager()->selection()->disconnect(object);
82 if (resourceManager()) resourceManager()->disconnect(object);
83 if (shapeManager()) shapeManager()->disconnect(object);
84 if (toolProxy()) toolProxy()->disconnect(object);
85 if (selectedShapesProxy()) selectedShapesProxy()->disconnect(object);
86}
87
88
90{
91 return d->resourceManager;
92}
93
95{
96 d->controller = controller;
97}
98
100{
101 return d->controller;
102}
103
104void KoCanvasBase::clipToDocument(const KoShape *, QPointF &) const
105{
106}
107
109{
110 return d->snapGuide;
111}
void setCanvasController(KoCanvasController *controller)
called by KoCanvasController to set the controller that handles this canvas.
virtual void clipToDocument(const KoShape *shape, QPointF &move) const
KoSnapGuide * snapGuide
virtual void disconnectCanvasObserver(QObject *object)
virtual QPointF viewToDocument(const QPointF &viewPoint) const
QPointer< KoShapeController > shapeController
virtual KoShapeManager * shapeManager() const =0
Private *const d
KoCanvasController * controller
virtual KoToolProxy * toolProxy() const =0
bool isResourceManagerShared
virtual QPoint documentOrigin() const
virtual const KoViewConverter * viewConverter() const =0
QPointer< KoCanvasResourceProvider > resourceManager
KoCanvasController * canvasController() const
virtual KoSelectedShapesProxy * selectedShapesProxy() const =0
selectedShapesProxy() is a special interface for keeping a persistent connections to selectionChanged...
~KoCanvasBase() override
KoSelection * selection
virtual QPointF viewToDocument(const QPointF &viewPoint) const