00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #include "KDChartParams.h"
00031
00032
00048 KDChartParams::KDChartFrameSettings::KDChartFrameSettings()
00049 {
00050 _dataRow = 0;
00051 _dataCol = 0;
00052 _data3rd = 0;
00053 _frame = 0;
00054 resetFrame();
00055 _outerGapX = 0;
00056 _outerGapY = 0;
00057 _innerGapX = 0;
00058 _innerGapY = 0;
00059 _addFrameWidthToLayout = true;
00060 _addFrameHeightToLayout = true;
00061 }
00062
00063
00077 KDChartParams::KDChartFrameSettings::KDChartFrameSettings(
00078 uint dataRow,
00079 uint dataCol,
00080 uint data3rd,
00081 const KDFrame& frame,
00082 int outerGapX,
00083 int outerGapY,
00084 int innerGapX,
00085 int innerGapY,
00086 bool addFrameWidthToLayout,
00087 bool addFrameHeightToLayout )
00088 : _dataRow( dataRow ),
00089 _dataCol( dataCol ),
00090 _data3rd( data3rd ),
00091 _frame( 0 ),
00092 _outerGapX( outerGapX ),
00093 _outerGapY( outerGapY ),
00094 _innerGapX( innerGapX ),
00095 _innerGapY( innerGapY ),
00096 _addFrameWidthToLayout( addFrameWidthToLayout ),
00097 _addFrameHeightToLayout( addFrameHeightToLayout )
00098 {
00099 resetFrame();
00100 KDFrame::deepCopy(*_frame, frame);
00101 }
00102
00103
00104
00108 KDChartParams::KDChartFrameSettings::~KDChartFrameSettings()
00109 {
00110 delete _frame;
00111 }
00112
00121 bool KDChartParams::KDChartFrameSettings::readFrameSettingsNode( const QDomElement& element,
00122 KDChartFrameSettings& settings,
00123 uint& areaId )
00124 {
00125 bool ok = true;
00126 KDFrame tempFrame;
00127 int tempId = KDChartEnums::AreaUNKNOWN;
00128 int tempDataRow = 0;
00129 int tempDataCol = 0;
00130 int tempData3rd = 0;
00131
00132 int tempOuterGapX, tempOuterGapY, tempInnerGapX, tempInnerGapY;
00133 bool tempAddFrameWidthToLayout, tempAddFrameHeightToLayout;
00134 QDomNode node = element.firstChild();
00135 while( !node.isNull() ) {
00136 QDomElement element = node.toElement();
00137 if( !element.isNull() ) {
00138 QString tagName = element.tagName();
00139 if( tagName == "Frame" ) {
00140 ok = ok & KDFrame::readFrameNode( element, tempFrame );
00141 } else if( tagName == "AreaId" ) {
00142 ok = ok & KDXML::readIntNode( element, tempId );
00143 } else if( tagName == "DataRow" ) {
00144 ok = ok & KDXML::readIntNode( element, tempDataRow );
00145 } else if( tagName == "DataCol" ) {
00146 ok = ok & KDXML::readIntNode( element, tempDataCol );
00147 } else if( tagName == "Data3rd" ) {
00148 ok = ok & KDXML::readIntNode( element, tempData3rd );
00149 } else if( tagName == "OuterGapX" ) {
00150 ok = ok & KDXML::readIntNode( element, tempOuterGapX );
00151 } else if( tagName == "OuterGapY" ) {
00152 ok = ok & KDXML::readIntNode( element, tempOuterGapY );
00153 } else if( tagName == "InnerGapX" ) {
00154 ok = ok & KDXML::readIntNode( element, tempInnerGapX );
00155 } else if( tagName == "InnerGapY" ) {
00156 ok = ok & KDXML::readIntNode( element, tempInnerGapY );
00157 } else if( tagName == "AddFrameWidthToLayout" ) {
00158 ok = ok & KDXML::readBoolNode( element, tempAddFrameWidthToLayout );
00159 } else if( tagName == "AddFrameHeightToLayout" ) {
00160 ok = ok & KDXML::readBoolNode( element, tempAddFrameHeightToLayout );
00161 } else {
00162 qDebug( "Unknown tag in frame settings" );
00163 }
00164 }
00165 node = node.nextSibling();
00166 }
00167
00168 if( ok ) {
00169 settings.resetFrame();
00170 KDFrame::deepCopy(*settings._frame, tempFrame);
00171
00172 settings._dataRow = tempDataRow;
00173 settings._dataCol = tempDataCol;
00174 settings._data3rd = tempData3rd;
00175 settings._outerGapX = tempOuterGapX;
00176 settings._outerGapY = tempOuterGapY;
00177 settings._innerGapX = tempInnerGapX;
00178 settings._innerGapY = tempInnerGapY;
00179 settings._addFrameWidthToLayout = tempAddFrameWidthToLayout;
00180 settings._addFrameHeightToLayout = tempAddFrameHeightToLayout;
00181 areaId = tempId;
00182 }
00183
00184 return ok;
00185 }
00186
00187
00188
00254 void KDChartParams::KDChartFrameSettings::createFrameSettingsNode( QDomDocument& document,
00255 QDomNode& parent,
00256 const QString& elementName,
00257 const KDChartParams::KDChartFrameSettings* settings,
00258 uint areaId )
00259 {
00260 QDomElement frameSettingsElement = document.createElement( elementName );
00261 parent.appendChild( frameSettingsElement );
00262 if( settings->_frame )
00263 KDFrame::createFrameNode( document, frameSettingsElement, "Frame",
00264 *settings->_frame );
00265 KDXML::createIntNode( document, frameSettingsElement, "AreaId",
00266 areaId );
00267 KDXML::createIntNode( document, frameSettingsElement, "DataRow",
00268 settings->_dataRow );
00269 KDXML::createIntNode( document, frameSettingsElement, "DataCol",
00270 settings->_dataCol );
00271 KDXML::createIntNode( document, frameSettingsElement, "Data3rd",
00272 settings->_data3rd );
00273 KDXML::createIntNode( document, frameSettingsElement, "OuterGapX",
00274 settings->_outerGapX );
00275 KDXML::createIntNode( document, frameSettingsElement, "OuterGapY",
00276 settings->_outerGapY );
00277 KDXML::createIntNode( document, frameSettingsElement, "InnerGapX",
00278 settings->_innerGapX );
00279 KDXML::createIntNode( document, frameSettingsElement, "InnerGapY",
00280 settings->_innerGapY );
00281 KDXML::createBoolNode( document, frameSettingsElement,
00282 "AddFrameWidthToLayout",
00283 settings->_addFrameWidthToLayout );
00284 KDXML::createBoolNode( document, frameSettingsElement,
00285 "AddFrameHeightToLayout",
00286 settings->_addFrameHeightToLayout );
00287 }