本文整理汇总了C++中KoXmlElement::attributeNS方法的典型用法代码示例。如果您正苦于以下问题:C++ KoXmlElement::attributeNS方法的具体用法?C++ KoXmlElement::attributeNS怎么用?C++ KoXmlElement::attributeNS使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KoXmlElement
的用法示例。
在下文中一共展示了KoXmlElement::attributeNS方法的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: applyViewboxTransformation
void KoPathShape::applyViewboxTransformation(const KoXmlElement & element)
{
// apply viewbox transformation
QRectF viewBox = loadOdfViewbox(element);
if (! viewBox.isEmpty()) {
// load the desired size
QSizeF size;
size.setWidth(KoUnit::parseValue(element.attributeNS(KoXmlNS::svg, "width", QString())));
size.setHeight(KoUnit::parseValue(element.attributeNS(KoXmlNS::svg, "height", QString())));
// load the desired position
QPointF pos;
pos.setX(KoUnit::parseValue(element.attributeNS(KoXmlNS::svg, "x", QString())));
pos.setY(KoUnit::parseValue(element.attributeNS(KoXmlNS::svg, "y", QString())));
// create matrix to transform original path data into desired size and position
QMatrix viewMatrix;
viewMatrix.translate(-viewBox.left(), -viewBox.top());
viewMatrix.scale(size.width() / viewBox.width(), size.height() / viewBox.height());
viewMatrix.translate(pos.x(), pos.y());
// transform the path data
map(viewMatrix);
}
}
示例4: 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;
}
示例5: loadOdf
bool KoInlineNote::loadOdf(const KoXmlElement & element, KoShapeLoadingContext &context, KoStyleManager *styleManager, KoChangeTracker *changeTracker)
{
QTextDocument *document = new QTextDocument();
QTextCursor cursor(document);
KoTextDocument textDocument(document);
textDocument.setStyleManager(styleManager);
d->styleManager = styleManager;
textDocument.setChangeTracker(changeTracker);
KoTextLoader loader(context);
if (element.namespaceURI() == KoXmlNS::text && element.localName() == "note") {
QString className = element.attributeNS(KoXmlNS::text, "note-class");
if (className == "footnote") {
d->type = Footnote;
}
else if (className == "endnote") {
d->type = Endnote;
}
else {
delete document;
return false;
}
d->id = element.attributeNS(KoXmlNS::text, "id");
for (KoXmlNode node = element.firstChild(); !node.isNull(); node = node.nextSibling()) {
setAutoNumbering(false);
KoXmlElement ts = node.toElement();
if (ts.namespaceURI() != KoXmlNS::text)
continue;
if (ts.localName() == "note-body") {
loader.loadBody(ts, cursor);
} else if (ts.localName() == "note-citation") {
d->label = ts.attributeNS(KoXmlNS::text, "label");
if (d->label.isEmpty()) {
setAutoNumbering(true);
d->label = ts.text();
}
}
}
}
else if (element.namespaceURI() == KoXmlNS::office && element.localName() == "annotation") {
d->author = element.attributeNS(KoXmlNS::text, "dc-creator");
d->date = QDateTime::fromString(element.attributeNS(KoXmlNS::text, "dc-date"), Qt::ISODate);
loader.loadBody(element, cursor); // would skip author and date, and do just the <text-p> and <text-list> elements
}
else {
delete document;
return false;
}
d->text = QTextDocumentFragment(document);
delete document;
return true;
}
示例6: QColor
bool Ko3dScene::Lightsource::loadOdf(const KoXmlElement &lightElement)
{
m_diffuseColor = QColor(lightElement.attributeNS(KoXmlNS::dr3d, "diffuse-color", "#ffffff"));
QString direction = lightElement.attributeNS(KoXmlNS::dr3d, "direction");
m_direction = odfToVector3D(direction);
m_enabled = (lightElement.attributeNS(KoXmlNS::dr3d, "enabled") == "true");
m_specular = (lightElement.attributeNS(KoXmlNS::dr3d, "specular") == "true");
return true;
}
示例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: parseManifest
bool KoOdfLoadingContext::parseManifest(const KoXmlDocument &manifestDocument)
{
// First find the manifest:manifest node.
KoXmlNode n = manifestDocument.firstChild();
kDebug(30006) << "Searching for manifest:manifest " << n.toElement().nodeName();
for (; !n.isNull(); n = n.nextSibling()) {
if (!n.isElement()) {
kDebug(30006) << "NOT element";
continue;
} else {
kDebug(30006) << "element";
}
kDebug(30006) << "name:" << n.toElement().localName()
<< "namespace:" << n.toElement().namespaceURI();
if (n.toElement().localName() == "manifest"
&& n.toElement().namespaceURI() == KoXmlNS::manifest)
{
kDebug(30006) << "found manifest:manifest";
break;
}
}
if (n.isNull()) {
kDebug(30006) << "Could not find manifest:manifest";
return false;
}
// Now loop through the children of the manifest:manifest and
// store all the manifest:file-entry elements.
const KoXmlElement manifestElement = n.toElement();
for (n = manifestElement.firstChild(); !n.isNull(); n = n.nextSibling()) {
if (!n.isElement())
continue;
KoXmlElement el = n.toElement();
if (!(el.localName() == "file-entry" && el.namespaceURI() == KoXmlNS::manifest))
continue;
QString fullPath = el.attributeNS(KoXmlNS::manifest, "full-path", QString());
QString mediaType = el.attributeNS(KoXmlNS::manifest, "media-type", QString(""));
QString version = el.attributeNS(KoXmlNS::manifest, "version", QString());
// Only if fullPath is valid, should we store this entry.
// If not, we don't bother to find out exactly what is wrong, we just skip it.
if (!fullPath.isNull()) {
d->manifestEntries.insert(fullPath,
new KoOdfManifestEntry(fullPath, mediaType, version));
}
}
return true;
}
示例9: loadOdf
bool Rotate::loadOdf(const KoXmlElement &objectElement, KoShapeLoadingContext &context)
{
// Load style information.
loadOdfAttributes(objectElement, context, OdfObjectAttributes);
Object3D::loadOdf(objectElement, context);
QString dummy;
m_path = objectElement.attributeNS(KoXmlNS::svg, "d", "");
m_viewBox = objectElement.attributeNS(KoXmlNS::svg, "viewBox", "");
kDebug(31000) << "Rotate:" << m_path;
return true;
}
示例10: supports
bool KPrPlaceholderShapeFactory::supports(const KoXmlElement & e) const
{
// check parent if placeholder is set to true
KoXmlNode parent = e.parentNode();
if ( !parent.isNull() ) {
KoXmlElement element = parent.toElement();
if ( !element.isNull() ) {
kDebug(33001) << "placeholder:" << ( element.attributeNS( KoXmlNS::presentation, "placeholder", "false" ) == "true" );
return ( element.attributeNS( KoXmlNS::presentation, "placeholder", "false" ) == "true" );
}
}
return false;
}
示例11: loadOdf
bool PageVariable::loadOdf(const KoXmlElement & element, KoShapeLoadingContext & context)
{
Q_UNUSED(context);
const QString localName(element.localName());
if (localName == "page-count") {
m_type = PageCount;
m_numberFormat.loadOdf(element);
} else if (localName == "page-number") {
m_type = PageNumber;
// The text:select-page attribute is used to display the number of the previous or the following
// page rather than the number of the current page.
QString pageselect = element.attributeNS(KoXmlNS::text, "select-page", QString());
if (pageselect == "previous")
m_pageselect = KoTextPage::PreviousPage;
else if (pageselect == "next")
m_pageselect = KoTextPage::NextPage;
else // "current"
m_pageselect = KoTextPage::CurrentPage;
// The value of a page number field can be adjusted by a specified number, allowing the display
// of page numbers of following or preceding pages. The adjustment amount is specified using
// the text:page-adjust attribute.
m_pageadjust = element.attributeNS(KoXmlNS::text, "page-adjust", QString()).toInt();
m_numberFormat.loadOdf(element);
// The text:fixed attribute specifies whether or not the value of a field element is fixed. If
// the value of a field is fixed, the value of the field element to which this attribute is
// attached is preserved in all future edits of the document. If the value of the field is not
// fixed, the value of the field may be replaced by a new value when the document is edited.
m_fixed = element.attributeNS(KoXmlNS::text, "fixed", QString()) == "true";
} else if (localName == "page-continuation-string") {
m_type = PageContinuation;
// This attribute specifies whether to check for a previous or next page and if the page exists, the
// continuation text is printed.
QString pageselect = element.attributeNS(KoXmlNS::text, "select-page", QString());
if (pageselect == "previous")
m_pageselect = KoTextPage::PreviousPage;
else if (pageselect == "next")
m_pageselect = KoTextPage::NextPage;
else
m_pageselect = KoTextPage::CurrentPage;
// The text to display
m_continuation = element.text();
}
return true;
}
示例12: 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;
}
示例13: loadOdf
bool KoTextOnShapeContainer::loadOdf(const KoXmlElement &element, KoShapeLoadingContext &context)
{
Q_D(KoTextOnShapeContainer);
if (d->textShape == 0)
return false; // probably because the factory was not found.
KoTextShapeDataBase *shapeData = qobject_cast<KoTextShapeDataBase*>(d->textShape->userData());
Q_ASSERT(shapeData); // would be a bug in kotext
QString styleName = element.attributeNS(KoXmlNS::draw, "style-name");
if (!styleName.isEmpty()) {
KoStyleStack &styleStack = context.odfLoadingContext().styleStack();
styleStack.save();
context.odfLoadingContext().fillStyleStack(element, KoXmlNS::draw, "style-name", "graphic");
styleStack.setTypeProperties("graphic");
QString valign = styleStack.property(KoXmlNS::draw, "textarea-vertical-align");
if (valign == "top") {
shapeData->setVerticalAlignment(Qt::AlignTop);
} else if (valign == "middle") {
shapeData->setVerticalAlignment(Qt::AlignVCenter);
} else if (valign == "bottom") {
shapeData->setVerticalAlignment(Qt::AlignBottom);
}
styleStack.restore();
}
return shapeData->loadOdf(element, context);
}
示例14: action
QList<KoEventAction*> KoEventActionRegistry::createEventActionsFromOdf(const KoXmlElement & e, KoShapeLoadingContext & context) const
{
QList<KoEventAction *> eventActions;
if (e.namespaceURI() == KoXmlNS::office && e.tagName() == "event-listeners") {
KoXmlElement element;
forEachElement(element, e) {
if (element.tagName() == "event-listener") {
if (element.namespaceURI() == KoXmlNS::presentation) {
QString action(element.attributeNS(KoXmlNS::presentation, "action", QString()));
QHash<QString, KoEventActionFactory *>::const_iterator it(d->presentationEventActions.find(action));
if (it != d->presentationEventActions.constEnd()) {
KoEventAction * eventAction = it.value()->createEventAction();
if (eventAction) {
if (eventAction->loadOdf(element, context)) {
eventActions.append(eventAction);
} else {
delete eventAction;
}
}
} else {
kWarning(30006) << "presentation:event-listerer action = " << action << "not supported";
}
} else if (element.namespaceURI() == KoXmlNS::script) {
// TODO
} else {
kWarning(30006) << "element" << e.namespaceURI() << e.tagName() << "not supported";
}
} else {
kWarning(30006) << "element" << e.namespaceURI() << e.tagName() << "not supported";
}
}
} else {
示例15: push
void KoStyleStack::push(const KoXmlElement& style)
{
m_stack.append(style);
#ifdef DEBUG_STYLESTACK
kDebug(30003) << "pushed" << style.attributeNS(m_styleNSURI, "name", QString()) << " -> count=" << m_stack.count();
#endif
}