[Libreoffice-commits] .: Branch 'libreoffice-3-6' - filter/source officecfg/registry sfx2/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Wed Aug 22 11:55:54 PDT 2012


 filter/source/config/cache/constant.hxx                                               |    1 
 filter/source/config/cache/filtercache.cxx                                            |    1 
 filter/source/config/fragments/filters/Text.xcu                                       |    1 
 filter/source/config/fragments/filters/Text__StarWriter_Web_.xcu                      |    1 
 filter/source/config/fragments/filters/Text___txt___csv__StarCalc_.xcu                |    1 
 filter/source/config/fragments/filters/Text__encoded_.xcu                             |    1 
 filter/source/config/fragments/filters/Text__encoded___StarWriter_GlobalDocument_.xcu |    1 
 filter/source/config/fragments/filters/Text__encoded___StarWriter_Web_.xcu            |    1 
 officecfg/registry/schema/org/openoffice/TypeDetection/Filter.xcs                     |    3 +
 sfx2/source/bastyp/fltfnc.cxx                                                         |   16 ++++++++--
 10 files changed, 24 insertions(+), 3 deletions(-)

New commits:
commit d632fa4d8fc6a42a58cb981865d6267d90951b69
Author: Kohei Yoshida <kohei.yoshida at gmail.com>
Date:   Tue Aug 21 21:53:52 2012 -0400

    fdo#52451: Ensure that the extension for text is .txt from writer.
    
    Added a preferred extension property to the filter which overwrites
    one(s) given by the default file format type associated with it.
    
    Normally this property is not used for the majority of the filters,
    but for plain text filters, we need to use .txt when saving from
    writer whereas we do .csv from calc.
    
    (cherry picked from commit ba03f2dc817c692fa8709391ec83d8e01a0f8b28)
    (cherry picked from commit 84d1ff7be178ec3572710e092e85fe548ce3042b)
    (cherry picked from commit 45b03c888042052a47cb79bc5a2837d04e115c5e)
    
    Squashed these 3 commits into 1.
    
    Also needed rtl::OUString("*.") instead of OUString("*.") in
    sfx2/source/bastyp/fltfnc.cxx
    
    Change-Id: Ic6d769bc1180f88fd75f40909e5e054d45719178
    Signed-off-by: Eike Rathke <erack at redhat.com>

diff --git a/filter/source/config/cache/constant.hxx b/filter/source/config/cache/constant.hxx
index a6e28b5..0102b32 100644
--- a/filter/source/config/cache/constant.hxx
+++ b/filter/source/config/cache/constant.hxx
@@ -69,6 +69,7 @@
 #define  PROPNAME_USERDATA          "UserData"
 #define  PROPNAME_TEMPLATENAME      "TemplateName"
 #define  PROPNAME_FILEFORMATVERSION "FileFormatVersion"
+#define  PROPNAME_EXPORTEXTENSION   "ExportExtension"
 
 /** @short  used to identify a frame loader or detect service item
             property against the configuration API and can be used
diff --git a/filter/source/config/cache/filtercache.cxx b/filter/source/config/cache/filtercache.cxx
index e6e1e4f..220eeaa 100644
--- a/filter/source/config/cache/filtercache.cxx
+++ b/filter/source/config/cache/filtercache.cxx
@@ -1825,6 +1825,7 @@ CacheItem FilterCache::impl_loadItem(const css::uno::Reference< css::container::
                 aItem[PROPNAME_UICOMPONENT      ] = xItem->getByName(PROPNAME_UICOMPONENT      );
                 aItem[PROPNAME_FILTERSERVICE    ] = xItem->getByName(PROPNAME_FILTERSERVICE    );
                 aItem[PROPNAME_DOCUMENTSERVICE  ] = xItem->getByName(PROPNAME_DOCUMENTSERVICE  );
+                aItem[PROPNAME_EXPORTEXTENSION  ] = xItem->getByName(PROPNAME_EXPORTEXTENSION  );
 
                 // special handling for flags! Convert it from a list of names to its
                 // int representation ...
diff --git a/filter/source/config/fragments/filters/Text.xcu b/filter/source/config/fragments/filters/Text.xcu
index 4a703d3..4629f89 100644
--- a/filter/source/config/fragments/filters/Text.xcu
+++ b/filter/source/config/fragments/filters/Text.xcu
@@ -4,6 +4,7 @@
         <prop oor:name="FilterService"/>
         <prop oor:name="UserData"><value>TEXT</value></prop>
         <prop oor:name="FileFormatVersion"><value>0</value></prop>
+        <prop oor:name="ExportExtension"><value>txt</value></prop>
         <prop oor:name="Type"><value>generic_Text</value></prop>
         <prop oor:name="TemplateName"/>
         <prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop>
diff --git a/filter/source/config/fragments/filters/Text__StarWriter_Web_.xcu b/filter/source/config/fragments/filters/Text__StarWriter_Web_.xcu
index 29ad18a..0332e3e 100644
--- a/filter/source/config/fragments/filters/Text__StarWriter_Web_.xcu
+++ b/filter/source/config/fragments/filters/Text__StarWriter_Web_.xcu
@@ -4,6 +4,7 @@
         <prop oor:name="FilterService"/>
         <prop oor:name="UserData"><value>TEXT</value></prop>
         <prop oor:name="FileFormatVersion"><value>0</value></prop>
+        <prop oor:name="ExportExtension"><value>txt</value></prop>
         <prop oor:name="Type"><value>generic_Text</value></prop>
         <prop oor:name="TemplateName"/>
         <prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop>
diff --git a/filter/source/config/fragments/filters/Text___txt___csv__StarCalc_.xcu b/filter/source/config/fragments/filters/Text___txt___csv__StarCalc_.xcu
index f15fe5a..498057c 100644
--- a/filter/source/config/fragments/filters/Text___txt___csv__StarCalc_.xcu
+++ b/filter/source/config/fragments/filters/Text___txt___csv__StarCalc_.xcu
@@ -4,6 +4,7 @@
         <prop oor:name="FilterService"/>
         <prop oor:name="UserData"><value></value></prop>
         <prop oor:name="FileFormatVersion"><value>0</value></prop>
+        <prop oor:name="ExportExtension"><value>csv</value></prop>
         <prop oor:name="Type"><value>generic_Text</value></prop>
         <prop oor:name="TemplateName"/>
         <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
diff --git a/filter/source/config/fragments/filters/Text__encoded_.xcu b/filter/source/config/fragments/filters/Text__encoded_.xcu
index a27c3c7..af05106 100644
--- a/filter/source/config/fragments/filters/Text__encoded_.xcu
+++ b/filter/source/config/fragments/filters/Text__encoded_.xcu
@@ -4,6 +4,7 @@
         <prop oor:name="FilterService"/>
         <prop oor:name="UserData"><value>TEXT_DLG</value></prop>
         <prop oor:name="FileFormatVersion"><value>0</value></prop>
+        <prop oor:name="ExportExtension"><value>txt</value></prop>
         <prop oor:name="Type"><value>generic_Text</value></prop>
         <prop oor:name="TemplateName"/>
         <prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop>
diff --git a/filter/source/config/fragments/filters/Text__encoded___StarWriter_GlobalDocument_.xcu b/filter/source/config/fragments/filters/Text__encoded___StarWriter_GlobalDocument_.xcu
index d4fd201..239ce31 100644
--- a/filter/source/config/fragments/filters/Text__encoded___StarWriter_GlobalDocument_.xcu
+++ b/filter/source/config/fragments/filters/Text__encoded___StarWriter_GlobalDocument_.xcu
@@ -4,6 +4,7 @@
         <prop oor:name="FilterService"/>
         <prop oor:name="UserData"><value>TEXT_DLG</value></prop>
         <prop oor:name="FileFormatVersion"><value>0</value></prop>
+        <prop oor:name="ExportExtension"><value>txt</value></prop>
         <prop oor:name="Type"><value>generic_Text</value></prop>
         <prop oor:name="TemplateName"/>
         <prop oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop>
diff --git a/filter/source/config/fragments/filters/Text__encoded___StarWriter_Web_.xcu b/filter/source/config/fragments/filters/Text__encoded___StarWriter_Web_.xcu
index b347977..3bde7e7 100644
--- a/filter/source/config/fragments/filters/Text__encoded___StarWriter_Web_.xcu
+++ b/filter/source/config/fragments/filters/Text__encoded___StarWriter_Web_.xcu
@@ -4,6 +4,7 @@
         <prop oor:name="FilterService"/>
         <prop oor:name="UserData"><value>TEXT_DLG</value></prop>
         <prop oor:name="FileFormatVersion"><value>0</value></prop>
+        <prop oor:name="ExportExtension"><value>txt</value></prop>
         <prop oor:name="Type"><value>generic_Text</value></prop>
         <prop oor:name="TemplateName"/>
         <prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop>
diff --git a/officecfg/registry/schema/org/openoffice/TypeDetection/Filter.xcs b/officecfg/registry/schema/org/openoffice/TypeDetection/Filter.xcs
index f87846f..ce76d8a 100644
--- a/officecfg/registry/schema/org/openoffice/TypeDetection/Filter.xcs
+++ b/officecfg/registry/schema/org/openoffice/TypeDetection/Filter.xcs
@@ -69,6 +69,9 @@
             <prop oor:name="UIName" oor:localized="true" oor:type="xs:string">
                 <info><desc>Localized name of the filter, whch can be shown at the UI.</desc></info>
             </prop>
+            <prop oor:name="ExportExtension" oor:type="xs:string" oor:nillable="true">
+                <info><desc>Extension to use when exporting content using this filter.  When this value is not given, it is inferred from the Type associated with this filter.</desc></info>
+            </prop>
 		</group>
 	</templates>
 	<component>
diff --git a/sfx2/source/bastyp/fltfnc.cxx b/sfx2/source/bastyp/fltfnc.cxx
index 72b3590..4a13f99 100644
--- a/sfx2/source/bastyp/fltfnc.cxx
+++ b/sfx2/source/bastyp/fltfnc.cxx
@@ -989,6 +989,13 @@ void SfxFilterContainer::ReadSingleFilter_Impl(
             {
                 lFilterProperties[nFilterProperty].Value >>= sServiceName;
             }
+            else if (lFilterProperties[nFilterProperty].Name == "ExportExtension")
+            {
+                // Extension preferred by the filter.  This takes precedence
+                // over those that are given in the file format type.
+                lFilterProperties[nFilterProperty].Value >>= sExtension;
+                sExtension = rtl::OUString("*.") + sExtension;
+            }
             else if ( lFilterProperties[nFilterProperty].Name == "Type" )
             {
                 lFilterProperties[nFilterProperty].Value >>= sType;
@@ -1025,9 +1032,12 @@ void SfxFilterContainer::ReadSingleFilter_Impl(
                         }
                         else if ( lTypeProperties[nTypeProperty].Name == "Extensions" )
                         {
-                            ::com::sun::star::uno::Sequence< ::rtl::OUString > lExtensions;
-                            lTypeProperties[nTypeProperty].Value >>= lExtensions;
-                            sExtension = implc_convertStringlistToString( lExtensions, ';', DEFINE_CONST_UNICODE("*.") );
+                            if (sExtension.isEmpty())
+                            {
+                                ::com::sun::star::uno::Sequence< ::rtl::OUString > lExtensions;
+                                lTypeProperties[nTypeProperty].Value >>= lExtensions;
+                                sExtension = implc_convertStringlistToString( lExtensions, ';', DEFINE_CONST_UNICODE("*.") );
+                            }
                         }
                         else if ( lTypeProperties[nTypeProperty].Name == "URLPattern" )
                         {


More information about the Libreoffice-commits mailing list