File indexing completed on 2024-05-12 15:56:51

0001 /* This file is part of the KDE project
0002  * SPDX-FileCopyrightText: 2006, 2009-2010 Thomas Zander <zander@kde.org>
0003  *
0004  * SPDX-License-Identifier: LGPL-2.0-or-later
0005  */
0006 
0007 #include "KoTextShapeDataBase.h"
0008 #include "KoTextShapeDataBase_p.h"
0009 
0010 #include <QTextDocument>
0011 
0012 KoTextShapeDataBasePrivate::KoTextShapeDataBasePrivate()
0013         : textAlignment(Qt::AlignLeft | Qt::AlignTop)
0014         , resizeMethod(KoTextShapeDataBase::NoResize)
0015 {
0016 }
0017 
0018 KoTextShapeDataBasePrivate::KoTextShapeDataBasePrivate(const KoTextShapeDataBasePrivate &rhs)
0019     : document(rhs.document->clone()),
0020       margins(rhs.margins),
0021       textAlignment(rhs.textAlignment),
0022       resizeMethod(rhs.resizeMethod)
0023 {
0024 }
0025 
0026 KoTextShapeDataBasePrivate::~KoTextShapeDataBasePrivate()
0027 {
0028 }
0029 
0030 KoTextShapeDataBase::KoTextShapeDataBase(KoTextShapeDataBasePrivate *dd)
0031     : d_ptr(dd)
0032 {
0033 }
0034 
0035 KoTextShapeDataBase::~KoTextShapeDataBase()
0036 {
0037     delete d_ptr;
0038 }
0039 
0040 QTextDocument *KoTextShapeDataBase::document() const
0041 {
0042     Q_D(const KoTextShapeDataBase);
0043     return d->document.data();
0044 }
0045 
0046 void KoTextShapeDataBase::setShapeMargins(const KoInsets &margins)
0047 {
0048     Q_D(KoTextShapeDataBase);
0049     d->margins = margins;
0050 }
0051 
0052 KoInsets KoTextShapeDataBase::shapeMargins() const
0053 {
0054     Q_D(const KoTextShapeDataBase);
0055     return d->margins;
0056 }
0057 
0058 void KoTextShapeDataBase::setVerticalAlignment(Qt::Alignment alignment)
0059 {
0060     Q_D(KoTextShapeDataBase);
0061     d->textAlignment = (d->textAlignment & Qt::AlignHorizontal_Mask)
0062         | (alignment & Qt::AlignVertical_Mask);
0063 }
0064 
0065 Qt::Alignment KoTextShapeDataBase::verticalAlignment() const
0066 {
0067     Q_D(const KoTextShapeDataBase);
0068     return d->textAlignment & Qt::AlignVertical_Mask;
0069 }
0070 
0071 void KoTextShapeDataBase::setResizeMethod(KoTextShapeDataBase::ResizeMethod method)
0072 {
0073     Q_D(KoTextShapeDataBase);
0074     if (d->resizeMethod == method)
0075         return;
0076     d->resizeMethod = method;
0077 }
0078 
0079 KoTextShapeDataBase::ResizeMethod KoTextShapeDataBase::resizeMethod() const
0080 {
0081     Q_D(const KoTextShapeDataBase);
0082     return d->resizeMethod;
0083 }