[Libreoffice-commits] libvisio.git: src/lib

Miklos Vajna vmiklos at collabora.co.uk
Wed Sep 13 07:04:29 UTC 2017


 src/lib/VDXParser.h              |   14 ++--
 src/lib/VSD5Parser.h             |   58 ++++++++--------
 src/lib/VSD6Parser.h             |   22 +++---
 src/lib/VSDCharacterList.cpp     |   10 +-
 src/lib/VSDContentCollector.h    |  134 +++++++++++++++++++--------------------
 src/lib/VSDFieldList.h           |   28 ++++----
 src/lib/VSDGeometryList.cpp      |  130 ++++++++++++++++++-------------------
 src/lib/VSDInternalStream.h      |   22 +++---
 src/lib/VSDOutputElementList.cpp |  108 +++++++++++++++----------------
 src/lib/VSDParagraphList.cpp     |   10 +-
 src/lib/VSDStylesCollector.h     |  134 +++++++++++++++++++--------------------
 src/lib/VSDXParser.h             |   14 ++--
 12 files changed, 342 insertions(+), 342 deletions(-)

New commits:
commit f6c7fe7974fae43cc98c061f4a47d55a422d2d16
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Wed Sep 13 09:04:07 2017 +0200

    Mark overriding member functions as 'override'
    
    This does not affect the generated code (API or ABI), but:
    
    1) Makes sure that in case the signature of one of these functions would
    change by accident, the build breaks as the function no longer overrides
    a base function.
    
    2) Makes the code readable by explicitly marking all overriding
    functions as 'override', where previously the reader had to read the
    interface of the base class(es) as well to find out if the function is
    virtual or not.
    
    3) Since 'override' implies 'virtual', remove the 'virtual' keyword
    where 'override' is present.
    
    Change-Id: I482cbb5d22726b9a16c0f445fb945c24c69a5dd0

diff --git a/src/lib/VDXParser.h b/src/lib/VDXParser.h
index 0293911..6070047 100644
--- a/src/lib/VDXParser.h
+++ b/src/lib/VDXParser.h
@@ -28,9 +28,9 @@ class VDXParser : public VSDXMLParserBase
 
 public:
   explicit VDXParser(librevenge::RVNGInputStream *input, librevenge::RVNGDrawingInterface *painter);
-  virtual ~VDXParser();
-  bool parseMain();
-  bool extractStencils();
+  ~VDXParser() override;
+  bool parseMain() override;
+  bool extractStencils() override;
 
 private:
   VDXParser();
@@ -39,10 +39,10 @@ private:
 
   // Helper functions
 
-  xmlChar *readStringData(xmlTextReaderPtr reader);
+  xmlChar *readStringData(xmlTextReaderPtr reader) override;
 
-  int getElementToken(xmlTextReaderPtr reader);
-  int getElementDepth(xmlTextReaderPtr reader);
+  int getElementToken(xmlTextReaderPtr reader) override;
+  int getElementDepth(xmlTextReaderPtr reader) override;
 
   // Functions to read the DatadiagramML document structure
 
@@ -65,7 +65,7 @@ private:
   void readTabs(xmlTextReaderPtr reader);
   void readTab(xmlTextReaderPtr reader);
 
-  void getBinaryData(xmlTextReaderPtr reader);
+  void getBinaryData(xmlTextReaderPtr reader) override;
 
   // Private data
 
diff --git a/src/lib/VSD5Parser.h b/src/lib/VSD5Parser.h
index 02326ee..334cd05 100644
--- a/src/lib/VSD5Parser.h
+++ b/src/lib/VSD5Parser.h
@@ -23,44 +23,44 @@ class VSD5Parser : public VSD6Parser
 {
 public:
   explicit VSD5Parser(librevenge::RVNGInputStream *input, librevenge::RVNGDrawingInterface *painter);
-  ~VSD5Parser();
+  ~VSD5Parser() override;
 
 protected:
-  virtual void readPointer(librevenge::RVNGInputStream *input, Pointer &ptr);
-  virtual bool getChunkHeader(librevenge::RVNGInputStream *input);
-  virtual void readPointerInfo(librevenge::RVNGInputStream *input, unsigned ptrType, unsigned shift, unsigned &listSize, int &pointerCount);
-
-  virtual void readGeomList(librevenge::RVNGInputStream *input);
-  virtual void readCharList(librevenge::RVNGInputStream *input);
-  virtual void readParaList(librevenge::RVNGInputStream *input);
-  virtual void readShapeList(librevenge::RVNGInputStream *input);
-  virtual void readPropList(librevenge::RVNGInputStream *input);
-  virtual void readFieldList(librevenge::RVNGInputStream *input);
-  virtual void readNameList2(librevenge::RVNGInputStream *input);
-  virtual void readTabsDataList(librevenge::RVNGInputStream *input);
-
-  virtual void readLine(librevenge::RVNGInputStream *input);
-  virtual void readFillAndShadow(librevenge::RVNGInputStream *input);
-  virtual void readTextBlock(librevenge::RVNGInputStream *input);
-  virtual void readCharIX(librevenge::RVNGInputStream *input);
-  virtual void readParaIX(librevenge::RVNGInputStream *input);
-  virtual void readTextField(librevenge::RVNGInputStream *input);
-
-  virtual void readShape(librevenge::RVNGInputStream *input);
-  virtual void readPage(librevenge::RVNGInputStream *input);
+  void readPointer(librevenge::RVNGInputStream *input, Pointer &ptr) override;
+  bool getChunkHeader(librevenge::RVNGInputStream *input) override;
+  void readPointerInfo(librevenge::RVNGInputStream *input, unsigned ptrType, unsigned shift, unsigned &listSize, int &pointerCount) override;
+
+  void readGeomList(librevenge::RVNGInputStream *input) override;
+  void readCharList(librevenge::RVNGInputStream *input) override;
+  void readParaList(librevenge::RVNGInputStream *input) override;
+  void readShapeList(librevenge::RVNGInputStream *input) override;
+  void readPropList(librevenge::RVNGInputStream *input) override;
+  void readFieldList(librevenge::RVNGInputStream *input) override;
+  void readNameList2(librevenge::RVNGInputStream *input) override;
+  void readTabsDataList(librevenge::RVNGInputStream *input) override;
+
+  void readLine(librevenge::RVNGInputStream *input) override;
+  void readFillAndShadow(librevenge::RVNGInputStream *input) override;
+  void readTextBlock(librevenge::RVNGInputStream *input) override;
+  void readCharIX(librevenge::RVNGInputStream *input) override;
+  void readParaIX(librevenge::RVNGInputStream *input) override;
+  void readTextField(librevenge::RVNGInputStream *input) override;
+
+  void readShape(librevenge::RVNGInputStream *input) override;
+  void readPage(librevenge::RVNGInputStream *input) override;
 
   virtual void handleChunkRecords(librevenge::RVNGInputStream *input);
 
-  virtual void readStyleSheet(librevenge::RVNGInputStream *input);
+  void readStyleSheet(librevenge::RVNGInputStream *input) override;
 
-  virtual void readNameIDX(librevenge::RVNGInputStream *input);
+  void readNameIDX(librevenge::RVNGInputStream *input) override;
 
-  virtual void readMisc(librevenge::RVNGInputStream *input);
+  void readMisc(librevenge::RVNGInputStream *input) override;
 
-  virtual void readXForm1D(librevenge::RVNGInputStream *input);
+  void readXForm1D(librevenge::RVNGInputStream *input) override;
 
-  virtual unsigned getUInt(librevenge::RVNGInputStream *input);
-  virtual int getInt(librevenge::RVNGInputStream *input);
+  unsigned getUInt(librevenge::RVNGInputStream *input) override;
+  int getInt(librevenge::RVNGInputStream *input) override;
 
 private:
   VSD5Parser();
diff --git a/src/lib/VSD6Parser.h b/src/lib/VSD6Parser.h
index 56e7534..e3975a8 100644
--- a/src/lib/VSD6Parser.h
+++ b/src/lib/VSD6Parser.h
@@ -23,19 +23,19 @@ class VSD6Parser : public VSDParser
 {
 public:
   explicit VSD6Parser(librevenge::RVNGInputStream *input, librevenge::RVNGDrawingInterface *painter);
-  ~VSD6Parser();
+  ~VSD6Parser() override;
 protected:
-  virtual bool getChunkHeader(librevenge::RVNGInputStream *input);
+  bool getChunkHeader(librevenge::RVNGInputStream *input) override;
 private:
-  void readText(librevenge::RVNGInputStream *input);
-  virtual void readCharIX(librevenge::RVNGInputStream *input);
-  virtual void readParaIX(librevenge::RVNGInputStream *input);
-  virtual void readFillAndShadow(librevenge::RVNGInputStream *input);
-  virtual void readName(librevenge::RVNGInputStream *input);
-  virtual void readName2(librevenge::RVNGInputStream *input);
-  virtual void readTextField(librevenge::RVNGInputStream *input);
-  virtual void readLayerMem(librevenge::RVNGInputStream *input);
-  virtual void readMisc(librevenge::RVNGInputStream *input);
+  void readText(librevenge::RVNGInputStream *input) override;
+  void readCharIX(librevenge::RVNGInputStream *input) override;
+  void readParaIX(librevenge::RVNGInputStream *input) override;
+  void readFillAndShadow(librevenge::RVNGInputStream *input) override;
+  void readName(librevenge::RVNGInputStream *input) override;
+  void readName2(librevenge::RVNGInputStream *input) override;
+  void readTextField(librevenge::RVNGInputStream *input) override;
+  void readLayerMem(librevenge::RVNGInputStream *input) override;
+  void readMisc(librevenge::RVNGInputStream *input) override;
 
 
   VSD6Parser();
diff --git a/src/lib/VSDCharacterList.cpp b/src/lib/VSDCharacterList.cpp
index 49b8678..6574d7a 100644
--- a/src/lib/VSDCharacterList.cpp
+++ b/src/lib/VSDCharacterList.cpp
@@ -38,14 +38,14 @@ public:
     m_style(charCount, font, fontColour, fontSize, bold, italic, underline, doubleunderline, strikeout,
             doublestrikeout, allcaps, initcaps,  smallcaps,  superscript,  subscript, scaleWidth) {}
   VSDCharIX(unsigned id, unsigned level, const VSDOptionalCharStyle &style) : VSDCharacterListElement(id, level), m_style(style) {}
-  ~VSDCharIX() {}
-  void handle(VSDCollector *collector) const;
-  VSDCharacterListElement *clone();
-  unsigned getCharCount() const
+  ~VSDCharIX() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDCharacterListElement *clone() override;
+  unsigned getCharCount() const override
   {
     return m_style.charCount;
   }
-  void setCharCount(unsigned charCount)
+  void setCharCount(unsigned charCount) override
   {
     m_style.charCount = charCount;
   }
diff --git a/src/lib/VSDContentCollector.h b/src/lib/VSDContentCollector.h
index 049223c..3d24f1d 100644
--- a/src/lib/VSDContentCollector.h
+++ b/src/lib/VSDContentCollector.h
@@ -39,142 +39,142 @@ public:
     VSDStyles &styles, VSDStencils &stencils
   );
 
-  void collectDocumentTheme(const VSDXTheme *theme);
-  void collectEllipticalArcTo(unsigned id, unsigned level, double x3, double y3, double x2, double y2, double angle, double ecc);
-  void collectForeignData(unsigned level, const librevenge::RVNGBinaryData &binaryData);
-  void collectOLEList(unsigned id, unsigned level);
-  void collectOLEData(unsigned id, unsigned level, const librevenge::RVNGBinaryData &oleData);
-  void collectEllipse(unsigned id, unsigned level, double cx, double cy, double xleft, double yleft, double xtop, double ytop);
+  void collectDocumentTheme(const VSDXTheme *theme) override;
+  void collectEllipticalArcTo(unsigned id, unsigned level, double x3, double y3, double x2, double y2, double angle, double ecc) override;
+  void collectForeignData(unsigned level, const librevenge::RVNGBinaryData &binaryData) override;
+  void collectOLEList(unsigned id, unsigned level) override;
+  void collectOLEData(unsigned id, unsigned level, const librevenge::RVNGBinaryData &oleData) override;
+  void collectEllipse(unsigned id, unsigned level, double cx, double cy, double xleft, double yleft, double xtop, double ytop) override;
   void collectLine(unsigned level, const boost::optional<double> &strokeWidth, const boost::optional<Colour> &c, const boost::optional<unsigned char> &linePattern,
                    const boost::optional<unsigned char> &startMarker, const boost::optional<unsigned char> &endMarker,
                    const boost::optional<unsigned char> &lineCap, const boost::optional<double> &rounding,
-                   const boost::optional<long> &qsLineColour, const boost::optional<long> &qsLineMatrix);
+                   const boost::optional<long> &qsLineColour, const boost::optional<long> &qsLineMatrix) override;
   void collectFillAndShadow(unsigned level, const boost::optional<Colour> &colourFG, const boost::optional<Colour> &colourBG,
                             const boost::optional<unsigned char> &fillPattern, const boost::optional<double> &fillFGTransparency,
                             const boost::optional<double> &fillBGTransparency, const boost::optional<unsigned char> &shadowPattern,
                             const boost::optional<Colour> &shfgc, const boost::optional<double> &shadowOffsetX, const boost::optional<double> &shadowOffsetY,
-                            const boost::optional<long> &qsFc, const boost::optional<long> &qsSc, const boost::optional<long> &qsLm);
+                            const boost::optional<long> &qsFc, const boost::optional<long> &qsSc, const boost::optional<long> &qsLm) override;
   void collectFillAndShadow(unsigned level, const boost::optional<Colour> &colourFG, const boost::optional<Colour> &colourBG,
                             const boost::optional<unsigned char> &fillPattern, const boost::optional<double> &fillFGTransparency,
                             const boost::optional<double> &fillBGTransparency, const boost::optional<unsigned char> &shadowPattern,
-                            const boost::optional<Colour> &shfgc);
-  void collectGeometry(unsigned id, unsigned level, bool noFill, bool noLine, bool noShow);
-  void collectMoveTo(unsigned id, unsigned level, double x, double y);
-  void collectLineTo(unsigned id, unsigned level, double x, double y);
-  void collectArcTo(unsigned id, unsigned level, double x2, double y2, double bow);
+                            const boost::optional<Colour> &shfgc) override;
+  void collectGeometry(unsigned id, unsigned level, bool noFill, bool noLine, bool noShow) override;
+  void collectMoveTo(unsigned id, unsigned level, double x, double y) override;
+  void collectLineTo(unsigned id, unsigned level, double x, double y) override;
+  void collectArcTo(unsigned id, unsigned level, double x2, double y2, double bow) override;
   void collectNURBSTo(unsigned id, unsigned level, double x2, double y2, unsigned char xType, unsigned char yType, unsigned degree,
-                      const std::vector<std::pair<double, double> > &ctrlPnts, const std::vector<double> &kntVec, const std::vector<double> &weights);
-  void collectNURBSTo(unsigned id, unsigned level, double x2, double y2, double knot, double knotPrev, double weight, double weightPrev, unsigned dataID);
-  void collectNURBSTo(unsigned id, unsigned level, double x2, double y2, double knot, double knotPrev, double weight, double weightPrev, const NURBSData &data);
+                      const std::vector<std::pair<double, double> > &ctrlPnts, const std::vector<double> &kntVec, const std::vector<double> &weights) override;
+  void collectNURBSTo(unsigned id, unsigned level, double x2, double y2, double knot, double knotPrev, double weight, double weightPrev, unsigned dataID) override;
+  void collectNURBSTo(unsigned id, unsigned level, double x2, double y2, double knot, double knotPrev, double weight, double weightPrev, const NURBSData &data) override;
   void collectPolylineTo(unsigned id, unsigned level, double x, double y, unsigned char xType, unsigned char yType,
-                         const std::vector<std::pair<double, double> > &points);
-  void collectPolylineTo(unsigned id, unsigned level, double x, double y, unsigned dataID);
-  void collectPolylineTo(unsigned id, unsigned level, double x, double y, const PolylineData &data);
+                         const std::vector<std::pair<double, double> > &points) override;
+  void collectPolylineTo(unsigned id, unsigned level, double x, double y, unsigned dataID) override;
+  void collectPolylineTo(unsigned id, unsigned level, double x, double y, const PolylineData &data) override;
   void collectShapeData(unsigned id, unsigned level, unsigned char xType, unsigned char yType, unsigned degree, double lastKnot,
-                        std::vector<std::pair<double, double> > controlPoints, std::vector<double> knotVector, std::vector<double> weights);
-  void collectShapeData(unsigned id, unsigned level, unsigned char xType, unsigned char yType, std::vector<std::pair<double, double> > points);
-  void collectXFormData(unsigned level, const XForm &xform);
-  void collectTxtXForm(unsigned level, const XForm &txtxform);
-  void collectShapesOrder(unsigned id, unsigned level, const std::vector<unsigned> &shapeIds);
-  void collectForeignDataType(unsigned level, unsigned foreignType, unsigned foreignFormat, double offsetX, double offsetY, double width, double height);
-  void collectPageProps(unsigned id, unsigned level, double pageWidth, double pageHeight, double shadowOffsetX, double shadowOffsetY, double scale);
-  void collectPage(unsigned id, unsigned level, unsigned backgroundPageID, bool isBackgroundPage, const VSDName &pageName);
-  void collectShape(unsigned id, unsigned level, unsigned parent, unsigned masterPage, unsigned masterShape, unsigned lineStyle, unsigned fillStyle, unsigned textStyle);
-  void collectSplineStart(unsigned id, unsigned level, double x, double y, double secondKnot, double firstKnot, double lastKnot, unsigned degree);
-  void collectSplineKnot(unsigned id, unsigned level, double x, double y, double knot);
-  void collectSplineEnd();
-  void collectInfiniteLine(unsigned id, unsigned level, double x1, double y1, double x2, double y2);
-  void collectRelCubBezTo(unsigned id, unsigned level, double x, double y, double a, double b, double c, double d);
-  void collectRelEllipticalArcTo(unsigned id, unsigned level, double x, double y, double a, double b, double c, double d);
-  void collectRelLineTo(unsigned id, unsigned level, double x, double y);
-  void collectRelMoveTo(unsigned id, unsigned level, double x, double y);
-  void collectRelQuadBezTo(unsigned id, unsigned level, double x, double y, double a, double b);
-
-  void collectUnhandledChunk(unsigned id, unsigned level);
-
-  void collectText(unsigned level, const librevenge::RVNGBinaryData &textStream, TextFormat format);
+                        std::vector<std::pair<double, double> > controlPoints, std::vector<double> knotVector, std::vector<double> weights) override;
+  void collectShapeData(unsigned id, unsigned level, unsigned char xType, unsigned char yType, std::vector<std::pair<double, double> > points) override;
+  void collectXFormData(unsigned level, const XForm &xform) override;
+  void collectTxtXForm(unsigned level, const XForm &txtxform) override;
+  void collectShapesOrder(unsigned id, unsigned level, const std::vector<unsigned> &shapeIds) override;
+  void collectForeignDataType(unsigned level, unsigned foreignType, unsigned foreignFormat, double offsetX, double offsetY, double width, double height) override;
+  void collectPageProps(unsigned id, unsigned level, double pageWidth, double pageHeight, double shadowOffsetX, double shadowOffsetY, double scale) override;
+  void collectPage(unsigned id, unsigned level, unsigned backgroundPageID, bool isBackgroundPage, const VSDName &pageName) override;
+  void collectShape(unsigned id, unsigned level, unsigned parent, unsigned masterPage, unsigned masterShape, unsigned lineStyle, unsigned fillStyle, unsigned textStyle) override;
+  void collectSplineStart(unsigned id, unsigned level, double x, double y, double secondKnot, double firstKnot, double lastKnot, unsigned degree) override;
+  void collectSplineKnot(unsigned id, unsigned level, double x, double y, double knot) override;
+  void collectSplineEnd() override;
+  void collectInfiniteLine(unsigned id, unsigned level, double x1, double y1, double x2, double y2) override;
+  void collectRelCubBezTo(unsigned id, unsigned level, double x, double y, double a, double b, double c, double d) override;
+  void collectRelEllipticalArcTo(unsigned id, unsigned level, double x, double y, double a, double b, double c, double d) override;
+  void collectRelLineTo(unsigned id, unsigned level, double x, double y) override;
+  void collectRelMoveTo(unsigned id, unsigned level, double x, double y) override;
+  void collectRelQuadBezTo(unsigned id, unsigned level, double x, double y, double a, double b) override;
+
+  void collectUnhandledChunk(unsigned id, unsigned level) override;
+
+  void collectText(unsigned level, const librevenge::RVNGBinaryData &textStream, TextFormat format) override;
   void collectCharIX(unsigned id, unsigned level, unsigned charCount, const boost::optional<VSDName> &font,
                      const boost::optional<Colour> &fontColour, const boost::optional<double> &fontSize, const boost::optional<bool> &bold,
                      const boost::optional<bool> &italic, const boost::optional<bool> &underline, const boost::optional<bool> &doubleunderline,
                      const boost::optional<bool> &strikeout, const boost::optional<bool> &doublestrikeout, const boost::optional<bool> &allcaps,
                      const boost::optional<bool> &initcaps, const boost::optional<bool> &smallcaps, const boost::optional<bool> &superscript,
-                     const boost::optional<bool> &subscript, const boost::optional<double> &scaleWidth);
+                     const boost::optional<bool> &subscript, const boost::optional<double> &scaleWidth) override;
   void collectDefaultCharStyle(unsigned charCount, const boost::optional<VSDName> &font, const boost::optional<Colour> &fontColour,
                                const boost::optional<double> &fontSize, const boost::optional<bool> &bold, const boost::optional<bool> &italic,
                                const boost::optional<bool> &underline, const boost::optional<bool> &doubleunderline, const boost::optional<bool> &strikeout,
                                const boost::optional<bool> &doublestrikeout, const boost::optional<bool> &allcaps, const boost::optional<bool> &initcaps,
                                const boost::optional<bool> &smallcaps, const boost::optional<bool> &superscript, const boost::optional<bool> &subscript,
-                               const boost::optional<double> &scaleWidth);
+                               const boost::optional<double> &scaleWidth) override;
   void collectParaIX(unsigned id, unsigned level, unsigned charCount, const boost::optional<double> &indFirst,
                      const boost::optional<double> &indLeft, const boost::optional<double> &indRight, const boost::optional<double> &spLine,
                      const boost::optional<double> &spBefore, const boost::optional<double> &spAfter, const boost::optional<unsigned char> &align,
                      const boost::optional<unsigned char> &bullet, const boost::optional<VSDName> &bulletStr, const boost::optional<VSDName> &bulletFont,
                      const boost::optional<double> &bulletFontSize, const boost::optional<double> &textPosAfterBullet,
-                     const boost::optional<unsigned> &flags);
+                     const boost::optional<unsigned> &flags) override;
   void collectDefaultParaStyle(unsigned charCount, const boost::optional<double> &indFirst, const boost::optional<double> &indLeft,
                                const boost::optional<double> &indRight, const boost::optional<double> &spLine, const boost::optional<double> &spBefore,
                                const boost::optional<double> &spAfter, const boost::optional<unsigned char> &align,
                                const boost::optional<unsigned char> &bullet, const boost::optional<VSDName> &bulletStr,
                                const boost::optional<VSDName> &bulletFont, const boost::optional<double> &bulletFontSize,
-                               const boost::optional<double> &textPosAfterBullet, const boost::optional<unsigned> &flags);
+                               const boost::optional<double> &textPosAfterBullet, const boost::optional<unsigned> &flags) override;
   void collectTextBlock(unsigned level, const boost::optional<double> &leftMargin, const boost::optional<double> &rightMargin,
                         const boost::optional<double> &topMargin, const boost::optional<double> &bottomMargin,
                         const boost::optional<unsigned char> &verticalAlign, const boost::optional<bool> &isBgFilled,
                         const boost::optional<Colour> &bgColour, const boost::optional<double> &defaultTabStop,
-                        const boost::optional<unsigned char> &textDirection);
-  void collectNameList(unsigned id, unsigned level);
-  void collectName(unsigned id, unsigned level,  const librevenge::RVNGBinaryData &name, TextFormat format);
-  void collectPageSheet(unsigned id, unsigned level);
-  void collectMisc(unsigned level, const VSDMisc &misc);
-  void collectLayer(unsigned id, unsigned level, const VSDLayer &layer);
-  void collectLayerMem(unsigned level, const VSDName &layerMem);
-  void collectTabsDataList(unsigned level, const std::map<unsigned, VSDTabSet> &tabSets);
+                        const boost::optional<unsigned char> &textDirection) override;
+  void collectNameList(unsigned id, unsigned level) override;
+  void collectName(unsigned id, unsigned level,  const librevenge::RVNGBinaryData &name, TextFormat format) override;
+  void collectPageSheet(unsigned id, unsigned level) override;
+  void collectMisc(unsigned level, const VSDMisc &misc) override;
+  void collectLayer(unsigned id, unsigned level, const VSDLayer &layer) override;
+  void collectLayerMem(unsigned level, const VSDName &layerMem) override;
+  void collectTabsDataList(unsigned level, const std::map<unsigned, VSDTabSet> &tabSets) override;
 
   // Style collectors
-  void collectStyleSheet(unsigned id, unsigned level, unsigned parentLineStyle, unsigned parentFillStyle, unsigned parentTextStyle);
+  void collectStyleSheet(unsigned id, unsigned level, unsigned parentLineStyle, unsigned parentFillStyle, unsigned parentTextStyle) override;
   void collectLineStyle(unsigned level, const boost::optional<double> &strokeWidth, const boost::optional<Colour> &c, const boost::optional<unsigned char> &linePattern,
                         const boost::optional<unsigned char> &startMarker, const boost::optional<unsigned char> &endMarker,
                         const boost::optional<unsigned char> &lineCap, const boost::optional<double> &rounding,
-                        const boost::optional<long> &qsLineColour, const boost::optional<long> &qsLineMatrix);
+                        const boost::optional<long> &qsLineColour, const boost::optional<long> &qsLineMatrix) override;
   void collectFillStyle(unsigned level, const boost::optional<Colour> &colourFG, const boost::optional<Colour> &colourBG,
                         const boost::optional<unsigned char> &fillPattern, const boost::optional<double> &fillFGTransparency,
                         const boost::optional<double> &fillBGTransparency, const boost::optional<unsigned char> &shadowPattern,
                         const boost::optional<Colour> &shfgc, const boost::optional<double> &shadowOffsetX, const boost::optional<double> &shadowOffsetY,
                         const boost::optional<long> &qsFillColour, const boost::optional<long> &qsShadowColour,
-                        const boost::optional<long> &qsFillMatrix);
+                        const boost::optional<long> &qsFillMatrix) override;
   void collectFillStyle(unsigned level, const boost::optional<Colour> &colourFG, const boost::optional<Colour> &colourBG,
                         const boost::optional<unsigned char> &fillPattern, const boost::optional<double> &fillFGTransparency,
                         const boost::optional<double> &fillBGTransparency, const boost::optional<unsigned char> &shadowPattern,
-                        const boost::optional<Colour> &shfgc);
+                        const boost::optional<Colour> &shfgc) override;
   void collectCharIXStyle(unsigned id, unsigned level, unsigned charCount, const boost::optional<VSDName> &font,
                           const boost::optional<Colour> &fontColour, const boost::optional<double> &fontSize, const boost::optional<bool> &bold,
                           const boost::optional<bool> &italic, const boost::optional<bool> &underline, const boost::optional<bool> &doubleunderline,
                           const boost::optional<bool> &strikeout, const boost::optional<bool> &doublestrikeout, const boost::optional<bool> &allcaps,
                           const boost::optional<bool> &initcaps, const boost::optional<bool> &smallcaps, const boost::optional<bool> &superscript,
-                          const boost::optional<bool> &subscript, const boost::optional<double> &scaleWidth);
+                          const boost::optional<bool> &subscript, const boost::optional<double> &scaleWidth) override;
   void collectParaIXStyle(unsigned id, unsigned level, unsigned charCount, const boost::optional<double> &indFirst,
                           const boost::optional<double> &indLeft, const boost::optional<double> &indRight, const boost::optional<double> &spLine,
                           const boost::optional<double> &spBefore, const boost::optional<double> &spAfter, const boost::optional<unsigned char> &align,
                           const boost::optional<unsigned char> &bullet, const boost::optional<VSDName> &bulletStr,
                           const boost::optional<VSDName> &bulletFont, const boost::optional<double> &bulletFontSize,
-                          const boost::optional<double> &textPosAfterBullet, const boost::optional<unsigned> &flags);
+                          const boost::optional<double> &textPosAfterBullet, const boost::optional<unsigned> &flags) override;
   void collectTextBlockStyle(unsigned level, const boost::optional<double> &leftMargin, const boost::optional<double> &rightMargin,
                              const boost::optional<double> &topMargin, const boost::optional<double> &bottomMargin,
                              const boost::optional<unsigned char> &verticalAlign, const boost::optional<bool> &isBgFilled,
                              const boost::optional<Colour> &bgColour, const boost::optional<double> &defaultTabStop,
-                             const boost::optional<unsigned char> &textDirection);
+                             const boost::optional<unsigned char> &textDirection) override;
 
-  virtual void collectMetaData(const librevenge::RVNGPropertyList &metaData);
+  void collectMetaData(const librevenge::RVNGPropertyList &metaData) override;
 
 
   // Field list
-  void collectFieldList(unsigned id, unsigned level);
-  void collectTextField(unsigned id, unsigned level, int nameId, int formatStringId);
-  void collectNumericField(unsigned id, unsigned level, unsigned short format, double number, int formatStringId);
+  void collectFieldList(unsigned id, unsigned level) override;
+  void collectTextField(unsigned id, unsigned level, int nameId, int formatStringId) override;
+  void collectNumericField(unsigned id, unsigned level, unsigned short format, double number, int formatStringId) override;
 
-  void startPage(unsigned pageId);
-  void endPage();
-  void endPages();
+  void startPage(unsigned pageId) override;
+  void endPage() override;
+  void endPages() override;
 
 
 private:
diff --git a/src/lib/VSDFieldList.h b/src/lib/VSDFieldList.h
index 0de2293..f77463e 100644
--- a/src/lib/VSDFieldList.h
+++ b/src/lib/VSDFieldList.h
@@ -42,13 +42,13 @@ public:
       m_level(level),
       m_nameId(nameId),
       m_formatStringId(formatStringId) {}
-  ~VSDTextField() {}
-  void handle(VSDCollector *collector) const;
-  VSDFieldListElement *clone();
-  librevenge::RVNGString getString(const std::map<unsigned, librevenge::RVNGString> &strVec);
-  void setNameId(int nameId);
-  void setFormat(unsigned short) {}
-  void setValue(double) {}
+  ~VSDTextField() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDFieldListElement *clone() override;
+  librevenge::RVNGString getString(const std::map<unsigned, librevenge::RVNGString> &strVec) override;
+  void setNameId(int nameId) override;
+  void setFormat(unsigned short) override {}
+  void setValue(double) override {}
 private:
   unsigned m_id, m_level;
   int m_nameId, m_formatStringId;
@@ -63,13 +63,13 @@ public:
       m_format(format),
       m_number(number),
       m_formatStringId(formatStringId) {}
-  ~VSDNumericField() {}
-  void handle(VSDCollector *collector) const;
-  VSDFieldListElement *clone();
-  librevenge::RVNGString getString(const std::map<unsigned, librevenge::RVNGString> &);
-  void setNameId(int) {}
-  void setFormat(unsigned short format);
-  void setValue(double number);
+  ~VSDNumericField() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDFieldListElement *clone() override;
+  librevenge::RVNGString getString(const std::map<unsigned, librevenge::RVNGString> &) override;
+  void setNameId(int) override {}
+  void setFormat(unsigned short format) override;
+  void setValue(double number) override;
 private:
   librevenge::RVNGString datetimeToString(const char *format, double datetime);
   unsigned m_id, m_level;
diff --git a/src/lib/VSDGeometryList.cpp b/src/lib/VSDGeometryList.cpp
index 8bb6f61..25f3d9d 100644
--- a/src/lib/VSDGeometryList.cpp
+++ b/src/lib/VSDGeometryList.cpp
@@ -22,9 +22,9 @@ public:
               const boost::optional<bool> &noLine, const boost::optional<bool> &noShow) :
     VSDGeometryListElement(id, level), m_noFill(get_optional_value_or(noFill, false)),
     m_noLine(get_optional_value_or(noLine, false)), m_noShow(get_optional_value_or(noShow, false)) {}
-  virtual ~VSDGeometry() {}
-  void handle(VSDCollector *collector) const;
-  VSDGeometryListElement *clone();
+  ~VSDGeometry() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDGeometryListElement *clone() override;
   bool m_noFill;
   bool m_noLine;
   bool m_noShow;
@@ -35,9 +35,9 @@ class VSDEmpty : public VSDGeometryListElement
 public:
   VSDEmpty(unsigned id, unsigned level) :
     VSDGeometryListElement(id, level) {}
-  virtual ~VSDEmpty() {}
-  void handle(VSDCollector *collector) const;
-  VSDGeometryListElement *clone();
+  ~VSDEmpty() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDGeometryListElement *clone() override;
 };
 
 class VSDMoveTo : public VSDGeometryListElement
@@ -45,9 +45,9 @@ class VSDMoveTo : public VSDGeometryListElement
 public:
   VSDMoveTo(unsigned id, unsigned level, const boost::optional<double> &x, const boost::optional<double> &y) :
     VSDGeometryListElement(id, level), m_x(get_optional_value_or(x, 0.0)), m_y(get_optional_value_or(y, 0.0)) {}
-  virtual ~VSDMoveTo() {}
-  void handle(VSDCollector *collector) const;
-  VSDGeometryListElement *clone();
+  ~VSDMoveTo() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDGeometryListElement *clone() override;
   double m_x, m_y;
 };
 
@@ -56,9 +56,9 @@ class VSDLineTo : public VSDGeometryListElement
 public:
   VSDLineTo(unsigned id, unsigned level, const boost::optional<double> &x, const boost::optional<double> &y) :
     VSDGeometryListElement(id, level), m_x(get_optional_value_or(x, 0.0)), m_y(get_optional_value_or(y, 0.0)) {}
-  virtual ~VSDLineTo() {}
-  void handle(VSDCollector *collector) const;
-  VSDGeometryListElement *clone();
+  ~VSDLineTo() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDGeometryListElement *clone() override;
   double m_x, m_y;
 };
 
@@ -67,9 +67,9 @@ class VSDArcTo : public VSDGeometryListElement
 public:
   VSDArcTo(unsigned id, unsigned level, const boost::optional<double> &x2, const boost::optional<double> &y2, const boost::optional<double> &bow) :
     VSDGeometryListElement(id, level), m_x2(get_optional_value_or(x2, 0.0)), m_y2(get_optional_value_or(y2, 0.0)), m_bow(get_optional_value_or(bow, 0.0)) {}
-  virtual ~VSDArcTo() {}
-  void handle(VSDCollector *collector) const;
-  VSDGeometryListElement *clone();
+  ~VSDArcTo() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDGeometryListElement *clone() override;
   double m_x2, m_y2, m_bow;
 };
 
@@ -82,9 +82,9 @@ public:
     VSDGeometryListElement(id, level), m_cx(get_optional_value_or(cx, 0.0)), m_cy(get_optional_value_or(cy, 0.0)),
     m_xleft(get_optional_value_or(xleft, 0.0)), m_yleft(get_optional_value_or(yleft, 0.0)), m_xtop(get_optional_value_or(xtop, 0.0)),
     m_ytop(get_optional_value_or(ytop, 0.0)) {}
-  virtual ~VSDEllipse() {}
-  void handle(VSDCollector *collector) const;
-  VSDGeometryListElement *clone();
+  ~VSDEllipse() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDGeometryListElement *clone() override;
   double m_cx, m_cy, m_xleft, m_yleft, m_xtop, m_ytop;
 };
 
@@ -96,9 +96,9 @@ public:
                      const boost::optional<double> &angle, const boost::optional<double> &ecc) :
     VSDGeometryListElement(id, level), m_x3(get_optional_value_or(x3, 0.0)), m_y3(get_optional_value_or(y3, 0.0)), m_x2(get_optional_value_or(x2, 0.0)),
     m_y2(get_optional_value_or(y2, 0.0)), m_angle(get_optional_value_or(angle, 0.0)), m_ecc(get_optional_value_or(ecc, 1.0)) {}
-  virtual ~VSDEllipticalArcTo() {}
-  void handle(VSDCollector *collector) const;
-  VSDGeometryListElement *clone();
+  ~VSDEllipticalArcTo() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDGeometryListElement *clone() override;
   double m_x3, m_y3, m_x2, m_y2, m_angle, m_ecc;
 };
 
@@ -108,9 +108,9 @@ public:
   VSDNURBSTo1(unsigned id, unsigned level, double x2, double y2, unsigned char xType, unsigned char yType, unsigned degree,
               std::vector<std::pair<double, double> > controlPoints, std::vector<double> knotVector, std::vector<double> weights) :
     VSDGeometryListElement(id, level), m_x2(x2), m_y2(y2), m_xType(xType), m_yType(yType), m_degree(degree), m_controlPoints(controlPoints), m_knotVector(knotVector), m_weights(weights) {}
-  virtual ~VSDNURBSTo1() {}
-  void handle(VSDCollector *collector) const;
-  VSDGeometryListElement *clone();
+  ~VSDNURBSTo1() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDGeometryListElement *clone() override;
 
   double m_x2, m_y2;
   unsigned m_xType, m_yType;
@@ -124,11 +124,11 @@ class VSDNURBSTo2 : public VSDGeometryListElement
 public:
   VSDNURBSTo2(unsigned id, unsigned level, double x2, double y2, double knot, double knotPrev, double weight, double weightPrev, unsigned dataID) :
     VSDGeometryListElement(id, level), m_dataID(dataID), m_x2(x2), m_y2(y2), m_knot(knot), m_knotPrev(knotPrev), m_weight(weight), m_weightPrev(weightPrev) {}
-  virtual ~VSDNURBSTo2() {}
-  void handle(VSDCollector *collector) const;
-  VSDGeometryListElement *clone();
+  ~VSDNURBSTo2() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDGeometryListElement *clone() override;
 
-  unsigned getDataID() const;
+  unsigned getDataID() const override;
   unsigned m_dataID;
   double m_x2, m_y2;
   double m_knot, m_knotPrev;
@@ -143,9 +143,9 @@ public:
               const boost::optional<NURBSData> &data) :
     VSDGeometryListElement(id, level), m_data(get_optional_value_or(data, NURBSData())), m_x2(get_optional_value_or(x2, 0.0)), m_y2(get_optional_value_or(y2, 0.0)),
     m_knot(get_optional_value_or(knot, 0.0)), m_knotPrev(get_optional_value_or(knotPrev, 0.0)), m_weight(get_optional_value_or(weight, 0.0)), m_weightPrev(get_optional_value_or(weightPrev, 0.0)) {}
-  virtual ~VSDNURBSTo3() {}
-  void handle(VSDCollector *collector) const;
-  VSDGeometryListElement *clone();
+  ~VSDNURBSTo3() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDGeometryListElement *clone() override;
 
   NURBSData m_data;
   double m_x2, m_y2;
@@ -158,9 +158,9 @@ class VSDPolylineTo1 : public VSDGeometryListElement
 public:
   VSDPolylineTo1(unsigned id, unsigned level, double x, double y, unsigned char xType, unsigned char yType, std::vector<std::pair<double, double> > points) :
     VSDGeometryListElement(id, level), m_x(x), m_y(y), m_xType(xType), m_yType(yType), m_points(points) {}
-  virtual ~VSDPolylineTo1() {}
-  void handle(VSDCollector *collector) const;
-  VSDGeometryListElement *clone();
+  ~VSDPolylineTo1() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDGeometryListElement *clone() override;
 
   double m_x, m_y;
   unsigned m_xType, m_yType;
@@ -172,10 +172,10 @@ class VSDPolylineTo2 : public VSDGeometryListElement
 public:
   VSDPolylineTo2(unsigned id, unsigned level, double x, double y, unsigned dataID) :
     VSDGeometryListElement(id, level), m_dataID(dataID), m_x(x), m_y(y) {}
-  virtual ~VSDPolylineTo2() {}
-  void handle(VSDCollector *collector) const;
-  VSDGeometryListElement *clone();
-  unsigned getDataID() const;
+  ~VSDPolylineTo2() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDGeometryListElement *clone() override;
+  unsigned getDataID() const override;
 
   unsigned m_dataID;
   double m_x, m_y;
@@ -187,9 +187,9 @@ public:
   VSDPolylineTo3(unsigned id, unsigned level, const boost::optional<double> &x, const boost::optional<double> &y,
                  const boost::optional<PolylineData> &data) :
     VSDGeometryListElement(id, level), m_data(get_optional_value_or(data, PolylineData())), m_x(get_optional_value_or(x, 0.0)), m_y(get_optional_value_or(y, 0.0)) {}
-  virtual ~VSDPolylineTo3() {}
-  void handle(VSDCollector *collector) const;
-  VSDGeometryListElement *clone();
+  ~VSDPolylineTo3() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDGeometryListElement *clone() override;
 
   PolylineData m_data;
   double m_x, m_y;
@@ -203,9 +203,9 @@ public:
                  const boost::optional<double> &lastKnot, const boost::optional<unsigned> &degree) :
     VSDGeometryListElement(id, level), m_x(get_optional_value_or(x, 0.0)), m_y(get_optional_value_or(y, 0.0)), m_secondKnot(get_optional_value_or(secondKnot, 0.0)),
     m_firstKnot(get_optional_value_or(firstKnot, 0.0)), m_lastKnot(get_optional_value_or(lastKnot, 0.0)), m_degree(get_optional_value_or(degree, 0)) {}
-  virtual ~VSDSplineStart() {}
-  void handle(VSDCollector *collector) const;
-  VSDGeometryListElement *clone();
+  ~VSDSplineStart() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDGeometryListElement *clone() override;
 
   double m_x, m_y;
   double m_secondKnot, m_firstKnot, m_lastKnot;
@@ -218,9 +218,9 @@ public:
   VSDSplineKnot(unsigned id, unsigned level, const boost::optional<double> &x, const boost::optional<double> &y,
                 const boost::optional<double> &knot) :
     VSDGeometryListElement(id, level), m_x(get_optional_value_or(x, 0.0)), m_y(get_optional_value_or(y, 0.0)), m_knot(get_optional_value_or(knot, 0.0)) {}
-  virtual ~VSDSplineKnot() {}
-  void handle(VSDCollector *collector) const;
-  VSDGeometryListElement *clone();
+  ~VSDSplineKnot() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDGeometryListElement *clone() override;
   double m_x, m_y;
   double m_knot;
 };
@@ -232,9 +232,9 @@ public:
                   const boost::optional<double> &x2, const boost::optional<double> &y2) :
     VSDGeometryListElement(id, level), m_x1(get_optional_value_or(x1, 0.0)), m_y1(get_optional_value_or(y1, 0.0)),
     m_x2(get_optional_value_or(x2, 0.0)), m_y2(get_optional_value_or(y2, 0.0)) {}
-  virtual ~VSDInfiniteLine() {}
-  void handle(VSDCollector *collector) const;
-  VSDGeometryListElement *clone();
+  ~VSDInfiniteLine() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDGeometryListElement *clone() override;
   double m_x1, m_y1, m_x2, m_y2;
 };
 
@@ -245,9 +245,9 @@ public:
                  const boost::optional<double> &b, const boost::optional<double> &c, const boost::optional<double> &d) :
     VSDGeometryListElement(id, level), m_x(get_optional_value_or(x, 0.0)), m_y(get_optional_value_or(y, 0.0)),
     m_a(get_optional_value_or(a, 0.0)), m_b(get_optional_value_or(b, 0.0)), m_c(get_optional_value_or(c, 0.0)), m_d(get_optional_value_or(d, 0.0)) {}
-  virtual ~VSDRelCubBezTo() {}
-  void handle(VSDCollector *collector) const;
-  VSDGeometryListElement *clone();
+  ~VSDRelCubBezTo() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDGeometryListElement *clone() override;
   double m_x, m_y, m_a, m_b, m_c, m_d;
 };
 
@@ -260,9 +260,9 @@ public:
     VSDGeometryListElement(id, level), m_x3(get_optional_value_or(x3, 0.0)), m_y3(get_optional_value_or(y3, 0.0)),
     m_x2(get_optional_value_or(x2, 0.0)), m_y2(get_optional_value_or(y2, 0.0)), m_angle(get_optional_value_or(angle, 0.0)),
     m_ecc(get_optional_value_or(ecc, 1.0)) {}
-  virtual ~VSDRelEllipticalArcTo() {}
-  void handle(VSDCollector *collector) const;
-  VSDGeometryListElement *clone();
+  ~VSDRelEllipticalArcTo() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDGeometryListElement *clone() override;
   double m_x3, m_y3, m_x2, m_y2, m_angle, m_ecc;
 };
 
@@ -271,9 +271,9 @@ class VSDRelMoveTo : public VSDGeometryListElement
 public:
   VSDRelMoveTo(unsigned id, unsigned level, const boost::optional<double> &x, const boost::optional<double> &y) :
     VSDGeometryListElement(id, level), m_x(get_optional_value_or(x, 0.0)), m_y(get_optional_value_or(y, 0.0)) {}
-  virtual ~VSDRelMoveTo() {}
-  void handle(VSDCollector *collector) const;
-  VSDGeometryListElement *clone();
+  ~VSDRelMoveTo() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDGeometryListElement *clone() override;
   double m_x, m_y;
 };
 
@@ -282,9 +282,9 @@ class VSDRelLineTo : public VSDGeometryListElement
 public:
   VSDRelLineTo(unsigned id, unsigned level, const boost::optional<double> &x, const boost::optional<double> &y) :
     VSDGeometryListElement(id, level), m_x(get_optional_value_or(x, 0.0)), m_y(get_optional_value_or(y, 0.0)) {}
-  virtual ~VSDRelLineTo() {}
-  void handle(VSDCollector *collector) const;
-  VSDGeometryListElement *clone();
+  ~VSDRelLineTo() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDGeometryListElement *clone() override;
   double m_x, m_y;
 };
 
@@ -295,9 +295,9 @@ public:
                   const boost::optional<double> &a, const boost::optional<double> &b) :
     VSDGeometryListElement(id, level), m_x(get_optional_value_or(x, 0.0)),
     m_y(get_optional_value_or(y, 0.0)), m_a(get_optional_value_or(a, 0.0)), m_b(get_optional_value_or(b, 0.0)) {}
-  virtual ~VSDRelQuadBezTo() {}
-  void handle(VSDCollector *collector) const;
-  VSDGeometryListElement *clone();
+  ~VSDRelQuadBezTo() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDGeometryListElement *clone() override;
   double m_x, m_y, m_a, m_b;
 };
 
diff --git a/src/lib/VSDInternalStream.h b/src/lib/VSDInternalStream.h
index c57c2fb..773315b 100644
--- a/src/lib/VSDInternalStream.h
+++ b/src/lib/VSDInternalStream.h
@@ -19,36 +19,36 @@ class VSDInternalStream : public librevenge::RVNGInputStream
 {
 public:
   VSDInternalStream(librevenge::RVNGInputStream *input, unsigned long size, bool compressed=false);
-  ~VSDInternalStream() {}
+  ~VSDInternalStream() override {}
 
-  bool isStructured()
+  bool isStructured() override
   {
     return false;
   }
-  unsigned subStreamCount()
+  unsigned subStreamCount() override
   {
     return 0;
   }
-  const char *subStreamName(unsigned)
+  const char *subStreamName(unsigned) override
   {
     return 0;
   }
-  bool existsSubStream(const char *)
+  bool existsSubStream(const char *) override
   {
     return false;
   }
-  librevenge::RVNGInputStream *getSubStreamByName(const char *)
+  librevenge::RVNGInputStream *getSubStreamByName(const char *) override
   {
     return 0;
   }
-  librevenge::RVNGInputStream *getSubStreamById(unsigned)
+  librevenge::RVNGInputStream *getSubStreamById(unsigned) override
   {
     return 0;
   }
-  const unsigned char *read(unsigned long numBytes, unsigned long &numBytesRead);
-  int seek(long offset, librevenge::RVNG_SEEK_TYPE seekType);
-  long tell();
-  bool isEnd();
+  const unsigned char *read(unsigned long numBytes, unsigned long &numBytesRead) override;
+  int seek(long offset, librevenge::RVNG_SEEK_TYPE seekType) override;
+  long tell() override;
+  bool isEnd() override;
   unsigned long getSize() const
   {
     return m_buffer.size();
diff --git a/src/lib/VSDOutputElementList.cpp b/src/lib/VSDOutputElementList.cpp
index 1d1ecde..8c4853f 100644
--- a/src/lib/VSDOutputElementList.cpp
+++ b/src/lib/VSDOutputElementList.cpp
@@ -69,9 +69,9 @@ class VSDStyleOutputElement : public VSDOutputElement
 {
 public:
   VSDStyleOutputElement(const librevenge::RVNGPropertyList &propList);
-  virtual ~VSDStyleOutputElement() {}
-  virtual void draw(librevenge::RVNGDrawingInterface *painter);
-  virtual VSDOutputElement *clone()
+  ~VSDStyleOutputElement() override {}
+  void draw(librevenge::RVNGDrawingInterface *painter) override;
+  VSDOutputElement *clone() override
   {
     return new VSDStyleOutputElement(m_propList);
   }
@@ -84,9 +84,9 @@ class VSDPathOutputElement : public VSDOutputElement
 {
 public:
   VSDPathOutputElement(const librevenge::RVNGPropertyList &propList);
-  virtual ~VSDPathOutputElement() {}
-  virtual void draw(librevenge::RVNGDrawingInterface *painter);
-  virtual VSDOutputElement *clone()
+  ~VSDPathOutputElement() override {}
+  void draw(librevenge::RVNGDrawingInterface *painter) override;
+  VSDOutputElement *clone() override
   {
     return new VSDPathOutputElement(m_propList);
   }
@@ -99,9 +99,9 @@ class VSDGraphicObjectOutputElement : public VSDOutputElement
 {
 public:
   VSDGraphicObjectOutputElement(const librevenge::RVNGPropertyList &propList);
-  virtual ~VSDGraphicObjectOutputElement() {}
-  virtual void draw(librevenge::RVNGDrawingInterface *painter);
-  virtual VSDOutputElement *clone()
+  ~VSDGraphicObjectOutputElement() override {}
+  void draw(librevenge::RVNGDrawingInterface *painter) override;
+  VSDOutputElement *clone() override
   {
     return new VSDGraphicObjectOutputElement(m_propList);
   }
@@ -114,9 +114,9 @@ class VSDStartTextObjectOutputElement : public VSDOutputElement
 {
 public:
   VSDStartTextObjectOutputElement(const librevenge::RVNGPropertyList &propList);
-  virtual ~VSDStartTextObjectOutputElement() {}
-  virtual void draw(librevenge::RVNGDrawingInterface *painter);
-  virtual VSDOutputElement *clone()
+  ~VSDStartTextObjectOutputElement() override {}
+  void draw(librevenge::RVNGDrawingInterface *painter) override;
+  VSDOutputElement *clone() override
   {
     return new VSDStartTextObjectOutputElement(m_propList);
   }
@@ -129,9 +129,9 @@ class VSDOpenParagraphOutputElement : public VSDOutputElement
 {
 public:
   VSDOpenParagraphOutputElement(const librevenge::RVNGPropertyList &propList);
-  virtual ~VSDOpenParagraphOutputElement() {}
-  virtual void draw(librevenge::RVNGDrawingInterface *painter);
-  virtual VSDOutputElement *clone()
+  ~VSDOpenParagraphOutputElement() override {}
+  void draw(librevenge::RVNGDrawingInterface *painter) override;
+  VSDOutputElement *clone() override
   {
     return new VSDOpenParagraphOutputElement(m_propList);
   }
@@ -144,9 +144,9 @@ class VSDStartLayerOutputElement : public VSDOutputElement
 {
 public:
   VSDStartLayerOutputElement(const librevenge::RVNGPropertyList &propList);
-  virtual ~VSDStartLayerOutputElement() {}
-  virtual void draw(librevenge::RVNGDrawingInterface *painter);
-  virtual VSDOutputElement *clone()
+  ~VSDStartLayerOutputElement() override {}
+  void draw(librevenge::RVNGDrawingInterface *painter) override;
+  VSDOutputElement *clone() override
   {
     return new VSDStartLayerOutputElement(m_propList);
   }
@@ -159,9 +159,9 @@ class VSDEndLayerOutputElement : public VSDOutputElement
 {
 public:
   VSDEndLayerOutputElement();
-  virtual ~VSDEndLayerOutputElement() {}
-  virtual void draw(librevenge::RVNGDrawingInterface *painter);
-  virtual VSDOutputElement *clone()
+  ~VSDEndLayerOutputElement() override {}
+  void draw(librevenge::RVNGDrawingInterface *painter) override;
+  VSDOutputElement *clone() override
   {
     return new VSDEndLayerOutputElement();
   }
@@ -172,9 +172,9 @@ class VSDOpenSpanOutputElement : public VSDOutputElement
 {
 public:
   VSDOpenSpanOutputElement(const librevenge::RVNGPropertyList &propList);
-  virtual ~VSDOpenSpanOutputElement() {}
-  virtual void draw(librevenge::RVNGDrawingInterface *painter);
-  virtual VSDOutputElement *clone()
+  ~VSDOpenSpanOutputElement() override {}
+  void draw(librevenge::RVNGDrawingInterface *painter) override;
+  VSDOutputElement *clone() override
   {
     return new VSDOpenSpanOutputElement(m_propList);
   }
@@ -187,9 +187,9 @@ class VSDInsertTextOutputElement : public VSDOutputElement
 {
 public:
   VSDInsertTextOutputElement(const librevenge::RVNGString &text);
-  virtual ~VSDInsertTextOutputElement() {}
-  virtual void draw(librevenge::RVNGDrawingInterface *painter);
-  virtual VSDOutputElement *clone()
+  ~VSDInsertTextOutputElement() override {}
+  void draw(librevenge::RVNGDrawingInterface *painter) override;
+  VSDOutputElement *clone() override
   {
     return new VSDInsertTextOutputElement(m_text);
   }
@@ -202,9 +202,9 @@ class VSDInsertLineBreakOutputElement : public VSDOutputElement
 {
 public:
   VSDInsertLineBreakOutputElement();
-  virtual ~VSDInsertLineBreakOutputElement() {}
-  virtual void draw(librevenge::RVNGDrawingInterface *painter);
-  virtual VSDOutputElement *clone()
+  ~VSDInsertLineBreakOutputElement() override {}
+  void draw(librevenge::RVNGDrawingInterface *painter) override;
+  VSDOutputElement *clone() override
   {
     return new VSDInsertLineBreakOutputElement();
   }
@@ -215,9 +215,9 @@ class VSDInsertTabOutputElement : public VSDOutputElement
 {
 public:
   VSDInsertTabOutputElement();
-  virtual ~VSDInsertTabOutputElement() {}
-  virtual void draw(librevenge::RVNGDrawingInterface *painter);
-  virtual VSDOutputElement *clone()
+  ~VSDInsertTabOutputElement() override {}
+  void draw(librevenge::RVNGDrawingInterface *painter) override;
+  VSDOutputElement *clone() override
   {
     return new VSDInsertTabOutputElement();
   }
@@ -228,9 +228,9 @@ class VSDCloseSpanOutputElement : public VSDOutputElement
 {
 public:
   VSDCloseSpanOutputElement();
-  virtual ~VSDCloseSpanOutputElement() {}
-  virtual void draw(librevenge::RVNGDrawingInterface *painter);
-  virtual VSDOutputElement *clone()
+  ~VSDCloseSpanOutputElement() override {}
+  void draw(librevenge::RVNGDrawingInterface *painter) override;
+  VSDOutputElement *clone() override
   {
     return new VSDCloseSpanOutputElement();
   }
@@ -241,9 +241,9 @@ class VSDCloseParagraphOutputElement : public VSDOutputElement
 {
 public:
   VSDCloseParagraphOutputElement();
-  virtual ~VSDCloseParagraphOutputElement() {}
-  virtual void draw(librevenge::RVNGDrawingInterface *painter);
-  virtual VSDOutputElement *clone()
+  ~VSDCloseParagraphOutputElement() override {}
+  void draw(librevenge::RVNGDrawingInterface *painter) override;
+  VSDOutputElement *clone() override
   {
     return new VSDCloseParagraphOutputElement();
   }
@@ -254,9 +254,9 @@ class VSDEndTextObjectOutputElement : public VSDOutputElement
 {
 public:
   VSDEndTextObjectOutputElement();
-  virtual ~VSDEndTextObjectOutputElement() {}
-  virtual void draw(librevenge::RVNGDrawingInterface *painter);
-  virtual VSDOutputElement *clone()
+  ~VSDEndTextObjectOutputElement() override {}
+  void draw(librevenge::RVNGDrawingInterface *painter) override;
+  VSDOutputElement *clone() override
   {
     return new VSDEndTextObjectOutputElement();
   }
@@ -266,9 +266,9 @@ class VSDOpenListElementOutputElement : public VSDOutputElement
 {
 public:
   VSDOpenListElementOutputElement(const librevenge::RVNGPropertyList &propList);
-  virtual ~VSDOpenListElementOutputElement() {}
-  virtual void draw(librevenge::RVNGDrawingInterface *painter);
-  virtual VSDOutputElement *clone()
+  ~VSDOpenListElementOutputElement() override {}
+  void draw(librevenge::RVNGDrawingInterface *painter) override;
+  VSDOutputElement *clone() override
   {
     return new VSDOpenListElementOutputElement(m_propList);
   }
@@ -281,9 +281,9 @@ class VSDCloseListElementOutputElement : public VSDOutputElement
 {
 public:
   VSDCloseListElementOutputElement();
-  virtual ~VSDCloseListElementOutputElement() {}
-  virtual void draw(librevenge::RVNGDrawingInterface *painter);
-  virtual VSDOutputElement *clone()
+  ~VSDCloseListElementOutputElement() override {}
+  void draw(librevenge::RVNGDrawingInterface *painter) override;
+  VSDOutputElement *clone() override
   {
     return new VSDCloseListElementOutputElement();
   }
@@ -294,9 +294,9 @@ class VSDOpenUnorderedListLevelOutputElement : public VSDOutputElement
 {
 public:
   VSDOpenUnorderedListLevelOutputElement(const librevenge::RVNGPropertyList &propList);
-  virtual ~VSDOpenUnorderedListLevelOutputElement() {}
-  virtual void draw(librevenge::RVNGDrawingInterface *painter);
-  virtual VSDOutputElement *clone()
+  ~VSDOpenUnorderedListLevelOutputElement() override {}
+  void draw(librevenge::RVNGDrawingInterface *painter) override;
+  VSDOutputElement *clone() override
   {
     return new VSDOpenUnorderedListLevelOutputElement(m_propList);
   }
@@ -309,9 +309,9 @@ class VSDCloseUnorderedListLevelOutputElement : public VSDOutputElement
 {
 public:
   VSDCloseUnorderedListLevelOutputElement();
-  virtual ~VSDCloseUnorderedListLevelOutputElement() {}
-  virtual void draw(librevenge::RVNGDrawingInterface *painter);
-  virtual VSDOutputElement *clone()
+  ~VSDCloseUnorderedListLevelOutputElement() override {}
+  void draw(librevenge::RVNGDrawingInterface *painter) override;
+  VSDOutputElement *clone() override
   {
     return new VSDCloseUnorderedListLevelOutputElement();
   }
diff --git a/src/lib/VSDParagraphList.cpp b/src/lib/VSDParagraphList.cpp
index 6c20516..7ec7f30 100644
--- a/src/lib/VSDParagraphList.cpp
+++ b/src/lib/VSDParagraphList.cpp
@@ -39,14 +39,14 @@ public:
     VSDParagraphListElement(id, level),
     m_style(charCount, indFirst, indLeft, indRight, spLine, spBefore, spAfter,
             align, bullet, bulletStr, bulletFont, bulletFontSize, textPosAfterBullet, flags) {}
-  ~VSDParaIX() {}
-  void handle(VSDCollector *collector) const;
-  VSDParagraphListElement *clone();
-  unsigned getCharCount() const
+  ~VSDParaIX() override {}
+  void handle(VSDCollector *collector) const override;
+  VSDParagraphListElement *clone() override;
+  unsigned getCharCount() const override
   {
     return m_style.charCount;
   }
-  void setCharCount(unsigned charCount)
+  void setCharCount(unsigned charCount) override
   {
     m_style.charCount = charCount;
   }
diff --git a/src/lib/VSDStylesCollector.h b/src/lib/VSDStylesCollector.h
index 16cf00d..b18fdd6 100644
--- a/src/lib/VSDStylesCollector.h
+++ b/src/lib/VSDStylesCollector.h
@@ -29,148 +29,148 @@ public:
     std::vector<std::map<unsigned, unsigned> > &groupMembershipsSequence,
     std::vector<std::list<unsigned> > &documentPageShapeOrders
   );
-  virtual ~VSDStylesCollector() {}
+  ~VSDStylesCollector() override {}
 
-  void collectDocumentTheme(const VSDXTheme * /* theme */) {}
-  void collectEllipticalArcTo(unsigned id, unsigned level, double x3, double y3, double x2, double y2, double angle, double ecc);
-  void collectForeignData(unsigned level, const librevenge::RVNGBinaryData &binaryData);
-  void collectOLEList(unsigned id, unsigned level)
+  void collectDocumentTheme(const VSDXTheme * /* theme */) override {}
+  void collectEllipticalArcTo(unsigned id, unsigned level, double x3, double y3, double x2, double y2, double angle, double ecc) override;
+  void collectForeignData(unsigned level, const librevenge::RVNGBinaryData &binaryData) override;
+  void collectOLEList(unsigned id, unsigned level) override
   {
     collectUnhandledChunk(id, level);
   }
-  void collectOLEData(unsigned id, unsigned level, const librevenge::RVNGBinaryData &oleData);
-  void collectEllipse(unsigned id, unsigned level, double cx, double cy, double xleft, double yleft, double xtop, double ytop);
+  void collectOLEData(unsigned id, unsigned level, const librevenge::RVNGBinaryData &oleData) override;
+  void collectEllipse(unsigned id, unsigned level, double cx, double cy, double xleft, double yleft, double xtop, double ytop) override;
   void collectLine(unsigned level, const boost::optional<double> &strokeWidth, const boost::optional<Colour> &c, const boost::optional<unsigned char> &linePattern,
                    const boost::optional<unsigned char> &startMarker, const boost::optional<unsigned char> &endMarker,
                    const boost::optional<unsigned char> &lineCap, const boost::optional<double> &rounding,
-                   const boost::optional<long> &qsLineColour, const boost::optional<long> &qsLineMatrix);
+                   const boost::optional<long> &qsLineColour, const boost::optional<long> &qsLineMatrix) override;
   void collectFillAndShadow(unsigned level, const boost::optional<Colour> &colourFG, const boost::optional<Colour> &colourBG,
                             const boost::optional<unsigned char> &fillPattern, const boost::optional<double> &fillFGTransparency,
                             const boost::optional<double> &fillBGTransparency, const boost::optional<unsigned char> &shadowPattern,
                             const boost::optional<Colour> &shfgc, const boost::optional<double> &shadowOffsetX, const boost::optional<double> &shadowOffsetY,
-                            const boost::optional<long> &qsFc, const boost::optional<long> &qsSc, const boost::optional<long> &qsLm);
+                            const boost::optional<long> &qsFc, const boost::optional<long> &qsSc, const boost::optional<long> &qsLm) override;
   void collectFillAndShadow(unsigned level, const boost::optional<Colour> &colourFG, const boost::optional<Colour> &colourBG,
                             const boost::optional<unsigned char> &fillPattern, const boost::optional<double> &fillFGTransparency,
                             const boost::optional<double> &fillBGTransparency, const boost::optional<unsigned char> &shadowPattern,
-                            const boost::optional<Colour> &shfgc);
-  void collectGeometry(unsigned id, unsigned level, bool noFill, bool noLine, bool noShow);
-  void collectMoveTo(unsigned id, unsigned level, double x, double y);
-  void collectLineTo(unsigned id, unsigned level, double x, double y);
-  void collectArcTo(unsigned id, unsigned level, double x2, double y2, double bow);
+                            const boost::optional<Colour> &shfgc) override;
+  void collectGeometry(unsigned id, unsigned level, bool noFill, bool noLine, bool noShow) override;
+  void collectMoveTo(unsigned id, unsigned level, double x, double y) override;
+  void collectLineTo(unsigned id, unsigned level, double x, double y) override;
+  void collectArcTo(unsigned id, unsigned level, double x2, double y2, double bow) override;
   void collectNURBSTo(unsigned id, unsigned level, double x2, double y2, unsigned char xType, unsigned char yType, unsigned degree,
-                      const std::vector<std::pair<double, double> > &ctrlPnts, const std::vector<double> &kntVec, const std::vector<double> &weights);
-  void collectNURBSTo(unsigned id, unsigned level, double x2, double y2, double knot, double knotPrev, double weight, double weightPrev, unsigned dataID);
-  void collectNURBSTo(unsigned id, unsigned level, double x2, double y2, double knot, double knotPrev, double weight, double weightPrev, const NURBSData &data);
-  void collectPolylineTo(unsigned id, unsigned level, double x, double y, unsigned char xType, unsigned char yType, const std::vector<std::pair<double, double> > &points);
-  void collectPolylineTo(unsigned id, unsigned level, double x, double y, unsigned dataID);
-  void collectPolylineTo(unsigned id, unsigned level, double x, double y, const PolylineData &data);
+                      const std::vector<std::pair<double, double> > &ctrlPnts, const std::vector<double> &kntVec, const std::vector<double> &weights) override;
+  void collectNURBSTo(unsigned id, unsigned level, double x2, double y2, double knot, double knotPrev, double weight, double weightPrev, unsigned dataID) override;
+  void collectNURBSTo(unsigned id, unsigned level, double x2, double y2, double knot, double knotPrev, double weight, double weightPrev, const NURBSData &data) override;
+  void collectPolylineTo(unsigned id, unsigned level, double x, double y, unsigned char xType, unsigned char yType, const std::vector<std::pair<double, double> > &points) override;
+  void collectPolylineTo(unsigned id, unsigned level, double x, double y, unsigned dataID) override;
+  void collectPolylineTo(unsigned id, unsigned level, double x, double y, const PolylineData &data) override;
   void collectShapeData(unsigned id, unsigned level, unsigned char xType, unsigned char yType, unsigned degree, double lastKnot,
-                        std::vector<std::pair<double, double> > controlPoints, std::vector<double> knotVector, std::vector<double> weights);
-  void collectShapeData(unsigned id, unsigned level, unsigned char xType, unsigned char yType, std::vector<std::pair<double, double> > points);
-  void collectXFormData(unsigned level, const XForm &xform);
-  void collectTxtXForm(unsigned level, const XForm &txtxform);
-  void collectShapesOrder(unsigned id, unsigned level, const std::vector<unsigned> &shapeIds);
-  void collectForeignDataType(unsigned level, unsigned foreignType, unsigned foreignFormat, double offsetX, double offsetY, double width, double height);
-  void collectPageProps(unsigned id, unsigned level, double pageWidth, double pageHeight, double shadowOffsetX, double shadowOffsetY, double scale);
-  void collectPage(unsigned id, unsigned level, unsigned backgroundPageID, bool isBackgroundPage, const VSDName &pageName);
-  void collectShape(unsigned id, unsigned level, unsigned parent, unsigned masterPage, unsigned masterShape, unsigned lineStyle, unsigned fillStyle, unsigned textStyle);
-  void collectSplineStart(unsigned id, unsigned level, double x, double y, double secondKnot, double firstKnot, double lastKnot, unsigned degree);
-  void collectSplineKnot(unsigned id, unsigned level, double x, double y, double knot);
-  void collectSplineEnd();
-  void collectInfiniteLine(unsigned id, unsigned level, double x1, double y1, double x2, double y2);
-  void collectRelCubBezTo(unsigned id, unsigned level, double x, double y, double a, double b, double c, double d);
-  void collectRelEllipticalArcTo(unsigned id, unsigned level, double x, double y, double a, double b, double c, double d);
-  void collectRelLineTo(unsigned id, unsigned level, double x, double y);
-  void collectRelMoveTo(unsigned id, unsigned level, double x, double y);
-  void collectRelQuadBezTo(unsigned id, unsigned level, double x, double y, double a, double b);
-  void collectUnhandledChunk(unsigned id, unsigned level);
-
-  void collectText(unsigned level, const librevenge::RVNGBinaryData &textStream, TextFormat format);
+                        std::vector<std::pair<double, double> > controlPoints, std::vector<double> knotVector, std::vector<double> weights) override;
+  void collectShapeData(unsigned id, unsigned level, unsigned char xType, unsigned char yType, std::vector<std::pair<double, double> > points) override;
+  void collectXFormData(unsigned level, const XForm &xform) override;
+  void collectTxtXForm(unsigned level, const XForm &txtxform) override;
+  void collectShapesOrder(unsigned id, unsigned level, const std::vector<unsigned> &shapeIds) override;
+  void collectForeignDataType(unsigned level, unsigned foreignType, unsigned foreignFormat, double offsetX, double offsetY, double width, double height) override;
+  void collectPageProps(unsigned id, unsigned level, double pageWidth, double pageHeight, double shadowOffsetX, double shadowOffsetY, double scale) override;
+  void collectPage(unsigned id, unsigned level, unsigned backgroundPageID, bool isBackgroundPage, const VSDName &pageName) override;
+  void collectShape(unsigned id, unsigned level, unsigned parent, unsigned masterPage, unsigned masterShape, unsigned lineStyle, unsigned fillStyle, unsigned textStyle) override;
+  void collectSplineStart(unsigned id, unsigned level, double x, double y, double secondKnot, double firstKnot, double lastKnot, unsigned degree) override;
+  void collectSplineKnot(unsigned id, unsigned level, double x, double y, double knot) override;
+  void collectSplineEnd() override;
+  void collectInfiniteLine(unsigned id, unsigned level, double x1, double y1, double x2, double y2) override;
+  void collectRelCubBezTo(unsigned id, unsigned level, double x, double y, double a, double b, double c, double d) override;
+  void collectRelEllipticalArcTo(unsigned id, unsigned level, double x, double y, double a, double b, double c, double d) override;
+  void collectRelLineTo(unsigned id, unsigned level, double x, double y) override;
+  void collectRelMoveTo(unsigned id, unsigned level, double x, double y) override;
+  void collectRelQuadBezTo(unsigned id, unsigned level, double x, double y, double a, double b) override;
+  void collectUnhandledChunk(unsigned id, unsigned level) override;
+
+  void collectText(unsigned level, const librevenge::RVNGBinaryData &textStream, TextFormat format) override;
   void collectCharIX(unsigned id, unsigned level, unsigned charCount, const boost::optional<VSDName> &font,
                      const boost::optional<Colour> &fontColour, const boost::optional<double> &fontSize, const boost::optional<bool> &bold,
                      const boost::optional<bool> &italic, const boost::optional<bool> &underline, const boost::optional<bool> &doubleunderline,
                      const boost::optional<bool> &strikeout, const boost::optional<bool> &doublestrikeout, const boost::optional<bool> &allcaps,
                      const boost::optional<bool> &initcaps, const boost::optional<bool> &smallcaps, const boost::optional<bool> &superscript,
-                     const boost::optional<bool> &subscript, const boost::optional<double> &scaleWidth);
+                     const boost::optional<bool> &subscript, const boost::optional<double> &scaleWidth) override;
   void collectDefaultCharStyle(unsigned charCount, const boost::optional<VSDName> &font, const boost::optional<Colour> &fontColour,
                                const boost::optional<double> &fontSize, const boost::optional<bool> &bold, const boost::optional<bool> &italic,
                                const boost::optional<bool> &underline, const boost::optional<bool> &doubleunderline, const boost::optional<bool> &strikeout,
                                const boost::optional<bool> &doublestrikeout, const boost::optional<bool> &allcaps, const boost::optional<bool> &initcaps,
                                const boost::optional<bool> &smallcaps, const boost::optional<bool> &superscript, const boost::optional<bool> &subscript,
-                               const boost::optional<double> &scaleWidth);
+                               const boost::optional<double> &scaleWidth) override;
   void collectParaIX(unsigned id, unsigned level, unsigned charCount, const boost::optional<double> &indFirst,
                      const boost::optional<double> &indLeft, const boost::optional<double> &indRight, const boost::optional<double> &spLine,
                      const boost::optional<double> &spBefore, const boost::optional<double> &spAfter, const boost::optional<unsigned char> &align,
                      const boost::optional<unsigned char> &bullet, const boost::optional<VSDName> &bulletStr, const boost::optional<VSDName> &bulletFont,
                      const boost::optional<double> &bulletFontSize, const boost::optional<double> &textPosAfterBullet,
-                     const boost::optional<unsigned> &flags);
+                     const boost::optional<unsigned> &flags) override;
   void collectDefaultParaStyle(unsigned charCount, const boost::optional<double> &indFirst, const boost::optional<double> &indLeft,
                                const boost::optional<double> &indRight, const boost::optional<double> &spLine, const boost::optional<double> &spBefore,
                                const boost::optional<double> &spAfter, const boost::optional<unsigned char> &align,
                                const boost::optional<unsigned char> &bullet, const boost::optional<VSDName> &bulletStr,
                                const boost::optional<VSDName> &bulletFont, const boost::optional<double> &bulletFontSize,
-                               const boost::optional<double> &textPosAfterBullet, const boost::optional<unsigned> &flags);
+                               const boost::optional<double> &textPosAfterBullet, const boost::optional<unsigned> &flags) override;
   void collectTextBlock(unsigned level, const boost::optional<double> &leftMargin, const boost::optional<double> &rightMargin,
                         const boost::optional<double> &topMargin, const boost::optional<double> &bottomMargin,
                         const boost::optional<unsigned char> &verticalAlign, const boost::optional<bool> &isBgFilled,
                         const boost::optional<Colour> &bgColour, const boost::optional<double> &defaultTabStop,
-                        const boost::optional<unsigned char> &textDirection);
-  void collectNameList(unsigned id, unsigned level)
+                        const boost::optional<unsigned char> &textDirection) override;
+  void collectNameList(unsigned id, unsigned level) override
   {
     collectUnhandledChunk(id, level);
   }
-  void collectName(unsigned id, unsigned level, const librevenge::RVNGBinaryData &name, TextFormat format);
-  void collectPageSheet(unsigned id, unsigned level);
-  void collectMisc(unsigned level, const VSDMisc &misc);
-  void collectLayer(unsigned id, unsigned level, const VSDLayer &layer);
-  void collectLayerMem(unsigned level, const VSDName &layerMem);
-  void collectTabsDataList(unsigned level, const std::map<unsigned, VSDTabSet> &tabSets);
+  void collectName(unsigned id, unsigned level, const librevenge::RVNGBinaryData &name, TextFormat format) override;
+  void collectPageSheet(unsigned id, unsigned level) override;
+  void collectMisc(unsigned level, const VSDMisc &misc) override;
+  void collectLayer(unsigned id, unsigned level, const VSDLayer &layer) override;
+  void collectLayerMem(unsigned level, const VSDName &layerMem) override;
+  void collectTabsDataList(unsigned level, const std::map<unsigned, VSDTabSet> &tabSets) override;
 
   // Style collectors
-  void collectStyleSheet(unsigned id, unsigned level,unsigned parentLineStyle, unsigned parentFillStyle, unsigned parentTextStyle);
+  void collectStyleSheet(unsigned id, unsigned level,unsigned parentLineStyle, unsigned parentFillStyle, unsigned parentTextStyle) override;
   void collectLineStyle(unsigned level, const boost::optional<double> &strokeWidth, const boost::optional<Colour> &c, const boost::optional<unsigned char> &linePattern,
                         const boost::optional<unsigned char> &startMarker, const boost::optional<unsigned char> &endMarker,
                         const boost::optional<unsigned char> &lineCap, const boost::optional<double> &rounding,
-                        const boost::optional<long> &qsLineColour, const boost::optional<long> &qsLineMatrix);
+                        const boost::optional<long> &qsLineColour, const boost::optional<long> &qsLineMatrix) override;
   void collectFillStyle(unsigned level, const boost::optional<Colour> &colourFG, const boost::optional<Colour> &colourBG,
                         const boost::optional<unsigned char> &fillPattern, const boost::optional<double> &fillFGTransparency,
                         const boost::optional<double> &fillBGTransparency, const boost::optional<unsigned char> &shadowPattern,
                         const boost::optional<Colour> &shfgc, const boost::optional<double> &shadowOffsetX, const boost::optional<double> &shadowOffsetY,
                         const boost::optional<long> &qsFillColour, const boost::optional<long> &qsShadowColour,
-                        const boost::optional<long> &qsFillMatrix);
+                        const boost::optional<long> &qsFillMatrix) override;
   void collectFillStyle(unsigned level, const boost::optional<Colour> &colourFG, const boost::optional<Colour> &colourBG,
                         const boost::optional<unsigned char> &fillPattern, const boost::optional<double> &fillFGTransparency,
                         const boost::optional<double> &fillBGTransparency, const boost::optional<unsigned char> &shadowPattern,
-                        const boost::optional<Colour> &shfgc);
+                        const boost::optional<Colour> &shfgc) override;
   void collectCharIXStyle(unsigned id, unsigned level, unsigned charCount, const boost::optional<VSDName> &font,
                           const boost::optional<Colour> &fontColour, const boost::optional<double> &fontSize, const boost::optional<bool> &bold,
                           const boost::optional<bool> &italic, const boost::optional<bool> &underline, const boost::optional<bool> &doubleunderline,
                           const boost::optional<bool> &strikeout, const boost::optional<bool> &doublestrikeout, const boost::optional<bool> &allcaps,
                           const boost::optional<bool> &initcaps, const boost::optional<bool> &smallcaps, const boost::optional<bool> &superscript,
-                          const boost::optional<bool> &subscript, const boost::optional<double> &scaleWidth);
+                          const boost::optional<bool> &subscript, const boost::optional<double> &scaleWidth) override;
   void collectParaIXStyle(unsigned id, unsigned level, unsigned charCount, const boost::optional<double> &indFirst,
                           const boost::optional<double> &indLeft, const boost::optional<double> &indRight, const boost::optional<double> &spLine,
                           const boost::optional<double> &spBefore, const boost::optional<double> &spAfter, const boost::optional<unsigned char> &align,
                           const boost::optional<unsigned char> &bullet, const boost::optional<VSDName> &bulletStr,
                           const boost::optional<VSDName> &bulletFont, const boost::optional<double> &bulletFontSize,
-                          const boost::optional<double> &textPosAfterBullet, const boost::optional<unsigned> &flags);
+                          const boost::optional<double> &textPosAfterBullet, const boost::optional<unsigned> &flags) override;
   void collectTextBlockStyle(unsigned level, const boost::optional<double> &leftMargin, const boost::optional<double> &rightMargin,
                              const boost::optional<double> &topMargin, const boost::optional<double> &bottomMargin,
                              const boost::optional<unsigned char> &verticalAlign, const boost::optional<bool> &isBgFilled,
                              const boost::optional<Colour> &bgColour, const boost::optional<double> &defaultTabStop,
-                             const boost::optional<unsigned char> &textDirection);
+                             const boost::optional<unsigned char> &textDirection) override;
 
   // Field list
-  void collectFieldList(unsigned id, unsigned level);
-  void collectTextField(unsigned id, unsigned level, int nameId, int formatStringId);
-  void collectNumericField(unsigned id, unsigned level, unsigned short format, double number, int formatStringId);
+  void collectFieldList(unsigned id, unsigned level) override;
+  void collectTextField(unsigned id, unsigned level, int nameId, int formatStringId) override;
+  void collectNumericField(unsigned id, unsigned level, unsigned short format, double number, int formatStringId) override;
 
-  virtual void collectMetaData(const librevenge::RVNGPropertyList &) { }
+  void collectMetaData(const librevenge::RVNGPropertyList &) override { }
 
   // Temporary hack
-  void startPage(unsigned pageID);
-  void endPage();
-  void endPages() {}
+  void startPage(unsigned pageID) override;
+  void endPage() override;
+  void endPages() override {}
 
   const VSDStyles &getStyleSheets() const
   {
diff --git a/src/lib/VSDXParser.h b/src/lib/VSDXParser.h
index 53624dc..d8d0686 100644
--- a/src/lib/VSDXParser.h
+++ b/src/lib/VSDXParser.h
@@ -30,9 +30,9 @@ class VSDXParser : public VSDXMLParserBase
 
 public:
   explicit VSDXParser(librevenge::RVNGInputStream *input, librevenge::RVNGDrawingInterface *painter);
-  virtual ~VSDXParser();
-  bool parseMain();
-  bool extractStencils();
+  ~VSDXParser() override;
+  bool parseMain() override;
+  bool extractStencils() override;
 
 private:
   VSDXParser();
@@ -41,10 +41,10 @@ private:
 
   // Helper functions
 
-  xmlChar *readStringData(xmlTextReaderPtr reader);
+  xmlChar *readStringData(xmlTextReaderPtr reader) override;
 
-  int getElementToken(xmlTextReaderPtr reader);
-  int getElementDepth(xmlTextReaderPtr reader);
+  int getElementToken(xmlTextReaderPtr reader) override;
+  int getElementDepth(xmlTextReaderPtr reader) override;
 
   int skipSection(xmlTextReaderPtr reader);
 
@@ -70,7 +70,7 @@ private:
 
   void readShapeProperties(xmlTextReaderPtr reader);
 
-  void getBinaryData(xmlTextReaderPtr reader);
+  void getBinaryData(xmlTextReaderPtr reader) override;
 
   void readLayer(xmlTextReaderPtr reader);
   void readParagraph(xmlTextReaderPtr reader);


More information about the Libreoffice-commits mailing list