]> Shamusworld >> Repos - architektonas/blob - src/actions/rs_actionlayerstogglelock.cpp
Changed RS_Graphic to Drawing; this is less confusing as a drawing is
[architektonas] / src / actions / rs_actionlayerstogglelock.cpp
1 /****************************************************************************
2 ** $Id: rs_actionlayerstogglelock.cpp 1062 2004-01-16 21:51:20Z andrew $
3 **
4 ** Copyright (C) 2001-2003 RibbonSoft. All rights reserved.
5 **
6 ** This file is part of the qcadlib Library project.
7 **
8 ** This file may be distributed and/or modified under the terms of the
9 ** GNU General Public License version 2 as published by the Free Software
10 ** Foundation and appearing in the file LICENSE.GPL included in the
11 ** packaging of this file.
12 **
13 ** Licensees holding valid qcadlib Professional Edition licenses may use
14 ** this file in accordance with the qcadlib Commercial License
15 ** Agreement provided with the Software.
16 **
17 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
18 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
19 **
20 ** See http://www.ribbonsoft.com for further details.
21 **
22 ** Contact info@ribbonsoft.com if any conditions of this licensing are
23 ** not clear to you.
24 **
25 **********************************************************************/
26
27 #include "rs_actionlayerstogglelock.h"
28
29 #include "drawing.h"
30
31
32
33 RS_ActionLayersToggleLock::RS_ActionLayersToggleLock(
34     RS_EntityContainer& container,
35     RS_GraphicView& graphicView)
36         :RS_ActionInterface("Toggle Layer Visibility",
37                     container, graphicView) {}
38
39
40 QAction* RS_ActionLayersToggleLock::createGUIAction(RS2::ActionType /*type*/, QObject* /*parent*/)
41 {
42         QAction * action = new QAction(tr("&Toggle Lock"), 0);
43 //      QAction* action = new QAction(tr("Toggle Layer Lock"),
44 //                                                                      tr("&Toggle Lock"),
45 //                                                                      QKeySequence(), NULL);
46         action->setStatusTip(tr("Toggle Lock"));
47         return action;
48 }
49
50 void RS_ActionLayersToggleLock::trigger()
51 {
52     RS_DEBUG->print("toggle layer");
53     if (graphic!=NULL) {
54         RS_Layer* layer = graphic->getActiveLayer();
55         if (layer!=NULL) {
56             graphic->toggleLayerLock(layer);
57
58             // deselect entities on locked layer:
59             if (layer->isLocked()) {
60                 for (RS_Entity* e=container->firstEntity(); e!=NULL;
61                         e=container->nextEntity()) {
62                     if (e!=NULL && e->isVisible() && e->getLayer()==layer) {
63
64                         if (graphicView!=NULL) {
65                             graphicView->deleteEntity(e);
66                         }
67
68                         e->setSelected(false);
69
70                         if (graphicView!=NULL) {
71                             graphicView->drawEntity(e);
72                         }
73                     }
74                 }
75             }
76         }
77
78     }
79     finish();
80 }
81
82
83
84 void RS_ActionLayersToggleLock::init(int status) {
85     RS_ActionInterface::init(status);
86     trigger();
87 }
88
89 // EOF