X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fapplicationwindow.cpp;h=03f8cb5b167ef94c60c0c18d0b786032beb3e898;hb=2af76acd67a2703859c11446be3be4d3ff8ff4b4;hp=4aac209c35e3764bc7f59e1a8a74fad758469549;hpb=ef811c836c00cc94ce1eaea5c2e77e5278298b18;p=architektonas diff --git a/src/applicationwindow.cpp b/src/applicationwindow.cpp index 4aac209..03f8cb5 100644 --- a/src/applicationwindow.cpp +++ b/src/applicationwindow.cpp @@ -29,9 +29,11 @@ #include "applicationwindow.h" #include "about.h" +#include "blockwidget.h" #include "drawingview.h" #include "fileio.h" #include "generaltab.h" +#include "layerwidget.h" #include "painter.h" #include "settingsdialog.h" @@ -53,20 +55,26 @@ ApplicationWindow::ApplicationWindow(): settings("Underground Software", "Archit CreateMenus(); CreateToolbars(); + // Create Dock widgets + QDockWidget * dock1 = new QDockWidget(tr("Layers"), this); + LayerWidget * lw = new LayerWidget; + dock1->setWidget(lw); + addDockWidget(Qt::RightDockWidgetArea, dock1); + QDockWidget * dock2 = new QDockWidget(tr("Blocks"), this); + 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%"); statusBar()->addPermanentWidget(zoomIndicator); statusBar()->showMessage(tr("Ready")); ReadSettings(); - -// connect(textEdit->document(), SIGNAL(contentsChanged()), -// this, SLOT(documentWasModified())); - -// setCurrentFile(""); setUnifiedTitleAndToolBarOnMac(true); - -// ((TTEdit *)qApp)->charWnd->show();//eh? Object::SetFont(new QFont("Verdana", 15, QFont::Bold)); } @@ -282,9 +290,11 @@ 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)); +// 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(); } @@ -320,7 +330,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(); } @@ -451,6 +462,13 @@ else } +void ApplicationWindow::HandleGridSizeInPixels(int size) +{ + drawing->SetGridSize(size); + drawing->update(); +} + + void ApplicationWindow::CreateActions(void) { exitAct = CreateAction(tr("&Quit"), tr("Quit"), tr("Exits the application."), @@ -605,13 +623,18 @@ 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); + QSpinBox * spinbox = new QSpinBox; + toolbar->addWidget(spinbox); toolbar = addToolBar(tr("Edit")); + toolbar->setObjectName("Edit"); toolbar->addAction(snapToGridAct); toolbar->addAction(groupAct); toolbar->addAction(fixAngleAct); @@ -624,6 +647,10 @@ void ApplicationWindow::CreateToolbars(void) toolbar->addAction(addArcAct); toolbar->addAction(addPolygonAct); toolbar->addAction(addDimensionAct); + + spinbox->setRange(4, 256); + spinbox->setValue(12); + connect(spinbox, SIGNAL(valueChanged(int)), this, SLOT(HandleGridSizeInPixels(int))); } @@ -635,10 +662,7 @@ void ApplicationWindow::ReadSettings(void) snapToGridAct->setChecked(settings.value("snapToGrid", true).toBool()); resize(size); move(pos); -// 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); + restoreState(settings.value("windowState").toByteArray()); } @@ -646,9 +670,8 @@ 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()); -// settings.setValue("charWndSize", ((TTEdit *)qApp)->charWnd->size()); }