parent
7678f7d6d1
commit
e4aa87326b
@ -0,0 +1,96 @@
|
|||||||
|
From 86c6f18c2766aad43d6e3bfcf3530e40440ebca7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: David Tardon <dtardon@redhat.com>
|
||||||
|
Date: Tue, 8 Jul 2014 17:01:27 +0200
|
||||||
|
Subject: [PATCH] avoid problems detecting HTML files with .xls ext.
|
||||||
|
|
||||||
|
Change-Id: I9955223aac20f3f640fde51bb7231666c269ca70
|
||||||
|
---
|
||||||
|
filter/Configuration_filter.mk | 1 +
|
||||||
|
filter/source/config/fragments/types/calc_HTML.xcu | 35 ++++++++++++++++++++++
|
||||||
|
filter/source/textfilterdetect/filterdetect.cxx | 6 ++--
|
||||||
|
3 files changed, 38 insertions(+), 4 deletions(-)
|
||||||
|
create mode 100644 filter/source/config/fragments/types/calc_HTML.xcu
|
||||||
|
|
||||||
|
diff --git a/filter/Configuration_filter.mk b/filter/Configuration_filter.mk
|
||||||
|
index e035464..0465f17 100644
|
||||||
|
--- a/filter/Configuration_filter.mk
|
||||||
|
+++ b/filter/Configuration_filter.mk
|
||||||
|
@@ -512,6 +512,7 @@ $(call filter_Configuration_add_ui_filters,fcfg_langpack,filter/source/config/fr
|
||||||
|
$(call filter_Configuration_add_types,fcfg_langpack,fcfg_calc_types.xcu,filter/source/config/fragments/types,\
|
||||||
|
calc_DIF \
|
||||||
|
calc_ODS_FlatXML \
|
||||||
|
+ calc_HTML \
|
||||||
|
generic_HTML \
|
||||||
|
generic_Text \
|
||||||
|
calc_Lotus \
|
||||||
|
diff --git a/filter/source/config/fragments/types/calc_HTML.xcu b/filter/source/config/fragments/types/calc_HTML.xcu
|
||||||
|
new file mode 100644
|
||||||
|
index 0000000..51bf8f1
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/filter/source/config/fragments/types/calc_HTML.xcu
|
||||||
|
@@ -0,0 +1,35 @@
|
||||||
|
+<!--
|
||||||
|
+ * This file is part of the LibreOffice project.
|
||||||
|
+ *
|
||||||
|
+ * This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||||
|
+ *
|
||||||
|
+ * This file incorporates work covered by the following license notice:
|
||||||
|
+ *
|
||||||
|
+ * Licensed to the Apache Software Foundation (ASF) under one or more
|
||||||
|
+ * contributor license agreements. See the NOTICE file distributed
|
||||||
|
+ * with this work for additional information regarding copyright
|
||||||
|
+ * ownership. The ASF licenses this file to you under the Apache
|
||||||
|
+ * License, Version 2.0 (the "License"); you may not use this file
|
||||||
|
+ * except in compliance with the License. You may obtain a copy of
|
||||||
|
+ * the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
||||||
|
+-->
|
||||||
|
+ <!-- A special case: There are tools that export HTML with .xls
|
||||||
|
+ extension. Allow to detect these early to avoid going through the
|
||||||
|
+ whole list of detectors. This also avoids the risk of misdetection
|
||||||
|
+ as something else, as there are some formats that are text files and
|
||||||
|
+ the detection is just a heuristic (e.g., wp1 or wp42 supported by
|
||||||
|
+ libwpd). -->
|
||||||
|
+ <node oor:name="calc_HTML" oor:op="replace" >
|
||||||
|
+ <prop oor:name="DetectService"><value>com.sun.star.comp.filters.PlainTextFilterDetect</value></prop>
|
||||||
|
+ <prop oor:name="URLPattern"/>
|
||||||
|
+ <prop oor:name="Extensions"><value>xls</value></prop>
|
||||||
|
+ <prop oor:name="MediaType"><value>text/html</value></prop>
|
||||||
|
+ <prop oor:name="Preferred"><value>false</value></prop>
|
||||||
|
+ <prop oor:name="PreferredFilter"/>
|
||||||
|
+ <prop oor:name="UIName">
|
||||||
|
+ <value>HTML Table</value>
|
||||||
|
+ </prop>
|
||||||
|
+ <prop oor:name="ClipboardFormat"/>
|
||||||
|
+ </node>
|
||||||
|
diff --git a/filter/source/textfilterdetect/filterdetect.cxx b/filter/source/textfilterdetect/filterdetect.cxx
|
||||||
|
index ffad7fa..1d29dd4 100644
|
||||||
|
--- a/filter/source/textfilterdetect/filterdetect.cxx
|
||||||
|
+++ b/filter/source/textfilterdetect/filterdetect.cxx
|
||||||
|
@@ -132,7 +132,7 @@ OUString SAL_CALL PlainTextFilterDetect::detect(uno::Sequence<beans::PropertyVal
|
||||||
|
OUString aExt = aParser.getExtension(INetURLObject::LAST_SEGMENT, true, INetURLObject::DECODE_WITH_CHARSET);
|
||||||
|
aExt = aExt.toAsciiLowerCase();
|
||||||
|
|
||||||
|
- if (aType == "generic_HTML")
|
||||||
|
+ if ((aType == "generic_HTML") || (aType == "calc_HTML"))
|
||||||
|
{
|
||||||
|
uno::Reference<io::XInputStream> xInStream(aMediaDesc[MediaDescriptor::PROP_INPUTSTREAM()], uno::UNO_QUERY);
|
||||||
|
if (!xInStream.is() || !IsHTMLStream(xInStream))
|
||||||
|
@@ -141,12 +141,10 @@ OUString SAL_CALL PlainTextFilterDetect::detect(uno::Sequence<beans::PropertyVal
|
||||||
|
// Decide which filter to use based on the document service first,
|
||||||
|
// then on extension if that's not available.
|
||||||
|
|
||||||
|
- if (aDocService == CALC_DOCSERVICE)
|
||||||
|
+ if ((aDocService == CALC_DOCSERVICE) || (aType == "calc_HTML"))
|
||||||
|
aMediaDesc[MediaDescriptor::PROP_FILTERNAME()] <<= OUString(CALC_HTML_FILTER);
|
||||||
|
else if (aDocService == WRITER_DOCSERVICE)
|
||||||
|
aMediaDesc[MediaDescriptor::PROP_FILTERNAME()] <<= OUString(WRITER_HTML_FILTER);
|
||||||
|
- else if (aExt == "xls")
|
||||||
|
- aMediaDesc[MediaDescriptor::PROP_FILTERNAME()] <<= OUString(CALC_HTML_FILTER);
|
||||||
|
else
|
||||||
|
aMediaDesc[MediaDescriptor::PROP_FILTERNAME()] <<= OUString(WEB_HTML_FILTER);
|
||||||
|
}
|
||||||
|
--
|
||||||
|
1.9.3
|
||||||
|
|
Loading…
Reference in new issue