]> Shamusworld >> Repos - architektonas/blobdiff - src/drawingview.cpp
Added 'delete selected objects' functionality back.
[architektonas] / src / drawingview.cpp
index 58e0979495b3794d2df175ced51453ac6b6a912b..99c4da9f2779054f5edbb6e607ee4e4f8f44371e 100644 (file)
@@ -45,7 +45,7 @@
 
 DrawingView::DrawingView(QWidget * parent/*= NULL*/): QWidget(parent),
        // The value in the settings file will override this.
-       useAntialiasing(true),
+       useAntialiasing(true), numSelected(0),
        gridBackground(BACKGROUND_MAX_SIZE, BACKGROUND_MAX_SIZE),
        scale(1.0), offsetX(-10), offsetY(-10),// document(Vector(0, 0)),
        gridPixels(0), collided(false)//, toolAction(NULL)
@@ -90,7 +90,7 @@ DrawingView::DrawingView(QWidget * parent/*= NULL*/): QWidget(parent),
        document.objects.push_back(new Arc(Vector(300, 300), 32, PI / 4.0, PI * 1.3)),
        document.objects.push_back(new Arc(Vector(200, 200), 60, PI / 2.0, PI * 1.5));
        document.objects.push_back(new Dimension(Vector(50, 40), Vector(5, 5)));
-       document.objects.push_back(new Text(Vector(10, 83), "Tyegxt!"));
+       document.objects.push_back(new Text(Vector(10, 83), "Here is some awesome text!"));
 #endif
 
 /*
@@ -511,10 +511,7 @@ void DrawingView::RenderObjects(Painter * painter, Container * c)
                case OTText:
                {
                        Text * t = (Text *)obj;
-
-                       for(float angle=0; angle<(PI*3.0/2.0); angle+=PI/8.0)
-                               painter->DrawTextObject(t->p1, t->s.c_str(), scaledThickness, angle);
-
+                       painter->DrawTextObject(t->p1, t->s.c_str(), scaledThickness);
                        break;
                }
                default:
@@ -524,6 +521,25 @@ void DrawingView::RenderObjects(Painter * painter, Container * c)
 }
 
 
+void DrawingView::DeleteSelectedItems(void)
+{
+       std::vector<void *>::iterator i = document.objects.begin();
+
+       while (i != document.objects.end())
+       {
+               Object * obj = (Object *)(*i);
+
+               if (obj->selected)
+               {
+                       delete obj;
+                       document.objects.erase(i);
+               }
+               else
+                       i++;
+       }
+}
+
+
 void DrawingView::resizeEvent(QResizeEvent * /*event*/)
 {
        Global::screenSize = Vector(size().width(), size().height());
@@ -625,6 +641,7 @@ void DrawingView::mouseMoveEvent(QMouseEvent * event)
        {
                std::vector<void *>::iterator i;
 //             QRectF bounds;
+               numSelected = 0;
 
                for(i=document.objects.begin(); i!=document.objects.end(); i++)
                {
@@ -720,6 +737,9 @@ void DrawingView::mouseMoveEvent(QMouseEvent * event)
                        default:
                                break;
                        }
+
+                       if (obj->selected)
+                               numSelected++;
                }
        }