X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fapplicationwindow.cpp;h=96b13ca8b6a66964d8094784d17f062d96342ab2;hb=11802354d1ddc5bc571d83d8fc9b600618cb4372;hp=246e0bcb874570dc76d507c8bbf03098933fff3b;hpb=631fbe38f52222a65f1c3bcefb11a616d6806dd6;p=architektonas diff --git a/src/applicationwindow.cpp b/src/applicationwindow.cpp index 246e0bc..96b13ca 100644 --- a/src/applicationwindow.cpp +++ b/src/applicationwindow.cpp @@ -290,6 +290,7 @@ when zooming in, new origin will be (xCenter - origin.x) / 2, (yCenter - origin. //printf("Zoom in... level going from %02f to ", Painter::zoom); // 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; // zoomIndicator->setText(QString("Grid: %2\" Zoom: %1%").arg(Painter::zoom * 100.0 * SCREEN_ZOOM).arg(drawing->gridSpacing)); @@ -461,6 +462,29 @@ else } +void ApplicationWindow::HandleGridSizeInPixels(int size) +{ + drawing->SetGridSize(size); + drawing->update(); +} + + +void ApplicationWindow::HandleGridSizeInBaseUnits(QString text) +{ + // Parse the text... + bool ok; + double value = text.toDouble(&ok); + + // Nothing parsable to a double, so quit... + if (!ok) + return; + + drawing->gridSpacing = value; + Painter::zoom = drawing->gridPixels / drawing->gridSpacing; + drawing->update(); +} + + void ApplicationWindow::CreateActions(void) { exitAct = CreateAction(tr("&Quit"), tr("Quit"), tr("Exits the application."), @@ -623,6 +647,11 @@ void ApplicationWindow::CreateToolbars(void) toolbar->addAction(zoomInAct); toolbar->addAction(zoomOutAct); + QSpinBox * spinbox = new QSpinBox; + toolbar->addWidget(spinbox); + QLineEdit * lineedit = new QLineEdit; + toolbar->addWidget(lineedit); + toolbar = addToolBar(tr("Edit")); toolbar->setObjectName("Edit"); toolbar->addAction(snapToGridAct); @@ -637,6 +666,12 @@ void ApplicationWindow::CreateToolbars(void) toolbar->addAction(addArcAct); toolbar->addAction(addPolygonAct); toolbar->addAction(addDimensionAct); + + spinbox->setRange(4, 256); + spinbox->setValue(12); + lineedit->setText("12"); + connect(spinbox, SIGNAL(valueChanged(int)), this, SLOT(HandleGridSizeInPixels(int))); + connect(lineedit, SIGNAL(textChanged(QString)), this, SLOT(HandleGridSizeInBaseUnits(QString))); } @@ -649,10 +684,6 @@ void ApplicationWindow::ReadSettings(void) resize(size); move(pos); restoreState(settings.value("windowState").toByteArray()); -// pos = settings.value("charWndPos", QPoint(0, 0)).toPoint(); -// size = settings.value("charWndSize", QSize(200, 200)).toSize(); -// ((TTEdit *)qApp)->charWnd->resize(size); -// ((TTEdit *)qApp)->charWnd->move(pos); } @@ -663,7 +694,5 @@ void ApplicationWindow::WriteSettings(void) settings.setValue("windowState", saveState()); settings.setValue("useAntialiasing", drawing->useAntialiasing); settings.setValue("snapToGrid", snapToGridAct->isChecked()); -// settings.setValue("charWndPos", ((TTEdit *)qApp)->charWnd->pos()); -// settings.setValue("charWndSize", ((TTEdit *)qApp)->charWnd->size()); }