FreeCAD

Форк
0
/
ViewProviderDocumentObjectGroup.cpp 
95 строк · 3.7 Кб
1
/***************************************************************************
2
 *   Copyright (c) 2006 Werner Mayer <wmayer[at]users.sourceforge.net>     *
3
 *                                                                         *
4
 *   This file is part of the FreeCAD CAx development system.              *
5
 *                                                                         *
6
 *   This library is free software; you can redistribute it and/or         *
7
 *   modify it under the terms of the GNU Library General Public           *
8
 *   License as published by the Free Software Foundation; either          *
9
 *   version 2 of the License, or (at your option) any later version.      *
10
 *                                                                         *
11
 *   This library  is distributed in the hope that it will be useful,      *
12
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
13
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
14
 *   GNU Library General Public License for more details.                  *
15
 *                                                                         *
16
 *   You should have received a copy of the GNU Library General Public     *
17
 *   License along with this library; see the file COPYING.LIB. If not,    *
18
 *   write to the Free Software Foundation, Inc., 59 Temple Place,         *
19
 *   Suite 330, Boston, MA  02111-1307, USA                                *
20
 *                                                                         *
21
 ***************************************************************************/
22

23
#include "PreCompiled.h"
24

25
#include <App/DocumentObjectGroup.h>
26

27
#include "ViewProviderDocumentObjectGroup.h"
28
#include "Application.h"
29
#include "BitmapFactory.h"
30
#include "Document.h"
31

32

33
using namespace Gui;
34

35

36
PROPERTY_SOURCE_WITH_EXTENSIONS(Gui::ViewProviderDocumentObjectGroup, Gui::ViewProviderDocumentObject)
37

38

39
/**
40
 * Creates the view provider for an object group.
41
 */
42
ViewProviderDocumentObjectGroup::ViewProviderDocumentObjectGroup()
43
{
44
    ViewProviderGroupExtension::initExtension(this);
45

46
    sPixmap = "folder";
47
}
48

49
ViewProviderDocumentObjectGroup::~ViewProviderDocumentObjectGroup() = default;
50

51
std::vector<std::string> ViewProviderDocumentObjectGroup::getDisplayModes() const
52
{
53
    // empty
54
    return {};
55
}
56

57
bool ViewProviderDocumentObjectGroup::isShow() const
58
{
59
    return Visibility.getValue();
60
}
61

62
QIcon ViewProviderDocumentObjectGroup::getIcon() const
63
{
64
    return mergeGreyableOverlayIcons (Gui::BitmapFactory().iconFromTheme(sPixmap));
65
}
66

67
/**
68
 * Extracts the associated view providers of the objects of the associated object group group.
69
 */
70
void ViewProviderDocumentObjectGroup::getViewProviders(std::vector<ViewProviderDocumentObject*>& vp) const
71
{
72
    App::DocumentObject* doc = getObject();
73
    if (doc->isDerivedFrom<App::DocumentObjectGroup>()) {
74
        Gui::Document* gd = Application::Instance->getDocument(doc->getDocument());
75
        auto grp = static_cast<App::DocumentObjectGroup*>(doc);
76
        std::vector<App::DocumentObject*> obj = grp->getObjects();
77
        for (const auto & it : obj) {
78
            ViewProvider* v = gd->getViewProvider(it);
79
            if (v && v->isDerivedFrom<ViewProviderDocumentObject>())
80
                vp.push_back(static_cast<ViewProviderDocumentObject*>(v));
81
        }
82
    }
83
}
84

85

86
// Python feature -----------------------------------------------------------------------
87

88
namespace Gui {
89
/// @cond DOXERR
90
PROPERTY_SOURCE_TEMPLATE(Gui::ViewProviderDocumentObjectGroupPython, Gui::ViewProviderDocumentObjectGroup)
91
/// @endcond
92

93
// explicit template instantiation
94
template class GuiExport ViewProviderFeaturePythonT<ViewProviderDocumentObjectGroup>;
95
}
96

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.