bool QgsComposerTable::tableReadXML( const QDomElement& itemElem, const QDomDocument& doc ) { if ( itemElem.isNull() ) { return false; } mHeaderFont.fromString( itemElem.attribute( "headerFont", "" ) ); mHeaderFontColor = QgsSymbolLayerV2Utils::decodeColor( itemElem.attribute( "headerFontColor", "0,0,0,255" ) ); mHeaderHAlignment = QgsComposerTable::HeaderHAlignment( itemElem.attribute( "headerHAlignment", "0" ).toInt() ); mContentFont.fromString( itemElem.attribute( "contentFont", "" ) ); mContentFontColor = QgsSymbolLayerV2Utils::decodeColor( itemElem.attribute( "contentFontColor", "0,0,0,255" ) ); mLineTextDistance = itemElem.attribute( "lineTextDist", "1.0" ).toDouble(); mGridStrokeWidth = itemElem.attribute( "gridStrokeWidth", "0.5" ).toDouble(); mShowGrid = itemElem.attribute( "showGrid", "1" ).toInt(); //grid color if ( itemElem.hasAttribute( "gridColor" ) ) { mGridColor = QgsSymbolLayerV2Utils::decodeColor( itemElem.attribute( "gridColor", "0,0,0,255" ) ); } else { //old style grid color int gridRed = itemElem.attribute( "gridColorRed", "0" ).toInt(); int gridGreen = itemElem.attribute( "gridColorGreen", "0" ).toInt(); int gridBlue = itemElem.attribute( "gridColorBlue", "0" ).toInt(); int gridAlpha = itemElem.attribute( "gridColorAlpha", "255" ).toInt(); mGridColor = QColor( gridRed, gridGreen, gridBlue, gridAlpha ); } //restore column specifications qDeleteAll( mColumns ); mColumns.clear(); QDomNodeList columnsList = itemElem.elementsByTagName( "displayColumns" ); if ( columnsList.size() > 0 ) { QDomElement columnsElem = columnsList.at( 0 ).toElement(); QDomNodeList columnEntryList = columnsElem.elementsByTagName( "column" ); for ( int i = 0; i < columnEntryList.size(); ++i ) { QDomElement columnElem = columnEntryList.at( i ).toElement(); QgsComposerTableColumn* column = new QgsComposerTableColumn; column->readXML( columnElem ); mColumns.append( column ); } } //restore general composer item properties QDomNodeList composerItemList = itemElem.elementsByTagName( "ComposerItem" ); if ( composerItemList.size() > 0 ) { QDomElement composerItemElem = composerItemList.at( 0 ).toElement(); _readXML( composerItemElem, doc ); } return true; }
bool QgsComposerTableV2::readXML( const QDomElement &itemElem, const QDomDocument &doc, bool ignoreFrames ) { deleteFrames(); //first create the frames if ( !_readXML( itemElem, doc, ignoreFrames ) ) { return false; } if ( itemElem.isNull() ) { return false; } mEmptyTableMode = QgsComposerTableV2::EmptyTableMode( itemElem.attribute( "emptyTableMode", "0" ).toInt() ); mEmptyTableMessage = itemElem.attribute( "emptyTableMessage", tr( "No matching records" ) ); mShowEmptyRows = itemElem.attribute( "showEmptyRows", "0" ).toInt(); if ( !QgsFontUtils::setFromXmlChildNode( mHeaderFont, itemElem, "headerFontProperties" ) ) { mHeaderFont.fromString( itemElem.attribute( "headerFont", "" ) ); } mHeaderFontColor = QgsSymbolLayerV2Utils::decodeColor( itemElem.attribute( "headerFontColor", "0,0,0,255" ) ); mHeaderHAlignment = QgsComposerTableV2::HeaderHAlignment( itemElem.attribute( "headerHAlignment", "0" ).toInt() ); mHeaderMode = QgsComposerTableV2::HeaderMode( itemElem.attribute( "headerMode", "0" ).toInt() ); if ( !QgsFontUtils::setFromXmlChildNode( mContentFont, itemElem, "contentFontProperties" ) ) { mContentFont.fromString( itemElem.attribute( "contentFont", "" ) ); } mContentFontColor = QgsSymbolLayerV2Utils::decodeColor( itemElem.attribute( "contentFontColor", "0,0,0,255" ) ); mCellMargin = itemElem.attribute( "cellMargin", "1.0" ).toDouble(); mGridStrokeWidth = itemElem.attribute( "gridStrokeWidth", "0.5" ).toDouble(); mShowGrid = itemElem.attribute( "showGrid", "1" ).toInt(); mGridColor = QgsSymbolLayerV2Utils::decodeColor( itemElem.attribute( "gridColor", "0,0,0,255" ) ); mBackgroundColor = QgsSymbolLayerV2Utils::decodeColor( itemElem.attribute( "backgroundColor", "255,255,255,0" ) ); mWrapBehaviour = QgsComposerTableV2::WrapBehaviour( itemElem.attribute( "wrapBehaviour", "0" ).toInt() ); //restore column specifications qDeleteAll( mColumns ); mColumns.clear(); QDomNodeList columnsList = itemElem.elementsByTagName( "displayColumns" ); if ( columnsList.size() > 0 ) { QDomElement columnsElem = columnsList.at( 0 ).toElement(); QDomNodeList columnEntryList = columnsElem.elementsByTagName( "column" ); for ( int i = 0; i < columnEntryList.size(); ++i ) { QDomElement columnElem = columnEntryList.at( i ).toElement(); QgsComposerTableColumn* column = new QgsComposerTableColumn; column->readXML( columnElem ); mColumns.append( column ); } } return true; }