]> Shamusworld >> Repos - architektonas/blobdiff - src/base/rs_selection.cpp
Fixed Library Browser...
[architektonas] / src / base / rs_selection.cpp
index 046775b7375540cca4f04c325f7631f02fd7fd83..d2ab97d69e7514078ded5051ac480729846d70e9 100644 (file)
@@ -3,7 +3,9 @@
 // Part of the Architektonas Project
 // Originally part of QCad Community Edition by Andrew Mustun
 // Extensively rewritten and refactored by James L. Hammons
-// (C) 2010 Underground Software
+// 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>
 //
 
 #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 "drawing.h"
 
 /**
  * Default constructor.
@@ -26,7 +29,7 @@
  *        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;
@@ -38,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 !!!"
@@ -151,44 +154,47 @@ void RS_Selection::selectIntersected(const Vector & v1, const Vector & v2, bool
        //for (uint i=0; i<container->count(); ++i) {
                //RS_Entity* e = container->entityAt(i);
 
-               if (e!=NULL && e->isVisible()) {
-
+               if (e!=NULL && e->isVisible())
+               {
                        inters = false;
 
                        // select containers / groups:
-                       if (e->isContainer()) {
-                               RS_EntityContainer* ec = (RS_EntityContainer*)e;
-
-                               for (RS_Entity* e2=ec->firstEntity(RS2::ResolveAll); e2!=NULL;
-                                               e2=ec->nextEntity(RS2::ResolveAll)) {
+                       if (e->isContainer())
+                       {
+                               RS_EntityContainer * ec = (RS_EntityContainer *)e;
 
-                                       VectorSolutions sol =
-                                               RS_Information::getIntersection(&line, e2, true);
+                               for(RS_Entity * e2=ec->firstEntity(RS2::ResolveAll); e2!=NULL;
+                                       e2=ec->nextEntity(RS2::ResolveAll))
+                               {
+                                       VectorSolutions sol = RS_Information::getIntersection(&line, e2, true);
 
-                                       if (sol.hasValid()) {
+                                       if (sol.hasValid())
                                                inters = true;
-                                       }
                                }
-                       } else {
-
-                               VectorSolutions sol =
-                                       RS_Information::getIntersection(&line, e, true);
+                       }
+                       else
+                       {
+                               VectorSolutions sol = RS_Information::getIntersection(&line, e, true);
 
-                               if (sol.hasValid()) {
+                               if (sol.hasValid())
                                        inters = true;
-                               }
                        }
 
-                       if (inters) {
-                               if (graphicView!=NULL) {
+                       if (inters)
+                       {
+#warning "!!! Old rendering path needs upgrading !!!"
+#if 0
+                               if (graphicView)
                                        graphicView->deleteEntity(e);
-                               }
+#endif
 
                                e->setSelected(select);
 
-                               if (graphicView!=NULL) {
+#warning "!!! Old rendering path needs upgrading !!!"
+#if 0
+                               if (graphicView)
                                        graphicView->drawEntity(e);
-                               }
+#endif
                        }
                }
        }
@@ -206,37 +212,45 @@ void RS_Selection::deselectIntersected(const Vector & v1, const Vector & v2)
  */
 void RS_Selection::selectContour(RS_Entity * e)
 {
-       if (e == NULL || !e->isAtomic())
+       if (!e || !e->isAtomic())
                return;
 
        bool select = !e->isSelected();
-       RS_AtomicEntity* ae = (RS_AtomicEntity*)e;
+       RS_AtomicEntity * ae = (RS_AtomicEntity *)e;
        Vector p1 = ae->getStartpoint();
        Vector p2 = ae->getEndpoint();
        bool found = false;
 
+#warning "!!! Old rendering path needs upgrading !!!"
+#if 0
        // (de)select 1st entity:
-       if (graphicView!=NULL) {
+       if (graphicView)
                graphicView->deleteEntity(e);
-       }
+#endif
+
        e->setSelected(select);
-       if (graphicView!=NULL) {
+
+#warning "!!! Old rendering path needs upgrading !!!"
+#if 0
+       if (graphicView)
                graphicView->drawEntity(e);
-       }
+#endif
 
-       do {
+       do
+       {
                found = false;
 
-               for (RS_Entity* en=container->firstEntity(); en!=NULL;
-                               en=container->nextEntity()) {
+               for(RS_Entity * en=container->firstEntity(); en!=NULL;
+                       en=container->nextEntity())
+               {
                //for (uint i=0; i<container->count(); ++i) {
                        //RS_Entity* en = container->entityAt(i);
 
                        if (en!=NULL && en->isVisible() &&
                                en->isAtomic() && en->isSelected()!=select &&
-                               (en->getLayer()==NULL || en->getLayer()->isLocked()==false)) {
-
-                               ae = (RS_AtomicEntity*)en;
+                               (en->getLayer()==NULL || en->getLayer()->isLocked()==false))
+                       {
+                               ae = (RS_AtomicEntity *)en;
                                bool doit = false;
 
                                // startpoint connects to 1st point
@@ -263,14 +277,22 @@ void RS_Selection::selectContour(RS_Entity * e)
                                        p2 = ae->getStartpoint();
                                }
 
-                               if (doit) {
-                                       if (graphicView!=NULL) {
+                               if (doit)
+                               {
+#warning "!!! Old rendering path needs upgrading !!!"
+#if 0
+                                       if (graphicView)
                                                graphicView->deleteEntity(ae);
-                                       }
+#endif
+
                                        ae->setSelected(select);
-                                       if (graphicView!=NULL) {
+
+#warning "!!! Old rendering path needs upgrading !!!"
+#if 0
+                                       if (graphicView)
                                                graphicView->drawEntity(ae);
-                                       }
+#endif
+
                                        found = true;
                                }
                        }
@@ -311,13 +333,19 @@ void RS_Selection::selectLayer(const QString & layerName, bool select)
 
                        if (l != NULL && l->getName() == layerName)
                        {
-                               if (graphicView != NULL)
+#warning "!!! Old rendering path needs upgrading !!!"
+#if 0
+                               if (graphicView)
                                        graphicView->deleteEntity(en);
+#endif
 
                                en->setSelected(select);
 
-                               if (graphicView != NULL)
+#warning "!!! Old rendering path needs upgrading !!!"
+#if 0
+                               if (graphicView)
                                        graphicView->drawEntity(en);
+#endif
                        }
                }
        }