本文整理汇总了C++中KoXmlElement::hasAttributeNS方法的典型用法代码示例。如果您正苦于以下问题:C++ KoXmlElement::hasAttributeNS方法的具体用法?C++ KoXmlElement::hasAttributeNS怎么用?C++ KoXmlElement::hasAttributeNS使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KoXmlElement
的用法示例。
在下文中一共展示了KoXmlElement::hasAttributeNS方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: loadOdfPageTag
void KoPAPage::loadOdfPageTag( const KoXmlElement &element, KoPALoadingContext &loadingContext )
{
QString master = element.attributeNS (KoXmlNS::draw, "master-page-name" );
KoPAMasterPage *masterPage = loadingContext.masterPageByName(master);
if (masterPage)
setMasterPage(masterPage);
#ifndef NDEBUG
else
kWarning(30010) << "Loading didn't provide a page under name; " << master;
#endif
KoStyleStack& styleStack = loadingContext.odfLoadingContext().styleStack();
int pageProperties = UseMasterBackground | DisplayMasterShapes | DisplayMasterBackground;
if ( styleStack.hasProperty( KoXmlNS::draw, "fill" ) ) {
KoPAPageBase::loadOdfPageTag( element, loadingContext );
pageProperties = DisplayMasterShapes;
}
m_pageProperties = pageProperties;
QString name;
if ( element.hasAttributeNS( KoXmlNS::draw, "name" ) ) {
name = element.attributeNS( KoXmlNS::draw, "name" );
loadingContext.addPage( name, this );
}
if ( element.hasAttributeNS( KoXmlNS::koffice, "name" ) ) {
name = element.attributeNS( KoXmlNS::koffice, "name" );
}
setName( name );
}
示例2: loadOdf
bool RectangleShape::loadOdf(const KoXmlElement &element, KoShapeLoadingContext &context)
{
loadOdfAttributes(element, context, OdfMandatories | OdfGeometry | OdfAdditionalAttributes | OdfCommonChildElements);
if (element.hasAttributeNS(KoXmlNS::svg, "rx") && element.hasAttributeNS(KoXmlNS::svg, "ry")) {
qreal rx = KoUnit::parseValue(element.attributeNS(KoXmlNS::svg, "rx", "0"));
qreal ry = KoUnit::parseValue(element.attributeNS(KoXmlNS::svg, "ry", "0"));
m_cornerRadiusX = rx / (0.5 * size().width()) * 100;
m_cornerRadiusY = ry / (0.5 * size().height()) * 100;
} else {
QString cornerRadius = element.attributeNS(KoXmlNS::draw, "corner-radius", "");
if (! cornerRadius.isEmpty()) {
qreal radius = KoUnit::parseValue(cornerRadius);
m_cornerRadiusX = qMin<qreal>(radius / (0.5 * size().width()) * 100, qreal(100));
m_cornerRadiusY = qMin<qreal>(radius / (0.5 * size().height()) * 100, qreal(100));
}
}
updatePath(size());
updateHandles();
loadOdfAttributes(element, context, OdfTransformation);
loadText(element, context);
return true;
}
示例3: loadOdf
bool KoPathShape::loadOdf(const KoXmlElement & element, KoShapeLoadingContext &context)
{
loadOdfAttributes(element, context, OdfMandatories | OdfAdditionalAttributes | OdfCommonChildElements);
// first clear the path data from the default path
clear();
if (element.localName() == "line") {
QPointF start;
start.setX(KoUnit::parseValue(element.attributeNS(KoXmlNS::svg, "x1", "")));
start.setY(KoUnit::parseValue(element.attributeNS(KoXmlNS::svg, "y1", "")));
QPointF end;
end.setX(KoUnit::parseValue(element.attributeNS(KoXmlNS::svg, "x2", "")));
end.setY(KoUnit::parseValue(element.attributeNS(KoXmlNS::svg, "y2", "")));
moveTo(start);
lineTo(end);
} else if (element.localName() == "polyline" || element.localName() == "polygon") {
QString points = element.attributeNS(KoXmlNS::draw, "points").simplified();
points.replace(',', ' ');
points.remove('\r');
points.remove('\n');
bool firstPoint = true;
const QStringList coordinateList = points.split(' ');
for (QStringList::ConstIterator it = coordinateList.constBegin(); it != coordinateList.constEnd(); ++it) {
QPointF point;
point.setX((*it).toDouble());
++it;
point.setY((*it).toDouble());
if (firstPoint) {
moveTo(point);
firstPoint = false;
} else
lineTo(point);
}
if (element.localName() == "polygon")
close();
} else { // path loading
KoPathShapeLoader loader(this);
loader.parseSvg(element.attributeNS(KoXmlNS::svg, "d"), true);
loadNodeTypes(element);
}
applyViewboxTransformation(element);
QPointF pos = normalize();
setTransformation(QMatrix());
if (element.hasAttributeNS(KoXmlNS::svg, "x") || element.hasAttributeNS(KoXmlNS::svg, "y")) {
pos.setX(KoUnit::parseValue(element.attributeNS(KoXmlNS::svg, "x", QString())));
pos.setY(KoUnit::parseValue(element.attributeNS(KoXmlNS::svg, "y", QString())));
}
setPosition(pos);
loadOdfAttributes(element, context, OdfTransformation);
return true;
}
示例4: loadOdfFrameElement
bool KoFormulaShape::loadOdfFrameElement(const KoXmlElement &element,
KoShapeLoadingContext &context)
{
// If this formula is embedded and not inline, then load the embedded document.
if ( element.tagName() == "object" && element.hasAttributeNS( KoXmlNS::xlink, "href" )) {
m_isInline = false;
// This calls loadOdfEmbedded().
return loadEmbeddedDocument( context.odfLoadingContext().store(),
element,
context.odfLoadingContext() );
}
// It's not a frame:object, so it must be inline.
const KoXmlElement& topLevelElement = KoXml::namedItemNS(element, KoXmlNS::math, "math");
if (topLevelElement.isNull()) {
kWarning() << "no math element as first child";
return false;
}
// Create a new root element, load the formula and replace the old one.
FormulaElement* formulaElement = new FormulaElement();
formulaElement->readMathML( topLevelElement );
delete m_formulaData->formulaElement();
m_formulaData->setFormulaElement(formulaElement);
m_formulaData->notifyDataChange(0, false);
m_isInline = true;
return true;
}
示例5: fontSize
// Font size is a bit special. "115%" applies to "the fontsize of the parent style".
// This can be generalized though (hasPropertyThatCanBePercentOfParent() ? :)
qreal KoStyleStack::fontSize(const qreal defaultFontPointSize) const
{
const QString name = "font-size";
qreal percent = 1;
QList<KoXmlElement>::ConstIterator it = m_stack.end(); // reverse iterator
while (it != m_stack.begin()) {
--it;
KoXmlElement properties = KoXml::namedItemNS(*it, m_styleNSURI, m_propertiesTagName).toElement();
if (properties.hasAttributeNS(m_foNSURI, name)) {
const QString value = properties.attributeNS(m_foNSURI, name, QString());
if (value.endsWith('%')) {
//sebsauer, 20070609, the specs don't say that we have to calc them together but
//just that we are looking for a valid parent fontsize. So, let's only take the
//first percent definition into account and keep on to seek for a valid parent,
//percent *= value.left( value.length() - 1 ).toDouble() / 100.0;
if (percent == 1)
percent = value.left(value.length() - 1).toDouble() / 100.0;
} else
return percent * KoUnit::parseValue(value); // e.g. 12pt
}
}
//if there was no valid parent, we return the default fontsize together with an optional calculated percent-value.
return percent * defaultFontPointSize;
}
示例6: hasProperty
inline bool KoStyleStack::hasProperty(const QString &nsURI, const QString &name, const QString *detail) const
{
QString fullName(name);
if (detail) {
fullName += '-';
fullName += *detail;
}
QList<KoXmlElement>::ConstIterator it = m_stack.end();
while (it != m_stack.begin()) {
--it;
const KoXmlElement properties = KoXml::namedItemNS(*it, m_styleNSURI, m_propertiesTagName);
if (properties.hasAttributeNS(nsURI, name) ||
(detail && properties.hasAttributeNS(nsURI, fullName)))
return true;
}
return false;
}
示例7: loadOdf
bool KPrPageLayout::loadOdf( const KoXmlElement &element, const QRectF & pageRect )
{
if ( element.hasAttributeNS( KoXmlNS::style, "display-name" ) ) {
m_name = element.attributeNS( KoXmlNS::style, "display-name" );
}
else {
m_name = element.attributeNS( KoXmlNS::style, "name" );
}
KoXmlElement child;
forEachElement( child, element ) {
if ( child.tagName() == "placeholder" && child.namespaceURI() == KoXmlNS::presentation ) {
KPrPlaceholder * placeholder = new KPrPlaceholder;
if ( placeholder->loadOdf( child, pageRect ) ) {
m_placeholders.append( placeholder );
if ( placeholder->presentationObject() == "handout" ) {
m_layoutType = Handout;
}
}
else {
warnStage << "loading placeholder failed";
delete placeholder;
}
}
else {
warnStage << "unknown tag" << child.namespaceURI() << child.tagName() << "when loading page layout";
}
}
bool retval = true;
if ( m_placeholders.isEmpty() ) {
warnStage << "no placeholder for page layout" << m_name << "found";
retval = false;
}
else {
/*
* do fixups for wrong saved data from OO somehow they save negative values for width and height somethimes
* <style:presentation-page-layout style:name="AL10T12">
* <presentation:placeholder presentation:object="title" svg:x="2.057cm" svg:y="1.743cm" svg:width="23.911cm" svg:height="3.507cm"/>
* <presentation:placeholder presentation:object="outline" svg:x="2.057cm" svg:y="5.838cm" svg:width="11.669cm" svg:height="13.23cm"/>
* <presentation:placeholder presentation:object="object" svg:x="14.309cm" svg:y="5.838cm" svg:width="-0.585cm" svg:height="6.311cm"/>
* <presentation:placeholder presentation:object="object" svg:x="14.309cm" svg:y="12.748cm" svg:width="-0.585cm" svg:height="-0.601cm"/>
* </style:presentation-page-layout>
*/
QList<KPrPlaceholder *>::iterator it( m_placeholders.begin() );
KPrPlaceholder * last = *it;
++it;
for ( ; it != m_placeholders.end(); ++it ) {
( *it )->fix( last->rect( QSizeF( 1, 1 ) ) );
last = *it;
}
}
return retval;
}
示例8: loadStyle
void KoPathShape::loadStyle(const KoXmlElement & element, KoShapeLoadingContext &context)
{
KoShape::loadStyle(element, context);
KoStyleStack &styleStack = context.odfLoadingContext().styleStack();
styleStack.save();
// fill the style stack with the shapes style
if (element.hasAttributeNS(KoXmlNS::draw, "style-name")) {
context.odfLoadingContext().fillStyleStack(element, KoXmlNS::draw, "style-name", "graphic");
} else if (element.hasAttributeNS(KoXmlNS::presentation, "style-name")) {
context.odfLoadingContext().fillStyleStack(element, KoXmlNS::presentation, "style-name", "presentation");
}
styleStack.setTypeProperties("graphic");
if (styleStack.hasProperty(KoXmlNS::svg, "fill-rule")) {
QString rule = styleStack.property(KoXmlNS::svg, "fill-rule");
d->fillRule = rule == "nonzero" ? Qt::WindingFill : Qt::OddEvenFill;
}
styleStack.restore();
}
示例9: fillStyleStack
void KoOdfLoadingContext::fillStyleStack(const KoXmlElement& object, const QString &nsURI, const QString &attrName, const QString &family)
{
// find all styles associated with an object and push them on the stack
if (object.hasAttributeNS(nsURI, attrName)) {
const QString styleName = object.attributeNS(nsURI, attrName, QString());
const KoXmlElement * style = d->stylesReader.findStyle(styleName, family, d->useStylesAutoStyles);
if (style)
addStyles(style, family, d->useStylesAutoStyles);
else
kWarning(32500) << "style" << styleName << "not found in" << (d->useStylesAutoStyles ? "styles.xml" : "content.xml");
}
}
示例10: loadOdf
bool Surface::loadOdf( const KoXmlElement &surfaceElement, KoShapeLoadingContext &context )
{
KoStyleStack &styleStack = context.odfLoadingContext().styleStack();
styleStack.save();
if ( surfaceElement.hasAttributeNS( KoXmlNS::chart, "style-name" ) )
{
KDChart::BackgroundAttributes backgroundAttributes = d->kdPlane->backgroundAttributes();
KDChart::FrameAttributes frameAttributes = d->kdPlane->frameAttributes();
styleStack.clear();
context.odfLoadingContext().fillStyleStack( surfaceElement, KoXmlNS::chart, "style-name", "chart" );
styleStack.setTypeProperties( "graphic" );
if ( styleStack.hasProperty( KoXmlNS::draw, "stroke" ) )
{
frameAttributes.setVisible( true );
QString stroke = styleStack.property( KoXmlNS::draw, "stroke" );
if( stroke == "solid" || stroke == "dash" )
{
QPen pen = KoOdfGraphicStyles::loadOdfStrokeStyle( styleStack, stroke, context.odfLoadingContext().stylesReader() );
frameAttributes.setPen( pen );
}
}
if ( styleStack.hasProperty( KoXmlNS::draw, "fill" ) )
{
backgroundAttributes.setVisible( true );
QBrush brush;
QString fill = styleStack.property( KoXmlNS::draw, "fill" );
if ( fill == "solid" || fill == "hatch" )
brush = KoOdfGraphicStyles::loadOdfFillStyle( styleStack, fill, context.odfLoadingContext().stylesReader() );
else if ( fill == "gradient" )
{
brush = KoOdfGraphicStyles::loadOdfGradientStyle( styleStack, context.odfLoadingContext().stylesReader(), QSizeF( 5.0, 60.0 ) );
}
else if ( fill == "bitmap" )
brush = KoOdfGraphicStyles::loadOdfPatternStyle( styleStack, context.odfLoadingContext(), QSizeF( 5.0, 60.0 ) );
backgroundAttributes.setBrush( brush );
}
d->kdPlane->setBackgroundAttributes( backgroundAttributes );
d->kdPlane->setFrameAttributes( frameAttributes );
}
styleStack.restore();
return true;
}
示例11: loadOdf
bool KoTextInlineRdf::loadOdf(const KoXmlElement &e)
{
d->id = e.attribute("id", QString());
d->subject = e.attributeNS(KoXmlNS::xhtml, "about");
d->predicate = e.attributeNS(KoXmlNS::xhtml, "property");
d->dt = e.attributeNS(KoXmlNS::xhtml, "datatype");
QString content = e.attributeNS(KoXmlNS::xhtml, "content");
//
// Content / triple object explicitly set through an attribute
//
if (e.hasAttributeNS(KoXmlNS::xhtml, "content")) {
d->isObjectAttriuteUsed = true;
d->object = content;
}
return true;
}
示例12: loadOdf
bool EnhancedPathHandle::loadOdf(const KoXmlElement &element, KoShapeLoadingContext &context)
{
if (element.localName() != "handle" || element.namespaceURI() != KoXmlNS::draw) {
return false;
}
QString position = element.attributeNS(KoXmlNS::draw, "handle-position");
#ifndef NWORKAROUND_ODF_BUGS
KoOdfWorkaround::fixEnhancedPathPolarHandlePosition(position, element, context);
#endif
QStringList tokens = position.simplified().split(' ');
if (tokens.count() != 2) {
return false;
}
setPosition(m_parent->parameter(tokens[0]), m_parent->parameter(tokens[1]));
// check if we have a polar handle
if (element.hasAttributeNS(KoXmlNS::draw, "handle-polar")) {
QString polar = element.attributeNS(KoXmlNS::draw, "handle-polar");
QStringList tokens = polar.simplified().split(' ');
if (tokens.count() == 2) {
setPolarCenter(m_parent->parameter(tokens[0]), m_parent->parameter(tokens[1]));
QString minRadius = element.attributeNS(KoXmlNS::draw, "handle-radius-range-minimum");
QString maxRadius = element.attributeNS(KoXmlNS::draw, "handle-radius-range-maximum");
if (!minRadius.isEmpty() && !maxRadius.isEmpty()) {
setRadiusRange(m_parent->parameter(minRadius), m_parent->parameter(maxRadius));
}
}
} else {
QString minX = element.attributeNS(KoXmlNS::draw, "handle-range-x-minimum");
QString maxX = element.attributeNS(KoXmlNS::draw, "handle-range-x-maximum");
if (!minX.isEmpty() && ! maxX.isEmpty()) {
setRangeX(m_parent->parameter(minX), m_parent->parameter(maxX));
}
QString minY = element.attributeNS(KoXmlNS::draw, "handle-range-y-minimum");
QString maxY = element.attributeNS(KoXmlNS::draw, "handle-range-y-maximum");
if (!minY.isEmpty() && ! maxY.isEmpty()) {
setRangeY(m_parent->parameter(minY), m_parent->parameter(maxY));
}
}
return hasPosition();
}
示例13: loadOdfPageTag
void KoPAMasterPage::loadOdfPageTag( const KoXmlElement &element, KoPALoadingContext &loadingContext )
{
KoPAPageBase::loadOdfPageTag( element, loadingContext );
if ( element.hasAttributeNS( KoXmlNS::style, "display-name" ) ) {
setName( element.attributeNS( KoXmlNS::style, "display-name" ) );
}
else {
setName( element.attributeNS( KoXmlNS::style, "name" ) );
}
QString pageLayoutName = element.attributeNS( KoXmlNS::style, "page-layout-name" );
const KoOdfStylesReader& styles = loadingContext.odfLoadingContext().stylesReader();
const KoXmlElement* masterPageStyle = styles.findStyle( pageLayoutName );
KoPageLayout pageLayout;
if ( masterPageStyle ) {
pageLayout.loadOdf( *masterPageStyle );
}
setPageLayout( pageLayout );
}
示例14: supports
bool KPrPlaceholderShapeFactory::supports(const KoXmlElement & e, KoShapeLoadingContext &context) const
{
Q_UNUSED(context);
// check parent if placeholder is set to true
KoXmlNode parent = e.parentNode();
if ( !parent.isNull() ) {
KoXmlElement element = parent.toElement();
if ( !element.isNull() ) {
bool supported = element.attributeNS( KoXmlNS::presentation, "placeholder", "false" ) == "true";
kDebug(33001) << "placeholder:" << supported;
#ifndef NWORKAROUND_ODF_BUGS
if (!supported && KoOdfWorkaround::fixPresentationPlaceholder() && element.hasAttributeNS(KoXmlNS::presentation, "class")) {
supported = true;
kDebug(33001) << "workaround OO placeholder bug" << supported;
}
#endif
return supported;
}
}
return false;
}
示例15: loadOdfConditions
void Conditions::loadOdfConditions(const KoXmlElement &element, const ValueParser *parser, const StyleManager *styleManager)
{
kDebug(36003) << "Loading conditional styles";
KoXmlNode node(element);
while (!node.isNull()) {
KoXmlElement elementItem = node.toElement();
if (elementItem.tagName() == "map" && elementItem.namespaceURI() == KoXmlNS::style) {
QString conditionValue = elementItem.attributeNS(KoXmlNS::style, "condition", QString());
QString applyStyleName;
if (elementItem.hasAttributeNS(KoXmlNS::style, "apply-style-name"))
applyStyleName = elementItem.attributeNS(KoXmlNS::style, "apply-style-name", QString());
if (!applyStyleName.isEmpty() && styleManager) {
QString odfStyle = styleManager->openDocumentName(applyStyleName);
if (!odfStyle.isEmpty()) applyStyleName = odfStyle;
}
QString baseCellAddress = elementItem.attributeNS(KoXmlNS::style, "base-cell-address");
loadOdfCondition(conditionValue, applyStyleName, baseCellAddress, parser);
}
node = node.nextSibling();
}
}