]> Shamusworld >> Repos - architektonas/blob - src/actions/rs_actiontoolregeneratedimensions.cpp
Last checkin before major refactor...
[architektonas] / src / actions / rs_actiontoolregeneratedimensions.cpp
1 // rs_actiontoolregeneratedimensions.cpp
2 //
3 // Part of the Architektonas Project
4 // Originally part of QCad Community Edition by Andrew Mustun
5 // Extensively rewritten and refactored by James L. Hammons
6 // (C) 2010 Underground Software
7 //
8 // JLH = James L. Hammons <jlhamm@acm.org>
9 //
10 // Who  When        What
11 // ---  ----------  -----------------------------------------------------------
12 // JLH  06/05/2010  Added this text. :-)
13 //
14
15 #include "rs_actiontoolregeneratedimensions.h"
16
17 #include "rs_dialogfactory.h"
18 #include "rs_dimension.h"
19 #include "graphicview.h"
20 #include "rs_information.h"
21
22 RS_ActionToolRegenerateDimensions::RS_ActionToolRegenerateDimensions(RS_EntityContainer & container, GraphicView & graphicView):
23         RS_ActionInterface("Tool Regen Dim", container, graphicView)
24 {
25 }
26
27 RS_ActionToolRegenerateDimensions::~RS_ActionToolRegenerateDimensions()
28 {
29 }
30
31 void RS_ActionToolRegenerateDimensions::init(int status)
32 {
33         RS_ActionInterface::init(status);
34         trigger();
35 }
36
37 void RS_ActionToolRegenerateDimensions::trigger()
38 {
39         RS_DEBUG->print("RS_ActionToolRegenerateDimensions::trigger()");
40
41         int num = 0;
42
43         for(RS_Entity * e = container->firstEntity(RS2::ResolveNone);
44              e != NULL; e = container->nextEntity(RS2::ResolveNone))
45         {
46                 if (RS_Information::isDimension(e->rtti()) && e->isVisible())
47                 {
48                         num++;
49
50                         if (((RS_Dimension *)e)->getLabel() == ";;")
51                                 ((RS_Dimension *)e)->setLabel("");
52
53                         ((RS_Dimension *)e)->update(true);
54                 }
55         }
56
57         if (num > 0)
58         {
59                 graphicView->redraw();
60                 RS_DIALOGFACTORY->commandMessage(tr("Regenerated %1 dimension entities").arg(num));
61         }
62         else
63                 RS_DIALOGFACTORY->commandMessage(tr("No dimension entities found"));
64
65         finish();
66 }
67
68 // EOF