2 // infowidget.cpp: A2R disk image info widget
4 // Part of the WOZ Maker Project
6 // (C) 2018 Underground Software
7 // See the README and GPLv3 files for licensing and warranty information
10 #include "infowidget.h"
15 InfoWidget::InfoWidget(void): QWidget()
19 QVBoxLayout * mainLayout = new QVBoxLayout;
20 mainLayout->addWidget(label);
21 mainLayout->addStretch();
23 setLayout(mainLayout);
27 InfoWidget::~InfoWidget()
32 void InfoWidget::ShowInfo(void)
35 const char objName[OTCount][16] = {
36 "None", "Line", "Circle", "Ellipse", "Arc", "Polygon", "Dimension", "Spline", "Text", "Container"
38 const char dimName[DTCount][32] = {
39 "Linear", "Vertical", "Horizontal", "Radial", "Diametric",
40 "Circumferential", "Angular", "Leader"
47 QString s = QString("<b>%1</b><br><br>").arg(QString(objName[obj->type]));
53 Vector line(obj->p[0], obj->p[1]);
54 s += QString("<%1, %2> to <%3, %4><br>Length: %5<br>Angle: %6°<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);
59 s += QString("Center: <%1, %2><br>Radius: %3<br>").arg(obj->p[0].x).arg(obj->p[0].y).arg(obj->radius[0]);
66 s += QString("Center: <%1, %2><br>Radius: %3<br>Start: %4°<br>Span: %5°<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);
74 Dimension * d = (Dimension *)obj;
75 s += QString("Type: %1<br>").arg(dimName[d->subtype]);
84 Text * t = (Text *)obj;
85 s += QString("<%1, %2><br>Width/Height: %3/%4<br>Angle: %5°<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);
97 memcpy(buf, Global::a2r->creator, 32);
101 s += QString("No. Streams: %1<br>").arg(Global::numStreams);
102 s += QString("Creator: %1<br>").arg((char *)buf);
103 s += QString("Disk Type: %1<br>").arg(Global::a2r->diskType == 1 ? "5 1/4\"" : (Global::a2r->diskType == 2 ? "3 1/2\"" : "Unknown"));
104 s += QString("Write Protected: %1<br>").arg(Global::a2r->writeProtected == 1 ? "Yes" : "No");
105 s += QString("Synchronized: %1<br>").arg(Global::a2r->writeProtected == 1 ? "Yes" : "No");
107 if (Global::metadata != NULL)
109 uint32_t size = Uint32LE(Global::metadata->metaSize);
110 uint8_t * data = Global::metadata->data;
115 if (data[pos] == 0x09)
117 else if (data[pos] == 0x0A)
126 // s += QString("Stream No.: %1<br>").arg(Global::streamNum);
127 // s += QString("Nibbles: %1<br>").arg(Global::nibbleCount);