libs/flake

KoShapeManagerPaintingStrategy.cpp

Go to the documentation of this file.
00001 /* This file is part of the KDE project
00002 
00003    Copyright (C) 2007,2009 Thorsten Zachmann <zachmann@kde.org>
00004 
00005    This library is free software; you can redistribute it and/or
00006    modify it under the terms of the GNU Library General Public
00007    License as published by the Free Software Foundation; either
00008    version 2 of the License, or (at your option) any later version.
00009 
00010    This library is distributed in the hope that it will be useful,
00011    but WITHOUT ANY WARRANTY; without even the implied warranty of
00012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013    Library General Public License for more details.
00014 
00015    You should have received a copy of the GNU Library General Public License
00016    along with this library; see the file COPYING.LIB.  If not, write to
00017    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
00018  * Boston, MA 02110-1301, USA.
00019 */
00020 
00021 #include "KoShapeManagerPaintingStrategy.h"
00022 
00023 #include "KoShape.h"
00024 #include "KoShapeManager.h"
00025 #include <QPainter>
00026 
00027 class KoShapeManagerPaintingStrategy::Private
00028 {
00029 public:
00030     Private(KoShapeManager * manager)
00031     : shapeManager(manager)
00032     {}
00033 
00034     KoShapeManager * shapeManager;
00035 };
00036 
00037 KoShapeManagerPaintingStrategy::KoShapeManagerPaintingStrategy(KoShapeManager * shapeManager)
00038 : d(new KoShapeManagerPaintingStrategy::Private(shapeManager))
00039 {
00040 }
00041 
00042 KoShapeManagerPaintingStrategy::~KoShapeManagerPaintingStrategy()
00043 {
00044     delete d;
00045 }
00046 
00047 void KoShapeManagerPaintingStrategy::paint(KoShape * shape, QPainter &painter, const KoViewConverter &converter, bool forPrint)
00048 {
00049     painter.save();
00050     painter.setMatrix(shape->absoluteTransformation(&converter) * painter.matrix());
00051 
00052     if (d->shapeManager) {
00053         d->shapeManager->paintShape(shape, painter, converter, forPrint);
00054     }
00055 
00056     painter.restore();  // for the matrix
00057 }
00058 
00059 void KoShapeManagerPaintingStrategy::adapt(KoShape * shape, QRectF & rect)
00060 {
00061     Q_UNUSED(shape);
00062     Q_UNUSED(rect);
00063 }
00064 
00065 void KoShapeManagerPaintingStrategy::setShapeManager(KoShapeManager * shapeManager)
00066 {
00067     d->shapeManager = shapeManager;
00068 }
00069 
00070 KoShapeManager * KoShapeManagerPaintingStrategy::shapeManager()
00071 {
00072     return d->shapeManager;
00073 }