1 /****************************************************************************
2 ** $Id: rs_actionlayerstogglelock.cpp 1062 2004-01-16 21:51:20Z andrew $
4 ** Copyright (C) 2001-2003 RibbonSoft. All rights reserved.
6 ** This file is part of the qcadlib Library project.
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.
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.
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.
20 ** See http://www.ribbonsoft.com for further details.
22 ** Contact info@ribbonsoft.com if any conditions of this licensing are
25 **********************************************************************/
27 #include "rs_actionlayerstogglelock.h"
29 #include "rs_graphic.h"
33 RS_ActionLayersToggleLock::RS_ActionLayersToggleLock(
34 RS_EntityContainer& container,
35 RS_GraphicView& graphicView)
36 :RS_ActionInterface("Toggle Layer Visibility",
37 container, graphicView) {}
40 QAction* RS_ActionLayersToggleLock::createGUIAction(RS2::ActionType /*type*/, QObject* /*parent*/)
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"));
50 void RS_ActionLayersToggleLock::trigger()
52 RS_DEBUG->print("toggle layer");
54 RS_Layer* layer = graphic->getActiveLayer();
56 graphic->toggleLayerLock(layer);
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) {
64 if (graphicView!=NULL) {
65 graphicView->deleteEntity(e);
68 e->setSelected(false);
70 if (graphicView!=NULL) {
71 graphicView->drawEntity(e);
84 void RS_ActionLayersToggleLock::init(int status) {
85 RS_ActionInterface::init(status);