]> Shamusworld >> Repos - architektonas/blobdiff - src/base/rs_selection.cpp
Adding missing implementation.
[architektonas] / src / base / rs_selection.cpp
index 14e8153fbae53e2dc4b4d22be8e65305e6a121e4..60863ca1fc36e5ca0aa86ccae747311abdddb603 100644 (file)
@@ -1,19 +1,35 @@
+// rs_selection.cpp
+//
+// Part of the Architektonas Project
+// Originally part of QCad Community Edition by Andrew Mustun
+// Extensively rewritten and refactored by James L. Hammons
+// Portions copyright (C) 2001-2003 RibbonSoft
+// Copyright (C) 2010 Underground Software
+// See the README and GPLv2 files for licensing and warranty information
+//
+// JLH = James L. Hammons <jlhamm@acm.org>
+//
+// Who  When        What
+// ---  ----------  -----------------------------------------------------------
+// JLH  06/02/2010  Added this text. :-)
+//
 
 #include "rs_selection.h"
 
+#include "drawing.h"
+#include "rs_entity.h"
+#include "graphicview.h"
 #include "rs_information.h"
 #include "rs_polyline.h"
-#include "rs_entity.h"
-#include "rs_graphic.h"
 
 /**
  * Default constructor.
  *
  * @param container The container to which we will add
- *        entities. Usually that's an RS_Graphic entity but
+ *        entities. Usually that's an Drawing entity but
  *        it can also be a polyline, text, ...
  */
-RS_Selection::RS_Selection(RS_EntityContainer & container, RS_GraphicView * graphicView)
+RS_Selection::RS_Selection(RS_EntityContainer & container, GraphicView * graphicView)
 {
        this->container = &container;
        this->graphicView = graphicView;
@@ -25,7 +41,7 @@ RS_Selection::RS_Selection(RS_EntityContainer & container, RS_GraphicView * grap
  */
 void RS_Selection::selectSingle(RS_Entity * e)
 {
-       if (e != NULL && (e->getLayer() == NULL || e->getLayer()->isLocked() == false))
+       if (e && (e->getLayer() == NULL || e->getLayer()->isLocked() == false))
        {
 // Same problem as below...
 //[WAS]#warning "!!! This is causing a segfault in the draw code !!!"
@@ -67,6 +83,11 @@ void RS_Selection::selectAll(bool select)
                graphicView->redraw();
 }
 
+void RS_Selection::deselectAll()
+{
+       selectAll(false);
+}
+
 /**
  * Selects all entities on visible layers.
  */
@@ -111,6 +132,11 @@ void RS_Selection::selectWindow(const Vector & v1, const Vector & v2, bool selec
                graphicView->redraw();
 }
 
+void RS_Selection::deselectWindow(const Vector & v1, const Vector & v2)
+{
+       selectWindow(v1, v2, false);
+}
+
 /**
  * Selects all entities that are intersected by the given line.
  *
@@ -171,6 +197,11 @@ void RS_Selection::selectIntersected(const Vector & v1, const Vector & v2, bool
        }
 }
 
+void RS_Selection::deselectIntersected(const Vector & v1, const Vector & v2)
+{
+       selectIntersected(v1, v2, false);
+}
+
 /**
  * Selects all entities that are connected to the given entity.
  *
@@ -294,3 +325,8 @@ void RS_Selection::selectLayer(const QString & layerName, bool select)
                }
        }
 }
+
+void RS_Selection::deselectLayer(QString & layerName)
+{
+       selectLayer(layerName, false);
+}