This class parses Quattro Pro spreadsheet: .wq1 and wq2. More...
#include <QuattroDos.h>
Public Member Functions | |
QuattroDosParser (RVNGInputStreamPtr &input, WPSHeaderPtr &header, libwps_tools_win::Font::Type encoding=libwps_tools_win::Font::UNKNOWN) | |
constructor | |
~QuattroDosParser () final | |
destructor | |
void | parse (librevenge::RVNGSpreadsheetInterface *documentInterface) final |
called by WPSDocument to parse the file | |
bool | checkHeader (WPSHeader *header, bool strict=false) |
checks if the document header is correct (or not) | |
![]() | |
WKSParser (RVNGInputStreamPtr &input, WPSHeaderPtr &header) | |
virtual | ~WKSParser () |
Protected Member Functions | |
bool | checkFilePosition (long pos) |
return true if the pos is in the file, update the file size if need | |
int | version () const |
return the file version | |
libwps_tools_win::Font::Type | getDefaultFontType () const |
returns the default font type, ie. | |
librevenge::RVNGString | getFileName (int fId) const |
returns the name of the fId file | |
bool | getColor (int id, WPSColor &color) const |
returns the color corresponding to an id | |
bool | getFont (int id, WPSFont &font, libwps_tools_win::Font::Type &type) const |
returns the font corresponding to an id | |
librevenge::RVNGString | getSheetName (int id) const |
returns the name of the id's spreadsheet | |
bool | sendChart (int sheetId, Vec2i const &cell, Vec2f const &chartSize) |
try to send the chart corresponding to sheetId and a position | |
std::shared_ptr< WKSContentListener > | createListener (librevenge::RVNGSpreadsheetInterface *interface) |
creates the main listener | |
void | sendHeaderFooter (bool header) |
send the header/footer | |
bool | readZones () |
finds the different zones (spreadsheet, chart, print, ...) | |
bool | readZone () |
reads a zone | |
bool | readUserFonts () |
reads the user fonts | |
bool | readFont (WPSFont &font, libwps_tools_win::Font::Type &type) |
try to read a font | |
bool | readHeaderFooter (bool header) |
reads the header/footer | |
bool | readFieldName () |
read a list of field name + ... | |
bool | readFileName () |
read a file name | |
bool | readPString (librevenge::RVNGString &string, long maxSize) |
try to read a basic pascal string, knowing the maximum size(excluding string size) | |
bool | readWindowRecord () |
reads windows record 0:7|0:9 | |
bool | readUnknown1 () |
reads some unknown spreadsheet zones 0:18|0:19|0:20|0:27|0:2a | |
![]() | |
RVNGInputStreamPtr & | getInput () |
void | resetInput (RVNGInputStreamPtr const &newInput) |
RVNGInputStreamPtr | getFileInput () |
WPSHeaderPtr & | getHeader () |
int | version () const |
void | setVersion (int vers) |
libwps::DebugFile & | ascii () |
a DebugFile used to write what we recognize when we parse the document | |
Protected Attributes | |
std::shared_ptr< WKSContentListener > | m_listener |
std::shared_ptr< QuattroDosParserInternal::State > | m_state |
the listener (if set) | |
std::shared_ptr< QuattroDosSpreadsheet > | m_spreadsheetParser |
the spreadsheet manager | |
std::shared_ptr< QuattroDosChart > | m_chartParser |
the chart manager | |
Friends | |
class | QuattroDosParserInternal::SubDocument |
class | QuattroDosChart |
class | QuattroDosSpreadsheet |
This class parses Quattro Pro spreadsheet: .wq1 and wq2.
QuattroDosParser::QuattroDosParser | ( | RVNGInputStreamPtr & | input, |
WPSHeaderPtr & | header, | ||
libwps_tools_win::Font::Type | encoding = libwps_tools_win::Font::UNKNOWN |
||
) |
constructor
|
final |
destructor
return true if the pos is in the file, update the file size if need
Referenced by checkHeader(), readFont(), readPString(), readZone(), and readZones().
checks if the document header is correct (or not)
Referenced by libwps::WPSDocument::isFileFormatSupported(), and parse().
|
protected |
creates the main listener
Referenced by parse().
returns the color corresponding to an id
Referenced by QuattroDosSpreadsheet::readCellStyle(), QuattroDosChart::readChart(), and QuattroDosSpreadsheet::readUserStyle().
|
protected |
returns the default font type, ie.
the encoding given by the constructor if given or the encoding deduiced from the version.
Referenced by QuattroDosSpreadsheet::readCell(), QuattroDosSpreadsheet::readCellProperty(), QuattroDosSpreadsheet::readCellStyle(), readFont(), readPString(), readUserFonts(), QuattroDosSpreadsheet::readUserStyle(), QuattroDosSpreadsheet::sendSpreadsheet(), and QuattroDosChart::sendText().
|
protected |
returns the name of the fId file
Referenced by QuattroDosSpreadsheet::readCell().
|
protected |
returns the font corresponding to an id
Referenced by QuattroDosSpreadsheet::readCellProperty().
|
protected |
returns the name of the id's spreadsheet
Referenced by QuattroDosChart::updateSpreadsheetNames().
|
finalvirtual |
called by WPSDocument to parse the file
Implements WKSParser.
|
protected |
read a list of field name + ...
Referenced by readZone().
|
protected |
read a file name
Referenced by readZone().
|
protected |
try to read a font
Referenced by QuattroDosChart::readChart(), and readUserFonts().
reads the header/footer
Referenced by readZone().
try to read a basic pascal string, knowing the maximum size(excluding string size)
Referenced by QuattroDosSpreadsheet::readCell(), QuattroDosSpreadsheet::readCellFormulaResult(), QuattroDosChart::readChart(), QuattroDosChart::readChartName(), readFieldName(), readFileName(), QuattroDosSpreadsheet::readSpreadsheetName(), and QuattroDosSpreadsheet::readUserStyle().
|
protected |
reads some unknown spreadsheet zones 0:18|0:19|0:20|0:27|0:2a
Referenced by readZone().
|
protected |
reads the user fonts
Referenced by readZone().
|
protected |
reads windows record 0:7|0:9
Referenced by readZone().
|
protected |
reads a zone
Referenced by checkHeader(), and readZones().
|
protected |
finds the different zones (spreadsheet, chart, print, ...)
Referenced by parse().
|
protected |
try to send the chart corresponding to sheetId and a position
Referenced by QuattroDosSpreadsheet::sendCellContent().
|
protected |
return the file version
Referenced by readUnknown1(), QuattroDosChart::version(), and QuattroDosSpreadsheet::version().
|
friend |
|
friend |
|
protected |
the chart manager
Referenced by parse(), readZone(), and sendChart().
|
protected |
Referenced by parse(), and sendHeaderFooter().
|
protected |
the spreadsheet manager
Referenced by getSheetName(), parse(), readZone(), and readZones().
|
protected |
the listener (if set)
the internal state
Referenced by checkFilePosition(), checkHeader(), createListener(), getColor(), getDefaultFontType(), getFileName(), getFont(), readFileName(), readFont(), readHeaderFooter(), readUserFonts(), sendHeaderFooter(), and version().