File indexing completed on 2024-05-12 15:56:47
0001 /* This file is part of the KDE project 0002 0003 SPDX-FileCopyrightText: 2006, 2010 Thomas Zander <zander@kde.org> 0004 SPDX-FileCopyrightText: 2011 Jan Hambrecht <jaham@gmx.net> 0005 0006 SPDX-License-Identifier: LGPL-2.0-or-later 0007 */ 0008 0009 #include <QTransform> 0010 #include <QPointer> 0011 0012 #include "KoShapeControllerBase.h" 0013 #include "KoDocumentResourceManager.h" 0014 #include "KoShapeRegistry.h" 0015 #include "KoShapeFactoryBase.h" 0016 0017 #include <kconfig.h> 0018 #include <kconfiggroup.h> 0019 #include <ksharedconfig.h> 0020 #include <kundo2command.h> 0021 0022 class KoshapeControllerBasePrivate 0023 { 0024 public: 0025 KoshapeControllerBasePrivate() 0026 : resourceManager(new KoDocumentResourceManager()) 0027 { 0028 KoShapeRegistry *registry = KoShapeRegistry::instance(); 0029 foreach (const QString &id, registry->keys()) { 0030 KoShapeFactoryBase *shapeFactory = registry->value(id); 0031 shapeFactory->newDocumentResourceManager(resourceManager); 0032 } 0033 // read persistent application wide resources 0034 KSharedConfigPtr config = KSharedConfig::openConfig(); 0035 KConfigGroup miscGroup = config->group("Misc"); 0036 const uint grabSensitivity = miscGroup.readEntry("GrabSensitivity", 10); 0037 resourceManager->setGrabSensitivity(grabSensitivity); 0038 const uint handleRadius = miscGroup.readEntry("HandleRadius", 5); 0039 resourceManager->setHandleRadius(handleRadius); 0040 } 0041 0042 ~KoshapeControllerBasePrivate() 0043 { 0044 delete resourceManager; 0045 } 0046 0047 QPointer<KoDocumentResourceManager> resourceManager; 0048 }; 0049 0050 KoShapeControllerBase::KoShapeControllerBase() 0051 : d(new KoshapeControllerBasePrivate()) 0052 { 0053 } 0054 0055 KoShapeControllerBase::~KoShapeControllerBase() 0056 { 0057 delete d; 0058 } 0059 0060 KoShapeContainer* KoShapeControllerBase::createParentForShapes(const QList<KoShape*> shapes, KUndo2Command *parentCommand) 0061 { 0062 Q_UNUSED(parentCommand); 0063 Q_UNUSED(shapes); 0064 0065 return 0; 0066 } 0067 0068 KoDocumentResourceManager *KoShapeControllerBase::resourceManager() const 0069 { 0070 return d->resourceManager; 0071 } 0072 0073 QRectF KoShapeControllerBase::documentRect() const 0074 { 0075 const qreal pxToPt = 72.0 / pixelsPerInch(); 0076 0077 QTransform t = QTransform::fromScale(pxToPt, pxToPt); 0078 return t.mapRect(documentRectInPixels()); 0079 }