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
8 // JLH = James L. Hammons <jlhamm@acm.org>
11 // --- ---------- -----------------------------------------------------------
12 // JLH 05/28/2010 Added this text. :-)
15 #include "rs_document.h"
20 * @param parent Parent of the document. Often that's NULL but
21 * for blocks it's the blocklist.
23 RS_Document::RS_Document(RS_EntityContainer * parent):
24 RS_EntityContainer(parent), RS_Undo()
26 RS_DEBUG->print("RS_Document::RS_Document() ");
29 formatType = RS2::FormatUnknown;
31 RS_Color col(RS2::FlagByLayer);
32 activePen = RS_Pen(col, RS2::WidthByLayer, RS2::LineByLayer);
35 RS_Document::~RS_Document()
40 * @return true for all document entities (e.g. Graphics or Blocks).
42 bool RS_Document::isDocument() const
48 * Removes an entity from the entiy container. Implementation
51 void RS_Document::removeUndoable(RS_Undoable * u)
53 if (u != NULL && u->undoRtti() == RS2::UndoableEntity)
55 removeEntity((RS_Entity *)u);
60 * @return Currently active drawing pen.
62 RS_Pen RS_Document::getActivePen() const
68 * Sets the currently active drawing pen to p.
70 void RS_Document::setActivePen(RS_Pen p)
76 * @return File name of the document currently loaded.
77 * Note, that the default file name is empty.
79 QString RS_Document::getFilename() const
85 * Sets file name for the document currently loaded.
87 void RS_Document::setFilename(const QString & fn)
93 * Sets the documents modified status to 'm'.
95 void RS_Document::setModified(bool m)
97 //std::cout << "RS_Document::setModified: %d" << (int)m << std::endl;
102 * @retval true The document has been modified since it was last saved.
103 * @retval false The document has not been modified since it was last saved.
105 bool RS_Document::isModified() const
111 * Overwritten to set modified flag before starting an undo cycle.
113 void RS_Document::startUndoCycle()
116 RS_Undo::startUndoCycle();