X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fbase%2Frs_selection.cpp;h=d2ab97d69e7514078ded5051ac480729846d70e9;hb=bd2b29c8735d83ab48df13c3efee53f63570473e;hp=046775b7375540cca4f04c325f7631f02fd7fd83;hpb=89e127aa3dbd74d3158e6dbe0ca1703420c04395;p=architektonas diff --git a/src/base/rs_selection.cpp b/src/base/rs_selection.cpp index 046775b..d2ab97d 100644 --- a/src/base/rs_selection.cpp +++ b/src/base/rs_selection.cpp @@ -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 // @@ -14,10 +16,11 @@ #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; icount(); ++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; icount(); ++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 } } }