~ubuntu-branches/ubuntu/saucy/librecad/saucy

« back to all changes in this revision

Viewing changes to librecad/src/actions/rs_actioninfoinside.cpp

  • Committer: Package Import Robot
  • Author(s): Scott Howard
  • Date: 2013-09-13 21:52:29 UTC
  • mfrom: (1.1.7) (5.2.7 experimental)
  • Revision ID: package-import@ubuntu.com-20130913215229-b18g6qjb8nacro28
Tags: 2.0.0~rc2+nolibs-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/****************************************************************************
 
2
**
 
3
** This file is part of the LibreCAD project, a 2D CAD program
 
4
**
 
5
** Copyright (C) 2010 R. van Twisk (librecad@rvt.dds.nl)
 
6
** Copyright (C) 2001-2003 RibbonSoft. All rights reserved.
 
7
**
 
8
**
 
9
** This file may be distributed and/or modified under the terms of the
 
10
** GNU General Public License version 2 as published by the Free Software
 
11
** Foundation and appearing in the file gpl-2.0.txt included in the
 
12
** packaging of this file.
 
13
**
 
14
** This program is distributed in the hope that it will be useful,
 
15
** but WITHOUT ANY WARRANTY; without even the implied warranty of
 
16
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
17
** GNU General Public License for more details.
 
18
**
 
19
** You should have received a copy of the GNU General Public License
 
20
** along with this program; if not, write to the Free Software
 
21
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 
22
**
 
23
** This copyright notice MUST APPEAR in all copies of the script!
 
24
**
 
25
**********************************************************************/
 
26
 
 
27
#include "rs_actioninfoinside.h"
 
28
 
 
29
#include <QAction>
 
30
#include "rs_dialogfactory.h"
 
31
#include "rs_graphicview.h"
 
32
#include "rs_information.h"
 
33
 
 
34
 
 
35
 
 
36
RS_ActionInfoInside::RS_ActionInfoInside(RS_EntityContainer& container,
 
37
        RS_GraphicView& graphicView)
 
38
        :RS_ActionInterface("Info Inside",
 
39
                    container, graphicView) {
 
40
 
 
41
    contour = new RS_EntityContainer(NULL, false);
 
42
 
 
43
    for (RS_Entity* e=container.firstEntity(); e!=NULL;
 
44
            e=container.nextEntity()) {
 
45
        if (e->isSelected()) {
 
46
            contour->addEntity(e);
 
47
        }
 
48
    }
 
49
}
 
50
 
 
51
 
 
52
RS_ActionInfoInside::~RS_ActionInfoInside() {
 
53
    delete contour;
 
54
}
 
55
 
 
56
 
 
57
QAction* RS_ActionInfoInside::createGUIAction(RS2::ActionType /*type*/, QObject* /*parent*/) {
 
58
/* RVT_PORT    QAction* action = new QAction(tr("Point inside contour"),
 
59
                                  tr("&Point inside contour"),
 
60
                                  QKeySequence(), NULL); */
 
61
    QAction* action = new QAction(tr("Point inside contour"), NULL);
 
62
    //action->zetStatusTip(tr("Checks if a given point is inside the selected contour"));
 
63
 
 
64
    return action;
 
65
}
 
66
 
 
67
void RS_ActionInfoInside::trigger() {
 
68
    bool onContour = false;
 
69
    if (RS_Information::isPointInsideContour(pt, contour, &onContour)) {
 
70
        RS_DIALOGFACTORY->commandMessage(tr("Point is inside selected contour."));
 
71
    } else {
 
72
        RS_DIALOGFACTORY->commandMessage(tr("Point is outside selected contour."));
 
73
    }
 
74
    finish(false);
 
75
}
 
76
 
 
77
 
 
78
 
 
79
void RS_ActionInfoInside::mouseMoveEvent(QMouseEvent* /*e*/) {
 
80
    //RS_Vector mouse = snapPoint(e);
 
81
    //bool onContour = false;
 
82
    /*if (RS_Information::isPointInsideContour(mouse, contour, &onContour)) {
 
83
    } else {
 
84
    }*/
 
85
}
 
86
 
 
87
 
 
88
 
 
89
void RS_ActionInfoInside::mouseReleaseEvent(QMouseEvent* e) {
 
90
    if (e->button()==Qt::RightButton) {
 
91
        init(getStatus()-1);
 
92
    } else {
 
93
        pt = snapPoint(e);
 
94
        trigger();
 
95
    }
 
96
}
 
97
 
 
98
 
 
99
 
 
100
void RS_ActionInfoInside::updateMouseButtonHints() {
 
101
    switch (getStatus()) {
 
102
    case 0:
 
103
        RS_DIALOGFACTORY->updateMouseWidget(tr("Specify point"),
 
104
                                            tr("Cancel"));
 
105
        break;
 
106
    default:
 
107
        RS_DIALOGFACTORY->updateMouseWidget("", "");
 
108
        break;
 
109
    }
 
110
}
 
111
 
 
112
 
 
113
 
 
114
void RS_ActionInfoInside::updateMouseCursor() {
 
115
    graphicView->setMouseCursor(RS2::CadCursor);
 
116
}
 
117
 
 
118
 
 
119
 
 
120
//void RS_ActionInfoInside::updateToolBar() {
 
121
//    if (RS_DIALOGFACTORY!=NULL) {
 
122
//        if (isFinished()) {
 
123
//            RS_DIALOGFACTORY->resetToolBar();
 
124
//        }
 
125
//    }
 
126
//}
 
127
        // EOF