#include "painter.h"
//#include "rotateaction.h"
#include "settingsdialog.h"
+#include "structs.h"
//#include "triangulateaction.h"
//#include "trimaction.h"
void ApplicationWindow::closeEvent(QCloseEvent * event)
{
WriteSettings();
- event->accept(); // Use ignore() if can't close for some reason
+ event->accept(); // Use ignore() if can't close for some reason
//Do we have a memory leak here if we don't delete the font in the Object???
}
void ApplicationWindow::FileNew(void)
{
// Should warn the user if drawing hasn't been saved...
-// drawing->document.Clear();
drawing->document.objects.empty();
drawing->update();
documentName.clear();
}
-// We want certain tools to be exclusive, and this approach isn't working correctly...
void ApplicationWindow::DeleteTool(void)
{
// For this tool, we check first to see if anything is selected. If so, we
// delete those and *don't* select the delete tool.
-#if 0
- if (drawing->document.ItemsSelected() > 0)
+ if (drawing->numSelected > 0)
{
- drawing->document.DeleteSelectedItems();
+ drawing->DeleteSelectedItems();
drawing->update();
deleteAct->setChecked(false);
return;
}
-#endif
// Otherwise, toggle the state of the tool
ClearUIToolStatesExcept(deleteAct);
//printf("Zoom in... Center=%.2f,%.2f; ", center.x, center.y);
center = Painter::QtToCartesianCoords(center);
//printf("(%.2f,%.2f); origin=%.2f,%.2f; ", center.x, center.y, Painter::origin.x, Painter::origin.y);
- Vector newOrigin = center - ((center - Painter::origin) / zoomFactor);
+ Vector newOrigin = center - ((center - Global::origin) / zoomFactor);
//printf("newOrigin=%.2f,%.2f;\n", newOrigin.x, newOrigin.y);
- Painter::origin = newOrigin;
+ Global::origin = newOrigin;
//printf("Zoom in... level going from %02f to ", Painter::zoom);
// This just zooms leaving origin intact... should zoom in at the current
// center! [DONE]
- Painter::zoom *= zoomFactor;
- Global::gridSpacing = drawing->gridPixels / Painter::zoom;
+ Global::zoom *= zoomFactor;
+ Global::gridSpacing = drawing->gridPixels / Global::zoom;
drawing->UpdateGridBackground();
drawing->update();
//printf("(%.2f,%.2f); origin=%.2f,%.2f; ", center.x, center.y, Painter::origin.x, Painter::origin.y);
// Vector newOrigin = (center - Painter::origin) * zoomFactor;
// Vector newOrigin = center - (Painter::origin * zoomFactor);
- Vector newOrigin = center + ((Painter::origin - center) * zoomFactor);
+ Vector newOrigin = center + ((Global::origin - center) * zoomFactor);
//printf("newOrigin=%.2f,%.2f;\n", newOrigin.x, newOrigin.y);
- Painter::origin = newOrigin;
+ Global::origin = newOrigin;
//printf("Zoom out...\n");
// This just zooms leaving origin intact... should zoom out at the current
// center! [DONE]
- Painter::zoom /= zoomFactor;
- Global::gridSpacing = drawing->gridPixels / Painter::zoom;
+ Global::zoom /= zoomFactor;
+ Global::gridSpacing = drawing->gridPixels / Global::zoom;
drawing->UpdateGridBackground();
drawing->update();
void ApplicationWindow::ClearUIToolStatesExcept(QAction * exception)
{
- if (exception != addArcAct)
- addArcAct->setChecked(false);
-
- if (exception != addCircleAct)
- addCircleAct->setChecked(false);
-
- if (exception != addDimensionAct)
- addDimensionAct->setChecked(false);
-
- if (exception != addLineAct)
- addLineAct->setChecked(false);
-
- if (exception != addPolygonAct)
- addPolygonAct->setChecked(false);
-
- if (exception != addSplineAct)
- addSplineAct->setChecked(false);
+ QAction * actionList[] = {
+ addArcAct, addLineAct, addCircleAct, addDimensionAct, addPolygonAct,
+ addSplineAct, deleteAct, rotateAct, mirrorAct, trimAct, triangulateAct, 0
+ };
- if (exception != deleteAct)
- deleteAct->setChecked(false);
-
- if (exception != rotateAct)
- rotateAct->setChecked(false);
-
- if (exception != mirrorAct)
- mirrorAct->setChecked(false);
-
- if (exception != trimAct)
- trimAct->setChecked(false);
-
- if (exception != triangulateAct)
- triangulateAct->setChecked(false);
+ for(int i=0; actionList[i]!=0; i++)
+ {
+ if (actionList[i] != exception)
+ actionList[i]->setChecked(false);
+ }
}
void ApplicationWindow::SetInternalToolStates(void)
{
- Global::deleteActive = deleteAct->isChecked();
- Global::dimensionActive = addDimensionAct->isChecked();
+// Global::deleteActive = deleteAct->isChecked();
+// Global::dimensionActive = addDimensionAct->isChecked();
// We can be sure that if we've come here, then either an active tool is
// being deactivated, or a new tool is being created. In either case, the
if (drawing->toolAction)
Global::ignoreClicks = true;
+#else
+ if (addLineAct->isChecked())
+ Global::tool = TTLine;
+ else if (addCircleAct->isChecked())
+ Global::tool = TTCircle;
+ else if (addArcAct->isChecked())
+ Global::tool = TTArc;
+ else if (addDimensionAct->isChecked())
+ Global::tool = TTDimension;
+ else if (addSplineAct->isChecked())
+ Global::tool = TTSpline;
+ else if (addPolygonAct->isChecked())
+ Global::tool = TTPolygon;
+ else if (deleteAct->isChecked())
+ Global::tool = TTDelete;
+ else if (mirrorAct->isChecked())
+ Global::tool = TTMirror;
+ else if (rotateAct->isChecked())
+ Global::tool = TTRotate;
+ else if (trimAct->isChecked())
+ Global::tool = TTTrim;
+ else if (triangulateAct->isChecked())
+ Global::tool = TTTriangulate;
+ else
+ Global::tool = TTNone;
#endif
drawing->update();
// drawing->gridSpacing = value;
// Painter::zoom = drawing->gridPixels / drawing->gridSpacing;
Global::gridSpacing = value;
- Painter::zoom = drawing->gridPixels / Global::gridSpacing;
+ Global::zoom = drawing->gridPixels / Global::gridSpacing;
drawing->UpdateGridBackground();
drawing->update();
}