X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fwidgets%2Fqg_dialogfactory.cpp;h=aee82b4097f3668cec79c8b99265e49b3733ad96;hb=865303923fcb231a171992b75a73364ff469ff8c;hp=f698cdb363eb8c51ee613894c441f844d6ba4f5b;hpb=89e127aa3dbd74d3158e6dbe0ca1703420c04395;p=architektonas diff --git a/src/widgets/qg_dialogfactory.cpp b/src/widgets/qg_dialogfactory.cpp index f698cdb..aee82b4 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,84 +16,70 @@ #include "qg_dialogfactory.h" +#include "graphicview.h" #include "qg_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_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" #include "blockdialog.h" #include "cadtoolbar.h" +#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" @@ -109,7 +97,8 @@ * @param parent Pointer to parent widget which can host dialogs. * @param ow Pointer to widget that can host option widgets. */ -QG_DialogFactory::QG_DialogFactory(QWidget * parent, QWidget * ow): +//QG_DialogFactory::QG_DialogFactory(QWidget * parent, QWidget * ow): +QG_DialogFactory::QG_DialogFactory(QWidget * parent, QToolBar * ow): RS_DialogFactoryInterface() { RS_DEBUG->print("QG_DialogFactory::QG_DialogFactory"); @@ -138,7 +127,8 @@ QG_DialogFactory::~QG_DialogFactory() /** * Links factory to a widget that can host tool options. */ -/*virtual*/ void QG_DialogFactory::setOptionWidget(QWidget * ow) +///*virtual*/ void QG_DialogFactory::setOptionWidget(QWidget * ow) +/*virtual*/ void QG_DialogFactory::setOptionWidget(QToolBar * ow) { RS_DEBUG->print("QG_DialogFactory::setOptionWidget"); optionWidget = ow; @@ -221,7 +211,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) { @@ -719,7 +709,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"); @@ -808,7 +798,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; @@ -855,45 +845,54 @@ 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; - if (optionWidget != NULL) + if (!optionWidget) + return; + + if (toolWidget) { - if (toolWidget != NULL) - { - delete toolWidget; - toolWidget = NULL; - } - if (on && toolWidget == NULL) - { - toolWidget = new PrintPreviewOptions(optionWidget); - toolWidget->setAction(action, update); - } + delete toolWidget; + toolWidget = NULL; + } + + if (on) + { + toolWidget = new PrintPreviewOptions(optionWidget); + toolWidget->setAction(action, update); } } /** * 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 +these objects all the time when we could create them once, and then reuse +them over and over. May need to do some more refactoring based on this idea... +*/ + //ugh. static LineOptions * toolWidget = NULL; - if (optionWidget != NULL) + if (!optionWidget) + return; + + // Get rid of the LineOptions object if it exists... + if (toolWidget) { - if (toolWidget != NULL) - { - delete toolWidget; - toolWidget = NULL; - } + delete toolWidget; + toolWidget = NULL; + } - if (on == true && toolWidget == NULL) - { - toolWidget = new LineOptions(optionWidget); - toolWidget->setAction(action); - } + // Create a new one for the passed in action + if (on) + { + toolWidget = new LineOptions(optionWidget); + toolWidget->setAction(action); } RS_DEBUG->print("QG_DialogFactory::requestLineOptions: OK"); @@ -902,42 +901,45 @@ void QG_DialogFactory::requestLineOptions(RS_ActionInterface * action, bool on) /** * 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); } } @@ -946,10 +948,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) { @@ -957,7 +958,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); } } @@ -966,52 +967,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) { @@ -1019,7 +1023,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); } } @@ -1028,10 +1032,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) { @@ -1039,7 +1042,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); } } @@ -1048,10 +1051,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) { @@ -1059,7 +1061,7 @@ 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); } } @@ -1068,60 +1070,69 @@ void QG_DialogFactory::requestLinePolygon2Options(RS_ActionInterface* action, /** * Shows a widget for arc options. */ -void QG_DialogFactory::requestArcOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestArcOptions(ActionInterface * action, bool on, bool update) { - static QG_ArcOptions* toolWidget = NULL; + static ArcOptions * toolWidget = NULL; - if (optionWidget!=NULL) { - if (toolWidget!=NULL) { - delete toolWidget; - toolWidget = NULL; - } - if (on==true && toolWidget==NULL) { - toolWidget = new QG_ArcOptions(optionWidget); - toolWidget->setAction(action, update); - //toolWidget->setData(&data); - } - } + 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 tangential arc options. */ -void QG_DialogFactory::requestArcTangentialOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestArcTangentialOptions(ActionInterface * action, bool on, bool update) { - static QG_ArcTangentialOptions* toolWidget = NULL; + static ArcTangentialOptions * toolWidget = NULL; - if (optionWidget!=NULL) { - if (toolWidget!=NULL) { - delete toolWidget; - toolWidget = NULL; - } - if (on==true && toolWidget==NULL) { - toolWidget = new QG_ArcTangentialOptions(optionWidget); - toolWidget->setAction(action, update); - //toolWidget->setData(&data); - } - } + if (!optionWidget) + return; + + if (toolWidget) + { + delete toolWidget; + toolWidget = NULL; + } + + if (on) + { + toolWidget = new ArcTangentialOptions(optionWidget); + toolWidget->setAction(action, update); + //toolWidget->setData(&data); + } } /** - * Shows a widget for arc options. + * Shows a widget for circle options. */ -void QG_DialogFactory::requestCircleOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestCircleOptions(ActionInterface * action, bool on, bool update) { - static QG_CircleOptions* 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_CircleOptions(optionWidget); + + if (on && toolWidget == NULL) + { + toolWidget = new CircleOptions(optionWidget); toolWidget->setAction(action, update); } } @@ -1130,50 +1141,55 @@ void QG_DialogFactory::requestCircleOptions(RS_ActionInterface* action, /** * Shows a widget for spline options. */ -void QG_DialogFactory::requestSplineOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestSplineOptions(ActionInterface * action, bool on, bool update) { - static QG_SplineOptions* toolWidget = NULL; + static SplineOptions * 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) + return; + + if (toolWidget) + { + delete toolWidget; + toolWidget = NULL; + } + + if (on) + { + toolWidget = new SplineOptions(optionWidget); + toolWidget->setAction(action, update); + } } /** * Shows a widget for text options. */ -void QG_DialogFactory::requestTextOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestTextOptions(ActionInterface * action, bool on, bool update) { - static QG_TextOptions* toolWidget = NULL; + static TextOptions * toolWidget = NULL; - if (optionWidget!=NULL) { - if (toolWidget!=NULL) { - delete toolWidget; - toolWidget = NULL; - } - if (on==true && toolWidget==NULL) { - toolWidget = new QG_TextOptions(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 insert options. */ -void QG_DialogFactory::requestInsertOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestInsertOptions(ActionInterface * action, bool on, bool update) { - static QG_InsertOptions* toolWidget = NULL; + static InsertOptions * toolWidget = NULL; if (optionWidget!=NULL) { if (toolWidget!=NULL) { @@ -1181,7 +1197,7 @@ void QG_DialogFactory::requestInsertOptions(RS_ActionInterface* action, toolWidget = NULL; } if (on==true && toolWidget==NULL) { - toolWidget = new QG_InsertOptions(optionWidget); + toolWidget = new InsertOptions(optionWidget); toolWidget->setAction(action, update); } } @@ -1190,10 +1206,9 @@ void QG_DialogFactory::requestInsertOptions(RS_ActionInterface* action, /** * Shows a widget for image options. */ -void QG_DialogFactory::requestImageOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestImageOptions(ActionInterface * action, bool on, bool update) { - static QG_ImageOptions* toolWidget = NULL; + static ImageOptions * toolWidget = NULL; if (optionWidget!=NULL) { if (toolWidget!=NULL) { @@ -1201,7 +1216,7 @@ void QG_DialogFactory::requestImageOptions(RS_ActionInterface* action, toolWidget = NULL; } if (on==true && toolWidget==NULL) { - toolWidget = new QG_ImageOptions(optionWidget); + toolWidget = new ImageOptions(optionWidget); toolWidget->setAction(action, update); } } @@ -1210,11 +1225,9 @@ void QG_DialogFactory::requestImageOptions(RS_ActionInterface* action, /** * Shows a widget for dimension options. */ -void QG_DialogFactory::requestDimensionOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestDimensionOptions(ActionInterface * action, bool on, bool update) { - //static QLabel* l = NULL; - static QG_DimOptions* toolWidget = NULL; + static DimOptions * toolWidget = NULL; if (optionWidget!=NULL) { if (toolWidget!=NULL) { @@ -1222,7 +1235,7 @@ void QG_DialogFactory::requestDimensionOptions(RS_ActionInterface* action, toolWidget = NULL; } if (on==true && toolWidget==NULL) { - toolWidget = new QG_DimOptions(optionWidget); + toolWidget = new DimOptions(optionWidget); toolWidget->setAction(action, update); } } @@ -1231,98 +1244,113 @@ void QG_DialogFactory::requestDimensionOptions(RS_ActionInterface* action, /** * Shows a widget for linear dimension options. */ -void QG_DialogFactory::requestDimLinearOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestDimLinearOptions(ActionInterface * action, bool on, bool update) { - //static QLabel* l = NULL; - static QG_DimLinearOptions* toolWidget = NULL; + static DimLinearOptions * 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; + + if (toolWidget) + { + delete toolWidget; + toolWidget = NULL; + } + + if (on) + { + toolWidget = new DimLinearOptions(optionWidget); + toolWidget->setAction(action, update); + } } /** * Shows a widget for 'snap to a point with a given distance' options. */ -void QG_DialogFactory::requestSnapDistOptions(double& dist, bool on) +void QG_DialogFactory::requestSnapDistOptions(double & dist, bool on) { - static QG_SnapDistOptions* toolWidget = NULL; + static SnapDistOptions * 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 (!optionWidget) + return; + + if (toolWidget) + { + delete toolWidget; + toolWidget = NULL; + } + + if (on) + { + toolWidget = new SnapDistOptions(optionWidget); + toolWidget->setDist(&dist); + } } /** * Shows a widget for 'snap to a point with a given distance' options. */ -void QG_DialogFactory::requestMoveRotateOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestMoveRotateOptions(ActionInterface * action, bool on, bool update) { - static QG_MoveRotateOptions* toolWidget = NULL; + static MoveRotateOptions * 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 MoveRotateOptions(optionWidget); + toolWidget->setAction(action, update); + } } /** * Shows a widget for 'trim amount' options. */ -void QG_DialogFactory::requestTrimAmountOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestTrimAmountOptions(ActionInterface * action, bool on, bool update) { - static QG_TrimAmountOptions* toolWidget = NULL; + static TrimAmountOptions * toolWidget = NULL; - if (optionWidget!=NULL) { - if (toolWidget!=NULL) { - delete toolWidget; - toolWidget = NULL; - } - if (on==true && toolWidget==NULL) { - toolWidget = new QG_TrimAmountOptions(optionWidget); - toolWidget->setAction(action, update); - } - } + if (!optionWidget) + return; + + if (toolWidget) + { + delete toolWidget; + toolWidget = NULL; + } + + if (on) + { + toolWidget = new TrimAmountOptions(optionWidget); + toolWidget->setAction(action, 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 QG_BevelOptions* toolWidget = NULL; + static BevelOptions * 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_BevelOptions(optionWidget); + + if (on && toolWidget == NULL) + { + toolWidget = new BevelOptions(optionWidget); toolWidget->setAction(action, update); } } @@ -1331,151 +1359,49 @@ void QG_DialogFactory::requestBevelOptions(RS_ActionInterface* action, /** * Shows a widget for rounding options. */ -void QG_DialogFactory::requestRoundOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestRoundOptions(ActionInterface * action, bool on, bool update) { - static QG_RoundOptions* toolWidget = NULL; + static RoundOptions * toolWidget = NULL; - if (optionWidget!=NULL) { - if (toolWidget!=NULL) { - delete toolWidget; - toolWidget = NULL; - } - if (on==true && toolWidget==NULL) { - toolWidget = new QG_RoundOptions(optionWidget); - toolWidget->setAction(action, update); - } - } + if (!optionWidget) + return; + + if (toolWidget) + { + delete toolWidget; + toolWidget = NULL; + } + + if (on) + { + toolWidget = new RoundOptions(optionWidget); + toolWidget->setAction(action, update); + } } /** * Shows a widget for library insert options. */ -void QG_DialogFactory::requestLibraryInsertOptions(RS_ActionInterface* action, - bool on, bool update) +void QG_DialogFactory::requestLibraryInsertOptions(ActionInterface * action, bool on, bool update) { - static QG_LibraryInsertOptions* toolWidget = NULL; + static LibraryInsertOptions * toolWidget = NULL; - if (optionWidget!=NULL) { - if (toolWidget!=NULL) { - delete toolWidget; - toolWidget = NULL; - } - if (on==true && toolWidget==NULL) { - toolWidget = new QG_LibraryInsertOptions(optionWidget); - toolWidget->setAction(action, update); - } - } -} -#else -void QG_DialogFactory::requestLineParallelOptions(RS_ActionInterface * action, bool on, bool update) -{ -} + if (!optionWidget) + return; -void QG_DialogFactory::requestLineParallelThroughOptions(RS_ActionInterface* action, bool on, bool update) -{ -} + if (toolWidget) + { + delete toolWidget; + toolWidget = NULL; + } -void QG_DialogFactory::requestLineAngleOptions(RS_ActionInterface* action, bool on, bool update) -{ -} - -void QG_DialogFactory::requestLineRelAngleOptions(RS_ActionInterface* action, bool on, bool update) -{ -} - -void QG_DialogFactory::requestLineBisectorOptions(RS_ActionInterface* action, bool on, bool update) -{ -} - -void QG_DialogFactory::requestLinePolygonOptions(RS_ActionInterface* action, bool on, bool update) -{ -} - -void QG_DialogFactory::requestLinePolygon2Options(RS_ActionInterface* action, bool on, bool update) -{ -} - -void QG_DialogFactory::requestArcOptions(RS_ActionInterface* action, bool on, bool update) -{ -} - -void QG_DialogFactory::requestArcTangentialOptions(RS_ActionInterface* action, bool on, bool update) -{ -} - -void QG_DialogFactory::requestCircleOptions(RS_ActionInterface* action, bool on, bool update) -{ -} - -void QG_DialogFactory::requestSplineOptions(RS_ActionInterface* action, bool on, bool update) -{ -} - -/** - * Shows a widget for text options. - */ -void QG_DialogFactory::requestTextOptions(RS_ActionInterface * action, bool on, bool update) -{ - static TextOptions * toolWidget = NULL; - - if (optionWidget != NULL) + if (on) { - if (toolWidget != NULL) - { - delete toolWidget; - toolWidget = NULL; - } - - if (on == true && toolWidget == NULL) - { - toolWidget = new TextOptions(optionWidget); - toolWidget->setAction(action, update); - } + toolWidget = new LibraryInsertOptions(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) -{ -} - -void QG_DialogFactory::requestBevelOptions(RS_ActionInterface* action, bool on, bool update) -{ -} - -void QG_DialogFactory::requestRoundOptions(RS_ActionInterface* action, bool on, bool update) -{ -} - -void QG_DialogFactory::requestLibraryInsertOptions(RS_ActionInterface* action, bool on, bool update) -{ -} -#endif - /** * Shows the given toolbar. */ @@ -1488,20 +1414,56 @@ void QG_DialogFactory::requestToolBar(RS2::ToolBarId 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()) @@ -1518,7 +1480,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()) @@ -1535,7 +1497,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()) @@ -1552,7 +1514,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()) @@ -1569,7 +1531,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()) @@ -1586,7 +1548,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()) @@ -1612,7 +1574,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()) @@ -1625,7 +1587,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()) @@ -1638,7 +1600,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()) @@ -1651,7 +1613,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()) @@ -1664,7 +1626,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()) @@ -1677,7 +1639,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()) @@ -1690,7 +1652,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()) @@ -1707,7 +1669,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()) @@ -1721,7 +1683,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()) @@ -1735,7 +1697,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()) @@ -1749,7 +1711,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()) @@ -1768,22 +1730,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; } */ @@ -1796,7 +1744,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()) @@ -1818,7 +1766,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()) @@ -1829,260 +1777,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 /** @@ -2148,10 +1842,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); }