FreeCAD

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

24
#include "PreCompiled.h"
25

26
#include <App/DocumentObject.h>
27
#include <Mod/TechDraw/App/DrawLeaderLine.h>
28
#include <Mod/TechDraw/App/DrawViewBalloon.h>
29

30
#include "QGIView.h"
31
#include "ViewProviderAnnotation.h"
32

33

34
using namespace TechDrawGui;
35

36
PROPERTY_SOURCE(TechDrawGui::ViewProviderAnnotation, TechDrawGui::ViewProviderDrawingView)
37

38
//**************************************************************************
39
// Construction/Destruction
40

41
ViewProviderAnnotation::ViewProviderAnnotation() { sPixmap = "actions/TechDraw_Annotation"; }
42

43
ViewProviderAnnotation::~ViewProviderAnnotation() {}
44

45
void ViewProviderAnnotation::updateData(const App::Property* prop)
46
{
47
    if (prop == &(getViewObject()->Text) || prop == &(getViewObject()->Font)
48
        || prop == &(getViewObject()->TextColor) || prop == &(getViewObject()->TextSize)
49
        || prop == &(getViewObject()->LineSpace) || prop == &(getViewObject()->TextStyle)
50
        || prop == &(getViewObject()->MaxWidth)) {
51
        // redraw QGIVP
52
        QGIView* qgiv = getQView();
53
        if (qgiv) {
54
            qgiv->updateView(true);
55
        }
56
    }
57

58
    ViewProviderDrawingView::updateData(prop);
59
}
60

61
std::vector<App::DocumentObject*> ViewProviderAnnotation::claimChildren() const
62
{
63
    // Collect any child Document Objects and put them in the right place in the Feature tree
64
    // valid children of an Annotation are:
65
    //    - Balloons
66
    //    - Leaders
67
    std::vector<App::DocumentObject*> temp;
68
    const std::vector<App::DocumentObject*>& views = getViewObject()->getInList();
69
    try {
70
        for (std::vector<App::DocumentObject*>::const_iterator it = views.begin();
71
             it != views.end(); ++it) {
72
            if ((*it)->isDerivedFrom<TechDraw::DrawViewBalloon>()) {
73
                temp.push_back((*it));
74
            }
75
            else if ((*it)->isDerivedFrom<TechDraw::DrawLeaderLine>()) {
76
                temp.push_back((*it));
77
            }
78
        }
79
        return temp;
80
    }
81
    catch (...) {
82
        return std::vector<App::DocumentObject*>();
83
    }
84
}
85

86
TechDraw::DrawViewAnnotation* ViewProviderAnnotation::getViewObject() const
87
{
88
    return dynamic_cast<TechDraw::DrawViewAnnotation*>(pcObject);
89
}
90

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

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

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

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