#include <QPrintPreviewDialog>
#include "about.h"
#include "blockwidget.h"
+#include "commandprocessor.h"
#include "consolewidget.h"
+#include "drawingsettingsdlg.h"
#include "drawingview.h"
#include "fileio.h"
#include "generaltab.h"
dock3->setWidget(ow);
addDockWidget(Qt::RightDockWidgetArea, dock3);
QDockWidget * dock4 = new QDockWidget(tr("Command"), this);
- ConsoleWidget * cw = new ConsoleWidget;
+ cw = new ConsoleWidget;
dock4->setWidget(cw);
addDockWidget(Qt::BottomDockWidgetArea, dock4);
connect(drawing, SIGNAL(ObjectHovered(Object *)), ow, SLOT(ShowInfo(Object *)));
connect(drawing, SIGNAL(NeedZoomUpdate()), this, SLOT(UpdateZoom()));
+
+ connect(cw->cmdProc, SIGNAL(UpdateNeeded()), this, SLOT(UpdateFromCommand()));
}
void ApplicationWindow::closeEvent(QCloseEvent * event)
drawing->dirty = false;
drawing->update();
documentName.clear();
- setWindowTitle("Architektonas - Untitled");
+// setWindowTitle("Architektonas - Untitled");
+ setWindowFilePath(documentName);
statusBar()->showMessage(tr("New drawing is ready."));
}
// Do object rendering...
for(int i=0; i<Global::numLayers; i++)
- drawing->RenderObjects(&painter, drawing->document.objects, i);
+ {
+ if (Global::layerHidden[i] == false)
+ drawing->RenderObjects(&painter, drawing->document.objects, i);
+ }
// Restore vars
Global::origin = originSave;
drawing->update();
}
+void ApplicationWindow::UpdateFromCommand(void)
+{
+ cw->SetToolPrompt();
+ drawing->update();
+}
+
void ApplicationWindow::SnapToGridTool(void)
{
Global::snapToGrid = snapToGridAct->isChecked();
{
ClearUIToolStatesExcept(parallelAct);
SetInternalToolStates();
+ Global::toolSuppressCrosshair = true;
}
void ApplicationWindow::TriangulateTool(void)
QAction * actionList[] = {
addArcAct, addLineAct, addCircleAct, addDimensionAct, addPolygonAct,
addSplineAct, deleteAct, rotateAct, mirrorAct, trimAct,
- triangulateAct, 0
+ triangulateAct, parallelAct, 0
};
for(int i=0; actionList[i]!=0; i++)
else
Global::tool = TTNone;
+ cw->SetToolPrompt();
drawing->update();
}
WriteSettings();
}
+void ApplicationWindow::DrawingSettings(void)
+{
+ DrawingSettingsDlg dlg(this);
+ dlg.baseUnit->setCurrentIndex(drawing->document.baseUnit);
+ dlg.unitStyle->setCurrentIndex(drawing->document.unitStyle);
+ dlg.decimalPrecision->setCurrentIndex(drawing->document.decimalPrecision);
+ dlg.fractionalPrecision->setCurrentIndex(drawing->document.fractionalPrecision);
+
+ if (dlg.exec() == false)
+ return;
+
+ // Deal with stuff here (since user hit "OK" button...)
+ drawing->document.baseUnit = dlg.baseUnit->currentIndex();
+ drawing->document.unitStyle = dlg.unitStyle->currentIndex();
+ drawing->document.decimalPrecision= dlg.decimalPrecision->currentIndex();
+ drawing->document.fractionalPrecision = dlg.fractionalPrecision->currentIndex();
+ drawing->update();
+}
+
//
// Group a bunch of selected objects (which can include other groups) together
// or ungroup a selected group.
settingsAct = CreateAction(tr("&Settings"), tr("Settings"), tr("Change certain defaults for Architektonas."), QIcon(":/res/settings.png"), QKeySequence());
connect(settingsAct, SIGNAL(triggered()), this, SLOT(Settings()));
+ drawingSettingsAct = CreateAction(tr("&Drawing Settings"), tr("Drawing settings"), tr("Change certain defaults for the current drawing."), QIcon(":/res/settings.png"), QKeySequence());
+ connect(drawingSettingsAct, SIGNAL(triggered()), this, SLOT(DrawingSettings()));
+
groupAct = CreateAction(tr("&Group"), tr("Group"), tr("Group/ungroup selected objects."), QIcon(":/res/group-tool.png"), QKeySequence("g"));
connect(groupAct, SIGNAL(triggered()), this, SLOT(HandleGrouping()));
trimAct = CreateAction(tr("&Trim"), tr("Trim"), tr("Trim extraneous lines from selected objects."), QIcon(":/res/trim-tool.png"), QKeySequence("t,r"), true);
connect(trimAct, SIGNAL(triggered()), this, SLOT(TrimTool()));
- parallelAct = CreateAction(tr("&Parallel"), tr("Parallel"), tr("Create copies of objects parallel to the original."), QIcon(":/res/parallel-tool.png"), QKeySequence("p,a"), true);
+ parallelAct = CreateAction(tr("&Parallel"), tr("Parallel"), tr("Create copies of objects parallel to the original."), QIcon(":/res/parallel-tool.png"), QKeySequence("p,l"), true);
connect(parallelAct, SIGNAL(triggered()), this, SLOT(ParallelTool()));
triangulateAct = CreateAction(tr("&Triangulate"), tr("Triangulate"), tr("Make triangles from selected lines, preserving their lengths."), QIcon(":/res/triangulate-tool.png"), QKeySequence("t,g"), true);
menu->addAction(addSplineAct);
menu->addAction(addDimensionAct);
menu->addSeparator();
+ menu->addAction(drawingSettingsAct);
menu->addAction(settingsAct);
menu = menuBar()->addMenu(tr("&Help"));
toolbar->setObjectName(tr("Pen"));
toolbar->addWidget(pw);
connect(drawing, SIGNAL(ObjectSelected(Object *)), pw, SLOT(SetFields(Object *)));
- connect(pw, SIGNAL(WidthSelected(float)), drawing, SLOT(HandlePenWidth(float)));
- connect(pw, SIGNAL(StyleSelected(int)), drawing, SLOT(HandlePenStyle(int)));
- connect(pw, SIGNAL(ColorSelected(uint32_t)), drawing, SLOT(HandlePenColor(uint32_t)));
connect(pw->tbStamp, SIGNAL(triggered(QAction *)), drawing, SLOT(HandlePenStamp(QAction *)));
connect(pw->tbDropper, SIGNAL(triggered(QAction *)), drawing, SLOT(HandlePenDropper(QAction *)));
}
QPoint pos = settings.value("pos", QPoint(200, 200)).toPoint();
QSize size = settings.value("size", QSize(400, 400)).toSize();
drawing->useAntialiasing = settings.value("useAntialiasing", true).toBool();
- snapToGridAct->setChecked(settings.value("snapToGrid", true).toBool());
+ Global::snapToGrid = settings.value("snapToGrid", true).toBool();
+ snapToGridAct->setChecked(Global::snapToGrid);
resize(size);
move(pos);
restoreState(settings.value("windowState").toByteArray());