Take use of existing theme file
This commit is contained in:
@@ -168,7 +168,9 @@ bool Package::parsePackage(QIODevice *packageDevice)
|
|||||||
QList<XlsxRelationship> rels_theme = xlworkbook_Rels.documentRelationships(QStringLiteral("/theme"));
|
QList<XlsxRelationship> rels_theme = xlworkbook_Rels.documentRelationships(QStringLiteral("/theme"));
|
||||||
if (!rels_theme.isEmpty()) {
|
if (!rels_theme.isEmpty()) {
|
||||||
//In normal case this should be theme/theme1.xml which in xl
|
//In normal case this should be theme/theme1.xml which in xl
|
||||||
//:Todo
|
QString name = rels_theme[0].target;
|
||||||
|
QString path = xlworkbook_Dir + QLatin1String("/") + name;
|
||||||
|
m_document->workbook()->theme()->loadFromXmlData(zipReader.fileData(path));
|
||||||
}
|
}
|
||||||
|
|
||||||
//load worksheets
|
//load worksheets
|
||||||
@@ -338,7 +340,7 @@ void Package::writeThemeFile(ZipWriter &zipWriter)
|
|||||||
QByteArray data;
|
QByteArray data;
|
||||||
QBuffer buffer(&data);
|
QBuffer buffer(&data);
|
||||||
buffer.open(QIODevice::WriteOnly);
|
buffer.open(QIODevice::WriteOnly);
|
||||||
Theme().saveToXmlFile(&buffer);
|
m_workbook->theme()->saveToXmlFile(&buffer);
|
||||||
zipWriter.addFile(QStringLiteral("xl/theme/theme1.xml"), data);
|
zipWriter.addFile(QStringLiteral("xl/theme/theme1.xml"), data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+181
-3
File diff suppressed because one or more lines are too long
@@ -36,6 +36,9 @@ public:
|
|||||||
Theme();
|
Theme();
|
||||||
|
|
||||||
void saveToXmlFile(QIODevice *device);
|
void saveToXmlFile(QIODevice *device);
|
||||||
|
void loadFromXmlData(const QByteArray &data);
|
||||||
|
|
||||||
|
QByteArray xmlData;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ WorkbookPrivate::WorkbookPrivate(Workbook *q) :
|
|||||||
{
|
{
|
||||||
sharedStrings = QSharedPointer<SharedStrings> (new SharedStrings);
|
sharedStrings = QSharedPointer<SharedStrings> (new SharedStrings);
|
||||||
styles = QSharedPointer<Styles>(new Styles);
|
styles = QSharedPointer<Styles>(new Styles);
|
||||||
|
theme = QSharedPointer<Theme>(new Theme);
|
||||||
|
|
||||||
x_window = 240;
|
x_window = 240;
|
||||||
y_window = 15;
|
y_window = 15;
|
||||||
@@ -247,6 +248,12 @@ Styles *Workbook::styles()
|
|||||||
return d->styles.data();
|
return d->styles.data();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Theme *Workbook::theme()
|
||||||
|
{
|
||||||
|
Q_D(Workbook);
|
||||||
|
return d->theme.data();
|
||||||
|
}
|
||||||
|
|
||||||
QList<QImage> Workbook::images()
|
QList<QImage> Workbook::images()
|
||||||
{
|
{
|
||||||
Q_D(Workbook);
|
Q_D(Workbook);
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ class Styles;
|
|||||||
class Package;
|
class Package;
|
||||||
class Drawing;
|
class Drawing;
|
||||||
class Document;
|
class Document;
|
||||||
|
class Theme;
|
||||||
class DocumentPrivate;
|
class DocumentPrivate;
|
||||||
|
|
||||||
class WorkbookPrivate;
|
class WorkbookPrivate;
|
||||||
@@ -82,6 +83,7 @@ private:
|
|||||||
|
|
||||||
SharedStrings *sharedStrings() const;
|
SharedStrings *sharedStrings() const;
|
||||||
Styles *styles();
|
Styles *styles();
|
||||||
|
Theme *theme();
|
||||||
QList<QImage> images();
|
QList<QImage> images();
|
||||||
QList<Drawing *> drawings();
|
QList<Drawing *> drawings();
|
||||||
void prepareDrawings();
|
void prepareDrawings();
|
||||||
|
|||||||
@@ -25,6 +25,7 @@
|
|||||||
#ifndef XLSXWORKBOOK_P_H
|
#ifndef XLSXWORKBOOK_P_H
|
||||||
#define XLSXWORKBOOK_P_H
|
#define XLSXWORKBOOK_P_H
|
||||||
#include "xlsxworkbook.h"
|
#include "xlsxworkbook.h"
|
||||||
|
#include "xlsxtheme_p.h"
|
||||||
#include <QSharedPointer>
|
#include <QSharedPointer>
|
||||||
#include <QPair>
|
#include <QPair>
|
||||||
|
|
||||||
@@ -68,6 +69,7 @@ public:
|
|||||||
QSharedPointer<SharedStrings> sharedStrings;
|
QSharedPointer<SharedStrings> sharedStrings;
|
||||||
QList<QSharedPointer<Worksheet> > worksheets;
|
QList<QSharedPointer<Worksheet> > worksheets;
|
||||||
QSharedPointer<Styles> styles;
|
QSharedPointer<Styles> styles;
|
||||||
|
QSharedPointer<Theme> theme;
|
||||||
QList<QImage> images;
|
QList<QImage> images;
|
||||||
QList<Drawing *> drawings;
|
QList<Drawing *> drawings;
|
||||||
QList<XlsxDefineNameData> definedNamesList;
|
QList<XlsxDefineNameData> definedNamesList;
|
||||||
|
|||||||
Reference in New Issue
Block a user