[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/work/koffice-ko/filters/kspread/xlsx
From: Sebastian Sauer <mail () dipe ! org>
Date: 2010-03-30 15:09:36
Message-ID: 20100330150937.05234AC887 () svn ! kde ! org
[Download RAW message or body]
SVN commit 1109101 by sebsauer:
Show chart titles.
M +48 -0 XlsxXmlChartReader.cpp
M +2 -0 XlsxXmlChartReader.h
--- branches/work/koffice-ko/filters/kspread/xlsx/XlsxXmlChartReader.cpp #1109100:1109101
@@ -85,6 +85,7 @@
: MSOOXML::MsooXmlCommonReader(writers)
, m_context(0)
, m_currentSeries(0)
+ , m_autoTitleDeleted(false)
{
}
@@ -121,6 +122,12 @@
if (isStartElement()) {
TRY_READ_IF(plotArea)
ELSE_TRY_READ_IF(legend)
+
+ if (qualifiedName() == QLatin1String(QUALIFIED_NAME(autoTitleDeleted))) {
+ const QXmlStreamAttributes attrs(attributes());
+ TRY_READ_ATTR_WITHOUT_NS(val)
+ m_autoTitleDeleted = val.toInt();
+ }
}
}
@@ -205,6 +212,8 @@
if (isStartElement()) {
TRY_READ_IF(val)
ELSE_TRY_READ_IF(cat)
+ if (!m_autoTitleDeleted)
+ TRY_READ_IF(tx)
if (qualifiedName() == QLatin1String(QUALIFIED_NAME(explosion))) {
const QXmlStreamAttributes attrs(attributes());
TRY_READ_ATTR_WITHOUT_NS(val)
@@ -261,6 +270,45 @@
}
#undef CURRENT_EL
+#define CURRENT_EL tx
+/*! This element specifies text to use on a chart, including rich text formatting. */
+KoFilter::ConversionStatus XlsxXmlChartReader::read_tx()
+{
+ enum State { Start, InStrRef, InRichText } state;
+ state = Start;
+
+ READ_PROLOGUE
+ while (!atEnd()) {
+ readNext();
+ switch(state) {
+ case Start:
+ if (qualifiedName() == QLatin1String(QUALIFIED_NAME(strRef)))
+ state = isStartElement() ? InStrRef : Start;
+ else if (qualifiedName() == QLatin1String(QUALIFIED_NAME(rich)))
+ state = isStartElement() ? InRichText : Start;
+ break;
+ case InStrRef:
+ if (isStartElement()) {
+ if (qualifiedName() == QLatin1String(QUALIFIED_NAME(f))) {
+ //TODO handle formula that references to the text cell (does ODF support that?)
+ } else if (qualifiedName() == QLatin1String(QUALIFIED_NAME(v))) {
+ //TODO handle other text's then the title text too
+ Charting::Text* t = new Charting::Text;
+ t->m_text = readElementText();
+ m_context->m_chart->m_texts << t;
+ }
+ }
+ break;
+ case InRichText:
+ //TODO
+ break;
+ }
+ BREAK_IF_END_OF(CURRENT_EL);
+ }
+ READ_EPILOGUE
+}
+
+#undef CURRENT_EL
#define CURRENT_EL numCache
KoFilter::ConversionStatus XlsxXmlChartReader::read_numCache()
{
--- branches/work/koffice-ko/filters/kspread/xlsx/XlsxXmlChartReader.h #1109100:1109101
@@ -75,6 +75,7 @@
KoFilter::ConversionStatus read_pie3DChart();
KoFilter::ConversionStatus read_val();
KoFilter::ConversionStatus read_cat();
+ KoFilter::ConversionStatus read_tx();
KoFilter::ConversionStatus read_numCache();
KoFilter::ConversionStatus read_firstSliceAng();
@@ -82,6 +83,7 @@
XlsxXmlChartReaderContext *m_context;
Charting::Series *m_currentSeries;
QString m_cellRangeAddress;
+ bool m_autoTitleDeleted;
};
#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic