filter/Configuration_filter.mk | 2 + filter/source/config/fragments/filters/MS_Write.xcu | 30 +++++++++++++++ filter/source/config/fragments/types/writer_MS_Write.xcu | 29 ++++++++++++++ writerperfect/source/writer/MSWorksImportFilter.cxx | 25 +++++++++++- 4 files changed, 84 insertions(+), 2 deletions(-)
New commits: commit c399caebe35e57d55edc4fcc19a7276a23e2645f Author: Sean Young <s...@mess.org> Date: Sun Oct 4 19:41:17 2015 +0100 Add Microsoft Write conversion Change-Id: I528fd1e83c2cdd89fb13504beb9f86da9e02122d Reviewed-on: https://gerrit.libreoffice.org/19182 Tested-by: Jenkins <c...@libreoffice.org> Reviewed-by: David Tardon <dtar...@redhat.com> Tested-by: David Tardon <dtar...@redhat.com> diff --git a/filter/Configuration_filter.mk b/filter/Configuration_filter.mk index 5fe58b0..0357926 100644 --- a/filter/Configuration_filter.mk +++ b/filter/Configuration_filter.mk @@ -323,6 +323,7 @@ $(eval $(call filter_Configuration_add_types,fcfg_langpack,fcfg_writer_types.xcu writer_StarOffice_XML_Writer \ writer_WordPerfect_Document \ writer_MS_Works_Document \ + writer_MS_Write \ writer_Beagle_Works \ writer_ClarisWorks \ writer_DocMaker \ @@ -385,6 +386,7 @@ $(eval $(call filter_Configuration_add_filters,fcfg_langpack,fcfg_writer_filters StarOffice_XML__Writer_ \ WordPerfect \ MS_Works \ + MS_Write \ Beagle_Works \ ClarisWorks \ DocMaker \ diff --git a/filter/source/config/fragments/filters/MS_Write.xcu b/filter/source/config/fragments/filters/MS_Write.xcu new file mode 100644 index 0000000..0616138 --- /dev/null +++ b/filter/source/config/fragments/filters/MS_Write.xcu @@ -0,0 +1,30 @@ +<!-- + * 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 . +--> + <node oor:name="MS_Write" oor:op="replace"> + <prop oor:name="Flags"><value>IMPORT ALIEN 3RDPARTYFILTER</value></prop> + <prop oor:name="UIComponent"/> + <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.MSWorksImportFilter</value></prop> + <prop oor:name="UserData"><value>WRI</value></prop> + <prop oor:name="UIName"> + <value xml:lang="en-US">Microsoft Write</value> + </prop> + <prop oor:name="FileFormatVersion"><value>0</value></prop> + <prop oor:name="Type"><value>writer_MS_Write</value></prop> + <prop oor:name="TemplateName"/> + <prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop> + </node> diff --git a/filter/source/config/fragments/types/writer_MS_Write.xcu b/filter/source/config/fragments/types/writer_MS_Write.xcu new file mode 100644 index 0000000..f42dca6 --- /dev/null +++ b/filter/source/config/fragments/types/writer_MS_Write.xcu @@ -0,0 +1,29 @@ +<!-- + * 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 . +--> + <node oor:name="writer_MS_Write" oor:op="replace" > + <prop oor:name="DetectService"><value>com.sun.star.comp.Writer.MSWorksImportFilter</value></prop> + <prop oor:name="URLPattern"/> + <prop oor:name="Extensions"><value>wri</value></prop> + <prop oor:name="MediaType"><value></value></prop> + <prop oor:name="Preferred"><value>true</value></prop> + <prop oor:name="PreferredFilter"><value>MS_Write</value></prop> + <prop oor:name="UIName"> + <value>Microsoft Write</value> + </prop> + <prop oor:name="ClipboardFormat"/> + </node> diff --git a/writerperfect/source/writer/MSWorksImportFilter.cxx b/writerperfect/source/writer/MSWorksImportFilter.cxx index ff1e49d..42bd1cd 100644 --- a/writerperfect/source/writer/MSWorksImportFilter.cxx +++ b/writerperfect/source/writer/MSWorksImportFilter.cxx @@ -42,7 +42,7 @@ bool MSWorksImportFilter::doImportDocument(librevenge::RVNGInputStream &rInput, std::string fileEncoding(""); try { - if ((kind == libwps::WPS_TEXT) && (confidence == libwps::WPS_CONFIDENCE_EXCELLENT) && needEncoding) + if ((kind == libwps::WPS_TEXT) && (creator == libwps::WPS_MSWORKS) && (confidence == libwps::WPS_CONFIDENCE_EXCELLENT) && needEncoding) { const ScopedVclPtrInstance<writerperfect::WPFTEncodingDialog> pDlg( "Import MsWorks files(libwps)", "CP850"); @@ -55,6 +55,20 @@ bool MSWorksImportFilter::doImportDocument(librevenge::RVNGInputStream &rInput, else if (pDlg->hasUserCalledCancel()) return false; } + else if ((kind == libwps::WPS_TEXT) && (creator == libwps::WPS_MSWRITE) && (confidence == libwps::WPS_CONFIDENCE_EXCELLENT) && needEncoding) + { + const ScopedVclPtrInstance<writerperfect::WPFTEncodingDialog> pDlg( + "Import MsWrite files(libwps)", "CP1252"); + if (pDlg->Execute() == RET_OK) + { + if (!pDlg->GetEncoding().isEmpty()) + fileEncoding=pDlg->GetEncoding().toUtf8().getStr(); + } + // we can fail because we are in headless mode, the user has cancelled conversion, ... + else if (pDlg->hasUserCalledCancel()) + return false; + } + } catch (css::uno::Exception &e) { @@ -72,7 +86,14 @@ bool MSWorksImportFilter::doDetectFormat(librevenge::RVNGInputStream &rInput, OU if ((kind == libwps::WPS_TEXT) && (confidence == libwps::WPS_CONFIDENCE_EXCELLENT)) { - rTypeName = "writer_MS_Works_Document"; + if (creator == libwps::WPS_MSWORKS) + { + rTypeName = "writer_MS_Works_Document"; + } + else + { + rTypeName = "writer_MS_Write"; + } return true; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits