]> Shamusworld >> Repos - architektonas/blobdiff - src/objectwidget.cpp
Further progress on Polylines: Polylines can be selected and moved.
[architektonas] / src / objectwidget.cpp
index c7e0cf69e61178816bb4bda616399acec017102b..739d1c174ccd85c0c8fbc5415e6578310bea837f 100644 (file)
@@ -1,7 +1,8 @@
+//
 // objectwidget.cpp: Object tweaking widget
 //
 // Part of the Architektonas Project
-// (C) 2016 Underground Software
+// (C) 2020 Underground Software
 // See the README and GPLv3 files for licensing and warranty information
 //
 // JLH = James Hammons <jlhamm@acm.org>
 #include "objectwidget.h"
 #include "mathconstants.h"
 
-
 ObjectWidget::ObjectWidget(void): QWidget()
 {
-#if 0
-       QListWidget * qlw = new QListWidget;
-       QListWidgetItem * qli1 = new QListWidgetItem(qlw);
-       QListWidgetItem * qli2 = new QListWidgetItem(qlw);
-       QListWidgetItem * qli3 = new QListWidgetItem(qlw);
-       QListWidgetItem * qli4 = new QListWidgetItem(qlw);
-       QListWidgetItem * qli5 = new QListWidgetItem(qlw);
-#endif
        label = new QLabel;
 
-#if 0
-       QPushButton * pb1 = new QPushButton("+");
-       QPushButton * pb2 = new QPushButton("-");
-       QPushButton * pb3 = new QPushButton("Edit");
-       QPushButton * pb4 = new QPushButton("Import");
-#else
        QToolButton * pb1 = new QToolButton;
        QToolButton * pb2 = new QToolButton;
        QToolButton * pb3 = new QToolButton;
@@ -47,7 +33,6 @@ ObjectWidget::ObjectWidget(void): QWidget()
        pb2->setToolTip(tr("Remove block"));
        pb3->setToolTip(tr("Edit block"));
        pb4->setToolTip(tr("Import block"));
-#endif
 
        QHBoxLayout * hbox1 = new QHBoxLayout;
        hbox1->addWidget(pb1);
@@ -58,28 +43,23 @@ ObjectWidget::ObjectWidget(void): QWidget()
 
        QVBoxLayout * mainLayout = new QVBoxLayout;
        mainLayout->addWidget(label);
+       mainLayout->addStretch();
        mainLayout->addLayout(hbox1);
 
        setLayout(mainLayout);
 }
 
-
 ObjectWidget::~ObjectWidget()
 {
 }
 
-
 void ObjectWidget::ShowInfo(Object * obj)
 {
-       const char objName[OTCount][16] = {
-               "None", "Line", "Circle", "Ellipse", "Arc", "Polygon", "Dimension", "Spline", "Text", "Container"
-       };
-
        // Sanity check
        if (obj == NULL)
                return;
 
-       QString s = QString("%1<br><br>").arg(QString(objName[obj->type]));
+       QString s = QString("<b>%1</b><br><br>").arg(QString(objName[obj->type]));
 
        switch (obj->type)
        {
@@ -89,29 +69,44 @@ void ObjectWidget::ShowInfo(Object * obj)
                s += QString("&lt;%1, %2&gt; to &lt;%3, %4&gt;<br>Length: %5<br>Angle: %6&#x00B0;<br>").arg(obj->p[0].x).arg(obj->p[0].y).arg(obj->p[1].x).arg(obj->p[1].y).arg(line.Magnitude()).arg(line.Angle() * RADIANS_TO_DEGREES);
                break;
        }
+
        case OTCircle:
                s += QString("Center: &lt;%1, %2&gt;<br>Radius: %3<br>").arg(obj->p[0].x).arg(obj->p[0].y).arg(obj->radius[0]);
                break;
+
        case OTEllipse:
                break;
+
        case OTArc:
-               s += QString("Center: &lt;%1, %2&gt;<br>Radius: %3<br>Start: %4&#x00B0;<br>End: %5&#x00B0;<br>").arg(obj->p[0].x).arg(obj->p[0].y).arg(obj->radius[0]).arg(obj->angle[0] * RADIANS_TO_DEGREES).arg(obj->angle[1] * RADIANS_TO_DEGREES);
-               break;
-               break;
-       case OTPolygon:
+               s += QString("Center: &lt;%1, %2&gt;<br>Radius: %3<br>Start: %4&#x00B0;<br>Span: %5&#x00B0;<br>").arg(obj->p[0].x).arg(obj->p[0].y).arg(obj->radius[0]).arg(obj->angle[0] * RADIANS_TO_DEGREES).arg(obj->angle[1] * RADIANS_TO_DEGREES);
                break;
+
        case OTDimension:
+       {
+               Dimension * d = (Dimension *)obj;
+               s += QString("Type: %1<br>").arg(dimName[d->subtype]);
+               break;
+       }
+
+       case OTPolyline:
                break;
+
        case OTSpline:
                break;
+
        case OTText:
+       {
+               Text * t = (Text *)obj;
+               s += QString("&lt;%1, %2&gt;<br>Width/Height: %3/%4<br>Angle: %5&#x00B0;<br>").arg(t->p[0].x).arg(t->p[0].y).arg(t->extents.Width()).arg(t->extents.Height()).arg(obj->angle[0] * RADIANS_TO_DEGREES);
                break;
+       }
+
        case OTContainer:
                break;
+
        default:
                break;
        }
 
        label->setText(s);
 }
-