File indexing completed on 2024-05-19 04:24:56
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 } 0039 0040 ~KoshapeControllerBasePrivate() 0041 { 0042 delete resourceManager; 0043 } 0044 0045 QPointer<KoDocumentResourceManager> resourceManager; 0046 }; 0047 0048 KoShapeControllerBase::KoShapeControllerBase() 0049 : d(new KoshapeControllerBasePrivate()) 0050 { 0051 } 0052 0053 KoShapeControllerBase::~KoShapeControllerBase() 0054 { 0055 delete d; 0056 } 0057 0058 KoShapeContainer* KoShapeControllerBase::createParentForShapes(const QList<KoShape*> shapes, KUndo2Command *parentCommand) 0059 { 0060 Q_UNUSED(parentCommand); 0061 Q_UNUSED(shapes); 0062 0063 return 0; 0064 } 0065 0066 KoDocumentResourceManager *KoShapeControllerBase::resourceManager() const 0067 { 0068 return d->resourceManager; 0069 } 0070 0071 QRectF KoShapeControllerBase::documentRect() const 0072 { 0073 const qreal pxToPt = 72.0 / pixelsPerInch(); 0074 0075 QTransform t = QTransform::fromScale(pxToPt, pxToPt); 0076 return t.mapRect(documentRectInPixels()); 0077 }