]> Shamusworld >> Repos - architektonas/blobdiff - src/applicationwindow.cpp
Added ability to edit grid unit in base units, work on Dimension.
[architektonas] / src / applicationwindow.cpp
index 03f8cb5b167ef94c60c0c18d0b786032beb3e898..96b13ca8b6a66964d8094784d17f062d96342ab2 100644 (file)
@@ -469,6 +469,22 @@ void ApplicationWindow::HandleGridSizeInPixels(int size)
 }
 
 
+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."),
@@ -630,8 +646,11 @@ void ApplicationWindow::CreateToolbars(void)
        toolbar->setObjectName("View");
        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");
@@ -650,7 +669,9 @@ void ApplicationWindow::CreateToolbars(void)
 
        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)));
 }