void TestStyleManager::testAddRemoveListStyle() { // Add list style. KoListStyle listStyle; listStyle.setName("Test List Style"); QSignalSpy addSignalSpy(m_styleManager, SIGNAL(styleAdded(KoListStyle*))); m_styleManager->beginEdit(); m_styleManager->add(&listStyle); m_styleManager->endEdit(); QVERIFY(listStyle.styleId() > 0); QCOMPARE(m_styleManager->listStyles().count(&listStyle), 1); QCOMPARE(m_styleManager->listStyle(listStyle.styleId()), &listStyle); QCOMPARE(m_styleManager->listStyle("Test List Style"), &listStyle); QCOMPARE(addSignalSpy.count(), 1); QCOMPARE(addSignalSpy.at(0).at(0).value<KoListStyle *>(), &listStyle); // Remove list style. QSignalSpy removeSignalSpy(m_styleManager, SIGNAL(styleRemoved(KoListStyle*))); m_styleManager->beginEdit(); m_styleManager->remove(&listStyle); m_styleManager->endEdit(); QVERIFY(!m_styleManager->listStyles().contains(&listStyle)); QVERIFY(!m_styleManager->listStyle(listStyle.styleId())); QVERIFY(!m_styleManager->listStyle("Test List Style")); QCOMPARE(removeSignalSpy.count(), 1); QCOMPARE(removeSignalSpy.at(0).at(0).value<KoListStyle *>(), &listStyle); }
QHash<QTextList *, QString> KoTextWriter::saveListStyles(QTextBlock block, int to) { QHash<KoList *, QString> generatedLists; QHash<QTextList *, QString> listStyles; KoTextDocument document(block.document()); for (;block.isValid() && ((to == -1) || (block.position() < to)); block = block.next()) { QTextList *textList = block.textList(); if (!textList) continue; if (KoList *list = document.list(block)) { if (generatedLists.contains(list)) { if (!listStyles.contains(textList)) listStyles.insert(textList, generatedLists.value(list)); continue; } KoListStyle *listStyle = list->style(); bool automatic = listStyle->styleId() == 0; KoGenStyle style(automatic ? KoGenStyle::StyleListAuto : KoGenStyle::StyleList); listStyle->saveOdf(style); QString generatedName = d->context.mainStyles().lookup(style, listStyle->name(), KoGenStyles::AllowDuplicates); listStyles[textList] = generatedName; generatedLists.insert(list, generatedName); } else { if (listStyles.contains(textList)) continue; KoListLevelProperties llp = KoListLevelProperties::fromTextList(textList); KoGenStyle style(KoGenStyle::StyleListAuto); KoListStyle listStyle; listStyle.setLevelProperties(llp); listStyle.saveOdf(style); QString generatedName = d->context.mainStyles().lookup(style, listStyle.name()); listStyles[textList] = generatedName; } } return listStyles; }