LCOV - code coverage report
Current view: top level - libreoffice/writerfilter/source/ooxml - Handler.cxx (source / functions) Hit Total Coverage
Test: libreoffice_filtered.info Lines: 93 168 55.4 %
Date: 2012-12-27 Functions: 24 52 46.2 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
       2             : /*
       3             :  * This file is part of the LibreOffice project.
       4             :  *
       5             :  * This Source Code Form is subject to the terms of the Mozilla Public
       6             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       7             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
       8             :  *
       9             :  * This file incorporates work covered by the following license notice:
      10             :  *
      11             :  *   Licensed to the Apache Software Foundation (ASF) under one or more
      12             :  *   contributor license agreements. See the NOTICE file distributed
      13             :  *   with this work for additional information regarding copyright
      14             :  *   ownership. The ASF licenses this file to you under the Apache
      15             :  *   License, Version 2.0 (the "License"); you may not use this file
      16             :  *   except in compliance with the License. You may obtain a copy of
      17             :  *   the License at http://www.apache.org/licenses/LICENSE-2.0 .
      18             :  */
      19             : 
      20             : #include <ooxml/resourceids.hxx>
      21             : #include <resourcemodel/QNameToString.hxx>
      22             : #include "Handler.hxx"
      23             : 
      24             : namespace writerfilter {
      25             : namespace ooxml
      26             : {
      27             : 
      28             : /*
      29             :   class OOXMLFootnoteHandler
      30             :  */
      31           0 : OOXMLFootnoteHandler::OOXMLFootnoteHandler(OOXMLFastContextHandler * pContext)
      32           0 : : mpFastContext(pContext)
      33             : {
      34           0 : }
      35             : 
      36           0 : OOXMLFootnoteHandler::~OOXMLFootnoteHandler()
      37             : {
      38           0 : }
      39             : 
      40           0 : void OOXMLFootnoteHandler::attribute(Id name, Value & val)
      41             : {
      42           0 :     switch (name)
      43             :     {
      44             :     case NS_ooxml::LN_CT_FtnEdnRef_id:
      45           0 :         mpFastContext->resolveFootnote(sal_Int32(val.getInt()));
      46           0 :         break;
      47             :     default:
      48           0 :         break;
      49             :     }
      50           0 : }
      51             : 
      52           0 : void OOXMLFootnoteHandler::sprm(Sprm & /*sprm*/)
      53             : {
      54           0 : }
      55             : 
      56             : /*
      57             :   class OOXMLEndnoteHandler
      58             :  */
      59           0 : OOXMLEndnoteHandler::OOXMLEndnoteHandler(OOXMLFastContextHandler * pContext)
      60           0 : : mpFastContext(pContext)
      61             : {
      62           0 : }
      63             : 
      64           0 : OOXMLEndnoteHandler::~OOXMLEndnoteHandler()
      65             : {
      66           0 : }
      67             : 
      68           0 : void OOXMLEndnoteHandler::attribute(Id name, Value & val)
      69             : {
      70           0 :     switch (name)
      71             :     {
      72             :     case NS_ooxml::LN_CT_FtnEdnRef_id:
      73           0 :         mpFastContext->resolveEndnote(sal_Int32(val.getInt()));
      74           0 :         break;
      75             :     default:
      76           0 :         break;
      77             :     }
      78           0 : }
      79             : 
      80           0 : void OOXMLEndnoteHandler::sprm(Sprm & /*sprm*/)
      81             : {
      82           0 : }
      83             : 
      84             : /*
      85             :   class OOXMLCommentHandler
      86             : */
      87           2 : OOXMLCommentHandler::OOXMLCommentHandler(OOXMLFastContextHandler * pContext)
      88           2 : : mpFastContext(pContext)
      89             : {
      90           2 : }
      91             : 
      92           2 : OOXMLCommentHandler::~OOXMLCommentHandler()
      93             : {
      94           2 : }
      95             : 
      96           2 : void OOXMLCommentHandler::attribute(Id name, Value & val)
      97             : {
      98           2 :     switch (name)
      99             :     {
     100             :     case NS_ooxml::LN_CT_Markup_id:
     101           2 :         mpFastContext->resolveComment(val.getInt());
     102           2 :         break;
     103             :     default:
     104             :         ;
     105             :     }
     106           2 : }
     107             : 
     108           0 : void OOXMLCommentHandler::sprm(Sprm & /*sprm*/)
     109             : {
     110           0 : }
     111             : 
     112             : /*
     113             :    class OOXMLOLEHandler
     114             : */
     115           1 : OOXMLOLEHandler::OOXMLOLEHandler(OOXMLFastContextHandler * pContext)
     116           1 : : mpFastContext(pContext)
     117             : {
     118           1 : }
     119             : 
     120           1 : OOXMLOLEHandler::~OOXMLOLEHandler()
     121             : {
     122           1 : }
     123             : 
     124           7 : void OOXMLOLEHandler::attribute(Id name, Value & val)
     125             : {
     126           7 :     switch (name)
     127             :     {
     128             :     case NS_ooxml::LN_CT_OLEObject_r_id:
     129           1 :         mpFastContext->resolveData(val.getString());
     130           1 :         break;
     131             :     default:
     132             :         ;
     133             :     }
     134           7 : }
     135             : 
     136           0 : void OOXMLOLEHandler::sprm(Sprm & /*sprm*/)
     137             : {
     138           0 : }
     139             : 
     140           0 : OOXMLEmbeddedFontHandler::OOXMLEmbeddedFontHandler(OOXMLFastContextHandler * pContext)
     141           0 : : mpFastContext(pContext)
     142             : {
     143           0 : }
     144             : 
     145           0 : OOXMLEmbeddedFontHandler::~OOXMLEmbeddedFontHandler()
     146             : {
     147           0 : }
     148             : 
     149           0 : void OOXMLEmbeddedFontHandler::attribute(Id name, Value & val)
     150             : {
     151           0 :     switch (name)
     152             :     {
     153             :     case NS_ooxml::LN_CT_Rel_id:
     154           0 :         mpFastContext->resolveData(val.getString());
     155           0 :         break;
     156             :     default:
     157           0 :         break;
     158             :     }
     159           0 : }
     160             : 
     161           0 : void OOXMLEmbeddedFontHandler::sprm(Sprm & /*sprm*/)
     162             : {
     163           0 : }
     164             : 
     165             : /*
     166             :   class OOXMLFooterHandler
     167             :  */
     168          11 : OOXMLFooterHandler::OOXMLFooterHandler(OOXMLFastContextHandler * pContext)
     169          11 : : mpFastContext(pContext), msStreamId(), mnType(0)
     170             : {
     171          11 : }
     172             : 
     173          22 : OOXMLFooterHandler::~OOXMLFooterHandler()
     174             : {
     175          11 :     mpFastContext->resolveFooter(mnType, msStreamId);
     176          11 : }
     177             : 
     178          22 : void OOXMLFooterHandler::attribute(Id name, Value & val)
     179             : {
     180          22 :     switch (name)
     181             :     {
     182             :     case NS_ooxml::LN_CT_HdrFtrRef_id:
     183          11 :         msStreamId = val.getString();
     184          11 :         break;
     185             :     case NS_ooxml::LN_CT_HdrFtrRef_type:
     186          11 :         mnType = val.getInt();
     187          11 :         break;
     188             :     default:
     189           0 :         break;
     190             :     }
     191          22 : }
     192             : 
     193           0 : void OOXMLFooterHandler::sprm(Sprm & /*sprm*/)
     194             : {
     195           0 : }
     196             : 
     197             : /*
     198             :   class OOXMLHeaderHandler
     199             :  */
     200          14 : OOXMLHeaderHandler::OOXMLHeaderHandler(OOXMLFastContextHandler * pContext)
     201          14 : : mpFastContext(pContext), msStreamId(), mnType(0)
     202             : {
     203          14 : }
     204             : 
     205          28 : OOXMLHeaderHandler::~OOXMLHeaderHandler()
     206             : {
     207          14 :     mpFastContext->resolveHeader(mnType, msStreamId);
     208          14 : }
     209             : 
     210          28 : void OOXMLHeaderHandler::attribute(Id name, Value & val)
     211             : {
     212          28 :     switch (name)
     213             :     {
     214             :     case NS_ooxml::LN_CT_HdrFtrRef_id:
     215          14 :         msStreamId = val.getString();
     216          14 :         break;
     217             :     case NS_ooxml::LN_CT_HdrFtrRef_type:
     218          14 :         mnType = val.getInt();
     219          14 :         break;
     220             :     default:
     221           0 :         break;
     222             :     }
     223          28 : }
     224             : 
     225           0 : void OOXMLHeaderHandler::sprm(Sprm & /*sprm*/)
     226             : {
     227           0 : }
     228             : 
     229             : /*
     230             :   class OOXMLBreakHandler
     231             :  */
     232           4 : OOXMLBreakHandler::OOXMLBreakHandler(Stream &rStream)
     233             : : mnType(0), mnClear(0),
     234           4 :   mrStream(rStream)
     235             : {
     236           4 : }
     237             : 
     238           8 : OOXMLBreakHandler::~OOXMLBreakHandler()
     239             : {
     240             :     sal_uInt8 tmpBreak[1];
     241           4 :     switch (mnType)
     242             :     {
     243             :     case NS_ooxml::LN_Value_ST_BrType_column:
     244           0 :         tmpBreak[0] = 0x0E;
     245           0 :         break;
     246             :     case NS_ooxml::LN_Value_ST_BrType_page:
     247           3 :         tmpBreak[0] = 0x0C;
     248           3 :         break;
     249             :     case NS_ooxml::LN_Value_ST_BrType_textWrapping:
     250             :     default: // when no attribute type is present, the spec assume textWrapping
     251           1 :         tmpBreak[0] = 0x0A;
     252           1 :         break;
     253             :     }
     254           4 :     mrStream.text(&tmpBreak[0], 1);
     255           4 : }
     256             : 
     257           3 : void OOXMLBreakHandler::attribute(Id name, Value & val)
     258             : {
     259           3 :     switch (name)
     260             :     {
     261             :     case NS_ooxml::LN_CT_Br_type:
     262           3 :         mnType = val.getInt();
     263           3 :         break;
     264             :     case NS_ooxml::LN_CT_Br_clear:
     265           0 :         mnClear = val.getInt();
     266           0 :         break;
     267             :     default:
     268           0 :         break;
     269             :     }
     270           3 : }
     271             : 
     272           0 : void OOXMLBreakHandler::sprm(Sprm & /*sprm*/)
     273             : {
     274           0 : }
     275             : 
     276             : /*
     277             :   class OOXMLPictureHandler
     278             :  */
     279          14 : OOXMLPictureHandler::OOXMLPictureHandler(OOXMLFastContextHandler * pContext)
     280          14 : : mpFastContext(pContext)
     281             : {
     282          14 : }
     283             : 
     284          14 : OOXMLPictureHandler::~OOXMLPictureHandler()
     285             : {
     286          14 : }
     287             : 
     288         195 : void OOXMLPictureHandler::attribute(Id name, Value & val)
     289             : {
     290         195 :     if (name == NS_ooxml::LN_AG_Blob_r_embed)
     291           0 :         mpFastContext->resolvePicture(val.getString());
     292             :     else
     293             :     {
     294             :         writerfilter::Reference<Properties>::Pointer_t pProps
     295         195 :             (val.getProperties());
     296         195 :         if (pProps.get() != NULL)
     297           0 :             pProps->resolve(*this);
     298             :     }
     299         195 : }
     300             : 
     301         155 : void OOXMLPictureHandler::sprm(Sprm & rSprm)
     302             : {
     303             :     writerfilter::Reference<Properties>::Pointer_t pProps
     304         155 :         (rSprm.getProps());
     305             : 
     306         155 :     if (pProps.get() != NULL)
     307         145 :         pProps->resolve(*this);
     308         155 : }
     309             : 
     310             : /**
     311             :    class OOXMLHyperlinkHandler
     312             :  */
     313             : 
     314           1 : OOXMLHyperlinkHandler::OOXMLHyperlinkHandler(OOXMLFastContextHandler * pContext)
     315           1 : : mpFastContext(pContext)
     316             : {
     317           1 : }
     318             : 
     319           2 : OOXMLHyperlinkHandler::~OOXMLHyperlinkHandler()
     320             : {
     321           1 :     OUString sReturn(" HYPERLINK \"");
     322             : 
     323           1 :     sReturn += mURL;
     324           1 :     sReturn += "\"";
     325           1 :     sReturn += mFieldCode;
     326             : 
     327           1 :     mpFastContext->text(sReturn);
     328           1 : }
     329             : 
     330           1 : void OOXMLHyperlinkHandler::attribute(Id name, Value & val)
     331             : {
     332           1 :     switch (name)
     333             :     {
     334             :     case NS_ooxml::LN_CT_Hyperlink_tgtFrame:
     335           0 :         mFieldCode += " \\t \"";
     336           0 :         mFieldCode += val.getString();
     337           0 :         mFieldCode += "\"";
     338           0 :         break;
     339             :     case NS_ooxml::LN_CT_Hyperlink_tooltip:
     340           0 :         mFieldCode += " \\o \"";
     341           0 :         mFieldCode += val.getString();
     342           0 :         mFieldCode += "\"";
     343           0 :         break;
     344             :     case NS_ooxml::LN_CT_Hyperlink_docLocation:
     345           0 :         break;
     346             :     case NS_ooxml::LN_CT_Hyperlink_history:
     347           0 :         break;
     348             :     case NS_ooxml::LN_CT_Hyperlink_anchor:
     349           0 :         mFieldCode += " \\l \"";
     350           0 :         mFieldCode += val.getString();
     351           0 :         mFieldCode += "\"";
     352           0 :         break;
     353             :     case NS_ooxml::LN_CT_Hyperlink_r_id:
     354           1 :         mURL = mpFastContext->getTargetForId(val.getString());
     355           1 :         break;
     356             :     default:
     357           0 :         break;
     358             :     }
     359           1 : }
     360             : 
     361           0 : void OOXMLHyperlinkHandler::sprm(Sprm & /*rSprm*/)
     362             : {
     363           0 : }
     364             : 
     365          15 : }}
     366             : 
     367             : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */

Generated by: LCOV version 1.10