本文整理汇总了C++中KoShapeLoadingContext::sharedData方法的典型用法代码示例。如果您正苦于以下问题:C++ KoShapeLoadingContext::sharedData方法的具体用法?C++ KoShapeLoadingContext::sharedData怎么用?C++ KoShapeLoadingContext::sharedData使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KoShapeLoadingContext
的用法示例。
在下文中一共展示了KoShapeLoadingContext::sharedData方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: QObject
KoTextLoader::KoTextLoader(KoShapeLoadingContext &context)
: QObject()
, d(new Private(context))
{
KoSharedLoadingData *sharedData = context.sharedData(KOTEXT_SHARED_LOADING_ID);
if (sharedData) {
d->textSharedData = dynamic_cast<KoTextSharedLoadingData *>(sharedData);
}
kDebug(32500) << "sharedData" << sharedData << "textSharedData" << d->textSharedData;
if (!d->textSharedData) {
d->textSharedData = new KoTextSharedLoadingData();
// TODO pass style manager so that on copy and paste we can recognice the same styles
d->textSharedData->loadOdfStyles(context.odfLoadingContext(), 0);
if (!sharedData) {
context.addSharedData(KOTEXT_SHARED_LOADING_ID, d->textSharedData);
} else {
kWarning(32500) << "A different type of sharedData was found under the" << KOTEXT_SHARED_LOADING_ID;
Q_ASSERT(false);
}
}
}
示例2: loadOdf
void KoListLevelProperties::loadOdf(KoShapeLoadingContext& scontext, const KoXmlElement& style)
{
KoOdfLoadingContext &context = scontext.odfLoadingContext();
// The text:level attribute specifies the level of the number list
// style. It can be used on all list-level styles.
const int level = qMax(1, style.attributeNS(KoXmlNS::text, "level", QString()).toInt());
// The text:display-levels attribute specifies the number of
// levels whose numbers are displayed at the current level.
const QString displayLevel = style.attributeNS(KoXmlNS::text,
"display-levels", QString());
const QString styleName = style.attributeNS(KoXmlNS::text, "style-name", QString());
KoCharacterStyle *cs = 0;
if (!styleName.isEmpty()) {
// kDebug(32500) << "Should use the style =>" << styleName << "<=";
KoSharedLoadingData *sharedData = scontext.sharedData(KOTEXT_SHARED_LOADING_ID);
KoTextSharedLoadingData *textSharedData = 0;
if (sharedData) {
textSharedData = dynamic_cast<KoTextSharedLoadingData *>(sharedData);
}
if (textSharedData) {
cs = textSharedData->characterStyle(styleName, context.useStylesAutoStyles());
if (!cs) {
kWarning(32500) << "Missing KoCharacterStyle!";
}
else {
// kDebug(32500) << "==> cs.name:" << cs->name();
// kDebug(32500) << "==> cs.styleId:" << cs->styleId();
setCharacterStyleId(cs->styleId());
}
}
}
if (style.localName() == "list-level-style-bullet") { // list with bullets
// special case bullets:
//qDebug() << QChar(0x2202) << QChar(0x25CF) << QChar(0xF0B7) << QChar(0xE00C)
//<< QChar(0xE00A) << QChar(0x27A2)<< QChar(0x2794) << QChar(0x2714) << QChar(0x2d) << QChar(0x2717);
//1.6: KoParagCounter::loadOasisListStyle
QString bulletChar = style.attributeNS(KoXmlNS::text, "bullet-char", QString());
// kDebug(32500) << "style.localName()=" << style.localName() << "level=" << level << "displayLevel=" << displayLevel << "bulletChar=" << bulletChar;
if (bulletChar.isEmpty()) { // list without any visible bullets
setStyle(KoListStyle::CustomCharItem);
setBulletCharacter(QChar());
} else { // try to determinate the bullet we should use
switch (bulletChar[0].unicode()) {
case 0x2022: // bullet, a small disc -> circle
setStyle(KoListStyle::Bullet);
break;
case 0x25CF: // black circle, large disc -> disc
setStyle(KoListStyle::BlackCircle);
break;
case 0x25CB: //white circle, no fill
setStyle(KoListStyle::CircleItem);
break;
case 0x25C6: // losange => rhombus
setStyle(KoListStyle::RhombusItem);
break;
case 0x25A0: // square. Not in OASIS (reserved Unicode area!), but used in both OOo and kotext.
setStyle(KoListStyle::SquareItem);
break;
case 0x27A2: // two-colors right-pointing triangle
setStyle(KoListStyle::RightArrowHeadItem);
break;
case 0x2794: // arrow to right
setStyle(KoListStyle::RightArrowItem);
break;
case 0x2714: // checkmark
setStyle(KoListStyle::HeavyCheckMarkItem);
break;
case 0x2d: // minus
setStyle(KoListStyle::CustomCharItem);
break;
case 0x2717: // cross
setStyle(KoListStyle::BallotXItem);
break;
default:
QChar customBulletChar = bulletChar[0];
kDebug(32500) << "Unhandled bullet code 0x" << QString::number((uint)customBulletChar.unicode(), 16) << bulletChar;
kDebug(32500) << "Should use the style =>" << style.attributeNS(KoXmlNS::text, "style-name", QString()) << "<=";
setStyle(KoListStyle::CustomCharItem);
/*
QString customBulletFont;
// often StarSymbol when it comes from OO; doesn't matter, Qt finds it in another font if needed.
if ( listStyleProperties.hasAttributeNS( KoXmlNS::style, "font-name" ) )
{
customBulletFont = listStyleProperties.attributeNS( KoXmlNS::style, "font-name", QString() );
kDebug(32500) <<"customBulletFont style:font-name =" << listStyleProperties.attributeNS( KoXmlNS::style,"font-name", QString() );
}
else if ( listStyleTextProperties.hasAttributeNS( KoXmlNS::fo, "font-family" ) )
{
customBulletFont = listStyleTextProperties.attributeNS( KoXmlNS::fo, "font-family", QString() );
kDebug(32500) <<"customBulletFont fo:font-family =" << listStyleTextProperties.attributeNS( KoXmlNS::fo,"font-family", QString() );
}
// ## TODO in fact we're supposed to read it from the style pointed to by text:style-name
*/
// setStyle(KoListStyle::BoxItem); //fallback
break;
//.........这里部分代码省略.........
示例3: loadOdf
bool KPrPlaceholderTextStrategy::loadOdf( const KoXmlElement & element, KoShapeLoadingContext & context )
{
if (KoTextSharedLoadingData *textSharedData = dynamic_cast<KoTextSharedLoadingData *>(context.sharedData(KOTEXT_SHARED_LOADING_ID))) {
KoShapeFactoryBase *factory = KoShapeRegistry::instance()->value("TextShapeID");
Q_ASSERT(factory);
delete m_textShape;
m_textShape = factory->createDefaultShape(context.documentResourceManager());
KoTextShapeData *shapeData = qobject_cast<KoTextShapeData*>(m_textShape->userData());
shapeData->document()->setUndoRedoEnabled(false);
QTextDocument *document = shapeData->document();
QTextCursor cursor(document);
QTextBlock block = cursor.block();
const QString styleName = element.attributeNS(KoXmlNS::presentation, "style-name");
if (!styleName.isEmpty()) {
const KoXmlElement *style = context.odfLoadingContext().stylesReader().findStyle(styleName, "presentation", context.odfLoadingContext().useStylesAutoStyles());
if (style) {
KoParagraphStyle paragraphStyle;
paragraphStyle.loadOdf(style, context);
paragraphStyle.applyStyle(block, false); // TODO t.zachmann is the false correct?
}
}
const QString textStyleName = element.attributeNS(KoXmlNS::draw, "text-style-name");
if (!textStyleName.isEmpty()) {
KoParagraphStyle *style = textSharedData->paragraphStyle(textStyleName, context.odfLoadingContext().useStylesAutoStyles());
if (style) {
style->applyStyle(block, false); // TODO t.zachmann is the false correct?
}
}
cursor.insertText(text());
shapeData->setDirty();
shapeData->document()->setUndoRedoEnabled(true);
}
return true;
}