r24341 by jghali - Get rid of deprecated QXmlAttributes in SXW importer
scribus-commit
scribus-commit at lists.scribus.net
Tue Dec 22 00:06:47 UTC 2020
Author: jghali
Date: Tue Dec 22 00:06:47 2020
New Revision: 24341
URL: http://scribus.net/websvn/listing.php?repname=Scribus&sc=1&rev=24341
Log:
Get rid of deprecated QXmlAttributes in SXW importer
Modified:
trunk/Scribus/scribus/plugins/gettext/sxwim/contentreader.cpp
trunk/Scribus/scribus/plugins/gettext/sxwim/contentreader.h
Modified: trunk/Scribus/scribus/plugins/gettext/sxwim/contentreader.cpp
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=24341&path=/trunk/Scribus/scribus/plugins/gettext/sxwim/contentreader.cpp
==============================================================================
--- trunk/Scribus/scribus/plugins/gettext/sxwim/contentreader.cpp (original)
+++ trunk/Scribus/scribus/plugins/gettext/sxwim/contentreader.cpp Tue Dec 22 00:06:47 2020
@@ -57,20 +57,14 @@
tName = "";
}
-bool ContentReader::startElement(const QString&, const QString&, const QString &name, const QXmlAttributes &attrs)
+bool ContentReader::startElement(const QString &name, const SXWAttributesMap &attrs)
{
if ((name == "text:p") || (name == "text:h"))
{
++append;
- QString name = "";
- for (int i = 0; i < attrs.count(); ++i)
- {
- if (attrs.localName(i) == "text:style-name")
- {
- name = attrs.value(i);
- styleNames.push_back(attrs.value(i));
- }
- }
+ QString name = attrs.value("text:style-name");
+ if (!name.isEmpty())
+ styleNames.push_back(name);
if (!inList)
{
pstyle = sreader->getStyle(name);
@@ -88,15 +82,11 @@
else if (name == "text:span")
{
inSpan = true;
- QString styleName = "";
- for (int i = 0; i < attrs.count(); ++i)
- {
- if (attrs.localName(i) == "text:style-name")
- {
- currentStyle = sreader->getStyle(attrs.value(i));
- styleName = attrs.value(i);
- styleNames.push_back(styleName);
- }
+ QString styleName = attrs.value("text:style-name");
+ if (!styleName.isEmpty())
+ {
+ currentStyle = sreader->getStyle(styleName);
+ styleNames.push_back(styleName);
}
gtStyle *tmp = sreader->getStyle(getName());
if ((tmp->getName()).indexOf("default-style") != -1)
@@ -110,11 +100,9 @@
++listLevel;
if (static_cast<int>(listIndex2.size()) < listLevel)
listIndex2.push_back(0);
- for (int i = 0; i < attrs.count(); ++i)
- {
- if (attrs.localName(i) == "text:style-name")
- currentList = attrs.value(i);
- }
+ QString styleName = attrs.value("text:style-name");
+ if (!styleName.isEmpty())
+ currentList = styleName;
currentStyle = sreader->getStyle(QString(currentList + "_%1").arg(listLevel));
styleNames.clear();
styleNames.push_back(QString(currentList + "_%1").arg(listLevel));
@@ -149,11 +137,12 @@
{
QString sname = "";
bool isTextStyle = false;
- for (int i = 0; i < attrs.count(); ++i)
- {
- if (attrs.localName(i) == "style:name")
- sname = attrs.value(i);
- else if ((attrs.localName(i) == "style:family") && (attrs.value(i) == "text"))
+ for (auto attr = attrs.cbegin(); attr != attrs.cend(); ++attr)
+ {
+ QString attrName = attr.key();
+ if (attrName == "style:name")
+ sname = attr.value();
+ else if ((attrName == "style:family") && (attr.value() == "text"))
isTextStyle = true;
}
if (isTextStyle)
@@ -165,9 +154,9 @@
else if ((name == "style:properties") && (inT))
{
Properties p;
- for (int i = 0; i < attrs.count(); ++i)
- {
- std::pair<QString, QString> pair(attrs.localName(i), attrs.value(i));
+ for (auto attr = attrs.cbegin(); attr != attrs.cend(); ++attr)
+ {
+ std::pair<QString, QString> pair(attr.key(), attr.value());
p.push_back(pair);
}
tmap[tName] = p;
@@ -175,15 +164,13 @@
else if (name == "text:s")
{
int count = 1;
- for (int i = 0; i < attrs.count(); ++i)
- {
- if (attrs.localName(i) == "text:c")
- {
- bool ok = false;
- int tmpcount = (attrs.value(i)).toInt(&ok);
- if (ok)
- count = tmpcount;
- }
+ QString textC = attrs.value("text:c");
+ if (!textC.isEmpty())
+ {
+ bool ok = false;
+ int tmpcount = textC.toInt(&ok);
+ if (ok)
+ count = tmpcount;
}
for (int i = 0; i < count; ++i)
write(" ");
@@ -203,7 +190,7 @@
return true;
}
-bool ContentReader::endElement(const QString&, const QString&, const QString &name)
+bool ContentReader::endElement(const QString &name)
{
if ((name == "text:p") || (name == "text:h"))
{
@@ -325,13 +312,14 @@
void ContentReader::startElement(void*, const xmlChar *fullname, const xmlChar ** atts)
{
QString name(QString((const char*) fullname).toLower());
- QXmlAttributes attrs;
- if (atts)
- {
- for (const xmlChar** cur = atts; cur && *cur; cur += 2)
- attrs.append(QString((char*)*cur), nullptr, QString((char*)*cur), QString((char*)*(cur + 1)));
- }
- creader->startElement(nullptr, nullptr, name, attrs);
+ SXWAttributesMap attrs;
+ for (const xmlChar** cur = atts; cur && *cur; cur += 2)
+ {
+ QString attrName((char*)*cur);
+ QString attrValue((char*)*(cur + 1));
+ attrs[attrName] = attrValue;
+ }
+ creader->startElement(name, attrs);
}
void ContentReader::characters(void*, const xmlChar *ch, int len)
@@ -343,7 +331,7 @@
void ContentReader::endElement(void*, const xmlChar *name)
{
QString nname(QString((const char*) name).toLower());
- creader->endElement(nullptr, nullptr, nname);
+ creader->endElement(nname);
}
QString ContentReader::getName()
Modified: trunk/Scribus/scribus/plugins/gettext/sxwim/contentreader.h
URL: http://scribus.net/websvn/diff.php?repname=Scribus&rev=24341&path=/trunk/Scribus/scribus/plugins/gettext/sxwim/contentreader.h
==============================================================================
--- trunk/Scribus/scribus/plugins/gettext/sxwim/contentreader.h (original)
+++ trunk/Scribus/scribus/plugins/gettext/sxwim/contentreader.h Tue Dec 22 00:06:47 2020
@@ -38,19 +38,35 @@
#else
#include <libxml/SAX.h>
#endif
-#include <QXmlAttributes>
+
#include <QMap>
+
#include <gtstyle.h>
#include <gtwriter.h>
#include "stylereader.h"
typedef std::vector<std::pair<QString, QString> > Properties;
+typedef QMap<QString, QString> SXWAttributesMap;
typedef QMap<QString, Properties > TMap;
class ContentReader
{
+public:
+ ContentReader(const QString& documentName, StyleReader* s, gtWriter *w, bool textOnly);
+ ~ContentReader();
+
+ void parse(const QString& fileName);
+
+ static void startElement(void *user_data, const xmlChar *fullname, const xmlChar ** atts);
+ static void endElement(void *user_data, const xmlChar *name);
+ static void characters(void *user_data, const xmlChar *ch, int len);
+ bool startElement(const QString &name, const SXWAttributesMap &attrs);
+ bool endElement(const QString &name);
+ bool characters(const QString &ch);
+
private:
static ContentReader *creader;
+
TMap tmap;
QString docname;
StyleReader* sreader;
@@ -76,16 +92,6 @@
void write(const QString& text);
QString getName();
void getStyle();
-public:
- ContentReader(const QString& documentName, StyleReader* s, gtWriter *w, bool textOnly);
- ~ContentReader();
- static void startElement(void *user_data, const xmlChar *fullname, const xmlChar ** atts);
- static void endElement(void *user_data, const xmlChar *name);
- static void characters(void *user_data, const xmlChar *ch, int len);
- bool startElement(const QString&, const QString&, const QString &name, const QXmlAttributes &attrs);
- bool endElement(const QString&, const QString&, const QString &name);
- bool characters(const QString &ch);
- void parse(const QString& fileName);
};
#endif // HAVE_XML
More information about the scribus-commit
mailing list