/* -*- 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 . */ #ifndef INCLUDED_XMLOFF_SOURCE_DRAW_SDXMLEXP_IMPL_HXX #define INCLUDED_XMLOFF_SOURCE_DRAW_SDXMLEXP_IMPL_HXX #include #include #include #include #include #include namespace tools { class Rectangle; } class ImpXMLEXPPageMasterInfo; class ImpXMLAutoLayoutInfo; class XMLSdPropHdlFactory; class XMLShapeExportPropertyMapper; class XMLPageExportPropertyMapper; typedef ::std::vector< ImpXMLEXPPageMasterInfo* > ImpXMLEXPPageMasterList; typedef ::std::vector< ImpXMLAutoLayoutInfo* > ImpXMLAutoLayoutInfoList; enum XmlPlaceholder { XmlPlaceholderTitle, XmlPlaceholderOutline, XmlPlaceholderSubtitle, XmlPlaceholderGraphic, XmlPlaceholderObject, XmlPlaceholderChart, XmlPlaceholderTable, XmlPlaceholderPage, XmlPlaceholderNotes, XmlPlaceholderHandout, XmlPlaceholderVerticalTitle, XmlPlaceholderVerticalOutline }; typedef std::set SdXMLFormatMap; struct HeaderFooterPageSettingsImpl { OUString maStrHeaderDeclName; OUString maStrFooterDeclName; OUString maStrDateTimeDeclName; }; struct DateTimeDeclImpl { OUString maStrText; bool mbFixed; sal_Int32 mnFormat; }; class SdXMLExport : public SvXMLExport { css::uno::Reference< css::container::XNameAccess > mxDocStyleFamilies; css::uno::Reference< css::container::XIndexAccess > mxDocMasterPages; css::uno::Reference< css::container::XIndexAccess > mxDocDrawPages; sal_Int32 mnDocMasterPageCount; sal_Int32 mnDocDrawPageCount; sal_uInt32 mnObjectCount; // temporary infos ImpXMLEXPPageMasterList* mpPageMasterInfoList; ImpXMLEXPPageMasterList* mpPageMasterUsageList; ImpXMLEXPPageMasterList* mpNotesPageMasterUsageList; ImpXMLEXPPageMasterInfo* mpHandoutPageMaster; ImpXMLAutoLayoutInfoList* mpAutoLayoutInfoList; css::uno::Sequence< OUString > maDrawPagesAutoLayoutNames; ::std::vector< OUString > maDrawPagesStyleNames; ::std::vector< OUString > maDrawNotesPagesStyleNames; ::std::vector< OUString > maMasterPagesStyleNames; OUString maHandoutMasterStyleName; ::std::vector< HeaderFooterPageSettingsImpl > maDrawPagesHeaderFooterSettings; ::std::vector< HeaderFooterPageSettingsImpl > maDrawNotesPagesHeaderFooterSettings; ::std::vector< OUString > maHeaderDeclsVector; ::std::vector< OUString > maFooterDeclsVector; ::std::vector< DateTimeDeclImpl > maDateTimeDeclsVector; HeaderFooterPageSettingsImpl maHandoutPageHeaderFooterSettings; rtl::Reference mpSdPropHdlFactory; rtl::Reference mpPropertySetMapper; rtl::Reference mpPresPagePropsMapper; SdXMLFormatMap maUsedDateStyles; // this is a vector with the used formattings for date fields SdXMLFormatMap maUsedTimeStyles; // this is a vector with the used formattings for time fields bool mbIsDraw; const OUString msPageLayoutNames; virtual void ExportStyles_(bool bUsed) override; virtual void ExportAutoStyles_() override; virtual void ExportFontDecls_() override; virtual void ExportMasterStyles_() override; virtual void ExportContent_() override; virtual void ExportMeta_() override; ImpXMLEXPPageMasterInfo* ImpGetOrCreatePageMasterInfo( const css::uno::Reference< css::drawing::XDrawPage >& xMasterPage ); void ImpPrepPageMasterInfos(); void ImpWritePageMasterInfos(); void ImpPrepAutoLayoutInfos(); HeaderFooterPageSettingsImpl ImpPrepDrawPageHeaderFooterDecls( const css::uno::Reference< css::drawing::XDrawPage >& xDrawPage ); ImpXMLEXPPageMasterInfo* ImpGetPageMasterInfoByName(const OUString& rName); void ImpPrepDrawPageInfos(); void ImpPrepMasterPageInfos(); void ImpWritePresentationStyles(); OUString ImpCreatePresPageStyleName( const css::uno::Reference& xDrawPage, bool bExportBackground = true ); bool ImpPrepAutoLayoutInfo(const css::uno::Reference< css::drawing::XDrawPage >& xPage, OUString& rName); void ImpWriteAutoLayoutInfos(); void ImpWriteAutoLayoutPlaceholder(XmlPlaceholder ePl, const tools::Rectangle& rRect); void ImpWriteHeaderFooterDecls(); void ImplExportHeaderFooterDeclAttributes( const HeaderFooterPageSettingsImpl& aSettings ); void exportFormsElement( const css::uno::Reference< css::drawing::XDrawPage >& xDrawPage ); void exportPresentationSettings(); // #82003# helper function for recursive object count sal_uInt32 ImpRecursiveObjectCount( const css::uno::Reference< css::drawing::XShapes >& xShapes); OUString getNavigationOrder( const css::uno::Reference< css::drawing::XDrawPage >& xDrawPage ); void collectAnnotationAutoStyles( const css::uno::Reference< css::drawing::XDrawPage >& xDrawPage ); void exportAnnotations( const css::uno::Reference< css::drawing::XDrawPage >& xDrawPage ); protected: virtual void GetViewSettings(css::uno::Sequence& aProps) override; virtual void GetConfigurationSettings(css::uno::Sequence& aProps) override; virtual XMLFontAutoStylePool* CreateFontAutoStylePool() override; public: SdXMLExport( const css::uno::Reference< css::uno::XComponentContext >& xContext, OUString const & implementationName, bool bIsDraw, SvXMLExportFlags nExportFlags ); virtual ~SdXMLExport() override; // XExporter virtual void SAL_CALL setSourceDocument( const css::uno::Reference< css::lang::XComponent >& xDoc ) override; // get factories and mappers XMLShapeExportPropertyMapper* GetPropertySetMapper() const { return mpPropertySetMapper.get(); } XMLPageExportPropertyMapper* GetPresPagePropsMapper() const { return mpPresPagePropsMapper.get(); } bool IsDraw() const { return mbIsDraw; } bool IsImpress() const { return !mbIsDraw; } virtual void addDataStyle(const sal_Int32 nNumberFormat, bool bTimeFormat = false ) override; virtual void exportDataStyles() override; virtual void exportAutoDataStyles() override; virtual OUString getDataStyleName(const sal_Int32 nNumberFormat, bool bTimeFormat = false ) const override; }; #endif // _SDXMLEXP_HXX /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ n> LibreOffice 核心代码仓库文档基金会
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2023-02-16 10:42:06 +0000
committerCaolán McNamara <caolanm@redhat.com>2023-02-16 15:13:21 +0000
commit0908c7c1184ab7acb7b6f6740a82c2f12c296fae (patch)
tree7bfe09dce871f6f2bc59a81b689d7ab5a3a6f3ea /sc/source/ui/unoobj/dispuno.cxx
parente71080e19365aa074c56d1136dad2b09783949a2 (diff)
SfxViewShell::GetViewFrame never returns null, change to a reference
various null checks can be seen to be redundant and removed Change-Id: Icf49c1de4b0302795d2769a370af3abceaad0221 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147147 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sc/source/ui/unoobj/dispuno.cxx')