summaryrefslogtreecommitdiff
path: root/vcl/source/filter/graphicfilter.cxx
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2021-02-14 22:26:00 +0900
committerTomaž Vajngerl <quikee@gmail.com>2021-02-17 02:43:45 +0100
commit4d22e3ce32959d795a90653807c1c19cc9c1838e (patch)
tree2c643edebb6d967ad38800c05b63de584c1a72ff /vcl/source/filter/graphicfilter.cxx
parent246af1d40ec515fe31ef2ac3375401c3fe284157 (diff)
Move PICT reader from filter module into VCL
Change-Id: I6d3a28769ff3bffa3970a4ab6ab2384bb0aebbca Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111011 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'vcl/source/filter/graphicfilter.cxx')
-rw-r--r--vcl/source/filter/graphicfilter.cxx35
1 files changed, 22 insertions, 13 deletions
diff --git a/vcl/source/filter/graphicfilter.cxx b/vcl/source/filter/graphicfilter.cxx
index 3546539b8787..210742388bd7 100644
--- a/vcl/source/filter/graphicfilter.cxx
+++ b/vcl/source/filter/graphicfilter.cxx
@@ -50,6 +50,7 @@
#include <filter/TiffReader.hxx>
#include <filter/TiffWriter.hxx>
#include <filter/TgaReader.hxx>
+#include <filter/PictReader.hxx>
#include <osl/module.hxx>
#include <com/sun/star/uno/Reference.h>
#include <com/sun/star/awt/Size.hpp>
@@ -646,7 +647,6 @@ extern "C" bool imeGraphicImport( SvStream& rStream, Graphic& rGraphic, FilterCo
extern "C" bool ipbGraphicImport( SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem );
extern "C" bool ipdGraphicImport( SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem );
extern "C" bool ipsGraphicImport( SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem );
-extern "C" bool iptGraphicImport( SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem );
extern "C" bool ipxGraphicImport( SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem );
extern "C" bool iraGraphicImport( SvStream& rStream, Graphic& rGraphic, FilterConfigItem* pConfigItem );
@@ -669,8 +669,6 @@ PFilterCall ImpFilterLibCacheEntry::GetImportFunction()
mpfnImport = reinterpret_cast<PFilterCall>(maLibrary.getFunctionSymbol("ipdGraphicImport"));
else if (maFormatName == "ips")
mpfnImport = reinterpret_cast<PFilterCall>(maLibrary.getFunctionSymbol("ipsGraphicImport"));
- else if (maFormatName == "ipt")
- mpfnImport = reinterpret_cast<PFilterCall>(maLibrary.getFunctionSymbol("iptGraphicImport"));
else if (maFormatName == "ipx")
mpfnImport = reinterpret_cast<PFilterCall>(maLibrary.getFunctionSymbol("ipxGraphicImport"));
else if (maFormatName == "ira")
@@ -688,8 +686,6 @@ PFilterCall ImpFilterLibCacheEntry::GetImportFunction()
mpfnImport = ipdGraphicImport;
else if (maFormatName == "ips")
mpfnImport = ipsGraphicImport;
- else if (maFormatName == "ipt")
- mpfnImport = iptGraphicImport;
else if (maFormatName == "ipx")
mpfnImport = ipxGraphicImport;
else if (maFormatName == "ira")
@@ -1328,6 +1324,10 @@ Graphic GraphicFilter::ImportUnloadedGraphic(SvStream& rIStream, sal_uInt64 size
{
eLinkType = GfxLinkType::NativeTif;
}
+ else if (aFilterName == IMP_PICT)
+ {
+ eLinkType = GfxLinkType::NativePct;
+ }
else
{
nStatus = ERRCODE_GRFILTER_FILTERERROR;
@@ -1363,8 +1363,6 @@ Graphic GraphicFilter::ImportUnloadedGraphic(SvStream& rIStream, sal_uInt64 size
if( aShortName.startsWith(MET_SHORTNAME))
eLinkType = GfxLinkType::NativeMet;
- else if( aShortName.startsWith(PCT_SHORTNAME))
- eLinkType = GfxLinkType::NativePct;
}
}
}
@@ -1426,7 +1424,7 @@ void GraphicFilter::preload()
sal_Int32 nTokenCount = comphelper::string::getTokenCount(aFilterPath, ';');
ImpFilterLibCache& rCache = Cache::get();
static const std::initializer_list<std::u16string_view> aFilterNames = {
- u"icd", u"idx", u"ime", u"ipb", u"ipd", u"ips", u"ipt", u"ipx", u"ira",
+ u"icd", u"idx", u"ime", u"ipb", u"ipd", u"ips", u"ipx", u"ira",
};
// Load library for each filter.
@@ -1718,6 +1716,17 @@ ErrCode GraphicFilter::readTGA(SvStream & rStream, Graphic & rGraphic)
return ERRCODE_GRFILTER_FILTERERROR;
}
+ErrCode GraphicFilter::readPICT(SvStream & rStream, Graphic & rGraphic, GfxLinkType & rLinkType)
+{
+ if (ImportPictGraphic(rStream, rGraphic))
+ {
+ rLinkType = GfxLinkType::NativePct;
+ return ERRCODE_NONE;
+ }
+ else
+ return ERRCODE_GRFILTER_FILTERERROR;
+}
+
ErrCode GraphicFilter::ImportGraphic( Graphic& rGraphic, const OUString& rPath, SvStream& rIStream,
sal_uInt16 nFormat, sal_uInt16* pDeterminedFormat, GraphicFilterImportFlags nImportFlags,
const css::uno::Sequence< css::beans::PropertyValue >* /*pFilterData*/,
@@ -1835,6 +1844,10 @@ ErrCode GraphicFilter::ImportGraphic( Graphic& rGraphic, const OUString& rPath,
{
nStatus = readTGA(rIStream, rGraphic);
}
+ else if (aFilterName.equalsIgnoreAsciiCase(IMP_PICT))
+ {
+ nStatus = readPICT(rIStream, rGraphic, eLinkType);
+ }
else
nStatus = ERRCODE_GRFILTER_FILTERERROR;
}
@@ -1880,12 +1893,8 @@ ErrCode GraphicFilter::ImportGraphic( Graphic& rGraphic, const OUString& rPath,
// try to set link type if format matches
if( nFormat != GRFILTER_FORMAT_DONTKNOW )
{
- if( aShortName.startsWith( TIF_SHORTNAME ) )
- eLinkType = GfxLinkType::NativeTif;
- else if( aShortName.startsWith( MET_SHORTNAME ) )
+ if( aShortName.startsWith( MET_SHORTNAME ) )
eLinkType = GfxLinkType::NativeMet;
- else if( aShortName.startsWith( PCT_SHORTNAME ) )
- eLinkType = GfxLinkType::NativePct;
}
}
}