Files
libreoffice/editeng/source/editeng/fieldupdater.cxx
Ashod Nakashian 2564ef96d2 Restored missing includes from source files.
These source files relied on pch to include
these missing headers (at least on Windows).

Also included the script used to find the
missing includes. The script is self-contained
and includes unittests. It detects superfluous
includes and required includes (which was used
to restore the includes in this patch).

Change-Id: I7ee09e5c712f42d5f6c3524898bc62dda78f5cc0
Reviewed-on: https://gerrit.libreoffice.org/18208
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
2015-09-03 08:19:36 +00:00

75 lines
2.4 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include "editeng/fieldupdater.hxx"
#include "editeng/flditem.hxx"
#include <editeng/edtdlg.hxx>
#include "editobj2.hxx"
#include <com/sun/star/text/textfield/Type.hpp>
using namespace com::sun::star;
namespace editeng {
class FieldUpdaterImpl
{
EditTextObjectImpl& mrObj;
public:
FieldUpdaterImpl(EditTextObject& rObj) : mrObj(*rObj.mpImpl) {}
FieldUpdaterImpl(const FieldUpdaterImpl& r) : mrObj(r.mrObj) {}
void updateTableFields(int nTab)
{
SfxItemPool* pPool = mrObj.GetPool();
EditTextObjectImpl::ContentInfosType& rContents = mrObj.GetContents();
for (size_t i = 0; i < rContents.size(); ++i)
{
ContentInfo& rContent = rContents[i];
ContentInfo::XEditAttributesType& rAttribs = rContent.GetAttribs();
for (size_t j = 0; j < rAttribs.size(); ++j)
{
XEditAttribute& rAttr = rAttribs[j];
const SfxPoolItem* pItem = rAttr.GetItem();
if (pItem->Which() != EE_FEATURE_FIELD)
// This is not a field item.
continue;
const SvxFieldItem* pFI = static_cast<const SvxFieldItem*>(pItem);
const SvxFieldData* pData = pFI->GetField();
if (pData->GetClassId() != text::textfield::Type::TABLE)
// This is not a table field.
continue;
// Create a new table field with the new ID, and set it to the
// attribute object.
SvxFieldItem aNewItem(SvxTableField(nTab), EE_FEATURE_FIELD);
rAttr.SetItem(pPool->Put(aNewItem));
}
}
}
};
FieldUpdater::FieldUpdater(EditTextObject& rObj) : mpImpl(new FieldUpdaterImpl(rObj)) {}
FieldUpdater::FieldUpdater(const FieldUpdater& r) : mpImpl(new FieldUpdaterImpl(*r.mpImpl)) {}
FieldUpdater::~FieldUpdater()
{
delete mpImpl;
}
void FieldUpdater::updateTableFields(int nTab)
{
mpImpl->updateTableFields(nTab);
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */