X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Factions%2Frs_actiondimension.cpp;h=89af7a5b0586e76e91297115403683f66c8d556a;hb=3f46c180da0806c9c263e6d87d0f1404632402da;hp=cbedac1d0b5f2d02dac4de11e2b3af8fa858f7d0;hpb=16ce54abf01ca3032e42a5bb11a4afcf9014dcca;p=architektonas diff --git a/src/actions/rs_actiondimension.cpp b/src/actions/rs_actiondimension.cpp index cbedac1..89af7a5 100644 --- a/src/actions/rs_actiondimension.cpp +++ b/src/actions/rs_actiondimension.cpp @@ -1,40 +1,26 @@ -/**************************************************************************** -** $Id: rs_actiondimension.cpp 1141 2004-07-29 20:32:39Z andrew $ -** -** Copyright (C) 2001-2003 RibbonSoft. All rights reserved. -** -** This file is part of the qcadlib Library project. -** -** This file may be distributed and/or modified under the terms of the -** GNU General Public License version 2 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. -** -** Licensees holding valid qcadlib Professional Edition licenses may use -** this file in accordance with the qcadlib Commercial License -** Agreement provided with the Software. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -** See http://www.ribbonsoft.com for further details. -** -** Contact info@ribbonsoft.com if any conditions of this licensing are -** not clear to you. -** -**********************************************************************/ - -#include "rs_actiondimaligned.h" - -#include "rs_snapper.h" -#include "rs_constructionline.h" +// rs_actiondimension.cpp +// +// 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 +// +// JLH = James L. Hammons +// +// Who When What +// --- ---------- ----------------------------------------------------------- +// JLH 06/03/2010 Added this text. :-) +// + +#include "rs_actiondimension.h" + #include "rs_dialogfactory.h" +#include "rs_graphicview.h" -RS_ActionDimension::RS_ActionDimension(const char * name, - RS_EntityContainer & container, RS_GraphicView & graphicView): +RS_ActionDimension::RS_ActionDimension(const char * name, RS_EntityContainer & container, RS_GraphicView & graphicView): RS_PreviewActionInterface(name, container, graphicView) { - reset(); + reset(); } RS_ActionDimension::~RS_ActionDimension() @@ -43,22 +29,14 @@ RS_ActionDimension::~RS_ActionDimension() void RS_ActionDimension::reset() { - data = RS_DimensionData(Vector(false), - Vector(false), - RS2::VAlignMiddle, - RS2::HAlignCenter, - RS2::Exact, - 1.0, - "", - "Standard", - 0.0); + data = RS_DimensionData(Vector(false), Vector(false), RS2::VAlignMiddle, + RS2::HAlignCenter, RS2::Exact, 1.0, "", "Standard", 0.0); diameter = false; } void RS_ActionDimension::init(int status) { RS_PreviewActionInterface::init(status); - //reset(); } void RS_ActionDimension::hideOptions() @@ -66,9 +44,7 @@ void RS_ActionDimension::hideOptions() RS_ActionInterface::hideOptions(); if (RS_DIALOGFACTORY != NULL) - { RS_DIALOGFACTORY->requestOptions(this, false); - } } void RS_ActionDimension::showOptions() @@ -76,9 +52,7 @@ void RS_ActionDimension::showOptions() RS_ActionInterface::showOptions(); if (RS_DIALOGFACTORY != NULL) - { RS_DIALOGFACTORY->requestOptions(this, true, true); - } } void RS_ActionDimension::updateMouseCursor() @@ -88,17 +62,85 @@ void RS_ActionDimension::updateMouseCursor() void RS_ActionDimension::updateToolBar() { - if (RS_DIALOGFACTORY!=NULL) + if (RS_DIALOGFACTORY != NULL) { if (!isFinished()) - { RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarSnap); - } else - { RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarDim); - } } } -// EOF +QString RS_ActionDimension::getText() +{ + if (!data.text.isEmpty()) + return data.text; + + QString l = label; + + if (l.isEmpty() && (diameter || !tol1.isEmpty() || !tol2.isEmpty())) + l = "<>"; + + if (diameter) + l = QChar(0x2205) + l; + + if (!tol1.isEmpty() || !tol2.isEmpty()) + l += QString("\\S%1\\%2;").arg(tol1).arg(tol2); + + return l; +} + +void RS_ActionDimension::setText(const QString & t) +{ + data.text = t; +} + +QString RS_ActionDimension::getLabel() +{ + return label; +} + +void RS_ActionDimension::setLabel(const QString & t) +{ + label = t; +} + +QString RS_ActionDimension::getTol1() +{ + return tol1; +} + +void RS_ActionDimension::setTol1(const QString & t) +{ + tol1 = t; +} + +QString RS_ActionDimension::getTol2() +{ + return tol2; +} + +void RS_ActionDimension::setTol2(const QString & t) +{ + tol2 = t; +} + +bool RS_ActionDimension::getDiameter() +{ + return diameter; +} + +void RS_ActionDimension::setDiameter(bool d) +{ + diameter = d; +} + +/*static*/ bool RS_ActionDimension::isDimensionAction(RS2::ActionType type) +{ + return (type == RS2::ActionDimAligned + || type == RS2::ActionDimLinear + || type == RS2::ActionDimAngular + || type == RS2::ActionDimDiametric + || type == RS2::ActionDimRadial); +} +