5467411488
This reverts commitade0a153f4
"tdf#114287 xmloff: ODF import: fix text:list override of list style" and subsequent commits7cf5faec6f
and1b2a6b9829
. It turns out that there is actually a paragraph in ODF 1.2 and later that gives paragraph's indent priority over the list style's, which i unfortunately missed when investigating the above issues: 17.20 <style:list-level-label-alignment> ... The fo:text-indent and fo:margin-left attributes are evaluated only for paragraphs inside list items whose paragraph styles do not specify them. If one of the two properties, or both, are specified by the paragraph style, the text indent and/or left margin are taken from the paragraph style. In this case the paragraph style's properties are used to determine the indent and margin for the text lines and thus also the alignment position. This is usually interpreted as "on the same level", so applying a list-style at a paragraph style overrides the indents inherited from a parent paragraph style, but if the style then specifies its own indents that overrides the list style's indents. Furthermore it turns out that Google Docs now imports this bugdoc the same way as LO 7.5 does; unclear if that changed recently (it shows it like Word does in the preview, but like LO 7.5 does after opening it). This means the way MS Word imports the bugdoc, which remains unchanged, now looks like a bug and we should not change LO to be compatible with it (when the same structure is created in Word, storing to ODF and loading again, it looks different too). Change-Id: I0c65bde38de9e6fcbccec55899c60c3245adb5ba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/166309 Reviewed-by: Michael Stahl <michael.stahl@allotropia.de> Tested-by: Jenkins
77 lines
2.9 KiB
C++
77 lines
2.9 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/.
|
|
*
|
|
* This file incorporates work covered by the following license notice:
|
|
*
|
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
* contributor license agreements. See the NOTICE file distributed
|
|
* with this work for additional information regarding copyright
|
|
* ownership. The ASF licenses this file to you under the Apache
|
|
* License, Version 2.0 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <com/sun/star/container/XIndexReplace.hpp>
|
|
#include <xmloff/xmlictxt.hxx>
|
|
|
|
class XMLTextImportHelper;
|
|
|
|
class XMLTextListBlockContext : public SvXMLImportContext
|
|
{
|
|
XMLTextImportHelper& mrTxtImport;
|
|
|
|
css::uno::Reference< css::container::XIndexReplace > mxNumRules;
|
|
|
|
// text:style-name property of <list> element
|
|
OUString msListStyleName;
|
|
|
|
rtl::Reference<XMLTextListBlockContext> mxParentListBlock;
|
|
|
|
sal_Int16 mnLevel;
|
|
bool mbRestartNumbering;
|
|
bool mbSetDefaults;
|
|
|
|
// text:id property of <list> element, only valid for root <list> element
|
|
OUString msListId;
|
|
// text:continue-list property of <list> element, only valid for root <list> element
|
|
OUString msContinueListId;
|
|
|
|
public:
|
|
|
|
|
|
// add optional parameter <bRestartNumberingAtSubList>
|
|
XMLTextListBlockContext(
|
|
SvXMLImport& rImport,
|
|
XMLTextImportHelper& rTxtImp,
|
|
const css::uno::Reference< css::xml::sax::XFastAttributeList > & xAttrList,
|
|
const bool bRestartNumberingAtSubList = false );
|
|
virtual ~XMLTextListBlockContext() override;
|
|
|
|
virtual void SAL_CALL endFastElement(sal_Int32 nElement) override;
|
|
|
|
virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
|
|
sal_Int32 nElement,
|
|
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList ) override;
|
|
|
|
sal_Int16 GetLevel() const { return mnLevel; }
|
|
bool IsRestartNumbering() const { return mbRestartNumbering; }
|
|
void ResetRestartNumbering() { mbRestartNumbering = false; }
|
|
|
|
/// does this list have (possibly inherited from parent) list-style-name?
|
|
const css::uno::Reference < css::container::XIndexReplace >& GetNumRules() const
|
|
{ return mxNumRules; }
|
|
|
|
const OUString& GetListId() const { return msListId;}
|
|
const OUString& GetContinueListId() const { return msContinueListId;}
|
|
};
|
|
|
|
|
|
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|