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