Warning, file /office/calligra/libs/text/KoTextReference.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /* This file is part of the KDE project
0002  * Copyright (C) 2007 Thomas Zander <zander@kde.org>
0003  *
0004  * This library is free software; you can redistribute it and/or
0005  * modify it under the terms of the GNU Library General Public
0006  * License as published by the Free Software Foundation; either
0007  * version 2 of the License, or (at your option) any later version.
0008  *
0009  * This library is distributed in the hope that it will be useful,
0010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
0011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
0012  * Library General Public License for more details.
0013  *
0014  * You should have received a copy of the GNU Library General Public License
0015  * along with this library; see the file COPYING.LIB.  If not, write to
0016  * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
0017  * Boston, MA 02110-1301, USA.
0018  */
0019 
0020 #include "KoTextReference.h"
0021 
0022 #include "KoTextLocator.h"
0023 #include "KoInlineTextObjectManager.h"
0024 
0025 // Include Q_UNSUSED classes, for building on Windows
0026 #include <KoShapeLoadingContext.h>
0027 #include <KoShapeSavingContext.h>
0028 #include <KoXmlReader.h>
0029 
0030 KoTextReference::KoTextReference(int indexId)
0031         : KoVariable(),
0032         m_indexId(indexId)
0033 {
0034 }
0035 
0036 KoTextReference::~KoTextReference()
0037 {
0038     KoTextLocator *loc = locator();
0039     if (loc)
0040         loc->removeListener(this);
0041 }
0042 
0043 void KoTextReference::variableMoved(const QTextDocument *document, int posInDocument)
0044 {
0045     Q_UNUSED(document);
0046     Q_UNUSED(posInDocument);
0047     Q_ASSERT(manager());
0048     KoTextLocator *loc = locator();
0049     if (loc)
0050         setValue(QString::number(loc->pageNumber()));
0051     else
0052         setValue("NOREF"); // anything smarter to point to a broken reference?
0053 }
0054 
0055 void KoTextReference::setup()
0056 {
0057     locator()->addListener(this);
0058     variableMoved(0, 0);
0059 }
0060 
0061 KoTextLocator* KoTextReference::locator()
0062 {
0063     return dynamic_cast<KoTextLocator*>(manager()->inlineTextObject(m_indexId));
0064 }
0065 
0066 bool KoTextReference::loadOdf(const KoXmlElement &element, KoShapeLoadingContext &context)
0067 {
0068     Q_UNUSED(element);
0069     Q_UNUSED(context);
0070     // TODO
0071     return false;
0072 }
0073 
0074 void KoTextReference::saveOdf(KoShapeSavingContext &context)
0075 {
0076     Q_UNUSED(context);
0077     // TODO
0078 }