X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fwidgets%2Fqg_dialogfactory.cpp;h=b5093ceed36a5d899ca325a28969ffbe280762bb;hb=af32602b9d8075080d5805143f1cd47fc10672e1;hp=632ce8dc174b21c78bfe7e92a1b79b77c58db9ea;hpb=3f46c180da0806c9c263e6d87d0f1404632402da;p=architektonas diff --git a/src/widgets/qg_dialogfactory.cpp b/src/widgets/qg_dialogfactory.cpp index 632ce8d..b5093ce 100644 --- a/src/widgets/qg_dialogfactory.cpp +++ b/src/widgets/qg_dialogfactory.cpp @@ -3,7 +3,9 @@ // Part of the Architektonas Project // Originally part of QCad Community Edition by Andrew Mustun // Extensively rewritten and refactored by James L. Hammons -// (C) 2010 Underground Software +// Portions copyright (C) 2001-2003 RibbonSoft +// Copyright (C) 2010 Underground Software +// See the README and GPLv2 files for licensing and warranty information // // JLH = James L. Hammons // @@ -14,69 +16,20 @@ #include "qg_dialogfactory.h" -#include "qg_layerwidget.h" +#include "graphicview.h" +#include "layerwidget.h" #include "qg_mainwindowinterface.h" -#include "rs_actiondimlinear.h" -#include "rs_actioninterface.h" +#include "actiondimlinear.h" +#include "actioninterface.h" +#include "rs_blocklist.h" #include "rs_document.h" +#include "rs_hatch.h" +#include "rs_layerlist.h" #include "rs_patternlist.h" #include "settings.h" #include "rs_system.h" #include "rs_text.h" -#if 0 - #include "ui/qg_arcoptions.h" - #include "ui/qg_arctangentialoptions.h" - #include "ui/qg_beveloptions.h" - #include "ui/qg_blockdialog.h" - #include "ui/qg_cadtoolbar.h" - #include "ui/qg_circleoptions.h" - #include "ui/qg_commandwidget.h" - #include "ui/qg_coordinatewidget.h" -#include "ui/qg_dimlinearoptions.h" -#include "ui/qg_dimoptions.h" -#include "ui/qg_dlgarc.h" - #include "ui/qg_dlgattributes.h" -#include "ui/qg_dlgcircle.h" -#include "ui/qg_dlgdimension.h" -#include "ui/qg_dlgdimlinear.h" -#include "ui/qg_dlgellipse.h" -#include "ui/qg_dlghatch.h" -#include "ui/qg_dlginsert.h" -#include "ui/qg_dlgline.h" -#include "ui/qg_dlgmirror.h" -#include "ui/qg_dlgmove.h" -#include "ui/qg_dlgmoverotate.h" - #include "ui/qg_dlgoptionsdrawing.h" - #include "ui/qg_dlgoptionsgeneral.h" -#include "ui/qg_dlgpoint.h" -#include "ui/qg_dlgrotate.h" -#include "ui/qg_dlgrotate2.h" -#include "ui/qg_dlgscale.h" -#include "ui/qg_dlgspline.h" - #include "ui/qg_dlgtext.h" - #include "ui/qg_imageoptions.h" -#include "ui/qg_insertoptions.h" - #include "ui/qg_layerdialog.h" -#include "ui/qg_libraryinsertoptions.h" -#include "ui/qg_lineangleoptions.h" -#include "ui/qg_linebisectoroptions.h" - #include "ui/qg_lineoptions.h" -#include "ui/qg_lineparalleloptions.h" -#include "ui/qg_lineparallelthroughoptions.h" -#include "ui/qg_linepolygon2options.h" -#include "ui/qg_linepolygonoptions.h" -#include "ui/qg_linerelangleoptions.h" - #include "ui/qg_mousewidget.h" -#include "ui/qg_moverotateoptions.h" - #include "ui/qg_printpreviewoptions.h" -#include "ui/qg_roundoptions.h" - #include "ui/qg_selectionwidget.h" -#include "ui/qg_snapdistoptions.h" -#include "ui/qg_splineoptions.h" - #include "ui/qg_textoptions.h" -#include "ui/qg_trimamountoptions.h" -#endif #include "arcoptions.h" #include "arctangentialoptions.h" #include "beveloptions.h" @@ -85,17 +38,49 @@ #include "circleoptions.h" #include "commandwidget.h" #include "coordinatewidget.h" +#include "dimlinearoptions.h" +#include "dimoptions.h" +#include "dlgarc.h" #include "dlgattributes.h" +#include "dlgcircle.h" +#include "dlgdimension.h" +#include "dlgdimlinear.h" +#include "dlgellipse.h" +#include "dlghatch.h" +#include "dlginsert.h" +#include "dlgline.h" +#include "dlgmirror.h" +#include "dlgmove.h" +#include "dlgmoverotate.h" #include "dlgoptionsdrawing.h" #include "dlgoptionsgeneral.h" +#include "dlgpoint.h" +#include "dlgrotate.h" +#include "dlgrotate2.h" +#include "dlgscale.h" +#include "dlgspline.h" #include "dlgtext.h" +#include "libraryinsertoptions.h" #include "imageoptions.h" +#include "insertoptions.h" #include "layerdialog.h" +#include "lineangleoptions.h" +#include "linebisectoroptions.h" #include "lineoptions.h" +#include "lineparalleloptions.h" +#include "lineparallelthroughoptions.h" +#include "linepolygon2options.h" +#include "linepolygonoptions.h" +#include "linerelangleoptions.h" #include "mousewidget.h" +#include "moverotateoptions.h" #include "printpreviewoptions.h" +#include "roundoptions.h" #include "selectionwidget.h" +#include "snapdistoptions.h" +#include "splineoptions.h" #include "textoptions.h" +#include "trimamountoptions.h" #ifdef RS_PROF #include "qg_polylineoptions.h" @@ -227,7 +212,7 @@ void QG_DialogFactory::requestWarningDialog(const QString & warning) /** * Requests a new document from the main window. */ -RS_GraphicView * QG_DialogFactory::requestNewDocument(const QString & fileName, RS_Document * doc) +GraphicView * QG_DialogFactory::requestNewDocument(const QString & fileName, RS_Document * doc) { if (mainWindow != NULL) { @@ -354,17 +339,8 @@ RS_Layer * QG_DialogFactory::requestEditLayerDialog(RS_LayerList * layerList) { RS_DEBUG->print("QG_DialogFactory::requestEditLayerDialog"); RS_Layer * layer = NULL; - /* - if (layerList==NULL) { - if (container!=NULL && container->rtti()==RS2::EntityGraphic) { - layerList = (RS_LayerList*)container; - } else { - return NULL; - } - } - */ - if (layerList == NULL) + if (!layerList) { RS_DEBUG->print(RS_Debug::D_WARNING, "QG_DialogFactory::requestEditLayerDialog(): " "layerList is NULL"); @@ -372,7 +348,7 @@ RS_Layer * QG_DialogFactory::requestEditLayerDialog(RS_LayerList * layerList) } // Layer for parameter livery - if (layerList->getActive() != NULL) + if (layerList->getActive()) { layer = new RS_Layer(*layerList->getActive()); @@ -725,7 +701,7 @@ QString QG_DialogFactory::requestImageOpenDialog() return fn; } -void QG_DialogFactory::requestOptions(RS_ActionInterface * action, bool on, bool update) +void QG_DialogFactory::requestOptions(ActionInterface * action, bool on, bool update) { RS_DEBUG->print("QG_DialogFactory::requestOptions"); @@ -814,7 +790,7 @@ void QG_DialogFactory::requestOptions(RS_ActionInterface * action, bool on, bool case RS2::ActionDimLinear: requestDimensionOptions(action, on, update); - if (((RS_ActionDimLinear *)action)->hasFixedAngle() == false) + if (((ActionDimLinear *)action)->hasFixedAngle() == false) requestDimLinearOptions(action, on, update); break; @@ -861,7 +837,7 @@ void QG_DialogFactory::requestOptions(RS_ActionInterface * action, bool on, bool /** * Shows a widget for options for the action: "print preview" */ -void QG_DialogFactory::requestPrintPreviewOptions(RS_ActionInterface * action, bool on, bool update) +void QG_DialogFactory::requestPrintPreviewOptions(ActionInterface * action, bool on, bool update) { static PrintPreviewOptions * toolWidget = NULL; @@ -884,7 +860,7 @@ void QG_DialogFactory::requestPrintPreviewOptions(RS_ActionInterface * action, b /** * Shows a widget for options for the action: "draw line" */ -void QG_DialogFactory::requestLineOptions(RS_ActionInterface * action, bool on) +void QG_DialogFactory::requestLineOptions(ActionInterface * action, bool on) { /* The way I see it, this is failure. We're constantly creating & deleting @@ -917,42 +893,45 @@ them over and over. May need to do some more refactoring based on this idea... /** * Shows a widget for options for the action: "draw polyline" */ -void QG_DialogFactory::requestPolylineOptions(RS_ActionInterface * action, bool on, bool update) +void QG_DialogFactory::requestPolylineOptions(ActionInterface * action, bool on, bool update) { #ifdef RS_PROF - static QG_PolylineOptions * toolWidget = NULL; + static PolylineOptions * toolWidget = NULL; - if (optionWidget != NULL) + if (!optionWidget) + return; + + if (toolWidget) { - if (toolWidget != NULL) - { - delete toolWidget; - toolWidget = NULL; - } - if (on && toolWidget == NULL) - { - toolWidget = new QG_PolylineOptions(optionWidget); - toolWidget->setAction(action, update); - } + delete toolWidget; + toolWidget = NULL; + } + + if (on) + { + toolWidget = new PolylineOptions(optionWidget); + toolWidget->setAction(action, update); } #endif } -#if 0 /** * Shows a widget for options for the action: "draw line parallel" */ -void QG_DialogFactory::requestLineParallelOptions(RS_ActionInterface * action, bool on, bool update) +void QG_DialogFactory::requestLineParallelOptions(ActionInterface * action, bool on, bool update) { - static QG_LineParallelOptions* toolWidget = NULL; + static LineParallelOptions * toolWidget = NULL; - if (optionWidget!=NULL) { - if (toolWidget!=NULL) { + if (optionWidget!=NULL) + { + if (toolWidget!=NULL) + { delete toolWidget; toolWidget = NULL; } - if (on==true && toolWidget==NULL) { - toolWidget = new QG_LineParallelOptions(optionWidget); + if (on==true && toolWidget==NULL) + { + toolWidget = new LineParallelOptions(optionWidget); toolWidget->setAction(action, update); } } @@ -961,10 +940,9 @@ void QG_DialogFactory::requestLineParallelOptions(RS_ActionInterface * action, b /** * Shows a widget for options for the action: "draw line parallel through" */ -void QG_DialogFactory::requestLineParallelThroughOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestLineParallelThroughOptions(ActionInterface * action, bool on, bool update) { - static QG_LineParallelThroughOptions* toolWidget = NULL; + static LineParallelThroughOptions * toolWidget = NULL; if (optionWidget!=NULL) { if (toolWidget!=NULL) { @@ -972,7 +950,7 @@ void QG_DialogFactory::requestLineParallelThroughOptions(RS_ActionInterface* act toolWidget = NULL; } if (on==true && toolWidget==NULL) { - toolWidget = new QG_LineParallelThroughOptions(optionWidget); + toolWidget = new LineParallelThroughOptions(optionWidget); toolWidget->setAction(action, update); } } @@ -981,52 +959,55 @@ void QG_DialogFactory::requestLineParallelThroughOptions(RS_ActionInterface* act /** * Shows a widget for options for the action: "line angle" */ -void QG_DialogFactory::requestLineAngleOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestLineAngleOptions(ActionInterface * action, bool on, bool update) { - static QG_LineAngleOptions* toolWidget = NULL; + static LineAngleOptions * toolWidget = NULL; - if (optionWidget!=NULL) { - if (toolWidget!=NULL) { - delete toolWidget; - toolWidget = NULL; - } - if (on==true && toolWidget==NULL) { - toolWidget = new QG_LineAngleOptions(optionWidget); - toolWidget->setAction(action, update); - //toolWidget->setData(&angle, &length, fixedAngle, update); - } - } + if (!optionWidget) + return; + + if (toolWidget) + { + delete toolWidget; + toolWidget = NULL; + } + + if (on) + { + toolWidget = new LineAngleOptions(optionWidget); + toolWidget->setAction(action, update); + } } /** * Shows a widget for options for the action: "line relative angle" */ -void QG_DialogFactory::requestLineRelAngleOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestLineRelAngleOptions(ActionInterface * action, bool on, bool update) { - static QG_LineRelAngleOptions* toolWidget = NULL; + static LineRelAngleOptions * toolWidget = NULL; - if (optionWidget!=NULL) { - if (toolWidget!=NULL) { - delete toolWidget; - toolWidget = NULL; - } - if (on==true && toolWidget==NULL) { - toolWidget = new QG_LineRelAngleOptions(optionWidget); - toolWidget->setAction(action, update); - //toolWidget->setData(&angle, &length, fixedAngle, update); - } - } + if (!optionWidget) + return; + + if (toolWidget) + { + delete toolWidget; + toolWidget = NULL; + } + + if (on) + { + toolWidget = new LineRelAngleOptions(optionWidget); + toolWidget->setAction(action, update); + } } /** * Shows a widget for options for the action: "line angle" */ -void QG_DialogFactory::requestLineBisectorOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestLineBisectorOptions(ActionInterface * action, bool on, bool update) { - static QG_LineBisectorOptions* toolWidget = NULL; + static LineBisectorOptions * toolWidget = NULL; if (optionWidget!=NULL) { if (toolWidget!=NULL) { @@ -1034,7 +1015,7 @@ void QG_DialogFactory::requestLineBisectorOptions(RS_ActionInterface* action, toolWidget = NULL; } if (on==true && toolWidget==NULL) { - toolWidget = new QG_LineBisectorOptions(optionWidget); + toolWidget = new LineBisectorOptions(optionWidget); toolWidget->setAction(action, update); } } @@ -1043,10 +1024,9 @@ void QG_DialogFactory::requestLineBisectorOptions(RS_ActionInterface* action, /** * Shows a widget for options for the action: "draw polygon" */ -void QG_DialogFactory::requestLinePolygonOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestLinePolygonOptions(ActionInterface * action, bool on, bool update) { - static QG_LinePolygonOptions* toolWidget = NULL; + static LinePolygonOptions * toolWidget = NULL; if (optionWidget!=NULL) { if (toolWidget!=NULL) { @@ -1054,7 +1034,7 @@ void QG_DialogFactory::requestLinePolygonOptions(RS_ActionInterface* action, toolWidget = NULL; } if (on==true && toolWidget==NULL) { - toolWidget = new QG_LinePolygonOptions(optionWidget); + toolWidget = new LinePolygonOptions(optionWidget); toolWidget->setAction(action, update); } } @@ -1063,10 +1043,9 @@ void QG_DialogFactory::requestLinePolygonOptions(RS_ActionInterface* action, /** * Shows a widget for options for the action: "draw polygon2" */ -void QG_DialogFactory::requestLinePolygon2Options(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestLinePolygon2Options(ActionInterface * action, bool on, bool update) { - static QG_LinePolygon2Options* toolWidget = NULL; + static LinePolygon2Options * toolWidget = NULL; if (optionWidget!=NULL) { if (toolWidget!=NULL) { @@ -1074,160 +1053,135 @@ void QG_DialogFactory::requestLinePolygon2Options(RS_ActionInterface* action, toolWidget = NULL; } if (on==true && toolWidget==NULL) { - toolWidget = new QG_LinePolygon2Options(optionWidget); + toolWidget = new LinePolygon2Options(optionWidget); toolWidget->setAction(action, update); } } } /** - * Shows a widget for spline options. + * Shows a widget for arc options. */ -void QG_DialogFactory::requestSplineOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestArcOptions(ActionInterface * action, bool on, bool update) { - static QG_SplineOptions* toolWidget = NULL; + static ArcOptions * toolWidget = NULL; - if (optionWidget!=NULL) { - if (toolWidget!=NULL) { - delete toolWidget; - toolWidget = NULL; - } - if (on==true && toolWidget==NULL) { - toolWidget = new QG_SplineOptions(optionWidget); - toolWidget->setAction(action, update); - } - } + if (optionWidget != NULL) + { + if (toolWidget != NULL) + { + delete toolWidget; + toolWidget = NULL; + } + + if (on && toolWidget == NULL) + { + toolWidget = new ArcOptions(optionWidget); + toolWidget->setAction(action, update); + //toolWidget->setData(&data); + } + } } /** - * Shows a widget for insert options. + * Shows a widget for tangential arc options. */ -void QG_DialogFactory::requestInsertOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestArcTangentialOptions(ActionInterface * action, bool on, bool update) { - static QG_InsertOptions* toolWidget = NULL; + static ArcTangentialOptions * toolWidget = NULL; - if (optionWidget!=NULL) { - if (toolWidget!=NULL) { - delete toolWidget; - toolWidget = NULL; - } - if (on==true && toolWidget==NULL) { - toolWidget = new QG_InsertOptions(optionWidget); - toolWidget->setAction(action, update); - } - } -} + if (!optionWidget) + return; -/** - * Shows a widget for image options. - */ -void QG_DialogFactory::requestImageOptions(RS_ActionInterface* action, - bool on, bool update) -{ - static QG_ImageOptions* toolWidget = NULL; + if (toolWidget) + { + delete toolWidget; + toolWidget = NULL; + } - if (optionWidget!=NULL) { - if (toolWidget!=NULL) { - delete toolWidget; - toolWidget = NULL; - } - if (on==true && toolWidget==NULL) { - toolWidget = new QG_ImageOptions(optionWidget); - toolWidget->setAction(action, update); - } - } + if (on) + { + toolWidget = new ArcTangentialOptions(optionWidget); + toolWidget->setAction(action, update); + //toolWidget->setData(&data); + } } /** - * Shows a widget for dimension options. + * Shows a widget for circle options. */ -void QG_DialogFactory::requestDimensionOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestCircleOptions(ActionInterface * action, bool on, bool update) { - //static QLabel* l = NULL; - static QG_DimOptions* toolWidget = NULL; + static CircleOptions * toolWidget = NULL; - if (optionWidget!=NULL) { - if (toolWidget!=NULL) { + if (optionWidget) + { + if (toolWidget) + { delete toolWidget; toolWidget = NULL; } - if (on==true && toolWidget==NULL) { - toolWidget = new QG_DimOptions(optionWidget); + + if (on && toolWidget == NULL) + { + toolWidget = new CircleOptions(optionWidget); toolWidget->setAction(action, update); } } } /** - * Shows a widget for linear dimension options. + * Shows a widget for spline options. */ -void QG_DialogFactory::requestDimLinearOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestSplineOptions(ActionInterface * action, bool on, bool update) { - //static QLabel* l = NULL; - static QG_DimLinearOptions* toolWidget = NULL; + static SplineOptions * toolWidget = NULL; - if (optionWidget!=NULL) { - if (toolWidget!=NULL) { - delete toolWidget; - toolWidget = NULL; - } - if (on==true && toolWidget==NULL) { - toolWidget = new QG_DimLinearOptions(optionWidget); - toolWidget->setAction(action, update); - } - } -} + if (!optionWidget) + return; -/** - * Shows a widget for 'snap to a point with a given distance' options. - */ -void QG_DialogFactory::requestSnapDistOptions(double& dist, bool on) -{ - static QG_SnapDistOptions* toolWidget = NULL; + if (toolWidget) + { + delete toolWidget; + toolWidget = NULL; + } - if (optionWidget!=NULL) { - if (toolWidget!=NULL) { - delete toolWidget; - toolWidget = NULL; - } - if (on==true && toolWidget==NULL) { - toolWidget = new QG_SnapDistOptions(optionWidget); - toolWidget->setDist(&dist); - } - } + if (on) + { + toolWidget = new SplineOptions(optionWidget); + toolWidget->setAction(action, update); + } } /** - * Shows a widget for 'snap to a point with a given distance' options. + * Shows a widget for text options. */ -void QG_DialogFactory::requestMoveRotateOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestTextOptions(ActionInterface * action, bool on, bool update) { - static QG_MoveRotateOptions* toolWidget = NULL; + static TextOptions * toolWidget = NULL; - if (optionWidget!=NULL) { - if (toolWidget!=NULL) { - delete toolWidget; - toolWidget = NULL; - } - if (on==true && toolWidget==NULL) { - toolWidget = new QG_MoveRotateOptions(optionWidget); - toolWidget->setAction(action, update); - } - } + if (!optionWidget) + return; + + if (toolWidget) + { + delete toolWidget; + toolWidget = NULL; + } + + if (on) + { + toolWidget = new TextOptions(optionWidget); + toolWidget->setAction(action, update); + } } /** - * Shows a widget for 'trim amount' options. + * Shows a widget for insert options. */ -void QG_DialogFactory::requestTrimAmountOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestInsertOptions(ActionInterface * action, bool on, bool update) { - static QG_TrimAmountOptions* toolWidget = NULL; + static InsertOptions * toolWidget = NULL; if (optionWidget!=NULL) { if (toolWidget!=NULL) { @@ -1235,19 +1189,18 @@ void QG_DialogFactory::requestTrimAmountOptions(RS_ActionInterface* action, toolWidget = NULL; } if (on==true && toolWidget==NULL) { - toolWidget = new QG_TrimAmountOptions(optionWidget); + toolWidget = new InsertOptions(optionWidget); toolWidget->setAction(action, update); } } } /** - * Shows a widget for rounding options. + * Shows a widget for image options. */ -void QG_DialogFactory::requestRoundOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestImageOptions(ActionInterface * action, bool on, bool update) { - static QG_RoundOptions* toolWidget = NULL; + static ImageOptions * toolWidget = NULL; if (optionWidget!=NULL) { if (toolWidget!=NULL) { @@ -1255,19 +1208,18 @@ void QG_DialogFactory::requestRoundOptions(RS_ActionInterface* action, toolWidget = NULL; } if (on==true && toolWidget==NULL) { - toolWidget = new QG_RoundOptions(optionWidget); + toolWidget = new ImageOptions(optionWidget); toolWidget->setAction(action, update); } } } /** - * Shows a widget for library insert options. + * Shows a widget for dimension options. */ -void QG_DialogFactory::requestLibraryInsertOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestDimensionOptions(ActionInterface * action, bool on, bool update) { - static QG_LibraryInsertOptions* toolWidget = NULL; + static DimOptions * toolWidget = NULL; if (optionWidget!=NULL) { if (toolWidget!=NULL) { @@ -1275,70 +1227,64 @@ void QG_DialogFactory::requestLibraryInsertOptions(RS_ActionInterface* action, toolWidget = NULL; } if (on==true && toolWidget==NULL) { - toolWidget = new QG_LibraryInsertOptions(optionWidget); + toolWidget = new DimOptions(optionWidget); toolWidget->setAction(action, update); } } } -#else -void QG_DialogFactory::requestLineParallelOptions(RS_ActionInterface * action, bool on, bool update) -{ -} - -void QG_DialogFactory::requestLineParallelThroughOptions(RS_ActionInterface* action, bool on, bool update) -{ -} - -void QG_DialogFactory::requestLineAngleOptions(RS_ActionInterface* action, bool on, bool update) -{ -} -void QG_DialogFactory::requestLineRelAngleOptions(RS_ActionInterface* action, bool on, bool update) +/** + * Shows a widget for linear dimension options. + */ +void QG_DialogFactory::requestDimLinearOptions(ActionInterface * action, bool on, bool update) { -} + static DimLinearOptions * toolWidget = NULL; -void QG_DialogFactory::requestLineBisectorOptions(RS_ActionInterface* action, bool on, bool update) -{ -} + if (!optionWidget) + return; -void QG_DialogFactory::requestLinePolygonOptions(RS_ActionInterface* action, bool on, bool update) -{ -} + if (toolWidget) + { + delete toolWidget; + toolWidget = NULL; + } -void QG_DialogFactory::requestLinePolygon2Options(RS_ActionInterface* action, bool on, bool update) -{ + if (on) + { + toolWidget = new DimLinearOptions(optionWidget); + toolWidget->setAction(action, update); + } } /** - * Shows a widget for arc options. + * Shows a widget for 'snap to a point with a given distance' options. */ -void QG_DialogFactory::requestArcOptions(RS_ActionInterface * action, bool on, bool update) +void QG_DialogFactory::requestSnapDistOptions(double & dist, bool on) { - static ArcOptions * toolWidget = NULL; + static SnapDistOptions * toolWidget = NULL; - if (optionWidget != NULL) + if (!optionWidget) + return; + + if (toolWidget) { - if (toolWidget != NULL) - { - delete toolWidget; - toolWidget = NULL; - } + delete toolWidget; + toolWidget = NULL; + } - if (on && toolWidget == NULL) - { - toolWidget = new ArcOptions(optionWidget); - toolWidget->setAction(action, update); - //toolWidget->setData(&data); - } + if (on) + { + toolWidget = new SnapDistOptions(optionWidget); + toolWidget->setDist(&dist); } } /** - * Shows a widget for tangential arc options. + * Shows a widget for 'snap to a point with a given distance' options. */ -void QG_DialogFactory::requestArcTangentialOptions(RS_ActionInterface * action, bool on, bool update) +void QG_DialogFactory::requestMoveRotateOptions(ActionInterface * action, bool on, bool update) { - static ArcTangentialOptions * toolWidget = NULL; + static MoveRotateOptions * toolWidget = NULL; if (!optionWidget) return; @@ -1351,45 +1297,17 @@ void QG_DialogFactory::requestArcTangentialOptions(RS_ActionInterface * action, if (on) { - toolWidget = new ArcTangentialOptions(optionWidget); + toolWidget = new MoveRotateOptions(optionWidget); toolWidget->setAction(action, update); - //toolWidget->setData(&data); } } /** - * Shows a widget for circle options. - */ -void QG_DialogFactory::requestCircleOptions(RS_ActionInterface * action, bool on, bool update) -{ - static CircleOptions * toolWidget = NULL; - - if (optionWidget) - { - if (toolWidget) - { - delete toolWidget; - toolWidget = NULL; - } - - if (on && toolWidget == NULL) - { - toolWidget = new CircleOptions(optionWidget); - toolWidget->setAction(action, update); - } - } -} - -void QG_DialogFactory::requestSplineOptions(RS_ActionInterface* action, bool on, bool update) -{ -} - -/** - * Shows a widget for text options. + * Shows a widget for 'trim amount' options. */ -void QG_DialogFactory::requestTextOptions(RS_ActionInterface * action, bool on, bool update) +void QG_DialogFactory::requestTrimAmountOptions(ActionInterface * action, bool on, bool update) { - static TextOptions * toolWidget = NULL; + static TrimAmountOptions * toolWidget = NULL; if (!optionWidget) return; @@ -1402,43 +1320,15 @@ void QG_DialogFactory::requestTextOptions(RS_ActionInterface * action, bool on, if (on) { - toolWidget = new TextOptions(optionWidget); + toolWidget = new TrimAmountOptions(optionWidget); toolWidget->setAction(action, update); } } -void QG_DialogFactory::requestInsertOptions(RS_ActionInterface* action, bool on, bool update) -{ -} - -void QG_DialogFactory::requestImageOptions(RS_ActionInterface* action, bool on, bool update) -{ -} - -void QG_DialogFactory::requestDimensionOptions(RS_ActionInterface* action, bool on, bool update) -{ -} - -void QG_DialogFactory::requestDimLinearOptions(RS_ActionInterface* action, bool on, bool update) -{ -} - -void QG_DialogFactory::requestSnapDistOptions(double& dist, bool on) -{ -} - -void QG_DialogFactory::requestMoveRotateOptions(RS_ActionInterface* action, bool on, bool update) -{ -} - -void QG_DialogFactory::requestTrimAmountOptions(RS_ActionInterface* action, bool on, bool update) -{ -} - /** * Shows a widget for beveling options. */ -void QG_DialogFactory::requestBevelOptions(RS_ActionInterface * action, bool on, bool update) +void QG_DialogFactory::requestBevelOptions(ActionInterface * action, bool on, bool update) { static BevelOptions * toolWidget = NULL; @@ -1458,41 +1348,114 @@ void QG_DialogFactory::requestBevelOptions(RS_ActionInterface * action, bool on, } } -void QG_DialogFactory::requestRoundOptions(RS_ActionInterface* action, bool on, bool update) +/** + * Shows a widget for rounding options. + */ +void QG_DialogFactory::requestRoundOptions(ActionInterface * action, bool on, bool update) { + static RoundOptions * toolWidget = NULL; + + if (!optionWidget) + return; + + if (toolWidget) + { + delete toolWidget; + toolWidget = NULL; + } + + if (on) + { + toolWidget = new RoundOptions(optionWidget); + toolWidget->setAction(action, update); + } } -void QG_DialogFactory::requestLibraryInsertOptions(RS_ActionInterface* action, bool on, bool update) +/** + * Shows a widget for library insert options. + */ +void QG_DialogFactory::requestLibraryInsertOptions(ActionInterface * action, bool on, bool update) { + static LibraryInsertOptions * toolWidget = NULL; + + if (!optionWidget) + return; + + if (toolWidget) + { + delete toolWidget; + toolWidget = NULL; + } + + if (on) + { + toolWidget = new LibraryInsertOptions(optionWidget); + toolWidget->setAction(action, update); + } } -#endif /** * Shows the given toolbar. */ void QG_DialogFactory::requestToolBar(RS2::ToolBarId id) { - if (cadToolBar != NULL) + if (cadToolBar) cadToolBar->showToolBar(id); } /** * Shows the select toolbar with the given action to launch. */ -void QG_DialogFactory::requestToolBarSelect(RS_ActionInterface * selectAction, +void QG_DialogFactory::requestToolBarSelect(ActionInterface * selectAction, RS2::ActionType nextAction) { if (cadToolBar != NULL) cadToolBar->showToolBarSelect(selectAction, nextAction); } -#if 0 +/** + * Shows a dialog to edit the attributes of the given dimension entity. + */ + /* +bool QG_DialogFactory::requestDimAlignedDialog(RS_DimAligned* dim) { + if (dim==NULL) { + return false; + } + + QG_DlgDimAligned dlg(parent); + dlg.setDim(*dim, true); + if (dlg.exec()) { + dlg.updateDim(); + return true; + } + + return false; +} +*/ + +/** + * Shows attributes options dialog presenting the given data. + */ +bool QG_DialogFactory::requestAttributesDialog(RS_AttributesData & data, RS_LayerList & layerList) +{ + DlgAttributes dlg(parent); + dlg.setData(&data, layerList); + + if (dlg.exec()) + { + dlg.updateData(); + return true; + } + + return false; +} + /** * Shows move options dialog presenting the given data. */ bool QG_DialogFactory::requestMoveDialog(RS_MoveData & data) { - QG_DlgMove dlg(parent); + DlgMove dlg(parent); dlg.setData(&data); if (dlg.exec()) @@ -1509,7 +1472,7 @@ bool QG_DialogFactory::requestMoveDialog(RS_MoveData & data) */ bool QG_DialogFactory::requestRotateDialog(RS_RotateData & data) { - QG_DlgRotate dlg(parent); + DlgRotate dlg(parent); dlg.setData(&data); if (dlg.exec()) @@ -1526,7 +1489,7 @@ bool QG_DialogFactory::requestRotateDialog(RS_RotateData & data) */ bool QG_DialogFactory::requestScaleDialog(RS_ScaleData & data) { - QG_DlgScale dlg(parent); + DlgScale dlg(parent); dlg.setData(&data); if (dlg.exec()) @@ -1543,7 +1506,7 @@ bool QG_DialogFactory::requestScaleDialog(RS_ScaleData & data) */ bool QG_DialogFactory::requestMirrorDialog(RS_MirrorData & data) { - QG_DlgMirror dlg(parent); + DlgMirror dlg(parent); dlg.setData(&data); if (dlg.exec()) @@ -1560,7 +1523,7 @@ bool QG_DialogFactory::requestMirrorDialog(RS_MirrorData & data) */ bool QG_DialogFactory::requestMoveRotateDialog(RS_MoveRotateData & data) { - QG_DlgMoveRotate dlg(parent); + DlgMoveRotate dlg(parent); dlg.setData(&data); if (dlg.exec()) @@ -1577,7 +1540,7 @@ bool QG_DialogFactory::requestMoveRotateDialog(RS_MoveRotateData & data) */ bool QG_DialogFactory::requestRotate2Dialog(RS_Rotate2Data & data) { - QG_DlgRotate2 dlg(parent); + DlgRotate2 dlg(parent); dlg.setData(&data); if (dlg.exec()) @@ -1603,7 +1566,7 @@ bool QG_DialogFactory::requestModifyEntityDialog(RS_Entity * entity) { case RS2::EntityPoint: { - QG_DlgPoint dlg(parent); + DlgPoint dlg(parent); dlg.setPoint(*((RS_Point *)entity)); if (dlg.exec()) @@ -1616,7 +1579,7 @@ bool QG_DialogFactory::requestModifyEntityDialog(RS_Entity * entity) case RS2::EntityLine: { - QG_DlgLine dlg(parent); + DlgLine dlg(parent); dlg.setLine(*((RS_Line *)entity)); if (dlg.exec()) @@ -1629,7 +1592,7 @@ bool QG_DialogFactory::requestModifyEntityDialog(RS_Entity * entity) case RS2::EntityArc: { - QG_DlgArc dlg(parent); + DlgArc dlg(parent); dlg.setArc(*((RS_Arc *)entity)); if (dlg.exec()) @@ -1642,7 +1605,7 @@ bool QG_DialogFactory::requestModifyEntityDialog(RS_Entity * entity) case RS2::EntityCircle: { - QG_DlgCircle dlg(parent); + DlgCircle dlg(parent); dlg.setCircle(*((RS_Circle *)entity)); if (dlg.exec()) @@ -1655,7 +1618,7 @@ bool QG_DialogFactory::requestModifyEntityDialog(RS_Entity * entity) case RS2::EntityEllipse: { - QG_DlgEllipse dlg(parent); + DlgEllipse dlg(parent); dlg.setEllipse(*((RS_Ellipse *)entity)); if (dlg.exec()) @@ -1668,7 +1631,7 @@ bool QG_DialogFactory::requestModifyEntityDialog(RS_Entity * entity) case RS2::EntitySpline: { - QG_DlgSpline dlg(parent); + DlgSpline dlg(parent); dlg.setSpline(*((RS_Spline *)entity)); if (dlg.exec()) @@ -1681,7 +1644,7 @@ bool QG_DialogFactory::requestModifyEntityDialog(RS_Entity * entity) case RS2::EntityInsert: { - QG_DlgInsert dlg(parent); + DlgInsert dlg(parent); dlg.setInsert(*((RS_Insert *)entity)); if (dlg.exec()) @@ -1698,7 +1661,7 @@ bool QG_DialogFactory::requestModifyEntityDialog(RS_Entity * entity) case RS2::EntityDimDiametric: case RS2::EntityDimRadial: { - QG_DlgDimension dlg(parent); + DlgDimension dlg(parent); dlg.setDim(*((RS_Dimension *)entity)); if (dlg.exec()) @@ -1712,7 +1675,7 @@ bool QG_DialogFactory::requestModifyEntityDialog(RS_Entity * entity) case RS2::EntityDimLinear: { - QG_DlgDimLinear dlg(parent); + DlgDimLinear dlg(parent); dlg.setDim(*((RS_DimLinear *)entity)); if (dlg.exec()) @@ -1726,7 +1689,7 @@ bool QG_DialogFactory::requestModifyEntityDialog(RS_Entity * entity) case RS2::EntityText: { - QG_DlgText dlg(parent); + DlgText dlg(parent); dlg.setText(*((RS_Text *)entity), false); if (dlg.exec()) @@ -1740,7 +1703,7 @@ bool QG_DialogFactory::requestModifyEntityDialog(RS_Entity * entity) case RS2::EntityHatch: { - QG_DlgHatch dlg(parent); + DlgHatch dlg(parent); dlg.setHatch(*((RS_Hatch *)entity), false); if (dlg.exec()) @@ -1759,22 +1722,8 @@ bool QG_DialogFactory::requestModifyEntityDialog(RS_Entity * entity) return ret; } -/** - * Shows a dialog to edit the attributes of the given dimension entity. - */ /* bool QG_DialogFactory::requestDimAlignedDialog(RS_DimAligned* dim) { - if (dim==NULL) { - return false; - } - - QG_DlgDimAligned dlg(parent); - dlg.setDim(*dim, true); - if (dlg.exec()) { - dlg.updateDim(); - return true; - } - return false; } */ @@ -1787,7 +1736,7 @@ bool QG_DialogFactory::requestTextDialog(RS_Text * text) if (text == NULL) return false; - QG_DlgText dlg(parent); + DlgText dlg(parent); dlg.setText(*text, true); if (dlg.exec()) @@ -1809,7 +1758,7 @@ bool QG_DialogFactory::requestHatchDialog(RS_Hatch * hatch) RS_PATTERNLIST->init(); - QG_DlgHatch dlg(parent); + DlgHatch dlg(parent); dlg.setHatch(*hatch, true); if (dlg.exec()) @@ -1820,260 +1769,6 @@ bool QG_DialogFactory::requestHatchDialog(RS_Hatch * hatch) return false; } -#else -/** - * Shows attributes options dialog presenting the given data. - */ -bool QG_DialogFactory::requestAttributesDialog(RS_AttributesData & data, RS_LayerList & layerList) -{ - DlgAttributes dlg(parent); - dlg.setData(&data, layerList); - - if (dlg.exec()) - { - dlg.updateData(); - return true; - } - - return false; -} - -bool QG_DialogFactory::requestMoveDialog(RS_MoveData & data) -{ - return false; -} - -bool QG_DialogFactory::requestRotateDialog(RS_RotateData & data) -{ - return false; -} - -bool QG_DialogFactory::requestScaleDialog(RS_ScaleData & data) -{ - return false; -} - -bool QG_DialogFactory::requestMirrorDialog(RS_MirrorData & data) -{ - return false; -} - -bool QG_DialogFactory::requestMoveRotateDialog(RS_MoveRotateData & data) -{ - return false; -} - -bool QG_DialogFactory::requestRotate2Dialog(RS_Rotate2Data & data) -{ - return false; -} - -/** - * Shows a dialog to edit the given entity. - */ -bool QG_DialogFactory::requestModifyEntityDialog(RS_Entity * entity) -{ - if (entity == NULL) - return false; - - bool ret = false; - - switch (entity->rtti()) - { -//NOTE: These #if 0's are put here until these missing dialogs can be ported to Qt4. -#if 0 - case RS2::EntityPoint: - { - QG_DlgPoint dlg(parent); - dlg.setPoint(*((RS_Point *)entity)); - - if (dlg.exec()) - { - dlg.updatePoint(); - ret = true; - } - } - break; - - case RS2::EntityLine: - { - QG_DlgLine dlg(parent); - dlg.setLine(*((RS_Line *)entity)); - - if (dlg.exec()) - { - dlg.updateLine(); - ret = true; - } - } - break; - - case RS2::EntityArc: - { - QG_DlgArc dlg(parent); - dlg.setArc(*((RS_Arc *)entity)); - - if (dlg.exec()) - { - dlg.updateArc(); - ret = true; - } - } - break; - - case RS2::EntityCircle: - { - QG_DlgCircle dlg(parent); - dlg.setCircle(*((RS_Circle *)entity)); - - if (dlg.exec()) - { - dlg.updateCircle(); - ret = true; - } - } - break; - - case RS2::EntityEllipse: - { - QG_DlgEllipse dlg(parent); - dlg.setEllipse(*((RS_Ellipse *)entity)); - - if (dlg.exec()) - { - dlg.updateEllipse(); - ret = true; - } - } - break; - - case RS2::EntitySpline: - { - QG_DlgSpline dlg(parent); - dlg.setSpline(*((RS_Spline *)entity)); - - if (dlg.exec()) - { - dlg.updateSpline(); - ret = true; - } - } - break; - - case RS2::EntityInsert: - { - QG_DlgInsert dlg(parent); - dlg.setInsert(*((RS_Insert *)entity)); - - if (dlg.exec()) - { - dlg.updateInsert(); - ret = true; - entity->update(); - } - } - break; - - case RS2::EntityDimAligned: - case RS2::EntityDimAngular: - case RS2::EntityDimDiametric: - case RS2::EntityDimRadial: - { - QG_DlgDimension dlg(parent); - dlg.setDim(*((RS_Dimension *)entity)); - - if (dlg.exec()) - { - dlg.updateDim(); - ret = true; - ((RS_Dimension *)entity)->update(true); - } - } - break; - - case RS2::EntityDimLinear: - { - QG_DlgDimLinear dlg(parent); - dlg.setDim(*((RS_DimLinear *)entity)); - - if (dlg.exec()) - { - dlg.updateDim(); - ret = true; - ((RS_DimLinear *)entity)->update(true); - } - } - break; -#endif - - case RS2::EntityText: - { - DlgText dlg(parent); - dlg.setText(*((RS_Text *)entity), false); - - if (dlg.exec()) - { - dlg.updateText(); - ret = true; - ((RS_Text *)entity)->update(); - } - } - break; - -#if 0 - case RS2::EntityHatch: - { - QG_DlgHatch dlg(parent); - dlg.setHatch(*((RS_Hatch *)entity), false); - - if (dlg.exec()) - { - dlg.updateHatch(); - ret = true; - ((RS_Hatch *)entity)->update(); - } - } - break; -#endif - - default: - break; - } - - return ret; -} - - /* -bool QG_DialogFactory::requestDimAlignedDialog(RS_DimAligned* dim) { - return false; -} -*/ - -/** - * Shows a dialog to edit the attributes of the given text entity. - */ -bool QG_DialogFactory::requestTextDialog(RS_Text * text) -{ - if (text == NULL) - return false; - - DlgText dlg(parent); - dlg.setText(*text, true); - - if (dlg.exec()) - { - dlg.updateText(); - return true; - } - - return false; -} - -bool QG_DialogFactory::requestHatchDialog(RS_Hatch * hatch) -{ - return false; -} -#endif #ifdef RS_CAM /** @@ -2139,10 +1834,10 @@ void QG_DialogFactory::updateCoordinateWidget(const Vector & abs, */ void QG_DialogFactory::updateMouseWidget(const QString & left, const QString & right) { - if (mouseWidget != NULL) + if (mouseWidget) mouseWidget->setHelp(left, right); - if (commandWidget != NULL) + if (commandWidget) commandWidget->setCommand(left); }