#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"
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));
}
//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();
}
// 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();
}
}
+void ApplicationWindow::HandleGridSizeInPixels(int size)
+{
+ drawing->SetGridSize(size);
+ drawing->update();
+}
+
+
void ApplicationWindow::CreateActions(void)
{
exitAct = CreateAction(tr("&Quit"), tr("Quit"), tr("Exits the application."),
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);
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)));
}
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());
}
{
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());
}