File indexing completed on 2024-05-12 15:56:38
0001 /* This file is part of the KDE project 0002 * 0003 * SPDX-FileCopyrightText: 2010 Boudewijn Rempt <boud@valdyas.org> 0004 * 0005 * SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #include "KoCanvasController.h" 0009 #include "KoToolManager.h" 0010 0011 #include <QSize> 0012 #include <QPoint> 0013 0014 class Q_DECL_HIDDEN KoCanvasController::Private 0015 { 0016 public: 0017 Private() 0018 : margin(0) 0019 , preferredCenterFractionX(0.5) 0020 , preferredCenterFractionY(0.5) 0021 , actionCollection(0) 0022 { 0023 } 0024 0025 int margin; 0026 QSizeF documentSize; 0027 QPoint documentOffset; 0028 qreal preferredCenterFractionX; 0029 qreal preferredCenterFractionY; 0030 KisKActionCollection* actionCollection; 0031 }; 0032 0033 KoCanvasController::KoCanvasController(KisKActionCollection* actionCollection) 0034 : d(new Private()) 0035 { 0036 proxyObject = new KoCanvasControllerProxyObject(this); 0037 d->actionCollection = actionCollection; 0038 } 0039 0040 KoCanvasController::~KoCanvasController() 0041 { 0042 KoToolManager::instance()->removeCanvasController(this); 0043 delete d; 0044 delete proxyObject; 0045 } 0046 0047 void KoCanvasController::setMargin(int margin) 0048 { 0049 d->margin = margin; 0050 } 0051 0052 int KoCanvasController::margin() const 0053 { 0054 return d->margin; 0055 } 0056 0057 KoCanvasBase* KoCanvasController::canvas() const 0058 { 0059 return 0; 0060 } 0061 0062 void KoCanvasController::setDocumentSize(const QSizeF &sz) 0063 { 0064 d->documentSize = sz; 0065 } 0066 0067 QSizeF KoCanvasController::documentSize() const 0068 { 0069 return d->documentSize; 0070 } 0071 0072 void KoCanvasController::setPreferredCenterFractionX(qreal x) 0073 { 0074 d->preferredCenterFractionX = x; 0075 } 0076 0077 qreal KoCanvasController::preferredCenterFractionX() const 0078 { 0079 return d->preferredCenterFractionX; 0080 } 0081 0082 void KoCanvasController::setPreferredCenterFractionY(qreal y) 0083 { 0084 d->preferredCenterFractionY = y; 0085 } 0086 0087 qreal KoCanvasController::preferredCenterFractionY() const 0088 { 0089 return d->preferredCenterFractionY; 0090 } 0091 0092 void KoCanvasController::setDocumentOffset(QPoint &offset) 0093 { 0094 d->documentOffset = offset; 0095 } 0096 0097 QPoint KoCanvasController::documentOffset() const 0098 { 0099 return d->documentOffset; 0100 } 0101 0102 KoCanvasControllerProxyObject::KoCanvasControllerProxyObject(KoCanvasController *controller, QObject *parent) 0103 : QObject(parent) 0104 , m_canvasController(controller) 0105 { 0106 } 0107 0108 void KoCanvasControllerProxyObject::updateDocumentSize(const QSize &newSize, bool recalculateCenter) 0109 { 0110 m_canvasController->updateDocumentSize(newSize, recalculateCenter); 0111 } 0112 0113 KisKActionCollection* KoCanvasController::actionCollection() const 0114 { 0115 return d->actionCollection; 0116 }