00001 /****************************************************************************************************** 00002 * (C) 2014 markummitchell@github.com. This file is part of Engauge Digitizer, which is released * 00003 * under GNU General Public License version 2 (GPLv2) or (at your option) any later version. See file * 00004 * LICENSE or go to gnu.org/licenses for details. Distribution requires prior written permission. * 00005 ******************************************************************************************************/ 00006 00007 #ifndef DOCUMENT_MODEL_GRID_REMOVAL_H 00008 #define DOCUMENT_MODEL_GRID_REMOVAL_H 00009 00010 #include "DocumentModelAbstractBase.h" 00011 #include "GridCoordDisable.h" 00012 00013 class Document; 00014 class QTextStream; 00015 00017 class DocumentModelGridRemoval : public DocumentModelAbstractBase 00018 { 00019 public: 00021 DocumentModelGridRemoval(); 00022 00024 DocumentModelGridRemoval (double startX, 00025 double startY, 00026 double stepX, 00027 double stepY, 00028 int countX, 00029 int countY); 00030 00032 DocumentModelGridRemoval(const Document &document); 00033 00035 DocumentModelGridRemoval(const DocumentModelGridRemoval &other); 00036 00038 DocumentModelGridRemoval &operator=(const DocumentModelGridRemoval &other); 00039 00041 double closeDistance() const; 00042 00044 int countX() const; 00045 00047 int countY() const; 00048 00050 GridCoordDisable gridCoordDisableX () const; 00051 00053 GridCoordDisable gridCoordDisableY () const; 00054 00055 virtual void loadXml(QXmlStreamReader &reader); 00056 00058 void printStream (QString indentation, 00059 QTextStream &str) const; 00060 00062 bool removeDefinedGridLines () const; 00063 00064 virtual void saveXml(QXmlStreamWriter &writer) const; 00065 00067 void setCloseDistance (double closeDistance); 00068 00070 void setCountX(int countX); 00071 00073 void setCountY(int countY); 00074 00076 void setGridCoordDisableX (GridCoordDisable gridCoordDisable); 00077 00079 void setGridCoordDisableY (GridCoordDisable gridCoordDisable); 00080 00082 void setRemoveDefinedGridLines (bool removeDefinedGridLines); 00083 00085 void setStable (); 00086 00088 void setStartX(double startX); 00089 00091 void setStartY(double startY); 00092 00094 void setStepX(double stepX); 00095 00097 void setStepY(double stepY); 00098 00100 void setStopX(double stopX); 00101 00103 void setStopY(double stopY); 00104 00107 bool stable() const; 00108 00110 double startX() const; 00111 00113 double startY() const; 00114 00116 double stepX() const; 00117 00119 double stepY() const; 00120 00122 double stopX() const; 00123 00125 double stopY() const; 00126 00127 private: 00128 00129 void setStable (bool stable); // Private version is for initialization 00130 00131 bool m_stable; 00132 bool m_removeDefinedGridLines; 00133 double m_closeDistance; 00134 GridCoordDisable m_gridCoordDisableX; 00135 int m_countX; 00136 double m_startX; 00137 double m_stepX; 00138 double m_stopX; 00139 GridCoordDisable m_gridCoordDisableY; 00140 int m_countY; 00141 double m_startY; 00142 double m_stepY; 00143 double m_stopY; 00144 }; 00145 00146 #endif // DOCUMENT_MODEL_GRID_REMOVAL_H