1
/***************************************************************************
2
* Copyright (c) 2006 Werner Mayer <wmayer[at]users.sourceforge.net> *
4
* This file is part of the FreeCAD CAx development system. *
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. *
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. *
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 *
21
***************************************************************************/
23
#include "PreCompiled.h"
25
#include <App/DocumentObjectGroup.h>
27
#include "ViewProviderDocumentObjectGroup.h"
28
#include "Application.h"
29
#include "BitmapFactory.h"
36
PROPERTY_SOURCE_WITH_EXTENSIONS(Gui::ViewProviderDocumentObjectGroup, Gui::ViewProviderDocumentObject)
40
* Creates the view provider for an object group.
42
ViewProviderDocumentObjectGroup::ViewProviderDocumentObjectGroup()
44
ViewProviderGroupExtension::initExtension(this);
49
ViewProviderDocumentObjectGroup::~ViewProviderDocumentObjectGroup() = default;
51
std::vector<std::string> ViewProviderDocumentObjectGroup::getDisplayModes() const
57
bool ViewProviderDocumentObjectGroup::isShow() const
59
return Visibility.getValue();
62
QIcon ViewProviderDocumentObjectGroup::getIcon() const
64
return mergeGreyableOverlayIcons (Gui::BitmapFactory().iconFromTheme(sPixmap));
68
* Extracts the associated view providers of the objects of the associated object group group.
70
void ViewProviderDocumentObjectGroup::getViewProviders(std::vector<ViewProviderDocumentObject*>& vp) const
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));
86
// Python feature -----------------------------------------------------------------------
90
PROPERTY_SOURCE_TEMPLATE(Gui::ViewProviderDocumentObjectGroupPython, Gui::ViewProviderDocumentObjectGroup)
93
// explicit template instantiation
94
template class GuiExport ViewProviderFeaturePythonT<ViewProviderDocumentObjectGroup>;