X-Git-Url: http://shamusworld.gotdns.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Factions%2Frs_actioninfototallength.cpp;h=5b96dac41fe11452bfbda618335c1b3ae4d26ac8;hb=3f46c180da0806c9c263e6d87d0f1404632402da;hp=b1acd760b76a3f2213e946dfe50c6d83dc05faa9;hpb=16ce54abf01ca3032e42a5bb11a4afcf9014dcca;p=architektonas diff --git a/src/actions/rs_actioninfototallength.cpp b/src/actions/rs_actioninfototallength.cpp index b1acd76..5b96dac 100644 --- a/src/actions/rs_actioninfototallength.cpp +++ b/src/actions/rs_actioninfototallength.cpp @@ -1,105 +1,78 @@ -/**************************************************************************** -** $Id: rs_actioninfototallength.cpp 1072 2004-02-18 16:03:20Z 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. -** -**********************************************************************/ +// rs_actioninfototallength.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/04/2010 Added this text. :-) +// #include "rs_actioninfototallength.h" -#include "rs_actionselectsingle.h" -#include "rs_modification.h" -#include "rs_snapper.h" -#include "rs_point.h" +#include "rs_dialogfactory.h" - - -RS_ActionInfoTotalLength::RS_ActionInfoTotalLength(RS_EntityContainer& container, - RS_GraphicView& graphicView) - :RS_ActionInterface("Info Total Length", - container, graphicView) {} - - -QAction* RS_ActionInfoTotalLength::createGUIAction(RS2::ActionType /*type*/, QObject* /*parent*/) +RS_ActionInfoTotalLength::RS_ActionInfoTotalLength(RS_EntityContainer & container, RS_GraphicView & graphicView): RS_ActionInterface("Info Total Length", + container, graphicView) { - QAction * action = new QAction(tr("&Total length of selected entities"), 0); -// QAction* action = new QAction(tr("Total length of selected entities"), -// tr("&Total length of selected entities"), -// QKeySequence(), NULL); - action->setStatusTip(tr("Measures the total length of all selected entities")); - - return action; } -void RS_ActionInfoTotalLength::init(int status) { - RS_ActionInterface::init(status); - - trigger(); +RS_ActionInfoTotalLength::~RS_ActionInfoTotalLength() +{ } - - -void RS_ActionInfoTotalLength::trigger() { - - RS_DEBUG->print("RS_ActionInfoTotalLength::trigger()"); - - double len = 0.0; - for (RS_Entity* e = container->firstEntity(RS2::ResolveNone); - e != NULL; - e = container->nextEntity(RS2::ResolveNone)) { - - if (e->isVisible() && e->isSelected()) { - double l = e->getLength(); - if (l<0.0) { - len = -1.0; - break; - } else { - len += l; - } - } - } - - if (len>0.0) { - RS_DIALOGFACTORY->commandMessage( - tr("Total Length of selected entities: %1").arg(len)); - } else { - RS_DIALOGFACTORY->commandMessage(tr("At least one of the selected " - "entities cannot be measured.")); - } - - finish(); +void RS_ActionInfoTotalLength::init(int status) +{ + RS_ActionInterface::init(status); + trigger(); } - - -void RS_ActionInfoTotalLength::updateToolBar() { - if (RS_DIALOGFACTORY!=NULL) { - if (!isFinished()) { - RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarInfo); - } else { - RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarMain); - } - } +void RS_ActionInfoTotalLength::trigger() +{ + RS_DEBUG->print("RS_ActionInfoTotalLength::trigger()"); + + double len = 0.0; + + for (RS_Entity * e = container->firstEntity(RS2::ResolveNone); + e != NULL; + e = container->nextEntity(RS2::ResolveNone)) + + if (e->isVisible() && e->isSelected()) + { + double l = e->getLength(); + + if (l < 0.0) + { + len = -1.0; + break; + } + else + len += l; + } + + if (len > 0.0) + RS_DIALOGFACTORY->commandMessage( + tr("Total Length of selected entities: %1").arg(len)); + else + RS_DIALOGFACTORY->commandMessage(tr("At least one of the selected " + "entities cannot be measured.")); + + finish(); } +void RS_ActionInfoTotalLength::updateToolBar() +{ + if (RS_DIALOGFACTORY != NULL) + { + if (!isFinished()) + RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarInfo); + else + RS_DIALOGFACTORY->requestToolBar(RS2::ToolBarMain); + } +} // EOF