Coverage Report

Created: 2025-07-07 10:01

/src/libreoffice/sfx2/source/inc/appbaslib.hxx
Line
Count
Source (jump to first uncovered line)
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
#ifndef INCLUDED_SFX2_SOURCE_INC_APPBASLIB_HXX
21
#define INCLUDED_SFX2_SOURCE_INC_APPBASLIB_HXX
22
23
#include <svl/lstner.hxx>
24
25
#include <com/sun/star/script/XStorageBasedLibraryContainer.hpp>
26
#include <com/sun/star/embed/XStorage.hpp>
27
#include <vector>
28
29
class BasicManager;
30
31
/** helper class which holds and manipulates a BasicManager
32
*/
33
class SfxBasicManagerHolder final
34
    : public SfxListener
35
{
36
private:
37
    BasicManager*   mpBasicManager;
38
    css::uno::Reference< css::script::XStorageBasedLibraryContainer >
39
                    mxBasicContainer;
40
    css::uno::Reference< css::script::XStorageBasedLibraryContainer >
41
                    mxDialogContainer;
42
43
public:
44
    SfxBasicManagerHolder();
45
46
    enum ContainerType
47
    {
48
        SCRIPTS, DIALOGS
49
    };
50
51
    /** returns <TRUE/> if and only if the instance is currently bound to a non-<NULL/>
52
        BasicManager.
53
    */
54
0
    bool    isValid() const { return mpBasicManager != nullptr; }
55
56
    /** returns the BasicManager which this instance is currently bound to
57
    */
58
    BasicManager*
59
0
            get() const { return mpBasicManager; }
60
61
    /** binds the instance to the given BasicManager
62
    */
63
    void    reset( BasicManager* _pBasicManager );
64
65
    css::script::XStorageBasedLibraryContainer*
66
            getLibraryContainer( ContainerType _eType );
67
68
    /** calls the storeLibraries at both our script and basic library container
69
    */
70
    void    storeAllLibraries();
71
72
    /** calls the setStorage at all our XStorageBasedLibraryContainer.
73
    */
74
    void    setStorage(
75
                const css::uno::Reference< css::embed::XStorage >& _rxStorage
76
            );
77
78
    /** calls the storeLibrariesToStorage at all our XStorageBasedLibraryContainer.
79
    */
80
    void    storeLibrariesToStorage(
81
                const css::uno::Reference< css::embed::XStorage >& _rxStorage
82
            );
83
84
85
    /** checks if any modules in the SfxLibraryContainer exceed the binary
86
        limits.
87
    */
88
    bool ImgVersion12PsswdBinaryLimitExceeded( std::vector< OUString >& sModules );
89
90
    virtual void Notify(SfxBroadcaster& rBC, SfxHint const& rHint) override;
91
92
private:
93
    void    impl_releaseContainers();
94
};
95
96
#endif // INCLUDED_SFX2_SOURCE_INC_APPBASLIB_HXX
97
98
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */