Rev 22958 |
Go to most recent revision |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
/*
For general Scribus (>=1.3.2) copyright and licensing information please refer
to the COPYING file provided with the program. Following this notice may exist
a copyright and/or license notice that predates the release of Scribus 1.3.2
for which a new license (GPL+exception) is in place.
*/
/***************************************************************************
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
***************************************************************************/
//#include <QDebug>
#include <sstream>
#include "desaxe/saxXML.h"
#include "scribusdoc.h"
#include "util_text.h"
#include "serializer.h"
int findParagraphStyle(ScribusDoc* doc, const ParagraphStyle& parStyle)
{
bool named = !parStyle.name().isEmpty();
//qDebug() << QString("looking up %1/ %2").arg(parStyle.name()).arg(parStyle.alignment());
if (named)
{
const auto& paragraphStyles = doc->paragraphStyles();
for (int i=0; i < paragraphStyles.count(); ++i)
{
//qDebug() << QString("%1 %2").arg(i).arg(doc->paragraphStyles()[i].name());
if (parStyle.name() == paragraphStyles[i].name()) {
return i;
}
}
assert(false);
}
return -1;
}
int findParagraphStyle(ScribusDoc* doc, const QString &name)
{
for (int i=0; i < doc->paragraphStyles().count(); ++i)
{
if (name == doc->paragraphStyles()[i].name())
return i;
}
assert(false);
return -1;
}
bool SCRIBUS_API localeAwareLessThan(const QString& s1, const QString& s2)
{
int result = QString::localeAwareCompare(s1, s2);
return (result < 0);
}
StoryText desaxeString(ScribusDoc* doc, const QString& saxedString)
{
assert(!saxedString.isEmpty());
Serializer* dig = doc->textSerializer();
dig->reset();
dig->store<ScribusDoc>("<scribusdoc>", doc);
dig->parseMemory(saxedString);
StoryText* story = dig->result<StoryText>();
assert (story != nullptr);
StoryText res = *story;
res.setDoc(doc);
delete story;
return res;
}
QString saxedText(StoryText* story)
{
std::ostringstream xmlString;
SaxXML xmlStream(xmlString);
xmlStream.beginDoc();
story->saxx(xmlStream, "SCRIBUSTEXT");
xmlStream.endDoc();
std::string xml(xmlString.str());
return QString(xml.c_str());
}