]> Shamusworld >> Repos - architektonas/blobdiff - src/applicationwindow.cpp
First step towards resizable grid and sane zoom setting.
[architektonas] / src / applicationwindow.cpp
index ef42ca24a6acc9fc2c00089965f7855ff5e13852..246e0bcb874570dc76d507c8bbf03098933fff3b 100644 (file)
@@ -61,9 +61,12 @@ ApplicationWindow::ApplicationWindow(): settings("Underground Software", "Archit
        dock1->setWidget(lw);
        addDockWidget(Qt::RightDockWidgetArea, dock1);
        QDockWidget * dock2 = new QDockWidget(tr("Blocks"), this);
-//     BlockWidget * bw = new BlockWidget;
-//     dock2->setWidget(bw);
+       BlockWidget * bw = new BlockWidget;
+       dock2->setWidget(bw);
        addDockWidget(Qt::RightDockWidgetArea, dock2);
+       // Needed for saveState()
+       dock1->setObjectName("Layers");
+       dock2->setObjectName("Blocks");
 
        //      Create status bar
        zoomIndicator = new QLabel("Grid: 12.0\" Zoom: 12.5%");
@@ -289,7 +292,8 @@ 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]
        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));
+//     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();
 }
@@ -325,7 +329,8 @@ x 2 = (-426, -301)
        // This just zooms leaving origin intact... should zoom out at the current center! [DONE]
        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));
+//     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();
 }
@@ -610,13 +615,16 @@ void ApplicationWindow::CreateMenus(void)
 void ApplicationWindow::CreateToolbars(void)
 {
        QToolBar * toolbar = addToolBar(tr("File"));
+       toolbar->setObjectName("File"); // Needed for saveState()
        toolbar->addAction(exitAct);
 
        toolbar = addToolBar(tr("View"));
+       toolbar->setObjectName("View");
        toolbar->addAction(zoomInAct);
        toolbar->addAction(zoomOutAct);
 
        toolbar = addToolBar(tr("Edit"));
+       toolbar->setObjectName("Edit");
        toolbar->addAction(snapToGridAct);
        toolbar->addAction(groupAct);
        toolbar->addAction(fixAngleAct);
@@ -640,6 +648,7 @@ void ApplicationWindow::ReadSettings(void)
        snapToGridAct->setChecked(settings.value("snapToGrid", true).toBool());
        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);
@@ -651,6 +660,7 @@ void ApplicationWindow::WriteSettings(void)
 {
        settings.setValue("pos", pos());
        settings.setValue("size", size());
+       settings.setValue("windowState", saveState());
        settings.setValue("useAntialiasing", drawing->useAntialiasing);
        settings.setValue("snapToGrid", snapToGridAct->isChecked());
 //     settings.setValue("charWndPos", ((TTEdit *)qApp)->charWnd->pos());