Browse Source

Code refactor: Add prefix "XlsxFormat" to some internal class

master
Debao Zhang 11 years ago
parent
commit
b2c7e554b3
  1. 54
      src/xlsx/xlsxformat_p.h
  2. 2
      src/xlsx/xlsxsharedstrings.cpp
  3. 28
      src/xlsx/xlsxstyles.cpp
  4. 26
      src/xlsx/xlsxstyles_p.h

54
src/xlsx/xlsxformat_p.h

@ -28,9 +28,9 @@
namespace QXlsx { namespace QXlsx {
struct NumberData struct XlsxFormatNumberData
{ {
NumberData() : formatIndex(0), _valid(true) {} XlsxFormatNumberData() : formatIndex(0), _valid(true) {}
int formatIndex; int formatIndex;
QString formatString; QString formatString;
@ -38,9 +38,9 @@ struct NumberData
bool _valid; bool _valid;
}; };
struct FontData struct XlsxFormatFontData
{ {
FontData() : XlsxFormatFontData() :
size(11), italic(false), strikeOut(false), color(QColor()), bold(false) size(11), italic(false), strikeOut(false), color(QColor()), bold(false)
, scirpt(Format::FontScriptNormal), underline(Format::FontUnderlineNone) , scirpt(Format::FontScriptNormal), underline(Format::FontUnderlineNone)
, outline(false), shadow(false), name(QStringLiteral("Calibri")), family(2), charset(0) , outline(false), shadow(false), name(QStringLiteral("Calibri")), family(2), charset(0)
@ -76,9 +76,9 @@ struct FontData
<<outline<<scheme<<scirpt<<shadow <<outline<<scheme<<scirpt<<shadow
<<size<<strikeOut<<underline; <<size<<strikeOut<<underline;
const_cast<FontData*>(this)->_key = key; const_cast<XlsxFormatFontData*>(this)->_key = key;
const_cast<FontData*>(this)->_dirty = false; const_cast<XlsxFormatFontData*>(this)->_dirty = false;
const_cast<FontData*>(this)->_indexValid = false;//dirty flag can not be simply cleared. const_cast<XlsxFormatFontData*>(this)->_indexValid = false;//dirty flag can not be simply cleared.
} }
return _key; return _key;
} }
@ -108,9 +108,9 @@ private:
int _index; //index in the Font list int _index; //index in the Font list
}; };
struct AlignmentData struct XlsxFormatAlignmentData
{ {
AlignmentData() : XlsxFormatAlignmentData() :
alignH(Format::AlignHGeneral), alignV(Format::AlignBottom) alignH(Format::AlignHGeneral), alignV(Format::AlignBottom)
, wrap(false), rotation(0), indent(0), shinkToFit(false) , wrap(false), rotation(0), indent(0), shinkToFit(false)
{} {}
@ -123,9 +123,9 @@ struct AlignmentData
bool shinkToFit; bool shinkToFit;
}; };
struct BorderData struct XlsxFormatBorderData
{ {
BorderData() : XlsxFormatBorderData() :
left(Format::BorderNone), right(Format::BorderNone), top(Format::BorderNone) left(Format::BorderNone), right(Format::BorderNone), top(Format::BorderNone)
,bottom(Format::BorderNone), diagonal(Format::BorderNone) ,bottom(Format::BorderNone), diagonal(Format::BorderNone)
,diagonalType(Format::DiagonalBorderNone) ,diagonalType(Format::DiagonalBorderNone)
@ -157,9 +157,9 @@ struct BorderData
stream << bottom << bottomColor << bottomThemeColor << top << topColor << topThemeColor stream << bottom << bottomColor << bottomThemeColor << top << topColor << topThemeColor
<< diagonal << diagonalColor << diagonalThemeColor << diagonalType << diagonal << diagonalColor << diagonalThemeColor << diagonalType
<< left << leftColor << leftThemeColor << right << rightColor << rightThemeColor; << left << leftColor << leftThemeColor << right << rightColor << rightThemeColor;
const_cast<BorderData*>(this)->_key = key; const_cast<XlsxFormatBorderData*>(this)->_key = key;
const_cast<BorderData*>(this)->_dirty = false; const_cast<XlsxFormatBorderData*>(this)->_dirty = false;
const_cast<BorderData*>(this)->_indexValid = false; const_cast<XlsxFormatBorderData*>(this)->_indexValid = false;
} }
return _key; return _key;
} }
@ -189,8 +189,8 @@ private:
int _index; //index in the border list int _index; //index in the border list
}; };
struct FillData { struct XlsxFormatFillData {
FillData() : XlsxFormatFillData() :
pattern(Format::PatternNone) pattern(Format::PatternNone)
,_dirty(true), _indexValid(false), _index(-1) ,_dirty(true), _indexValid(false), _index(-1)
{} {}
@ -209,9 +209,9 @@ struct FillData {
stream<< bgColor << bgThemeColor stream<< bgColor << bgThemeColor
<< fgColor << fgThemeColor << fgColor << fgThemeColor
<< pattern; << pattern;
const_cast<FillData*>(this)->_key = key; const_cast<XlsxFormatFillData*>(this)->_key = key;
const_cast<FillData*>(this)->_dirty = false; const_cast<XlsxFormatFillData*>(this)->_dirty = false;
const_cast<FillData*>(this)->_indexValid = false; const_cast<XlsxFormatFillData*>(this)->_indexValid = false;
} }
return _key; return _key;
} }
@ -241,8 +241,8 @@ private:
int _index; //index in the border list int _index; //index in the border list
}; };
struct ProtectionData { struct XlsxFormatProtectionData {
ProtectionData() : XlsxFormatProtectionData() :
locked(false), hidden(false) locked(false), hidden(false)
{} {}
@ -256,12 +256,12 @@ class FormatPrivate
public: public:
FormatPrivate(Format *p); FormatPrivate(Format *p);
NumberData numberData; XlsxFormatNumberData numberData;
FontData fontData; XlsxFormatFontData fontData;
AlignmentData alignmentData; XlsxFormatAlignmentData alignmentData;
BorderData borderData; XlsxFormatBorderData borderData;
FillData fillData; XlsxFormatFillData fillData;
ProtectionData protectionData; XlsxFormatProtectionData protectionData;
bool dirty; //The key re-generation is need. bool dirty; //The key re-generation is need.
QByteArray formatKey; QByteArray formatKey;

2
src/xlsx/xlsxsharedstrings.cpp

@ -130,7 +130,7 @@ void SharedStrings::writeRichStringPart_rPr(XmlStreamWriter &writer, Format *for
if (!format) if (!format)
return; return;
FontData *font = &format->d_ptr->fontData; XlsxFormatFontData *font = &format->d_ptr->fontData;
if (font->bold) if (font->bold)
writer.writeEmptyElement(QStringLiteral("b")); writer.writeEmptyElement(QStringLiteral("b"));

28
src/xlsx/xlsxstyles.cpp

@ -48,7 +48,7 @@ Styles::Styles(bool createEmpty)
//Add default Format //Add default Format
addFormat(createFormat()); addFormat(createFormat());
//Add another fill format //Add another fill format
QSharedPointer<FillData> fill = QSharedPointer<FillData>(new FillData); QSharedPointer<XlsxFormatFillData> fill = QSharedPointer<XlsxFormatFillData>(new XlsxFormatFillData);
fill->pattern = Format::PatternGray125; fill->pattern = Format::PatternGray125;
m_fillsList.append(fill); m_fillsList.append(fill);
m_fillsHash[fill->key()] = fill; m_fillsHash[fill->key()] = fill;
@ -138,7 +138,7 @@ void Styles::addFormat(Format *format, bool force)
//Assign a new fmt Id. //Assign a new fmt Id.
format->setNumFmt(m_nextCustomNumFmtId, str); format->setNumFmt(m_nextCustomNumFmtId, str);
QSharedPointer<NumberData> fmt(new NumberData(format->d_func()->numberData)); QSharedPointer<XlsxFormatNumberData> fmt(new XlsxFormatNumberData(format->d_func()->numberData));
m_customNumFmtIdMap.insert(m_nextCustomNumFmtId, fmt); m_customNumFmtIdMap.insert(m_nextCustomNumFmtId, fmt);
m_customNumFmtsHash.insert(str, fmt); m_customNumFmtsHash.insert(str, fmt);
@ -149,7 +149,7 @@ void Styles::addFormat(Format *format, bool force)
//Font //Font
if (!format->fontIndexValid()) { if (!format->fontIndexValid()) {
if (!m_fontsHash.contains(format->fontKey())) { if (!m_fontsHash.contains(format->fontKey())) {
QSharedPointer<FontData> font = QSharedPointer<FontData>(new FontData(format->d_func()->fontData)); QSharedPointer<XlsxFormatFontData> font = QSharedPointer<XlsxFormatFontData>(new XlsxFormatFontData(format->d_func()->fontData));
font->setIndex(m_fontsList.size()); //Assign proper index font->setIndex(m_fontsList.size()); //Assign proper index
m_fontsList.append(font); m_fontsList.append(font);
m_fontsHash[font->key()] = font; m_fontsHash[font->key()] = font;
@ -160,7 +160,7 @@ void Styles::addFormat(Format *format, bool force)
//Fill //Fill
if (!format->fillIndexValid()) { if (!format->fillIndexValid()) {
if (!m_fillsHash.contains(format->fillKey())) { if (!m_fillsHash.contains(format->fillKey())) {
QSharedPointer<FillData> fill = QSharedPointer<FillData>(new FillData(format->d_func()->fillData)); QSharedPointer<XlsxFormatFillData> fill = QSharedPointer<XlsxFormatFillData>(new XlsxFormatFillData(format->d_func()->fillData));
fill->setIndex(m_fillsList.size()); //Assign proper index fill->setIndex(m_fillsList.size()); //Assign proper index
m_fillsList.append(fill); m_fillsList.append(fill);
m_fillsHash[fill->key()] = fill; m_fillsHash[fill->key()] = fill;
@ -171,7 +171,7 @@ void Styles::addFormat(Format *format, bool force)
//Border //Border
if (!format->borderIndexValid()) { if (!format->borderIndexValid()) {
if (!m_bordersHash.contains(format->borderKey())) { if (!m_bordersHash.contains(format->borderKey())) {
QSharedPointer<BorderData> border = QSharedPointer<BorderData>(new BorderData(format->d_func()->borderData)); QSharedPointer<XlsxFormatBorderData> border = QSharedPointer<XlsxFormatBorderData>(new XlsxFormatBorderData(format->d_func()->borderData));
border->setIndex(m_bordersList.size()); //Assign proper index border->setIndex(m_bordersList.size()); //Assign proper index
m_bordersList.append(border); m_bordersList.append(border);
m_bordersHash[border->key()] = border; m_bordersHash[border->key()] = border;
@ -267,7 +267,7 @@ void Styles::writeNumFmts(XmlStreamWriter &writer)
writer.writeStartElement(QStringLiteral("numFmts")); writer.writeStartElement(QStringLiteral("numFmts"));
writer.writeAttribute(QStringLiteral("count"), QString::number(m_customNumFmtIdMap.count())); writer.writeAttribute(QStringLiteral("count"), QString::number(m_customNumFmtIdMap.count()));
QMapIterator<int, QSharedPointer<NumberData> > it(m_customNumFmtIdMap); QMapIterator<int, QSharedPointer<XlsxFormatNumberData> > it(m_customNumFmtIdMap);
while(it.hasNext()) { while(it.hasNext()) {
it.next(); it.next();
writer.writeEmptyElement(QStringLiteral("numFmt")); writer.writeEmptyElement(QStringLiteral("numFmt"));
@ -285,7 +285,7 @@ void Styles::writeFonts(XmlStreamWriter &writer)
writer.writeStartElement(QStringLiteral("fonts")); writer.writeStartElement(QStringLiteral("fonts"));
writer.writeAttribute(QStringLiteral("count"), QString::number(m_fontsList.count())); writer.writeAttribute(QStringLiteral("count"), QString::number(m_fontsList.count()));
for (int i=0; i<m_fontsList.size(); ++i) { for (int i=0; i<m_fontsList.size(); ++i) {
QSharedPointer<FontData> font = m_fontsList[i]; QSharedPointer<XlsxFormatFontData> font = m_fontsList[i];
writer.writeStartElement(QStringLiteral("font")); writer.writeStartElement(QStringLiteral("font"));
if (font->bold) if (font->bold)
@ -381,13 +381,13 @@ void Styles::writeFills(XmlStreamWriter &writer)
writer.writeAttribute(QStringLiteral("count"), QString::number(m_fillsList.size())); writer.writeAttribute(QStringLiteral("count"), QString::number(m_fillsList.size()));
for (int i=0; i<m_fillsList.size(); ++i) { for (int i=0; i<m_fillsList.size(); ++i) {
QSharedPointer<FillData> fill = m_fillsList[i]; QSharedPointer<XlsxFormatFillData> fill = m_fillsList[i];
writeFill(writer, fill.data()); writeFill(writer, fill.data());
} }
writer.writeEndElement(); //fills writer.writeEndElement(); //fills
} }
void Styles::writeFill(XmlStreamWriter &writer, FillData *fill) void Styles::writeFill(XmlStreamWriter &writer, XlsxFormatFillData *fill)
{ {
static QMap<int, QString> patternStrings; static QMap<int, QString> patternStrings;
if (patternStrings.isEmpty()) { if (patternStrings.isEmpty()) {
@ -446,7 +446,7 @@ void Styles::writeBorders(XmlStreamWriter &writer)
writer.writeStartElement(QStringLiteral("borders")); writer.writeStartElement(QStringLiteral("borders"));
writer.writeAttribute(QStringLiteral("count"), QString::number(m_bordersList.count())); writer.writeAttribute(QStringLiteral("count"), QString::number(m_bordersList.count()));
for (int i=0; i<m_bordersList.size(); ++i) { for (int i=0; i<m_bordersList.size(); ++i) {
QSharedPointer<BorderData> border = m_bordersList[i]; QSharedPointer<XlsxFormatBorderData> border = m_bordersList[i];
writer.writeStartElement(QStringLiteral("border")); writer.writeStartElement(QStringLiteral("border"));
if (border->diagonalType == Format::DiagonalBorderUp) { if (border->diagonalType == Format::DiagonalBorderUp) {
@ -583,7 +583,7 @@ bool Styles::readNumFmts(XmlStreamReader &reader)
if (reader.name() != QLatin1String("numFmt")) if (reader.name() != QLatin1String("numFmt"))
return false; return false;
QXmlStreamAttributes attributes = reader.attributes(); QXmlStreamAttributes attributes = reader.attributes();
QSharedPointer<NumberData> fmt (new NumberData); QSharedPointer<XlsxFormatNumberData> fmt (new XlsxFormatNumberData);
fmt->formatIndex = attributes.value(QLatin1String("numFmtId")).toString().toInt(); fmt->formatIndex = attributes.value(QLatin1String("numFmtId")).toString().toInt();
fmt->formatString = attributes.value(QLatin1String("formatCode")).toString(); fmt->formatString = attributes.value(QLatin1String("formatCode")).toString();
if (fmt->formatIndex >= m_nextCustomNumFmtId) if (fmt->formatIndex >= m_nextCustomNumFmtId)
@ -606,7 +606,7 @@ bool Styles::readFonts(XmlStreamReader &reader)
reader.readNextStartElement(); reader.readNextStartElement();
if (reader.name() != QLatin1String("font")) if (reader.name() != QLatin1String("font"))
return false; return false;
QSharedPointer<FontData> font(new FontData); QSharedPointer<XlsxFormatFontData> font(new XlsxFormatFontData);
while((reader.readNextStartElement(),true)) { //read until font endelement. while((reader.readNextStartElement(),true)) { //read until font endelement.
if (reader.tokenType() == QXmlStreamReader::StartElement) { if (reader.tokenType() == QXmlStreamReader::StartElement) {
if (reader.name() == QLatin1String("b")) { if (reader.name() == QLatin1String("b")) {
@ -712,7 +712,7 @@ bool Styles::readFill(XmlStreamReader &reader)
patternValues[QStringLiteral("lightGrid")] = Format::PatternLightGrid; patternValues[QStringLiteral("lightGrid")] = Format::PatternLightGrid;
} }
QSharedPointer<FillData> fill(new FillData); QSharedPointer<XlsxFormatFillData> fill(new XlsxFormatFillData);
while((reader.readNextStartElement(), true)) { //read until fill endelement while((reader.readNextStartElement(), true)) { //read until fill endelement
if (reader.tokenType() == QXmlStreamReader::StartElement) { if (reader.tokenType() == QXmlStreamReader::StartElement) {
if (reader.name() == QLatin1String("patternFill")) { if (reader.name() == QLatin1String("patternFill")) {
@ -783,7 +783,7 @@ bool Styles::readBorders(XmlStreamReader &reader)
bool Styles::readBorder(XmlStreamReader &reader) bool Styles::readBorder(XmlStreamReader &reader)
{ {
Q_ASSERT(reader.name() == QLatin1String("border")); Q_ASSERT(reader.name() == QLatin1String("border"));
QSharedPointer<BorderData> border(new BorderData); QSharedPointer<XlsxFormatBorderData> border(new XlsxFormatBorderData);
QXmlStreamAttributes attributes = reader.attributes(); QXmlStreamAttributes attributes = reader.attributes();
bool isUp = attributes.hasAttribute(QLatin1String("diagonalUp")); bool isUp = attributes.hasAttribute(QLatin1String("diagonalUp"));

26
src/xlsx/xlsxstyles_p.h

@ -40,10 +40,10 @@ class StylesTest;
namespace QXlsx { namespace QXlsx {
class Format; class Format;
struct NumberData; struct XlsxFormatNumberData;
struct FontData; struct XlsxFormatFontData;
struct FillData; struct XlsxFormatFillData;
struct BorderData; struct XlsxFormatBorderData;
class XmlStreamWriter; class XmlStreamWriter;
class XmlStreamReader; class XmlStreamReader;
@ -68,7 +68,7 @@ private:
void writeNumFmts(XmlStreamWriter &writer); void writeNumFmts(XmlStreamWriter &writer);
void writeFonts(XmlStreamWriter &writer); void writeFonts(XmlStreamWriter &writer);
void writeFills(XmlStreamWriter &writer); void writeFills(XmlStreamWriter &writer);
void writeFill(XmlStreamWriter &writer, FillData *fill); void writeFill(XmlStreamWriter &writer, XlsxFormatFillData *fill);
void writeBorders(XmlStreamWriter &writer); void writeBorders(XmlStreamWriter &writer);
void writeSubBorder(XmlStreamWriter &writer, const QString &type, int style, const QColor &color, const QString &themeColor); void writeSubBorder(XmlStreamWriter &writer, const QString &type, int style, const QColor &color, const QString &themeColor);
void writeCellXfs(XmlStreamWriter &writer); void writeCellXfs(XmlStreamWriter &writer);
@ -88,15 +88,15 @@ private:
QColor getColorByIndex(int idx); QColor getColorByIndex(int idx);
QHash<QString, int> m_builtinNumFmtsHash; QHash<QString, int> m_builtinNumFmtsHash;
QMap<int, QSharedPointer<NumberData> > m_customNumFmtIdMap; QMap<int, QSharedPointer<XlsxFormatNumberData> > m_customNumFmtIdMap;
QHash<QString, QSharedPointer<NumberData> > m_customNumFmtsHash; QHash<QString, QSharedPointer<XlsxFormatNumberData> > m_customNumFmtsHash;
int m_nextCustomNumFmtId; int m_nextCustomNumFmtId;
QList<QSharedPointer<FontData> > m_fontsList; //Keep a copy of unique fonts QList<QSharedPointer<XlsxFormatFontData> > m_fontsList; //Keep a copy of unique fonts
QList<QSharedPointer<FillData> > m_fillsList; //Keep a copy of unique fills QList<QSharedPointer<XlsxFormatFillData> > m_fillsList; //Keep a copy of unique fills
QList<QSharedPointer<BorderData> > m_bordersList; //Keep a copy of unique borders QList<QSharedPointer<XlsxFormatBorderData> > m_bordersList; //Keep a copy of unique borders
QHash<QByteArray, QSharedPointer<FontData> > m_fontsHash; QHash<QByteArray, QSharedPointer<XlsxFormatFontData> > m_fontsHash;
QHash<QByteArray, QSharedPointer<FillData> > m_fillsHash; QHash<QByteArray, QSharedPointer<XlsxFormatFillData> > m_fillsHash;
QHash<QByteArray, QSharedPointer<BorderData> > m_bordersHash; QHash<QByteArray, QSharedPointer<XlsxFormatBorderData> > m_bordersHash;
QVector<QColor> m_indexedColors; QVector<QColor> m_indexedColors;

Loading…
Cancel
Save