#include "settingsdialog.h"
-ApplicationWindow::ApplicationWindow(): settings("Underground Software", "Architektonas")
+ApplicationWindow::ApplicationWindow():
+ baseUnitInput(new QLineEdit),
+ dimensionSizeInput(new QLineEdit),
+ settings("Underground Software", "Architektonas")
{
drawing = new DrawingView(this);
drawing->setMouseTracking(true); // We want *all* mouse events...!
// This just zooms leaving origin intact... should zoom in at the current center! [DONE]
// This should actually be calculated by drawing->gridPixels / grid size.
Painter::zoom *= zoomFactor;
- drawing->gridSpacing = 12.0 / Painter::zoom;
+ drawing->gridSpacing = drawing->gridPixels / Painter::zoom;
// zoomIndicator->setText(QString("Grid: %2\" Zoom: %1%").arg(Painter::zoom * 100.0 * SCREEN_ZOOM).arg(drawing->gridSpacing));
zoomIndicator->setText(QString("Grid: %1\", BU: Inch").arg(drawing->gridSpacing));
drawing->UpdateGridBackground();
drawing->update();
+
+ baseUnitInput->setText(QString("%1").arg(drawing->gridSpacing));
}
//printf("Zoom out...\n");
// This just zooms leaving origin intact... should zoom out at the current center! [DONE]
Painter::zoom /= zoomFactor;
- drawing->gridSpacing = 12.0 / Painter::zoom;
+ drawing->gridSpacing = drawing->gridPixels / Painter::zoom;
// zoomIndicator->setText(QString("Grid: %2\" Zoom: %1%").arg(Painter::zoom * 100.0 * SCREEN_ZOOM).arg(drawing->gridSpacing));
zoomIndicator->setText(QString("Grid: %1\", BU: Inch").arg(drawing->gridSpacing));
drawing->UpdateGridBackground();
drawing->update();
+
+ baseUnitInput->setText(QString("%1").arg(drawing->gridSpacing));
}
double value = text.toDouble(&ok);
// Nothing parsable to a double, so quit...
- if (!ok)
+ if (!ok || value == 0)
return;
drawing->gridSpacing = value;
Painter::zoom = drawing->gridPixels / drawing->gridSpacing;
+ drawing->UpdateGridBackground();
+ drawing->update();
+}
+
+
+void ApplicationWindow::HandleDimensionSize(QString text)
+{
+ // Parse the text...
+ bool ok;
+ double value = text.toDouble(&ok);
+
+ // Nothing parsable to a double, so quit...
+ if (!ok || value == 0)
+ return;
+
+ drawing->document.ResizeAllDimensions(value);
+// drawing->gridSpacing = value;
+// Painter::zoom = drawing->gridPixels / drawing->gridSpacing;
+// drawing->UpdateGridBackground();
drawing->update();
}
QSpinBox * spinbox = new QSpinBox;
toolbar->addWidget(spinbox);
- QLineEdit * lineedit = new QLineEdit;
- toolbar->addWidget(lineedit);
+// QLineEdit * lineedit = new QLineEdit;
+ toolbar->addWidget(baseUnitInput);
+ toolbar->addWidget(dimensionSizeInput);
toolbar = addToolBar(tr("Edit"));
toolbar->setObjectName("Edit");
spinbox->setRange(4, 256);
spinbox->setValue(12);
- lineedit->setText("12");
+ baseUnitInput->setText("12");
connect(spinbox, SIGNAL(valueChanged(int)), this, SLOT(HandleGridSizeInPixels(int)));
- connect(lineedit, SIGNAL(textChanged(QString)), this, SLOT(HandleGridSizeInBaseUnits(QString)));
+ connect(baseUnitInput, SIGNAL(textChanged(QString)), this, SLOT(HandleGridSizeInBaseUnits(QString)));
+ connect(dimensionSizeInput, SIGNAL(textChanged(QString)), this, SLOT(HandleDimensionSize(QString)));
}
double t = Vector::Parameter(position, endpoint, endpoint - (unit * 9.0 * size));
//printf("Dimension::Draw(): t = %lf\n", t);
- if (t > 0.5)
+ if (t > 0.42)
{
// Draw main dimension line + arrowheads
painter->DrawLine(p1, p2);
}
// Draw length of dimension line...
- painter->SetFont(QFont("Arial", 10.0 * Painter::zoom * size));
+ painter->SetFont(QFont("Arial", 8.0 * Painter::zoom * size));
Vector v1((p1.x - p2.x) / 2.0, (p1.y - p2.y) / 2.0);
Point ctr = p2 + v1;
QString dimText = QString("%1\"").arg(Vector(endpoint - position).Magnitude());