Coverage Report

Created: 2026-03-31 11:00

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/libreoffice/sc/inc/xmlwrap.hxx
Line
Count
Source
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2
/*
3
 * This file is part of the LibreOffice project.
4
 *
5
 * This Source Code Form is subject to the terms of the Mozilla Public
6
 * License, v. 2.0. If a copy of the MPL was not distributed with this
7
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
 *
9
 * This file incorporates work covered by the following license notice:
10
 *
11
 *   Licensed to the Apache Software Foundation (ASF) under one or more
12
 *   contributor license agreements. See the NOTICE file distributed
13
 *   with this work for additional information regarding copyright
14
 *   ownership. The ASF licenses this file to you under the Apache
15
 *   License, Version 2.0 (the "License"); you may not use this file
16
 *   except in compliance with the License. You may obtain a copy of
17
 *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
18
 */
19
20
#pragma once
21
22
#include <com/sun/star/uno/Reference.hxx>
23
#include "importfilterdata.hxx"
24
25
#include <comphelper/errcode.hxx>
26
27
namespace com::sun::star {
28
    namespace beans { struct PropertyValue; }
29
    namespace frame { class XModel; }
30
    namespace task { class XStatusIndicator; }
31
    namespace uno { class XComponentContext; }
32
    namespace uno { template <class E> class Sequence; }
33
    namespace embed { class XStorage; }
34
    namespace xml {
35
        namespace sax { struct InputSource; class XWriter; }
36
    }
37
}
38
39
class ScDocument;
40
class SfxMedium;
41
class ScMySharedData;
42
class ScDocShell;
43
44
enum class ImportFlags {
45
    Styles   = 0x01,
46
    Content  = 0x02,
47
    Metadata = 0x04,
48
    Settings = 0x08,
49
    All      = Styles | Content | Metadata | Settings
50
};
51
namespace o3tl
52
{
53
    template<> struct typed_flags<ImportFlags> : is_typed_flags<ImportFlags, 0x0f> {};
54
}
55
56
57
class ScXMLImportWrapper
58
{
59
    sc::ImportPostProcessData maPostProcessData;
60
61
    ScDocShell& mrDocShell;
62
    ScDocument&     rDoc;
63
    SfxMedium*      pMedium;
64
    css::uno::Reference< css::embed::XStorage > xStorage;
65
66
    std::unordered_map<OString, OUString> maEmbeddedFontFiles;
67
68
    css::uno::Reference< css::task::XStatusIndicator> GetStatusIndicator() const;
69
70
    ErrCodeMsg ImportFromComponent(const css::uno::Reference<css::uno::XComponentContext>& xContext,
71
        const css::uno::Reference<css::frame::XModel>& xModel,
72
        css::xml::sax::InputSource& aParserInput,
73
        const OUString& sComponentName, const OUString& sDocName,
74
        const css::uno::Sequence<css::uno::Any>& aArgs,
75
        bool bMustBeSuccessful);
76
77
    bool ExportToComponent(const css::uno::Reference<css::uno::XComponentContext>& xContext,
78
        const css::uno::Reference<css::frame::XModel>& xModel,
79
        const css::uno::Reference<css::xml::sax::XWriter>& xWriter,
80
        const css::uno::Sequence<css::beans::PropertyValue>& aDescriptor,
81
        const OUString& sName, const OUString& sMediaType, const OUString& sComponentName,
82
        const css::uno::Sequence<css::uno::Any>& aArgs,
83
        std::unique_ptr<ScMySharedData>& pSharedData);
84
85
public:
86
87
    ScXMLImportWrapper(
88
        ScDocShell& rDocSh, SfxMedium* pM, css::uno::Reference<css::embed::XStorage> xStor );
89
90
    bool Import( ImportFlags nMode, ErrCodeMsg& rError );
91
    bool Export(bool bStylesOnly);
92
93
0
    const sc::ImportPostProcessData& GetImportPostProcessData() const { return maPostProcessData;}
94
};
95
96
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */