X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fapplicationwindow.cpp;h=bf181a882d50629fb27c30e079a34c4ba29af86f;hb=3047a65eb459ddb4a85e1a694aa2b2491437472e;hp=96b13ca8b6a66964d8094784d17f062d96342ab2;hpb=11802354d1ddc5bc571d83d8fc9b600618cb4372;p=architektonas diff --git a/src/applicationwindow.cpp b/src/applicationwindow.cpp index 96b13ca..bf181a8 100644 --- a/src/applicationwindow.cpp +++ b/src/applicationwindow.cpp @@ -38,7 +38,10 @@ #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...! @@ -292,11 +295,13 @@ when zooming in, new origin will be (xCenter - origin.x) / 2, (yCenter - origin. // 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)); } @@ -329,11 +334,13 @@ x 2 = (-426, -301) //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)); } @@ -476,11 +483,30 @@ void ApplicationWindow::HandleGridSizeInBaseUnits(QString text) 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(); } @@ -649,8 +675,9 @@ void ApplicationWindow::CreateToolbars(void) 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"); @@ -669,9 +696,10 @@ void ApplicationWindow::CreateToolbars(void) 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))); }