summaryrefslogtreecommitdiff
path: root/filter/source/config
diff options
context:
space:
mode:
Diffstat (limited to 'filter/source/config')
-rw-r--r--filter/source/config/cache/basecontainer.cxx638
-rw-r--r--filter/source/config/cache/basecontainer.hxx323
-rw-r--r--filter/source/config/cache/cacheitem.cxx443
-rw-r--r--filter/source/config/cache/cacheitem.hxx261
-rw-r--r--filter/source/config/cache/cacheupdatelistener.cxx246
-rw-r--r--filter/source/config/cache/cacheupdatelistener.hxx147
-rw-r--r--filter/source/config/cache/configflush.cxx168
-rw-r--r--filter/source/config/cache/configflush.hxx128
-rw-r--r--filter/source/config/cache/constant.hxx215
-rw-r--r--filter/source/config/cache/contenthandlerfactory.cxx201
-rw-r--r--filter/source/config/cache/contenthandlerfactory.hxx148
-rw-r--r--filter/source/config/cache/filtercache.cxx2530
-rw-r--r--filter/source/config/cache/filtercache.hxx1066
-rw-r--r--filter/source/config/cache/filterconfig1.component46
-rw-r--r--filter/source/config/cache/filterfactory.cxx724
-rw-r--r--filter/source/config/cache/filterfactory.hxx212
-rw-r--r--filter/source/config/cache/frameloaderfactory.cxx198
-rw-r--r--filter/source/config/cache/frameloaderfactory.hxx148
-rw-r--r--filter/source/config/cache/lateinitlistener.cxx136
-rw-r--r--filter/source/config/cache/lateinitlistener.hxx125
-rw-r--r--filter/source/config/cache/lateinitthread.cxx85
-rw-r--r--filter/source/config/cache/lateinitthread.hxx91
-rw-r--r--filter/source/config/cache/macros.hxx132
-rw-r--r--filter/source/config/cache/makefile.mk87
-rw-r--r--filter/source/config/cache/querytokenizer.cxx99
-rw-r--r--filter/source/config/cache/querytokenizer.hxx115
-rw-r--r--filter/source/config/cache/registration.cxx123
-rw-r--r--filter/source/config/cache/registration.hxx121
-rw-r--r--filter/source/config/cache/typedetection.cxx1256
-rw-r--r--filter/source/config/cache/typedetection.hxx459
-rw-r--r--filter/source/config/cache/versions.hxx36
-rw-r--r--filter/source/config/fragments/contenthandlers/com_sun_star_comp_framework_SoundHandler.xcu3
-rw-r--r--filter/source/config/fragments/contenthandlers/com_sun_star_comp_framework_oxt_handler.xcu3
-rw-r--r--filter/source/config/fragments/delzip0
-rw-r--r--filter/source/config/fragments/fcfg_base.mk51
-rw-r--r--filter/source/config/fragments/fcfg_calc.mk108
-rw-r--r--filter/source/config/fragments/fcfg_calc_bf.mk59
-rw-r--r--filter/source/config/fragments/fcfg_chart.mk48
-rw-r--r--filter/source/config/fragments/fcfg_chart_bf.mk47
-rw-r--r--filter/source/config/fragments/fcfg_database.mk45
-rw-r--r--filter/source/config/fragments/fcfg_draw.mk56
-rw-r--r--filter/source/config/fragments/fcfg_draw_bf.mk51
-rw-r--r--filter/source/config/fragments/fcfg_drawgraphics.mk117
-rw-r--r--filter/source/config/fragments/fcfg_global.mk59
-rw-r--r--filter/source/config/fragments/fcfg_global_bf.mk55
-rw-r--r--filter/source/config/fragments/fcfg_impress.mk75
-rw-r--r--filter/source/config/fragments/fcfg_impress_bf.mk66
-rw-r--r--filter/source/config/fragments/fcfg_impressgraphics.mk83
-rw-r--r--filter/source/config/fragments/fcfg_internalgraphics.mk109
-rw-r--r--filter/source/config/fragments/fcfg_math.mk55
-rw-r--r--filter/source/config/fragments/fcfg_math_bf.mk50
-rw-r--r--filter/source/config/fragments/fcfg_palm.mk44
-rw-r--r--filter/source/config/fragments/fcfg_pocketexcel.mk44
-rw-r--r--filter/source/config/fragments/fcfg_pocketword.mk44
-rw-r--r--filter/source/config/fragments/fcfg_w4w.mk260
-rw-r--r--filter/source/config/fragments/fcfg_web.mk65
-rw-r--r--filter/source/config/fragments/fcfg_web_bf.mk54
-rw-r--r--filter/source/config/fragments/fcfg_writer.mk106
-rw-r--r--filter/source/config/fragments/fcfg_writer_bf.mk63
-rw-r--r--filter/source/config/fragments/fcfg_xslt.mk55
-rw-r--r--filter/source/config/fragments/filters/Ami_Pro_1_x_3_1__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/AportisDoc_Palm_DB.xcu13
-rw-r--r--filter/source/config/fragments/filters/BMP___MS_Windows.xcu13
-rw-r--r--filter/source/config/fragments/filters/CGM___Computer_Graphics_Metafile.xcu13
-rw-r--r--filter/source/config/fragments/filters/CTOS_DEF__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Claris_Works__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/DCA_FFT_Final_Form_Text__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/DCA_Revisable_Form_Text__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/DCA_with_Display_Write_5__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/DEC_DX__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/DEC_WPS_PLUS__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/DIF.xcu13
-rw-r--r--filter/source/config/fragments/filters/DXF___AutoCAD_Interchange.xcu13
-rw-r--r--filter/source/config/fragments/filters/DataGeneral_CEO_Write__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/DisplayWrite_2_0_4_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/DisplayWrite_5_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/DocBook_File.xcu13
-rw-r--r--filter/source/config/fragments/filters/EBCDIC__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/EMF___MS_Windows_Metafile.xcu13
-rw-r--r--filter/source/config/fragments/filters/EPS___Encapsulated_PostScript.xcu13
-rw-r--r--filter/source/config/fragments/filters/Enable__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Frame_Maker_MIF_3_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Frame_Maker_MIF_4_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Frame_Maker_MIF_5_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Frame_Work_III__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Frame_Work_IV___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/GIF___Graphics_Interchange.xcu13
-rw-r--r--filter/source/config/fragments/filters/HP_AdvanceWrite_Plus__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/HTML.xcu10
-rw-r--r--filter/source/config/fragments/filters/HTML_MasterDoc.xcu13
-rw-r--r--filter/source/config/fragments/filters/HTML_MasterDoc_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/HTML__StarCalc_.xcu10
-rw-r--r--filter/source/config/fragments/filters/HTML__StarCalc__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/HTML__StarWriter_.xcu10
-rw-r--r--filter/source/config/fragments/filters/HTML__StarWriter__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/HTML_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/ICL_Office_Power_6__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/ICL_Office_Power_7__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Interleaf_5___6__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Interleaf__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/JPG___JPEG.xcu13
-rw-r--r--filter/source/config/fragments/filters/Legacy_Winstar_onGO__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Lotus.xcu13
-rw-r--r--filter/source/config/fragments/filters/Lotus_1_2_3_1_0__DOS___StarWriter_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Lotus_1_2_3_1_0__WIN___StarWriter_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Lotus_Manuscript__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MASS_11_Rel__8_0_8_3__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MASS_11_Rel__8_5_9_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MET___OS_2_Metafile.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_2003_XML.xcu10
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_2003_XML_ui.xcu12
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_4_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_4_0_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_4_0_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_4_0__StarWriter_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_5_0_95.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_5_0_95_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_5_0_95_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_5_0__StarWriter_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_95.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_95_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_95_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_95__StarWriter_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_97.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_97_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/MS_Excel_97_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/MS_MacWord_3_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_MacWord_4_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_MacWord_5_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_PowerPoint_97.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_PowerPoint_97_Vorlage.xcu10
-rw-r--r--filter/source/config/fragments/filters/MS_PowerPoint_97_Vorlage_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/MS_WinWord_1_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_WinWord_2_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_WinWord_5.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_WinWord_6_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Word_2003_XML.xcu10
-rw-r--r--filter/source/config/fragments/filters/MS_Word_2003_XML_ui.xcu12
-rw-r--r--filter/source/config/fragments/filters/MS_Word_2007_XML.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Word_2007_XML_Template.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Word_2007_XML_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/MS_Word_2007_XML_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/MS_Word_3_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Word_4_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Word_5_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Word_6_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Word_95.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Word_95_Vorlage.xcu10
-rw-r--r--filter/source/config/fragments/filters/MS_Word_95_Vorlage_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/MS_Word_97.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Word_97_Vorlage.xcu10
-rw-r--r--filter/source/config/fragments/filters/MS_Word_97_Vorlage_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/MS_Works_2_0_DOS__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Works_3_0_Win__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MS_Works_4_0_Mac__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Mac_Write_4_x_5_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Mac_Write_II__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Mac_Write_Pro__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MathML_XML__Math_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MathType_3_x.xcu13
-rw-r--r--filter/source/config/fragments/filters/MiniCalc__Palm_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MultiMate_3_3__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MultiMate_4__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MultiMate_Adv__3_6__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/MultiMate_Adv__II_3_7__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/NAVY_DIF__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/OfficeWriter_4_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/OfficeWriter_5_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/OfficeWriter_6_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/PBM___Portable_Bitmap.xcu13
-rw-r--r--filter/source/config/fragments/filters/PCT___Mac_Pict.xcu13
-rw-r--r--filter/source/config/fragments/filters/PCX___Zsoft_Paintbrush.xcu13
-rw-r--r--filter/source/config/fragments/filters/PFS_First_Choice_1_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/PFS_First_Choice_2_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/PFS_First_Choice_3_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/PFS_Write__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/PGM___Portable_Graymap.xcu13
-rw-r--r--filter/source/config/fragments/filters/PNG___Portable_Network_Graphic.xcu13
-rw-r--r--filter/source/config/fragments/filters/PPM___Portable_Pixelmap.xcu13
-rw-r--r--filter/source/config/fragments/filters/PSD___Adobe_Photoshop.xcu13
-rw-r--r--filter/source/config/fragments/filters/Peach_Text__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/PocketWord_File.xcu13
-rw-r--r--filter/source/config/fragments/filters/Pocket_Excel.xcu13
-rw-r--r--filter/source/config/fragments/filters/Professional_Write_1_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Professional_Write_2_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Professional_Write_Plus__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/QPro.xcu13
-rw-r--r--filter/source/config/fragments/filters/Q_A_Write_1_0_3_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Q_A_Write_4_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/RAS___Sun_Rasterfile.xcu13
-rw-r--r--filter/source/config/fragments/filters/Rapid_File_1_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Rapid_File_1_2__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Rich_Text_Format.xcu13
-rw-r--r--filter/source/config/fragments/filters/Rich_Text_Format__StarCalc_.xcu13
-rw-r--r--filter/source/config/fragments/filters/SGF___StarOffice_Writer_SGF.xcu13
-rw-r--r--filter/source/config/fragments/filters/SGV___StarDraw_2_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/SVM___StarView_Metafile.xcu13
-rw-r--r--filter/source/config/fragments/filters/SYLK.xcu13
-rw-r--r--filter/source/config/fragments/filters/Samna_Word_IV_IV_Plus__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarCalc_1_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarCalc_3_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarCalc_3_0_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarCalc_3_0_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarCalc_4_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarCalc_4_0_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarCalc_4_0_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarCalc_5_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarCalc_5_0_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarCalc_5_0_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarChart_3_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarChart_4_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarChart_5_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarDraw_3_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarDraw_3_0_Vorlage.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarDraw_3_0_Vorlage__StarImpress_.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarDraw_3_0_Vorlage__StarImpress__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarDraw_3_0_Vorlage_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarDraw_3_0__StarImpress_.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarDraw_5_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarDraw_5_0_Vorlage.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarDraw_5_0_Vorlage__StarImpress_.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarDraw_5_0_Vorlage__StarImpress__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarDraw_5_0_Vorlage_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarDraw_5_0__StarImpress_.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarImpress_4_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarImpress_4_0_Vorlage.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarImpress_4_0_Vorlage_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarImpress_5_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarImpress_5_0_Vorlage.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarImpress_5_0_Vorlage_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarImpress_5_0__packed_.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarImpress_5_0__packed__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarMath_2_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarMath_3_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarMath_4_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarMath_5_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Base_.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Base__ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Calc_.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Calc__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Chart_.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Chart__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Draw_.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Draw__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Impress_.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Impress__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Math_.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Math__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Writer_.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarOffice_XML__Writer__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarWriter_1_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_2_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_3_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_3_0_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarWriter_3_0_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarWriter_3_0__StarWriter_GlobalDocument_.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_3_0__StarWriter_Web_.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_4_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_4_0_GlobalDocument.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarWriter_4_0_GlobalDocument_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarWriter_4_0_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarWriter_4_0_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarWriter_4_0__StarWriter_GlobalDocument_.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_4_0__StarWriter_Web_.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_5_0.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_5_0_GlobalDocument.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarWriter_5_0_GlobalDocument_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarWriter_5_0_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarWriter_5_0_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarWriter_5_0__StarWriter_GlobalDocument_.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_5_0__StarWriter_Web_.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_DOS.xcu13
-rw-r--r--filter/source/config/fragments/filters/StarWriter_Web_4_0_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarWriter_Web_4_0_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/StarWriter_Web_5_0_Vorlage_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/StarWriter_Web_5_0_Vorlage_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/T602Document.xcu13
-rw-r--r--filter/source/config/fragments/filters/TGA___Truevision_TARGA.xcu13
-rw-r--r--filter/source/config/fragments/filters/TIF___Tag_Image_File.xcu13
-rw-r--r--filter/source/config/fragments/filters/Text.xcu10
-rw-r--r--filter/source/config/fragments/filters/Text__StarWriter_Web_.xcu10
-rw-r--r--filter/source/config/fragments/filters/Text__StarWriter_Web__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/Text___txt___csv__StarCalc_.xcu10
-rw-r--r--filter/source/config/fragments/filters/Text___txt___csv__StarCalc__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/Text__encoded_.xcu10
-rw-r--r--filter/source/config/fragments/filters/Text__encoded___StarWriter_GlobalDocument_.xcu10
-rw-r--r--filter/source/config/fragments/filters/Text__encoded___StarWriter_GlobalDocument__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/Text__encoded___StarWriter_Web_.xcu10
-rw-r--r--filter/source/config/fragments/filters/Text__encoded___StarWriter_Web__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/Text__encoded__ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/Text_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/Total_Word__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/UOF_presentation.xcu13
-rw-r--r--filter/source/config/fragments/filters/UOF_presentation_ui.xcu13
-rw-r--r--filter/source/config/fragments/filters/UOF_spreadsheet.xcu13
-rw-r--r--filter/source/config/fragments/filters/UOF_spreadsheet_ui.xcu13
-rw-r--r--filter/source/config/fragments/filters/UOF_text.xcu13
-rw-r--r--filter/source/config/fragments/filters/UOF_text_ui.xcu13
-rw-r--r--filter/source/config/fragments/filters/Uniplex_V7_V8__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Uniplex_onGO__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/VolksWriter_3_and_4__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/VolksWriter_Deluxe__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WITA__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WMF___MS_Windows_Metafile.xcu13
-rw-r--r--filter/source/config/fragments/filters/Wang_II_SWP__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Wang_PC__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Wang_WP_Plus__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Win_Write_3_x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WiziWord_3_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect_4_1__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect_4_2__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect_5_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect_5_1__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect_6_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect_6_1__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect_Mac_1__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect_Mac_2__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect_Mac_3__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect__Win__5_1_5_2__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect__Win__6_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect__Win__6_1__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordPerfect__Win__7_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordStar_2000_Rel__3_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordStar_2000_Rel__3_5__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordStar_3_3x__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordStar_3_45__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordStar_4_0___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordStar_5_0___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordStar_5_5___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordStar_6_0___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordStar_7_0___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WordStar__Win__1_x_2_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/WriteNow_3_0__Macintosh___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/Writing_Assistant__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/XBM___X_Consortium.xcu13
-rw-r--r--filter/source/config/fragments/filters/XEROX_XIF_5_0__Illustrator___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/XEROX_XIF_5_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/XEROX_XIF_6_0__Color_Bitmap___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/XEROX_XIF_6_0__Res_Graphic___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/XHTML_Calc_File.xcu13
-rw-r--r--filter/source/config/fragments/filters/XHTML_Draw_File.xcu13
-rw-r--r--filter/source/config/fragments/filters/XHTML_Impress_File.xcu13
-rw-r--r--filter/source/config/fragments/filters/XHTML_Writer_File.xcu13
-rw-r--r--filter/source/config/fragments/filters/XPM.xcu13
-rw-r--r--filter/source/config/fragments/filters/XyWrite_III___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/XyWrite_III____W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/XyWrite_IV__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/XyWrite_Sig___Win___W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/XyWrite_Signature__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/XyWrite__Win__1_0__W4W_.xcu13
-rw-r--r--filter/source/config/fragments/filters/calc8.xcu10
-rw-r--r--filter/source/config/fragments/filters/calc8_template.xcu10
-rw-r--r--filter/source/config/fragments/filters/calc8_template_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/calc8_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/calc_HTML_WebQuery.xcu10
-rw-r--r--filter/source/config/fragments/filters/calc_HTML_WebQuery_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary.xcu10
-rw-r--r--filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu10
-rw-r--r--filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/calc_StarOffice_XML_Calc_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/calc_StarOffice_XML_Calc_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/calc_pdf_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/chart8.xcu10
-rw-r--r--filter/source/config/fragments/filters/chart8_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/dBase.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw8.xcu10
-rw-r--r--filter/source/config/fragments/filters/draw8_template.xcu10
-rw-r--r--filter/source/config/fragments/filters/draw8_template_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/draw8_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/draw_PCD_Photo_CD_Base.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_PCD_Photo_CD_Base16.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_PCD_Photo_CD_Base4.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_StarOffice_XML_Draw_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/draw_StarOffice_XML_Draw_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/draw_bmp_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_emf_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_eps_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_flash_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_gif_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_html_Export.xcu10
-rw-r--r--filter/source/config/fragments/filters/draw_html_Export_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/draw_jpg_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_met_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_pbm_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_pct_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_pdf_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_pgm_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_png_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_ppm_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_ras_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_svg_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_svm_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_tif_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_wmf_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/draw_xpm_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress8.xcu10
-rw-r--r--filter/source/config/fragments/filters/impress8_draw.xcu10
-rw-r--r--filter/source/config/fragments/filters/impress8_draw_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/impress8_template.xcu10
-rw-r--r--filter/source/config/fragments/filters/impress8_template_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/impress8_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML.xcu10
-rw-r--r--filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/impress_StarOffice_XML_Draw.xcu10
-rw-r--r--filter/source/config/fragments/filters/impress_StarOffice_XML_Draw_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/impress_StarOffice_XML_Impress_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/impress_StarOffice_XML_Impress_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/impress_bmp_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_emf_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_eps_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_flash_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_gif_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_html_Export.xcu10
-rw-r--r--filter/source/config/fragments/filters/impress_html_Export_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/impress_jpg_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_met_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_pbm_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_pct_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_pdf_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_pgm_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_png_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_ppm_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_ras_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_svg_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_svm_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_tif_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_wmf_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/impress_xpm_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/makefile.mk57
-rw-r--r--filter/source/config/fragments/filters/math8.xcu10
-rw-r--r--filter/source/config/fragments/filters/math8_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/math_pdf_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/placeware_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/writer8.xcu10
-rw-r--r--filter/source/config/fragments/filters/writer8_template.xcu10
-rw-r--r--filter/source/config/fragments/filters/writer8_template_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/writer8_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/writer_MIZI_Hwp_97.xcu13
-rw-r--r--filter/source/config/fragments/filters/writer_StarOffice_XML_Writer_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/writer_StarOffice_XML_Writer_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/writer_globaldocument_StarOffice_XML_Writer.xcu10
-rw-r--r--filter/source/config/fragments/filters/writer_globaldocument_StarOffice_XML_Writer_GlobalDocument.xcu10
-rw-r--r--filter/source/config/fragments/filters/writer_globaldocument_StarOffice_XML_Writer_GlobalDocument_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/writer_globaldocument_StarOffice_XML_Writer_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/writer_globaldocument_pdf_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/writer_pdf_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/writer_web_HTML_help.xcu13
-rw-r--r--filter/source/config/fragments/filters/writer_web_StarOffice_XML_Writer.xcu10
-rw-r--r--filter/source/config/fragments/filters/writer_web_StarOffice_XML_Writer_Web_Template.xcu10
-rw-r--r--filter/source/config/fragments/filters/writer_web_StarOffice_XML_Writer_Web_Template_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/writer_web_StarOffice_XML_Writer_ui.xcu6
-rw-r--r--filter/source/config/fragments/filters/writer_web_pdf_Export.xcu13
-rw-r--r--filter/source/config/fragments/filters/writerglobal8.xcu10
-rw-r--r--filter/source/config/fragments/filters/writerglobal8_HTML.xcu13
-rw-r--r--filter/source/config/fragments/filters/writerglobal8_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/writerglobal8_writer.xcu10
-rw-r--r--filter/source/config/fragments/filters/writerglobal8_writer_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/writerweb8_writer.xcu10
-rw-r--r--filter/source/config/fragments/filters/writerweb8_writer_template.xcu10
-rw-r--r--filter/source/config/fragments/filters/writerweb8_writer_template_ui.xcu5
-rw-r--r--filter/source/config/fragments/filters/writerweb8_writer_ui.xcu5
-rw-r--r--filter/source/config/fragments/frameloaders/com_sun_star_comp_chart2_ChartFrameLoader.xcu3
-rw-r--r--filter/source/config/fragments/frameloaders/com_sun_star_frame_Bibliography.xcu3
-rw-r--r--filter/source/config/fragments/frameloaders/com_sun_star_sdb_ContentLoader.xcu3
-rw-r--r--filter/source/config/fragments/frameloaders/org_openoffice_comp_dbflt_DBContentLoader2.xcu3
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/bmp_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/bmp_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/dxf_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/emf_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/emf_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/eps_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/eps_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/gif_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/gif_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/jpg_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/jpg_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/met_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/met_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/pbm_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/pbm_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/pcd_Import_Base.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/pcd_Import_Base16.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/pcd_Import_Base4.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/pct_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/pct_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/pcx_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/pgm_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/pgm_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/png_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/png_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/ppm_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/ppm_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/psd_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/ras_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/ras_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/sgf_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/sgv_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/svg_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/svm_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/svm_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/tga_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/tif_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/tif_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/wmf_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/wmf_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/xbm_Import.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/xpm_Export.xcu10
-rw-r--r--filter/source/config/fragments/internalgraphicfilters/xpm_Import.xcu10
-rw-r--r--filter/source/config/fragments/langfilter.xsl37
-rw-r--r--filter/source/config/fragments/makefile.mk255
-rw-r--r--filter/source/config/fragments/packagedef.mk71
-rw-r--r--filter/source/config/fragments/types/MS_Excel_2007_Binary.xcu10
-rw-r--r--filter/source/config/fragments/types/MS_Excel_2007_XML.xcu10
-rw-r--r--filter/source/config/fragments/types/MS_Excel_2007_XML_Template.xcu10
-rw-r--r--filter/source/config/fragments/types/MS_PowerPoint_2007_XML.xcu10
-rw-r--r--filter/source/config/fragments/types/MS_PowerPoint_2007_XML_Template.xcu10
-rw-r--r--filter/source/config/fragments/types/StarBase.xcu12
-rw-r--r--filter/source/config/fragments/types/Unified_Office_Format_presentation.xcu12
-rw-r--r--filter/source/config/fragments/types/Unified_Office_Format_spreadsheet.xcu12
-rw-r--r--filter/source/config/fragments/types/Unified_Office_Format_text.xcu12
-rw-r--r--filter/source/config/fragments/types/XHTML_File.xcu12
-rw-r--r--filter/source/config/fragments/types/bmp_MS_Windows.xcu12
-rw-r--r--filter/source/config/fragments/types/calc8.xcu12
-rw-r--r--filter/source/config/fragments/types/calc8_template.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_DIF.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_Lotus.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_MS_Excel_2003_XML.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_MS_Excel_40.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_MS_Excel_40_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_MS_Excel_5095.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_MS_Excel_5095_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_MS_Excel_95.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_MS_Excel_95_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_MS_Excel_97.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_MS_Excel_97_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_MiniCalc_PalmDB_File.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_Pocket_Excel_File.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_QPro.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_SYLK.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_StarCalc_10.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_StarCalc_30.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_StarCalc_30_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_StarCalc_40.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_StarCalc_40_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_StarCalc_50.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_StarCalc_50_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_StarOffice_XML_Calc.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_StarOffice_XML_Calc_Template.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_Text_txt_csv_StarCalc.xcu12
-rw-r--r--filter/source/config/fragments/types/calc_dBase.xcu12
-rw-r--r--filter/source/config/fragments/types/chart8.xcu12
-rw-r--r--filter/source/config/fragments/types/chart_StarChart_30.xcu12
-rw-r--r--filter/source/config/fragments/types/chart_StarChart_40.xcu12
-rw-r--r--filter/source/config/fragments/types/chart_StarChart_50.xcu12
-rw-r--r--filter/source/config/fragments/types/chart_StarOffice_XML_Chart.xcu12
-rw-r--r--filter/source/config/fragments/types/component_Bibliography.xcu12
-rw-r--r--filter/source/config/fragments/types/component_DB.xcu12
-rw-r--r--filter/source/config/fragments/types/draw8.xcu12
-rw-r--r--filter/source/config/fragments/types/draw8_template.xcu12
-rw-r--r--filter/source/config/fragments/types/draw_StarDraw_30.xcu12
-rw-r--r--filter/source/config/fragments/types/draw_StarDraw_30_Vorlage.xcu12
-rw-r--r--filter/source/config/fragments/types/draw_StarDraw_50.xcu12
-rw-r--r--filter/source/config/fragments/types/draw_StarDraw_50_Vorlage.xcu12
-rw-r--r--filter/source/config/fragments/types/draw_StarOffice_XML_Draw.xcu12
-rw-r--r--filter/source/config/fragments/types/draw_StarOffice_XML_Draw_Template.xcu12
-rw-r--r--filter/source/config/fragments/types/dxf_AutoCAD_Interchange.xcu12
-rw-r--r--filter/source/config/fragments/types/emf_MS_Windows_Metafile.xcu12
-rw-r--r--filter/source/config/fragments/types/eps_Encapsulated_PostScript.xcu12
-rw-r--r--filter/source/config/fragments/types/gif_Graphics_Interchange.xcu12
-rw-r--r--filter/source/config/fragments/types/graphic_HTML.xcu12
-rw-r--r--filter/source/config/fragments/types/graphic_SWF.xcu12
-rw-r--r--filter/source/config/fragments/types/impress8.xcu12
-rw-r--r--filter/source/config/fragments/types/impress8_template.xcu12
-rw-r--r--filter/source/config/fragments/types/impress_CGM_Computer_Graphics_Metafile.xcu12
-rw-r--r--filter/source/config/fragments/types/impress_MS_PowerPoint_97.xcu12
-rw-r--r--filter/source/config/fragments/types/impress_MS_PowerPoint_97_Vorlage.xcu12
-rw-r--r--filter/source/config/fragments/types/impress_StarImpress_40.xcu12
-rw-r--r--filter/source/config/fragments/types/impress_StarImpress_40_Vorlage.xcu12
-rw-r--r--filter/source/config/fragments/types/impress_StarImpress_50.xcu12
-rw-r--r--filter/source/config/fragments/types/impress_StarImpress_50_Vorlage.xcu12
-rw-r--r--filter/source/config/fragments/types/impress_StarImpress_50_packed.xcu12
-rw-r--r--filter/source/config/fragments/types/impress_StarOffice_XML_Impress.xcu12
-rw-r--r--filter/source/config/fragments/types/impress_StarOffice_XML_Impress_Template.xcu12
-rw-r--r--filter/source/config/fragments/types/jpg_JPEG.xcu12
-rw-r--r--filter/source/config/fragments/types/makefile.mk54
-rw-r--r--filter/source/config/fragments/types/math8.xcu12
-rw-r--r--filter/source/config/fragments/types/math_MathML_XML_Math.xcu12
-rw-r--r--filter/source/config/fragments/types/math_MathType_3x.xcu12
-rw-r--r--filter/source/config/fragments/types/math_StarMath_20.xcu12
-rw-r--r--filter/source/config/fragments/types/math_StarMath_30.xcu12
-rw-r--r--filter/source/config/fragments/types/math_StarMath_40.xcu12
-rw-r--r--filter/source/config/fragments/types/math_StarMath_50.xcu12
-rw-r--r--filter/source/config/fragments/types/math_StarOffice_XML_Math.xcu12
-rw-r--r--filter/source/config/fragments/types/met_OS2_Metafile.xcu12
-rw-r--r--filter/source/config/fragments/types/oxt_OpenOffice_Extension.xcu12
-rw-r--r--filter/source/config/fragments/types/pbm_Portable_Bitmap.xcu12
-rw-r--r--filter/source/config/fragments/types/pcd_Photo_CD_Base.xcu12
-rw-r--r--filter/source/config/fragments/types/pcd_Photo_CD_Base16.xcu12
-rw-r--r--filter/source/config/fragments/types/pcd_Photo_CD_Base4.xcu12
-rw-r--r--filter/source/config/fragments/types/pct_Mac_Pict.xcu12
-rw-r--r--filter/source/config/fragments/types/pcx_Zsoft_Paintbrush.xcu12
-rw-r--r--filter/source/config/fragments/types/pdf_Portable_Document_Format.xcu12
-rw-r--r--filter/source/config/fragments/types/pgm_Portable_Graymap.xcu12
-rw-r--r--filter/source/config/fragments/types/png_Portable_Network_Graphic.xcu12
-rw-r--r--filter/source/config/fragments/types/ppm_Portable_Pixelmap.xcu12
-rw-r--r--filter/source/config/fragments/types/psd_Adobe_Photoshop.xcu12
-rw-r--r--filter/source/config/fragments/types/pwp_PlaceWare.xcu12
-rw-r--r--filter/source/config/fragments/types/ras_Sun_Rasterfile.xcu12
-rw-r--r--filter/source/config/fragments/types/sgf_StarOffice_Writer_SGF.xcu12
-rw-r--r--filter/source/config/fragments/types/sgv_StarDraw_20.xcu12
-rw-r--r--filter/source/config/fragments/types/svg_Scalable_Vector_Graphics.xcu12
-rw-r--r--filter/source/config/fragments/types/svm_StarView_Metafile.xcu12
-rw-r--r--filter/source/config/fragments/types/tga_Truevision_TARGA.xcu12
-rw-r--r--filter/source/config/fragments/types/tif_Tag_Image_File.xcu12
-rw-r--r--filter/source/config/fragments/types/wav_Wave_Audio_File.xcu12
-rw-r--r--filter/source/config/fragments/types/wmf_MS_Windows_Metafile.xcu12
-rw-r--r--filter/source/config/fragments/types/writer8.xcu12
-rw-r--r--filter/source/config/fragments/types/writer8_template.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Ami_Pro_1x_31_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_AportisDoc_PalmDB_File.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_CTOS_DEF_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Claris_Works_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_DCAFFT_Final_Form_Text_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_DCA_Revisable_Form_Text_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_DCA_with_Display_Write_5_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_DEC_DX_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_DEC_WPS_PLUS_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_DataGeneral_CEO_Write_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_DisplayWrite_20_4x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_DisplayWrite_5x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_DocBook_File.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_EBCDIC_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Enable_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Frame_Maker_MIF_30_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Frame_Maker_MIF_40_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Frame_Maker_MIF_50_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Frame_Work_III_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Frame_Work_IV_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_HP_AdvanceWrite_Plus_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_ICL_Office_Power_6_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_ICL_Office_Power_7_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Interleaf_5_6_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Interleaf_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Legacy_Winstar_onGO_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Lotus_1_2_3_10_DOS_StarWriter.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Lotus_1_2_3_10_WIN_StarWriter.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Lotus_Manuscript_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MASS_11_Rel_80_83_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MASS_11_Rel_85_90_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MIZI_Hwp_97.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_MacWord_30_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_MacWord_40_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_MacWord_5x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_WinWord_1x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_WinWord_2x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_WinWord_5.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_WinWord_60.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Word_2003_XML.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Word_2007_XML.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Word_2007_XML_Template.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Word_3x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Word_4x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Word_5x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Word_6x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Word_95.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Word_95_Vorlage.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Word_97.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Word_97_Vorlage.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Works_20_DOS_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Works_30_Win_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MS_Works_40_Mac_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Mac_Write_4x_50_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Mac_Write_II_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Mac_Write_Pro_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MultiMate_33_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MultiMate_4_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MultiMate_Adv_36_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_MultiMate_Adv_II_37_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_NAVY_DIF_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_OfficeWriter_40_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_OfficeWriter_50_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_OfficeWriter_6x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_PFS_First_Choice_10_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_PFS_First_Choice_20_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_PFS_First_Choice_30_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_PFS_Write_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Peach_Text_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_PocketWord_File.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Professional_Write_10_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Professional_Write_2x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Professional_Write_Plus_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_QA_Write_10_30_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_QA_Write_40_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Rapid_File_10_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Rapid_File_12_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Rich_Text_Format.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Samna_Word_IV_IV_Plus_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_StarOffice_XML_Writer.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_StarOffice_XML_Writer_Template.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_StarWriter_10.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_StarWriter_20.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_StarWriter_30.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_StarWriter_30_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_StarWriter_40.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_StarWriter_40_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_StarWriter_50.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_StarWriter_50_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_StarWriter_DOS.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_T602_Document.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Text.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Text_encoded.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Total_Word_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Uniplex_V7_V8_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Uniplex_onGO_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_VolksWriter_3_and_4_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_VolksWriter_Deluxe_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WITA_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Wang_II_SWP_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Wang_PC_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Wang_WP_Plus_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Win_Write_3x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WiziWord_30_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_41_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_42_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_50_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_51_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_60_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_61_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_Document.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_Mac_1_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_Mac_2_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_Mac_3_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_Win_51_52_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_Win_60_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_Win_61_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordPerfect_Win_70_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordStar_2000_Rel_30_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordStar_2000_Rel_35_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordStar_33x_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordStar_345_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordStar_40_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordStar_50_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordStar_55_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordStar_60_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordStar_70_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WordStar_Win_1x_20_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_WriteNow_30_Macintosh_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_Writing_Assistant_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_XEROX_XIF_50_Illustrator_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_XEROX_XIF_50_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_XEROX_XIF_60_Color_Bitmap_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_XEROX_XIF_60_Res_Graphic_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_XyWrite_IIIP_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_XyWrite_III_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_XyWrite_IV_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_XyWrite_Sig_Win_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_XyWrite_Signature_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_XyWrite_Win_10_W4W.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_globaldocument_StarOffice_XML_Writer_GlobalDocument.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_globaldocument_StarWriter_40GlobalDocument.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_globaldocument_StarWriter_50GlobalDocument.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_web_HTML.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_web_HTML_help.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_web_StarOffice_XML_Writer_Web_Template.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_web_StarWriterWeb_40_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/writer_web_StarWriterWeb_50_VorlageTemplate.xcu12
-rw-r--r--filter/source/config/fragments/types/writerglobal8.xcu12
-rw-r--r--filter/source/config/fragments/types/writerweb8_writer_template.xcu12
-rw-r--r--filter/source/config/fragments/types/xbm_X_Consortium.xcu12
-rw-r--r--filter/source/config/fragments/types/xpm_XPM.xcu12
-rw-r--r--filter/source/config/tools/Manifest.mf4
-rwxr-xr-xfilter/source/config/tools/merge/pyAltFCFGMerge591
-rw-r--r--filter/source/config/tools/split/FCFGSplit.cfg110
-rw-r--r--filter/source/config/tools/split/FCFGSplit.java565
-rw-r--r--filter/source/config/tools/split/Manifest.mf1
-rw-r--r--filter/source/config/tools/split/Splitter.java310
-rw-r--r--filter/source/config/tools/split/SplitterData.java87
-rw-r--r--filter/source/config/tools/split/makefile.mk88
784 files changed, 22855 insertions, 0 deletions
diff --git a/filter/source/config/cache/basecontainer.cxx b/filter/source/config/cache/basecontainer.cxx
new file mode 100644
index 000000000000..800876ce1abd
--- /dev/null
+++ b/filter/source/config/cache/basecontainer.cxx
@@ -0,0 +1,638 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_filter.hxx"
+
+#include "basecontainer.hxx"
+#include "constant.hxx"
+
+//_______________________________________________
+// includes
+#include <com/sun/star/lang/WrappedTargetRuntimeException.hpp>
+#include <com/sun/star/uno/Type.h>
+#include <comphelper/enumhelper.hxx>
+#include <osl/diagnose.h>
+
+//_______________________________________________
+// namespace
+
+#define LOAD_IMPLICIT
+
+namespace css = ::com::sun::star;
+
+namespace filter{
+ namespace config{
+
+//_______________________________________________
+// definitions
+
+::salhelper::SingletonRef< FilterCache >* BaseContainer::m_pPerformanceOptimizer = 0;
+
+/*-----------------------------------------------
+ 03.03.2004 11:37
+-----------------------------------------------*/
+BaseContainer::BaseContainer()
+ : BaseLock ( )
+ , m_rCache ( )
+ , m_pFlushCache(NULL )
+ , m_lListener (m_aLock)
+{
+ m_rCache->load(FilterCache::E_CONTAINS_STANDARD);
+
+ // GLOBAL SAFE (!) -> -----------------------
+ // TODO use rtl pattern to create it realy threadsafe!
+ ::osl::ResettableMutexGuard aGlobalLock(::osl::Mutex::getGlobalMutex());
+ if (!m_pPerformanceOptimizer)
+ m_pPerformanceOptimizer = new ::salhelper::SingletonRef< FilterCache >();
+ aGlobalLock.clear();
+ // <- GLOBAL SAFE (!) -----------------------
+}
+
+/*-----------------------------------------------
+ 02.07.2003 10:16
+-----------------------------------------------*/
+BaseContainer::~BaseContainer()
+{
+}
+
+/*-----------------------------------------------
+ 03.07.2003 11:16
+-----------------------------------------------*/
+void BaseContainer::init(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ,
+ const ::rtl::OUString& sImplementationName,
+ const css::uno::Sequence< ::rtl::OUString >& lServiceNames ,
+ FilterCache::EItemType eType )
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ m_sImplementationName = sImplementationName;
+ m_lServiceNames = lServiceNames ;
+ m_xSMGR = xSMGR ;
+ m_eType = eType ;
+ m_xRefreshBroadcaster = css::uno::Reference< css::util::XRefreshable >(
+ xSMGR->createInstance(SERVICE_FILTERCONFIGREFRESH),
+ css::uno::UNO_QUERY);
+ // <- SAFE
+}
+
+/*-----------------------------------------------
+ 28.10.2003 09:04
+-----------------------------------------------*/
+void BaseContainer::impl_loadOnDemand()
+{
+#ifdef LOAD_IMPLICIT
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ // A generic container needs all items of a set of our cache!
+ // Of course it can block for a while, till the cache is realy filled.
+ // Note: dont load all sets supported by the cache here!
+
+ FilterCache::EFillState eRequiredState = FilterCache::E_CONTAINS_NOTHING;
+ switch(m_eType)
+ {
+ case FilterCache::E_TYPE :
+ eRequiredState = FilterCache::E_CONTAINS_TYPES;
+ break;
+
+ case FilterCache::E_FILTER :
+ eRequiredState = FilterCache::E_CONTAINS_FILTERS;
+ break;
+
+ case FilterCache::E_DETECTSERVICE :
+ eRequiredState = FilterCache::E_CONTAINS_DETECTSERVICES;
+ break;
+
+ case FilterCache::E_FRAMELOADER :
+ eRequiredState = FilterCache::E_CONTAINS_FRAMELOADERS;
+ break;
+
+ case FilterCache::E_CONTENTHANDLER :
+ eRequiredState = FilterCache::E_CONTAINS_CONTENTHANDLERS;
+ break;
+ }
+
+ m_rCache->load(eRequiredState);
+ // <- SAFE
+#endif
+}
+
+/*-----------------------------------------------
+ 03.03.2004 12:18
+-----------------------------------------------*/
+void BaseContainer::impl_initFlushMode()
+ throw (css::uno::RuntimeException)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ if (!m_pFlushCache)
+ m_pFlushCache = m_rCache->clone();
+ if (!m_pFlushCache)
+ throw css::uno::RuntimeException(
+ ::rtl::OUString::createFromAscii("Cant create write copy of internal used cache on demand."),
+ dynamic_cast< css::container::XNameAccess* >(this));
+ // <- SAFE
+}
+
+/*-----------------------------------------------
+ 03.03.2004 12:11
+-----------------------------------------------*/
+FilterCache* BaseContainer::impl_getWorkingCache() const
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ if (m_pFlushCache)
+ return m_pFlushCache;
+ else
+ return &(*m_rCache);
+ // <- SAFE
+}
+
+/*-----------------------------------------------
+ 03.07.2003 11:12
+-----------------------------------------------*/
+::rtl::OUString SAL_CALL BaseContainer::getImplementationName()
+ throw (css::uno::RuntimeException)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ return m_sImplementationName;
+ // <- SAFE
+}
+
+/*-----------------------------------------------
+ 03.07.2003 11:14
+-----------------------------------------------*/
+sal_Bool SAL_CALL BaseContainer::supportsService(const ::rtl::OUString& sServiceName)
+ throw (css::uno::RuntimeException)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ sal_Int32 c = m_lServiceNames.getLength();
+ const ::rtl::OUString* pNames = m_lServiceNames.getConstArray();
+ for (sal_Int32 i=0; i<c; ++i)
+ {
+ if (pNames[i].equals(sServiceName))
+ return sal_True;
+ }
+ return sal_False;
+ // <- SAFE
+}
+
+/*-----------------------------------------------
+ 03.07.2003 11:12
+-----------------------------------------------*/
+css::uno::Sequence< ::rtl::OUString > SAL_CALL BaseContainer::getSupportedServiceNames()
+ throw (css::uno::RuntimeException)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ return m_lServiceNames;
+ // <- SAFE
+}
+
+/*-----------------------------------------------
+ 20.10.2003 11:39
+-----------------------------------------------*/
+void SAL_CALL BaseContainer::insertByName(const ::rtl::OUString& sItem ,
+ const css::uno::Any& aValue)
+ throw (css::lang::IllegalArgumentException ,
+ css::container::ElementExistException,
+ css::lang::WrappedTargetException ,
+ css::uno::RuntimeException )
+{
+ if (!sItem.getLength())
+ throw css::lang::IllegalArgumentException(
+ ::rtl::OUString::createFromAscii("empty value not allowed as item name."),
+ static_cast< css::container::XNameContainer* >(this),
+ 1);
+
+ CacheItem aItem;
+ try
+ {
+ aItem << aValue;
+ }
+ catch(const css::uno::Exception& ex)
+ {
+ throw css::lang::IllegalArgumentException(ex.Message, static_cast< css::container::XNameContainer* >(this), 2);
+ }
+
+ impl_loadOnDemand();
+
+ // SAFE -> ----------------------------------
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ // create write copy of used cache on demand ...
+ impl_initFlushMode();
+
+ FilterCache* pCache = impl_getWorkingCache();
+ if (pCache->hasItem(m_eType, sItem))
+ throw css::container::ElementExistException(::rtl::OUString(), static_cast< css::container::XNameContainer* >(this));
+ pCache->setItem(m_eType, sItem, aItem);
+
+ aLock.clear();
+ // <- SAFE ----------------------------------
+}
+
+/*-----------------------------------------------
+ 03.03.2004 11:40
+-----------------------------------------------*/
+void SAL_CALL BaseContainer::removeByName(const ::rtl::OUString& sItem)
+ throw (css::container::NoSuchElementException,
+ css::lang::WrappedTargetException ,
+ css::uno::RuntimeException )
+{
+ impl_loadOnDemand();
+
+ // SAFE -> ----------------------------------
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ // create write copy of used cache on demand ...
+ impl_initFlushMode();
+
+ FilterCache* pCache = impl_getWorkingCache();
+ pCache->removeItem(m_eType, sItem); // throw exceptions automaticly
+
+ aLock.clear();
+ // <- SAFE ----------------------------------
+}
+
+/*-----------------------------------------------
+ 03.03.2004 11:41
+-----------------------------------------------*/
+void SAL_CALL BaseContainer::replaceByName(const ::rtl::OUString& sItem ,
+ const css::uno::Any& aValue)
+ throw (css::lang::IllegalArgumentException ,
+ css::container::NoSuchElementException,
+ css::lang::WrappedTargetException ,
+ css::uno::RuntimeException )
+{
+ if (!sItem.getLength())
+ throw css::lang::IllegalArgumentException(
+ ::rtl::OUString::createFromAscii("empty value not allowed as item name."),
+ static_cast< css::container::XNameContainer* >(this),
+ 1);
+
+ CacheItem aItem;
+ try
+ {
+ aItem << aValue;
+ }
+ catch(const css::uno::Exception& ex)
+ {
+ throw css::lang::IllegalArgumentException(ex.Message, static_cast< css::container::XNameContainer* >(this), 2);
+ }
+
+ impl_loadOnDemand();
+
+ // SAFE -> ----------------------------------
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ // create write copy of used cache on demand ...
+ impl_initFlushMode();
+
+ FilterCache* pCache = impl_getWorkingCache();
+ if (!pCache->hasItem(m_eType, sItem))
+ throw css::container::NoSuchElementException(::rtl::OUString(), static_cast< css::container::XNameContainer* >(this));
+ pCache->setItem(m_eType, sItem, aItem);
+
+ aLock.clear();
+ // <- SAFE ----------------------------------
+}
+
+/*-----------------------------------------------
+ 03.03.2004 11:44
+-----------------------------------------------*/
+css::uno::Any SAL_CALL BaseContainer::getByName(const ::rtl::OUString& sItem)
+ throw (css::container::NoSuchElementException,
+ css::lang::WrappedTargetException ,
+ css::uno::RuntimeException )
+{
+ if (!sItem.getLength())
+ throw css::container::NoSuchElementException(
+ ::rtl::OUString::createFromAscii("An empty item cant be part of this cache!"),
+ css::uno::Reference< css::uno::XInterface >(static_cast< css::container::XNameAccess* >(this), css::uno::UNO_QUERY));
+
+ css::uno::Any aValue;
+
+ impl_loadOnDemand();
+
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ CacheItem aItem;
+ try
+ {
+ FilterCache* pCache = impl_getWorkingCache();
+ aItem = pCache->getItem(m_eType, sItem);
+ pCache->addStatePropsToItem(m_eType, sItem, aItem); // add implicit props "Finalized"/"Mandatory"
+ }
+ catch(const css::container::NoSuchElementException& exNotExist)
+ {
+ throw exNotExist;
+ }
+ catch(const css::uno::Exception&)
+ {
+ // TODO invalid cache!? How should it be handled right?
+ aItem.clear();
+ }
+
+ aValue <<= aItem.getAsPackedPropertyValueList();
+ // <- SAFE
+
+ return aValue;
+}
+
+/*-----------------------------------------------
+ 03.03.2004 11:46
+-----------------------------------------------*/
+css::uno::Sequence< ::rtl::OUString > SAL_CALL BaseContainer::getElementNames()
+ throw (css::uno::RuntimeException)
+{
+ css::uno::Sequence< ::rtl::OUString > lNames;
+
+ impl_loadOnDemand();
+
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ try
+ {
+ FilterCache* pCache = impl_getWorkingCache();
+ OUStringList lKeys = pCache->getItemNames(m_eType);
+ lKeys >> lNames;
+ }
+ catch(const css::uno::Exception&)
+ {
+ // invalid cache!?
+ lNames.realloc(0);
+ }
+
+ // <- SAFE
+
+ return lNames;
+}
+
+/*-----------------------------------------------
+ 03.03.2004 11:47
+-----------------------------------------------*/
+sal_Bool SAL_CALL BaseContainer::hasByName(const ::rtl::OUString& sItem)
+ throw (css::uno::RuntimeException)
+{
+ sal_Bool bHasOne = sal_False;
+
+ impl_loadOnDemand();
+
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ try
+ {
+ FilterCache* pCache = impl_getWorkingCache();
+ bHasOne = pCache->hasItem(m_eType, sItem);
+ }
+ catch(const css::uno::Exception&)
+ {
+ // invalid cache!?
+ bHasOne = sal_False;
+ }
+
+ // <- SAFE
+
+ return bHasOne;
+}
+
+/*-----------------------------------------------
+ 02.07.2003 10:18
+-----------------------------------------------*/
+css::uno::Type SAL_CALL BaseContainer::getElementType()
+ throw (css::uno::RuntimeException)
+{
+ // no lock neccessary - because the type of our items
+ // is fix! no internal call or member needed ...
+ return ::getCppuType(static_cast< css::uno::Sequence< css::beans::PropertyValue >* >(NULL));
+}
+
+/*-----------------------------------------------
+ 03.03.2004 11:48
+-----------------------------------------------*/
+sal_Bool SAL_CALL BaseContainer::hasElements()
+ throw (css::uno::RuntimeException)
+{
+ sal_Bool bHasSome = sal_False;
+
+ impl_loadOnDemand();
+
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ try
+ {
+ FilterCache* pCache = impl_getWorkingCache();
+ bHasSome = pCache->hasItems(m_eType);
+ }
+ catch(const css::uno::Exception&)
+ {
+ // invalid cache?!
+ bHasSome = sal_False;
+ }
+
+ // <- SAFE
+
+ return bHasSome;
+}
+
+/*-----------------------------------------------
+ 15.07.2003 09:21
+-----------------------------------------------*/
+css::uno::Reference< css::container::XEnumeration > SAL_CALL BaseContainer::createSubSetEnumerationByQuery(const ::rtl::OUString& /* sQuery */ )
+ throw (css::uno::RuntimeException)
+{
+ OSL_ENSURE(sal_False, "not pure virtual ... but not realy implemented .-)");
+
+ ::comphelper::OEnumerationByName* pEnum = new ::comphelper::OEnumerationByName(this, css::uno::Sequence< ::rtl::OUString >());
+ return css::uno::Reference< css::container::XEnumeration >(static_cast< css::container::XEnumeration* >(pEnum), css::uno::UNO_QUERY);
+}
+
+/*-----------------------------------------------
+ 15.07.2003 10:15
+-----------------------------------------------*/
+css::uno::Reference< css::container::XEnumeration > SAL_CALL BaseContainer::createSubSetEnumerationByProperties(const css::uno::Sequence< css::beans::NamedValue >& lProperties)
+ throw (css::uno::RuntimeException)
+{
+ css::uno::Reference< css::container::XEnumeration > xEnum;
+ OUStringList lKeys;
+
+ impl_loadOnDemand();
+
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ try
+ {
+ // convert the given properties first to our internal representation
+ CacheItem lProps;
+ lProps << lProperties;
+
+ // search the key names of all items, where its properties match
+ // the given ones in its minimum
+ FilterCache* pCache = impl_getWorkingCache();
+ lKeys = pCache->getMatchingItemsByProps(m_eType, lProps);
+ }
+ catch(const css::uno::Exception&)
+ {
+ // invalid cache, internal failure, wrong conversion ...!?
+ // doesnt matter
+ lKeys.clear();
+ }
+
+ // <- SAFE
+
+ // create a specialized enumeration helper, which
+ // provides the collected informations outside.
+ // It hold a reference to us ... and call our container interface directly.
+ // be aware of some direct callbacks if it will be created :-)
+
+ /* Note: Its not allowed to return NULL. Because an empty enumeration
+ transport the same information but make no trouble outside.
+ Further its easiear to work directly with the return value
+ instaed of checking of NULL returns! */
+
+ css::uno::Sequence< ::rtl::OUString > lSubSet;
+ lKeys >> lSubSet;
+ ::comphelper::OEnumerationByName* pEnum = new ::comphelper::OEnumerationByName(this, lSubSet);
+ return css::uno::Reference< css::container::XEnumeration >(static_cast< css::container::XEnumeration* >(pEnum), css::uno::UNO_QUERY);
+}
+
+/*-----------------------------------------------
+ 07.03.2004 10:48
+-----------------------------------------------*/
+void SAL_CALL BaseContainer::flush()
+ throw (css::uno::RuntimeException)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ if (!m_pFlushCache)
+ throw css::lang::WrappedTargetRuntimeException(
+ ::rtl::OUString::createFromAscii("Cant guarantee cache consistency. Special flush container does not exists!"),
+ dynamic_cast< css::container::XNameAccess* >(this),
+ css::uno::Any());
+
+ try
+ {
+ m_pFlushCache->flush();
+ // Take over all changes into the global cache and
+ // forget the clone.
+ /* TODO
+ -think about me
+ If the global cache gets this information via listener,
+ we should remove this method!
+ */
+ m_rCache->takeOver(*m_pFlushCache);
+ }
+ catch(const css::uno::Exception& ex)
+ {
+ // Dont remove the clone. May be the outside
+ // user whish to repair it now and calls flush()
+ // later again ...
+
+ throw css::lang::WrappedTargetRuntimeException(
+ ::rtl::OUString::createFromAscii("Flush rejected by internal container."),
+ dynamic_cast< css::container::XNameAccess* >(this),
+ css::uno::makeAny(ex));
+ }
+
+ delete m_pFlushCache;
+ m_pFlushCache = NULL;
+
+ css::uno::Reference< css::util::XRefreshable > xRefreshBroadcaster = m_xRefreshBroadcaster;
+
+ aLock.clear();
+ // <- SAFE
+
+ if (xRefreshBroadcaster.is())
+ xRefreshBroadcaster->refresh();
+
+ // notify listener outside the lock!
+ // The used listener helper lives if we live
+ // and is threadsafe by itself.
+ // Further its not a good idea to hold the own lock
+ // if an outside object is called :-)
+ css::lang::EventObject aSource (static_cast< css::util::XFlushable* >(this));
+ ::cppu::OInterfaceContainerHelper* pContainer = m_lListener.getContainer(::getCppuType(static_cast< css::uno::Reference< css::util::XFlushListener >* >(NULL)));
+ if (pContainer)
+ {
+ ::cppu::OInterfaceIteratorHelper pIterator(*pContainer);
+ while (pIterator.hasMoreElements())
+ {
+ try
+ {
+ // ... this pointer can be interesting to find out, where will be called as listener
+ // Dont optimize it to a direct iterator cast :-)
+ css::util::XFlushListener* pListener = (css::util::XFlushListener*)pIterator.next();
+ pListener->flushed(aSource);
+ }
+ catch(const css::uno::Exception&)
+ {
+ // ignore any "damaged" flush listener!
+ // May its remote reference is broken ...
+ pIterator.remove();
+ }
+ }
+ }
+}
+
+/*-----------------------------------------------
+ 02.07.2003 12:16
+-----------------------------------------------*/
+void SAL_CALL BaseContainer::addFlushListener(const css::uno::Reference< css::util::XFlushListener >& xListener)
+ throw (css::uno::RuntimeException)
+{
+ // no locks neccessary
+ // used helper lives if we live and is threadsafe by itself ...
+ m_lListener.addInterface(::getCppuType(static_cast< css::uno::Reference< css::util::XFlushListener >* >(NULL)),
+ xListener );
+}
+
+/*-----------------------------------------------
+ 02.07.2003 12:18
+-----------------------------------------------*/
+void SAL_CALL BaseContainer::removeFlushListener(const css::uno::Reference< css::util::XFlushListener >& xListener)
+ throw (css::uno::RuntimeException)
+{
+ // no locks neccessary
+ // used helper lives if we live and is threadsafe by itself ...
+ m_lListener.removeInterface(::getCppuType(static_cast< css::uno::Reference< css::util::XFlushListener >* >(NULL)),
+ xListener );
+}
+
+ } // namespace config
+} // namespace filter
diff --git a/filter/source/config/cache/basecontainer.hxx b/filter/source/config/cache/basecontainer.hxx
new file mode 100644
index 000000000000..e3730ce662e4
--- /dev/null
+++ b/filter/source/config/cache/basecontainer.hxx
@@ -0,0 +1,323 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __FILTER_CONFIG_BASECONTAINER_HXX_
+#define __FILTER_CONFIG_BASECONTAINER_HXX_
+
+//_______________________________________________
+// includes
+
+#include "filtercache.hxx"
+#include <com/sun/star/uno/Exception.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/util/XRefreshable.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/container/XNameContainer.hpp>
+#include <com/sun/star/container/XContainerQuery.hpp>
+#include <com/sun/star/util/XFlushable.hpp>
+#include <cppuhelper/interfacecontainer.h>
+#include <salhelper/singletonref.hxx>
+#include <cppuhelper/implbase4.hxx>
+#include <cppuhelper/weakref.hxx>
+#include <rtl/ustring.hxx>
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+//_______________________________________________
+// definitions
+
+//_______________________________________________
+
+/** @short implements the interface css::container::XNameContainer
+ on top of a FilterCache reference.
+
+ @descr This class can be used as base for own service implementations,
+ which must provide read/write access to the filter configuration.
+ Parameters regulate read/write access, which sub set of informations
+ should be available etc.
+
+ @attention The base class BaseLock must be the first of declared ones.
+ Otherwhise we cant be shure, that our own mutex member (which is
+ present by this base class!) was full initialized inside our own
+ ctor as first!
+ */
+class BaseContainer : public BaseLock
+ , public ::cppu::WeakImplHelper4< css::lang::XServiceInfo ,
+ css::container::XNameContainer , // => XNameReplace => XNameAccess => XElementAccess
+ css::container::XContainerQuery ,
+ css::util::XFlushable >
+{
+ //-------------------------------------------
+ // member
+
+ protected:
+
+ /** @short reference to an uno service manager, which can be used
+ to create own needed services. */
+ css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR;
+
+ // TODO
+ css::uno::WeakReference< css::util::XRefreshable > m_xRefreshBroadcaster;
+
+ /** @short the implementation name of our derived class, which we provide
+ at the interface XServiceInfo of our class ... */
+ ::rtl::OUString m_sImplementationName;
+
+ /** @short the list of supported uno service names of our derived class, which we provide
+ at the interface XServiceInfo of our class ... */
+ css::uno::Sequence< ::rtl::OUString > m_lServiceNames;
+
+ /** @short reference(!) to a singleton filter cache implementation,
+ which is used to work with the underlying configuration. */
+ ::salhelper::SingletonRef< FilterCache > m_rCache;
+
+ /** @short local filter cache, which is used to collect changes on the
+ filter configuration first and flush it later.
+
+ @descr Normaly this member isnt used nor initialized. Thats true,
+ if this container is used for reading only. The first write access
+ (e.g. by calling insertByName()) creates a copy of the current
+ global cache m_rCache to initialize the m_pFlushCache member.
+
+ Afterwards only the flush cache copy is used. Inside flush() this
+ copy will be removed and m_rCache can be used again.
+
+ m_pFlushCache and m_rCache must not be synchronized manually here.
+ m_rCache listen on the global configuration, where m_pFlushCache
+ write its data. m_rCache update itself automaticly.
+ */
+ FilterCache* m_pFlushCache;
+
+ /** @short specify, which sub container of the used filter cache
+ must be wrapped by this container interface. */
+ FilterCache::EItemType m_eType;
+
+ /** @short holds all listener, which are registered at this instance. */
+ ::cppu::OMultiTypeInterfaceContainerHelper m_lListener;
+
+ /** @short hold at least on filter cache instance alive and
+ prevent he office from unloading this cache if no filter
+ is currently used.*/
+ static ::salhelper::SingletonRef< FilterCache >* m_pPerformanceOptimizer;
+
+ //-------------------------------------------
+ // native interface
+
+ public:
+
+ //---------------------------------------
+ // ctor/dtor
+
+ /** @short standard ctor.
+
+ @descr Because mostly this class is used as base class for own service
+ implementations in combination with a ImplInheritanceHelper2 template ...
+ there is no way to provide some initializing data through the ctor :-(
+ This base class will be created inside its default ctor and must be
+ initialized with its needed parameters explicitly by calling: "init()".
+
+ @see init()
+ */
+ BaseContainer();
+
+ //---------------------------------------
+
+ /** @short standard dtor.
+ */
+ virtual ~BaseContainer();
+
+ //---------------------------------------
+
+ /** @short initialize this generic intsnace with some specialized values
+ from our derived object.
+
+ @descr Because an outside class must use ImplInheritanceHelper2 template to
+ use us a base class ... and there is no way to pass such initializing
+ parameters trough a required default ctor ... we must be initialized
+ by this special method. Of course this method must be called first before
+ any other interface method is used.
+
+ @param xSMGR
+ reference to the uno service manager, which created this service instance.
+
+ @param sImplementationName
+ the implementation name of our derived class, which we provide
+ at the interface XServiceInfo of our class ...
+
+ @param lServiceNames
+ the list of supported uno service names of our derived class, which we provide
+ at the interface XServiceInfo of our class ...
+
+ @param eType
+ specify, which sub container of the used filter cache
+ must be wrapped by this container interface.
+ */
+ virtual void init(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ,
+ const ::rtl::OUString& sImplementationName,
+ const css::uno::Sequence< ::rtl::OUString >& lServiceNames ,
+ FilterCache::EItemType eType );
+
+ //-------------------------------------------
+ // helper
+
+ protected:
+
+ //---------------------------------------
+
+ /** @short check if the underlying configuration data was already loaded
+ and do it if neccessary automaticly.
+ */
+ void impl_loadOnDemand();
+
+ //---------------------------------------
+
+ /** @short it creates the global instance m_pFilterCache, which is a copy
+ of the global instance m_rCache, and will be used to change the
+ configuration.
+
+ @descr If no exception occures, its guaranteed, that the member m_rFlushCache
+ was initialized right and can be used further.
+ */
+ void impl_initFlushMode()
+ throw (css::uno::RuntimeException);
+
+ //---------------------------------------
+
+ /** @short returns a pointer to the current used cache member.
+
+ @descr Its a point to the FilterCache instance behind m_pFlushCache
+ or m_rCache.
+
+ @note The lifetime of this pointer is restricted to the time, where
+ the mutex of this BaseContainer instance is locked.
+ Otherwhise may be the interface method flush() will destroy
+ m_pFlushCache and the here returned pointer will be invalid!
+
+ Use:
+
+ Guard aLock(m_aLock);
+ FilterCache* p = impl_getWorkingCache();
+ p->doSomething();
+ aLock.clear();
+ // after this point p cant b e guaranteed any longer!
+ */
+ FilterCache* impl_getWorkingCache() const;
+
+ //-------------------------------------------
+ // uno interface
+
+ public:
+
+ //---------------------------------------
+ // XServiceInfo
+
+ virtual ::rtl::OUString SAL_CALL getImplementationName()
+ throw (css::uno::RuntimeException);
+
+ virtual sal_Bool SAL_CALL supportsService(const ::rtl::OUString& sServiceName)
+ throw (css::uno::RuntimeException);
+
+ virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
+ throw (css::uno::RuntimeException);
+
+ //---------------------------------------
+ // XNameContainer
+
+ virtual void SAL_CALL insertByName(const ::rtl::OUString& sItem ,
+ const css::uno::Any& aValue)
+ throw (css::lang::IllegalArgumentException ,
+ css::container::ElementExistException,
+ css::lang::WrappedTargetException ,
+ css::uno::RuntimeException );
+
+ virtual void SAL_CALL removeByName(const ::rtl::OUString& sItem)
+ throw (css::container::NoSuchElementException,
+ css::lang::WrappedTargetException ,
+ css::uno::RuntimeException );
+
+ //---------------------------------------
+ // XNameReplace
+
+ virtual void SAL_CALL replaceByName(const ::rtl::OUString& sItem ,
+ const css::uno::Any& aValue)
+ throw (css::lang::IllegalArgumentException ,
+ css::container::NoSuchElementException,
+ css::lang::WrappedTargetException ,
+ css::uno::RuntimeException );
+
+ //---------------------------------------
+ // XElementAccess
+
+ virtual css::uno::Any SAL_CALL getByName(const ::rtl::OUString& sItem)
+ throw (css::container::NoSuchElementException,
+ css::lang::WrappedTargetException ,
+ css::uno::RuntimeException );
+
+ virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL getElementNames()
+ throw (css::uno::RuntimeException);
+
+ virtual sal_Bool SAL_CALL hasByName(const ::rtl::OUString& sItem)
+ throw (css::uno::RuntimeException);
+
+ virtual css::uno::Type SAL_CALL getElementType()
+ throw (css::uno::RuntimeException);
+
+ virtual sal_Bool SAL_CALL hasElements()
+ throw (css::uno::RuntimeException);
+
+ //---------------------------------------
+ // XContainerQuery
+
+ // must be implemented realy by derived class ...
+ // We implement return of an empty result here only!
+ // But we show an assertion :-)
+ virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createSubSetEnumerationByQuery(const ::rtl::OUString& sQuery)
+ throw (css::uno::RuntimeException);
+
+ virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createSubSetEnumerationByProperties(const css::uno::Sequence< css::beans::NamedValue >& lProperties)
+ throw (css::uno::RuntimeException);
+
+ //---------------------------------------
+ // XFlushable
+
+ virtual void SAL_CALL flush()
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL addFlushListener(const css::uno::Reference< css::util::XFlushListener >& xListener)
+ throw (css::uno::RuntimeException);
+
+ virtual void SAL_CALL removeFlushListener(const css::uno::Reference< css::util::XFlushListener >& xListener)
+ throw (css::uno::RuntimeException);
+};
+
+ } // namespace config
+} // namespace filter
+
+#endif // __FILTER_CONFIG_BASECONTAINER_HXX_
diff --git a/filter/source/config/cache/cacheitem.cxx b/filter/source/config/cache/cacheitem.cxx
new file mode 100644
index 000000000000..c752516df10f
--- /dev/null
+++ b/filter/source/config/cache/cacheitem.cxx
@@ -0,0 +1,443 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_filter.hxx"
+
+#include "cacheitem.hxx"
+#include "macros.hxx"
+#include "constant.hxx"
+
+//_______________________________________________
+// includes
+#include <com/sun/star/uno/Sequence.h>
+
+#ifndef _COM_SUN_STAR_BEANS_PROPERTYVALUE_Hpp_
+#include <com/sun/star/beans/PropertyValue.hpp>
+#endif
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+namespace css = ::com::sun::star;
+
+//_______________________________________________
+// definitions
+
+/*-----------------------------------------------
+ 04.11.2003 09:27
+-----------------------------------------------*/
+CacheItem::CacheItem()
+ : SequenceAsHashMap()
+{
+}
+
+/*-----------------------------------------------
+ 26.06.2003 11:37
+-----------------------------------------------*/
+void CacheItem::update(const CacheItem& rUpdateItem)
+{
+ for(const_iterator pItUpdate = rUpdateItem.begin();
+ pItUpdate != rUpdateItem.end() ;
+ ++pItUpdate )
+ {
+ iterator pItThis = this->find(pItUpdate->first);
+ if (pItThis == this->end())
+ (*this)[pItUpdate->first] = pItUpdate->second; // add new prop
+ else
+ pItThis->second = pItUpdate->second; // change value of existing prop
+ }
+}
+
+/*-----------------------------------------------
+ 26.11.2003 13:27
+-----------------------------------------------*/
+void CacheItem::validateUINames(const ::rtl::OUString& sActLocale)
+{
+ if (!sActLocale.getLength())
+ return;
+
+ // 1) check UINames first
+ const_iterator pUINames = find(PROPNAME_UINAMES);
+ const_iterator pUIName = find(PROPNAME_UINAME );
+
+ ::comphelper::SequenceAsHashMap lUINames;
+ if (pUINames != end())
+ lUINames << pUINames->second;
+
+ ::rtl::OUString sUIName;
+ if (pUIName != end())
+ pUIName->second >>= sUIName;
+
+ if (sUIName.getLength())
+ {
+ // 1a) set UIName inside list of UINames for current locale
+ lUINames[sActLocale] <<= sUIName;
+ }
+ else if (lUINames.size()>0)
+ {
+ // 1b) or get it from this list, if it not exist!
+ lUINames[sActLocale] >>= sUIName;
+ }
+
+ (*this)[PROPNAME_UINAMES] <<= lUINames.getAsConstPropertyValueList();
+ (*this)[PROPNAME_UINAME ] <<= sUIName;
+}
+
+/*-----------------------------------------------
+ 12.01.2004 13:32
+-----------------------------------------------*/
+css::uno::Sequence< css::beans::PropertyValue > CacheItem::getAsPackedPropertyValueList()
+{
+ sal_Int32 c = (sal_Int32)size();
+ sal_Int32 i = 0;
+
+ css::uno::Sequence< css::beans::PropertyValue > lList(c);
+ css::beans::PropertyValue* pList = lList.getArray();
+
+ for (const_iterator pProp = begin();
+ pProp != end() ;
+ ++pProp )
+ {
+ const ::rtl::OUString& rName = pProp->first;
+ const css::uno::Any& rValue = pProp->second;
+
+ if (!rValue.hasValue())
+ continue;
+
+ pList[i].Name = rName ;
+ pList[i].Value = rValue;
+ ++i;
+ }
+ lList.realloc(i);
+
+ return lList;
+}
+
+/*-----------------------------------------------
+ 17.07.2003 08:27
+-----------------------------------------------*/
+sal_Bool isSubSet(const css::uno::Any& aSubSet,
+ const css::uno::Any& aSet )
+{
+ css::uno::Type aT1 = aSubSet.getValueType();
+ css::uno::Type aT2 = aSet.getValueType();
+
+ if (!aT1.equals(aT2))
+ {
+ _FILTER_CONFIG_LOG_("isSubSet() ... types of any values are different => return FALSE\n")
+ return sal_False;
+ }
+
+ css::uno::TypeClass aTypeClass = aT1.getTypeClass();
+ switch(aTypeClass)
+ {
+ //---------------------------------------
+ case css::uno::TypeClass_BOOLEAN :
+ case css::uno::TypeClass_BYTE :
+ case css::uno::TypeClass_SHORT :
+ case css::uno::TypeClass_UNSIGNED_SHORT :
+ case css::uno::TypeClass_LONG :
+ case css::uno::TypeClass_UNSIGNED_LONG :
+ case css::uno::TypeClass_HYPER :
+ case css::uno::TypeClass_UNSIGNED_HYPER :
+ case css::uno::TypeClass_FLOAT :
+ case css::uno::TypeClass_DOUBLE :
+ {
+ sal_Bool bIs = (aSubSet == aSet);
+ _FILTER_CONFIG_LOG_1_("isSubSet() ... check for atomic types => return %s\n", bIs ? "TRUE" : "FALSE")
+ return bIs;
+ }
+
+ //---------------------------------------
+ case css::uno::TypeClass_STRING :
+ {
+ ::rtl::OUString v1;
+ ::rtl::OUString v2;
+
+ if (
+ (aSubSet >>= v1) &&
+ (aSet >>= v2)
+ )
+ {
+ sal_Bool bIs = (v1.equals(v2));
+ _FILTER_CONFIG_LOG_1_("isSubSet() ... check for string types => return %s\n", bIs ? "TRUE" : "FALSE")
+ return bIs;
+ }
+ }
+ break;
+
+ //---------------------------------------
+ case css::uno::TypeClass_ANY :
+ {
+ css::uno::Any v1;
+ css::uno::Any v2;
+
+ if (
+ (aSubSet >>= v1) &&
+ (aSet >>= v2)
+ )
+ {
+ sal_Bool bIs = (isSubSet(v1, v2));
+ _FILTER_CONFIG_LOG_1_("isSubSet() ... check for packed any types => return %s\n", bIs ? "TRUE" : "FALSE")
+ return bIs;
+ }
+ }
+ break;
+
+ //---------------------------------------
+ case css::uno::TypeClass_STRUCT :
+ {
+ css::beans::PropertyValue p1;
+ css::beans::PropertyValue p2;
+
+ if (
+ (aSubSet >>= p1) &&
+ (aSet >>= p2)
+ )
+ {
+ sal_Bool bIs = (
+ (p1.Name.equals(p2.Name) ) &&
+ (isSubSet(p1.Value, p2.Value))
+ );
+ _FILTER_CONFIG_LOG_1_("isSubSet() ... check for structured types [PropertyValue] => return %s\n", bIs ? "TRUE" : "FALSE")
+ return bIs;
+ }
+
+ css::beans::NamedValue n1;
+ css::beans::NamedValue n2;
+
+ if (
+ (aSubSet >>= n1) &&
+ (aSet >>= n2)
+ )
+ {
+ sal_Bool bIs = (
+ (n1.Name.equals(n2.Name) ) &&
+ (isSubSet(n1.Value, n2.Value))
+ );
+ _FILTER_CONFIG_LOG_1_("isSubSet() ... check for structured types [NamedValue] => return %s\n", bIs ? "TRUE" : "FALSE")
+ return bIs;
+ }
+ }
+ break;
+
+ //---------------------------------------
+ case css::uno::TypeClass_SEQUENCE :
+ {
+ css::uno::Sequence< ::rtl::OUString > uno_s1;
+ css::uno::Sequence< ::rtl::OUString > uno_s2;
+
+ if (
+ (aSubSet >>= uno_s1) &&
+ (aSet >>= uno_s2)
+ )
+ {
+ OUStringList stl_s1(uno_s1);
+ OUStringList stl_s2(uno_s2);
+
+ for (OUStringList::const_iterator it1 = stl_s1.begin();
+ it1 != stl_s1.end() ;
+ ++it1 )
+ {
+ if (::std::find(stl_s2.begin(), stl_s2.end(), *it1) == stl_s2.end())
+ {
+ _FILTER_CONFIG_LOG_1_("isSubSet() ... check for list types [OUString] ... dont found \"%s\" => return FALSE\n", _FILTER_CONFIG_TO_ASCII_(*it1))
+ return sal_False;
+ }
+ _FILTER_CONFIG_LOG_1_("isSubSet() ... check for list types [OUString] ... found \"%s\" => continue loop\n", _FILTER_CONFIG_TO_ASCII_(*it1))
+ }
+ _FILTER_CONFIG_LOG_("isSubSet() ... check for list types [OUString] => return TRUE\n")
+ return sal_True;
+ }
+
+ css::uno::Sequence< css::beans::PropertyValue > uno_p1;
+ css::uno::Sequence< css::beans::PropertyValue > uno_p2;
+
+ if (
+ (aSubSet >>= uno_p1) &&
+ (aSet >>= uno_p2)
+ )
+ {
+ ::comphelper::SequenceAsHashMap stl_p1(uno_p1);
+ ::comphelper::SequenceAsHashMap stl_p2(uno_p2);
+
+ for (::comphelper::SequenceAsHashMap::const_iterator it1 = stl_p1.begin();
+ it1 != stl_p1.end() ;
+ ++it1 )
+ {
+ ::comphelper::SequenceAsHashMap::const_iterator it2 = stl_p2.find(it1->first);
+ if (it2 == stl_p2.end())
+ {
+ _FILTER_CONFIG_LOG_1_("isSubSet() ... check for list types [PropertyValue] ... dont found \"%s\" => return FALSE\n", _FILTER_CONFIG_TO_ASCII_(it1->first))
+ return sal_False;
+ }
+ if (!isSubSet(it1->second, it2->second))
+ {
+ _FILTER_CONFIG_LOG_1_("isSubSet() ... check for list types [PropertyValue] ... found \"%s\" but has different value => return FALSE\n", _FILTER_CONFIG_TO_ASCII_(it1->first))
+ return sal_False;
+ }
+ _FILTER_CONFIG_LOG_1_("isSubSet() ... check for list types [PropertyValue] ... found \"%s\" with right value => continue loop\n", _FILTER_CONFIG_TO_ASCII_(it1->first))
+ }
+ _FILTER_CONFIG_LOG_("isSubSet() ... check for list types [PropertyValue] => return TRUE\n")
+ return sal_True;
+ }
+
+ css::uno::Sequence< css::beans::NamedValue > uno_n1;
+ css::uno::Sequence< css::beans::NamedValue > uno_n2;
+
+ if (
+ (aSubSet >>= uno_n1) &&
+ (aSet >>= uno_n2)
+ )
+ {
+ ::comphelper::SequenceAsHashMap stl_n1(uno_n1);
+ ::comphelper::SequenceAsHashMap stl_n2(uno_n2);
+
+ for (::comphelper::SequenceAsHashMap::const_iterator it1 = stl_n1.begin();
+ it1 != stl_n1.end() ;
+ ++it1 )
+ {
+ ::comphelper::SequenceAsHashMap::const_iterator it2 = stl_n2.find(it1->first);
+ if (it2 == stl_n2.end())
+ {
+ _FILTER_CONFIG_LOG_1_("isSubSet() ... check for list types [NamedValue] ... dont found \"%s\" => return FALSE\n", _FILTER_CONFIG_TO_ASCII_(it1->first))
+ return sal_False;
+ }
+ if (!isSubSet(it1->second, it2->second))
+ {
+ _FILTER_CONFIG_LOG_1_("isSubSet() ... check for list types [NamedValue] ... found \"%s\" but has different value => return FALSE\n", _FILTER_CONFIG_TO_ASCII_(it1->first))
+ return sal_False;
+ }
+ _FILTER_CONFIG_LOG_1_("isSubSet() ... check for list types [NamedValue] ... found \"%s\" with right value => continue loop\n", _FILTER_CONFIG_TO_ASCII_(it1->first))
+ }
+ _FILTER_CONFIG_LOG_("isSubSet() ... check for list types [NamedValue] => return TRUE\n")
+ return sal_True;
+ }
+ }
+ break;
+/*
+ case css::uno::TypeClass_CHAR :
+ case css::uno::TypeClass_VOID :
+ case css::uno::TypeClass_TYPE :
+ case css::uno::TypeClass_ENUM :
+ case css::uno::TypeClass_TYPEDEF :
+ case css::uno::TypeClass_UNION :
+ case css::uno::TypeClass_EXCEPTION :
+ case css::uno::TypeClass_ARRAY :
+ case css::uno::TypeClass_INTERFACE :
+ case css::uno::TypeClass_SERVICE :
+ case css::uno::TypeClass_MODULE :
+ case css::uno::TypeClass_INTERFACE_METHOD :
+ case css::uno::TypeClass_INTERFACE_ATTRIBUTE :
+ case css::uno::TypeClass_UNKNOWN :
+ case css::uno::TypeClass_PROPERTY :
+ case css::uno::TypeClass_CONSTANT :
+ case css::uno::TypeClass_CONSTANTS :
+ case css::uno::TypeClass_SINGLETON :
+*/
+ default: break;
+ }
+
+ OSL_ENSURE(sal_False, "isSubSet() ... this point should not be reached!");
+ return sal_False;
+}
+
+/*-----------------------------------------------
+ 14.07.2003 10:24
+-----------------------------------------------*/
+sal_Bool CacheItem::haveProps(const CacheItem& lProps) const
+{
+ for (const_iterator pIt = lProps.begin();
+ pIt != lProps.end() ;
+ ++pIt )
+ {
+ // i) one required property does not exist at this item => return false
+ const_iterator pItThis = this->find(pIt->first);
+ if (pItThis == this->end())
+ {
+ _FILTER_CONFIG_LOG_1_("CacheItem::haveProps() ... dont found \"%s\" => return FALSE\n", _FILTER_CONFIG_TO_ASCII_(pIt->first))
+ return sal_False;
+ }
+
+ // ii) one item does not have the right value => return false
+ if (!isSubSet(pIt->second, pItThis->second))
+ {
+ _FILTER_CONFIG_LOG_1_("CacheItem::haveProps() ... item \"%s\" has different value => return FALSE\n", _FILTER_CONFIG_TO_ASCII_(pIt->first))
+ return sal_False;
+ }
+ }
+
+ // this method was not breaked before =>
+ // the given property set seems to match with our
+ // own properties in its minimum => return TRUE
+ _FILTER_CONFIG_LOG_("CacheItem::haveProps() ... => return TRUE\n")
+ return sal_True;
+}
+
+/*-----------------------------------------------
+ 14.07.2003 10:43
+-----------------------------------------------*/
+sal_Bool CacheItem::dontHaveProps(const CacheItem& lProps) const
+{
+ for (const_iterator pIt = lProps.begin();
+ pIt != lProps.end() ;
+ ++pIt )
+ {
+ // i) one item does not exists in general
+ // => continue with next one, because
+ // "excluding" means ... "dont have it".
+ // And "not exists" match to "dont have it".
+ const_iterator pItThis = this->find(pIt->first);
+ if (pItThis == this->end())
+ {
+ _FILTER_CONFIG_LOG_1_("CacheItem::dontHaveProps() ... not found \"%s\" => continue loop!\n", _FILTER_CONFIG_TO_ASCII_(pIt->first))
+ continue;
+ }
+
+ // ii) one item have the right value => return false
+ // because this item has the requested property ...
+ // But we checked for "dont have it" here.
+ if (isSubSet(pIt->second, pItThis->second))
+ {
+ _FILTER_CONFIG_LOG_1_("CacheItem::dontHaveProps() ... item \"%s\" has same value => return FALSE!\n", _FILTER_CONFIG_TO_ASCII_(pIt->first))
+ return sal_False;
+ }
+ }
+
+ // this method was not breaked before =>
+ // That means: this item has no matching property
+ // of the given set. It "dont have" it ... => return true.
+ _FILTER_CONFIG_LOG_("CacheItem::dontHaveProps() ... => return TRUE\n")
+ return sal_True;
+}
+
+ } // namespace config
+} // namespace filter
diff --git a/filter/source/config/cache/cacheitem.hxx b/filter/source/config/cache/cacheitem.hxx
new file mode 100644
index 000000000000..61b26b24b2d4
--- /dev/null
+++ b/filter/source/config/cache/cacheitem.hxx
@@ -0,0 +1,261 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __FILTER_CONFIG_CACHEITEM_HXX_
+#define __FILTER_CONFIG_CACHEITEM_HXX_
+
+//_______________________________________________
+// includes
+
+#include <hash_map>
+#include <deque>
+#include <list>
+#include <com/sun/star/uno/Any.h>
+#include <com/sun/star/uno/Sequence.h>
+#include <com/sun/star/beans/PropertyValue.hpp>
+#include <com/sun/star/beans/NamedValue.hpp>
+#include <comphelper/sequenceasvector.hxx>
+#include <comphelper/sequenceashashmap.hxx>
+#include <osl/mutex.hxx>
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+namespace css = ::com::sun::star;
+
+//_______________________________________________
+// definitions
+
+/** @short Must be used as first derived base class
+ to get a full initialized mutex member,
+ which can be used during the ctor runs too!
+ */
+struct BaseLock
+{
+ public:
+
+ // must be mutable to be useable in const environments too!
+ mutable ::osl::Mutex m_aLock;
+};
+
+
+typedef ::comphelper::SequenceAsVector< ::rtl::OUString > OUStringList;
+
+//_______________________________________________
+
+/** @short represent an item of a FilterCache
+ instance.
+
+ @descr This class is not threadsafe tp perform
+ operations, which use many instances of
+ this class! Synchronizations must be done outside.
+ */
+class CacheItem : public ::comphelper::SequenceAsHashMap
+{
+ //-------------------------------------------
+ public:
+
+ //---------------------------------------
+ /** @short creates an empty item.
+ */
+ CacheItem();
+
+ //---------------------------------------
+
+ /** @short update only properties, which are given by the
+ specified rItem.
+
+ @descr Update means: - add new properties
+ - change existing values
+
+ @param rUpdateItem
+ another cache item, which contains some special
+ properties, which should by used for updating
+ this one.
+ */
+ void update(const CacheItem& rUpdateItem);
+
+ //---------------------------------------
+
+ /** @short check, if the given properties exists
+ at this item.
+
+ @descr All properties are compared in its minimum.
+ E.g: string lists => only the requested items
+ are checked. Additional existing items are ignored.
+
+ @param lProps
+ contains all properties, which must exist at this item.
+
+ @return sal_True if all given properties exists
+ at this item; sal_False otherwhise.
+ */
+ sal_Bool haveProps(const CacheItem& lProps) const;
+
+ //---------------------------------------
+
+ /** @short check, if the given properties dont exists
+ at this item.
+
+ @descr All properties are compared in its minimum.
+ E.g: string lists => only the requested items
+ are checked. Additional existing items are ignored.
+
+ @param lProps
+ contains all properties, which should not exists at this item.
+
+ @return sal_False if at least on property exists at this item(!);
+ sal_True otherwhise.
+ */
+ sal_Bool dontHaveProps(const CacheItem& lProps) const;
+
+ //---------------------------------------
+
+ /** @short check, if the given properties dont exists
+ at this item.
+
+ @descr All properties are compared in its minimum.
+ E.g: string lists => only the specified items
+ are checked. Additional existing items are ignored.
+
+ @param lProps
+ contains all properties, which should be checked.
+
+ @return sal_True if all given properties dont exists
+ at this item; sal_False otherwhise.
+ */
+ sal_Bool excludeProps(const CacheItem& lProps) const;
+
+ //---------------------------------------
+
+ /** @short because we know two UIName properties
+ (a list with all locales and the value
+ for the current locale only), we must be shure
+ that the correspond together.
+
+ @param sActLocale
+ must specify the current office locale.
+ Its needed to adress the UIName property inside
+ the list of possible ones.
+ */
+ void validateUINames(const ::rtl::OUString& sActLocale);
+
+ //---------------------------------------
+
+ /** @short convert this structure to a seq< PropertyValue >
+ and ignore all empty properties!
+
+ @descr Normaly the converter routines of the base class
+ SequenceAsHashMap do this job already.
+ But it doesnt provide a "pack" mechanism to
+ ignore properties with empty (means "void") values.
+
+ @return css::uno::Sequence< css::beans::PropertyValue >
+ as a list of all properties of this cacheitem,
+ where empty properties was removed.
+ */
+ css::uno::Sequence< css::beans::PropertyValue > getAsPackedPropertyValueList();
+};
+
+//_______________________________________________
+
+/** @short represent an item list of a FilterCache
+ instance.
+ */
+typedef ::std::hash_map< ::rtl::OUString ,
+ CacheItem ,
+ ::rtl::OUStringHash ,
+ ::std::equal_to< ::rtl::OUString > > CacheItemList;
+
+//_______________________________________________
+
+/** @short supports registration of multiple key to
+ another string information.
+
+ @descr E.g. a list of internal type names can be registered
+ to an extension. Organization as an hash makes it
+ faster then searching inside vectors.
+
+ On the other side e.g. URLPattern cant be realy adressed
+ by a hash value ... because the use wildcards. But
+ there we need key-value pairs too, which cant be provided
+ by a pur vector!
+ */
+typedef ::std::hash_map< ::rtl::OUString ,
+ OUStringList ,
+ ::rtl::OUStringHash ,
+ ::std::equal_to< ::rtl::OUString > > CacheItemRegistration;
+
+//_______________________________________________
+
+/** @short is used to collect all matching types of an URL
+ during type detection.
+
+ @descr Every type in this list is combined with an information,
+ which property matched to the given URL. The user of this
+ structure can decide then, if a deep detection should be
+ supressed e.g. if an URLPattern was used.
+ */
+struct FlatDetectionInfo
+{
+ // the internal type name
+ ::rtl::OUString sType;
+
+ // this type was found by a matching the URL extension
+ sal_Bool bMatchByExtension;
+
+ // this type was found by a matching URL Pattern
+ sal_Bool bMatchByPattern;
+
+ // the user selected this type explicitly
+ sal_Bool bPreselectedAsType;
+
+ // the user selected this type implicit by selecting a corresponding filter
+ sal_Bool bPreselectedByFilter;
+
+ // the user selected this type implicit by selecting a corresponding office module
+ sal_Bool bPreselectedByDocumentService;
+
+ FlatDetectionInfo()
+ : sType (::rtl::OUString())
+ , bMatchByExtension (sal_False )
+ , bMatchByPattern (sal_False )
+ , bPreselectedAsType (sal_False )
+ , bPreselectedByFilter (sal_False )
+ , bPreselectedByDocumentService(sal_False )
+ {}
+};
+
+typedef ::std::list< FlatDetectionInfo > FlatDetection;
+
+ } // namespace config
+} // namespace filter
+
+#endif // __FILTER_CONFIG_CACHEITEM_HXX_
diff --git a/filter/source/config/cache/cacheupdatelistener.cxx b/filter/source/config/cache/cacheupdatelistener.cxx
new file mode 100644
index 000000000000..90bd89c9d864
--- /dev/null
+++ b/filter/source/config/cache/cacheupdatelistener.cxx
@@ -0,0 +1,246 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_filter.hxx"
+
+#include "cacheupdatelistener.hxx"
+#include "constant.hxx"
+
+//_______________________________________________
+// includes
+#include <com/sun/star/util/XChangesNotifier.hpp>
+#include <com/sun/star/util/XRefreshable.hpp>
+#include <salhelper/singletonref.hxx>
+#include <unotools/configpathes.hxx>
+#include <rtl/ustring.hxx>
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+namespace css = ::com::sun::star;
+
+//_______________________________________________
+// definitions
+
+/*-----------------------------------------------
+ 05.03.2004 08:36
+-----------------------------------------------*/
+CacheUpdateListener::CacheUpdateListener(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ,
+ const css::uno::Reference< css::uno::XInterface >& xConfigAccess,
+ FilterCache::EItemType eConfigType )
+ : BaseLock ( )
+ , m_xSMGR (xSMGR )
+ , m_rCache ( )
+ , m_xConfig (xConfigAccess)
+ , m_eConfigType(eConfigType )
+{
+}
+
+/*-----------------------------------------------
+ 05.03.2004 08:37
+-----------------------------------------------*/
+CacheUpdateListener::~CacheUpdateListener()
+{
+}
+
+/*-----------------------------------------------
+ 07.03.2004 07:59
+-----------------------------------------------*/
+void CacheUpdateListener::startListening()
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ css::uno::Reference< css::util::XChangesNotifier > xNotifier(m_xConfig, css::uno::UNO_QUERY);
+ aLock.clear();
+ // <- SAFE
+
+ if (!xNotifier.is())
+ return;
+
+ css::uno::Reference< css::util::XChangesListener > xThis(static_cast< css::util::XChangesListener* >(this), css::uno::UNO_QUERY_THROW);
+ xNotifier->addChangesListener(xThis);
+
+/*
+ css::uno::Reference< css::container::XContainer > xNotifier(xConfigAccess, css::uno::UNO_QUERY);
+ if (!xNotifier.is())
+ return;
+
+ css::uno::Reference< css::container::XContainerListener > xThis(static_cast< css::container::XContainerListener* >(this), css::uno::UNO_QUERY);
+ xNotifier->addContainerListener(xThis);
+*/
+}
+
+/*-----------------------------------------------
+ 07.03.2004 07:59
+-----------------------------------------------*/
+void CacheUpdateListener::stopListening()
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ css::uno::Reference< css::util::XChangesNotifier > xNotifier(m_xConfig, css::uno::UNO_QUERY);
+ aLock.clear();
+ // <- SAFE
+
+ if (!xNotifier.is())
+ return;
+
+ css::uno::Reference< css::util::XChangesListener > xThis(static_cast< css::util::XChangesListener* >(this), css::uno::UNO_QUERY);
+ xNotifier->removeChangesListener(xThis);
+
+/*
+ css::uno::Reference< css::container::XContainer > xNotifier(xConfigAccess, css::uno::UNO_QUERY);
+ if (!xNotifier.is())
+ return;
+
+ css::uno::Reference< css::container::XContainerListener > xThis(static_cast< css::container::XContainerListener* >(this), css::uno::UNO_QUERY);
+ xNotifier->removeContainerListener(xThis);
+*/
+}
+
+/*-----------------------------------------------
+ 07.03.2004 08:17
+-----------------------------------------------*/
+void SAL_CALL CacheUpdateListener::changesOccurred(const css::util::ChangesEvent& aEvent)
+ throw(css::uno::RuntimeException)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ // disposed ?
+ if ( ! m_xConfig.is())
+ return;
+
+ css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR = m_xSMGR;
+ FilterCache::EItemType eType = m_eConfigType;
+
+ aLock.clear();
+ // <- SAFE
+
+ OUStringList lChangedItems;
+ sal_Int32 c = aEvent.Changes.getLength();
+ sal_Int32 i = 0;
+
+ for (i=0; i<c; ++i)
+ {
+ const css::util::ElementChange& aChange = aEvent.Changes[i];
+
+ ::rtl::OUString sOrgPath ;
+ ::rtl::OUString sTempPath;
+
+ ::rtl::OUString sProperty;
+ ::rtl::OUString sNode ;
+ ::rtl::OUString sLocale ;
+
+ /* at least we must be able to retrieve 2 path elements
+ But sometimes the original path can contain 3 of them ... in case
+ a localized value was changed.
+ =>
+ 1) Filters/Filter["filtername"]/Property
+ 2) Filters/Filter["filtername"]/LocalizedProperty/Locale
+ */
+
+ aChange.Accessor >>= sOrgPath;
+ if ( ! ::utl::splitLastFromConfigurationPath(sOrgPath, sTempPath, sLocale))
+ continue;
+ sOrgPath = sTempPath;
+ if ( ! ::utl::splitLastFromConfigurationPath(sOrgPath, sTempPath, sProperty))
+ {
+ sNode = sLocale;
+ sProperty = ::rtl::OUString();
+ sLocale = ::rtl::OUString();
+ }
+ else
+ {
+ sOrgPath = sTempPath;
+ if ( ! ::utl::splitLastFromConfigurationPath(sOrgPath, sTempPath, sNode))
+ {
+ sNode = sProperty;
+ sProperty = sLocale;
+ sLocale = ::rtl::OUString();
+ }
+ }
+
+ if ( ! sNode.getLength() )
+ continue;
+
+ OUStringList::const_iterator pIt = ::std::find(lChangedItems.begin(), lChangedItems.end(), sNode);
+ if (pIt == lChangedItems.end())
+ lChangedItems.push_back(sNode);
+ }
+
+ sal_Bool bNotifyRefresh = sal_False;
+ OUStringList::const_iterator pIt;
+ for ( pIt = lChangedItems.begin();
+ pIt != lChangedItems.end() ;
+ ++pIt )
+ {
+ const ::rtl::OUString& sItem = *pIt;
+ try
+ {
+ m_rCache->refreshItem(eType, sItem);
+ }
+ catch(const css::container::NoSuchElementException&)
+ {
+ // can be ignored! Because we must be aware that
+ // sItem was removed from the condfiguration and we forced an update of the cache.
+ // But we know, that the cache is up-to-date know and has thrown this exception afterwards .-)
+ }
+ // NO FLUSH! Otherwhise we start a never ending story here .-)
+ bNotifyRefresh = sal_True;
+ }
+
+ // notify sfx cache about the changed filter cache .-)
+ if (bNotifyRefresh)
+ {
+ css::uno::Reference< css::util::XRefreshable > xRefreshBroadcaster(
+ xSMGR->createInstance(SERVICE_FILTERCONFIGREFRESH),
+ css::uno::UNO_QUERY);
+ if (xRefreshBroadcaster.is())
+ xRefreshBroadcaster->refresh();
+ }
+}
+
+/*-----------------------------------------------
+ 05.03.2004 08:44
+-----------------------------------------------*/
+void SAL_CALL CacheUpdateListener::disposing(const css::lang::EventObject& aEvent)
+ throw(css::uno::RuntimeException)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ if (aEvent.Source == m_xConfig)
+ m_xConfig.clear();
+ aLock.clear();
+ // <- SAFE
+}
+
+ } // namespace config
+} // namespace filter
diff --git a/filter/source/config/cache/cacheupdatelistener.hxx b/filter/source/config/cache/cacheupdatelistener.hxx
new file mode 100644
index 000000000000..8e75e4304bf2
--- /dev/null
+++ b/filter/source/config/cache/cacheupdatelistener.hxx
@@ -0,0 +1,147 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __FILTER_CONFIG_CACHEUPDATELISTENER_HXX_
+#define __FILTER_CONFIG_CACHEUPDATELISTENER_HXX_
+
+//_______________________________________________
+// includes
+
+#include "filtercache.hxx"
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/lang/XEventListener.hpp>
+#include <com/sun/star/util/XChangesListener.hpp>
+#include <salhelper/singletonref.hxx>
+#include <cppuhelper/implbase1.hxx>
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+//_______________________________________________
+// definitions
+
+//_______________________________________________
+
+/** @short implements a listener, which will update the
+ global filter cache, if the underlying configuration
+ wa changed by other processes.
+ */
+class CacheUpdateListener : public BaseLock // must be the first one to guarantee right initialized mutex member!
+ , public ::cppu::WeakImplHelper1< css::util::XChangesListener >
+{
+ //-------------------------------------------
+ // member
+
+ private:
+
+ /** @short reference to an uno service manager, which can be used
+ to create own needed services. */
+ css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR;
+
+ /** @short reference to the singleton(!) filter cache implementation,
+ which should be updated by this thread. */
+ ::salhelper::SingletonRef< FilterCache > m_rCache;
+
+ /** @short holds the configuration access, where we listen alive. */
+ css::uno::Reference< css::uno::XInterface > m_xConfig;
+
+ /** @short every instance of this update listener listen on
+ a special sub set of the filter configuration.
+ So it should know, which type of configuration entry
+ it must put into the filter cache, if the configuration notifys changes ... */
+ FilterCache::EItemType m_eConfigType;
+
+ //-------------------------------------------
+ // native interface
+
+ public:
+
+ //---------------------------------------
+ // ctor/dtor
+
+ /** @short initialize new instance of this class.
+
+ @descr Listening wont be started here. It can be done
+ by calling startListening() on this instance.
+
+ @see startListening()
+
+ @param xSMGR
+ reference to a service manager, which can be used to create
+ own needed uno services.
+
+ @param xConfigAccess
+ the configuration access, where this instance should listen for changes.
+
+ @param eConfigType
+ specify the type of configuration.
+ */
+ CacheUpdateListener(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR ,
+ const css::uno::Reference< css::uno::XInterface >& xConfigAccess,
+ FilterCache::EItemType eConfigType );
+
+ //---------------------------------------
+
+ /** @short standard dtor.
+ */
+ virtual ~CacheUpdateListener();
+
+ //---------------------------------------
+
+ /** @short starts listening.
+ */
+ virtual void startListening();
+
+ //---------------------------------------
+
+ /** @short stop listening.
+ */
+ virtual void stopListening();
+
+ //-------------------------------------------
+ // uno interface
+
+ public:
+
+ //---------------------------------------
+ // XChangesListener
+
+ virtual void SAL_CALL changesOccurred(const css::util::ChangesEvent& aEvent)
+ throw(css::uno::RuntimeException);
+
+ //---------------------------------------
+ // lang.XEventListener
+ virtual void SAL_CALL disposing(const css::lang::EventObject& aEvent)
+ throw(css::uno::RuntimeException);
+};
+
+ } // namespace config
+} // namespace filter
+
+#endif // __FILTER_CONFIG_CACHEUPDATELISTENER_HXX_
diff --git a/filter/source/config/cache/configflush.cxx b/filter/source/config/cache/configflush.cxx
new file mode 100644
index 000000000000..e97df2a7f40d
--- /dev/null
+++ b/filter/source/config/cache/configflush.cxx
@@ -0,0 +1,168 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_filter.hxx"
+
+#include "configflush.hxx"
+#include "constant.hxx"
+
+//_______________________________________________
+// includes
+#include <osl/diagnose.h>
+
+//_______________________________________________
+// namespace
+
+namespace css = ::com::sun::star;
+
+namespace filter{
+ namespace config{
+
+//_______________________________________________
+// definitions
+
+//-----------------------------------------------
+ConfigFlush::ConfigFlush(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR)
+ : BaseLock ( )
+ , m_xSMGR (xSMGR )
+ , m_lListener(m_aLock)
+{
+}
+
+//-----------------------------------------------
+ConfigFlush::~ConfigFlush()
+{
+}
+
+//-----------------------------------------------
+::rtl::OUString SAL_CALL ConfigFlush::getImplementationName()
+ throw (css::uno::RuntimeException)
+{
+ return impl_getImplementationName();
+ // <- SAFE
+}
+
+//-----------------------------------------------
+sal_Bool SAL_CALL ConfigFlush::supportsService(const ::rtl::OUString& sServiceName)
+ throw (css::uno::RuntimeException)
+{
+ css::uno::Sequence< ::rtl::OUString > lServiceNames = impl_getSupportedServiceNames();
+ sal_Int32 c = lServiceNames.getLength();
+ const ::rtl::OUString* pNames = lServiceNames.getConstArray();
+ for (sal_Int32 i=0; i<c; ++i)
+ {
+ if (pNames[i].equals(sServiceName))
+ return sal_True;
+ }
+ return sal_False;
+}
+
+//-----------------------------------------------
+css::uno::Sequence< ::rtl::OUString > SAL_CALL ConfigFlush::getSupportedServiceNames()
+ throw (css::uno::RuntimeException)
+{
+ return impl_getSupportedServiceNames();
+}
+
+//-----------------------------------------------
+void SAL_CALL ConfigFlush::refresh()
+ throw(css::uno::RuntimeException)
+{
+ // notify listener outside the lock!
+ // The used listener helper lives if we live
+ // and is threadsafe by itself.
+ // Further its not a good idea to hold the own lock
+ // if an outside object is called :-)
+ css::lang::EventObject aSource (static_cast< css::util::XRefreshable* >(this));
+ ::cppu::OInterfaceContainerHelper* pContainer = m_lListener.getContainer(::getCppuType(static_cast< css::uno::Reference< css::util::XRefreshListener >* >(NULL)));
+ if (pContainer)
+ {
+ ::cppu::OInterfaceIteratorHelper pIterator(*pContainer);
+ while (pIterator.hasMoreElements())
+ {
+ try
+ {
+ // ... this pointer can be interesting to find out, where will be called as listener
+ // Dont optimize it to a direct iterator cast :-)
+ css::util::XRefreshListener* pListener = (css::util::XRefreshListener*)pIterator.next();
+ pListener->refreshed(aSource);
+ }
+ catch(const css::uno::Exception&)
+ {
+ // ignore any "damaged" flush listener!
+ // May its remote reference is broken ...
+ pIterator.remove();
+ }
+ }
+ }
+}
+
+//-----------------------------------------------
+void SAL_CALL ConfigFlush::addRefreshListener(const css::uno::Reference< css::util::XRefreshListener >& xListener)
+ throw(css::uno::RuntimeException)
+{
+ // no locks neccessary
+ // used helper lives if we live and is threadsafe by itself ...
+ m_lListener.addInterface(::getCppuType(static_cast< css::uno::Reference< css::util::XRefreshListener >* >(NULL)),
+ xListener);
+}
+
+//-----------------------------------------------
+void SAL_CALL ConfigFlush::removeRefreshListener(const css::uno::Reference< css::util::XRefreshListener >& xListener)
+ throw(css::uno::RuntimeException)
+{
+ // no locks neccessary
+ // used helper lives if we live and is threadsafe by itself ...
+ m_lListener.removeInterface(::getCppuType(static_cast< css::uno::Reference< css::util::XRefreshListener >* >(NULL)),
+ xListener);
+}
+
+//-----------------------------------------------
+::rtl::OUString ConfigFlush::impl_getImplementationName()
+{
+ static ::rtl::OUString IMPLNAME = ::rtl::OUString::createFromAscii("com.sun.star.comp.filter.config.ConfigFlush");
+ return IMPLNAME;
+}
+
+//-----------------------------------------------
+css::uno::Sequence< ::rtl::OUString > ConfigFlush::impl_getSupportedServiceNames()
+{
+ css::uno::Sequence< ::rtl::OUString > lServiceNames(1);
+ lServiceNames[0] = SERVICE_FILTERCONFIGREFRESH;
+ return lServiceNames;
+}
+
+//-----------------------------------------------
+css::uno::Reference< css::uno::XInterface > ConfigFlush::impl_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR)
+{
+ ConfigFlush* pNew = new ConfigFlush(xSMGR);
+ return css::uno::Reference< css::uno::XInterface >(static_cast< css::util::XRefreshable* >(pNew), css::uno::UNO_QUERY);
+}
+
+ } // namespace config
+} // namespace filter
diff --git a/filter/source/config/cache/configflush.hxx b/filter/source/config/cache/configflush.hxx
new file mode 100644
index 000000000000..477d7017ca35
--- /dev/null
+++ b/filter/source/config/cache/configflush.hxx
@@ -0,0 +1,128 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __FILTER_CONFIG_CONFIGFLUSH_HXX_
+#define __FILTER_CONFIG_CONFIGFLUSH_HXX_
+
+//_______________________________________________
+// includes
+
+#include "cacheitem.hxx"
+#include <com/sun/star/util/XRefreshable.hpp>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <cppuhelper/interfacecontainer.h>
+#include <cppuhelper/implbase1.hxx>
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+//_______________________________________________
+// definitions
+
+//_______________________________________________
+
+/** @short supports registration of XRefreshListener
+ on the global filter configuration.
+
+ @descr Such refresh listener will be called in case the
+ type/filter configuration will be changed at runtime.
+ */
+class ConfigFlush : public BaseLock
+ , public ::cppu::WeakImplHelper1< css::util::XRefreshable >
+{
+ //-------------------------------------------
+ // member
+
+ protected:
+
+ /** @short reference to an uno service manager, which can be used
+ to create own needed services. */
+ css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR;
+
+ /** @short holds all listener, which are registered at this instance. */
+ ::cppu::OMultiTypeInterfaceContainerHelper m_lListener;
+
+ //-------------------------------------------
+ // native interface
+
+ public:
+
+ //---------------------------------------
+ // ctor/dtor
+
+ /** @short standard ctor.
+ */
+ ConfigFlush(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR);
+
+ //---------------------------------------
+
+ /** @short standard dtor.
+ */
+ virtual ~ConfigFlush();
+
+ //-------------------------------------------
+ // uno interface
+
+ public:
+
+ //---------------------------------------
+ // XServiceInfo
+
+ virtual ::rtl::OUString SAL_CALL getImplementationName()
+ throw (css::uno::RuntimeException);
+
+ virtual sal_Bool SAL_CALL supportsService(const ::rtl::OUString& sServiceName)
+ throw (css::uno::RuntimeException);
+
+ virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL getSupportedServiceNames()
+ throw (css::uno::RuntimeException);
+
+ //---------------------------------------
+ // XRefreshable
+
+ virtual void SAL_CALL refresh()
+ throw(css::uno::RuntimeException);
+
+ virtual void SAL_CALL addRefreshListener(const css::uno::Reference< css::util::XRefreshListener >& xListener)
+ throw(css::uno::RuntimeException);
+
+ virtual void SAL_CALL removeRefreshListener(const css::uno::Reference< css::util::XRefreshListener >& xListener)
+ throw(css::uno::RuntimeException);
+
+ //---------------------------------------
+ // interface to register/create this instance as an UNO service
+ static ::rtl::OUString impl_getImplementationName();
+ static css::uno::Sequence< ::rtl::OUString > impl_getSupportedServiceNames();
+ static css::uno::Reference< css::uno::XInterface > impl_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR);
+};
+
+ } // namespace config
+} // namespace filter
+
+#endif // __FILTER_CONFIG_CONFIGFLUSH_HXX_
diff --git a/filter/source/config/cache/constant.hxx b/filter/source/config/cache/constant.hxx
new file mode 100644
index 000000000000..36ea008f5414
--- /dev/null
+++ b/filter/source/config/cache/constant.hxx
@@ -0,0 +1,215 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef _FILTER_CONFIG_CONSTANT_HXX_
+#define _FILTER_CONFIG_CONSTANT_HXX_
+
+#include "macros.hxx"
+
+namespace filter { namespace config {
+extern rtl::OUString pFilterStrings[];
+} }
+#ifndef PROPNAME_IMPL_DECL
+# define PROPNAME_DECL(index, str) (pFilterStrings[(index)])
+#else
+# define PROPNAME_DECL(index, str) pFilterStrings[(index)] = _FILTER_CONFIG_FROM_ASCII_(str)
+#endif
+
+/* disable impl_loadOnDemand function of BaseContainer for certain
+ functions, where it the feature "impl_loadItemOnDemand() of class FilterCache
+ can be used instead of loadAll()!*/
+// #define LOAD_IMPLICIT
+
+//_______________________________________________
+
+/** @short used to identify a some generic item properties against the
+ configuration API and can be used at all name containers
+ (based on this filtercache) too.
+ */
+#define PROPNAME_NAME PROPNAME_DECL(0, "Name")
+
+/** @short used to identify a type item property against the
+ configuration API and can be used at all name containers
+ (based on this filtercache) too.
+ */
+#define PROPNAME_UINAME PROPNAME_DECL(1, "UIName" )
+#define PROPNAME_UINAMES PROPNAME_DECL(2, "UINames" )
+#define PROPNAME_PREFERRED PROPNAME_DECL(3, "Preferred" )
+#define PROPNAME_PREFERREDFILTER PROPNAME_DECL(4, "PreferredFilter" )
+#define PROPNAME_DETECTSERVICE PROPNAME_DECL(5, "DetectService" )
+#define PROPNAME_MEDIATYPE PROPNAME_DECL(6, "MediaType" )
+#define PROPNAME_CLIPBOARDFORMAT PROPNAME_DECL(7, "ClipboardFormat" )
+#define PROPNAME_URLPATTERN PROPNAME_DECL(8, "URLPattern" )
+#define PROPNAME_EXTENSIONS PROPNAME_DECL(9, "Extensions" )
+
+/** @short used to identify a filter item property against the
+ configuration API and can be used at all name containers
+ (based on this filtercache) too.
+ */
+#define PROPNAME_TYPE PROPNAME_DECL(10, "Type" )
+#define PROPNAME_DOCUMENTSERVICE PROPNAME_DECL(11, "DocumentService" )
+#define PROPNAME_FILTERSERVICE PROPNAME_DECL(12, "FilterService" )
+#define PROPNAME_UICOMPONENT PROPNAME_DECL(13, "UIComponent" )
+#define PROPNAME_FLAGS PROPNAME_DECL(14, "Flags" )
+#define PROPNAME_USERDATA PROPNAME_DECL(15, "UserData" )
+#define PROPNAME_TEMPLATENAME PROPNAME_DECL(16, "TemplateName" )
+#define PROPNAME_FILEFORMATVERSION PROPNAME_DECL(17, "FileFormatVersion")
+
+/** @short used to identify a frame loader or detect service item
+ property against the configuration API and can be used
+ at all name containers (based on this filtercache) too.
+ */
+#define PROPNAME_TYPES PROPNAME_DECL(18, "Types")
+
+/** @short used to identify the list of sorted filters for a specific
+ office module
+ */
+#define PROPNAME_SORTEDFILTERLIST _FILTER_CONFIG_FROM_ASCII_("SortedFilterList")
+
+/** @short implicit properties. which are used at the container interface only.
+ */
+#define PROPNAME_FINALIZED _FILTER_CONFIG_FROM_ASCII_("Finalized")
+#define PROPNAME_MANDATORY _FILTER_CONFIG_FROM_ASCII_("Mandatory")
+
+/** @short used to identify a set of items against the configuration API. */
+#define CFGSET_TYPES _FILTER_CONFIG_FROM_ASCII_("Types" )
+#define CFGSET_FILTERS _FILTER_CONFIG_FROM_ASCII_("Filters" )
+#define CFGSET_FRAMELOADERS _FILTER_CONFIG_FROM_ASCII_("FrameLoaders" )
+#define CFGSET_CONTENTHANDLERS _FILTER_CONFIG_FROM_ASCII_("ContentHandlers")
+
+/** @short used to adress some configuration keys directly.
+
+ @descr Such direct keys should be used with function
+ FilterCache::impl_getDirectCFGValue() only!
+
+ @TODO define these direct keys ...
+ */
+#define CFGDIRECTKEY_OFFICELOCALE _FILTER_CONFIG_FROM_ASCII_("/org.openoffice.Setup/L10N/ooLocale" )
+#define CFGDIRECTKEY_DEFAULTFRAMELOADER _FILTER_CONFIG_FROM_ASCII_("/org.openoffice.TypeDetection.Misc/Defaults/DefaultFrameLoader")
+#define CFGDIRECTKEY_OFFICELOCALE _FILTER_CONFIG_FROM_ASCII_("/org.openoffice.Setup/L10N/ooLocale" )
+#define CFGDIRECTKEY_FORMATNAME _FILTER_CONFIG_FROM_ASCII_("/org.openoffice.Setup/Product/ooXMLFileFormatName" )
+#define CFGDIRECTKEY_FORMATVERSION _FILTER_CONFIG_FROM_ASCII_("/org.openoffice.Setup/Product/ooXMLFileFormatVersion" )
+#define CFGDIRECTKEY_PRODUCTNAME _FILTER_CONFIG_FROM_ASCII_("/org.openoffice.Setup/Product/ooName" )
+
+/** @short names of filter flags, sorted in alphabetical order */
+#define FLAGNAME_3RDPARTYFILTER _FILTER_CONFIG_FROM_ASCII_("3RDPARTYFILTER" )
+#define FLAGNAME_ALIEN _FILTER_CONFIG_FROM_ASCII_("ALIEN" )
+#define FLAGNAME_ASYNCHRON _FILTER_CONFIG_FROM_ASCII_("ASYNCHRON" )
+#define FLAGNAME_BROWSERPREFERRED _FILTER_CONFIG_FROM_ASCII_("BROWSERPREFERRED" )
+#define FLAGNAME_CONSULTSERVICE _FILTER_CONFIG_FROM_ASCII_("CONSULTSERVICE" )
+#define FLAGNAME_DEFAULT _FILTER_CONFIG_FROM_ASCII_("DEFAULT" )
+#define FLAGNAME_ENCRYPTION _FILTER_CONFIG_FROM_ASCII_("ENCRYPTION" )
+#define FLAGNAME_EXPORT _FILTER_CONFIG_FROM_ASCII_("EXPORT" )
+#define FLAGNAME_IMPORT _FILTER_CONFIG_FROM_ASCII_("IMPORT" )
+#define FLAGNAME_INTERNAL _FILTER_CONFIG_FROM_ASCII_("INTERNAL" )
+#define FLAGNAME_NOTINCHOOSER _FILTER_CONFIG_FROM_ASCII_("NOTINCHOOSER" )
+#define FLAGNAME_NOTINFILEDIALOG _FILTER_CONFIG_FROM_ASCII_("NOTINFILEDIALOG" )
+#define FLAGNAME_NOTINSTALLED _FILTER_CONFIG_FROM_ASCII_("NOTINSTALLED" )
+#define FLAGNAME_OWN _FILTER_CONFIG_FROM_ASCII_("OWN" )
+#define FLAGNAME_PACKED _FILTER_CONFIG_FROM_ASCII_("PACKED" )
+#define FLAGNAME_PASSWORDTOMODIFY _FILTER_CONFIG_FROM_ASCII_("PASSWORDTOMODIFY" )
+#define FLAGNAME_PREFERRED _FILTER_CONFIG_FROM_ASCII_("PREFERRED" )
+#define FLAGNAME_READONLY _FILTER_CONFIG_FROM_ASCII_("READONLY" )
+#define FLAGNAME_SUPPORTSSELECTION _FILTER_CONFIG_FROM_ASCII_("SUPPORTSSELECTION")
+#define FLAGNAME_TEMPLATE _FILTER_CONFIG_FROM_ASCII_("TEMPLATE" )
+#define FLAGNAME_TEMPLATEPATH _FILTER_CONFIG_FROM_ASCII_("TEMPLATEPATH" )
+#define FLAGNAME_USESOPTIONS _FILTER_CONFIG_FROM_ASCII_("USESOPTIONS" )
+#define FLAGNAME_COMBINED _FILTER_CONFIG_FROM_ASCII_("COMBINED" )
+
+/** @short values of filter flags, sorted based on value */
+#define FLAGVAL_IMPORT 0x00000001 // 1
+#define FLAGVAL_EXPORT 0x00000002 // 2
+#define FLAGVAL_TEMPLATE 0x00000004 // 4
+#define FLAGVAL_INTERNAL 0x00000008 // 8
+#define FLAGVAL_TEMPLATEPATH 0x00000010 // 16
+#define FLAGVAL_OWN 0x00000020 // 32
+#define FLAGVAL_ALIEN 0x00000040 // 64
+#define FLAGVAL_USESOPTIONS 0x00000080 // 128
+#define FLAGVAL_DEFAULT 0x00000100 // 256
+#define FLAGVAL_SUPPORTSSELECTION 0x00000400 // 1024
+#define FLAGVAL_NOTINFILEDIALOG 0x00001000 // 4096
+#define FLAGVAL_NOTINCHOOSER 0x00002000 // 8192
+#define FLAGVAL_ASYNCHRON 0x00004000 // 16384
+#define FLAGVAL_READONLY 0x00010000 // 65536
+#define FLAGVAL_NOTINSTALLED 0x00020000 // 131072
+#define FLAGVAL_CONSULTSERVICE 0x00040000 // 262144
+#define FLAGVAL_3RDPARTYFILTER 0x00080000 // 524288
+#define FLAGVAL_PACKED 0x00100000 // 1048576
+#define FLAGVAL_BROWSERPREFERRED 0x00400000 // 4194304
+#define FLAGVAL_COMBINED 0x00800000 // 8388608
+#define FLAGVAL_ENCRYPTION 0x01000000 // 16777216
+#define FLAGVAL_PASSWORDTOMODIFY 0x02000000 // 33554432
+#define FLAGVAL_PREFERRED 0x10000000 // 268435456
+#define FLAGVAL_ALL 0xffffffff // 4294967295
+
+/** @short uno service names of our document services
+ provided by our application modules.
+ */
+#define DOCUMENTSERVICE_WRITER _FILTER_CONFIG_FROM_ASCII_("com.sun.star.text.TextDocument" )
+#define DOCUMENTSERVICE_WRITER_WEB _FILTER_CONFIG_FROM_ASCII_("com.sun.star.text.WebDocument" )
+#define DOCUMENTSERVICE_WRITER_GLOBAL _FILTER_CONFIG_FROM_ASCII_("com.sun.star.text.GlobalDocument" )
+#define DOCUMENTSERVICE_CALC _FILTER_CONFIG_FROM_ASCII_("com.sun.star.sheet.SpreadsheetDocument" )
+#define DOCUMENTSERVICE_DRAW _FILTER_CONFIG_FROM_ASCII_("com.sun.star.drawing.DrawingDocument" )
+#define DOCUMENTSERVICE_IMPRESS _FILTER_CONFIG_FROM_ASCII_("com.sun.star.presentation.PresentationDocument")
+#define DOCUMENTSERVICE_CHART _FILTER_CONFIG_FROM_ASCII_("com.sun.star.chart2.ChartDocument" )
+#define DOCUMENTSERVICE_MATH _FILTER_CONFIG_FROM_ASCII_("com.sun.star.formula.FormulaProperties" )
+
+/** @short some uno service names.
+ */
+#define SERVICE_CONFIGURATIONPROVIDER _FILTER_CONFIG_FROM_ASCII_("com.sun.star.configuration.ConfigurationProvider" )
+#define SERVICE_CONFIGURATIONUPDATEACCESS _FILTER_CONFIG_FROM_ASCII_("com.sun.star.configuration.ConfigurationUpdateAccess" )
+#define SERVICE_CONFIGURATIONACCESS _FILTER_CONFIG_FROM_ASCII_("com.sun.star.configuration.ConfigurationAccess" )
+#define SERVICE_URLTRANSFORMER _FILTER_CONFIG_FROM_ASCII_("com.sun.star.util.URLTransformer" )
+#define SERVICE_FILTERCONFIGREFRESH _FILTER_CONFIG_FROM_ASCII_("com.sun.star.document.FilterConfigRefresh" )
+
+/** @short some configuration pathes.
+ */
+#define CFGPACKAGE_TD_TYPES _FILTER_CONFIG_FROM_ASCII_("/org.openoffice.TypeDetection.Types" )
+#define CFGPACKAGE_TD_FILTERS _FILTER_CONFIG_FROM_ASCII_("/org.openoffice.TypeDetection.Filter")
+#define CFGPACKAGE_TD_OTHERS _FILTER_CONFIG_FROM_ASCII_("/org.openoffice.TypeDetection.Misc" )
+#define CFGPACKAGE_TD_UISORT _FILTER_CONFIG_FROM_ASCII_("/org.openoffice.TypeDetection.UISort/ModuleDependendFilterOrder")
+#define CFGPACKAGE_TD_OLD _FILTER_CONFIG_FROM_ASCII_("/org.openoffice.Office.TypeDetection")
+#define CFGPACKAGE_OOO_MODULES _FILTER_CONFIG_FROM_ASCII_("/org.openoffice.Setup/Office/Factories")
+
+/** @short some default values.
+ */
+#define DEFAULT_OFFICELOCALE _FILTER_CONFIG_FROM_ASCII_("en-US")
+#define DEFAULT_FORMATNAME _FILTER_CONFIG_FROM_ASCII_("OpenOffice")
+#define DEFAULT_FORMATVERSION _FILTER_CONFIG_FROM_ASCII_("1.0")
+
+/** @short used for the queries of the FilterFactory service.
+ */
+#define QUERY_IDENTIFIER_MATCHBYDOCUMENTSERVICE _FILTER_CONFIG_FROM_ASCII_("matchByDocumentService" )
+#define QUERY_IDENTIFIER_GETPREFERREDFILTERFORTYPE _FILTER_CONFIG_FROM_ASCII_("getDefaultFilterForType")
+#define QUERY_IDENTIFIER_GET_SORTED_FILTERLIST _FILTER_CONFIG_FROM_ASCII_("getSortedFilterList()" )
+
+#define QUERY_PARAM_IFLAGS _FILTER_CONFIG_FROM_ASCII_("iflags")
+#define QUERY_PARAM_EFLAGS _FILTER_CONFIG_FROM_ASCII_("eflags")
+#define QUERY_PARAM_MODULE _FILTER_CONFIG_FROM_ASCII_("module")
+#define QUERY_PARAM_DEFAULTFIRST _FILTER_CONFIG_FROM_ASCII_("default_first")
+#define QUERY_CONSTVALUE_ALL _FILTER_CONFIG_FROM_ASCII_("all")
+
+#endif // _FILTER_CONFIG_CONSTANT_HXX_
diff --git a/filter/source/config/cache/contenthandlerfactory.cxx b/filter/source/config/cache/contenthandlerfactory.cxx
new file mode 100644
index 000000000000..3863658d9abb
--- /dev/null
+++ b/filter/source/config/cache/contenthandlerfactory.cxx
@@ -0,0 +1,201 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_filter.hxx"
+
+#include "contenthandlerfactory.hxx"
+#include "querytokenizer.hxx"
+#include "macros.hxx"
+#include "constant.hxx"
+#include "versions.hxx"
+
+//_______________________________________________
+// includes
+#include <com/sun/star/lang/XInitialization.hpp>
+#include <comphelper/enumhelper.hxx>
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+namespace css = ::com::sun::star;
+
+//_______________________________________________
+// definitions
+
+/*-----------------------------------------------
+ 09.07.2003 07:43
+-----------------------------------------------*/
+ContentHandlerFactory::ContentHandlerFactory(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR)
+{
+ BaseContainer::init(xSMGR ,
+ ContentHandlerFactory::impl_getImplementationName() ,
+ ContentHandlerFactory::impl_getSupportedServiceNames(),
+ FilterCache::E_CONTENTHANDLER );
+}
+
+/*-----------------------------------------------
+ 09.07.2003 07:43
+-----------------------------------------------*/
+ContentHandlerFactory::~ContentHandlerFactory()
+{
+}
+
+/*-----------------------------------------------
+ 16.07.2003 13:38
+-----------------------------------------------*/
+css::uno::Reference< css::uno::XInterface > SAL_CALL ContentHandlerFactory::createInstance(const ::rtl::OUString& sHandler)
+ throw(css::uno::Exception ,
+ css::uno::RuntimeException)
+{
+ return createInstanceWithArguments(sHandler, css::uno::Sequence< css::uno::Any >());
+}
+
+/*-----------------------------------------------
+ 16.07.2003 13:40
+-----------------------------------------------*/
+css::uno::Reference< css::uno::XInterface > SAL_CALL ContentHandlerFactory::createInstanceWithArguments(const ::rtl::OUString& sHandler ,
+ const css::uno::Sequence< css::uno::Any >& lArguments)
+ throw(css::uno::Exception ,
+ css::uno::RuntimeException)
+{
+ css::uno::Reference< css::uno::XInterface > xHandler;
+
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ ::rtl::OUString sRealHandler = sHandler;
+
+ #ifdef _FILTER_CONFIG_MIGRATION_Q_
+
+ /* -> TODO - HACK
+ check if the given handler name realy exist ...
+ Because our old implementation worked with an internal
+ type name instead of a handler name. For a small migration time
+ we must simulate this old feature :-( */
+
+ if (!m_rCache->hasItem(FilterCache::E_CONTENTHANDLER, sHandler) && m_rCache->hasItem(FilterCache::E_TYPE, sHandler))
+ {
+ _FILTER_CONFIG_LOG_("ContentHandlerFactory::createInstanceWithArguments() ... simulate old type search functionality!\n");
+
+ css::uno::Sequence< ::rtl::OUString > lTypes(1);
+ lTypes[0] = sHandler;
+
+ css::uno::Sequence< css::beans::NamedValue > lQuery(1);
+ lQuery[0].Name = PROPNAME_TYPES;
+ lQuery[0].Value <<= lTypes;
+
+ css::uno::Reference< css::container::XEnumeration > xSet = createSubSetEnumerationByProperties(lQuery);
+ while(xSet->hasMoreElements())
+ {
+ ::comphelper::SequenceAsHashMap lHandlerProps(xSet->nextElement());
+ if (!(lHandlerProps[PROPNAME_NAME] >>= sRealHandler))
+ continue;
+ }
+
+ // prevent outside code against NoSuchElementException!
+ // But dont implement such defensive strategy for our new create handling :-)
+ if (!m_rCache->hasItem(FilterCache::E_CONTENTHANDLER, sRealHandler))
+ return css::uno::Reference< css::uno::XInterface>();
+ }
+
+ /* <- HACK */
+
+ #endif // _FILTER_CONFIG_MIGRATION_Q_
+
+ // search handler on cache
+ CacheItem aHandler = m_rCache->getItem(FilterCache::E_CONTENTHANDLER, sRealHandler);
+
+ // create service instance
+ xHandler = m_xSMGR->createInstance(sRealHandler);
+
+ // initialize filter
+ css::uno::Reference< css::lang::XInitialization > xInit(xHandler, css::uno::UNO_QUERY);
+ if (xInit.is())
+ {
+ // format: lInitData[0] = seq<PropertyValue>, which contains all configuration properties of this handler
+ // lInitData[1] = lArguments[0]
+ // ...
+ // lInitData[n] = lArguments[n-1]
+ css::uno::Sequence< css::beans::PropertyValue > lConfig;
+ aHandler >> lConfig;
+
+ ::comphelper::SequenceAsVector< css::uno::Any > stlArguments(lArguments);
+ stlArguments.insert(stlArguments.begin(), css::uno::makeAny(lConfig));
+
+ css::uno::Sequence< css::uno::Any > lInitData;
+ stlArguments >> lInitData;
+
+ xInit->initialize(lInitData);
+ }
+
+ return xHandler;
+ // <- SAFE
+}
+
+/*-----------------------------------------------
+ 09.07.2003 07:46
+-----------------------------------------------*/
+css::uno::Sequence< ::rtl::OUString > SAL_CALL ContentHandlerFactory::getAvailableServiceNames()
+ throw(css::uno::RuntimeException)
+{
+ // must be the same list as ((XNameAccess*)this)->getElementNames() return!
+ return getElementNames();
+}
+
+/*-----------------------------------------------
+ 09.07.2003 07:43
+-----------------------------------------------*/
+::rtl::OUString ContentHandlerFactory::impl_getImplementationName()
+{
+ return ::rtl::OUString::createFromAscii("com.sun.star.comp.filter.config.ContentHandlerFactory");
+}
+
+/*-----------------------------------------------
+ 09.07.2003 07:43
+-----------------------------------------------*/
+css::uno::Sequence< ::rtl::OUString > ContentHandlerFactory::impl_getSupportedServiceNames()
+{
+ css::uno::Sequence< ::rtl::OUString > lServiceNames(1);
+ lServiceNames[0] = ::rtl::OUString::createFromAscii("com.sun.star.frame.ContentHandlerFactory");
+ return lServiceNames;
+}
+
+/*-----------------------------------------------
+ 09.07.2003 07:43
+-----------------------------------------------*/
+css::uno::Reference< css::uno::XInterface > SAL_CALL ContentHandlerFactory::impl_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR)
+{
+ ContentHandlerFactory* pNew = new ContentHandlerFactory(xSMGR);
+ return css::uno::Reference< css::uno::XInterface >(static_cast< css::lang::XMultiServiceFactory* >(pNew), css::uno::UNO_QUERY);
+}
+
+ } // namespace config
+} // namespace filter
diff --git a/filter/source/config/cache/contenthandlerfactory.hxx b/filter/source/config/cache/contenthandlerfactory.hxx
new file mode 100644
index 000000000000..a50f91c0b61e
--- /dev/null
+++ b/filter/source/config/cache/contenthandlerfactory.hxx
@@ -0,0 +1,148 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __FILTER_CONFIG_CONTENTHANDLERFACTORY_HXX_
+#define __FILTER_CONFIG_CONTENTHANDLERFACTORY_HXX_
+
+//_______________________________________________
+// includes
+
+#include "basecontainer.hxx"
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/lang/XSingleServiceFactory.hpp>
+#include <cppuhelper/implbase1.hxx>
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+namespace css = ::com::sun::star;
+
+//_______________________________________________
+// definitions
+
+//_______________________________________________
+
+/** @short implements the service <type scope="com.sun.star.document">ContentHandlerFactory</type>.
+ */
+class ContentHandlerFactory : public ::cppu::ImplInheritanceHelper1< BaseContainer ,
+ css::lang::XMultiServiceFactory >
+{
+ //-------------------------------------------
+ // native interface
+
+ public:
+
+ //---------------------------------------
+ // ctor/dtor
+
+ /** @short standard ctor to connect this interface wrapper to
+ the global filter cache instance ...
+
+ @param xSMGR
+ reference to the uno service manager, which created this service instance.
+ */
+ ContentHandlerFactory(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR);
+
+ //---------------------------------------
+
+ /** @short standard dtor.
+ */
+ virtual ~ContentHandlerFactory();
+
+ //-------------------------------------------
+ // uno interface
+
+ public:
+
+ //---------------------------------------
+ // XMultiServiceFactory
+
+ virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstance(const ::rtl::OUString& sHandler)
+ throw(css::uno::Exception ,
+ css::uno::RuntimeException);
+
+ virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstanceWithArguments(const ::rtl::OUString& sHandler ,
+ const css::uno::Sequence< css::uno::Any >& lArguments)
+ throw(css::uno::Exception ,
+ css::uno::RuntimeException);
+
+ virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL getAvailableServiceNames()
+ throw(css::uno::RuntimeException);
+
+ //-------------------------------------------
+ // static uno helper!
+
+ public:
+
+ //---------------------------------------
+
+ /** @short return the uno implementation name of this class.
+
+ @descr Because this information is used at several places
+ (and mostly an object instance of this class is not possible)
+ its implemented as a static function!
+
+ @return The fix uno implementation name of this class.
+ */
+ static ::rtl::OUString impl_getImplementationName();
+
+ //---------------------------------------
+
+ /** @short return the list of supported uno services of this class.
+
+ @descr Because this information is used at several places
+ (and mostly an object instance of this class is not possible)
+ its implemented as a static function!
+
+ @return The fix list of uno services supported by this class.
+ */
+ static css::uno::Sequence< ::rtl::OUString > impl_getSupportedServiceNames();
+
+ //---------------------------------------
+
+ /** @short return a new intsnace of this class.
+
+ @descr This method is used by the uno service manager, to create
+ a new instance of this service if needed.
+
+ @param xSMGR
+ reference to the uno service manager, which require
+ this new instance. It should be passed to the new object
+ so it can be used internaly to create own needed uno resources.
+
+ @return The new instance of this service as an uno reference.
+ */
+ static css::uno::Reference< css::uno::XInterface > impl_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR);
+};
+
+ } // namespace config
+} // namespace filter
+
+#endif // __FILTER_CONFIG_CONTENTHANDLERFACTORY_HXX_
diff --git a/filter/source/config/cache/filtercache.cxx b/filter/source/config/cache/filtercache.cxx
new file mode 100644
index 000000000000..bae26e2c2d91
--- /dev/null
+++ b/filter/source/config/cache/filtercache.cxx
@@ -0,0 +1,2530 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_filter.hxx"
+
+#include "filtercache.hxx"
+#include "lateinitlistener.hxx"
+#include "macros.hxx"
+#include "constant.hxx"
+#include "cacheupdatelistener.hxx"
+
+/*TODO see using below ... */
+#define AS_ENABLE_FILTER_UINAMES
+#define WORKAROUND_EXCEPTION_PROBLEM
+
+//_______________________________________________
+// includes
+#include <com/sun/star/util/XChangesBatch.hpp>
+#include <com/sun/star/container/XHierarchicalNameAccess.hpp>
+#include <com/sun/star/lang/XSingleServiceFactory.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/beans/XProperty.hpp>
+#include <com/sun/star/beans/PropertyValue.hpp>
+#include <com/sun/star/beans/Property.hpp>
+#include <com/sun/star/beans/PropertyAttribute.hpp>
+#include <com/sun/star/document/CorruptedFilterConfigurationException.hpp>
+#include <comphelper/sequenceasvector.hxx>
+#include <comphelper/locale.hxx>
+#include <unotools/processfactory.hxx>
+
+#ifndef _UNOTOOLS_CONFIGPATHES_HXX_
+#include <unotools/configpathes.hxx>
+#endif
+#include <rtl/ustrbuf.hxx>
+#include <rtl/logfile.hxx>
+#include <rtl/uri.hxx>
+#include <tools/urlobj.hxx>
+#include <tools/wldcrd.hxx>
+
+#include <comphelper/configurationhelper.hxx>
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+namespace css = ::com::sun::star;
+
+//_______________________________________________
+// definitions
+
+// Error message in case filter config seems to be corrupted.
+// Note: Dont tell user something about "setup -repair"!
+// Its no longer supported by using native installers ...
+static ::rtl::OUString MESSAGE_CORRUPTED_FILTERCONFIG = ::rtl::OUString::createFromAscii("The filter configuration appears to be defective. Please install the office suite again.");
+
+/*-----------------------------------------------
+ 15.03.2004 08:59
+-----------------------------------------------*/
+FilterCache::FilterCache()
+ : BaseLock ( )
+ , m_xSMGR (::comphelper::getProcessServiceFactory())
+ , m_eFillState(E_CONTAINS_NOTHING )
+{
+ RTL_LOGFILE_TRACE("{ (as96863) FilterCache lifetime");
+}
+
+/*-----------------------------------------------
+ 15.03.2004 08:59
+-----------------------------------------------*/
+FilterCache::~FilterCache()
+{
+ RTL_LOGFILE_TRACE("} (as96863) FilterCache lifetime");
+}
+
+/*-----------------------------------------------
+ 03.03.2004 11:27
+-----------------------------------------------*/
+FilterCache* FilterCache::clone() const
+{
+ // SAFE -> ----------------------------------
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ FilterCache* pClone = new FilterCache();
+
+ // Dont copy the configuration access points here.
+ // They will be created on demand inside the cloned instance,
+ // if they are needed.
+
+ pClone->m_xSMGR = m_xSMGR;
+
+ pClone->m_lTypes = m_lTypes;
+ pClone->m_lDetectServices = m_lDetectServices;
+ pClone->m_lFilters = m_lFilters;
+ pClone->m_lFrameLoaders = m_lFrameLoaders;
+ pClone->m_lContentHandlers = m_lContentHandlers;
+ pClone->m_lExtensions2Types = m_lExtensions2Types;
+ pClone->m_lURLPattern2Types = m_lURLPattern2Types;
+
+ pClone->m_sActLocale = m_sActLocale;
+ pClone->m_sFormatName = m_sFormatName;
+ pClone->m_sFormatVersion = m_sFormatVersion;
+
+ pClone->m_eFillState = m_eFillState;
+
+ pClone->m_lChangedTypes = m_lChangedTypes;
+ pClone->m_lChangedFilters = m_lChangedFilters;
+ pClone->m_lChangedDetectServices = m_lChangedDetectServices;
+ pClone->m_lChangedFrameLoaders = m_lChangedFrameLoaders;
+ pClone->m_lChangedContentHandlers = m_lChangedContentHandlers;
+
+ return pClone;
+ // <- SAFE ----------------------------------
+}
+
+/*-----------------------------------------------
+ 03.03.2004 14:39
+-----------------------------------------------*/
+void FilterCache::takeOver(const FilterCache& rClone)
+{
+ // SAFE -> ----------------------------------
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ // a)
+ // Dont copy the configuration access points here!
+ // We must use our own ones ...
+
+ // b)
+ // Further we can ignore the uno service manager.
+ // We should already have a valid instance.
+
+ // c)
+ // Take over only changed items!
+ // Otherwhise we risk the following scenario:
+ // c1) clone_1 contains changed filters
+ // c2) clone_2 container changed types
+ // c3) clone_1 take over changed filters and unchanged types
+ // c4) clone_2 take over unchanged filters(!) and changed types(!)
+ // c5) c4 overwrites c3!
+
+ if (rClone.m_lChangedTypes.size()>0)
+ m_lTypes = rClone.m_lTypes;
+ if (rClone.m_lChangedDetectServices.size()>0)
+ m_lDetectServices = rClone.m_lDetectServices;
+ if (rClone.m_lChangedFilters.size()>0)
+ m_lFilters = rClone.m_lFilters;
+ if (rClone.m_lChangedFrameLoaders.size()>0)
+ m_lFrameLoaders = rClone.m_lFrameLoaders;
+ if (rClone.m_lChangedContentHandlers.size()>0)
+ m_lContentHandlers = rClone.m_lContentHandlers;
+
+ m_lChangedTypes.clear();
+ m_lChangedDetectServices.clear();
+ m_lChangedFilters.clear();
+ m_lChangedFrameLoaders.clear();
+ m_lChangedContentHandlers.clear();
+
+ m_sActLocale = rClone.m_sActLocale;
+ m_sFormatName = rClone.m_sFormatName;
+ m_sFormatVersion = rClone.m_sFormatVersion;
+
+ m_eFillState = rClone.m_eFillState;
+
+ // renew all dependencies and optimizations
+ // Because we cant be shure, that changed filters on one clone
+ // and changed types of another clone work together.
+ // But here we can check against the lates changes ...
+ impl_validateAndOptimize();
+ // <- SAFE ----------------------------------
+}
+
+/*-----------------------------------------------
+ 28.10.2003 09:01
+-----------------------------------------------*/
+void FilterCache::load(EFillState eRequired,
+#if OSL_DEBUG_LEVEL > 1
+ sal_Bool bByThread
+#else
+ sal_Bool
+#endif
+)
+ throw(css::uno::Exception)
+{
+ // SAFE -> ----------------------------------
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ // check if required fill state is already reached ...
+ // There is nothing to do then.
+ if ((m_eFillState & eRequired) == eRequired)
+ return;
+
+#if OSL_DEBUG_LEVEL > 1 && !defined(OS2)
+ if (
+ (!bByThread) &&
+ (
+ ((eRequired & E_CONTAINS_FILTERS) == E_CONTAINS_FILTERS) ||
+ ((eRequired & E_CONTAINS_ALL ) == E_CONTAINS_ALL )
+ )
+ )
+ {
+ OSL_ENSURE(sal_False, "Who disturb our \"fill cache on demand\" feature and force loading of ALL data during office startup? Please optimize your code, so a full filled filter cache is not realy needed here!");
+ }
+#endif
+
+ // Otherwhise load the missing items.
+
+ // ------------------------------------------
+ // a) load some const values from configration.
+ // These values are needed there for loading
+ // config items ...
+ // Further we load some std items from the
+ // configuration so we can try to load the first
+ // office document with a minimal set of values.
+ if (m_eFillState == E_CONTAINS_NOTHING)
+ {
+ impl_getDirectCFGValue(CFGDIRECTKEY_OFFICELOCALE) >>= m_sActLocale;
+ if (!m_sActLocale.getLength())
+ {
+ _FILTER_CONFIG_LOG_1_("FilterCache::ctor() ... could not specify office locale => use default \"%s\"\n", _FILTER_CONFIG_TO_ASCII_(DEFAULT_OFFICELOCALE));
+ m_sActLocale = DEFAULT_OFFICELOCALE;
+ }
+
+ impl_getDirectCFGValue(CFGDIRECTKEY_FORMATNAME) >>= m_sFormatName;
+ if (!m_sFormatName.getLength())
+ impl_getDirectCFGValue(CFGDIRECTKEY_PRODUCTNAME) >>= m_sFormatName;
+
+ if (!m_sFormatName.getLength())
+ {
+ _FILTER_CONFIG_LOG_1_("FilterCache::ctor() ... could not specify format name => use default \"%s\"\n", _FILTER_CONFIG_TO_ASCII_(DEFAULT_FORMATNAME));
+ m_sFormatName = DEFAULT_FORMATNAME;
+ }
+
+ impl_getDirectCFGValue(CFGDIRECTKEY_FORMATVERSION) >>= m_sFormatVersion;
+ if (!m_sFormatVersion.getLength())
+ {
+ _FILTER_CONFIG_LOG_1_("FilterCache::ctor() ... could not specify format version => use default \"%s\"\n", _FILTER_CONFIG_TO_ASCII_(DEFAULT_FORMATVERSION));
+ m_sFormatVersion = DEFAULT_FORMATVERSION;
+ }
+
+ // Support the old configuration support. Read it only one times during office runtime!
+ impl_readOldFormat();
+
+ // enable "loadOnDemand" feature ...
+ // Create uno listener, which waits for finishing the office startup
+ // and starts a thread, which calls loadAll() at this filter cache.
+ // Note: Its not a leak to create this listener with new here.
+ // It kills itself after working!
+ /* LateInitListener* pLateInit = */ new LateInitListener(m_xSMGR);
+ }
+
+ // ------------------------------------------
+ // b) If the required fill state was not reached
+ // but std values was already loaded ...
+ // we must load some further missing items.
+ impl_load(eRequired);
+ // <- SAFE
+}
+
+/*-----------------------------------------------
+ 28.10.2003 09:50
+-----------------------------------------------*/
+sal_Bool FilterCache::isFillState(FilterCache::EFillState eState) const
+ throw(css::uno::Exception)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ return ((m_eFillState & eState) == eState);
+ // <- SAFE
+}
+
+/*-----------------------------------------------
+ 14.07.2003 10:45
+-----------------------------------------------*/
+OUStringList FilterCache::getMatchingItemsByProps( EItemType eType ,
+ const CacheItem& lIProps,
+ const CacheItem& lEProps) const
+ throw(css::uno::Exception)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ // search for right list
+ // An exception is thrown �f "eType" is unknown.
+ // => rList will be valid everytimes next line is reached.
+ CacheItemList& rList = impl_getItemList(eType);
+
+ OUStringList lKeys;
+
+ // search items, which provides all needed properties of set "lIProps"
+ // but not of set "lEProps"!
+ for (CacheItemList::const_iterator pIt = rList.begin();
+ pIt != rList.end() ;
+ ++pIt )
+ {
+ _FILTER_CONFIG_LOG_1_("getMatchingProps for \"%s\" ...\n",
+ _FILTER_CONFIG_TO_ASCII_(pIt->first))
+ if (
+ (pIt->second.haveProps(lIProps) ) &&
+ (pIt->second.dontHaveProps(lEProps))
+ )
+ {
+ lKeys.push_back(pIt->first);
+ }
+ }
+
+ return lKeys;
+ // <- SAFE
+}
+
+/*-----------------------------------------------
+ 02.07.2003 09:32
+-----------------------------------------------*/
+sal_Bool FilterCache::hasItems(EItemType eType) const
+ throw(css::uno::Exception)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ // search for right list
+ // An exception is thrown �f "eType" is unknown.
+ // => rList will be valid everytimes next line is reached.
+ CacheItemList& rList = impl_getItemList(eType);
+
+ return (rList.size()>0);
+ // <- SAFE
+}
+
+/*-----------------------------------------------
+ 02.07.2003 11:48
+-----------------------------------------------*/
+OUStringList FilterCache::getItemNames(EItemType eType) const
+ throw(css::uno::Exception)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ // search for right list
+ // An exception is thrown �f "eType" is unknown.
+ // => rList will be valid everytimes next line is reached.
+ CacheItemList& rList = impl_getItemList(eType);
+
+ OUStringList lKeys;
+ for (CacheItemList::const_iterator pIt = rList.begin();
+ pIt != rList.end() ;
+ ++pIt )
+ {
+ lKeys.push_back(pIt->first);
+ }
+ return lKeys;
+ // <- SAFE
+}
+
+/*-----------------------------------------------
+ 27.10.2003 08:37
+-----------------------------------------------*/
+sal_Bool FilterCache::hasItem( EItemType eType,
+ const ::rtl::OUString& sItem)
+ throw(css::uno::Exception)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ // search for right list
+ // An exception is thrown �f "eType" is unknown.
+ // => rList will be valid everytimes next line is reached.
+ CacheItemList& rList = impl_getItemList(eType);
+
+ // if item could not be found - check if it can be loaded
+ // from the underlying configuration layer. Might it was not already
+ // loaded into this FilterCache object before.
+ CacheItemList::const_iterator pIt = rList.find(sItem);
+ if (pIt != rList.end())
+ return sal_True;
+
+ try
+ {
+ impl_loadItemOnDemand(eType, sItem);
+ // no exception => item could be loaded!
+ return sal_True;
+ }
+ catch(const css::container::NoSuchElementException&)
+ {}
+
+ return sal_False;
+ // <- SAFE
+}
+
+/*-----------------------------------------------
+ 17.07.2006 09:15
+-----------------------------------------------*/
+CacheItem FilterCache::getItem( EItemType eType,
+ const ::rtl::OUString& sItem)
+ throw(css::uno::Exception)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ // search for right list
+ // An exception is thrown if "eType" is unknown.
+ // => rList will be valid everytimes next line is reached.
+ CacheItemList& rList = impl_getItemList(eType);
+
+ // check if item exists ...
+ CacheItemList::iterator pIt = rList.find(sItem);
+ if (pIt == rList.end())
+ {
+ // ... or load it on demand from the
+ // underlying configuration layer.
+ // Note: NoSuchElementException is thrown automaticly here if
+ // item could not be loaded!
+ pIt = impl_loadItemOnDemand(eType, sItem);
+ }
+
+ /* Workaround for #137955#
+ Draw types and filters are installed ... but draw was disabled during setup.
+ We must supress accessing these filters. Otherwise the office can crash.
+ Solution for the next major release: do not install those filters !
+ */
+ if (eType == E_FILTER)
+ {
+ CacheItem& rFilter = pIt->second;
+ ::rtl::OUString sDocService;
+ rFilter[PROPNAME_DOCUMENTSERVICE] >>= sDocService;
+
+ // --> PB 2006-10-18 #142498#
+ // In Standalone-Impress the module WriterWeb is not installed
+ // but it is there to load help pages
+ sal_Bool bIsHelpFilter = sItem.equalsAscii( "writer_web_HTML_help" );
+
+ if ( !bIsHelpFilter && !impl_isModuleInstalled(sDocService) )
+ // <--
+ {
+ ::rtl::OUStringBuffer sMsg(256);
+ sMsg.appendAscii("The requested filter '" );
+ sMsg.append (sItem );
+ sMsg.appendAscii("' exists ... but it shouldnt; because the corresponding OOo module was not installed.");
+ throw css::container::NoSuchElementException(sMsg.makeStringAndClear(), css::uno::Reference< css::uno::XInterface >());
+ }
+ }
+
+ return pIt->second;
+ // <- SAFE
+}
+
+/*-----------------------------------------------
+ 03.03.2004 11:28
+-----------------------------------------------*/
+void FilterCache::removeItem( EItemType eType,
+ const ::rtl::OUString& sItem)
+ throw(css::uno::Exception)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ // search for right list
+ // An exception is thrown �f "eType" is unknown.
+ // => rList will be valid everytimes next line is reached.
+ CacheItemList& rList = impl_getItemList(eType);
+
+ CacheItemList::iterator pItem = rList.find(sItem);
+ if (pItem == rList.end())
+ pItem = impl_loadItemOnDemand(eType, sItem); // throws NoSuchELementException!
+ rList.erase(pItem);
+
+ impl_addItem2FlushList(eType, sItem);
+}
+
+/*-----------------------------------------------
+ 26.11.2003 13:28
+-----------------------------------------------*/
+void FilterCache::setItem( EItemType eType ,
+ const ::rtl::OUString& sItem ,
+ const CacheItem& aValue)
+ throw(css::uno::Exception)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ // search for right list
+ // An exception is thrown �f "eType" is unknown.
+ // => rList will be valid everytimes next line is reached.
+ CacheItemList& rList = impl_getItemList(eType);
+
+ // name must be part of the property set too ... otherwhise our
+ // container query cant work correctly
+ CacheItem aItem = aValue;
+ aItem[PROPNAME_NAME] <<= sItem;
+ aItem.validateUINames(m_sActLocale);
+
+ // remove implicit properties as e.g. FINALIZED or MANDATORY
+ // They cant be saved here and must be readed on demand later, if they are needed.
+ removeStatePropsFromItem(aItem);
+
+ rList[sItem] = aItem;
+
+ impl_addItem2FlushList(eType, sItem);
+}
+
+//-----------------------------------------------
+void FilterCache::refreshItem( EItemType eType,
+ const ::rtl::OUString& sItem)
+ throw(css::uno::Exception)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ impl_loadItemOnDemand(eType, sItem);
+}
+
+/*-----------------------------------------------
+ 27.10.2003 08:14
+-----------------------------------------------*/
+void FilterCache::addStatePropsToItem( EItemType eType,
+ const ::rtl::OUString& sItem,
+ CacheItem& rItem)
+ throw(css::uno::Exception)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ // Note: Opening of the configuration layer throws some exceptions
+ // if it failed. So we dont must check any reference here ...
+ css::uno::Reference< css::container::XNameAccess > xPackage;
+ css::uno::Reference< css::container::XNameAccess > xSet;
+ switch(eType)
+ {
+ case E_TYPE :
+ {
+ xPackage = css::uno::Reference< css::container::XNameAccess >(impl_openConfig(E_PROVIDER_TYPES), css::uno::UNO_QUERY);
+ xPackage->getByName(CFGSET_TYPES) >>= xSet;
+ }
+ break;
+
+ case E_FILTER :
+ {
+ xPackage = css::uno::Reference< css::container::XNameAccess >(impl_openConfig(E_PROVIDER_FILTERS), css::uno::UNO_QUERY);
+ xPackage->getByName(CFGSET_FILTERS) >>= xSet;
+ }
+ break;
+
+ case E_FRAMELOADER :
+ {
+ /* TODO
+ Hack -->
+ The default frame loader cant be located inside te normal set of frame loaders.
+ Its an atomic property inside the misc cfg package. So we cant retrieve the information
+ about FINALIZED and MANDATORY very easy ... :-(
+ => set it to readonly/required everytimes :-)
+ */
+ css::uno::Any aDirectValue = impl_getDirectCFGValue(CFGDIRECTKEY_DEFAULTFRAMELOADER);
+ ::rtl::OUString sDefaultFrameLoader;
+ if (
+ (aDirectValue >>= sDefaultFrameLoader) &&
+ (sDefaultFrameLoader.getLength() ) &&
+ (sItem.equals(sDefaultFrameLoader) )
+ )
+ {
+ rItem[PROPNAME_FINALIZED] <<= sal_True;
+ rItem[PROPNAME_MANDATORY] <<= sal_True;
+ return;
+ }
+ /* <-- HACK */
+
+ xPackage = css::uno::Reference< css::container::XNameAccess >(impl_openConfig(E_PROVIDER_OTHERS), css::uno::UNO_QUERY);
+ xPackage->getByName(CFGSET_FRAMELOADERS) >>= xSet;
+ }
+ break;
+
+ case E_CONTENTHANDLER :
+ {
+ xPackage = css::uno::Reference< css::container::XNameAccess >(impl_openConfig(E_PROVIDER_OTHERS), css::uno::UNO_QUERY);
+ xPackage->getByName(CFGSET_CONTENTHANDLERS) >>= xSet;
+ }
+ break;
+ default: break;
+ }
+
+ try
+ {
+ css::uno::Reference< css::beans::XProperty > xItem;
+ xSet->getByName(sItem) >>= xItem;
+ css::beans::Property aDescription = xItem->getAsProperty();
+
+ sal_Bool bFinalized = ((aDescription.Attributes & css::beans::PropertyAttribute::READONLY ) == css::beans::PropertyAttribute::READONLY );
+ sal_Bool bMandatory = ((aDescription.Attributes & css::beans::PropertyAttribute::REMOVEABLE) != css::beans::PropertyAttribute::REMOVEABLE);
+
+ rItem[PROPNAME_FINALIZED] <<= bFinalized;
+ rItem[PROPNAME_MANDATORY] <<= bMandatory;
+ }
+ catch(const css::container::NoSuchElementException&)
+ {
+ /* Ignore exceptions for missing elements inside configuration.
+ May by the following reason exists:
+ - The item does not exists inside the new configuration package org.openoffice.TypeDetection - but
+ we got it from the old package org.openoffice.Office/TypeDetection. We dont migrate such items
+ automaticly to the new format. Because it will disturb e.g. the deinstallation of an external filter
+ package. Because such external filter can remove the old file - but not the automaticly created new one ...
+
+ => mark item as FINALIZED / MANDATORY, we dont support writing to the old format
+ */
+ rItem[PROPNAME_FINALIZED] <<= sal_True;
+ rItem[PROPNAME_MANDATORY] <<= sal_True;
+ }
+
+ // <- SAFE
+}
+
+/*-----------------------------------------------
+ 05.03.2004 10:36
+-----------------------------------------------*/
+void FilterCache::removeStatePropsFromItem(CacheItem& rItem)
+ throw(css::uno::Exception)
+{
+ CacheItem::iterator pIt;
+ pIt = rItem.find(PROPNAME_FINALIZED);
+ if (pIt != rItem.end())
+ rItem.erase(pIt);
+ pIt = rItem.find(PROPNAME_MANDATORY);
+ if (pIt != rItem.end())
+ rItem.erase(pIt);
+}
+
+/*-----------------------------------------------
+ 02.07.2003 09:17
+-----------------------------------------------*/
+void FilterCache::flush()
+ throw(css::uno::Exception)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ // renew all dependencies and optimizations
+ impl_validateAndOptimize();
+
+ if (m_lChangedTypes.size() > 0)
+ {
+ css::uno::Reference< css::container::XNameAccess > xConfig(impl_openConfig(E_PROVIDER_TYPES), css::uno::UNO_QUERY);
+ css::uno::Reference< css::container::XNameAccess > xSet ;
+
+ xConfig->getByName(CFGSET_TYPES) >>= xSet;
+ impl_flushByList(xSet, E_TYPE, m_lTypes, m_lChangedTypes);
+
+ css::uno::Reference< css::util::XChangesBatch > xFlush(xConfig, css::uno::UNO_QUERY);
+ xFlush->commitChanges();
+ }
+
+ if (m_lChangedFilters.size() > 0)
+ {
+ css::uno::Reference< css::container::XNameAccess > xConfig(impl_openConfig(E_PROVIDER_FILTERS), css::uno::UNO_QUERY);
+ css::uno::Reference< css::container::XNameAccess > xSet ;
+
+ xConfig->getByName(CFGSET_FILTERS) >>= xSet;
+ impl_flushByList(xSet, E_FILTER, m_lFilters, m_lChangedFilters);
+
+ css::uno::Reference< css::util::XChangesBatch > xFlush(xConfig, css::uno::UNO_QUERY);
+ xFlush->commitChanges();
+ }
+
+ /*TODO FrameLoader/ContentHandler must be flushed here too ... */
+}
+
+/*-----------------------------------------------
+ 20.10.2003 09:22
+-----------------------------------------------*/
+void FilterCache::impl_flushByList(const css::uno::Reference< css::container::XNameAccess >& xSet ,
+ EItemType eType ,
+ const CacheItemList& rCache,
+ const OUStringList& lItems)
+ throw(css::uno::Exception)
+{
+ css::uno::Reference< css::container::XNameContainer > xAddRemoveSet = css::uno::Reference< css::container::XNameContainer > (xSet, css::uno::UNO_QUERY);
+ css::uno::Reference< css::container::XNameReplace > xReplaceeSet = css::uno::Reference< css::container::XNameReplace > (xSet, css::uno::UNO_QUERY);
+ css::uno::Reference< css::lang::XSingleServiceFactory > xFactory = css::uno::Reference< css::lang::XSingleServiceFactory >(xSet, css::uno::UNO_QUERY);
+
+ for (OUStringList::const_iterator pIt = lItems.begin();
+ pIt != lItems.end() ;
+ ++pIt )
+ {
+ const ::rtl::OUString& sItem = *pIt;
+ EItemFlushState eState = impl_specifyFlushOperation(xSet, rCache, sItem);
+ switch(eState)
+ {
+ case E_ITEM_REMOVED :
+ {
+ xAddRemoveSet->removeByName(sItem);
+ }
+ break;
+
+ case E_ITEM_ADDED :
+ {
+ css::uno::Reference< css::container::XNameReplace > xItem (xFactory->createInstance(), css::uno::UNO_QUERY);
+
+ // special case. no exception - but not a valid item => set must be finalized or mandatory!
+ // Reject flush operation by throwing an exception. At least one item couldnt be flushed.
+ if (!xItem.is())
+ throw css::uno::Exception(::rtl::OUString::createFromAscii("Cant add item. Set is finalized or mandatory!"),
+ css::uno::Reference< css::uno::XInterface >() );
+
+ CacheItemList::const_iterator pItem = rCache.find(sItem);
+ impl_saveItem(xItem, eType, pItem->second);
+ xAddRemoveSet->insertByName(sItem, css::uno::makeAny(xItem));
+ }
+ break;
+
+ case E_ITEM_CHANGED :
+ {
+ css::uno::Reference< css::container::XNameReplace > xItem;
+ xSet->getByName(sItem) >>= xItem;
+
+ // special case. no exception - but not a valid item => it must be finalized or mandatory!
+ // Reject flush operation by throwing an exception. At least one item couldnt be flushed.
+ if (!xItem.is())
+ throw css::uno::Exception(::rtl::OUString::createFromAscii("Cant change item. Its finalized or mandatory!"),
+ css::uno::Reference< css::uno::XInterface >() );
+
+ CacheItemList::const_iterator pItem = rCache.find(sItem);
+ impl_saveItem(xItem, eType, pItem->second);
+ }
+ break;
+ default: break;
+ }
+ }
+}
+
+/*-----------------------------------------------
+ 03.11.2003 08:38
+-----------------------------------------------*/
+void FilterCache::detectFlatForURL(const css::util::URL& aURL ,
+ FlatDetection& rFlatTypes) const
+ throw(css::uno::Exception)
+{
+ // extract extension from URL, so it can be used directly as key into our hash map!
+ // Note further: It must be converted to lower case, because the optimize hash
+ // (which maps extensions to types) work with lower case key strings!
+ INetURLObject aParser (aURL.Main);
+ ::rtl::OUString sExtension = aParser.getExtension(INetURLObject::LAST_SEGMENT ,
+ sal_True ,
+ INetURLObject::DECODE_WITH_CHARSET);
+ sExtension = sExtension.toAsciiLowerCase();
+
+ // SAFE -> ----------------------------------
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ //*******************************************
+ // i) Step over all well known URL pattern
+ // and add registered types to the return list too
+ // Do it as first one - because: if a type match by a
+ // pattern a following deep detection can be supressed!
+ // Further we can stop after first match ...
+ for (CacheItemRegistration::const_iterator pPattReg = m_lURLPattern2Types.begin();
+ pPattReg != m_lURLPattern2Types.end() ;
+ ++pPattReg )
+ {
+ WildCard aPatternCheck(pPattReg->first);
+ if (aPatternCheck.Matches(aURL.Main))
+ {
+ const OUStringList& rTypesForPattern = pPattReg->second;
+
+ FlatDetectionInfo aInfo;
+ aInfo.sType = *(rTypesForPattern.begin());
+ aInfo.bMatchByPattern = sal_True;
+
+ rFlatTypes.push_back(aInfo);
+// return;
+ }
+ }
+
+ //*******************************************
+ // ii) search types matching to the given extension.
+ // Copy every macthing type without changing its order!
+ // Because preferred types was added as first one during
+ // loading configuration.
+ CacheItemRegistration::const_iterator pExtReg = m_lExtensions2Types.find(sExtension);
+ if (pExtReg != m_lExtensions2Types.end())
+ {
+ const OUStringList& rTypesForExtension = pExtReg->second;
+ for (OUStringList::const_iterator pIt = rTypesForExtension.begin();
+ pIt != rTypesForExtension.end() ;
+ ++pIt )
+ {
+ FlatDetectionInfo aInfo;
+ aInfo.sType = *pIt;
+ aInfo.bMatchByExtension = sal_True;
+
+ rFlatTypes.push_back(aInfo);
+ }
+ }
+
+ aLock.clear();
+ // <- SAFE ----------------------------------
+}
+
+/*-----------------------------------------------
+ 03.11.2003 08:38
+-----------------------------------------------*/
+CacheItemList& FilterCache::impl_getItemList(EItemType eType) const
+ throw(css::uno::Exception)
+{
+ // SAFE -> ----------------------------------
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ switch(eType)
+ {
+ case E_TYPE : return m_lTypes ;
+ case E_FILTER : return m_lFilters ;
+ case E_FRAMELOADER : return m_lFrameLoaders ;
+ case E_CONTENTHANDLER : return m_lContentHandlers;
+ case E_DETECTSERVICE : return m_lDetectServices ;
+
+ default : throw css::uno::Exception(::rtl::OUString::createFromAscii("unknown sub container requested."),
+ css::uno::Reference< css::uno::XInterface >() );
+ }
+
+ // <- SAFE ----------------------------------
+}
+
+/*-----------------------------------------------
+ 21.10.2003 13:20
+-----------------------------------------------*/
+css::uno::Reference< css::uno::XInterface > FilterCache::impl_openConfig(EConfigProvider eProvider)
+ throw(css::uno::Exception)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ ::rtl::OUString sPath ;
+ css::uno::Reference< css::uno::XInterface >* pConfig = 0;
+ css::uno::Reference< css::uno::XInterface > xOld ;
+ ::rtl::OString sRtlLog ;
+ FilterCache::EItemType eItemType( FilterCache::E_TYPE ) ;
+ sal_Bool bStartListening = sal_False;
+
+ switch(eProvider)
+ {
+ case E_PROVIDER_TYPES :
+ {
+ if (m_xConfigTypes.is())
+ return m_xConfigTypes;
+ sPath = CFGPACKAGE_TD_TYPES;
+ pConfig = &m_xConfigTypes;
+ eItemType = FilterCache::E_TYPE;
+ bStartListening = sal_True;
+ sRtlLog = ::rtl::OString("framework (as96863) ::FilterCache::impl_openconfig(E_PROVIDER_TYPES)");
+ }
+ break;
+
+ case E_PROVIDER_FILTERS :
+ {
+ if (m_xConfigFilters.is())
+ return m_xConfigFilters;
+ sPath = CFGPACKAGE_TD_FILTERS;
+ pConfig = &m_xConfigFilters;
+ eItemType = FilterCache::E_FILTER;
+ bStartListening = sal_True;
+ sRtlLog = ::rtl::OString("framework (as96863) ::FilterCache::impl_openconfig(E_PROVIDER_FILTERS)");
+ }
+ break;
+
+ case E_PROVIDER_OTHERS :
+ {
+ if (m_xConfigOthers.is())
+ return m_xConfigOthers;
+ sPath = CFGPACKAGE_TD_OTHERS;
+ pConfig = &m_xConfigOthers;
+ eItemType = FilterCache::E_TYPE;
+ sRtlLog = ::rtl::OString("framework (as96863) ::FilterCache::impl_openconfig(E_PROVIDER_OTHERS)");
+ }
+ break;
+
+ case E_PROVIDER_OLD :
+ {
+ // This special provider is used to work with
+ // the old configuration format only. Its not cached!
+ sPath = CFGPACKAGE_TD_OLD;
+ pConfig = &xOld;
+ sRtlLog = ::rtl::OString("framework (as96863) ::FilterCache::impl_openconfig(E_PROVIDER_OLD)");
+ }
+ break;
+
+ default : throw css::uno::Exception(::rtl::OUString::createFromAscii("These configuration node isnt supported here for open!"), 0);
+ }
+
+ {
+ RTL_LOGFILE_CONTEXT(aLog, sRtlLog.getStr());
+ *pConfig = impl_createConfigAccess(sPath ,
+ sal_False, // bReadOnly
+ sal_True ); // bLocalesMode
+ }
+
+ // Start listening for changes on that configuration access.
+ // We must not control the lifetime of this listener. Itself
+ // checks, when ist time to die :-)
+ if (bStartListening)
+ {
+ CacheUpdateListener* pListener = new CacheUpdateListener(m_xSMGR, *pConfig, eItemType);
+ pListener->startListening();
+ }
+
+ return *pConfig;
+ // <- SAFE
+}
+
+/*-----------------------------------------------
+ 17.07.2003 10:10
+-----------------------------------------------*/
+css::uno::Any FilterCache::impl_getDirectCFGValue(const ::rtl::OUString& sDirectKey)
+{
+ ::rtl::OUString sRoot;
+ ::rtl::OUString sKey ;
+
+ if (
+ (!::utl::splitLastFromConfigurationPath(sDirectKey, sRoot, sKey)) ||
+ (!sRoot.getLength() ) ||
+ (!sKey.getLength() )
+ )
+ return css::uno::Any();
+
+ css::uno::Reference< css::uno::XInterface > xCfg = impl_createConfigAccess(sRoot ,
+ sal_True , // bReadOnly
+ sal_False); // bLocalesMode
+ if (!xCfg.is())
+ return css::uno::Any();
+
+ css::uno::Reference< css::container::XNameAccess > xAccess(xCfg, css::uno::UNO_QUERY);
+ if (!xAccess.is())
+ return css::uno::Any();
+
+ css::uno::Any aValue;
+ try
+ {
+ aValue = xAccess->getByName(sKey);
+ }
+ catch(const css::uno::RuntimeException& exRun)
+ { throw exRun; }
+ #if OSL_DEBUG_LEVEL>0
+ catch(const css::uno::Exception& ex)
+ #else
+ catch(const css::uno::Exception&)
+ #endif
+ {
+ #if OSL_DEBUG_LEVEL > 0
+ OSL_ENSURE(sal_False, ::rtl::OUStringToOString(ex.Message, RTL_TEXTENCODING_UTF8).getStr());
+ #endif
+ aValue.clear();
+ }
+
+ return aValue;
+}
+
+/*-----------------------------------------------
+ 17.07.2003 09:49
+-----------------------------------------------*/
+css::uno::Reference< css::uno::XInterface > FilterCache::impl_createConfigAccess(const ::rtl::OUString& sRoot ,
+ sal_Bool bReadOnly ,
+ sal_Bool bLocalesMode)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ css::uno::Reference< css::uno::XInterface > xCfg;
+
+ try
+ {
+ css::uno::Reference< css::lang::XMultiServiceFactory > xConfigProvider(
+ m_xSMGR->createInstance(SERVICE_CONFIGURATIONPROVIDER), css::uno::UNO_QUERY);
+
+ if (!xConfigProvider.is())
+ return css::uno::Reference< css::uno::XInterface >();
+
+ ::comphelper::SequenceAsVector< css::uno::Any > lParams;
+ css::beans::PropertyValue aParam ;
+
+ // set root path
+ aParam.Name = _FILTER_CONFIG_FROM_ASCII_("nodepath");
+ aParam.Value <<= sRoot;
+ lParams.push_back(css::uno::makeAny(aParam));
+
+ // enable "all locales mode" ... if required
+ if (bLocalesMode)
+ {
+ aParam.Name = _FILTER_CONFIG_FROM_ASCII_("locale");
+ aParam.Value <<= _FILTER_CONFIG_FROM_ASCII_("*" );
+ lParams.push_back(css::uno::makeAny(aParam));
+ }
+
+ // open it
+ if (bReadOnly)
+ xCfg = xConfigProvider->createInstanceWithArguments(SERVICE_CONFIGURATIONACCESS, lParams.getAsConstList());
+ else
+ xCfg = xConfigProvider->createInstanceWithArguments(SERVICE_CONFIGURATIONUPDATEACCESS, lParams.getAsConstList());
+
+ // If configuration could not be opened ... but factory method does not throwed an exception
+ // trigger throwing of our own CorruptedFilterConfigurationException.
+ // Let message empty. The normal exception text show enough informations to the user.
+ if (! xCfg.is())
+ throw css::uno::Exception(
+ _FILTER_CONFIG_FROM_ASCII_("Got NULL reference on opening configuration file ... but no exception."),
+ css::uno::Reference< css::uno::XInterface >());
+ }
+ catch(const css::uno::Exception& ex)
+ {
+ throw css::document::CorruptedFilterConfigurationException(
+ MESSAGE_CORRUPTED_FILTERCONFIG,
+ css::uno::Reference< css::uno::XInterface >(),
+ ex.Message);
+ }
+
+ return xCfg;
+ // <- SAFE
+}
+
+/*-----------------------------------------------
+ 24.10.2003 10:03
+-----------------------------------------------*/
+void FilterCache::impl_validateAndOptimize()
+ throw(css::uno::Exception)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ RTL_LOGFILE_CONTEXT( aLog, "framework (as96863) ::FilterCache::impl_validateAndOptimize");
+
+ // First check if any filter or type could be readed
+ // from the underlying configuration!
+ sal_Bool bSomeTypesShouldExist = ((m_eFillState & E_CONTAINS_STANDARD ) == E_CONTAINS_STANDARD );
+ sal_Bool bAllFiltersShouldExist = ((m_eFillState & E_CONTAINS_FILTERS ) == E_CONTAINS_FILTERS );
+
+#if OSL_DEBUG_LEVEL > 0
+
+ sal_Int32 nWarnings = 0;
+
+// sal_Bool bAllTypesShouldExist = ((m_eFillState & E_CONTAINS_TYPES ) == E_CONTAINS_TYPES );
+ sal_Bool bAllLoadersShouldExist = ((m_eFillState & E_CONTAINS_FRAMELOADERS ) == E_CONTAINS_FRAMELOADERS );
+ sal_Bool bAllHandlersShouldExist = ((m_eFillState & E_CONTAINS_CONTENTHANDLERS) == E_CONTAINS_CONTENTHANDLERS);
+#endif
+
+ if (
+ (
+ (bSomeTypesShouldExist) &&
+ (m_lTypes.size() < 1 )
+ ) ||
+ (
+ (bAllFiltersShouldExist) &&
+ (m_lFilters.size() < 1 )
+ )
+ )
+ {
+ throw css::document::CorruptedFilterConfigurationException(
+ MESSAGE_CORRUPTED_FILTERCONFIG,
+ css::uno::Reference< css::uno::XInterface >(),
+ ::rtl::OUString::createFromAscii("The list of types or filters is empty."));
+ }
+
+ // Create a log for all detected problems, which
+ // occure in the next feew lines.
+ // If there are some real errors throw a RuntimException!
+ // If there are some warnings only, show an assertion.
+ sal_Int32 nErrors = 0;
+ ::rtl::OUStringBuffer sLog(256);
+
+ CacheItemList::iterator pIt;
+
+ for (pIt = m_lTypes.begin(); pIt != m_lTypes.end(); ++pIt)
+ {
+ ::rtl::OUString sType = pIt->first;
+ CacheItem aType = pIt->second;
+
+ // create list of all known detect services / frame loader / content handler on demand
+ // Because these informations are available as type properties!
+ ::rtl::OUString sDetectService;
+ aType[PROPNAME_DETECTSERVICE ] >>= sDetectService;
+ if (sDetectService.getLength())
+ impl_resolveItem4TypeRegistration(&m_lDetectServices, sDetectService, sType);
+
+ // get its registration for file Extensions AND(!) URLPattern ...
+ // It doesnt matter if these items exists or if our
+ // used index access create some default ones ...
+ // only in case there is no filled set of Extensions AND
+ // no filled set of URLPattern -> we must try to remove this invalid item
+ // from this cache!
+ css::uno::Sequence< ::rtl::OUString > lExtensions;
+ css::uno::Sequence< ::rtl::OUString > lURLPattern;
+ aType[PROPNAME_EXTENSIONS] >>= lExtensions;
+ aType[PROPNAME_URLPATTERN] >>= lURLPattern;
+ sal_Int32 ce = lExtensions.getLength();
+ sal_Int32 cu = lURLPattern.getLength();
+
+#if OSL_DEBUG_LEVEL > 0
+
+ ::rtl::OUString sInternalTypeNameCheck;
+ aType[PROPNAME_NAME] >>= sInternalTypeNameCheck;
+ if (!sInternalTypeNameCheck.equals(sType))
+ {
+ sLog.appendAscii("Warning\t:\t");
+ sLog.appendAscii("The type \"" );
+ sLog.append (sType );
+ sLog.appendAscii("\" does support the property \"Name\" correctly.\n");
+ ++nWarnings;
+ }
+
+ if (!ce && !cu)
+ {
+ sLog.appendAscii("Warning\t:\t");
+ sLog.appendAscii("The type \"" );
+ sLog.append (sType );
+ sLog.appendAscii("\" does not contain any URL pattern nor any extensions.\n");
+ ++nWarnings;
+ }
+#endif
+
+ // create an optimized registration for this type to
+ // its set list of extensions/url pattern. If its a "normal" type
+ // set it at the end of this optimized list. But if its
+ // a "Preferred" one - set it to the front of this list.
+ // Of course multiple "Preferred" registrations can occure
+ // (they shouldnt - but they can!) ... Ignore it. The last
+ // preferred type is useable in the same manner then every
+ // other type!
+ sal_Bool bPreferred = sal_False;
+ aType[PROPNAME_PREFERRED] >>= bPreferred;
+
+ const ::rtl::OUString* pExtensions = lExtensions.getConstArray();
+ for (sal_Int32 e=0; e<ce; ++e)
+ {
+ // Note: We must be shure that adress the right hash entry
+ // does not depend from any upper/lower case problems ...
+ ::rtl::OUString sNormalizedExtension = pExtensions[e].toAsciiLowerCase();
+
+ OUStringList& lTypesForExtension = m_lExtensions2Types[sNormalizedExtension];
+ if (::std::find(lTypesForExtension.begin(), lTypesForExtension.end(), sType) != lTypesForExtension.end())
+ continue;
+
+ if (bPreferred)
+ lTypesForExtension.insert(lTypesForExtension.begin(), sType);
+ else
+ lTypesForExtension.push_back(sType);
+ }
+
+ const ::rtl::OUString* pURLPattern = lURLPattern.getConstArray();
+ for (sal_Int32 u=0; u<cu; ++u)
+ {
+ OUStringList& lTypesForURLPattern = m_lURLPattern2Types[pURLPattern[u]];
+ if (::std::find(lTypesForURLPattern.begin(), lTypesForURLPattern.end(), sType) != lTypesForURLPattern.end())
+ continue;
+
+ if (bPreferred)
+ lTypesForURLPattern.insert(lTypesForURLPattern.begin(), sType);
+ else
+ lTypesForURLPattern.push_back(sType);
+ }
+
+#if OSL_DEBUG_LEVEL > 0
+
+ // Dont check cross references between types and filters, if
+ // not all filters read from disk!
+ // OK - this cache can read single filters on demand too ...
+ // but then the fill state of this cache shouldnt be set to E_CONTAINS_FILTERS!
+ if (!bAllFiltersShouldExist)
+ continue;
+
+ ::rtl::OUString sPrefFilter;
+ aType[PROPNAME_PREFERREDFILTER] >>= sPrefFilter;
+ if (!sPrefFilter.getLength())
+ {
+ // OK - there is no filter for this type. But thats not an error.
+ // May be it can be handled by a ContentHandler ...
+ // But at this time its not guaranteed that there is any ContentHandler
+ // or FrameLoader inside this cache ... but on disk ...
+ sal_Bool bReferencedByLoader = sal_True;
+ sal_Bool bReferencedByHandler = sal_True;
+ if (bAllLoadersShouldExist)
+ bReferencedByLoader = (impl_searchFrameLoaderForType(sType).getLength()!=0);
+
+ if (bAllHandlersShouldExist)
+ bReferencedByHandler = (impl_searchContentHandlerForType(sType).getLength()!=0);
+
+ if (
+ (!bReferencedByLoader ) &&
+ (!bReferencedByHandler)
+ )
+ {
+ sLog.appendAscii("Warning\t:\t" );
+ sLog.appendAscii("The type \"" );
+ sLog.append (sType );
+ sLog.appendAscii("\" isnt used by any filter, loader or content handler.\n");
+ ++nWarnings;
+ }
+ }
+
+ if (sPrefFilter.getLength())
+ {
+ CacheItemList::const_iterator pIt2 = m_lFilters.find(sPrefFilter);
+ if (pIt2 == m_lFilters.end())
+ {
+ if (bAllFiltersShouldExist)
+ {
+ ++nWarnings; // preferred filters can point to a non-installed office module ! no error ... it's a warning only .-(
+ sLog.appendAscii("error\t:\t");
+ }
+ else
+ {
+ ++nWarnings;
+ sLog.appendAscii("warning\t:\t");
+ }
+
+ sLog.appendAscii("The type \"" );
+ sLog.append (sType );
+ sLog.appendAscii("\" points to an invalid filter \"");
+ sLog.append (sPrefFilter );
+ sLog.appendAscii("\".\n" );
+
+ continue;
+ }
+
+ CacheItem aPrefFilter = pIt2->second;
+ ::rtl::OUString sFilterTypeReg;
+ aPrefFilter[PROPNAME_TYPE] >>= sFilterTypeReg;
+ if (sFilterTypeReg != sType)
+ {
+ sLog.appendAscii("error\t:\t" );
+ sLog.appendAscii("The preferred filter \"" );
+ sLog.append (sPrefFilter );
+ sLog.appendAscii("\" of type \"" );
+ sLog.append (sType );
+ sLog.appendAscii("is registered for another type \"");
+ sLog.append (sFilterTypeReg );
+ sLog.appendAscii("\".\n" );
+ ++nErrors;
+ }
+
+ sal_Int32 nFlags = 0;
+ aPrefFilter[PROPNAME_FLAGS] >>= nFlags;
+ if ((nFlags & FLAGVAL_IMPORT) != FLAGVAL_IMPORT)
+ {
+ sLog.appendAscii("error\t:\t" );
+ sLog.appendAscii("The preferred filter \"" );
+ sLog.append (sPrefFilter );
+ sLog.appendAscii("\" of type \"" );
+ sLog.append (sType );
+ sLog.appendAscii("\" is not an IMPORT filter!\n");
+ ++nErrors;
+ }
+
+ ::rtl::OUString sInternalFilterNameCheck;
+ aPrefFilter[PROPNAME_NAME] >>= sInternalFilterNameCheck;
+ if (!sInternalFilterNameCheck.equals(sPrefFilter))
+ {
+ sLog.appendAscii("Warning\t:\t" );
+ sLog.appendAscii("The filter \"" );
+ sLog.append (sPrefFilter );
+ sLog.appendAscii("\" does support the property \"Name\" correctly.\n");
+ ++nWarnings;
+ }
+ }
+#endif
+ }
+
+ // create dependencies between the global default frame loader
+ // and all types (and of course if registered filters), which
+ // does not registered for any other loader.
+ css::uno::Any aDirectValue = impl_getDirectCFGValue(CFGDIRECTKEY_DEFAULTFRAMELOADER);
+ ::rtl::OUString sDefaultFrameLoader;
+
+ if (
+ (!(aDirectValue >>= sDefaultFrameLoader)) ||
+ (!sDefaultFrameLoader.getLength() )
+ )
+ {
+ sLog.appendAscii("error\t:\t" );
+ sLog.appendAscii("There is no valid default frame loader!?\n");
+ ++nErrors;
+ }
+
+ // a) get list of all well known types
+ // b) step over all well known frame loader services
+ // and remove all types from list a), which already
+ // referenced by a loader b)
+ OUStringList lTypes = getItemNames(E_TYPE);
+ for ( pIt = m_lFrameLoaders.begin();
+ pIt != m_lFrameLoaders.end() ;
+ ++pIt )
+ {
+ // Note: of course the default loader must be ignored here.
+ // Because we replace its registration later completly with all
+ // types, which are not referenced by any other loader.
+ // So we can avaoid our code against the complexity of a diff!
+ ::rtl::OUString sLoader = pIt->first;
+ if (sLoader.equals(sDefaultFrameLoader))
+ continue;
+
+ CacheItem& rLoader = pIt->second;
+ css::uno::Any& rTypesReg = rLoader[PROPNAME_TYPES];
+ OUStringList lTypesReg (rTypesReg);
+
+ for (OUStringList::const_iterator pTypesReg = lTypesReg.begin();
+ pTypesReg != lTypesReg.end() ;
+ ++pTypesReg )
+ {
+ OUStringList::iterator pTypeCheck = ::std::find(lTypes.begin(), lTypes.end(), *pTypesReg);
+ if (pTypeCheck != lTypes.end())
+ lTypes.erase(pTypeCheck);
+ }
+ }
+
+ CacheItem& rDefaultLoader = m_lFrameLoaders[sDefaultFrameLoader];
+ rDefaultLoader[PROPNAME_NAME ] <<= sDefaultFrameLoader;
+ rDefaultLoader[PROPNAME_TYPES] <<= lTypes.getAsConstList();
+
+ ::rtl::OUString sLogOut = sLog.makeStringAndClear();
+ OSL_ENSURE(!nErrors, ::rtl::OUStringToOString(sLogOut,RTL_TEXTENCODING_UTF8).getStr());
+ if (nErrors>0)
+ throw css::document::CorruptedFilterConfigurationException(
+ MESSAGE_CORRUPTED_FILTERCONFIG,
+ css::uno::Reference< css::uno::XInterface >(),
+ sLogOut);
+ OSL_ENSURE(!nWarnings, ::rtl::OUStringToOString(sLogOut,RTL_TEXTENCODING_UTF8).getStr());
+
+ // <- SAFE
+}
+
+/*-----------------------------------------------
+ 20.10.2003 08:15
+-----------------------------------------------*/
+void FilterCache::impl_addItem2FlushList( EItemType eType,
+ const ::rtl::OUString& sItem)
+ throw(css::uno::Exception)
+{
+ OUStringList* pList = 0;
+ switch(eType)
+ {
+ case E_TYPE :
+ pList = &m_lChangedTypes;
+ break;
+
+ case E_FILTER :
+ pList = &m_lChangedFilters;
+ break;
+
+ case E_FRAMELOADER :
+ pList = &m_lChangedFrameLoaders;
+ break;
+
+ case E_CONTENTHANDLER :
+ pList = &m_lChangedContentHandlers;
+ break;
+
+ case E_DETECTSERVICE :
+ pList = &m_lChangedDetectServices;
+ break;
+
+ default : throw css::uno::Exception(::rtl::OUString::createFromAscii("unsupported item type"), 0);
+ }
+
+ OUStringList::const_iterator pItem = ::std::find(pList->begin(), pList->end(), sItem);
+ if (pItem == pList->end())
+ pList->push_back(sItem);
+}
+
+/*-----------------------------------------------
+ 20.10.2003 08:49
+-----------------------------------------------*/
+FilterCache::EItemFlushState FilterCache::impl_specifyFlushOperation(const css::uno::Reference< css::container::XNameAccess >& xSet ,
+ const CacheItemList& rList,
+ const ::rtl::OUString& sItem)
+ throw(css::uno::Exception)
+{
+ sal_Bool bExistsInConfigLayer = xSet->hasByName(sItem);
+ sal_Bool bExistsInMemory = (rList.find(sItem) != rList.end());
+
+ EItemFlushState eState( E_ITEM_UNCHANGED );
+
+ // !? ... such situation can occure, if an item was added and(!) removed before it was flushed :-)
+ if (!bExistsInConfigLayer && !bExistsInMemory)
+ eState = E_ITEM_UNCHANGED;
+ else
+ if (!bExistsInConfigLayer && bExistsInMemory)
+ eState = E_ITEM_ADDED;
+ else
+ if (bExistsInConfigLayer && bExistsInMemory)
+ eState = E_ITEM_CHANGED;
+ else
+ if (bExistsInConfigLayer && !bExistsInMemory)
+ eState = E_ITEM_REMOVED;
+
+ return eState;
+}
+
+/*-----------------------------------------------
+ 14.10.2003 09:26
+-----------------------------------------------*/
+void FilterCache::impl_resolveItem4TypeRegistration( CacheItemList* pList,
+ const ::rtl::OUString& sItem,
+ const ::rtl::OUString& sType)
+ throw(css::uno::Exception)
+{
+ CacheItem& rItem = (*pList)[sItem];
+ // In case its a new created entry (automaticly done by the hash_map index operator!)
+ // we must be shure, that this entry has its own name as property available.
+ // Its needed later at our container interface!
+ rItem[PROPNAME_NAME] <<= sItem;
+
+ OUStringList lTypeRegs(rItem[PROPNAME_TYPES]);
+ if (::std::find(lTypeRegs.begin(), lTypeRegs.end(), sType) == lTypeRegs.end())
+ {
+ lTypeRegs.push_back(sType);
+ rItem[PROPNAME_TYPES] <<= lTypeRegs.getAsConstList();
+ }
+}
+
+/*-----------------------------------------------
+ 28.10.2003 09:18
+-----------------------------------------------*/
+void FilterCache::impl_load(EFillState eRequiredState)
+ throw(css::uno::Exception)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ // Attention: Detect services are part of the standard set!
+ // So there is no need to handle it seperatly.
+
+ // ------------------------------------------
+ // a) The standard set of config value is needed.
+ if (
+ ((eRequiredState & E_CONTAINS_STANDARD) == E_CONTAINS_STANDARD) &&
+ ((m_eFillState & E_CONTAINS_STANDARD) != E_CONTAINS_STANDARD)
+ )
+ {
+ // Attention! If config couldnt be opened successfully
+ // and exception os thrown automaticly and must be forwarded
+ // to our calli ...
+ css::uno::Reference< css::container::XNameAccess > xTypes(impl_openConfig(E_PROVIDER_TYPES), css::uno::UNO_QUERY);
+ {
+ RTL_LOGFILE_CONTEXT( aLog, "framework (as96863) ::FilterCache::load std");
+ impl_loadSet(xTypes, E_TYPE, E_READ_STANDARD, &m_lTypes);
+ }
+ }
+
+ // ------------------------------------------
+ // b) We need all type informations ...
+ if (
+ ((eRequiredState & E_CONTAINS_TYPES) == E_CONTAINS_TYPES) &&
+ ((m_eFillState & E_CONTAINS_TYPES) != E_CONTAINS_TYPES)
+ )
+ {
+ // Attention! If config couldnt be opened successfully
+ // and exception os thrown automaticly and must be forwarded
+ // to our calli ...
+ css::uno::Reference< css::container::XNameAccess > xTypes(impl_openConfig(E_PROVIDER_TYPES), css::uno::UNO_QUERY);
+ {
+ RTL_LOGFILE_CONTEXT( aLog, "framework (as96863) ::FilterCache::load all types");
+ impl_loadSet(xTypes, E_TYPE, E_READ_UPDATE, &m_lTypes);
+ }
+ }
+
+ // ------------------------------------------
+ // c) We need all filter informations ...
+ if (
+ ((eRequiredState & E_CONTAINS_FILTERS) == E_CONTAINS_FILTERS) &&
+ ((m_eFillState & E_CONTAINS_FILTERS) != E_CONTAINS_FILTERS)
+ )
+ {
+ // Attention! If config couldnt be opened successfully
+ // and exception os thrown automaticly and must be forwarded
+ // to our calli ...
+ css::uno::Reference< css::container::XNameAccess > xFilters(impl_openConfig(E_PROVIDER_FILTERS), css::uno::UNO_QUERY);
+ {
+ RTL_LOGFILE_CONTEXT( aLog, "framework (as96863) ::FilterCache::load all filters");
+ impl_loadSet(xFilters, E_FILTER, E_READ_ALL, &m_lFilters);
+ }
+ }
+
+ // ------------------------------------------
+ // c) We need all frame loader informations ...
+ if (
+ ((eRequiredState & E_CONTAINS_FRAMELOADERS) == E_CONTAINS_FRAMELOADERS) &&
+ ((m_eFillState & E_CONTAINS_FRAMELOADERS) != E_CONTAINS_FRAMELOADERS)
+ )
+ {
+ // Attention! If config couldnt be opened successfully
+ // and exception os thrown automaticly and must be forwarded
+ // to our calli ...
+ css::uno::Reference< css::container::XNameAccess > xLoaders(impl_openConfig(E_PROVIDER_OTHERS), css::uno::UNO_QUERY);
+ {
+ RTL_LOGFILE_CONTEXT( aLog, "framework (as96863) ::FilterCache::load all frame loader");
+ impl_loadSet(xLoaders, E_FRAMELOADER, E_READ_ALL, &m_lFrameLoaders);
+ }
+ }
+
+ // ------------------------------------------
+ // d) We need all content handler informations ...
+ if (
+ ((eRequiredState & E_CONTAINS_CONTENTHANDLERS) == E_CONTAINS_CONTENTHANDLERS) &&
+ ((m_eFillState & E_CONTAINS_CONTENTHANDLERS) != E_CONTAINS_CONTENTHANDLERS)
+ )
+ {
+ // Attention! If config couldnt be opened successfully
+ // and exception os thrown automaticly and must be forwarded
+ // to our calli ...
+ css::uno::Reference< css::container::XNameAccess > xHandlers(impl_openConfig(E_PROVIDER_OTHERS), css::uno::UNO_QUERY);
+ {
+ RTL_LOGFILE_CONTEXT( aLog, "framework (as96863) ::FilterCache::load all content handler");
+ impl_loadSet(xHandlers, E_CONTENTHANDLER, E_READ_ALL, &m_lContentHandlers);
+ }
+ }
+
+ // update fill state. Note: its a bit field, which combines different parts.
+ m_eFillState = (EFillState) ((sal_Int32)m_eFillState | (sal_Int32)eRequiredState);
+
+ // any data readed?
+ // yes! => validate it and update optimized structures.
+ impl_validateAndOptimize();
+
+ // <- SAFE
+}
+
+/*-----------------------------------------------
+ 22.09.2003 14:27
+-----------------------------------------------*/
+void FilterCache::impl_loadSet(const css::uno::Reference< css::container::XNameAccess >& xConfig,
+ EItemType eType ,
+ EReadOption eOption,
+ CacheItemList* pCache )
+ throw(css::uno::Exception)
+{
+ // get access to the right configuration set
+ ::rtl::OUString sSetName;
+ switch(eType)
+ {
+ case E_TYPE :
+ sSetName = CFGSET_TYPES;
+ break;
+
+ case E_FILTER :
+ sSetName = CFGSET_FILTERS;
+ break;
+
+ case E_FRAMELOADER :
+ sSetName = CFGSET_FRAMELOADERS;
+ break;
+
+ case E_CONTENTHANDLER :
+ sSetName = CFGSET_CONTENTHANDLERS;
+ break;
+ default: break;
+ }
+
+ css::uno::Reference< css::container::XNameAccess > xSet;
+ css::uno::Sequence< ::rtl::OUString > lItems;
+
+ try
+ {
+ css::uno::Any aVal = xConfig->getByName(sSetName);
+ if (!(aVal >>= xSet) || !xSet.is())
+ {
+ ::rtl::OUStringBuffer sMsg(256);
+ sMsg.appendAscii("Could not open configuration set \"");
+ sMsg.append (sSetName );
+ sMsg.appendAscii("\"." );
+ throw css::uno::Exception(
+ sMsg.makeStringAndClear(),
+ css::uno::Reference< css::uno::XInterface >());
+ }
+ lItems = xSet->getElementNames();
+ }
+ catch(const css::uno::Exception& ex)
+ {
+ throw css::document::CorruptedFilterConfigurationException(
+ MESSAGE_CORRUPTED_FILTERCONFIG,
+ css::uno::Reference< css::uno::XInterface >(),
+ ex.Message);
+ }
+
+ // get names of all existing sub items of this set
+ // step over it and fill internal cache structures.
+
+ // But dont update optimized structures like e.g. hash
+ // for mapping extensions to its types!
+
+ const ::rtl::OUString* pItems = lItems.getConstArray();
+ sal_Int32 c = lItems.getLength();
+ for (sal_Int32 i=0; i<c; ++i)
+ {
+ CacheItemList::iterator pItem = pCache->find(pItems[i]);
+ switch(eOption)
+ {
+ // a) read a standard set of properties only or read all
+ case E_READ_STANDARD :
+ case E_READ_ALL :
+ {
+ try
+ {
+ (*pCache)[pItems[i]] = impl_loadItem(xSet, eType, pItems[i], eOption);
+ }
+ catch(const css::uno::Exception& ex)
+ {
+ throw css::document::CorruptedFilterConfigurationException(
+ MESSAGE_CORRUPTED_FILTERCONFIG,
+ css::uno::Reference< css::uno::XInterface >(),
+ ex.Message);
+ }
+ }
+ break;
+
+ // b) read optional properties only!
+ // All items must already exist inside our cache.
+ // But they must be updated.
+ case E_READ_UPDATE :
+ {
+ if (pItem == pCache->end())
+ {
+ ::rtl::OUStringBuffer sMsg(256);
+ sMsg.appendAscii("item \"" );
+ sMsg.append (pItems[i] );
+ sMsg.appendAscii("\" not found for update!");
+ throw css::uno::Exception(sMsg.makeStringAndClear() ,
+ css::uno::Reference< css::uno::XInterface >());
+ }
+ try
+ {
+ CacheItem aItem = impl_loadItem(xSet, eType, pItems[i], eOption);
+ pItem->second.update(aItem);
+ }
+ catch(const css::uno::Exception& ex)
+ {
+ throw css::document::CorruptedFilterConfigurationException(
+ MESSAGE_CORRUPTED_FILTERCONFIG,
+ css::uno::Reference< css::uno::XInterface >(),
+ ex.Message);
+ }
+ }
+ break;
+ default: break;
+ }
+ }
+}
+
+/*-----------------------------------------------
+ 26.11.2003 12:49
+-----------------------------------------------*/
+void FilterCache::impl_readPatchUINames(const css::uno::Reference< css::container::XNameAccess >& xNode,
+ CacheItem& rItem)
+ throw(css::uno::Exception)
+{
+ static ::rtl::OUString FORMATNAME_VAR = ::rtl::OUString::createFromAscii("%productname%" );
+ static ::rtl::OUString FORMATVERSION_VAR = ::rtl::OUString::createFromAscii("%formatversion%");
+
+ // SAFE -> ----------------------------------
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ ::rtl::OUString sFormatName = m_sFormatName ;
+ ::rtl::OUString sFormatVersion = m_sFormatVersion;
+ ::rtl::OUString sActLocale = m_sActLocale ;
+ aLock.clear();
+ // <- SAFE ----------------------------------
+
+ css::uno::Any aVal = xNode->getByName(PROPNAME_UINAME);
+ css::uno::Reference< css::container::XNameAccess > xUIName;
+ if (!(aVal >>= xUIName) && !xUIName.is())
+ return;
+
+ const ::comphelper::SequenceAsVector< ::rtl::OUString > lLocales(xUIName->getElementNames());
+ ::comphelper::SequenceAsVector< ::rtl::OUString >::const_iterator pLocale ;
+ ::comphelper::SequenceAsHashMap lUINames;
+
+ // patch %PRODUCTNAME and %FORMATNAME
+ for ( pLocale = lLocales.begin();
+ pLocale != lLocales.end() ;
+ ++pLocale )
+ {
+ const ::rtl::OUString& sLocale = *pLocale;
+
+ ::rtl::OUString sValue;
+ xUIName->getByName(sLocale) >>= sValue;
+
+ // replace %productname%
+ sal_Int32 nIndex = sValue.indexOf(FORMATNAME_VAR);
+ while(nIndex != -1)
+ {
+ sValue = sValue.replaceAt(nIndex, FORMATNAME_VAR.getLength(), sFormatName);
+ nIndex = sValue.indexOf(FORMATNAME_VAR, nIndex);
+ }
+ // replace %formatversion%
+ nIndex = sValue.indexOf(FORMATVERSION_VAR);
+ while(nIndex != -1)
+ {
+ sValue = sValue.replaceAt(nIndex, FORMATVERSION_VAR.getLength(), sFormatVersion);
+ nIndex = sValue.indexOf(FORMATVERSION_VAR, nIndex);
+ }
+
+ lUINames[sLocale] <<= sValue;
+ }
+
+ aVal <<= lUINames.getAsConstPropertyValueList();
+ rItem[PROPNAME_UINAMES] = aVal;
+
+ // find right UIName for current office locale
+ // Use fallbacks too!
+ pLocale = ::comphelper::Locale::getFallback(lLocales, sActLocale);
+ if (pLocale == lLocales.end())
+ {
+ #if OSL_DEBUG_LEVEL > 0
+ ::rtl::OUString sName = rItem.getUnpackedValueOrDefault(PROPNAME_NAME, ::rtl::OUString());
+
+ ::rtl::OUStringBuffer sMsg(256);
+ sMsg.appendAscii("Fallback scenario for filter or type '" );
+ sMsg.append (sName );
+ sMsg.appendAscii("' and locale '" );
+ sMsg.append (sActLocale );
+ sMsg.appendAscii("' failed. Please check your filter configuration.");
+
+ OSL_ENSURE(sal_False, _FILTER_CONFIG_TO_ASCII_(sMsg.makeStringAndClear()));
+ #endif
+ return;
+ }
+
+ const ::rtl::OUString& sLocale = *pLocale;
+ ::comphelper::SequenceAsHashMap::const_iterator pUIName = lUINames.find(sLocale);
+ if (pUIName != lUINames.end())
+ rItem[PROPNAME_UINAME] = pUIName->second;
+}
+
+/*-----------------------------------------------
+ 26.11.2003 12:56
+-----------------------------------------------*/
+void FilterCache::impl_savePatchUINames(const css::uno::Reference< css::container::XNameReplace >& xNode,
+ const CacheItem& rItem)
+ throw(css::uno::Exception)
+{
+ css::uno::Reference< css::container::XNameContainer > xAdd (xNode, css::uno::UNO_QUERY);
+ css::uno::Reference< css::container::XNameAccess > xCheck(xNode, css::uno::UNO_QUERY);
+
+ css::uno::Sequence< css::beans::PropertyValue > lUINames = rItem.getUnpackedValueOrDefault(PROPNAME_UINAMES, css::uno::Sequence< css::beans::PropertyValue >());
+ sal_Int32 c = lUINames.getLength();
+ const css::beans::PropertyValue* pUINames = lUINames.getConstArray();
+
+ for (sal_Int32 i=0; i<c; ++i)
+ {
+ if (xCheck->hasByName(pUINames[i].Name))
+ xNode->replaceByName(pUINames[i].Name, pUINames[i].Value);
+ else
+ xAdd->insertByName(pUINames[i].Name, pUINames[i].Value);
+ }
+}
+
+/*-----------------------------------------------
+ 29.10.2003 13:17
+ TODO
+ clarify, how the real problem behind the
+ wrong constructed CacheItem instance (which
+ will force a crash during destruction)
+ can be solved ...
+-----------------------------------------------*/
+CacheItem FilterCache::impl_loadItem(const css::uno::Reference< css::container::XNameAccess >& xSet ,
+ EItemType eType ,
+ const ::rtl::OUString& sItem ,
+ EReadOption eOption)
+ throw(css::uno::Exception)
+{
+ // try to get an API object, which points directly to the
+ // requested item. If it fail an exception should occure and
+ // break this operation. Of course returned API object must be
+ // checked too.
+ css::uno::Reference< css::container::XNameAccess > xItem;
+ #ifdef WORKAROUND_EXCEPTION_PROBLEM
+ try
+ {
+ #endif
+ css::uno::Any aVal = xSet->getByName(sItem);
+ if (!(aVal >>= xItem) || !xItem.is())
+ {
+ ::rtl::OUStringBuffer sMsg(256);
+ sMsg.appendAscii("found corrupted item \"");
+ sMsg.append (sItem );
+ sMsg.appendAscii("\"." );
+ throw css::uno::Exception(sMsg.makeStringAndClear() ,
+ css::uno::Reference< css::uno::XInterface >());
+ }
+ #ifdef WORKAROUND_EXCEPTION_PROBLEM
+ }
+ catch(const css::container::NoSuchElementException&)
+ {
+ throw;
+ }
+ #endif
+
+ // The internal name of an item must(!) be part of the property
+ // set too. Of course its already used as key into the e.g. outside
+ // used hash map ... but some of our API methods provide
+ // this property set as result only. But the user of this CacheItem
+ // should know, which value the key names has :-) ITS IMPORTANT!
+ CacheItem aItem;
+ aItem[PROPNAME_NAME] = css::uno::makeAny(sItem);
+ switch(eType)
+ {
+ //---------------------------------------
+ case E_TYPE :
+ {
+ // read standard properties of a type
+ if (
+ (eOption == E_READ_STANDARD) ||
+ (eOption == E_READ_ALL )
+ )
+ {
+ aItem[PROPNAME_PREFERREDFILTER] = xItem->getByName(PROPNAME_PREFERREDFILTER);
+ aItem[PROPNAME_DETECTSERVICE ] = xItem->getByName(PROPNAME_DETECTSERVICE );
+ aItem[PROPNAME_URLPATTERN ] = xItem->getByName(PROPNAME_URLPATTERN );
+ aItem[PROPNAME_EXTENSIONS ] = xItem->getByName(PROPNAME_EXTENSIONS );
+ aItem[PROPNAME_PREFERRED ] = xItem->getByName(PROPNAME_PREFERRED );
+ aItem[PROPNAME_CLIPBOARDFORMAT] = xItem->getByName(PROPNAME_CLIPBOARDFORMAT);
+ }
+ // read optional properties of a type
+ // no else here! Is an additional switch ...
+ if (
+ (eOption == E_READ_UPDATE) ||
+ (eOption == E_READ_ALL )
+ )
+ {
+ aItem[PROPNAME_MEDIATYPE ] = xItem->getByName(PROPNAME_MEDIATYPE );
+ impl_readPatchUINames(xItem, aItem);
+ }
+ }
+ break;
+
+ //---------------------------------------
+ case E_FILTER :
+ {
+ // read standard properties of a filter
+ if (
+ (eOption == E_READ_STANDARD) ||
+ (eOption == E_READ_ALL )
+ )
+ {
+ aItem[PROPNAME_TYPE ] = xItem->getByName(PROPNAME_TYPE );
+ aItem[PROPNAME_FILEFORMATVERSION] = xItem->getByName(PROPNAME_FILEFORMATVERSION);
+ aItem[PROPNAME_UICOMPONENT ] = xItem->getByName(PROPNAME_UICOMPONENT );
+ aItem[PROPNAME_FILTERSERVICE ] = xItem->getByName(PROPNAME_FILTERSERVICE );
+ aItem[PROPNAME_DOCUMENTSERVICE ] = xItem->getByName(PROPNAME_DOCUMENTSERVICE );
+
+ // special handling for flags! Convert it from a list of names to its
+ // int representation ...
+ css::uno::Sequence< ::rtl::OUString > lFlagNames;
+ if (xItem->getByName(PROPNAME_FLAGS) >>= lFlagNames)
+ aItem[PROPNAME_FLAGS] <<= FilterCache::impl_convertFlagNames2FlagField(lFlagNames);
+ }
+ // read optional properties of a filter
+ // no else here! Is an additional switch ...
+ if (
+ (eOption == E_READ_UPDATE) ||
+ (eOption == E_READ_ALL )
+ )
+ {
+ aItem[PROPNAME_USERDATA ] = xItem->getByName(PROPNAME_USERDATA );
+ aItem[PROPNAME_TEMPLATENAME] = xItem->getByName(PROPNAME_TEMPLATENAME);
+//TODO remove it if moving of filter uinames to type uinames
+// will be finished realy
+#ifdef AS_ENABLE_FILTER_UINAMES
+ impl_readPatchUINames(xItem, aItem);
+#endif // AS_ENABLE_FILTER_UINAMES
+ }
+ }
+ break;
+
+ //---------------------------------------
+ case E_FRAMELOADER :
+ case E_CONTENTHANDLER :
+ {
+ aItem[PROPNAME_TYPES] = xItem->getByName(PROPNAME_TYPES);
+ }
+ break;
+ default: break;
+ }
+
+ return aItem;
+}
+
+/*-----------------------------------------------
+ 27.10.2003 08:47
+-----------------------------------------------*/
+CacheItemList::iterator FilterCache::impl_loadItemOnDemand( EItemType eType,
+ const ::rtl::OUString& sItem)
+ throw(css::uno::Exception)
+{
+ CacheItemList* pList = 0;
+ css::uno::Reference< css::uno::XInterface > xConfig ;
+ ::rtl::OUString sSet ;
+
+ switch(eType)
+ {
+ case E_TYPE :
+ {
+ pList = &m_lTypes;
+ xConfig = impl_openConfig(E_PROVIDER_TYPES);
+ sSet = CFGSET_TYPES;
+ }
+ break;
+
+ case E_FILTER :
+ {
+ pList = &m_lFilters;
+ xConfig = impl_openConfig(E_PROVIDER_FILTERS);
+ sSet = CFGSET_FILTERS;
+ }
+ break;
+
+ case E_FRAMELOADER :
+ {
+ pList = &m_lFrameLoaders;
+ xConfig = impl_openConfig(E_PROVIDER_OTHERS);
+ sSet = CFGSET_FRAMELOADERS;
+ }
+ break;
+
+ case E_CONTENTHANDLER :
+ {
+ pList = &m_lContentHandlers;
+ xConfig = impl_openConfig(E_PROVIDER_OTHERS);
+ sSet = CFGSET_CONTENTHANDLERS;
+ }
+ break;
+
+ case E_DETECTSERVICE :
+ {
+ OSL_ENSURE(sal_False, "Cant load detect services on demand. Who use this unsupported feature?");
+ }
+ break;
+ }
+
+ css::uno::Reference< css::container::XNameAccess > xRoot(xConfig, css::uno::UNO_QUERY_THROW);
+ css::uno::Reference< css::container::XNameAccess > xSet ;
+ xRoot->getByName(sSet) >>= xSet;
+
+ CacheItemList::iterator pItemInCache = pList->find(sItem);
+ sal_Bool bItemInConfig = xSet->hasByName(sItem);
+
+ if (bItemInConfig)
+ {
+ CacheItem aItem;
+ CacheItem::iterator pDbgTest = aItem.find(PROPNAME_NAME);
+ aItem = impl_loadItem(xSet, eType, sItem, E_READ_ALL);
+ (*pList)[sItem] = aItem;
+ _FILTER_CONFIG_LOG_2_("impl_loadItemOnDemand(%d, \"%s\") ... OK", (int)eType, _FILTER_CONFIG_TO_ASCII_(sItem).getStr())
+ }
+ else
+ {
+ if (pItemInCache != pList->end())
+ pList->erase(pItemInCache);
+ // OK - this item does not exists inside configuration.
+ // And we already updated our internal cache.
+ // But the outside code needs this NoSuchElementException
+ // to know, that this item does notexists.
+ // Nobody checks the iterator!
+ throw css::container::NoSuchElementException();
+ }
+
+ return pList->find(sItem);
+}
+
+/*-----------------------------------------------
+ 20.10.2003 09:38
+-----------------------------------------------*/
+void FilterCache::impl_saveItem(const css::uno::Reference< css::container::XNameReplace >& xItem,
+ EItemType eType,
+ const CacheItem& aItem)
+ throw(css::uno::Exception)
+{
+ CacheItem::const_iterator pIt;
+ switch(eType)
+ {
+ //---------------------------------------
+ case E_TYPE :
+ {
+ pIt = aItem.find(PROPNAME_PREFERREDFILTER);
+ if (pIt != aItem.end())
+ xItem->replaceByName(PROPNAME_PREFERREDFILTER, pIt->second);
+ pIt = aItem.find(PROPNAME_DETECTSERVICE);
+ if (pIt != aItem.end())
+ xItem->replaceByName(PROPNAME_DETECTSERVICE, pIt->second);
+ pIt = aItem.find(PROPNAME_URLPATTERN);
+ if (pIt != aItem.end())
+ xItem->replaceByName(PROPNAME_URLPATTERN, pIt->second);
+ pIt = aItem.find(PROPNAME_EXTENSIONS);
+ if (pIt != aItem.end())
+ xItem->replaceByName(PROPNAME_EXTENSIONS, pIt->second);
+ pIt = aItem.find(PROPNAME_PREFERRED);
+ if (pIt != aItem.end())
+ xItem->replaceByName(PROPNAME_PREFERRED, pIt->second);
+ pIt = aItem.find(PROPNAME_MEDIATYPE);
+ if (pIt != aItem.end())
+ xItem->replaceByName(PROPNAME_MEDIATYPE, pIt->second);
+ pIt = aItem.find(PROPNAME_CLIPBOARDFORMAT);
+ if (pIt != aItem.end())
+ xItem->replaceByName(PROPNAME_CLIPBOARDFORMAT, pIt->second);
+
+ css::uno::Reference< css::container::XNameReplace > xUIName;
+ xItem->getByName(PROPNAME_UINAME) >>= xUIName;
+ impl_savePatchUINames(xUIName, aItem);
+ }
+ break;
+
+ //---------------------------------------
+ case E_FILTER :
+ {
+ pIt = aItem.find(PROPNAME_TYPE);
+ if (pIt != aItem.end())
+ xItem->replaceByName(PROPNAME_TYPE, pIt->second);
+ pIt = aItem.find(PROPNAME_FILEFORMATVERSION);
+ if (pIt != aItem.end())
+ xItem->replaceByName(PROPNAME_FILEFORMATVERSION, pIt->second);
+ pIt = aItem.find(PROPNAME_UICOMPONENT);
+ if (pIt != aItem.end())
+ xItem->replaceByName(PROPNAME_UICOMPONENT, pIt->second);
+ pIt = aItem.find(PROPNAME_FILTERSERVICE);
+ if (pIt != aItem.end())
+ xItem->replaceByName(PROPNAME_FILTERSERVICE, pIt->second);
+ pIt = aItem.find(PROPNAME_DOCUMENTSERVICE);
+ if (pIt != aItem.end())
+ xItem->replaceByName(PROPNAME_DOCUMENTSERVICE, pIt->second);
+ pIt = aItem.find(PROPNAME_USERDATA);
+ if (pIt != aItem.end())
+ xItem->replaceByName(PROPNAME_USERDATA, pIt->second);
+ pIt = aItem.find(PROPNAME_TEMPLATENAME);
+ if (pIt != aItem.end())
+ xItem->replaceByName(PROPNAME_TEMPLATENAME, pIt->second);
+
+ // special handling for flags! Convert it from an integer flag field back
+ // to a list of names ...
+ // But note: because we work directly on a reference to the cache item,
+ // its not allowd to change the value here. We must work on a copy!
+ sal_Int32 nFlags = 0;
+ pIt = aItem.find(PROPNAME_FLAGS);
+ if (pIt != aItem.end())
+ {
+ pIt->second >>= nFlags;
+ css::uno::Any aFlagNameList;
+ aFlagNameList <<= FilterCache::impl_convertFlagField2FlagNames(nFlags);
+ xItem->replaceByName(PROPNAME_FLAGS, aFlagNameList);
+ }
+
+//TODO remove it if moving of filter uinames to type uinames
+// will be finished realy
+#ifdef AS_ENABLE_FILTER_UINAMES
+ css::uno::Reference< css::container::XNameReplace > xUIName;
+ xItem->getByName(PROPNAME_UINAME) >>= xUIName;
+ impl_savePatchUINames(xUIName, aItem);
+#endif // AS_ENABLE_FILTER_UINAMES
+ }
+ break;
+
+ //---------------------------------------
+ case E_FRAMELOADER :
+ case E_CONTENTHANDLER :
+ {
+ pIt = aItem.find(PROPNAME_TYPES);
+ if (pIt != aItem.end())
+ xItem->replaceByName(PROPNAME_TYPES, pIt->second);
+ }
+ break;
+ default: break;
+ }
+}
+
+/*-----------------------------------------------
+ 20.10.2003 09:45
+ static! => no locks neccessary
+-----------------------------------------------*/
+css::uno::Sequence< ::rtl::OUString > FilterCache::impl_convertFlagField2FlagNames(sal_Int32 nFlags)
+{
+ OUStringList lFlagNames;
+
+ if ((nFlags & FLAGVAL_3RDPARTYFILTER ) == FLAGVAL_3RDPARTYFILTER ) lFlagNames.push_back(FLAGNAME_3RDPARTYFILTER );
+ if ((nFlags & FLAGVAL_ALIEN ) == FLAGVAL_ALIEN ) lFlagNames.push_back(FLAGNAME_ALIEN );
+ if ((nFlags & FLAGVAL_ASYNCHRON ) == FLAGVAL_ASYNCHRON ) lFlagNames.push_back(FLAGNAME_ASYNCHRON );
+ if ((nFlags & FLAGVAL_BROWSERPREFERRED ) == FLAGVAL_BROWSERPREFERRED ) lFlagNames.push_back(FLAGNAME_BROWSERPREFERRED );
+ if ((nFlags & FLAGVAL_CONSULTSERVICE ) == FLAGVAL_CONSULTSERVICE ) lFlagNames.push_back(FLAGNAME_CONSULTSERVICE );
+ if ((nFlags & FLAGVAL_DEFAULT ) == FLAGVAL_DEFAULT ) lFlagNames.push_back(FLAGNAME_DEFAULT );
+ if ((nFlags & FLAGVAL_ENCRYPTION ) == FLAGVAL_ENCRYPTION ) lFlagNames.push_back(FLAGNAME_ENCRYPTION );
+ if ((nFlags & FLAGVAL_EXPORT ) == FLAGVAL_EXPORT ) lFlagNames.push_back(FLAGNAME_EXPORT );
+ if ((nFlags & FLAGVAL_IMPORT ) == FLAGVAL_IMPORT ) lFlagNames.push_back(FLAGNAME_IMPORT );
+ if ((nFlags & FLAGVAL_INTERNAL ) == FLAGVAL_INTERNAL ) lFlagNames.push_back(FLAGNAME_INTERNAL );
+ if ((nFlags & FLAGVAL_NOTINCHOOSER ) == FLAGVAL_NOTINCHOOSER ) lFlagNames.push_back(FLAGNAME_NOTINCHOOSER );
+ if ((nFlags & FLAGVAL_NOTINFILEDIALOG ) == FLAGVAL_NOTINFILEDIALOG ) lFlagNames.push_back(FLAGNAME_NOTINFILEDIALOG );
+ if ((nFlags & FLAGVAL_NOTINSTALLED ) == FLAGVAL_NOTINSTALLED ) lFlagNames.push_back(FLAGNAME_NOTINSTALLED );
+ if ((nFlags & FLAGVAL_OWN ) == FLAGVAL_OWN ) lFlagNames.push_back(FLAGNAME_OWN );
+ if ((nFlags & FLAGVAL_PACKED ) == FLAGVAL_PACKED ) lFlagNames.push_back(FLAGNAME_PACKED );
+ if ((nFlags & FLAGVAL_PASSWORDTOMODIFY ) == FLAGVAL_PASSWORDTOMODIFY ) lFlagNames.push_back(FLAGNAME_PASSWORDTOMODIFY );
+ if ((nFlags & FLAGVAL_PREFERRED ) == FLAGVAL_PREFERRED ) lFlagNames.push_back(FLAGNAME_PREFERRED );
+ if ((nFlags & FLAGVAL_READONLY ) == FLAGVAL_READONLY ) lFlagNames.push_back(FLAGNAME_READONLY );
+ if ((nFlags & FLAGVAL_SUPPORTSSELECTION) == FLAGVAL_SUPPORTSSELECTION) lFlagNames.push_back(FLAGNAME_SUPPORTSSELECTION);
+ if ((nFlags & FLAGVAL_TEMPLATE ) == FLAGVAL_TEMPLATE ) lFlagNames.push_back(FLAGNAME_TEMPLATE );
+ if ((nFlags & FLAGVAL_TEMPLATEPATH ) == FLAGVAL_TEMPLATEPATH ) lFlagNames.push_back(FLAGNAME_TEMPLATEPATH );
+ if ((nFlags & FLAGVAL_USESOPTIONS ) == FLAGVAL_USESOPTIONS ) lFlagNames.push_back(FLAGNAME_USESOPTIONS );
+ if ((nFlags & FLAGVAL_COMBINED ) == FLAGVAL_COMBINED ) lFlagNames.push_back(FLAGNAME_COMBINED );
+
+ return lFlagNames.getAsConstList();
+}
+
+/*-----------------------------------------------
+ 27.06.2003 09:26
+ static! => no locks neccessary
+-----------------------------------------------*/
+sal_Int32 FilterCache::impl_convertFlagNames2FlagField(const css::uno::Sequence< ::rtl::OUString >& lNames)
+{
+ sal_Int32 nField = 0;
+
+ const ::rtl::OUString* pNames = lNames.getConstArray();
+ sal_Int32 c = lNames.getLength();
+ for (sal_Int32 i=0; i<c; ++i)
+ {
+ if (pNames[i].equals(FLAGNAME_3RDPARTYFILTER))
+ {
+ nField |= FLAGVAL_3RDPARTYFILTER;
+ continue;
+ }
+ if (pNames[i].equals(FLAGNAME_ALIEN))
+ {
+ nField |= FLAGVAL_ALIEN;
+ continue;
+ }
+ if (pNames[i].equals(FLAGNAME_ASYNCHRON))
+ {
+ nField |= FLAGVAL_ASYNCHRON;
+ continue;
+ }
+ if (pNames[i].equals(FLAGNAME_BROWSERPREFERRED))
+ {
+ nField |= FLAGVAL_BROWSERPREFERRED;
+ continue;
+ }
+ if (pNames[i].equals(FLAGNAME_CONSULTSERVICE))
+ {
+ nField |= FLAGVAL_CONSULTSERVICE;
+ continue;
+ }
+ if (pNames[i].equals(FLAGNAME_DEFAULT))
+ {
+ nField |= FLAGVAL_DEFAULT;
+ continue;
+ }
+ if (pNames[i].equals(FLAGNAME_ENCRYPTION))
+ {
+ nField |= FLAGVAL_ENCRYPTION;
+ continue;
+ }
+ if (pNames[i].equals(FLAGNAME_EXPORT))
+ {
+ nField |= FLAGVAL_EXPORT;
+ continue;
+ }
+ if (pNames[i].equals(FLAGNAME_IMPORT))
+ {
+ nField |= FLAGVAL_IMPORT;
+ continue;
+ }
+ if (pNames[i].equals(FLAGNAME_INTERNAL))
+ {
+ nField |= FLAGVAL_INTERNAL;
+ continue;
+ }
+ if (pNames[i].equals(FLAGNAME_NOTINCHOOSER))
+ {
+ nField |= FLAGVAL_NOTINCHOOSER;
+ continue;
+ }
+ if (pNames[i].equals(FLAGNAME_NOTINFILEDIALOG))
+ {
+ nField |= FLAGVAL_NOTINFILEDIALOG;
+ continue;
+ }
+ if (pNames[i].equals(FLAGNAME_NOTINSTALLED))
+ {
+ nField |= FLAGVAL_NOTINSTALLED;
+ continue;
+ }
+ if (pNames[i].equals(FLAGNAME_OWN))
+ {
+ nField |= FLAGVAL_OWN;
+ continue;
+ }
+ if (pNames[i].equals(FLAGNAME_PACKED))
+ {
+ nField |= FLAGVAL_PACKED;
+ continue;
+ }
+ if (pNames[i].equals(FLAGNAME_PASSWORDTOMODIFY))
+ {
+ nField |= FLAGVAL_PASSWORDTOMODIFY;
+ continue;
+ }
+ if (pNames[i].equals(FLAGNAME_PREFERRED))
+ {
+ nField |= FLAGVAL_PREFERRED;
+ continue;
+ }
+ if (pNames[i].equals(FLAGNAME_READONLY))
+ {
+ nField |= FLAGVAL_READONLY;
+ continue;
+ }
+ if (pNames[i].equals(FLAGNAME_SUPPORTSSELECTION))
+ {
+ nField |= FLAGVAL_SUPPORTSSELECTION;
+ continue;
+ }
+ if (pNames[i].equals(FLAGNAME_TEMPLATE))
+ {
+ nField |= FLAGVAL_TEMPLATE;
+ continue;
+ }
+ if (pNames[i].equals(FLAGNAME_TEMPLATEPATH))
+ {
+ nField |= FLAGVAL_TEMPLATEPATH;
+ continue;
+ }
+ if (pNames[i].equals(FLAGNAME_USESOPTIONS))
+ {
+ nField |= FLAGVAL_USESOPTIONS;
+ continue;
+ }
+ if (pNames[i].equals(FLAGNAME_COMBINED))
+ {
+ nField |= FLAGVAL_COMBINED;
+ continue;
+ }
+ }
+
+ return nField;
+}
+
+/*-----------------------------------------------
+ 12.02.2004 08:40
+-----------------------------------------------*/
+void FilterCache::impl_interpretDataVal4Type(const ::rtl::OUString& sValue,
+ sal_Int32 nProp ,
+ CacheItem& rItem )
+{
+ switch(nProp)
+ {
+ // Preferred
+ case 0: {
+ if (sValue.toInt32() == 1)
+ rItem[PROPNAME_PREFERRED] = css::uno::makeAny(sal_True);
+ else
+ rItem[PROPNAME_PREFERRED] = css::uno::makeAny(sal_False);
+ }
+ break;
+ // MediaType
+ case 1: rItem[PROPNAME_MEDIATYPE] <<= ::rtl::Uri::decode(sValue, rtl_UriDecodeWithCharset, RTL_TEXTENCODING_UTF8);
+ break;
+ // ClipboardFormat
+ case 2: rItem[PROPNAME_CLIPBOARDFORMAT] <<= ::rtl::Uri::decode(sValue, rtl_UriDecodeWithCharset, RTL_TEXTENCODING_UTF8);
+ break;
+ // URLPattern
+ case 3: rItem[PROPNAME_URLPATTERN] <<= impl_tokenizeString(sValue, (sal_Unicode)';').getAsConstList();
+ break;
+ // Extensions
+ case 4: rItem[PROPNAME_EXTENSIONS] <<= impl_tokenizeString(sValue, (sal_Unicode)';').getAsConstList();
+ break;
+ }
+}
+
+/*-----------------------------------------------
+ 12.02.2004 08:50
+-----------------------------------------------*/
+void FilterCache::impl_interpretDataVal4Filter(const ::rtl::OUString& sValue,
+ sal_Int32 nProp ,
+ CacheItem& rItem )
+{
+ switch(nProp)
+ {
+ // Order
+ case 0: {
+ sal_Int32 nOrder = sValue.toInt32();
+ if (nOrder > 0)
+ {
+ OSL_ENSURE(sal_False, "FilterCache::impl_interpretDataVal4Filter()\nCant move Order value from filter to type on demand!\n");
+ _FILTER_CONFIG_LOG_2_("impl_interpretDataVal4Filter(%d, \"%s\") ... OK", (int)eType, _FILTER_CONFIG_TO_ASCII_(rItem).getStr())
+ }
+ }
+ break;
+ // Type
+ case 1: rItem[PROPNAME_TYPE] <<= ::rtl::Uri::decode(sValue, rtl_UriDecodeWithCharset, RTL_TEXTENCODING_UTF8);
+ break;
+ // DocumentService
+ case 2: rItem[PROPNAME_DOCUMENTSERVICE] <<= ::rtl::Uri::decode(sValue, rtl_UriDecodeWithCharset, RTL_TEXTENCODING_UTF8);
+ break;
+ // FilterService
+ case 3: rItem[PROPNAME_FILTERSERVICE] <<= ::rtl::Uri::decode(sValue, rtl_UriDecodeWithCharset, RTL_TEXTENCODING_UTF8);
+ break;
+ // Flags
+ case 4: rItem[PROPNAME_FLAGS] <<= sValue.toInt32();
+ break;
+ // UserData
+ case 5: rItem[PROPNAME_USERDATA] <<= impl_tokenizeString(sValue, (sal_Unicode)';').getAsConstList();
+ break;
+ // FileFormatVersion
+ case 6: rItem[PROPNAME_FILEFORMATVERSION] <<= sValue.toInt32();
+ break;
+ // TemplateName
+ case 7: rItem[PROPNAME_TEMPLATENAME] <<= ::rtl::Uri::decode(sValue, rtl_UriDecodeWithCharset, RTL_TEXTENCODING_UTF8);
+ break;
+ // [optional!] UIComponent
+ case 8: rItem[PROPNAME_UICOMPONENT] <<= ::rtl::Uri::decode(sValue, rtl_UriDecodeWithCharset, RTL_TEXTENCODING_UTF8);
+ break;
+ }
+}
+
+/*-----------------------------------------------
+ 12.02.2004 08:30
+ TODO work on a cache copy first, which can be flushed afterwards
+ That would be usefully to gurantee a consistent cache.
+-----------------------------------------------*/
+void FilterCache::impl_readOldFormat()
+ throw(css::uno::Exception)
+{
+ static ::rtl::OUString TYPES_SET = ::rtl::OUString::createFromAscii("Types" );
+ static ::rtl::OUString FILTER_SET = ::rtl::OUString::createFromAscii("Filters");
+
+ // Attention: Opening/Reading of this old configuration format has to be handled gracefully.
+ // Its optional and shouldnt disturb our normal work!
+ // E.g. we must check, if the package exists ...
+
+ css::uno::Reference< css::container::XNameAccess > xCfg;
+ try
+ {
+ css::uno::Reference< css::uno::XInterface > xInt = impl_openConfig(E_PROVIDER_OLD);
+ xCfg = css::uno::Reference< css::container::XNameAccess >(xInt, css::uno::UNO_QUERY_THROW);
+ }
+ /* corrupt filter addon ? because it's external (optional) code .. we can ignore it. Addon wont work then ...
+ but that seams to be acceptable.
+ see #139088# for further informations
+ */
+ catch(const css::uno::Exception&)
+ { return; }
+
+ // May be there is no type set ...
+ if (xCfg->hasByName(TYPES_SET))
+ {
+ css::uno::Reference< css::container::XNameAccess > xSet;
+ xCfg->getByName(TYPES_SET) >>= xSet;
+ const css::uno::Sequence< ::rtl::OUString > lItems = xSet->getElementNames();
+ const ::rtl::OUString* pItems = lItems.getConstArray();
+ for (sal_Int32 i=0; i<lItems.getLength(); ++i)
+ m_lTypes[pItems[i]] = impl_readOldItem(xSet, E_TYPE, pItems[i]);
+ }
+
+ // May be there is no filter set ...
+ if (xCfg->hasByName(FILTER_SET))
+ {
+ css::uno::Reference< css::container::XNameAccess > xSet;
+ xCfg->getByName(FILTER_SET) >>= xSet;
+ const css::uno::Sequence< ::rtl::OUString > lItems = xSet->getElementNames();
+ const ::rtl::OUString* pItems = lItems.getConstArray();
+ for (sal_Int32 i=0; i<lItems.getLength(); ++i)
+ m_lFilters[pItems[i]] = impl_readOldItem(xSet, E_FILTER, pItems[i]);
+ }
+}
+
+/*-----------------------------------------------
+ 12.02.2004 08:30
+-----------------------------------------------*/
+CacheItem FilterCache::impl_readOldItem(const css::uno::Reference< css::container::XNameAccess >& xSet ,
+ EItemType eType,
+ const ::rtl::OUString& sItem)
+ throw(css::uno::Exception)
+{
+ css::uno::Reference< css::container::XNameAccess > xItem;
+ xSet->getByName(sItem) >>= xItem;
+ if (!xItem.is())
+ throw css::uno::Exception(
+ ::rtl::OUString::createFromAscii("Cant read old item."),
+ css::uno::Reference< css::uno::XInterface >());
+
+ CacheItem aItem;
+ aItem[PROPNAME_NAME] <<= sItem;
+
+ // Installed flag ...
+ // Isnt used any longer!
+
+ // UIName
+ impl_readPatchUINames(xItem, aItem);
+
+ // Data
+ ::rtl::OUString sData;
+ OUStringList lData;
+ xItem->getByName(::rtl::OUString::createFromAscii("Data")) >>= sData;
+ lData = impl_tokenizeString(sData, (sal_Unicode)',');
+ if (
+ (!sData.getLength()) ||
+ (lData.size()<1 )
+ )
+ {
+ throw css::uno::Exception(
+ ::rtl::OUString::createFromAscii("Cant read old item property DATA."),
+ css::uno::Reference< css::uno::XInterface >());
+ }
+
+ sal_Int32 nProp = 0;
+ for (OUStringList::const_iterator pProp = lData.begin();
+ pProp != lData.end() ;
+ ++pProp )
+ {
+ const ::rtl::OUString& sProp = *pProp;
+ switch(eType)
+ {
+ case E_TYPE :
+ impl_interpretDataVal4Type(sProp, nProp, aItem);
+ break;
+
+ case E_FILTER :
+ impl_interpretDataVal4Filter(sProp, nProp, aItem);
+ break;
+ default: break;
+ }
+ ++nProp;
+ }
+
+ return aItem;
+}
+
+/*-----------------------------------------------
+ 12.02.2004 08:15
+-----------------------------------------------*/
+OUStringList FilterCache::impl_tokenizeString(const ::rtl::OUString& sData ,
+ sal_Unicode cSeperator)
+{
+ OUStringList lData ;
+ sal_Int32 nToken = 0;
+ do
+ {
+ ::rtl::OUString sToken = sData.getToken(0, cSeperator, nToken);
+ lData.push_back(sToken);
+ }
+ while(nToken >= 0);
+ return lData;
+}
+
+#if OSL_DEBUG_LEVEL > 0
+/*-----------------------------------------------*/
+::rtl::OUString FilterCache::impl_searchFrameLoaderForType(const ::rtl::OUString& sType) const
+{
+ CacheItemList::const_iterator pIt;
+ for ( pIt = m_lFrameLoaders.begin();
+ pIt != m_lFrameLoaders.end() ;
+ ++pIt )
+ {
+ const ::rtl::OUString& sItem = pIt->first;
+ ::comphelper::SequenceAsHashMap lProps(pIt->second);
+ OUStringList lTypes(lProps[PROPNAME_TYPES]);
+
+ if (::std::find(lTypes.begin(), lTypes.end(), sType) != lTypes.end())
+ return sItem;
+ }
+
+ return ::rtl::OUString();
+}
+
+/*-----------------------------------------------*/
+::rtl::OUString FilterCache::impl_searchContentHandlerForType(const ::rtl::OUString& sType) const
+{
+ CacheItemList::const_iterator pIt;
+ for ( pIt = m_lContentHandlers.begin();
+ pIt != m_lContentHandlers.end() ;
+ ++pIt )
+ {
+ const ::rtl::OUString& sItem = pIt->first;
+ ::comphelper::SequenceAsHashMap lProps(pIt->second);
+ OUStringList lTypes(lProps[PROPNAME_TYPES]);
+
+ if (::std::find(lTypes.begin(), lTypes.end(), sType) != lTypes.end())
+ return sItem;
+ }
+
+ return ::rtl::OUString();
+}
+#endif
+
+/*-----------------------------------------------*/
+sal_Bool FilterCache::impl_isModuleInstalled(const ::rtl::OUString& sModule)
+{
+ css::uno::Reference< css::container::XNameAccess > xCfg;
+
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ if (! m_xModuleCfg.is())
+ {
+ m_xModuleCfg = css::uno::Reference< css::container::XNameAccess >(
+ ::comphelper::ConfigurationHelper::openConfig(
+ m_xSMGR,
+ ::rtl::OUString::createFromAscii("org.openoffice.Setup/Office/Factories"),
+ ::comphelper::ConfigurationHelper::E_READONLY),
+ css::uno::UNO_QUERY_THROW);
+ }
+
+ xCfg = m_xModuleCfg;
+ aLock.clear();
+ // <- SAFE
+
+ if (xCfg.is())
+ return xCfg->hasByName(sModule);
+
+ return sal_False;
+}
+
+ } // namespace config
+} // namespace filter
diff --git a/filter/source/config/cache/filtercache.hxx b/filter/source/config/cache/filtercache.hxx
new file mode 100644
index 000000000000..e2cc09ea3b43
--- /dev/null
+++ b/filter/source/config/cache/filtercache.hxx
@@ -0,0 +1,1066 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __FILTER_CONFIG_FILTERCACHE_HXX_
+#define __FILTER_CONFIG_FILTERCACHE_HXX_
+
+//_______________________________________________
+// includes
+
+#include "cacheitem.hxx"
+#include <com/sun/star/uno/Exception.hpp>
+#include <com/sun/star/util/URL.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/uno/XInterface.hpp>
+#include <com/sun/star/container/XNameAccess.hpp>
+#include <com/sun/star/container/XNameContainer.hpp>
+#include <com/sun/star/container/XNameReplace.hpp>
+#include <com/sun/star/util/ChangesEvent.hpp>
+#include <com/sun/star/uno/Reference.h>
+#include <com/sun/star/uno/Any.h>
+#include <rtl/ustring.hxx>
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+//_______________________________________________
+// definitions
+
+//_______________________________________________
+
+/** @short implements a cache, which contains all
+ elements of our filter and type detection
+ configuration.
+
+ @descr The cache itself is threadsafe implemented.
+ Because it should be used as a singleton only.
+ To do so please use reference mechanism as wrapper
+ around this FilterCache class.
+
+ @attention Because we use a trick to get a full initialized
+ mutex lock during initialization time (means during
+ the constructor runs), the base class FilterCacheLock
+ must be the first of all declared one!
+ Further we make it public. So any user of this class
+ can lock us from outside too.
+ */
+class FilterCache : public BaseLock
+{
+ //-------------------------------------------
+ // public types
+
+ public:
+
+ //---------------------------------------
+
+ /** @short identify the type of a container item.
+
+ @descr Because the cache interface is a generic one
+ every group of container items must be specified.
+ */
+ enum EItemType
+ {
+ E_TYPE ,
+ E_FILTER ,
+ E_FRAMELOADER ,
+ E_CONTENTHANDLER,
+ E_DETECTSERVICE
+ };
+
+ //---------------------------------------
+
+ /** @short indicates, which items already exists inside this cache
+ and which not.
+
+ @descr This cache supports a 2-step load mechanism.
+ First only types (and only some special properties of every type!)
+ but no filters/frame loaders/content handlers will be readed.
+ That should be enough to work with this cache e.g. for loading
+ the first document. After this first document was loaded successfully,
+ a special "load-on-demand-thread" will be started to fill this cache
+ with ALL other informations, which was not readed before.
+ Thats the second step. All operations on top of this cache will be
+ blocked then.
+ */
+ enum EFillState
+ {
+ E_CONTAINS_NOTHING = 0,
+ E_CONTAINS_STANDARD = 1,
+ E_CONTAINS_TYPES = 2,
+ E_CONTAINS_FILTERS = 4,
+ E_CONTAINS_DETECTSERVICES = 8,
+ E_CONTAINS_FRAMELOADERS = 16,
+ E_CONTAINS_CONTENTHANDLERS = 32,
+ E_CONTAINS_ALL = 63 // must be a combination of all excepting E_CONTAINS_NOTHING! Please update if items will be added or removed ...
+ };
+
+ //-------------------------------------------
+ // private types
+
+ private:
+
+ //---------------------------------------
+ /** @short regulate, which properties of a configured item
+ will be readed.
+
+ @descr To perform reading of all configuration items,
+ only standard properties will be handled. At a second
+ step all optional properties will be read and added to
+ our internal structures. Of course the combination of
+ both options can be used too, to get all properties
+ at the same time.
+ */
+ enum EReadOption
+ {
+ E_READ_NOTHING = 0,
+ E_READ_STANDARD = 1,
+ E_READ_UPDATE = 2,
+ E_READ_ALL = 3
+ };
+
+ //---------------------------------------
+ /** @short indicates the state of a configuration set item.
+
+ @descr Inside method flush we check:
+ <ul>
+ <li>if the item exists inside config layer but not inside our cache => REMOVED</li>
+ <li>if the item exists inside config layer and inside our cache => CHANGED</li>
+ <li>if the item does not exists inside config layer but inside our cache => ADDED.</li>
+ </ul>
+ */
+ enum EItemFlushState
+ {
+ /// indicates an unchanged item (can occure e.g. if an item was added and(!) removed before it was flushed ...
+ E_ITEM_UNCHANGED = 0,
+ /// indicates an item, which exists inside config layer but not inside our own cache
+ E_ITEM_REMOVED = 1,
+ /// indicates an item, which exists inside config layer and inside our own cache
+ E_ITEM_CHANGED = 2,
+ /// indicates an item, which does not exists inside config layer but inside our own cache
+ E_ITEM_ADDED = 3
+ };
+
+ //---------------------------------------
+ /** TODO document me */
+ enum EConfigProvider
+ {
+ E_PROVIDER_TYPES = 0,
+ E_PROVIDER_FILTERS = 1,
+ E_PROVIDER_OTHERS = 2,
+ E_PROVIDER_OLD = 3
+ };
+
+ //-------------------------------------------
+ // member
+
+ private:
+
+ //---------------------------------------
+ /** @short reference to an uno service manager, which can be used
+ to create own needed services. */
+ mutable css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR;
+
+ //---------------------------------------
+ /** @short holds the used configuration provider alive, which
+ provides access to the list of types. */
+ mutable css::uno::Reference< css::uno::XInterface > m_xConfigTypes;
+
+ //---------------------------------------
+ /** @short holds the used configuration provider alive, which
+ provides access to the list of filters. */
+ mutable css::uno::Reference< css::uno::XInterface > m_xConfigFilters;
+
+ //---------------------------------------
+ /** @short holds the used configuration provider alive, which
+ provides access to the list of other values needed
+ by our type detection framework. */
+ mutable css::uno::Reference< css::uno::XInterface > m_xConfigOthers;
+
+ //---------------------------------------
+ /** @short contains all loaded types with its properties. */
+ mutable CacheItemList m_lTypes;
+
+ //---------------------------------------
+ /** @short contains all well known detect service with its properties. */
+ mutable CacheItemList m_lDetectServices;
+
+ //---------------------------------------
+ /** @short contains all loaded filters with its properties. */
+ mutable CacheItemList m_lFilters;
+
+ //---------------------------------------
+ /** @short contains all loaded frame loader with its properties. */
+ mutable CacheItemList m_lFrameLoaders;
+
+ //---------------------------------------
+ /** @short contains all loaded content handler with its properties. */
+ mutable CacheItemList m_lContentHandlers;
+
+ //---------------------------------------
+ /** @short optimize mapping of URL extensions to a type representation,
+ by using extensions as key and a list of internal
+ type names as value. */
+ mutable CacheItemRegistration m_lExtensions2Types;
+
+ //---------------------------------------
+ /** @short optimize mapping of URL pattern to a type representation,
+ by using patterns as key and a list of internal
+ type names as value. */
+ mutable CacheItemRegistration m_lURLPattern2Types;
+
+ //---------------------------------------
+ /** @short contains the current locale of the office and will be
+ used to work with localized configuration values. */
+ ::rtl::OUString m_sActLocale;
+
+ //---------------------------------------
+ /** TODO */
+ ::rtl::OUString m_sFormatName;
+
+ //---------------------------------------
+ /** TODO */
+ ::rtl::OUString m_sFormatVersion;
+
+ //---------------------------------------
+ /** @short contains status, which cache items/properties
+ was already loaded from the underlying configuration.
+
+ @descr This information can be used to detect missing
+ informations and load it on demand.
+
+ @see EFillState
+ @see load()
+ */
+ EFillState m_eFillState;
+
+ //---------------------------------------
+ /** TODO document me ... */
+ OUStringList m_lChangedTypes;
+ OUStringList m_lChangedFilters;
+ OUStringList m_lChangedDetectServices;
+ OUStringList m_lChangedFrameLoaders;
+ OUStringList m_lChangedContentHandlers;
+
+ //---------------------------------------
+ /// readonly acccess to the module configuration of OOo
+ css::uno::Reference< css::container::XNameAccess > m_xModuleCfg;
+
+ //-------------------------------------------
+ // interface
+
+ public:
+
+ //---------------------------------------
+ // ctor/dtor
+
+ /** @short standard ctor
+
+ @descr Its not allowed to do anything here ...
+ especialy is forbidden to start operations,
+ which needs a FilterCache instance too!
+ Why? Because thie FilterCache instance will be
+ used as a singleton! And if during this ctor any
+ action related to this FilterCache singleton is
+ started ... a race will be the result.
+
+ The first method after construction of a new
+ singleton reference should be "load()". There
+ a special fill state of this cache can be forced.
+ */
+ FilterCache();
+
+ //---------------------------------------
+
+ /** @short standard dtor.
+ */
+ virtual ~FilterCache();
+
+ //---------------------------------------
+
+ /** @short creates a copy of this container.
+
+ @descr Such copy can be used then to modify items (add/change/remove)
+ without the risk to damage the original container.
+ After its changed data was flushed to the configuration it can be
+ removed.
+
+ The original container will get these new data automaticly
+ because it listen for changes on the internal used configuration layer.
+ If the new data are needed immediatly inside the original container,
+ the method takeOver() can be used to copy all changes back.
+ The may be following notifications of the configuration will be superflous then.
+ But they cant be stopped ...
+
+ All internal structures will be copied here. But the internal used
+ configuration (update) access wont be copied. The cloned instance contains
+ a different one.
+
+ @note The cloned instance is created on the heap. The user of this instance
+ has to remove it later.
+ */
+ virtual FilterCache* clone() const;
+
+ //---------------------------------------
+
+ /** @short copy the cache content or rClone back to this instance.
+ */
+ virtual void takeOver(const FilterCache& rClone);
+
+ //---------------------------------------
+
+ /** @short force special fill state of this cache.
+
+ @descr This method check if all requested items/properties already
+ exists. Only missing informations will be readed.
+ Otherwhise this method does nothing!
+
+ This method must be called from every user of this cache
+ everytimes it need a filled cache. Normaly we load
+ only standard informations into this cache on startup.
+ After a few seconds we start a special thread, which
+ may fill this cache completely. But if somehwere outside
+ need a filled cache before ... it can run into trouble,
+ if this "load-on-demand" thread does not finished its work before.
+ This method "load(xxx)" synchronize such load-on-demand requests.
+
+ Of course it would be possible to supress this special load thread
+ in general and start it manualy inside this load() request.
+ The outside code decide then, if and when this cache will be filled
+ with all available informations ...
+
+ @param bByThread
+ indicates using of this method by our global "load-on-demand-thread".
+ Its an implementation detail! We use it to check, if this "load()"
+ request was forced e.g. by one of our derived service container (which need
+ it to full fill its own operations) or if it was forced by our own
+ "load-on-demand-thread", which tries to optimize our startup performance
+ and start this load() only in case the office startup was already finished!
+
+ @throw An exception if the cache could not be filled realy
+ or seems to be invalid afterwards. But there is no reaction
+ at all if this method does nothing inside, because the cache
+ is already full filled!
+ */
+ virtual void load(EFillState eRequired ,
+ sal_Bool bByThread = sal_False)
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** @short return the current fill state of this cache.
+
+ @descr This information can be used e.g. to start
+ a search on top of this cache with a minimum on
+ informations ... and do it again, if some other
+ cache items seems to be available after calling of "loadAll()"
+ on this cache and first search does not had any valid results.
+
+ @return sal_True if the required fill state exists for this cache; FALSE
+ otherwise.
+ */
+ virtual sal_Bool isFillState(EFillState eRequired) const
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** @short return a list of key names for items, which match
+ the specified criteria.
+
+ @descr The returned key names can be used at another method "getItem()"
+ of this cache to get further informations about this item.
+
+ @attention Please note: because this cache can be used inside multithreaded
+ environments, such returned key name can point to an already removed
+ item! Please be aware of some "NoSuchElementExceptions" if you try to
+ call any other method of this cache in relation to this key name.
+
+ @param eType
+ specify the sub container of this cache, which should be used for
+ searching. see also EItemType.
+
+ @param lIProps
+ specify the property set, which must exist at the searched items
+ as minimum.
+
+ @param lEProps
+ specify the property set, which must not(!) exist at the searched items
+ as minimum.
+
+ @return [OUStringList]
+ a list of key names, which identify items of the queried sub container.
+ May be an empty list.
+
+ @throw [css::uno::Exception]
+ if some input parameter are wrong or the cache itself is not valid
+ any longer, because any operation before damage it.
+ */
+ virtual OUStringList getMatchingItemsByProps( EItemType eType ,
+ const CacheItem& lIProps ,
+ const CacheItem& lEProps = CacheItem()) const
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** @short indicates if the requested sub container
+ contains some items.
+
+ @descr We dont provide any information about the count
+ of such items. Because we dont implement any index
+ based interface! The information "we have items or not"
+ must be enough for the outside code ... till somewhere
+ give us a good reason. :-)
+
+ @param eType
+ specify the sub container of this cache, which should be used.
+ see also EItemType.
+
+ @return [sal_Bool]
+ True, if the requested sub container contains some items;
+ False otherwhise.
+
+ @throw [css::uno::Exception]
+ if some input parameter are wrong or the cache itself is not valid
+ any longer, because any operation before damage it.
+ */
+ virtual sal_Bool hasItems(EItemType eType) const
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** @short return a list of all key names, which represent
+ an item inside the specified sub container.
+
+ @attention Please note: because this cache can be used inside multithreaded
+ environments, such returned key names can point to some already removed
+ items! Please be aware of some "NoSuchElementExceptions" if you try to
+ call any other method of this cache in relation to this key names.
+
+ @param eType
+ specify the sub container of this cache, which should be used for
+ searching. see also EItemType.
+
+ @return [OUStringList]
+ a list of key names, which can be used to access the item properties
+ using some other methods of this cache.
+
+ @throw [css::uno::Exception]
+ if some input parameter are wrong or the cache itself is not valid
+ any longer, because any operation before damage it.
+ */
+ virtual OUStringList getItemNames(EItemType eType) const
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** @short check if the required item exist inside this container.
+
+ @attention This method exists to supports some UNO container interfaces
+ only. (e.g. XNameAccess.hasByName()). But inside multithreaded
+ environments there is no guarantee, that this item still exists, if
+ its realy requested e.g. by calling getItem()!
+ Be aware of some NoSuchElementExistExceptions ...
+
+ @param eType
+ specify the sub container of this cache, which should be used.
+ see also EItemType.
+
+ @param sItem
+ the key name of the requested item inside the pecified sub container.
+
+ @throw [css::uno::Exception]
+ if some input parameter are wrong or the cache itself is not valid
+ any longer, because any operation before damage it.
+ */
+ virtual sal_Bool hasItem( EItemType eType,
+ const ::rtl::OUString& sItem)
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** @short return an item, which match the specified type and name.
+
+ @descr Because this cache can be used inside multithreaded environments
+ the caller must be aware of some exceptions - especialy a "NoSuchElementExcepotion".
+ May another thread already removed the required item before ...
+
+ @param eType
+ specify the sub container of this cache, which should be used for
+ searching. see also EItemType.
+
+ @param sItem
+ specify the requested item by its key name.
+
+ @return [CacheItem]
+ the required item if it could be located ...
+ But we throw an exception if the required item does not exist!
+
+ @throw [css::container::NoSuchElementException]
+ if the required item does not still exist.
+
+ @throw [css::uno::Exception]
+ if some input parameter are wrong or the cache itself is not valid
+ any longer, because any operation before damage it.
+ */
+ virtual CacheItem getItem( EItemType eType,
+ const ::rtl::OUString& sItem)
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** TODO document me ...
+ */
+ virtual void removeItem( EItemType eType,
+ const ::rtl::OUString& sItem)
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** TODO document me ...
+ */
+ virtual void setItem( EItemType eType ,
+ const ::rtl::OUString& sItem ,
+ const CacheItem& aValue)
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** TODO document me ...
+ */
+ virtual void refreshItem( EItemType eType,
+ const ::rtl::OUString& sItem)
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** @short add some implicit properties to the given
+ cache item reference.
+
+ @descr Such properties can e.g. finalized or mandatory.
+ They are not persistent and not realy part of e.g. a
+ filter not. But they are attributes of a configuration
+ entry and can influence our container interface.
+
+ @attention These properties are not part of the normal CacheItem
+ returned by the method getItem(). Because getItem() is
+ used internaly too but these specialized properties
+ are needed at our container services only. So these
+ function sets are different to allow different handling.
+
+ @param eType
+ specify the sub container of this cache, which should be used for
+ searching. see also EItemType.
+
+ @param sItem
+ specify the requested item by its key name.
+
+ @param rItem
+ contains already the normal properties of this item,
+ and will be used as out parameter to add the implicit
+ attributes there.
+
+ @throw [css::uno::Exception]
+ if an internal error occured.
+ Note: If the item is missing inside the underlying configuration
+ no exception will be thrown. In such case the item is marked as
+ finalized/mandatory automaticly
+ Reason: May be the item cames from the old configuration package and
+ was not migrated to the new one. So we cant provide write access
+ to such items ...
+ */
+ virtual void addStatePropsToItem( EItemType eType,
+ const ::rtl::OUString& sItem,
+ CacheItem& rItem)
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** TODO document me
+ */
+ virtual void removeStatePropsFromItem(CacheItem& aValue)
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** @short force writing of all changes (which was made after
+ last flush was called) back to the configuration.
+
+ @descr TODO
+
+ @throw [css::uno::Exception]
+ if the cache itself is not valid
+ any longer, because any operation before damage it.
+ */
+ virtual void flush()
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** @short supports a flat type detection for given URL.
+
+ @descr Because such detection works on our optimized internal
+ structures (e.g. mapping from extensions/pattern to type names),
+ it should be made inside this cache.
+
+ @param aURL
+ URL of the content, which type should be detected.
+ Its already parsed and splitted into its differnt parts,
+ like e.g.: main, jump marks etcpp.
+
+ @param rFlatTypes
+ used as [out] parameter to add all types, which match to the given
+ URL. Further an information is added for every type. It indicates, how
+ this type is related to the specified URL (means e.g. if it matches
+ by extension or URLPattern ...).
+
+ @attention Please note: because this cache can be used inside multithreaded
+ environments, such returned key names can point to some already removed
+ items! Please be aware of some "NoSuchElementExceptions" if you try to
+ call any other method of this cache in relation to this key names.
+
+ @throw [css::uno::Exception]
+ if the cache itself is not valid
+ any longer, because any operation before damage it.
+ */
+ virtual void detectFlatForURL(const css::util::URL& aURL ,
+ FlatDetection& rFlatTypes) const
+ throw(css::uno::Exception);
+
+ //-------------------------------------------
+ // private helper
+
+ private:
+
+ //---------------------------------------
+
+ /** @short return a reference to one of our internal
+ sub container, which contains items of the
+ requested type.
+
+ @param eType
+ specify, which sub container is needed outside.
+
+ @return [CacheItemList&]
+ a reference(!) to the right sub container member.
+
+ @throw [css::uno::Exception]
+ if the required list does not exist.
+ */
+ CacheItemList& impl_getItemList(EItemType eType) const
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** @short return a valid configuration update access
+ to the underlying configuration package, which
+ is fix for this cache.
+
+ @descr It checks first, if the internal member m_xConfig already
+ points to an open update access. If not - it opens a new one.
+ Doing so this method can be called everytimes a configuration
+ access is needed.
+
+ @param eProvider
+ specify the needed configuration provider.
+ see EConfigProvider for further informations ...
+
+ @attention If a configuration access was opened successfully
+ all neccessary listener connections will be established
+ too. So this cache will be informed about outside updates.
+ */
+ css::uno::Reference< css::uno::XInterface > impl_openConfig(EConfigProvider eProvide)
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** @short tries to open the requested configuration root
+ using the specified modi.
+
+ @param sRoot
+ specify the configuration root, which should be opened.
+
+ @param bReadOnly
+ enable/disable write access on the returned configuration
+ object.
+
+ @param bLocalesMode
+ enable/disable special handling of localized configuratiom
+ items by the returned configuration object.
+
+ @return A valid reference, if the configuration access could be opened
+ and initialized within the requested modes successfully;
+ a NULL reference otherwhise.
+ */
+ css::uno::Reference< css::uno::XInterface > impl_createConfigAccess(const ::rtl::OUString& sRoot ,
+ sal_Bool bReadOnly ,
+ sal_Bool bLocalesMode);
+
+ //---------------------------------------
+
+ /** @short reads the specified configuration key
+ and return its value.
+
+ @descr The specified key must be an absolute configuration path,
+ which can be splitted into its package and relative path tokens.
+
+ @attention Because this function might opens a new configuration
+ read access for reading one key value only, it should
+ be used in rare cases only. Its an easy way ... but an
+ expensive one.
+
+ @param sDirectKey
+ the absolute configuration path, which should be readed.
+
+ @return [css::uno::Any]
+ the value of the requested key.
+ Can be empty if an internal error occured or if the requested
+ key does not exists!
+ */
+ css::uno::Any impl_getDirectCFGValue(const ::rtl::OUString& sDirectKey);
+
+ //---------------------------------------
+
+ /** @short load the underlying configuration into this cache.
+
+ @descr Which items should be readed can be regulate by the
+ parameter eRequiredState. That provides the possibility
+ to load standard values on startup only and update this
+ cache later on demand with all available informations.
+
+ @param eRequiredState
+ indicates, which fill state this cache should have afterwards.
+ */
+ void impl_load(EFillState eRequiredState)
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** @short validate the whole cache and create
+ structures for optimized items access.
+
+ @descr Wrong cache items will be removed automaticly.
+ Wrong dependencies will be corrected automaticly.
+ If something could not be repaired - an exception
+ is thrown.
+ Further some optmized structures will be created.
+ E.g.: a hash to map extensions to her types.
+
+ @attention There is no exception, if the cache could be repaired
+ but contained wrong elements before!
+
+ @throw [css::uno::Exception]
+ if cache is invalid and could not be repaired.
+ */
+ void impl_validateAndOptimize()
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** @short register the specified item for the given type.
+
+ @descr Because detect services, frame loader or content handler
+ are not listed inside the xml configuration as seperated
+ items (they are properties of any type entry!), this method update
+ the internal lists of such items. Thats neccessary to have
+ it accessible for our container interfaces of detect, frame loader
+ and content handler services.
+
+ @param pList
+ points to a CacheItemList of this filter cache, where
+ this item registration should be updated or added.
+
+ @param sItem
+ specify the detect service, frame loader or content handler,
+ which should be registered for the given type.
+
+ @param sType
+ contains the internal type name, where the item should be registered for.
+
+ @throw [css::uno::Exception]
+ If registration failed by any reason.
+ That does not include double registrations!
+ */
+ void impl_resolveItem4TypeRegistration( CacheItemList* pList,
+ const ::rtl::OUString& sItem,
+ const ::rtl::OUString& sType)
+ throw(css::uno::Exception);
+
+ //-------------------------------------------
+ // static helper
+
+ private:
+
+ //---------------------------------------
+
+ /** @short read the specified config set into the cache.
+
+ @descr This method provides the following mechanism for reading:
+ a) read only standard properties of set items
+ b) read anything
+ c) read only optional properties and update already existing
+ items of the specified cache
+
+ @param xConfig
+ API which provides access to the required configuration set.
+
+ @param eType
+ specify the type of config item, which must be interpreted.
+ Of course this information can be used to locate the right set
+ at the given xConfig API object.
+
+ @param eOption
+ regulate reading of standard/optional or all properties.
+
+ @param pCache
+ points to the cache member, which should be filled or updated.
+
+ @throw [css::uno::Exception]
+ if an unrecoverable error occure inside this operation.
+ */
+ void impl_loadSet(const css::uno::Reference< css::container::XNameAccess >& xConfig,
+ EItemType eType ,
+ EReadOption eOption,
+ CacheItemList* pCache )
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** @short read the specified container item from the given configuration set.
+
+ @descr Its not added to any internal structures here. That must be done
+ outside this method.
+
+ @param xSet
+ provides access to the configuration set, which includes all items.
+
+ @param eType
+ specify, which container item type must be readed.
+
+ @param sItem
+ means the internal name, which can be used to adress the item
+ properties relativ to the given configuration set.
+
+ @param eOption
+ regulate, which properties of the requested item should be read.
+ See defintion of EReadOption for further informations.
+
+ @throw [css::uno::Exception]
+ if an unrecoverable error occure inside this operation.
+ */
+ CacheItem impl_loadItem(const css::uno::Reference< css::container::XNameAccess >& xSet ,
+ EItemType eType ,
+ const ::rtl::OUString& sItem ,
+ EReadOption eOption)
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** @short try to load the requested item on demand from the underlying configuration
+ layer.
+
+ @descr The outside code has to be shure, that the item does not already exists
+ inside this cachse. Otherwise it will be loaded twice. This method
+ doesnt check such constellations!
+
+ @param eType
+ specify the type of config item, which must be interpreted.
+ Of course this information can be used to locate the right set
+ at the given xConfig API object.
+
+ @param sItem
+ the set node name of the requested item.
+
+ @return An iterator, which points directly to the new cached item.
+ Is a valid iterator if no exception occured here!
+ But to improve robustness - it should be checked :-)
+
+ @throw [css::container::NoSuchElementException]
+ if the item does not exists inside the configuration layer too!
+
+ @throw [css::uno::Exception]
+ if an unrecoverable error occure inside this operation.
+ */
+ CacheItemList::iterator impl_loadItemOnDemand( EItemType eType,
+ const ::rtl::OUString& sItem)
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** TODO */
+ void impl_saveItem(const css::uno::Reference< css::container::XNameReplace >& xSet ,
+ EItemType eType ,
+ const CacheItem& aValue)
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** TODO */
+ void impl_addItem2FlushList( EItemType eType,
+ const ::rtl::OUString& sItem)
+ throw(css::uno::Exception);
+
+
+ //---------------------------------------
+
+ /** TODO */
+ void impl_flushByList(const css::uno::Reference< css::container::XNameAccess >& xSet ,
+ EItemType eType ,
+ const CacheItemList& rCache,
+ const OUStringList& lItems)
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** @short specify, which save operation is neccessary for the specified item.
+
+ @desrc If an item of this cache will be added/removed or modified it will
+ be changed inside memory only first. But we save its name inside a special
+ list of changed items. If at least the method flush() is called, we use
+ this list to check if the item was changed/added or removed. This method
+ checks the exist state of the requested item inside our own cache
+ and inside the underlying configuration layer to find out, if the item
+ must be removed/added or modified inside the configuratuion layer.
+
+ @param xSet
+ points directly to the configuration set, where the item should resist
+ (if it exists!).
+
+ @param rList
+ points to our internal cache list, where the item should resist
+ (if it exists!).
+
+ @param sItem
+ the internal name of the item, which should be checked.
+
+ @return An enum value of type EItemFlushState, which indicates the needed
+ API operation for updating the underlying configuration layer.
+
+ @throws An exception if anything failed inside this operation.
+ e.g. the given configuration set was not open.
+ */
+ EItemFlushState impl_specifyFlushOperation(const css::uno::Reference< css::container::XNameAccess >& xSet ,
+ const CacheItemList& rList,
+ const ::rtl::OUString& sItem)
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** TODO */
+ void impl_readPatchUINames(const css::uno::Reference< css::container::XNameAccess >& xNode,
+ CacheItem& rItem)
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** TODO */
+ void impl_savePatchUINames(const css::uno::Reference< css::container::XNameReplace >& xNode,
+ const CacheItem& rItem)
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** TODO */
+ void impl_readOldFormat()
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** TODO */
+ CacheItem impl_readOldItem(const css::uno::Reference< css::container::XNameAccess >& xSet ,
+ EItemType eType,
+ const ::rtl::OUString& sItem)
+ throw(css::uno::Exception);
+
+ //---------------------------------------
+
+ /** TODO */
+ void impl_interpretDataVal4Type(const ::rtl::OUString& sValue,
+ sal_Int32 nProp ,
+ CacheItem& rItem );
+
+ //---------------------------------------
+
+ /** TODO */
+ void impl_interpretDataVal4Filter(const ::rtl::OUString& sValue,
+ sal_Int32 nProp ,
+ CacheItem& rItem );
+
+ //---------------------------------------
+
+ /** TODO */
+ OUStringList impl_tokenizeString(const ::rtl::OUString& sData ,
+ sal_Unicode cSeperator);
+
+ //---------------------------------------
+
+#if OSL_DEBUG_LEVEL > 0
+ /** TODO */
+ ::rtl::OUString impl_searchFrameLoaderForType(const ::rtl::OUString& sType) const;
+ ::rtl::OUString impl_searchContentHandlerForType(const ::rtl::OUString& sType) const;
+#endif
+
+ //---------------------------------------
+ /** @short check if the specified OOo module is installed.
+
+ @param sModule
+ the long name of the module (e.g. "com.sun.star.text.TextDocument").
+
+ @return sal_True if the requested module is installed; sal_False otherwise.
+ */
+ sal_Bool impl_isModuleInstalled(const ::rtl::OUString& sModule);
+
+ //---------------------------------------
+
+ /** @short convert a list of flag names to its int representation.
+
+ @param lNames
+ the list of flag names.
+
+ @return [sal_Int32]
+ the converted flag field.
+ */
+ static sal_Int32 impl_convertFlagNames2FlagField(const css::uno::Sequence< ::rtl::OUString >& lNames);
+
+ //---------------------------------------
+
+ /** @short convert a flag field value to its list representation of flag names.
+
+ @param nFlags
+ the flag field value
+
+ @return [seq< string >]
+ the converted flag name list.
+ */
+ static css::uno::Sequence< ::rtl::OUString > impl_convertFlagField2FlagNames(sal_Int32 nFlags);
+};
+
+ } // namespace config
+} // namespace filter
+
+#endif // __FILTER_CONFIG_FILTERCACHE_HXX_
diff --git a/filter/source/config/cache/filterconfig1.component b/filter/source/config/cache/filterconfig1.component
new file mode 100644
index 000000000000..9d3c7c90fb31
--- /dev/null
+++ b/filter/source/config/cache/filterconfig1.component
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--**********************************************************************
+*
+* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+*
+* Copyright 2000, 2010 Oracle and/or its affiliates.
+*
+* OpenOffice.org - a multi-platform office productivity suite
+*
+* This file is part of OpenOffice.org.
+*
+* OpenOffice.org is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License version 3
+* only, as published by the Free Software Foundation.
+*
+* OpenOffice.org is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License version 3 for more details
+* (a copy is included in the LICENSE file that accompanied this code).
+*
+* You should have received a copy of the GNU Lesser General Public License
+* version 3 along with OpenOffice.org. If not, see
+* <http://www.openoffice.org/license.html>
+* for a copy of the LGPLv3 License.
+*
+**********************************************************************-->
+
+<component loader="com.sun.star.loader.SharedLibrary"
+ xmlns="http://openoffice.org/2010/uno-components">
+ <implementation name="com.sun.star.comp.filter.config.ConfigFlush">
+ <service name="com.sun.star.document.FilterConfigRefresh"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.filter.config.ContentHandlerFactory">
+ <service name="com.sun.star.frame.ContentHandlerFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.filter.config.FilterFactory">
+ <service name="com.sun.star.document.FilterFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.filter.config.FrameLoaderFactory">
+ <service name="com.sun.star.frame.FrameLoaderFactory"/>
+ </implementation>
+ <implementation name="com.sun.star.comp.filter.config.TypeDetection">
+ <service name="com.sun.star.document.TypeDetection"/>
+ </implementation>
+</component>
diff --git a/filter/source/config/cache/filterfactory.cxx b/filter/source/config/cache/filterfactory.cxx
new file mode 100644
index 000000000000..dc7869be27ca
--- /dev/null
+++ b/filter/source/config/cache/filterfactory.cxx
@@ -0,0 +1,724 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_filter.hxx"
+
+#include "filterfactory.hxx"
+#include "macros.hxx"
+#include "constant.hxx"
+#include "versions.hxx"
+
+//_______________________________________________
+// includes
+#include <com/sun/star/lang/XInitialization.hpp>
+#include <comphelper/enumhelper.hxx>
+#include <comphelper/configurationhelper.hxx>
+#include <rtl/ustrbuf.hxx>
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+namespace css = ::com::sun::star;
+
+//_______________________________________________
+// definitions
+
+/** @short can be used to query for filters related to its application module.
+ */
+#define BASE_QUERY_ALL "_query_all"
+#define BASE_QUERY_WRITER "_query_Writer"
+#define BASE_QUERY_WEB "_query_web"
+#define BASE_QUERY_GLOBAL "_query_global"
+#define BASE_QUERY_CHART "_query_chart"
+#define BASE_QUERY_CALC "_query_calc"
+#define BASE_QUERY_IMPRESS "_query_impress"
+#define BASE_QUERY_DRAW "_query_draw"
+#define BASE_QUERY_MATH "_query_math"
+
+//_______________________________________________
+
+/** @short define all possible parts of a filter query.
+
+ @descr syntax: "<query>[:<param>[=<value>]]"
+ e.g.: "_query_writer:default_first:use_order:sort_prop=uiname"
+
+ argument description default
+ -----------------------------------------------------------------------------------------------
+ iflags=<mask> include filters by given mask 0
+ eflags=<mask> exclude filters by given mask 0
+ sort_prop=<[name,uiname]> sort by internal name or uiname name
+ descending sort descending false
+ use_order use order flag of filters for sorting false
+ default_first set default filter on top of return list false
+ case_sensitive compare "sort_prop" case sensitive false
+ */
+#define SEPERATOR_QUERYPARAM ((sal_Unicode)':')
+#define SEPERATOR_QUERYPARAMVALUE ((sal_Unicode)'=')
+
+#define QUERYPARAM_IFLAGS ::rtl::OUString::createFromAscii("iflags")
+#define QUERYPARAM_EFLAGS ::rtl::OUString::createFromAscii("eflags")
+#define QUERYPARAM_SORT_PROP ::rtl::OUString::createFromAscii("sort_prop")
+
+#define QUERYPARAM_DESCENDING ::rtl::OUString::createFromAscii("descending")
+#define QUERYPARAM_USE_ORDER ::rtl::OUString::createFromAscii("use_order")
+#define QUERYPARAM_DEFAULT_FIRST ::rtl::OUString::createFromAscii("default_first")
+#define QUERYPARAM_CASE_SENSITIVE ::rtl::OUString::createFromAscii("case_sensitive")
+
+#define QUERYPARAMVALUE_SORT_PROP_NAME ::rtl::OUString::createFromAscii("name")
+#define QUERYPARAMVALUE_SORT_PROP_UINAME ::rtl::OUString::createFromAscii("uiname")
+
+/*-----------------------------------------------
+ 09.07.2003 07:43
+-----------------------------------------------*/
+FilterFactory::FilterFactory(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR)
+{
+ BaseContainer::init(xSMGR ,
+ FilterFactory::impl_getImplementationName() ,
+ FilterFactory::impl_getSupportedServiceNames(),
+ FilterCache::E_FILTER );
+}
+
+/*-----------------------------------------------
+ 09.07.2003 07:43
+-----------------------------------------------*/
+FilterFactory::~FilterFactory()
+{
+}
+
+/*-----------------------------------------------
+ 16.07.2003 13:43
+-----------------------------------------------*/
+css::uno::Reference< css::uno::XInterface > SAL_CALL FilterFactory::createInstance(const ::rtl::OUString& sFilter)
+ throw(css::uno::Exception ,
+ css::uno::RuntimeException)
+{
+ return createInstanceWithArguments(sFilter, css::uno::Sequence< css::uno::Any >());
+}
+
+/*-----------------------------------------------
+ 17.07.2003 08:56
+-----------------------------------------------*/
+css::uno::Reference< css::uno::XInterface > SAL_CALL FilterFactory::createInstanceWithArguments(const ::rtl::OUString& sFilter ,
+ const css::uno::Sequence< css::uno::Any >& lArguments)
+ throw(css::uno::Exception ,
+ css::uno::RuntimeException)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ ::rtl::OUString sRealFilter = sFilter;
+
+ #ifdef _FILTER_CONFIG_MIGRATION_Q_
+
+ /* -> TODO - HACK
+ check if the given filter name realy exist ...
+ Because our old implementation worked with an internal
+ type name instead of a filter name. For a small migration time
+ we must simulate this old feature :-( */
+
+ if (!m_rCache->hasItem(FilterCache::E_FILTER, sFilter) && m_rCache->hasItem(FilterCache::E_TYPE, sFilter))
+ {
+ OSL_ENSURE(sal_False, "Who use this deprecated functionality?");
+ _FILTER_CONFIG_LOG_("FilterFactory::createInstanceWithArguments() ... simulate old type search functionality!\n");
+
+ css::uno::Sequence< css::beans::NamedValue > lQuery(1);
+ lQuery[0].Name = PROPNAME_TYPE;
+ lQuery[0].Value <<= sFilter;
+
+ css::uno::Reference< css::container::XEnumeration > xSet = createSubSetEnumerationByProperties(lQuery);
+ while(xSet->hasMoreElements())
+ {
+ ::comphelper::SequenceAsHashMap lHandlerProps(xSet->nextElement());
+ if (!(lHandlerProps[PROPNAME_NAME] >>= sRealFilter))
+ continue;
+ }
+
+ // prevent outside code against NoSuchElementException!
+ // But dont implement such defensive strategy for our new create handling :-)
+ if (!m_rCache->hasItem(FilterCache::E_FILTER, sRealFilter))
+ return css::uno::Reference< css::uno::XInterface>();
+ }
+
+ /* <- HACK */
+
+ #endif // _FILTER_CONFIG_MIGRATION_Q_
+
+ // search filter on cache
+ CacheItem aFilter = m_rCache->getItem(FilterCache::E_FILTER, sRealFilter);
+ ::rtl::OUString sFilterService;
+ aFilter[PROPNAME_FILTERSERVICE] >>= sFilterService;
+
+ // create service instance
+ css::uno::Reference< css::uno::XInterface > xFilter;
+ if (sFilterService.getLength())
+ xFilter = m_xSMGR->createInstance(sFilterService);
+
+ // initialize filter
+ css::uno::Reference< css::lang::XInitialization > xInit(xFilter, css::uno::UNO_QUERY);
+ if (xInit.is())
+ {
+ // format: lInitData[0] = seq<PropertyValue>, which contains all configuration properties of this filter
+ // lInitData[1] = lArguments[0]
+ // ...
+ // lInitData[n] = lArguments[n-1]
+ css::uno::Sequence< css::beans::PropertyValue > lConfig;
+ aFilter >> lConfig;
+
+ ::comphelper::SequenceAsVector< css::uno::Any > stlArguments(lArguments);
+ stlArguments.insert(stlArguments.begin(), css::uno::makeAny(lConfig));
+
+ css::uno::Sequence< css::uno::Any > lInitData;
+ stlArguments >> lInitData;
+
+ xInit->initialize(lInitData);
+ }
+
+ return xFilter;
+ // <- SAFE
+}
+
+/*-----------------------------------------------
+ 18.02.2004 14:21
+-----------------------------------------------*/
+css::uno::Sequence< ::rtl::OUString > SAL_CALL FilterFactory::getAvailableServiceNames()
+ throw(css::uno::RuntimeException)
+{
+ /* Attention: Instead of getElementNames() this method have to return only filter names,
+ which can be created as UNO Services realy. Thats why we search for filters,
+ which dont have a valid value for the property "FilterService".
+ Of course we cant check for corrupted service names here. We can check
+ for empty strings only ...
+ */
+ CacheItem lIProps;
+ CacheItem lEProps;
+ lEProps[PROPNAME_FILTERSERVICE] <<= ::rtl::OUString();
+
+ OUStringList lUNOFilters;
+ try
+ {
+ lUNOFilters = m_rCache->getMatchingItemsByProps(FilterCache::E_FILTER, lIProps, lEProps);
+ }
+ catch(const css::uno::RuntimeException&)
+ { throw; }
+ catch(const css::uno::Exception&)
+ { lUNOFilters.clear(); }
+
+ return lUNOFilters.getAsConstList();
+}
+
+/*-----------------------------------------------
+ 11.03.2004 08:37
+-----------------------------------------------*/
+css::uno::Reference< css::container::XEnumeration > SAL_CALL FilterFactory::createSubSetEnumerationByQuery(const ::rtl::OUString& sQuery)
+ throw (css::uno::RuntimeException)
+{
+ // reject old deprecated queries ...
+ if (sQuery.matchAsciiL("_filterquery_",13,0))
+ throw css::uno::RuntimeException(
+ _FILTER_CONFIG_FROM_ASCII_("Use of deprecated and now unsupported query!"),
+ static_cast< css::container::XContainerQuery* >(this));
+
+ // convert "_query_xxx:..." to "getByDocService=xxx:..."
+ ::rtl::OUString sNewQuery(sQuery);
+ sal_Int32 pos = sNewQuery.indexOf(::rtl::OUString::createFromAscii("_query_"),0);
+ if (pos != -1)
+ {
+ OSL_ENSURE(sal_False, "DEPRECATED!\nPlease use new query format: 'matchByDocumentService=...'");
+ ::rtl::OUStringBuffer sPatchedQuery(256);
+ sPatchedQuery.appendAscii("matchByDocumentService=");
+ sPatchedQuery.append (sNewQuery.copy(7) );
+ sNewQuery = sPatchedQuery.makeStringAndClear();
+ }
+
+ // analyze query and split it into its tokens
+ QueryTokenizer lTokens(sNewQuery);
+ QueryTokenizer::const_iterator pIt;
+ OUStringList lEnumSet;
+
+ // start query
+ // (see attention comment below!)
+ if (lTokens.valid())
+ {
+ // SAFE -> ----------------------
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ // May be not all filters was loaded ...
+ // But we need it now!
+ impl_loadOnDemand();
+ aLock.clear();
+ // <- SAFE ----------------------
+
+ if (lTokens.find(QUERY_IDENTIFIER_GETPREFERREDFILTERFORTYPE) != lTokens.end())
+ OSL_ENSURE(sal_False, "DEPRECATED!\nPlease use prop search at the TypeDetection container!");
+// lEnumSet = impl_queryGetPreferredFilterForType(lTokens);
+ else
+ if (lTokens.find(QUERY_IDENTIFIER_MATCHBYDOCUMENTSERVICE) != lTokens.end())
+ lEnumSet = impl_queryMatchByDocumentService(lTokens);
+ else
+ if (lTokens.find(QUERY_IDENTIFIER_GET_SORTED_FILTERLIST) != lTokens.end())
+ lEnumSet = impl_getSortedFilterList(lTokens);
+ }
+
+ // pack list of item names as an enum list
+ // Attention: Do not return empty reference for empty list!
+ // The outside check "hasMoreElements()" should be enough, to detect this state :-)
+// size_t c = lEnumSet.size();
+ css::uno::Sequence< ::rtl::OUString > lSet = lEnumSet.getAsConstList();
+ ::comphelper::OEnumerationByName* pEnum = new ::comphelper::OEnumerationByName(this, lSet);
+ return css::uno::Reference< css::container::XEnumeration >(static_cast< css::container::XEnumeration* >(pEnum), css::uno::UNO_QUERY);
+}
+/*
+ if (lEnumSet.empty())
+ {
+ //-------------------------------------------
+ // 1) getDefaultFilterForType=<internal_typename>
+
+ pIt = lTokens.find(::rtl::OUString::createFromAscii("getDefaultFilterForType"));
+ if (pIt != lTokens.end())
+ {
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ // might not all types was loaded till now!
+ impl_loadOnDemand();
+
+ ::rtl::OUString sType = pIt->second;
+ FilterCache* pCache = impl_getWorkingCache();
+ if (pCache->hasItem(FilterCache::E_TYPE, sType))
+ {
+ CacheItem aType = pCache->getItem(FilterCache::E_TYPE, sType);
+ ::rtl::OUString sPreferredFilter;
+ aType[PROPNAME_PREFERREDFILTER] >>= sPreferredFilter;
+
+ if (
+ (sPreferredFilter.getLength() ) &&
+ (pCache->hasItem(FilterCache::E_FILTER, sPreferredFilter))
+ )
+ {
+ lEnumSet.push_back(sPreferredFilter);
+ }
+ }
+
+ aLock.clear();
+ // <- SAFE
+ }
+ }
+*/
+
+/*-----------------------------------------------
+ 11.03.2004 08:33
+-----------------------------------------------*/
+OUStringList FilterFactory::impl_queryMatchByDocumentService(const QueryTokenizer& lTokens) const
+{
+ // analyze query
+ QueryTokenizer::const_iterator pIt;
+
+ ::rtl::OUString sDocumentService;
+ sal_Int32 nIFlags = 0;
+ sal_Int32 nEFlags = 0;
+
+ pIt = lTokens.find(QUERY_IDENTIFIER_MATCHBYDOCUMENTSERVICE);
+ if (pIt != lTokens.end())
+ sDocumentService = pIt->second;
+
+#define COMP_HACK
+#ifdef COMP_HACK
+ if (sDocumentService.equalsAscii("writer"))
+ {
+ OSL_ENSURE(sal_False, "DEPRECATED!\nPlease use right document service for filter query!");
+ sDocumentService = ::rtl::OUString::createFromAscii("com.sun.star.text.TextDocument");
+ }
+ else
+ if (sDocumentService.equalsAscii("web"))
+ {
+ OSL_ENSURE(sal_False, "DEPRECATED!\nPlease use right document service for filter query!");
+ sDocumentService = ::rtl::OUString::createFromAscii("com.sun.star.text.WebDocument");
+ }
+ else
+ if (sDocumentService.equalsAscii("global"))
+ {
+ OSL_ENSURE(sal_False, "DEPRECATED!\nPlease use right document service for filter query!");
+ sDocumentService = ::rtl::OUString::createFromAscii("com.sun.star.text.GlobalDocument");
+ }
+ else
+ if (sDocumentService.equalsAscii("calc"))
+ {
+ OSL_ENSURE(sal_False, "DEPRECATED!\nPlease use right document service for filter query!");
+ sDocumentService = ::rtl::OUString::createFromAscii("com.sun.star.sheet.SpreadsheetDocument");
+ }
+ else
+ if (sDocumentService.equalsAscii("draw"))
+ {
+ OSL_ENSURE(sal_False, "DEPRECATED!\nPlease use right document service for filter query!");
+ sDocumentService = ::rtl::OUString::createFromAscii("com.sun.star.drawing.DrawingDocument");
+ }
+ else
+ if (sDocumentService.equalsAscii("impress"))
+ {
+ OSL_ENSURE(sal_False, "DEPRECATED!\nPlease use right document service for filter query!");
+ sDocumentService = ::rtl::OUString::createFromAscii("com.sun.star.presentation.PresentationDocument");
+ }
+ else
+ if (sDocumentService.equalsAscii("math"))
+ {
+ OSL_ENSURE(sal_False, "DEPRECATED!\nPlease use right document service for filter query!");
+ sDocumentService = ::rtl::OUString::createFromAscii("com.sun.star.formula.FormulaProperties");
+ }
+#endif
+
+ pIt = lTokens.find(QUERY_PARAM_IFLAGS);
+ if (pIt != lTokens.end())
+ nIFlags = ::rtl::OUString(pIt->second).toInt32();
+
+ pIt = lTokens.find(QUERY_PARAM_EFLAGS);
+ if (pIt != lTokens.end())
+ nEFlags = ::rtl::OUString(pIt->second).toInt32();
+
+ // SAFE -> ----------------------
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ // search suitable filters
+ FilterCache* pCache = impl_getWorkingCache();
+ OUStringList lFilterNames = pCache->getItemNames(FilterCache::E_FILTER);
+ OUStringList lResult ;
+
+ for (OUStringList::const_iterator pName = lFilterNames.begin();
+ pName != lFilterNames.end() ;
+ ++pName )
+ {
+ try
+ {
+ const ::rtl::OUString& sName = *pName;
+ const CacheItem aFilter = pCache->getItem(FilterCache::E_FILTER, sName);
+ CacheItem::const_iterator pProp ;
+
+ // "matchByDocumentService=" => any filter will be adressed here
+ // "matchByDocumentService=all" => any filter will be adressed here
+ // "matchByDocumentService=com.sun.star..." => only filter matching this document service will be adressed
+ ::rtl::OUString sCheckValue = aFilter.getUnpackedValueOrDefault(PROPNAME_DOCUMENTSERVICE, ::rtl::OUString());
+ if (
+ ( sDocumentService.getLength() ) &&
+ (!sDocumentService.equals(QUERY_CONSTVALUE_ALL)) &&
+ (!sCheckValue.equals(sDocumentService) )
+ )
+ {
+ continue; // ignore filter -> try next one!
+ }
+
+ // "iflags=" => not allowed
+ // "iflags=-1" => not allowed
+ // "iflags=0" => not usefull
+ // "iflags=283648" => only filter, which has set these flag field will be adressed
+ sal_Int32 nCheckValue = aFilter.getUnpackedValueOrDefault(PROPNAME_FLAGS, (sal_Int32)0);
+ if (
+ (nIFlags > 0 ) &&
+ ((nCheckValue & nIFlags) != nIFlags)
+ )
+ {
+ continue; // ignore filter -> try next one!
+ }
+
+ // "eflags=" => not allowed
+ // "eflags=-1" => not allowed
+ // "eflags=0" => not usefull
+ // "eflags=283648" => only filter, which has not set these flag field will be adressed
+ if (
+ (nEFlags > 0 ) &&
+ ((nCheckValue & nEFlags) == nEFlags)
+ )
+ {
+ continue; // ignore filter -> try next one!
+ }
+
+ // OK - this filter passed all checks.
+ // It match the query ...
+ lResult.push_back(sName);
+ }
+ catch(const css::uno::RuntimeException& exRun)
+ { throw exRun; }
+ catch(const css::uno::Exception&)
+ { continue; }
+ }
+
+ aLock.clear();
+ // <- SAFE ----------------------
+
+ return lResult;
+}
+
+/*-----------------------------------------------
+ 21.01.2005 13:39
+-----------------------------------------------*/
+class stlcomp_removeIfMatchFlags
+{
+ private:
+ FilterCache* m_pCache ;
+ sal_Int32 m_nFlags ;
+ sal_Bool m_bIFlags;
+
+ public:
+ stlcomp_removeIfMatchFlags(FilterCache* pCache ,
+ sal_Int32 nFlags ,
+ sal_Bool bIFlags)
+ : m_pCache (pCache )
+ , m_nFlags (nFlags )
+ , m_bIFlags(bIFlags)
+ {}
+
+ bool operator() (const ::rtl::OUString& sFilter) const
+ {
+ try
+ {
+ const CacheItem aFilter = m_pCache->getItem(FilterCache::E_FILTER, sFilter);
+ sal_Int32 nFlags = aFilter.getUnpackedValueOrDefault(PROPNAME_FLAGS, ((sal_Int32)0));
+
+ bool bMatch = false;
+ if (m_bIFlags)
+ // IFlags are interpeted as ALL_FLAGS_MUST_MATCH !
+ bMatch = ((nFlags & m_nFlags) == m_nFlags);
+ else
+ // EFlags are interpreted as ATE_LEAST_ONE_FLAG_MUST_MATCH !
+ bMatch = !(nFlags & m_nFlags);
+ // We are asked for bRemove ! And bMatch = !bRemove => so bRemove = !bMatch .-)
+ return !bMatch;
+ }
+ catch(css::container::NoSuchElementException)
+ {
+ return true;
+ }
+ }
+};
+
+/*-----------------------------------------------
+ 21.01.2005 13:39
+-----------------------------------------------*/
+OUStringList FilterFactory::impl_getSortedFilterList(const QueryTokenizer& lTokens) const
+{
+ // analyze the given query parameter
+ QueryTokenizer::const_iterator pIt1;
+
+ ::rtl::OUString sModule;
+ sal_Int32 nIFlags = -1;
+ sal_Int32 nEFlags = -1;
+
+ pIt1 = lTokens.find(QUERY_PARAM_MODULE);
+ if (pIt1 != lTokens.end())
+ sModule = pIt1->second;
+ pIt1 = lTokens.find(QUERY_PARAM_IFLAGS);
+ if (pIt1 != lTokens.end())
+ nIFlags = ::rtl::OUString(pIt1->second).toInt32();
+ pIt1 = lTokens.find(QUERY_PARAM_EFLAGS);
+ if (pIt1 != lTokens.end())
+ nEFlags = ::rtl::OUString(pIt1->second).toInt32();
+
+ // simple search for filters of one specific module.
+ OUStringList lFilterList;
+ if (sModule.getLength())
+ lFilterList = impl_getSortedFilterListForModule(sModule, nIFlags, nEFlags);
+ else
+ {
+ // more complex search for all filters
+ // We check first, which office modules are installed ...
+ OUStringList lModules = impl_getListOfInstalledModules();
+ OUStringList::const_iterator pIt2;
+ for ( pIt2 = lModules.begin();
+ pIt2 != lModules.end() ;
+ ++pIt2 )
+ {
+ sModule = *pIt2;
+ OUStringList lFilters4Module = impl_getSortedFilterListForModule(sModule, nIFlags, nEFlags);
+ OUStringList::const_iterator pIt3;
+ for ( pIt3 = lFilters4Module.begin();
+ pIt3 != lFilters4Module.end() ;
+ ++pIt3 )
+ {
+ const ::rtl::OUString& sFilter = *pIt3;
+ lFilterList.push_back(sFilter);
+ }
+ }
+ }
+
+ return lFilterList;
+}
+
+/*-----------------------------------------------
+ 21.01.2005 10:19
+-----------------------------------------------*/
+OUStringList FilterFactory::impl_getListOfInstalledModules() const
+{
+ // SAFE -> ----------------------
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR = m_xSMGR;
+ aLock.clear();
+ // <- SAFE ----------------------
+
+ try
+ {
+ css::uno::Reference< css::container::XNameAccess > xModuleConfig(
+ ::comphelper::ConfigurationHelper::openConfig(xSMGR,
+ CFGPACKAGE_OOO_MODULES,
+ ::comphelper::ConfigurationHelper::E_READONLY),
+ css::uno::UNO_QUERY_THROW);
+ OUStringList lModules(xModuleConfig->getElementNames());
+ return lModules;
+ }
+ catch(const css::uno::RuntimeException& exRun)
+ { throw exRun; }
+ catch(const css::uno::Exception&)
+ {}
+
+ return OUStringList();
+}
+
+/*-----------------------------------------------
+ 21.01.2005 10:19
+-----------------------------------------------*/
+OUStringList FilterFactory::impl_getSortedFilterListForModule(const ::rtl::OUString& sModule,
+ sal_Int32 nIFlags,
+ sal_Int32 nEFlags) const
+{
+ OUStringList lSortedFilters = impl_readSortedFilterListFromConfig(sModule);
+
+ // get all filters for the requested module
+ CacheItem lIProps;
+ lIProps[PROPNAME_DOCUMENTSERVICE] <<= sModule;
+
+ // SAFE -> ----------------------
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ FilterCache* pCache = impl_getWorkingCache();
+ OUStringList lOtherFilters = pCache->getMatchingItemsByProps(FilterCache::E_FILTER, lIProps);
+ aLock.clear();
+ // <- SAFE ----------------------
+
+ // bring "other" filters in an alphabeticly order
+ // It's needed below.
+ ::std::sort(lOtherFilters.begin(), lOtherFilters.end());
+
+ // merge both lists together
+ OUStringList lMergedFilters = lSortedFilters;
+ OUStringList::iterator pIt2;
+ OUStringList::iterator pIt3;
+ for ( pIt2 = lOtherFilters.begin();
+ pIt2 != lOtherFilters.end() ;
+ ++pIt2 )
+ {
+ const ::rtl::OUString& rFilter = *pIt2;
+ pIt3 = ::std::find(lSortedFilters.begin(), lSortedFilters.end(), rFilter);
+ if (pIt3 == lSortedFilters.end())
+ lMergedFilters.push_back(rFilter);
+ }
+
+ // remove all filters from this merged list, which does not fit the flag specification
+ if (nIFlags != -1)
+ {
+ pIt2 = ::std::remove_if(lMergedFilters.begin(), lMergedFilters.end(), stlcomp_removeIfMatchFlags(pCache, nIFlags, sal_True));
+ lMergedFilters.erase(pIt2, lMergedFilters.end());
+ }
+ if (nEFlags != -1)
+ {
+ pIt2 = ::std::remove_if(lMergedFilters.begin(), lMergedFilters.end(), stlcomp_removeIfMatchFlags(pCache, nEFlags, sal_False));
+ lMergedFilters.erase(pIt2, lMergedFilters.end());
+ }
+
+ // sort the default filter to the front of this list
+ // TODO
+
+ return lMergedFilters;
+}
+
+/*-----------------------------------------------
+ 21.01.2005 10:19
+-----------------------------------------------*/
+OUStringList FilterFactory::impl_readSortedFilterListFromConfig(const ::rtl::OUString& sModule) const
+{
+ // SAFE -> ----------------------
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR = m_xSMGR;
+ aLock.clear();
+ // <- SAFE ----------------------
+
+ try
+ {
+ css::uno::Reference< css::container::XNameAccess > xUISortConfig(
+ ::comphelper::ConfigurationHelper::openConfig(xSMGR,
+ CFGPACKAGE_TD_UISORT,
+ ::comphelper::ConfigurationHelper::E_READONLY),
+ css::uno::UNO_QUERY_THROW);
+
+ // dont ccheck the module name here. If it does not exists, an exception is thrown and catched below.
+ // We return an empty list as result then.
+ css::uno::Reference< css::container::XNameAccess > xModule;
+ xUISortConfig->getByName(sModule) >>= xModule;
+ if (xModule.is()) // only to be on the safe side of life if the exception was not thrown .-)
+ {
+ // Note: convertion of the returned Any to OUStringList throws
+ // an IllegalArgumentException if the type does not match ...
+ // but it resets the OUStringList to a length of 0 if the Any is empty!
+ OUStringList lSortedFilters(xModule->getByName(PROPNAME_SORTEDFILTERLIST));
+ return lSortedFilters;
+ }
+ }
+ catch(const css::uno::RuntimeException& exRun)
+ { throw exRun; }
+ catch(const css::uno::Exception&)
+ {}
+
+ return OUStringList();
+}
+
+/*-----------------------------------------------
+ 09.07.2003 07:43
+-----------------------------------------------*/
+::rtl::OUString FilterFactory::impl_getImplementationName()
+{
+ return ::rtl::OUString::createFromAscii("com.sun.star.comp.filter.config.FilterFactory");
+}
+
+/*-----------------------------------------------
+ 09.07.2003 07:43
+-----------------------------------------------*/
+css::uno::Sequence< ::rtl::OUString > FilterFactory::impl_getSupportedServiceNames()
+{
+ css::uno::Sequence< ::rtl::OUString > lServiceNames(1);
+ lServiceNames[0] = ::rtl::OUString::createFromAscii("com.sun.star.document.FilterFactory");
+ return lServiceNames;
+}
+
+/*-----------------------------------------------
+ 09.07.2003 07:43
+-----------------------------------------------*/
+css::uno::Reference< css::uno::XInterface > SAL_CALL FilterFactory::impl_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR)
+{
+ FilterFactory* pNew = new FilterFactory(xSMGR);
+ return css::uno::Reference< css::uno::XInterface >(static_cast< css::lang::XMultiServiceFactory* >(pNew), css::uno::UNO_QUERY);
+}
+
+ } // namespace config
+} // namespace filter
diff --git a/filter/source/config/cache/filterfactory.hxx b/filter/source/config/cache/filterfactory.hxx
new file mode 100644
index 000000000000..2f0ba31f942b
--- /dev/null
+++ b/filter/source/config/cache/filterfactory.hxx
@@ -0,0 +1,212 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __FILTER_CONFIG_FILTERFACTORY_HXX_
+#define __FILTER_CONFIG_FILTERFACTORY_HXX_
+
+//_______________________________________________
+// includes
+
+#include "basecontainer.hxx"
+#include "querytokenizer.hxx"
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/lang/XSingleServiceFactory.hpp>
+#include <cppuhelper/implbase1.hxx>
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+namespace css = ::com::sun::star;
+
+//_______________________________________________
+// definitions
+
+//_______________________________________________
+
+/** @short implements the service <type scope="com.sun.star.document">FilterFactory</type>.
+ */
+class FilterFactory : public ::cppu::ImplInheritanceHelper1< BaseContainer ,
+ css::lang::XMultiServiceFactory >
+{
+ //-------------------------------------------
+ // native interface
+
+ public:
+
+ //---------------------------------------
+ // ctor/dtor
+
+ /** @short standard ctor to connect this interface wrapper to
+ the global filter cache instance ...
+
+ @param xSMGR
+ reference to the uno service manager, which created this service instance.
+ */
+ FilterFactory(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR);
+
+ //---------------------------------------
+
+ /** @short standard dtor.
+ */
+ virtual ~FilterFactory();
+
+ //-------------------------------------------
+ // uno interface
+
+ public:
+
+ //---------------------------------------
+ // XMultiServiceFactory
+
+ virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstance(const ::rtl::OUString& sFilter)
+ throw(css::uno::Exception ,
+ css::uno::RuntimeException);
+
+ virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstanceWithArguments(const ::rtl::OUString& sFilter ,
+ const css::uno::Sequence< css::uno::Any >& lArguments)
+ throw(css::uno::Exception ,
+ css::uno::RuntimeException);
+
+ virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL getAvailableServiceNames()
+ throw(css::uno::RuntimeException);
+
+ //---------------------------------------
+ // XContainerQuery
+
+ virtual css::uno::Reference< css::container::XEnumeration > SAL_CALL createSubSetEnumerationByQuery(const ::rtl::OUString& sQuery)
+ throw (css::uno::RuntimeException);
+
+ //-------------------------------------------
+ // internal helper!
+
+ private:
+
+ //---------------------------------------
+
+ /** @short implement the container string query: "matchByDocumentService=:iflags=:eflags=:..."
+
+ @param lTokens
+ the list of query tokens and its values.
+
+ @return A string list of internal filter names, including
+ all filters, which match this query.
+ */
+ OUStringList impl_queryMatchByDocumentService(const QueryTokenizer& lTokens) const;
+
+ //---------------------------------------
+
+ /** TODO document me
+ */
+ OUStringList impl_getListOfInstalledModules() const;
+
+ //---------------------------------------
+
+ /** @short implement the container string query:
+ "getSortedFilterList()[:module=<xxx>]:[iflags=<xxx>][:eflags=<xxx>]"
+
+ @param lTokens
+ the list of query tokens and its values.
+
+ @return A string list of internal filter names, including
+ all filters, which match this query.
+ */
+ OUStringList impl_getSortedFilterList(const QueryTokenizer& lTokens) const;
+
+ //---------------------------------------
+
+ /** TODO document me
+ */
+ OUStringList impl_getSortedFilterListForModule(const ::rtl::OUString& sModule,
+ sal_Int32 nIFlags,
+ sal_Int32 nEFlags) const;
+
+ //---------------------------------------
+
+ /** @short read a specialized and sorted list of filter names from
+ the configuration (matching the specified module)
+
+ @param sModule
+ the module for which the sorted list should be retrieved for.
+
+ @return A string list of internal filter names.
+ Can be empty.
+ */
+ OUStringList impl_readSortedFilterListFromConfig(const ::rtl::OUString& sModule) const;
+
+ //-------------------------------------------
+ // static uno helper!
+
+ public:
+
+ //---------------------------------------
+
+ /** @short return the uno implementation name of this class.
+
+ @descr Because this information is used at several places
+ (and mostly an object instance of this class is not possible)
+ its implemented as a static function!
+
+ @return The fix uno implementation name of this class.
+ */
+ static ::rtl::OUString impl_getImplementationName();
+
+ //---------------------------------------
+
+ /** @short return the list of supported uno services of this class.
+
+ @descr Because this information is used at several places
+ (and mostly an object instance of this class is not possible)
+ its implemented as a static function!
+
+ @return The fix list of uno services supported by this class.
+ */
+ static css::uno::Sequence< ::rtl::OUString > impl_getSupportedServiceNames();
+
+ //---------------------------------------
+
+ /** @short return a new intsnace of this class.
+
+ @descr This method is used by the uno service manager, to create
+ a new instance of this service if needed.
+
+ @param xSMGR
+ reference to the uno service manager, which require
+ this new instance. It should be passed to the new object
+ so it can be used internaly to create own needed uno resources.
+
+ @return The new instance of this service as an uno reference.
+ */
+ static css::uno::Reference< css::uno::XInterface > impl_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR);
+};
+
+ } // namespace config
+} // namespace filter
+
+#endif // __FILTER_CONFIG_FILTERFACTORY_HXX_
diff --git a/filter/source/config/cache/frameloaderfactory.cxx b/filter/source/config/cache/frameloaderfactory.cxx
new file mode 100644
index 000000000000..3c9163899a97
--- /dev/null
+++ b/filter/source/config/cache/frameloaderfactory.cxx
@@ -0,0 +1,198 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_filter.hxx"
+
+#include "frameloaderfactory.hxx"
+#include "macros.hxx"
+#include "constant.hxx"
+#include "versions.hxx"
+
+//_______________________________________________
+// includes
+#include <com/sun/star/lang/XInitialization.hpp>
+#include <comphelper/enumhelper.hxx>
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+namespace css = ::com::sun::star;
+
+//_______________________________________________
+// definitions
+
+/*-----------------------------------------------
+ 09.07.2003 07:43
+-----------------------------------------------*/
+FrameLoaderFactory::FrameLoaderFactory(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR)
+{
+ BaseContainer::init(xSMGR ,
+ FrameLoaderFactory::impl_getImplementationName() ,
+ FrameLoaderFactory::impl_getSupportedServiceNames(),
+ FilterCache::E_FRAMELOADER );
+}
+
+/*-----------------------------------------------
+ 09.07.2003 07:43
+-----------------------------------------------*/
+FrameLoaderFactory::~FrameLoaderFactory()
+{
+}
+
+/*-----------------------------------------------
+ 16.07.2003 13:37
+-----------------------------------------------*/
+css::uno::Reference< css::uno::XInterface > SAL_CALL FrameLoaderFactory::createInstance(const ::rtl::OUString& sLoader)
+ throw(css::uno::Exception ,
+ css::uno::RuntimeException)
+{
+ return createInstanceWithArguments(sLoader, css::uno::Sequence< css::uno::Any >());
+}
+
+/*-----------------------------------------------
+ 17.07.2003 09:00
+-----------------------------------------------*/
+css::uno::Reference< css::uno::XInterface > SAL_CALL FrameLoaderFactory::createInstanceWithArguments(const ::rtl::OUString& sLoader ,
+ const css::uno::Sequence< css::uno::Any >& lArguments)
+ throw(css::uno::Exception ,
+ css::uno::RuntimeException)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ ::rtl::OUString sRealLoader = sLoader;
+
+ #ifdef _FILTER_CONFIG_MIGRATION_Q_
+
+ /* -> TODO - HACK
+ check if the given loader name realy exist ...
+ Because our old implementation worked with an internal
+ type name instead of a loader name. For a small migration time
+ we must simulate this old feature :-( */
+
+ if (!m_rCache->hasItem(FilterCache::E_FRAMELOADER, sLoader) && m_rCache->hasItem(FilterCache::E_TYPE, sLoader))
+ {
+ _FILTER_CONFIG_LOG_("FrameLoaderFactory::createInstanceWithArguments() ... simulate old type search functionality!\n");
+
+ css::uno::Sequence< ::rtl::OUString > lTypes(1);
+ lTypes[0] = sLoader;
+
+ css::uno::Sequence< css::beans::NamedValue > lQuery(1);
+ lQuery[0].Name = PROPNAME_TYPES;
+ lQuery[0].Value <<= lTypes;
+
+ css::uno::Reference< css::container::XEnumeration > xSet = createSubSetEnumerationByProperties(lQuery);
+ while(xSet->hasMoreElements())
+ {
+ ::comphelper::SequenceAsHashMap lLoaderProps(xSet->nextElement());
+ if (!(lLoaderProps[PROPNAME_NAME] >>= sRealLoader))
+ continue;
+ }
+
+ // prevent outside code against NoSuchElementException!
+ // But dont implement such defensive strategy for our new create handling :-)
+ if (!m_rCache->hasItem(FilterCache::E_FRAMELOADER, sRealLoader))
+ return css::uno::Reference< css::uno::XInterface>();
+ }
+
+ /* <- HACK */
+
+ #endif // _FILTER_CONFIG_MIGRATION_Q_
+
+ // search loader on cache
+ CacheItem aLoader = m_rCache->getItem(m_eType, sRealLoader);
+
+ // create service instance
+ css::uno::Reference< css::uno::XInterface > xLoader = m_xSMGR->createInstance(sRealLoader);
+
+ // initialize filter
+ css::uno::Reference< css::lang::XInitialization > xInit(xLoader, css::uno::UNO_QUERY);
+ if (xInit.is())
+ {
+ // format: lInitData[0] = seq<PropertyValue>, which contains all configuration properties of this loader
+ // lInitData[1] = lArguments[0]
+ // ...
+ // lInitData[n] = lArguments[n-1]
+ css::uno::Sequence< css::beans::PropertyValue > lConfig;
+ aLoader >> lConfig;
+
+ ::comphelper::SequenceAsVector< css::uno::Any > stlArguments(lArguments);
+ stlArguments.insert(stlArguments.begin(), css::uno::makeAny(lConfig));
+
+ css::uno::Sequence< css::uno::Any > lInitData;
+ stlArguments >> lInitData;
+
+ xInit->initialize(lInitData);
+ }
+
+ return xLoader;
+ // <- SAFE
+}
+
+/*-----------------------------------------------
+ 09.07.2003 07:46
+-----------------------------------------------*/
+css::uno::Sequence< ::rtl::OUString > SAL_CALL FrameLoaderFactory::getAvailableServiceNames()
+ throw(css::uno::RuntimeException)
+{
+ // must be the same list as ((XNameAccess*)this)->getElementNames() return!
+ return getElementNames();
+}
+
+/*-----------------------------------------------
+ 09.07.2003 07:43
+-----------------------------------------------*/
+::rtl::OUString FrameLoaderFactory::impl_getImplementationName()
+{
+ return ::rtl::OUString::createFromAscii("com.sun.star.comp.filter.config.FrameLoaderFactory");
+}
+
+/*-----------------------------------------------
+ 09.07.2003 07:43
+-----------------------------------------------*/
+css::uno::Sequence< ::rtl::OUString > FrameLoaderFactory::impl_getSupportedServiceNames()
+{
+ css::uno::Sequence< ::rtl::OUString > lServiceNames(1);
+ lServiceNames[0] = ::rtl::OUString::createFromAscii("com.sun.star.frame.FrameLoaderFactory");
+ return lServiceNames;
+}
+
+/*-----------------------------------------------
+ 09.07.2003 07:43
+-----------------------------------------------*/
+css::uno::Reference< css::uno::XInterface > SAL_CALL FrameLoaderFactory::impl_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR)
+{
+ FrameLoaderFactory* pNew = new FrameLoaderFactory(xSMGR);
+ return css::uno::Reference< css::uno::XInterface >(static_cast< css::lang::XMultiServiceFactory* >(pNew), css::uno::UNO_QUERY);
+}
+
+ } // namespace config
+} // namespace filter
diff --git a/filter/source/config/cache/frameloaderfactory.hxx b/filter/source/config/cache/frameloaderfactory.hxx
new file mode 100644
index 000000000000..7741f0011f38
--- /dev/null
+++ b/filter/source/config/cache/frameloaderfactory.hxx
@@ -0,0 +1,148 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __FILTER_CONFIG_FRAMELOADERFACTORY_HXX_
+#define __FILTER_CONFIG_FRAMELOADERFACTORY_HXX_
+
+//_______________________________________________
+// includes
+
+#include "basecontainer.hxx"
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/lang/XSingleServiceFactory.hpp>
+#include <cppuhelper/implbase1.hxx>
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+namespace css = ::com::sun::star;
+
+//_______________________________________________
+// definitions
+
+//_______________________________________________
+
+/** @short implements the service <type scope="com.sun.star.document">FrameLoaderFactory</type>.
+ */
+class FrameLoaderFactory : public ::cppu::ImplInheritanceHelper1< BaseContainer ,
+ css::lang::XMultiServiceFactory >
+{
+ //-------------------------------------------
+ // native interface
+
+ public:
+
+ //---------------------------------------
+ // ctor/dtor
+
+ /** @short standard ctor to connect this interface wrapper to
+ the global filter cache instance ...
+
+ @param xSMGR
+ reference to the uno service manager, which created this service instance.
+ */
+ FrameLoaderFactory(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR);
+
+ //---------------------------------------
+
+ /** @short standard dtor.
+ */
+ virtual ~FrameLoaderFactory();
+
+ //-------------------------------------------
+ // uno interface
+
+ public:
+
+ //---------------------------------------
+ // XMultiServiceFactory
+
+ virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstance(const ::rtl::OUString& sLoader)
+ throw(css::uno::Exception ,
+ css::uno::RuntimeException);
+
+ virtual css::uno::Reference< css::uno::XInterface > SAL_CALL createInstanceWithArguments(const ::rtl::OUString& sLoader ,
+ const css::uno::Sequence< css::uno::Any >& lArguments)
+ throw(css::uno::Exception ,
+ css::uno::RuntimeException);
+
+ virtual css::uno::Sequence< ::rtl::OUString > SAL_CALL getAvailableServiceNames()
+ throw(css::uno::RuntimeException);
+
+ //-------------------------------------------
+ // static uno helper!
+
+ public:
+
+ //---------------------------------------
+
+ /** @short return the uno implementation name of this class.
+
+ @descr Because this information is used at several places
+ (and mostly an object instance of this class is not possible)
+ its implemented as a static function!
+
+ @return The fix uno implementation name of this class.
+ */
+ static ::rtl::OUString impl_getImplementationName();
+
+ //---------------------------------------
+
+ /** @short return the list of supported uno services of this class.
+
+ @descr Because this information is used at several places
+ (and mostly an object instance of this class is not possible)
+ its implemented as a static function!
+
+ @return The fix list of uno services supported by this class.
+ */
+ static css::uno::Sequence< ::rtl::OUString > impl_getSupportedServiceNames();
+
+ //---------------------------------------
+
+ /** @short return a new intsnace of this class.
+
+ @descr This method is used by the uno service manager, to create
+ a new instance of this service if needed.
+
+ @param xSMGR
+ reference to the uno service manager, which require
+ this new instance. It should be passed to the new object
+ so it can be used internaly to create own needed uno resources.
+
+ @return The new instance of this service as an uno reference.
+ */
+ static css::uno::Reference< css::uno::XInterface > impl_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR);
+};
+
+ } // namespace config
+} // namespace filter
+
+#endif // __FILTER_CONFIG_FRAMELOADERFACTORY_HXX_
diff --git a/filter/source/config/cache/lateinitlistener.cxx b/filter/source/config/cache/lateinitlistener.cxx
new file mode 100644
index 000000000000..b9b090025227
--- /dev/null
+++ b/filter/source/config/cache/lateinitlistener.cxx
@@ -0,0 +1,136 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_filter.hxx"
+
+#include "lateinitlistener.hxx"
+#include "lateinitthread.hxx"
+
+//_______________________________________________
+// includes
+#include <rtl/ustring.hxx>
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+namespace css = ::com::sun::star;
+
+//_______________________________________________
+// definitions
+
+/*-----------------------------------------------
+ 14.08.2003 07:35
+-----------------------------------------------*/
+LateInitListener::LateInitListener(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR)
+ : BaseLock( )
+ , m_xSMGR (xSMGR)
+{
+ // important to do so ...
+ // Otherwhise the temp. reference to ourselves
+ // will kill us at realeasing time!
+ osl_incrementInterlockedCount( &m_refCount );
+
+ m_xBroadcaster = css::uno::Reference< css::document::XEventBroadcaster >(
+ m_xSMGR->createInstance(::rtl::OUString::createFromAscii("com.sun.star.frame.GlobalEventBroadcaster")),
+ css::uno::UNO_QUERY);
+
+ m_xBroadcaster->addEventListener(static_cast< css::document::XEventListener* >(this));
+
+ osl_decrementInterlockedCount( &m_refCount );
+}
+
+/*-----------------------------------------------
+ 14.08.2003 07:25
+-----------------------------------------------*/
+LateInitListener::~LateInitListener()
+{
+}
+
+/*-----------------------------------------------
+ 14.08.2003 08:45
+-----------------------------------------------*/
+void SAL_CALL LateInitListener::notifyEvent(const css::document::EventObject& aEvent)
+ throw(css::uno::RuntimeException)
+{
+ // wait for events, which indicates finished open of the first document
+ if (
+ (aEvent.EventName.equalsAscii("OnNew") ) ||
+ (aEvent.EventName.equalsAscii("OnLoad"))
+ )
+ {
+ // this thread must be started one times only ...
+ // cancel listener connection before!
+
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ if ( !m_xBroadcaster.is() )
+ // the beauty of multi-threading ... OnLoad can be notified synchronously or asynchronously. In particular,
+ // SFX-based documents notify it synchronously, database documents do it asynchronously.
+ // Now if multiple documents are opened "at the same time", it is well possible that we get two events from
+ // different threads, where upon the first event, we already remove ourself from m_xBroadcaster, and start
+ // the thread, nonetheless there's also a second notification "in the queue", which will arrive short
+ // thereafter.
+ // In such a case, simply ignore this second event.
+ return;
+
+ m_xBroadcaster->removeEventListener(static_cast< css::document::XEventListener* >(this));
+ m_xBroadcaster.clear();
+
+ aLock.clear();
+ // <- SAFE
+
+ LateInitThread* pThread = new LateInitThread();
+ pThread->create();
+ }
+}
+
+/*-----------------------------------------------
+ 14.08.2003 07:48
+-----------------------------------------------*/
+void SAL_CALL LateInitListener::disposing(const css::lang::EventObject& /* aEvent */ )
+ throw(css::uno::RuntimeException)
+{
+ // ???
+ // Normaly it should never be called. Because we cancel our listener connection
+ // if we got the event about finished open of the first office document.
+ // But if this method was reached, it indicates an office, which was started
+ // (might as remote script container for an external API client) but not realy used.
+
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ m_xBroadcaster.clear();
+ aLock.clear();
+ // <- SAFE
+}
+
+ } // namespace config
+} // namespace filter
diff --git a/filter/source/config/cache/lateinitlistener.hxx b/filter/source/config/cache/lateinitlistener.hxx
new file mode 100644
index 000000000000..0ed1abf1e679
--- /dev/null
+++ b/filter/source/config/cache/lateinitlistener.hxx
@@ -0,0 +1,125 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __FILTER_CONFIG_LATEINITLISTENER_HXX_
+#define __FILTER_CONFIG_LATEINITLISTENER_HXX_
+
+//_______________________________________________
+// includes
+
+#include "cacheitem.hxx"
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <com/sun/star/lang/XEventListener.hpp>
+#include <com/sun/star/document/XEventListener.hpp>
+#include <com/sun/star/document/XEventBroadcaster.hpp>
+#include <cppuhelper/implbase1.hxx>
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+//_______________________________________________
+// definitions
+
+//_______________________________________________
+
+/** @short implements a listener, which will update the
+ global filter cache of an office, after zje office
+ startup was finished.
+
+ @descr To perform startup of an office, the filter cache starts
+ with a minimum set of properties only. After the first document
+ was loaded successfully a thread will be started to fill the
+ cache with all other proeprties, so it can work with the whole
+ filter configuration.
+ */
+class LateInitListener : public BaseLock // must be the first one to guarantee right initialized mutex member!
+ , public ::cppu::WeakImplHelper1< css::document::XEventListener >
+{
+ //-------------------------------------------
+ // member
+
+ private:
+
+ /** @short reference to an uno service manager, which can be used
+ to create own needed services. */
+ css::uno::Reference< css::lang::XMultiServiceFactory > m_xSMGR;
+
+ /** @short reference to the global event broadcaster, which is usde to find
+ out, when the first office document was opened successfully. */
+ css::uno::Reference< css::document::XEventBroadcaster > m_xBroadcaster;
+
+ //-------------------------------------------
+ // native interface
+
+ public:
+
+ //---------------------------------------
+ // ctor/dtor
+
+ /** @short initialize new instance of this class.
+
+ @descr It set a reference to the global filter cache singleton,
+ which should be updated here. Further it starts listening
+ on the global event broadcaster to get the information, when
+ loading of the first document was finished.
+
+ @param xSMGR
+ reference to a service manager, which can be used to create
+ own needed uno services.
+ */
+ LateInitListener(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR);
+
+ //---------------------------------------
+
+ /** @short standard dtor.
+ */
+ virtual ~LateInitListener();
+
+ //-------------------------------------------
+ // uno interface
+
+ public:
+
+ //---------------------------------------
+ // document.XEventListener
+
+ virtual void SAL_CALL notifyEvent(const css::document::EventObject& aEvent)
+ throw(css::uno::RuntimeException);
+
+ //---------------------------------------
+ // lang.XEventListener
+ virtual void SAL_CALL disposing(const css::lang::EventObject& aEvent)
+ throw(css::uno::RuntimeException);
+};
+
+ } // namespace config
+} // namespace filter
+
+#endif // __FILTER_CONFIG_LATEINITLISTENER_HXX_
diff --git a/filter/source/config/cache/lateinitthread.cxx b/filter/source/config/cache/lateinitthread.cxx
new file mode 100644
index 000000000000..1cae15996876
--- /dev/null
+++ b/filter/source/config/cache/lateinitthread.cxx
@@ -0,0 +1,85 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_filter.hxx"
+
+#include "lateinitthread.hxx"
+
+//_______________________________________________
+// includes
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+namespace css = ::com::sun::star;
+
+//_______________________________________________
+// definitions
+
+/*-----------------------------------------------
+ 14.08.2003 09:31
+-----------------------------------------------*/
+LateInitThread::LateInitThread()
+{
+}
+
+/*-----------------------------------------------
+ 14.08.2003 08:42
+-----------------------------------------------*/
+LateInitThread::~LateInitThread()
+{
+}
+
+/*-----------------------------------------------
+ 28.10.2003 09:30
+-----------------------------------------------*/
+void SAL_CALL LateInitThread::run()
+{
+ // sal_True => It indicates using of this method by this thread
+ // The filter cache use this information to show an assertion
+ // for "optimization failure" in case the first calli of loadAll()
+ // was not this thread ...
+
+ // Further please dont catch any exception here.
+ // May be they show the problem of a corrupted filter
+ // configuration, which is handled inside our event loop or desktop.main()!
+
+ ::salhelper::SingletonRef< FilterCache > rCache;
+ rCache->load(FilterCache::E_CONTAINS_ALL, sal_True);
+}
+
+void SAL_CALL LateInitThread::onTerminated()
+{
+ delete this;
+}
+
+ } // namespace config
+} // namespace filter
diff --git a/filter/source/config/cache/lateinitthread.hxx b/filter/source/config/cache/lateinitthread.hxx
new file mode 100644
index 000000000000..b37d0525dd4b
--- /dev/null
+++ b/filter/source/config/cache/lateinitthread.hxx
@@ -0,0 +1,91 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __FILTER_CONFIG_LATEINITTHREAD_HXX_
+#define __FILTER_CONFIG_LATEINITTHREAD_HXX_
+
+//_______________________________________________
+// includes
+
+#include "filtercache.hxx"
+#include <salhelper/singletonref.hxx>
+#include <osl/thread.hxx>
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+//_______________________________________________
+// definitions
+
+//_______________________________________________
+
+/** @short implements a thread, which will update the
+ global filter cache of an office, after its
+ startup was finished.
+
+ @descr Its started by a LateInitListener instance ...
+
+ @see LateInitListener
+
+ @attention The filter cache will be blocked during this thrad runs!
+ */
+class LateInitThread : public ::osl::Thread
+{
+ //-------------------------------------------
+ // native interface
+
+ public:
+
+ //---------------------------------------
+ // ctor/dtor
+
+ /** @short initialize new instance of this class.
+ */
+ LateInitThread();
+
+ //---------------------------------------
+
+ /** @short standard dtor.
+ */
+ virtual ~LateInitThread();
+
+ //---------------------------------------
+
+ /** @short thread function.
+ */
+ virtual void SAL_CALL run();
+
+ virtual void SAL_CALL onTerminated();
+};
+
+ } // namespace config
+} // namespace filter
+
+#endif // __FILTER_CONFIG_LATEINITTHREAD_HXX_
diff --git a/filter/source/config/cache/macros.hxx b/filter/source/config/cache/macros.hxx
new file mode 100644
index 000000000000..485029ead5a8
--- /dev/null
+++ b/filter/source/config/cache/macros.hxx
@@ -0,0 +1,132 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _FILTER_CONFIG_MACROS_HXX_
+#define _FILTER_CONFIG_MACROS_HXX_
+
+//_______________________________________________
+
+#include <rtl/ustring.hxx>
+
+#ifdef _FILTER_CONFIG_FROM_ASCII_
+ #error "who already defined such macro :-("
+#endif
+
+#ifdef _FILTER_CONFIG_TO_ASCII_
+ #error "who already defined such macro :-("
+#endif
+
+/*
+//#define _FILTER_CONFIG_FROM_ASCII_(ASCII_STRING) \
+// ::rtl::OUString::createFromAscii(ASCII_STRING)
+*/
+
+#define _FILTER_CONFIG_FROM_ASCII_(ASCII_STRING) \
+ ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(ASCII_STRING))
+
+#define _FILTER_CONFIG_TO_ASCII_(UNICODE_STRING) \
+ ::rtl::OUStringToOString(UNICODE_STRING, RTL_TEXTENCODING_UTF8).getStr()
+
+#define _FILTER_CONFIG_LOG_(TEXT)
+#define _FILTER_CONFIG_LOG_1_(FORMAT, ARG1)
+#define _FILTER_CONFIG_LOG_2_(FORMAT, ARG1, ARG2)
+#define _FILTER_CONFIG_LOG_3_(FORMAT, ARG1, ARG2, ARG3)
+
+/*
+#include <rtl/ustrbuf.hxx>
+
+#include <stdio.h>
+
+//_______________________________________________
+
+ #ifdef _FILTER_CONFIG_LOG_
+ #error "who already defined such macro :-("
+ #endif
+
+ #ifdef _FILTER_CONFIG_LOG_1_
+ #error "who already defined such macro :-("
+ #endif
+
+ #ifdef _FILTER_CONFIG_LOG_2_
+ #error "who already defined such macro :-("
+ #endif
+
+ #ifdef _FILTER_CONFIG_LOG_3_
+ #error "who already defined such macro :-("
+ #endif
+
+ //-------------------------------------------
+ // @short append given text to the log file
+ //
+ // @param TEXT [const char*]
+ // contains the text, which should be logged
+ //
+ #define _FILTER_CONFIG_LOG_(TEXT) \
+ { \
+ FILE* pFile = fopen("filtercache.log", "a");\
+ fprintf(pFile, "%s", TEXT); \
+ fclose(pFile); \
+ }
+
+ //-------------------------------------------
+ // @short append given text to the log file
+ // and supports using one optional argument.
+ //
+ // @descr The syntax of FORMAT and ARG1 follows the
+ // mechanism of e.g. sprintf();
+ //
+ // @param FORMAT [const char*]
+ // specify the format of the log message
+ //
+ // @param ARGn
+ // points to any argument(s), which will be used
+ // inside the FORMAT string to replace place holder(s).
+ //
+ #define _FILTER_CONFIG_LOG_1_(FORMAT, ARG1) \
+ { \
+ FILE* pFile = fopen("filtercache.log", "a");\
+ fprintf(pFile, FORMAT, ARG1); \
+ fclose(pFile); \
+ }
+
+ #define _FILTER_CONFIG_LOG_2_(FORMAT, ARG1, ARG2) \
+ { \
+ FILE* pFile = fopen("filtercache.log", "a");\
+ fprintf(pFile, FORMAT, ARG1, ARG2); \
+ fclose(pFile); \
+ }
+
+ #define _FILTER_CONFIG_LOG_3_(FORMAT, ARG1, ARG2, ARG3) \
+ { \
+ FILE* pFile = fopen("filtercache.log", "a");\
+ fprintf(pFile, FORMAT, ARG1, ARG2, ARG3); \
+ fclose(pFile); \
+ }
+
+#endif // OSL_DEBUG_LEVEL < 2
+*/
+#endif // _FILTER_CONFIG_MACROS_HXX_
diff --git a/filter/source/config/cache/makefile.mk b/filter/source/config/cache/makefile.mk
new file mode 100644
index 000000000000..d94c81e35010
--- /dev/null
+++ b/filter/source/config/cache/makefile.mk
@@ -0,0 +1,87 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ = ..$/..$/..
+
+PRJNAME = filter
+TARGET = filterconfig
+ENABLE_EXCEPTIONS = TRUE
+VERSION = 1
+USE_DEFFILE = TRUE
+LIBTARGET = NO
+
+# --- Settings ----------------------------------
+
+.INCLUDE : settings.mk
+
+# --- Library -----------------------------------
+
+SHL1TARGET= $(TARGET)$(VERSION)
+
+SLOFILES= \
+ $(SLO)$/configflush.obj \
+ $(SLO)$/basecontainer.obj \
+ $(SLO)$/cacheitem.obj \
+ $(SLO)$/contenthandlerfactory.obj \
+ $(SLO)$/filtercache.obj \
+ $(SLO)$/filterfactory.obj \
+ $(SLO)$/frameloaderfactory.obj \
+ $(SLO)$/lateinitlistener.obj \
+ $(SLO)$/lateinitthread.obj \
+ $(SLO)$/querytokenizer.obj \
+ $(SLO)$/registration.obj \
+ $(SLO)$/typedetection.obj \
+ $(SLO)$/cacheupdatelistener.obj
+
+SHL1OBJS= $(SLOFILES)
+
+SHL1STDLIBS= \
+ $(COMPHELPERLIB) \
+ $(CPPUHELPERLIB) \
+ $(CPPULIB) \
+ $(SALLIB) \
+ $(TOOLSLIB) \
+ $(UNOTOOLSLIB) \
+ $(FWELIB)
+
+DEF1NAME= $(SHL1TARGET)
+SHL1DEF= $(MISC)$/$(SHL1TARGET).def
+SHL1DEPN=
+SHL1IMPLIB= i$(SHL1TARGET)
+SHL1VERSIONMAP= $(SOLARENV)/src/component.map
+
+# --- Targets ----------------------------------
+
+.INCLUDE : target.mk
+
+ALLTAR : $(MISC)/filterconfig1.component
+
+$(MISC)/filterconfig1.component .ERRREMOVE : \
+ $(SOLARENV)/bin/createcomponent.xslt filterconfig1.component
+ $(XSLTPROC) --nonet --stringparam uri \
+ '$(COMPONENTPREFIX_BASIS_NATIVE)$(SHL1TARGETN:f)' -o $@ \
+ $(SOLARENV)/bin/createcomponent.xslt filterconfig1.component
diff --git a/filter/source/config/cache/querytokenizer.cxx b/filter/source/config/cache/querytokenizer.cxx
new file mode 100644
index 000000000000..a07a95e37d23
--- /dev/null
+++ b/filter/source/config/cache/querytokenizer.cxx
@@ -0,0 +1,99 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_filter.hxx"
+
+#include "querytokenizer.hxx"
+
+//_______________________________________________
+// includes
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+//_______________________________________________
+// definitions
+
+/*-----------------------------------------------
+ 01.08.2003 10:42
+-----------------------------------------------*/
+QueryTokenizer::QueryTokenizer(const ::rtl::OUString& sQuery)
+ : m_bValid(sal_True)
+{
+ sal_Int32 token = 0;
+ while(token != -1)
+ {
+ ::rtl::OUString sToken = sQuery.getToken(0, ':', token);
+ if (sToken.getLength())
+ {
+ sal_Int32 equal = sToken.indexOf('=');
+
+ if (equal == 0)
+ m_bValid = sal_False;
+ OSL_ENSURE(m_bValid, "QueryTokenizer::QueryTokenizer()\nFound non boolean query parameter ... but its key is empty. Will be ignored!\n");
+
+ ::rtl::OUString sKey;
+ ::rtl::OUString sVal;
+
+ sKey = sToken;
+ if (equal > 0)
+ {
+ sKey = sToken.copy(0 , equal );
+ sVal = sToken.copy(equal+1, sToken.getLength()-(equal+1));
+ }
+
+ if (find(sKey) != end())
+ m_bValid = sal_False;
+ OSL_ENSURE(m_bValid, "QueryTokenizer::QueryTokenizer()\nQuery contains same param more then once. Last one wins :-)\n");
+
+ (*this)[sKey] = sVal;
+ }
+ }
+}
+
+/*-----------------------------------------------
+ 01.08.2003 10:28
+-----------------------------------------------*/
+QueryTokenizer::~QueryTokenizer()
+{
+ /*TODO*/
+}
+
+/*-----------------------------------------------
+ 01.08.2003 10:53
+-----------------------------------------------*/
+sal_Bool QueryTokenizer::valid() const
+{
+ return m_bValid;
+}
+
+ } // namespace config
+} // namespace filter
diff --git a/filter/source/config/cache/querytokenizer.hxx b/filter/source/config/cache/querytokenizer.hxx
new file mode 100644
index 000000000000..0823e49f5616
--- /dev/null
+++ b/filter/source/config/cache/querytokenizer.hxx
@@ -0,0 +1,115 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _FILTER_CONFIG_QUERYTOKENIZER_HXX_
+#define _FILTER_CONFIG_QUERYTOKENIZER_HXX_
+
+//_______________________________________________
+// includes
+
+#include <hash_map>
+#include <rtl/ustring.hxx>
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+//_______________________________________________
+// definitions
+
+/** @short It can be used to split any query string (which can be used at the
+ related interface <type scope="com::sun::star::container">XContainerQuery</type>)
+ into its different tokens using a fix schema.
+
+ @descr All queries implemented of the services
+ <ul>
+ <li><type scope="com::sun::star::document">TypeDetection</type></li>
+ <li><type scope="com::sun::star::document">FilterFactory</type></li>
+ <li><type scope="com::sun::star::document">ExtendedTypeDetectionFactory</type></li>
+ <li><type scope="com::sun::star::frame">FrameLoaderFactory</type></li>
+ <li><type scope="com::sun::star::frame">ContentHandlerFactory</type></li>
+ </ul>
+ uses this schema.
+
+ @attention This class is not threadsafe implemented. Because its not neccessary.
+ But you have to make shure, that ist not used as such :-)
+ */
+class QueryTokenizer : public ::std::hash_map< ::rtl::OUString ,
+ ::rtl::OUString ,
+ ::rtl::OUStringHash ,
+ ::std::equal_to< ::rtl::OUString > >
+{
+ //-------------------------------------------
+ // member
+
+ private:
+
+ /** @short Because the given query can contain errors,
+ it should be checked outside.
+
+ TODO May its a good idea to describe the real problem
+ more detailed ...
+ */
+ sal_Bool m_bValid;
+
+ //-------------------------------------------
+ // interface
+
+ public:
+
+ /** @short create a new tokenizer instance with a
+ a new query.
+
+ @descr The given query is immidiatly analyzed
+ and seperated into its token, which can
+ be access by some specialized method later.
+
+ @param sQuery
+ the query string.
+ */
+ QueryTokenizer(const ::rtl::OUString& sQuery);
+
+ //---------------------------------------
+
+ /** @short destruct an instance of this class.
+ */
+ virtual ~QueryTokenizer();
+
+ //---------------------------------------
+
+ /** @short can be used to check if analyzing of given query
+ was successfully or not.
+ */
+ virtual sal_Bool valid() const;
+};
+
+ } // namespace config
+} // namespace filter
+
+#endif // _FILTER_CONFIG_QUERYTOKENIZER_HXX_
diff --git a/filter/source/config/cache/registration.cxx b/filter/source/config/cache/registration.cxx
new file mode 100644
index 000000000000..2be110871ee1
--- /dev/null
+++ b/filter/source/config/cache/registration.cxx
@@ -0,0 +1,123 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_filter.hxx"
+
+#include "registration.hxx"
+
+//_______________________________________________
+// includes
+
+#ifdef _FILTER_CONFIG_CONSTANT_HXX_
+# error "Already included constant.hxx"
+#else
+# define PROPNAME_IMPL_DECL
+# include "constant.hxx"
+#endif
+#include <stdio.h>
+#include "typedetection.hxx"
+#include "filterfactory.hxx"
+#include "contenthandlerfactory.hxx"
+#include "frameloaderfactory.hxx"
+#include "configflush.hxx"
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+namespace css = ::com::sun::star;
+
+//_______________________________________________
+// definitions
+
+rtl::OUString pFilterStrings[19];
+static bool bInitialized = false;
+
+static void InitConstants()
+{
+ if (!bInitialized)
+ {
+ ::osl::MutexGuard aGuard(::osl::Mutex::getGlobalMutex());
+ if (!bInitialized)
+ {
+ PROPNAME_NAME;
+ PROPNAME_UINAME;
+ PROPNAME_UINAMES;
+ PROPNAME_PREFERRED;
+ PROPNAME_PREFERREDFILTER;
+ PROPNAME_DETECTSERVICE;
+ PROPNAME_MEDIATYPE;
+ PROPNAME_CLIPBOARDFORMAT;
+ PROPNAME_URLPATTERN;
+ PROPNAME_EXTENSIONS;
+ PROPNAME_TYPE;
+ PROPNAME_DOCUMENTSERVICE;
+ PROPNAME_FILTERSERVICE;
+ PROPNAME_UICOMPONENT;
+ PROPNAME_FLAGS;
+ PROPNAME_USERDATA;
+ PROPNAME_TEMPLATENAME;
+ PROPNAME_FILEFORMATVERSION;
+ PROPNAME_TYPES;
+ bInitialized = true;
+ }
+ }
+}
+
+// extern "C" component_getImplementationEnvironment()
+_COMPHELPER_COMPONENT_GETIMPLEMENTATIONENVIRONMENT
+
+// extern "C" component_getFactory()
+_COMPHELPER_COMPONENT_GETFACTORY
+(
+ { InitConstants(); },
+ _COMPHELPER_MULTIINSTANCEFACTORY( TypeDetection::impl_getImplementationName() ,
+ TypeDetection::impl_getSupportedServiceNames(),
+ TypeDetection::impl_createInstance )
+
+ _COMPHELPER_MULTIINSTANCEFACTORY( FilterFactory::impl_getImplementationName() ,
+ FilterFactory::impl_getSupportedServiceNames(),
+ FilterFactory::impl_createInstance )
+
+ _COMPHELPER_MULTIINSTANCEFACTORY( ContentHandlerFactory::impl_getImplementationName() ,
+ ContentHandlerFactory::impl_getSupportedServiceNames(),
+ ContentHandlerFactory::impl_createInstance )
+
+ _COMPHELPER_MULTIINSTANCEFACTORY( FrameLoaderFactory::impl_getImplementationName() ,
+ FrameLoaderFactory::impl_getSupportedServiceNames(),
+ FrameLoaderFactory::impl_createInstance )
+
+ _COMPHELPER_ONEINSTANCEFACTORY( ConfigFlush::impl_getImplementationName() ,
+ ConfigFlush::impl_getSupportedServiceNames(),
+ ConfigFlush::impl_createInstance )
+)
+
+ } // namespace config
+} // namespace filter
diff --git a/filter/source/config/cache/registration.hxx b/filter/source/config/cache/registration.hxx
new file mode 100644
index 000000000000..d664cc365abb
--- /dev/null
+++ b/filter/source/config/cache/registration.hxx
@@ -0,0 +1,121 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef __COMPHELPER_REGISTRATION_HXX_
+#define __COMPHELPER_REGISTRATION_HXX_
+
+//_______________________________________________
+// includes
+
+#include <com/sun/star/lang/XSingleServiceFactory.hpp>
+#include <com/sun/star/lang/XMultiServiceFactory.hpp>
+#include <rtl/ustrbuf.hxx>
+#include <cppuhelper/factory.hxx>
+
+//_______________________________________________
+// namespace
+
+namespace comphelper{
+
+//_______________________________________________
+// declaration
+
+//_______________________________________________
+
+/** TODO doc
+ */
+#define _COMPHELPER_COMPONENT_GETIMPLEMENTATIONENVIRONMENT \
+ extern "C" void SAL_CALL component_getImplementationEnvironment(const sal_Char** ppEnvironmentTypeName, \
+ uno_Environment** /* ppEnvironment */ ) \
+ { \
+ *ppEnvironmentTypeName = CPPU_CURRENT_LANGUAGE_BINDING_NAME; \
+ }
+
+//_______________________________________________
+
+/** TODO doc
+ */
+#define _COMPHELPER_MULTIINSTANCEFACTORY(IMPLEMENTATIONNAME, SERVICENAMES, FACTORYMETHOD) \
+ if (IMPLEMENTATIONNAME == sImplName) \
+ xFactory = ::cppu::createSingleFactory(xSMGR , \
+ IMPLEMENTATIONNAME, \
+ FACTORYMETHOD , \
+ SERVICENAMES );
+
+//_______________________________________________
+
+/** TODO doc
+ */
+#define _COMPHELPER_ONEINSTANCEFACTORY(IMPLEMENTATIONNAME, SERVICENAMES, FACTORYMETHOD) \
+ if (IMPLEMENTATIONNAME == sImplName) \
+ xFactory = ::cppu::createOneInstanceFactory(xSMGR , \
+ IMPLEMENTATIONNAME, \
+ FACTORYMETHOD , \
+ SERVICENAMES );
+
+//_______________________________________________
+
+/** TODO doc
+ */
+#define _COMPHELPER_COMPONENT_GETFACTORY(STATIC_INIT,FACTORYLIST) \
+ extern "C" void* SAL_CALL component_getFactory(const sal_Char* pImplementationName, \
+ void* pServiceManager , \
+ void* /* pRegistryKey */ ) \
+ { \
+ if ( \
+ (!pImplementationName) || \
+ (!pServiceManager ) \
+ ) \
+ return NULL; \
+ \
+ STATIC_INIT \
+ \
+ css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR = reinterpret_cast< css::lang::XMultiServiceFactory* >(pServiceManager); \
+ css::uno::Reference< css::lang::XSingleServiceFactory > xFactory ; \
+ rtl::OUString sImplName = ::rtl::OUString::createFromAscii(pImplementationName); \
+ \
+ /* This parameter will expand to: */ \
+ /* _COMPHELPER_xxxFACTORY(1) */ \
+ /* else */ \
+ /* ... */ \
+ /* else */ \
+ /* _COMPHELPER_xxxFACTORY(n) */ \
+ FACTORYLIST \
+ \
+ /* And if one of these checks was successfully => xFactory was set! */ \
+ if (xFactory.is()) \
+ { \
+ xFactory->acquire(); \
+ return xFactory.get(); \
+ } \
+ \
+ return NULL; \
+ }
+
+} // namespace comphelper
+
+#endif // #ifndef __COMPHELPER_REGISTRATION_HXX_
diff --git a/filter/source/config/cache/typedetection.cxx b/filter/source/config/cache/typedetection.cxx
new file mode 100644
index 000000000000..69e44516d63d
--- /dev/null
+++ b/filter/source/config/cache/typedetection.cxx
@@ -0,0 +1,1256 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+// MARKER(update_precomp.py): autogen include statement, do not remove
+#include "precompiled_filter.hxx"
+#include "typedetection.hxx"
+#include "constant.hxx"
+
+//_______________________________________________
+// includes
+#include <com/sun/star/document/XExtendedFilterDetection.hpp>
+#include <com/sun/star/util/XURLTransformer.hpp>
+
+#ifndef _COM_SUN_STAR_IO_XINPUSTREAM_HPP_
+#include <com/sun/star/io/XInputStream.hpp>
+#endif
+#include <com/sun/star/io/XSeekable.hpp>
+#include <com/sun/star/task/XInteractionHandler.hpp>
+#include <tools/wldcrd.hxx>
+#include <rtl/ustrbuf.hxx>
+#include <framework/interaction.hxx>
+#include <tools/urlobj.hxx>
+#include <unotools/localfilehelper.hxx>
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+namespace css = ::com::sun::star;
+
+//_______________________________________________
+// definitions
+
+// Use this switch to change the behaviour of preselection DocumentService ... (see using for further informations)
+#define IGNORE_NON_URLMATCHING_TYPES_FOR_PRESELECTION_DOCUMENTSERVICE
+
+// enable/disable special handling for CSV/TXT problem
+#define WORKAROUND_CSV_TXT_BUG_i60158
+
+/*-----------------------------------------------
+ 03.07.2003 11:25
+-----------------------------------------------*/
+TypeDetection::TypeDetection(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR)
+{
+ BaseContainer::init(xSMGR ,
+ TypeDetection::impl_getImplementationName() ,
+ TypeDetection::impl_getSupportedServiceNames(),
+ FilterCache::E_TYPE );
+}
+
+/*-----------------------------------------------
+ 03.07.2003 10:36
+-----------------------------------------------*/
+TypeDetection::~TypeDetection()
+{
+}
+
+/*-----------------------------------------------
+ 03.11.2003 08:43
+-----------------------------------------------*/
+::rtl::OUString SAL_CALL TypeDetection::queryTypeByURL(const ::rtl::OUString& sURL)
+ throw (css::uno::RuntimeException)
+{
+ ::rtl::OUString sType;
+
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ css::util::URL aURL;
+ aURL.Complete = sURL;
+ css::uno::Reference< css::util::XURLTransformer > xParser(m_xSMGR->createInstance(SERVICE_URLTRANSFORMER), css::uno::UNO_QUERY);
+ xParser->parseStrict(aURL);
+
+ // set std types as minimum requirement first!
+ // Only in case no type was found for given URL,
+ // use optional types too ...
+ FlatDetection lFlatTypes;
+ m_rCache->detectFlatForURL(aURL, lFlatTypes);
+
+ if (
+ (lFlatTypes.size() < 1 ) &&
+ (!m_rCache->isFillState(FilterCache::E_CONTAINS_TYPES))
+ )
+ {
+ m_rCache->load(FilterCache::E_CONTAINS_TYPES);
+ m_rCache->detectFlatForURL(aURL, lFlatTypes);
+ }
+
+ // first item is guaranteed as "preferred" one!
+ if (lFlatTypes.size() > 0)
+ {
+ const FlatDetectionInfo& aMatch = *(lFlatTypes.begin());
+ sType = aMatch.sType;
+ }
+
+ return sType;
+ // <- SAFE
+}
+
+/*-----------------------------------------------
+ 31.10.2003 09:36
+-----------------------------------------------*/
+::rtl::OUString SAL_CALL TypeDetection::queryTypeByDescriptor(css::uno::Sequence< css::beans::PropertyValue >& lDescriptor,
+ sal_Bool bAllowDeep )
+ throw (css::uno::RuntimeException)
+{
+ // make the descriptor more useable :-)
+ ::comphelper::MediaDescriptor stlDescriptor(lDescriptor);
+
+ // SAFE -> ----------------------------------
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ //*******************************************
+ // parse given URL to split it into e.g. main and jump marks ...
+ ::rtl::OUString sURL = stlDescriptor.getUnpackedValueOrDefault(::comphelper::MediaDescriptor::PROP_URL(), ::rtl::OUString());
+
+#if OSL_DEBUG_LEVEL > 0
+ if (stlDescriptor.find(::rtl::OUString::createFromAscii("FileName")) != stlDescriptor.end())
+ OSL_ENSURE(sal_False, "Detect using of deprecated and already unsupported MediaDescriptor property \"FileName\"!");
+#endif
+
+ css::util::URL aURL;
+ aURL.Complete = sURL;
+ css::uno::Reference< css::util::XURLTransformer > xParser(m_xSMGR->createInstance(SERVICE_URLTRANSFORMER), css::uno::UNO_QUERY);
+ xParser->parseStrict(aURL);
+
+ //*******************************************
+ // preselected filter, type or document service?
+ // use it as first "flat" detected type later!
+ FlatDetection lFlatTypes;
+ impl_getPreselection(aURL, stlDescriptor, lFlatTypes);
+
+ //*******************************************
+ // get all types, which match to the given descriptor
+ // That can be true by: extensions/url pattern/mime type etcpp.
+ m_rCache->detectFlatForURL(aURL, lFlatTypes);
+
+ aLock.clear();
+ // <- SAFE ----------------------------------
+
+ ::rtl::OUString sType ;
+ ::rtl::OUString sLastChance;
+
+ try
+ {
+ //*******************************************
+ // verify every flat detected (or preselected!) type
+ // by calling its registered deep detection service.
+ // But break this loop if a type match to the given descriptor
+ // by an URL pattern(!) or if deep detection isnt allowed from
+ // outside (bAllowDeep=sal_False) or break the whole detection by
+ // throwing an exception if creation of the might needed input
+ // stream failed by e.g. an IO exception ...
+ OUStringList lUsedDetectors;
+ if (lFlatTypes.size()>0)
+ sType = impl_detectTypeFlatAndDeep(stlDescriptor, lFlatTypes, bAllowDeep, lUsedDetectors, sLastChance);
+
+ //*******************************************
+ // if no flat detected (nor preselected!) type could be
+ // verified and no error occured during creation of
+ // the might needed input stream, start detection
+ // which uses all registered deep detection services.
+ if (
+ (!sType.getLength()) &&
+ (bAllowDeep )
+ )
+ {
+ sType = impl_detectTypeDeepOnly(stlDescriptor, lUsedDetectors);
+ }
+
+ //*******************************************
+ // flat detection failed
+ // pure deep detection failed
+ // => ask might existing InteractionHandler
+ // means: ask user for it's decision
+ if (!sType.getLength())
+ sType = impl_askUserForTypeAndFilterIfAllowed(stlDescriptor);
+
+ //*******************************************
+ // no real detected type - but a might valid one.
+ // update descriptor and set last chance for return.
+ if (!sType.getLength() && sLastChance.getLength())
+ {
+ OSL_ENSURE(sal_False, "set first flat detected type without a registered deep detection service as \"last chance\" ... nevertheless some other deep detections said \"NO\". I TRY IT!");
+ sType = sLastChance;
+ }
+ }
+ catch(const css::uno::RuntimeException&)
+ { throw; }
+ catch(const css::uno::Exception&)
+ { sType = ::rtl::OUString(); }
+
+ //*******************************************
+ // adapt media descriptor, so it contains the right values
+ // for type/filter name/document service/ etcpp.
+ impl_checkResultsAndAddBestFilter(stlDescriptor, sType); // Attention: sType is used as IN/OUT param here and will might be changed inside this method !!!
+ impl_validateAndSetTypeOnDescriptor(stlDescriptor, sType);
+
+ stlDescriptor >> lDescriptor;
+ return sType;
+}
+
+/*-----------------------------------------------
+ 03.07.2003 10:36
+-----------------------------------------------*/
+void TypeDetection::impl_checkResultsAndAddBestFilter(::comphelper::MediaDescriptor& rDescriptor,
+ ::rtl::OUString& sType )
+{
+ // a)
+ // Dont overwrite a might preselected filter!
+ ::rtl::OUString sFilter = rDescriptor.getUnpackedValueOrDefault(
+ ::comphelper::MediaDescriptor::PROP_FILTERNAME(),
+ ::rtl::OUString());
+ if (sFilter.getLength())
+ return;
+
+ // b)
+ // check a preselected document service too.
+ // Then we have to search a suitable filter witin this module.
+ ::rtl::OUString sDocumentService = rDescriptor.getUnpackedValueOrDefault(
+ ::comphelper::MediaDescriptor::PROP_DOCUMENTSERVICE(),
+ ::rtl::OUString());
+ if (sDocumentService.getLength())
+ {
+ try
+ {
+ ::rtl::OUString sRealType = sType;
+
+ #ifdef WORKAROUND_CSV_TXT_BUG_i60158
+ // Workaround for #i60158#
+ // We do not have right filter for Text_Ascii in calc nor a suitable filter for CSV in writer.
+ // So we must overrule our detection and make the right things. Normaly we should have
+ // one type TextAscii and two filters registered for these one type.
+ // But then we loose automatic opening of CSV files in calc instead of opening these files
+ // inside writer.
+ if (
+ (sDocumentService.equalsAscii("com.sun.star.sheet.SpreadsheetDocument")) &&
+ (
+ (sRealType.equalsAscii("writer_Text" )) ||
+ (sRealType.equalsAscii("writer_Text_encoded"))
+ )
+ )
+ {
+ sRealType = ::rtl::OUString::createFromAscii("calc_Text_txt_csv_StarCalc");
+ }
+ else
+ if (
+ (sDocumentService.equalsAscii("com.sun.star.text.TextDocument")) &&
+ (sRealType.equalsAscii("calc_Text_txt_csv_StarCalc" ))
+ )
+ {
+ sRealType = ::rtl::OUString::createFromAscii("writer_Text");
+ }
+ #endif // WORKAROUND_CSV_TXT_BUG_i60158
+
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ // Attention: For executing next lines of code, We must be shure that
+ // all filters already loaded :-(
+ // That can disturb our "load on demand feature". But we have no other chance!
+ m_rCache->load(FilterCache::E_CONTAINS_FILTERS);
+
+ CacheItem lIProps;
+ lIProps[PROPNAME_DOCUMENTSERVICE] <<= sDocumentService;
+ lIProps[PROPNAME_TYPE ] <<= sRealType;
+ OUStringList lFilters = m_rCache->getMatchingItemsByProps(FilterCache::E_FILTER, lIProps);
+
+ aLock.clear();
+ // <- SAFE
+
+ for ( OUStringList::const_iterator pIt = lFilters.begin();
+ pIt != lFilters.end() && sFilter.getLength() == 0 ;
+ ++pIt )
+ {
+ // SAFE ->
+ aLock.reset();
+ try
+ {
+ CacheItem aFilter = m_rCache->getItem(FilterCache::E_FILTER, *pIt);
+ sal_Int32 nFlags = 0;
+ aFilter[PROPNAME_FLAGS] >>= nFlags;
+
+ if ((nFlags & FLAGVAL_IMPORT) == FLAGVAL_IMPORT)
+ sFilter = *pIt;
+ }
+ catch(const css::uno::Exception&) {}
+ aLock.clear();
+ // <- SAFE
+ }
+
+ if (sFilter.getLength() > 0)
+ {
+ rDescriptor[::comphelper::MediaDescriptor::PROP_TYPENAME() ] <<= sRealType;
+ rDescriptor[::comphelper::MediaDescriptor::PROP_FILTERNAME()] <<= sFilter;
+ sType = sRealType;
+ return;
+ }
+ }
+ catch(const css::uno::Exception&)
+ {}
+ }
+
+ // c)
+ // We can use the preferred filter for the specified type.
+ // Such preferred filter points:
+ // - to the default filter of the preferred application
+ // - or to any other filter if no preferred filter was set.
+ // Note: It's an optimization only!
+ // It's not guaranteed, that such preferred filter exists.
+ sFilter = ::rtl::OUString();
+ try
+ {
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ CacheItem aType = m_rCache->getItem(FilterCache::E_TYPE, sType);
+ aType[PROPNAME_PREFERREDFILTER] >>= sFilter;
+ CacheItem aFilter = m_rCache->getItem(FilterCache::E_FILTER, sFilter);
+
+ aLock.clear();
+ // <- SAFE
+
+ // no exception => found valid type and filter => set it on the given descriptor
+ rDescriptor[::comphelper::MediaDescriptor::PROP_TYPENAME() ] <<= sType ;
+ rDescriptor[::comphelper::MediaDescriptor::PROP_FILTERNAME()] <<= sFilter;
+ return;
+ }
+ catch(const css::uno::Exception&)
+ {}
+
+ // d)
+ // Search for any import(!) filter, which is registered for this type.
+ sFilter = ::rtl::OUString();
+ try
+ {
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ // Attention: For executing next lines of code, We must be shure that
+ // all filters already loaded :-(
+ // That can disturb our "load on demand feature". But we have no other chance!
+ m_rCache->load(FilterCache::E_CONTAINS_FILTERS);
+
+ CacheItem lIProps;
+ lIProps[PROPNAME_TYPE] <<= sType;
+ OUStringList lFilters = m_rCache->getMatchingItemsByProps(FilterCache::E_FILTER, lIProps);
+
+ aLock.clear();
+ // <- SAFE
+
+ OUStringList::const_iterator pIt;
+ for ( pIt = lFilters.begin();
+ pIt != lFilters.end() ;
+ ++pIt )
+ {
+ sFilter = *pIt;
+
+ // SAFE ->
+ aLock.reset();
+ try
+ {
+ CacheItem aFilter = m_rCache->getItem(FilterCache::E_FILTER, sFilter);
+ sal_Int32 nFlags = 0;
+ aFilter[PROPNAME_FLAGS] >>= nFlags;
+
+ if ((nFlags & FLAGVAL_IMPORT) == FLAGVAL_IMPORT)
+ break;
+ }
+ catch(const css::uno::Exception&)
+ { continue; }
+ aLock.clear();
+ // <- SAFE
+
+ sFilter = ::rtl::OUString();
+ }
+
+ if (sFilter.getLength())
+ {
+ rDescriptor[::comphelper::MediaDescriptor::PROP_TYPENAME() ] <<= sType ;
+ rDescriptor[::comphelper::MediaDescriptor::PROP_FILTERNAME()] <<= sFilter;
+ return;
+ }
+ }
+ catch(const css::uno::Exception&)
+ {}
+}
+
+/*-----------------------------------------------
+ 14.11.2003 12:06
+-----------------------------------------------*/
+sal_Bool TypeDetection::impl_getPreselectionForType(const ::rtl::OUString& sPreSelType,
+ const css::util::URL& aParsedURL ,
+ FlatDetection& rFlatTypes )
+{
+ // Can be used to supress execution of some parts of this method
+ // if its already clear that detected type is valid or not.
+ // Its neccessary to use shared code at the end, which update
+ // all return parameters constistency!
+ sal_Bool bBreakDetection = sal_False;
+
+ // Further we must know if it matches by pattern
+ // Every flat detected type by pattern wont be detected deep!
+ sal_Bool bMatchByPattern = sal_False;
+
+ // And we must know if a preselection must be preferred, because
+ // it matches by it's extension too.
+ sal_Bool bMatchByExtension = sal_False;
+
+ // If we e.g. collect all filters of a factory (be a forced factory preselection)
+ // we should preferr all filters of this factory, where the type match the given URL.
+ // All other types (which sorrespond to filters of the same factory - but dont match
+ // the URL) should be "used later" for detection and sorted at the end of our return vector
+ // rFlatTypes!
+ // => bPreferredPreselection = (matchByExtension || matchByURLPattern)
+ sal_Bool bPreferredPreselection = sal_False;
+
+ // validate type
+ ::rtl::OUString sType(sPreSelType);
+ CacheItem aType;
+ try
+ {
+ // SAFE -> --------------------------
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ aType = m_rCache->getItem(FilterCache::E_TYPE, sType);
+ aLock.clear();
+ // <- SAFE --------------------------
+ }
+ catch(const css::container::NoSuchElementException&)
+ {
+ sType = ::rtl::OUString();
+ bBreakDetection = sal_True;
+ }
+
+ if (!bBreakDetection)
+ {
+ // We cant check a preselected type for a given stream!
+ // So we must believe, that it can work ...
+ if (aParsedURL.Complete.equalsAsciiL("private:stream", 14))
+ bBreakDetection = sal_True;
+ }
+
+ if (!bBreakDetection)
+ {
+ // extract extension from URL .. to check it case-insensitive !
+ INetURLObject aParser (aParsedURL.Main);
+ ::rtl::OUString sExtension = aParser.getExtension(INetURLObject::LAST_SEGMENT ,
+ sal_True ,
+ INetURLObject::DECODE_WITH_CHARSET);
+ sExtension = sExtension.toAsciiLowerCase();
+
+ // otherwhise we must know, if it matches to the given URL realy.
+ // especialy if it matches by its extension or pattern registration.
+ OUStringList lExtensions(aType[PROPNAME_EXTENSIONS]);
+ OUStringList lURLPattern(aType[PROPNAME_URLPATTERN]);
+
+ for (OUStringList::const_iterator pIt = lExtensions.begin();
+ pIt != lExtensions.end() ;
+ ++pIt )
+ {
+ ::rtl::OUString sCheckExtension(pIt->toAsciiLowerCase());
+ if (sCheckExtension.equals(sExtension))
+ {
+ bBreakDetection = sal_True;
+ bMatchByExtension = sal_True;
+ bPreferredPreselection = sal_True;
+ break;
+ }
+ }
+
+ if (!bBreakDetection)
+ {
+ for (OUStringList::const_iterator pIt = lURLPattern.begin();
+ pIt != lURLPattern.end() ;
+ ++pIt )
+ {
+ WildCard aCheck(*pIt);
+ if (aCheck.Matches(aParsedURL.Main))
+ {
+ bBreakDetection = sal_True;
+ bMatchByPattern = sal_True;
+ bPreferredPreselection = sal_True;
+ break;
+ }
+ }
+ }
+
+ /*
+ Comment ... why the following line of code should be comened out .-)
+
+ This type does not seem to fit the requirements
+ But its an existing and well known type.
+ At least - [because may be the extension was missing :-( ]
+ we should try to detect this type deep ...
+ So we accept it here :-)
+
+ if (!bBreakDetection)
+ sType = ::rtl::OUString();
+ */
+ }
+
+ // if its a valid type - set it on all return values!
+ if (sType.getLength())
+ {
+ FlatDetectionInfo aInfo;
+ aInfo.sType = sType;
+ aInfo.bMatchByExtension = bMatchByExtension;
+ aInfo.bMatchByPattern = bMatchByPattern;
+ aInfo.bPreselectedAsType = sal_True;
+
+ if (bPreferredPreselection)
+ rFlatTypes.push_front(aInfo);
+ else
+ rFlatTypes.push_back(aInfo);
+
+ return sal_True;
+ }
+
+ // not valid!
+ return sal_False;
+}
+
+/*-----------------------------------------------
+ 14.11.2003 12:09
+-----------------------------------------------*/
+sal_Bool TypeDetection::impl_getPreselectionForFilter(const ::rtl::OUString& sPreSelFilter,
+ const css::util::URL& aParsedURL ,
+ FlatDetection& rFlatTypes )
+{
+ // Can be used to supress execution of some parts of this method
+ // if its already clear that detected filter is valid or not.
+ // Its neccessary to use shared code at the end, which update
+ // all return parameters constistency!
+ sal_Bool bBreakDetection = sal_False;
+
+ // validate filter
+ ::rtl::OUString sFilter(sPreSelFilter);
+ CacheItem aFilter;
+ try
+ {
+ // SAFE -> --------------------------
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ aFilter = m_rCache->getItem(FilterCache::E_FILTER, sFilter);
+ aLock.clear();
+ // <- SAFE --------------------------
+ }
+ catch(const css::container::NoSuchElementException&)
+ {
+ sFilter = ::rtl::OUString();
+ bBreakDetection = sal_True;
+ }
+
+ if (!bBreakDetection)
+ {
+ // get its type and check if it matches the given URL
+ ::rtl::OUString sType;
+ aFilter[PROPNAME_TYPE] >>= sType;
+
+ bBreakDetection = impl_getPreselectionForType(sType, aParsedURL, rFlatTypes);
+
+ // not a valid type? -> not a valid filter!
+ if (!bBreakDetection)
+ sFilter = ::rtl::OUString();
+ }
+
+ // We have to mark all retrieved preselection items as "preselected by filter"!
+ FlatDetection::iterator pIt;
+ for ( pIt = rFlatTypes.begin();
+ pIt != rFlatTypes.end() ;
+ ++pIt )
+ {
+ FlatDetectionInfo& rInfo = *pIt;
+ rInfo.bPreselectedAsType = sal_False;
+ rInfo.bPreselectedByFilter = sal_True;
+ }
+
+ if (sFilter.getLength())
+ return sal_True;
+ else
+ return sal_False;
+}
+
+/*-----------------------------------------------
+ 14.11.2003 12:11
+-----------------------------------------------*/
+sal_Bool TypeDetection::impl_getPreselectionForDocumentService(const ::rtl::OUString& sPreSelDocumentService,
+ const css::util::URL& aParsedURL ,
+ FlatDetection& rFlatTypes )
+{
+ // get all filters, which match to this doc service
+ OUStringList lFilters;
+ try
+ {
+ // SAFE -> --------------------------
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ // Attention: For executing next lines of code, We must be shure that
+ // all filters already loaded :-(
+ // That can disturb our "load on demand feature". But we have no other chance!
+ m_rCache->load(FilterCache::E_CONTAINS_FILTERS);
+
+ CacheItem lIProps;
+ lIProps[PROPNAME_DOCUMENTSERVICE] <<= sPreSelDocumentService;
+ lFilters = m_rCache->getMatchingItemsByProps(FilterCache::E_FILTER, lIProps);
+
+ aLock.clear();
+ // <- SAFE --------------------------
+ }
+ catch(const css::container::NoSuchElementException&)
+ {
+ lFilters.clear();
+ }
+
+ // step over all filters, and check if its registered type
+ // match the given URL.
+ // But use temp. list of "preselected types" instead of incoming rFlatTypes list!
+ // The reason behind: we must filter the getted results. And copying of stl entries
+ // is an easier job then removing it .-)
+ FlatDetection lPreselections;
+ for (OUStringList::const_iterator pFilter = lFilters.begin();
+ pFilter != lFilters.end() ;
+ ++pFilter )
+ {
+ const ::rtl::OUString sFilter = *pFilter;
+ impl_getPreselectionForFilter(sFilter, aParsedURL, lPreselections);
+ }
+
+ // We have to mark all retrieved preselection items as "preselected by document service".
+ // Further we must ignore all preselected items, which does not match the URL!
+ FlatDetection::iterator pIt;
+ for ( pIt = lPreselections.begin();
+ pIt != lPreselections.end() ;
+ ++pIt )
+ {
+ FlatDetectionInfo& rInfo = *pIt;
+
+ /*
+ #i60158#
+ Preselection by DocumentService ...
+ How many filters (and corresponding types) must be checked ?
+ All or only the list of filters/types, which match to the given URL too ?
+ There is no final decision about this currently. So we make it "configurable" .-)
+ */
+ #ifdef IGNORE_NON_URLMATCHING_TYPES_FOR_PRESELECTION_DOCUMENTSERVICE
+ if (
+ (!rInfo.bMatchByExtension) &&
+ (!rInfo.bMatchByPattern )
+ )
+ continue;
+ #endif
+
+ rInfo.bPreselectedAsType = sal_False;
+ rInfo.bPreselectedByFilter = sal_False;
+ rInfo.bPreselectedByDocumentService = sal_True ;
+ rFlatTypes.push_back(rInfo);
+ }
+
+ return sal_True;
+}
+
+/*-----------------------------------------------
+ 14.11.2003 12:21
+-----------------------------------------------*/
+void TypeDetection::impl_getPreselection(const css::util::URL& aParsedURL ,
+ ::comphelper::MediaDescriptor& rDescriptor,
+ FlatDetection& rFlatTypes )
+{
+ // done to be shure, that only valid results leave this function!
+ rFlatTypes.clear();
+
+ /* #i55122#
+ Sometimes we must detect files without or with real unknown extensions.
+ If it does not work /which can happen of course .-)/, the user tried to preselect
+ the right format. But some special dialogs (e.g. "Insert->Sheet From File")
+ add it's own preselection too.
+ So we have a combination of preselected values ...
+
+ The we should preferr the most important one - set by the user.
+ And the user normaly preselects a filter or type. The preslected
+ document service cames from the dialog.
+
+ Further it doesnt matter if the user preselected a filter or a document service.
+ A filter selection is always more explicit then a document service selection.
+ So it must be pereferred. An order between type and filter selection cant be discussed .-)
+ */
+
+ ::rtl::OUString sSelectedType = rDescriptor.getUnpackedValueOrDefault(::comphelper::MediaDescriptor::PROP_TYPENAME(), ::rtl::OUString());
+ if (sSelectedType.getLength())
+ impl_getPreselectionForType(sSelectedType, aParsedURL, rFlatTypes);
+
+ ::rtl::OUString sSelectedFilter = rDescriptor.getUnpackedValueOrDefault(::comphelper::MediaDescriptor::PROP_FILTERNAME(), ::rtl::OUString());
+ if (sSelectedFilter.getLength())
+ impl_getPreselectionForFilter(sSelectedFilter, aParsedURL, rFlatTypes);
+
+ ::rtl::OUString sSelectedDoc = rDescriptor.getUnpackedValueOrDefault(::comphelper::MediaDescriptor::PROP_DOCUMENTSERVICE(), ::rtl::OUString());
+ if (sSelectedDoc.getLength())
+ impl_getPreselectionForDocumentService(sSelectedDoc, aParsedURL, rFlatTypes);
+}
+
+/*-----------------------------------------------
+ 03.11.2003 09:17
+-----------------------------------------------*/
+::rtl::OUString TypeDetection::impl_detectTypeFlatAndDeep( ::comphelper::MediaDescriptor& rDescriptor ,
+ const FlatDetection& lFlatTypes ,
+ sal_Bool bAllowDeep ,
+ OUStringList& rUsedDetectors,
+ ::rtl::OUString& rLastChance )
+{
+ // reset it everytimes, so the outside code can distinguish between
+ // a set and a not set value.
+ rLastChance = ::rtl::OUString();
+ rUsedDetectors.clear();
+
+ // step over all possible types for this URL.
+ // solutions:
+ // a) no types => no detection
+ // b) deep detection not allowed => return first valid type of list (because its the preferred or the first valid one)
+ // or(!) match by URLPattern => in such case a deep detection will be supressed!
+ // c) type has no detect service => safe the first occured type without a detect service
+ // as "last chance"(!). It will be used outside of this method
+ // if no further type could be detected.
+ // It must be the first one, because it can be a preferred type.
+ // Our types list was sorted by such criteria!
+ // d) detect service return a valid result => return its decision
+ // e) detect service return an invalid result
+ // or any needed information could not be
+ // getted from the cache => ignore it, and continue with search
+
+ for (FlatDetection::const_iterator pFlatIt = lFlatTypes.begin();
+ pFlatIt != lFlatTypes.end() ;
+ ++pFlatIt )
+ {
+ const FlatDetectionInfo& aFlatTypeInfo = *pFlatIt;
+ ::rtl::OUString sFlatType = aFlatTypeInfo.sType;
+
+ if (!impl_validateAndSetTypeOnDescriptor(rDescriptor, sFlatType))
+ continue;
+
+ // b)
+ if (
+ (!bAllowDeep ) ||
+ (aFlatTypeInfo.bMatchByPattern)
+ )
+ {
+ return sFlatType;
+ }
+
+ try
+ {
+ // SAFE -> ----------------------------------
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ CacheItem aType = m_rCache->getItem(FilterCache::E_TYPE, sFlatType);
+ aLock.clear();
+
+ ::rtl::OUString sDetectService;
+ aType[PROPNAME_DETECTSERVICE] >>= sDetectService;
+
+ // c)
+ if (!sDetectService.getLength())
+ {
+ // accept or not accept flat types without deep detection: that's the question :-)
+ // May be there exists some states, where we have to use our LastChance feature instead
+ // of using the flat type directly.
+ // Here the list of task ID's, which wasrelated to these lines of code:
+ // #i47159#, #i43404#, #i46494#
+
+ // a flat detected type without the chance for a deep detection ... but preselected by the user
+ // explicitly (means preselected as type or filter ... not as documentservice!)
+ // should be accepted. So the user can overrule our detection.
+ if (
+ (aFlatTypeInfo.bPreselectedAsType ) ||
+ (aFlatTypeInfo.bPreselectedByFilter)
+ )
+ return sFlatType;
+
+ // flat detected types without any registered deep detection service and not
+ // preselected by the user can be used as LAST CHANCE in case no other type could
+ // be detected. Of course only the first type without deep detector can be used.
+ // Further ones has to be ignored.
+ if (rLastChance.getLength() < 1)
+ rLastChance = sFlatType;
+
+ continue;
+ }
+
+ // dont forget to add every real asked deep detection service here.
+ // Such detectors will be ignored if may be "impl_detectTypeDeepOnly()"
+ // must be called later!
+ rUsedDetectors.push_back(sDetectService);
+ ::rtl::OUString sDeepType = impl_askDetectService(sDetectService, rDescriptor);
+
+ // d)
+ if (sDeepType.getLength())
+ return sDeepType;
+ }
+ catch(const css::container::NoSuchElementException&)
+ {}
+ // e)
+ }
+
+ return ::rtl::OUString();
+ // <- SAFE ----------------------------------
+}
+
+/*-----------------------------------------------
+ 03.11.2003 09:19
+-----------------------------------------------*/
+::rtl::OUString TypeDetection::impl_detectTypeDeepOnly( ::comphelper::MediaDescriptor& rDescriptor ,
+ const OUStringList& lOutsideUsedDetectors)
+{
+ // We must know if a detect service was already used:
+ // i) in a combined flat/deep detection scenario outside or
+ // ii) in this method for a deep detection only.
+ // Reason: Such deep detection services work differently in these two modes!
+ OUStringList lInsideUsedDetectors;
+ OUStringList::const_iterator pIt;
+
+ // a)
+ // The list of "already used detect services" correspond to the list
+ // of preselected or flat detected types. But these detect services was called
+ // to check these types explicitly and return black/white ... yes/no only.
+ // Now they are called to return any possible result. But we should preferr
+ // these already used detect services against all other ones!
+ for ( pIt = lOutsideUsedDetectors.begin();
+ pIt != lOutsideUsedDetectors.end() ;
+ ++pIt )
+ {
+ const ::rtl::OUString& sDetectService = *pIt;
+ ::rtl::OUString sDeepType = impl_askDetectService(sDetectService, rDescriptor);
+ if (sDeepType.getLength())
+ return sDeepType;
+ lInsideUsedDetectors.push_back(sDetectService);
+ }
+
+ // SAFE -> ----------------------------------
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ OUStringList lDetectors = m_rCache->getItemNames(FilterCache::E_DETECTSERVICE);
+ aLock.clear();
+ // <- SAFE ----------------------------------
+
+ // b)
+ // Sometimes it would be nice to ask a special set of detect services before
+ // any other detect service is asked. E.g. by using a preselection of a DocumentService.
+ // That's needed to prevent us from asking the "wrong application module" and
+ // opening the files into the "wrong application".
+ ::rtl::OUString sPreselDocumentService = rDescriptor.getUnpackedValueOrDefault(
+ ::comphelper::MediaDescriptor::PROP_DOCUMENTSERVICE(),
+ ::rtl::OUString());
+ if (sPreselDocumentService.getLength())
+ {
+ for ( pIt = lDetectors.begin();
+ pIt != lDetectors.end() ;
+ ++pIt )
+ {
+ const ::rtl::OUString& sDetectService = *pIt;
+
+ OUStringList::const_iterator pAlreadyUsed = ::std::find(lInsideUsedDetectors.begin(), lInsideUsedDetectors.end(), sDetectService);
+ if (pAlreadyUsed != lInsideUsedDetectors.end())
+ continue;
+
+ // SAFE -> --------------------------------------------------------
+ aLock.reset();
+
+ CacheItem lIProps;
+ lIProps[PROPNAME_DETECTSERVICE] <<= sDetectService;
+ OUStringList lTypes = m_rCache->getMatchingItemsByProps(FilterCache::E_TYPE, lIProps);
+
+ aLock.clear();
+ // <- SAFE --------------------------------------------------------
+
+ sal_Bool bMatchDetectorToDocumentService = sal_False;
+ OUStringList::const_iterator pIt2;
+ for ( pIt2 = lTypes.begin();
+ pIt2 != lTypes.end() ;
+ ++pIt2 )
+ {
+ const ::rtl::OUString& sType = *pIt2;
+
+ try
+ {
+ // SAFE -> ----------------------------------------------------
+ aLock.reset();
+
+ CacheItem aType = m_rCache->getItem(FilterCache::E_TYPE, sType);
+ ::rtl::OUString sFilter;
+ aType[PROPNAME_PREFERREDFILTER] >>= sFilter;
+ CacheItem aFilter = m_rCache->getItem(FilterCache::E_FILTER, sFilter);
+ ::rtl::OUString sCheckDocumentService;
+ aFilter[PROPNAME_DOCUMENTSERVICE] >>= sCheckDocumentService;
+
+ aLock.clear();
+ // <- SAFE
+
+ if (sCheckDocumentService.equals(sPreselDocumentService))
+ {
+ bMatchDetectorToDocumentService = sal_True;
+ break;
+ }
+ }
+ catch(const css::uno::Exception&)
+ { continue; }
+ }
+
+ if (bMatchDetectorToDocumentService)
+ {
+ ::rtl::OUString sDeepType = impl_askDetectService(sDetectService, rDescriptor);
+ if (sDeepType.getLength())
+ return sDeepType;
+ lInsideUsedDetectors.push_back(sDetectService);
+ }
+ }
+ }
+
+ // c)
+ // Last chance. No "used detectors", no "preselected detectors" ... ask any existing detect services
+ // for this till know unknown format.
+ for ( pIt = lDetectors.begin();
+ pIt != lDetectors.end() ;
+ ++pIt )
+ {
+ const ::rtl::OUString& sDetectService = *pIt;
+
+ OUStringList::const_iterator pAlreadyUsed = ::std::find(lInsideUsedDetectors.begin(), lInsideUsedDetectors.end(), sDetectService);
+ if (pAlreadyUsed != lInsideUsedDetectors.end())
+ continue;
+
+ ::rtl::OUString sDeepType = impl_askDetectService(sDetectService, rDescriptor);
+ if (sDeepType.getLength())
+ return sDeepType;
+ }
+
+ return ::rtl::OUString();
+}
+
+/*-----------------------------------------------
+ 07.03.2005 11:13
+-----------------------------------------------*/
+void TypeDetection::impl_seekStreamToZero(comphelper::MediaDescriptor& rDescriptor)
+{
+ // try to seek to 0 ...
+ // But because XSeekable is an optional interface ... try it only .-)
+ css::uno::Reference< css::io::XInputStream > xStream = rDescriptor.getUnpackedValueOrDefault(
+ ::comphelper::MediaDescriptor::PROP_INPUTSTREAM(),
+ css::uno::Reference< css::io::XInputStream >());
+ css::uno::Reference< css::io::XSeekable > xSeek(xStream, css::uno::UNO_QUERY);
+ if (xSeek.is())
+ {
+ try
+ {
+ xSeek->seek(0);
+ }
+ catch(const css::uno::RuntimeException& exRun)
+ { throw exRun; }
+ catch(const css::uno::Exception&)
+ {}
+ }
+}
+
+/*-----------------------------------------------
+ 30.10.2003 15:12
+-----------------------------------------------*/
+::rtl::OUString TypeDetection::impl_askDetectService(const ::rtl::OUString& sDetectService,
+ ::comphelper::MediaDescriptor& rDescriptor )
+{
+ // Open the stream and add it to the media descriptor if this method is called for the first time.
+ // All following requests to this method will detect, that there already exists a stream .-)
+ // Attention: This method throws an exception if the stream could not be opened.
+ // It's important to break any further detection in such case.
+ // Catch it on the highest detection level only !!!
+ impl_openStream(rDescriptor);
+
+ // seek to 0 is an optional feature to be more robust against
+ // "simple implemented detect services" .-)
+ impl_seekStreamToZero(rDescriptor);
+
+ css::uno::Reference< css::document::XExtendedFilterDetection > xDetector;
+ css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR;
+
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ xSMGR = m_xSMGR;
+ aLock.clear();
+ // <- SAFE
+
+ // Attention! If e.g. an office module was not installed sometimes we find a
+ // registered detect service, which is referred inside the configuration ... but not realy
+ // installed. On the other side we use third party components here, which can make trouble anyway.
+ // So we should handle errors during creation of such services more gracefully .-)
+ xDetector = css::uno::Reference< css::document::XExtendedFilterDetection >(
+ xSMGR->createInstance(sDetectService),
+ css::uno::UNO_QUERY);
+
+ if ( ! xDetector.is())
+ return ::rtl::OUString();
+
+ ::rtl::OUString sDeepType;
+ try
+ {
+ // start deep detection
+ // Dont forget to convert stl descriptor to its uno representation.
+
+ /* Attention!
+ You have to use an explicit instance of this uno sequence ...
+ Because its used as an in out parameter. And in case of a temp. used object
+ we will run into memory corruptions!
+ */
+ css::uno::Sequence< css::beans::PropertyValue > lDescriptor;
+ rDescriptor >> lDescriptor;
+ sDeepType = xDetector->detect(lDescriptor);
+ rDescriptor << lDescriptor;
+ }
+ catch(const css::uno::Exception&)
+ {
+ // We should ignore errors here.
+ // Thrown exceptions mostly will end in crash recovery ...
+ // But might be we find another deep detection service which can detect the same
+ // document without a problem .-)
+ sDeepType = ::rtl::OUString();
+ }
+
+ // seek to 0 is an optional feature to be more robust against
+ // "simple implemented detect services" .-)
+ impl_seekStreamToZero(rDescriptor);
+
+ // analyze the results
+ // a) detect service returns "" => return "" too and remove TYPE/FILTER prop from descriptor
+ // b) returned type is unknown => return "" too and remove TYPE/FILTER prop from descriptor
+ // c) returned type is valid => check TYPE/FILTER props inside descriptor and return the type
+
+ // this special helper checks for a valid type
+ // and set right values on the descriptor!
+ sal_Bool bValidType = impl_validateAndSetTypeOnDescriptor(rDescriptor, sDeepType);
+ if (bValidType)
+ return sDeepType;
+
+ return ::rtl::OUString();
+}
+
+/*-----------------------------------------------
+ 17.12.2004 13:47
+-----------------------------------------------*/
+::rtl::OUString TypeDetection::impl_askUserForTypeAndFilterIfAllowed(::comphelper::MediaDescriptor& rDescriptor)
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ css::uno::Reference< css::lang::XMultiServiceFactory > xSMGR = m_xSMGR;
+ aLock.clear();
+ // <- SAFE
+
+ css::uno::Reference< css::task::XInteractionHandler > xInteraction =
+ rDescriptor.getUnpackedValueOrDefault(::comphelper::MediaDescriptor::PROP_INTERACTIONHANDLER(),
+ css::uno::Reference< css::task::XInteractionHandler >());
+
+ if (!xInteraction.is())
+ return ::rtl::OUString();
+
+ ::rtl::OUString sURL =
+ rDescriptor.getUnpackedValueOrDefault(::comphelper::MediaDescriptor::PROP_URL(),
+ ::rtl::OUString());
+
+ css::uno::Reference< css::io::XInputStream > xStream =
+ rDescriptor.getUnpackedValueOrDefault(::comphelper::MediaDescriptor::PROP_INPUTSTREAM(),
+ css::uno::Reference< css::io::XInputStream >());
+
+ // Dont distrub the user for "non existing files - means empty URLs" or
+ // if we was forced to detect a stream.
+ // Reason behind: We must be shure to ask user for "unknown contents" only ...
+ // and not for "missing files". Especialy if detection is done by a stream only
+ // we cant check if the stream points to an "existing content"!
+ if (
+ (!sURL.getLength() ) || // "non existing file" ?
+ (!xStream.is() ) || // non existing file !
+ (sURL.equalsIgnoreAsciiCaseAsciiL("private:stream", 14)) // not a good idea .-)
+ )
+ return ::rtl::OUString();
+
+ try
+ {
+ // create a new request to ask user for it's decision about the usable filter
+ ::framework::RequestFilterSelect aRequest(sURL);
+ xInteraction->handle(aRequest.GetRequest());
+
+ // "Cancel" pressed? => return with error
+ if (aRequest.isAbort())
+ return ::rtl::OUString();
+
+ // "OK" pressed => verify the selected filter, get it's coressponding
+ // type and return it. (BTW: We must update the media descriptor here ...)
+ // The user selected explicitly a filter ... but normaly we are interested on
+ // a type here only. But we must be shure, that the selected filter is used
+ // too and no ambigous filter registration disturb us .-)
+
+ ::rtl::OUString sFilter = aRequest.getFilter();
+ if (!impl_validateAndSetFilterOnDescriptor(rDescriptor, sFilter))
+ return ::rtl::OUString();
+
+ ::rtl::OUString sType;
+ rDescriptor[::comphelper::MediaDescriptor::PROP_TYPENAME()] >>= sType;
+ return sType;
+ }
+ catch(const css::uno::Exception&)
+ {}
+
+ return ::rtl::OUString();
+}
+
+/*-----------------------------------------------
+ 10.03.2004 10:30
+-----------------------------------------------*/
+void TypeDetection::impl_openStream(::comphelper::MediaDescriptor& rDescriptor)
+ throw (css::uno::Exception)
+{
+ sal_Bool bSuccess = sal_False;
+ ::rtl::OUString sURL = rDescriptor.getUnpackedValueOrDefault( ::comphelper::MediaDescriptor::PROP_URL(), ::rtl::OUString() );
+ sal_Bool bRequestedReadOnly = rDescriptor.getUnpackedValueOrDefault( ::comphelper::MediaDescriptor::PROP_READONLY(), sal_False );
+ if ( sURL.getLength() && ::utl::LocalFileHelper::IsLocalFile( INetURLObject( sURL ).GetMainURL( INetURLObject::NO_DECODE ) ) )
+ {
+ // OOo uses own file locking mechanics in case of local file
+ bSuccess = rDescriptor.addInputStreamOwnLock();
+ }
+ else
+ bSuccess = rDescriptor.addInputStream();
+
+ if ( !bSuccess )
+ throw css::uno::Exception(_FILTER_CONFIG_FROM_ASCII_("Could not open stream."), static_cast< css::document::XTypeDetection* >(this));
+
+ if ( !bRequestedReadOnly )
+ {
+ // The MediaDescriptor implementation adds ReadOnly argument if the file can not be opened for writing
+ // this argument should be either removed or an additional argument should be added so that application
+ // can separate the case when the user explicitly requests readonly document.
+ // The current solution is to remove it here.
+ rDescriptor.erase( ::comphelper::MediaDescriptor::PROP_READONLY() );
+ }
+}
+
+/*-----------------------------------------------
+ 04.07.2003 13:47
+-----------------------------------------------*/
+void TypeDetection::impl_removeTypeFilterFromDescriptor(::comphelper::MediaDescriptor& rDescriptor)
+{
+ ::comphelper::MediaDescriptor::iterator pItType = rDescriptor.find(::comphelper::MediaDescriptor::PROP_TYPENAME() );
+ ::comphelper::MediaDescriptor::iterator pItFilter = rDescriptor.find(::comphelper::MediaDescriptor::PROP_FILTERNAME());
+ if (pItType != rDescriptor.end())
+ rDescriptor.erase(pItType);
+ if (pItFilter != rDescriptor.end())
+ rDescriptor.erase(pItFilter);
+}
+
+/*-----------------------------------------------
+ 14.10.2003 11:15
+-----------------------------------------------*/
+sal_Bool TypeDetection::impl_validateAndSetTypeOnDescriptor( ::comphelper::MediaDescriptor& rDescriptor,
+ const ::rtl::OUString& sType )
+{
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+ if (m_rCache->hasItem(FilterCache::E_TYPE, sType))
+ {
+ rDescriptor[::comphelper::MediaDescriptor::PROP_TYPENAME()] <<= sType;
+ return sal_True;
+ }
+ aLock.clear();
+ // <- SAFE
+
+ // remove all related informations from the descriptor
+ impl_removeTypeFilterFromDescriptor(rDescriptor);
+ return sal_False;
+}
+
+/*-----------------------------------------------
+ 04.07.2003 14:01
+-----------------------------------------------*/
+sal_Bool TypeDetection::impl_validateAndSetFilterOnDescriptor( ::comphelper::MediaDescriptor& rDescriptor,
+ const ::rtl::OUString& sFilter )
+{
+ try
+ {
+ // SAFE ->
+ ::osl::ResettableMutexGuard aLock(m_aLock);
+
+ CacheItem aFilter = m_rCache->getItem(FilterCache::E_FILTER, sFilter);
+ ::rtl::OUString sType;
+ aFilter[PROPNAME_TYPE] >>= sType;
+ CacheItem aType = m_rCache->getItem(FilterCache::E_TYPE, sType);
+
+ aLock.clear();
+ // <- SAFE
+
+ // found valid type and filter => set it on the given descriptor
+ rDescriptor[::comphelper::MediaDescriptor::PROP_TYPENAME() ] <<= sType ;
+ rDescriptor[::comphelper::MediaDescriptor::PROP_FILTERNAME()] <<= sFilter;
+ return sal_True;
+ }
+ catch(const css::container::NoSuchElementException&){}
+
+ // remove all related informations from the descriptor
+ impl_removeTypeFilterFromDescriptor(rDescriptor);
+ return sal_False;
+}
+
+/*-----------------------------------------------
+ 03.07.2003 10:36
+-----------------------------------------------*/
+::rtl::OUString TypeDetection::impl_getImplementationName()
+{
+ return ::rtl::OUString::createFromAscii("com.sun.star.comp.filter.config.TypeDetection");
+}
+
+/*-----------------------------------------------
+ 03.07.2003 11:27
+-----------------------------------------------*/
+css::uno::Sequence< ::rtl::OUString > TypeDetection::impl_getSupportedServiceNames()
+{
+ css::uno::Sequence< ::rtl::OUString > lServiceNames(1);
+ lServiceNames[0] = ::rtl::OUString::createFromAscii("com.sun.star.document.TypeDetection");
+ return lServiceNames;
+}
+
+/*-----------------------------------------------
+ 09.07.2003 08:02
+-----------------------------------------------*/
+css::uno::Reference< css::uno::XInterface > SAL_CALL TypeDetection::impl_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR)
+{
+ TypeDetection* pNew = new TypeDetection(xSMGR);
+ return css::uno::Reference< css::uno::XInterface >(static_cast< css::document::XTypeDetection* >(pNew), css::uno::UNO_QUERY);
+}
+
+ } // namespace config
+} // namespace filter
diff --git a/filter/source/config/cache/typedetection.hxx b/filter/source/config/cache/typedetection.hxx
new file mode 100644
index 000000000000..4dbf6f07d33e
--- /dev/null
+++ b/filter/source/config/cache/typedetection.hxx
@@ -0,0 +1,459 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+#ifndef __FILTER_CONFIG_TYPEDETECTION_HXX_
+#define __FILTER_CONFIG_TYPEDETECTION_HXX_
+
+//_______________________________________________
+// includes
+
+#include "basecontainer.hxx"
+#include <com/sun/star/document/XTypeDetection.hpp>
+#include <com/sun/star/lang/XSingleServiceFactory.hpp>
+#include <comphelper/mediadescriptor.hxx>
+#include <cppuhelper/implbase1.hxx>
+
+//_______________________________________________
+// namespace
+
+namespace filter{
+ namespace config{
+
+namespace css = ::com::sun::star;
+
+//_______________________________________________
+// definitions
+
+//_______________________________________________
+
+/** @short implements the service <type scope="com.sun.star.document">TypeDetection</type>.
+ */
+class TypeDetection : public ::cppu::ImplInheritanceHelper1< BaseContainer ,
+ css::document::XTypeDetection >
+{
+ //-------------------------------------------
+ // native interface
+
+ public:
+
+ //---------------------------------------
+ // ctor/dtor
+
+ /** @short standard ctor to connect this interface wrapper to
+ the global filter cache instance ...
+
+ @param xSMGR
+ reference to the uno service manager, which created this service instance.
+ */
+ TypeDetection(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR);
+
+ //---------------------------------------
+
+ /** @short standard dtor.
+ */
+ virtual ~TypeDetection();
+
+ //-------------------------------------------
+ // private helper
+
+ private:
+
+ //---------------------------------------
+ /** TODO document me */
+ sal_Bool impl_getPreselectionForType(const ::rtl::OUString& sPreSelType,
+ const css::util::URL& aParsedURL ,
+ FlatDetection& rFlatTypes );
+
+ //---------------------------------------
+ /** TODO document me */
+ sal_Bool impl_getPreselectionForFilter(const ::rtl::OUString& sPreSelFilter,
+ const css::util::URL& aParsedURL ,
+ FlatDetection& rFlatTypes );
+
+ //---------------------------------------
+ /** TODO document me */
+ sal_Bool impl_getPreselectionForDocumentService(const ::rtl::OUString& sPreSelDocumentService,
+ const css::util::URL& aParsedURL ,
+ FlatDetection& rFlatTypes );
+
+ //---------------------------------------
+
+ /** @short check if a filter or a type was preselected inside the given
+ MediaDescriptor and validate this information.
+
+ @descr Only in case the preselected filter exists and its type registration
+ seems to be usefully, it would be used realy as valid type detection
+ result. This method doesnt make any deep detection here. It checks only
+ if the preselection match to the URL by an URLPattern.
+ This information has to be added to the given rFlatTypes list too.
+ The outside code can use it to supress a deep detection then in general.
+ Because pattern are defined as non detectable at all!
+
+ @param pDescriptor
+ provides any easy-to-use stl interface to the MediaDescriptor.
+ Note : Its content will be adapted to returned result of this method.
+ Means: The type/filter entries of it will be actualized or removed.
+
+ @param rFlatTypes
+ the preselected type (or the registered type of a preselected filter)
+ will be added here as first(!) element. Further we have to provide the
+ information, if this type match to the given URL by its URLPattern
+ registration.
+ */
+ void impl_getPreselection(const css::util::URL& aParsedURL ,
+ ::comphelper::MediaDescriptor& rDescriptor,
+ FlatDetection& rFlatTypes );
+
+ //---------------------------------------
+
+ /** @short make a combined flat/deep type detection
+
+ @descr It steps over all flat detected types (given by the parameter lFlatTypes),
+ try it and search for most suitable one.
+ The specified MediaDescriptor will be patched, so it contain
+ the right values everytime. Using of any deep detection service
+ can be enabled/disabled. And last but not least: If the results
+ wont be realy clear (because a flat detected type has no deep
+ detection service), a "sugested" type name will be returned as "rLastChance".
+ It can be used after e.g. all well known deep detection services
+ was used without getting any result. Then this "last-chance-type"
+ should be returned. Of course using of it can fail too ... but its a try :-)
+
+ As an optimization - this method collects the names of all used deep
+ detection services. This information can be usefull inside the may be
+ afterwards called method "impl_detectTypeDeepOnly()"!
+
+ @param rDescriptor
+ provides any easy-to-use stl interface to the MediaDescriptor.
+ Note : Its content will be adapted to returned result of this method.
+ Means: The type/filter entries of it will be actualized or removed from it.
+
+ @param lFlatTypes
+ a list of all flat detected types, which should be checked here.
+ No other types are allowed here!
+
+ @param rLastChance
+ the internal name of a "suggested type" ... (see before)
+ Note: it will be reseted to an empty string everytimes. So
+ a set value of "rLastChance" can be detected outside very easy.
+
+ @param rUsedDetectors
+ used as [out] parameter. It contains a list of names of all deep
+ detection services, which was used inside this method.
+ Such detectors can be ignored later if "impl_detectTypeDeepOnly()"
+ is called.
+
+ @param bAllowDeep
+ enable/disable using of a might existing deep detection service.
+
+ @return The internal name of a detected type.
+ An empty value if detection failed. .... but see rLastChance
+ for additional returns!
+ */
+ ::rtl::OUString impl_detectTypeFlatAndDeep( ::comphelper::MediaDescriptor& rDescriptor ,
+ const FlatDetection& lFlatTypes ,
+ sal_Bool bAllowDeep ,
+ OUStringList& rUsedDetectors,
+ ::rtl::OUString& rLastChance );
+
+ //---------------------------------------
+
+ /** @short make a deep type detection only
+
+ @descr It steps over all well known deep detection services
+ and check her results. The first positive result will be
+ used for return. Its more a "try and error" algorithm then
+ a real type detection and will be used if a flat detection
+ cant work realy ... e.g. if the extension of an URL is
+ missing or wrong.
+
+ @param rDescriptor
+ provides any easy-to-use stl interface to the MediaDescriptor.
+ Note : Its content will be adapted to returned result of this method.
+ Means: The type/filter entries of it will be actualized or removed from it.
+
+ @param rUsedDetectors
+ It contains a list of names of all deep detection services,
+ which was already used inside the method "impl_detectTypeFlatAndDeep()"!
+ Such detectors must be ignored here!
+
+ @return The internal name of a detected type.
+ An empty value if detection failed.
+ */
+ ::rtl::OUString impl_detectTypeDeepOnly( ::comphelper::MediaDescriptor& rDescriptor ,
+ const OUStringList& rUsedDetectors);
+
+ //---------------------------------------
+
+ /** @short seek a might existing stream to position 0.
+
+ @descr This is an optinal action to be more robust
+ in case any detect service doesnt make this seek ...
+ Normaly it's part of any called detect service or filter ...
+ but sometimes it's not done there.
+
+ @param rDescriptor
+ a stl representation of the MediaDescriptor as in/out parameter.
+ */
+ void impl_seekStreamToZero(comphelper::MediaDescriptor& rDescriptor);
+
+ //---------------------------------------
+
+ /** @short make deep type detection for a specified
+ detect service (threadsafe!).
+
+ @descr It creates the right uno service, prepare the
+ needed MediaDescriptor, call ths right interfaces,
+ and return the results.
+
+ @attention The results (means type and corresponding filter)
+ are already part of the in/out parameter pDescriptor.
+ (in case they was valid).
+
+ @param sDetectService
+ uno service name of the detect service.
+
+ @param rDescriptor
+ a stl representation of the MediaDescriptor as in/out parameter.
+ */
+ ::rtl::OUString impl_askDetectService(const ::rtl::OUString& sDetectService,
+ ::comphelper::MediaDescriptor& rDescriptor );
+
+ //---------------------------------------
+
+ /** @short try to find an interaction handler and
+ ask him to select a possible filter for
+ this unknown format.
+
+ @descr If the user select a filter, it will be used as return value
+ without further checking against the given file content!
+
+ @param rDescriptor
+ a stl representation of the MediaDescriptor as in/out parameter.
+
+ @return [string]
+ a valid type name or an empty string if user canceled interaction.
+ */
+ ::rtl::OUString impl_askUserForTypeAndFilterIfAllowed(::comphelper::MediaDescriptor& rDescriptor);
+
+ //---------------------------------------
+
+ /** @short check if an input stream is already part of the
+ given MediaDesciptor and creates a new one if neccessary.
+
+ @attention This method does further something special!
+ <ul>
+ <li>
+ If the given URL seem to be a streamable content, but creation of the stream
+ failed (might by an IOException), this method throws an exception.
+ (May be an existing interaction handler must be called here too ...)
+ The whole detection must be interrupted then and the interface method queryTypeByDescriptor()
+ must return an empty type name value.
+
+ That prevent us against multiple handling of the same error more then ones
+ (e.g. if we ask all detect services as fallback ...).
+ </li>
+ <li>
+ In case the stream already exists inside the descriptor this method does nothing.
+ </li>
+ <li>
+ In case the stream does not exists but can be created successfully, the stream will
+ be added to the descriptor.
+ </li>
+ </ul>
+
+ @param rDescriptor
+ provides any easy-to-use stl interface to the MediaDescriptor.
+ Note : Its content will be adapted to returned result of this method.
+ Means: The stream will be added to it.
+
+ @throw Any suitable exception if stream should be opened but operation was not sucessfull.
+ Note: If an interactionHandler is part of the given descriptor too, it was already used.
+ Means: let the exception pass trough the top most interface method!
+ */
+ void impl_openStream(::comphelper::MediaDescriptor& rDescriptor)
+ throw (css::uno::Exception);
+
+ //---------------------------------------
+
+ /** @short validate the specified type and its relation ships
+ and set all needed informations related to this type
+ in the specified descriptor.
+
+ @descr Related informations are: - corresponding filter
+ - media type
+ - ...
+
+ @param rDescriptor
+ provides access to the outside MediaDescriptor.
+
+ @param sType
+ the name of the type, which should be set on the descriptor.
+ Can be empty to remove any related value from the descriptor!
+
+ @return TRUE the specified type and its registrations was valid(!) and
+ could be set on the descriptor.
+ */
+ sal_Bool impl_validateAndSetTypeOnDescriptor( ::comphelper::MediaDescriptor& rDescriptor,
+ const ::rtl::OUString& sType );
+
+ //---------------------------------------
+
+ /** @short validate the specified filter and its relation ships
+ and set all needed informations related to this filter
+ in the specified descriptor.
+
+ @descr Related informations are: - corresponding type
+ - ...
+
+ @param rDescriptor
+ provides access to the outside MediaDescriptor.
+
+ @param sFilter
+ the name of the filter, which should be set on the descriptor.
+ Can be empty to remove any related value from the descriptor!
+
+ @return TRUE the specified type and its registrations was valid(!) and
+ could be set on the descriptor.
+ */
+ sal_Bool impl_validateAndSetFilterOnDescriptor( ::comphelper::MediaDescriptor& rDescriptor,
+ const ::rtl::OUString& sFilter );
+
+ //---------------------------------------
+
+ /** @short remove anythimng related to a TYPE/FILTER entry from the
+ specified MediaDescriptor.
+
+ @descr This method works together with impl_validateAndSetTypeOnDescriptor()/
+ impl_validateAndSetFilterOnDescriptor(). All informations, which can be
+ set by these two operations must be "removeable" by this method.
+
+ @param rDescriptor
+ reference to the MediaDescriptor (represented by an easy-to-use
+ stl interface!), which should be patched.
+ */
+ void impl_removeTypeFilterFromDescriptor(::comphelper::MediaDescriptor& rDescriptor);
+
+ //---------------------------------------
+
+ /** @short search the best suitable filter for the given type
+ and add it into the media descriptor.
+
+ @descr Normaly this is a type detection only ...
+ but for some special features we must overwrite our detection
+ because a file must be loaded into a special (means preselected)
+ application.
+
+ E.g. CSV/TXT format are sometimes ugly to handle .-)
+
+ Note: If the descriptor already include a filter
+ (may be selected by a FilterSelect interaction or preselected
+ by the user itself) ... we dont change that here !
+
+ @param rDescriptor
+ reference to the MediaDescriptor (represented by an easy-to-use
+ stl interface!), which should be patched.
+
+ @param sType
+ the internal type name, where we search a filter for.
+ Used as IN/OUT parameter so we can overrule the detection result for
+ types too !
+
+ @note #i60158#
+ sometimes our text ascii and our csv filter cant work together.
+ Then we overwrite our detection hardly.
+ sType param is used as out parameter then too ... and
+ rDescriptor will be changed by selecting another filter.
+ (see code)
+ */
+ void impl_checkResultsAndAddBestFilter(::comphelper::MediaDescriptor& rDescriptor,
+ ::rtl::OUString& sType );
+
+ //-------------------------------------------
+ // uno interface
+
+ public:
+
+ //---------------------------------------
+ // XTypeDetection
+
+ virtual ::rtl::OUString SAL_CALL queryTypeByURL(const ::rtl::OUString& sURL)
+ throw (css::uno::RuntimeException);
+
+ virtual ::rtl::OUString SAL_CALL queryTypeByDescriptor(css::uno::Sequence< css::beans::PropertyValue >& lDescriptor,
+ sal_Bool bAllowDeep )
+ throw (css::uno::RuntimeException);
+
+ //-------------------------------------------
+ // static uno helper!
+
+ public:
+
+ //---------------------------------------
+
+ /** @short return the uno implementation name of this class.
+
+ @descr Because this information is used at several places
+ (and mostly an object instance of this class is not possible)
+ its implemented as a static function!
+
+ @return The fix uno implementation name of this class.
+ */
+ static ::rtl::OUString impl_getImplementationName();
+
+ //---------------------------------------
+
+ /** @short return the list of supported uno services of this class.
+
+ @descr Because this information is used at several places
+ (and mostly an object instance of this class is not possible)
+ its implemented as a static function!
+
+ @return The fix list of uno services supported by this class.
+ */
+ static css::uno::Sequence< ::rtl::OUString > impl_getSupportedServiceNames();
+
+ //---------------------------------------
+
+ /** @short return a new intsnace of this class.
+
+ @descr This method is used by the uno service manager, to create
+ a new instance of this service if needed.
+
+ @param xSMGR
+ reference to the uno service manager, which require
+ this new instance. It should be passed to the new object
+ so it can be used internaly to create own needed uno resources.
+
+ @return The new instance of this service as an uno reference.
+ */
+ static css::uno::Reference< css::uno::XInterface > impl_createInstance(const css::uno::Reference< css::lang::XMultiServiceFactory >& xSMGR);
+};
+
+ } // namespace config
+} // namespace filter
+
+#endif // __FILTER_CONFIG_TYPEDETECTION_HXX_
diff --git a/filter/source/config/cache/versions.hxx b/filter/source/config/cache/versions.hxx
new file mode 100644
index 000000000000..fbd92604170f
--- /dev/null
+++ b/filter/source/config/cache/versions.hxx
@@ -0,0 +1,36 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+#ifndef _FILTER_CONFIG_VERSIONS_HXX_
+#define _FILTER_CONFIG_VERSIONS_HXX_
+
+//_______________________________________________
+
+//#define _FILTER_CONFIG_Q_ // final Q code base
+#define _FILTER_CONFIG_MIGRATION_Q_ // usefull for migration time, to support some old functionality temp. :-)
+
+#endif // _FILTER_CONFIG_VERSIONS_HXX_
diff --git a/filter/source/config/fragments/contenthandlers/com_sun_star_comp_framework_SoundHandler.xcu b/filter/source/config/fragments/contenthandlers/com_sun_star_comp_framework_SoundHandler.xcu
new file mode 100644
index 000000000000..37971f848bef
--- /dev/null
+++ b/filter/source/config/fragments/contenthandlers/com_sun_star_comp_framework_SoundHandler.xcu
@@ -0,0 +1,3 @@
+ <node oor:name="com.sun.star.comp.framework.SoundHandler" oor:op="replace" >
+ <prop oor:name="Types"><value>wav_Wave_Audio_File</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/contenthandlers/com_sun_star_comp_framework_oxt_handler.xcu b/filter/source/config/fragments/contenthandlers/com_sun_star_comp_framework_oxt_handler.xcu
new file mode 100644
index 000000000000..e2b49b8d12b0
--- /dev/null
+++ b/filter/source/config/fragments/contenthandlers/com_sun_star_comp_framework_oxt_handler.xcu
@@ -0,0 +1,3 @@
+ <node oor:name="com.sun.star.comp.framework.OXTFileHandler" oor:op="replace" >
+ <prop oor:name="Types"><value>oxt_OpenOffice_Extension</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/delzip b/filter/source/config/fragments/delzip
new file mode 100644
index 000000000000..e69de29bb2d1
--- /dev/null
+++ b/filter/source/config/fragments/delzip
diff --git a/filter/source/config/fragments/fcfg_base.mk b/filter/source/config/fragments/fcfg_base.mk
new file mode 100644
index 000000000000..d5c0d4cc7f73
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_base.mk
@@ -0,0 +1,51 @@
+all_fragments+=base
+
+# -----------------------------------------------
+# count = 6
+T4_BASE = \
+ writer_web_HTML_help \
+ oxt_OpenOffice_Extension \
+ wav_Wave_Audio_File \
+ component_Bibliography \
+ component_DB
+
+# -----------------------------------------------
+# count = 2
+F4_BASE = \
+ writer_web_HTML_help
+
+# -----------------------------------------------
+# count = 1
+F4_UI_BASE =
+
+# -----------------------------------------------
+# count = 3
+L4_BASE = \
+ com_sun_star_frame_Bibliography \
+ com_sun_star_sdb_ContentLoader
+
+# -----------------------------------------------
+# count = 2
+C4_BASE = \
+ com_sun_star_comp_framework_SoundHandler \
+ com_sun_star_comp_framework_oxt_handler
+
+# -----------------------------------------------
+TYPES_4fcfg_base = $(foreach,i,$(T4_BASE) types$/$i.xcu )
+FILTERS_4fcfg_base = $(foreach,i,$(F4_BASE) filters$/$i.xcu )
+UI_FILTERS_4fcfg_base = $(foreach,i,$(F4_UI_BASE) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_base = $(foreach,i,$(L4_BASE) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_base = $(foreach,i,$(C4_BASE) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_base = \
+ $(TYPES_4fcfg_base) \
+ $(FILTERS_4fcfg_base) \
+ $(UI_FILTERS_4fcfg_base) \
+ $(FRAMELOADERS_4fcfg_base) \
+ $(CONTENTHANDLERS_4fcfg_base)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_base)
+
+ALL_PACKAGES+=base
diff --git a/filter/source/config/fragments/fcfg_calc.mk b/filter/source/config/fragments/fcfg_calc.mk
new file mode 100644
index 000000000000..ee949ba60184
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_calc.mk
@@ -0,0 +1,108 @@
+all_fragments+=calc
+
+# -----------------------------------------------
+# count = 27
+T4_CALC = \
+ calc_DIF \
+ writer_web_HTML \
+ calc_Lotus \
+ calc_QPro \
+ calc_MS_Excel_40 \
+ calc_MS_Excel_40_VorlageTemplate \
+ calc_MS_Excel_5095 \
+ calc_MS_Excel_5095_VorlageTemplate \
+ calc_MS_Excel_95 \
+ calc_MS_Excel_95_VorlageTemplate \
+ calc_MS_Excel_97 \
+ calc_MS_Excel_97_VorlageTemplate \
+ writer_Rich_Text_Format \
+ calc_SYLK \
+ calc_StarOffice_XML_Calc \
+ calc_Text_txt_csv_StarCalc \
+ calc_StarOffice_XML_Calc_Template \
+ pdf_Portable_Document_Format \
+ calc_dBase\
+ calc8\
+ calc8_template \
+ calc_MS_Excel_2003_XML \
+ MS_Excel_2007_XML \
+ MS_Excel_2007_XML_Template \
+ MS_Excel_2007_Binary
+
+# -----------------------------------------------
+# count = 28
+F4_CALC = \
+ DIF \
+ HTML__StarCalc_ \
+ Lotus \
+ QPro \
+ MS_Excel_4_0 \
+ MS_Excel_4_0_Vorlage_Template \
+ MS_Excel_5_0_95 \
+ MS_Excel_5_0_95_Vorlage_Template \
+ MS_Excel_95 \
+ MS_Excel_95_Vorlage_Template \
+ MS_Excel_97 \
+ MS_Excel_97_Vorlage_Template \
+ Rich_Text_Format__StarCalc_ \
+ SYLK \
+ StarOffice_XML__Calc_ \
+ Text___txt___csv__StarCalc_ \
+ calc_HTML_WebQuery \
+ calc_StarOffice_XML_Calc_Template \
+ calc_pdf_Export \
+ dBase \
+ calc8 \
+ calc8_template \
+ MS_Excel_2003_XML \
+ calc_MS_Excel_2007_XML \
+ calc_MS_Excel_2007_XML_Template \
+ calc_MS_Excel_2007_Binary
+
+# -----------------------------------------------
+# count = 12
+F4_UI_CALC = \
+ HTML__StarCalc__ui \
+ MS_Excel_4_0_Vorlage_Template_ui \
+ MS_Excel_5_0_95_Vorlage_Template_ui \
+ MS_Excel_95_Vorlage_Template_ui \
+ MS_Excel_97_Vorlage_Template_ui \
+ StarOffice_XML__Calc__ui \
+ Text___txt___csv__StarCalc__ui \
+ calc_HTML_WebQuery_ui \
+ calc_StarOffice_XML_Calc_Template_ui \
+ calc8_ui \
+ calc8_template_ui \
+ MS_Excel_2003_XML_ui \
+ calc_MS_Excel_2007_XML_ui \
+ calc_MS_Excel_2007_XML_Template_ui \
+ calc_MS_Excel_2007_Binary_ui
+
+# -----------------------------------------------
+# count = 0
+L4_CALC =
+
+# -----------------------------------------------
+# count = 0
+C4_CALC =
+
+# -----------------------------------------------
+TYPES_4fcfg_calc = $(foreach,i,$(T4_CALC) types$/$i.xcu )
+FILTERS_4fcfg_calc = $(foreach,i,$(F4_CALC) filters$/$i.xcu )
+UI_FILTERS_4fcfg_calc = $(foreach,i,$(F4_UI_CALC) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_calc = $(foreach,i,$(L4_CALC) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_calc = $(foreach,i,$(C4_CALC) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_calc = \
+ $(TYPES_4fcfg_calc) \
+ $(FILTERS_4fcfg_calc) \
+ $(UI_FILTERS_4fcfg_calc) \
+ $(FRAMELOADERS_4fcfg_calc) \
+ $(CONTENTHANDLERS_4fcfg_calc)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_calc)
+
+ALL_PACKAGES+=calc
+
diff --git a/filter/source/config/fragments/fcfg_calc_bf.mk b/filter/source/config/fragments/fcfg_calc_bf.mk
new file mode 100644
index 000000000000..454d303f86c8
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_calc_bf.mk
@@ -0,0 +1,59 @@
+all_fragments+=calc_bf
+
+# -----------------------------------------------
+# count = 7
+T4_CALC_BF = \
+ calc_StarCalc_10 \
+ calc_StarCalc_30 \
+ calc_StarCalc_30_VorlageTemplate \
+ calc_StarCalc_40 \
+ calc_StarCalc_40_VorlageTemplate \
+ calc_StarCalc_50 \
+ calc_StarCalc_50_VorlageTemplate
+
+# -----------------------------------------------
+# count = 7
+F4_CALC_BF = \
+ StarCalc_1_0 \
+ StarCalc_3_0 \
+ StarCalc_3_0_Vorlage_Template \
+ StarCalc_4_0 \
+ StarCalc_4_0_Vorlage_Template \
+ StarCalc_5_0 \
+ StarCalc_5_0_Vorlage_Template
+
+# -----------------------------------------------
+# count = 3
+F4_UI_CALC_BF = \
+ StarCalc_3_0_Vorlage_Template_ui \
+ StarCalc_4_0_Vorlage_Template_ui \
+ StarCalc_5_0_Vorlage_Template_ui
+
+# -----------------------------------------------
+# count = 0
+L4_CALC_BF =
+
+# -----------------------------------------------
+# count = 0
+C4_CALC_BF =
+
+# -----------------------------------------------
+TYPES_4fcfg_calc_bf = $(foreach,i,$(T4_CALC_BF) types$/$i.xcu )
+FILTERS_4fcfg_calc_bf = $(foreach,i,$(F4_CALC_BF) filters$/$i.xcu )
+UI_FILTERS_4fcfg_calc_bf = $(foreach,i,$(F4_UI_CALC_BF) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_calc_bf = $(foreach,i,$(L4_CALC_BF) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_calc_bf = $(foreach,i,$(C4_CALC_BF) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_calc_bf = \
+ $(TYPES_4fcfg_calc) \
+ $(FILTERS_4fcfg_calc) \
+ $(UI_FILTERS_4fcfg_calc) \
+ $(FRAMELOADERS_4fcfg_calc) \
+ $(CONTENTHANDLERS_4fcfg_calc)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_calc_bf)
+
+ALL_PACKAGES+=calc_bf
+
diff --git a/filter/source/config/fragments/fcfg_chart.mk b/filter/source/config/fragments/fcfg_chart.mk
new file mode 100644
index 000000000000..c34c8c0bdcdd
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_chart.mk
@@ -0,0 +1,48 @@
+all_fragments+=chart
+
+# -----------------------------------------------
+# count = 3
+T4_CHART = \
+ chart_StarOffice_XML_Chart \
+ chart8
+
+# -----------------------------------------------
+# count = 2
+F4_CHART = \
+ StarOffice_XML__Chart_\
+ chart8
+
+# -----------------------------------------------
+# count = 2
+F4_UI_CHART = \
+ StarOffice_XML__Chart__ui \
+ chart8_ui
+
+# -----------------------------------------------
+# count = 0
+L4_CHART = \
+ com_sun_star_comp_chart2_ChartFrameLoader
+
+# -----------------------------------------------
+# count = 0
+C4_CHART =
+
+# -----------------------------------------------
+TYPES_4fcfg_chart = $(foreach,i,$(T4_CHART) types$/$i.xcu )
+FILTERS_4fcfg_chart = $(foreach,i,$(F4_CHART) filters$/$i.xcu )
+UI_FILTERS_4fcfg_chart = $(foreach,i,$(F4_UI_CHART) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_chart = $(foreach,i,$(L4_CHART) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_chart = $(foreach,i,$(C4_CHART) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_chart = \
+ $(TYPES_4fcfg_chart) \
+ $(FILTERS_4fcfg_chart) \
+ $(UI_FILTERS_4fcfg_chart) \
+ $(FRAMELOADERS_4fcfg_chart) \
+ $(CONTENTHANDLERS_4fcfg_chart)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_chart)
+
+ALL_PACKAGES+=chart
diff --git a/filter/source/config/fragments/fcfg_chart_bf.mk b/filter/source/config/fragments/fcfg_chart_bf.mk
new file mode 100644
index 000000000000..4286978f2224
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_chart_bf.mk
@@ -0,0 +1,47 @@
+all_fragments+=chart_bf
+
+# -----------------------------------------------
+# count = 3
+T4_CHART_BF = \
+ chart_StarChart_30 \
+ chart_StarChart_40 \
+ chart_StarChart_50
+
+# -----------------------------------------------
+# count = 3
+F4_CHART_BF = \
+ StarChart_3_0 \
+ StarChart_4_0 \
+ StarChart_5_0
+
+# -----------------------------------------------
+# count = 0
+F4_UI_CHART_BF =
+
+# -----------------------------------------------
+# count = 0
+L4_CHART_BF =
+
+# -----------------------------------------------
+# count = 0
+C4_CHART_BF =
+
+# -----------------------------------------------
+TYPES_4fcfg_chart_bf = $(foreach,i,$(T4_CHART_BF) types$/$i.xcu )
+FILTERS_4fcfg_chart_bf = $(foreach,i,$(F4_CHART_BF) filters$/$i.xcu )
+UI_FILTERS_4fcfg_chart_bf = $(foreach,i,$(F4_UI_CHART_BF) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_chart_bf = $(foreach,i,$(L4_CHART_BF) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_chart_bf = $(foreach,i,$(C4_CHART_BF) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_chart_bf = \
+ $(TYPES_4fcfg_chart_bf) \
+ $(FILTERS_4fcfg_chart_bf) \
+ $(UI_FILTERS_4fcfg_chart_bf) \
+ $(FRAMELOADERS_4fcfg_chart_bf) \
+ $(CONTENTHANDLERS_4fcfg_chart_bf)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_chart_bf)
+
+ALL_PACKAGES+=chart_bf
diff --git a/filter/source/config/fragments/fcfg_database.mk b/filter/source/config/fragments/fcfg_database.mk
new file mode 100644
index 000000000000..906a17e643b4
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_database.mk
@@ -0,0 +1,45 @@
+all_fragments+=database
+
+# -----------------------------------------------
+# count = 1
+T4_DATABASE = \
+ StarBase
+
+# -----------------------------------------------
+# count = 1
+F4_DATABASE = \
+ StarOffice_XML__Base_
+
+# -----------------------------------------------
+# count = 1
+F4_UI_DATABASE = \
+ StarOffice_XML__Base__ui
+
+# -----------------------------------------------
+# count = 1
+L4_DATABASE = \
+ org_openoffice_comp_dbflt_DBContentLoader2
+
+# -----------------------------------------------
+# count = 1
+C4_DATABASE =
+
+# -----------------------------------------------
+TYPES_4fcfg_database = $(foreach,i,$(T4_DATABASE) types$/$i.xcu )
+FILTERS_4fcfg_database = $(foreach,i,$(F4_DATABASE) filters$/$i.xcu )
+UI_FILTERS_4fcfg_database = $(foreach,i,$(F4_UI_DATABASE) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_database = $(foreach,i,$(L4_DATABASE) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_database = $(foreach,i,$(C4_DATABASE) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_database = \
+ $(TYPES_4fcfg_database) \
+ $(FILTERS_4fcfg_database) \
+ $(UI_FILTERS_4fcfg_database) \
+ $(FRAMELOADERS_4fcfg_database) \
+ $(CONTENTHANDLERS_4fcfg_database)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_database)
+
+ALL_PACKAGES+=database
diff --git a/filter/source/config/fragments/fcfg_draw.mk b/filter/source/config/fragments/fcfg_draw.mk
new file mode 100644
index 000000000000..d6e6d9caad54
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_draw.mk
@@ -0,0 +1,56 @@
+all_fragments+=draw
+
+# -----------------------------------------------
+# count = 9
+T4_DRAW = \
+ draw_StarOffice_XML_Draw \
+ draw_StarOffice_XML_Draw_Template \
+ pdf_Portable_Document_Format\
+ draw8 \
+ draw8_template
+
+# -----------------------------------------------
+# count = 9
+F4_DRAW = \
+ StarOffice_XML__Draw_ \
+ draw_StarOffice_XML_Draw_Template \
+ draw_pdf_Export \
+ draw8 \
+ draw8_template
+
+# -----------------------------------------------
+# count = 4
+F4_UI_DRAW = \
+ StarOffice_XML__Draw__ui \
+ draw_StarOffice_XML_Draw_Template_ui \
+ draw8_ui \
+ draw8_template_ui
+
+# -----------------------------------------------
+# count = 0
+L4_DRAW =
+
+# -----------------------------------------------
+# count = 0
+C4_DRAW =
+
+# -----------------------------------------------
+TYPES_4fcfg_draw = $(foreach,i,$(T4_DRAW) types$/$i.xcu )
+FILTERS_4fcfg_draw = $(foreach,i,$(F4_DRAW) filters$/$i.xcu )
+UI_FILTERS_4fcfg_draw = $(foreach,i,$(F4_UI_DRAW) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_draw = $(foreach,i,$(L4_DRAW) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_draw = $(foreach,i,$(C4_DRAW) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_draw = \
+ $(TYPES_4fcfg_draw) \
+ $(FILTERS_4fcfg_draw) \
+ $(UI_FILTERS_4fcfg_draw) \
+ $(FRAMELOADERS_4fcfg_draw) \
+ $(CONTENTHANDLERS_4fcfg_draw)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_draw)
+
+ALL_PACKAGES+=draw
+
diff --git a/filter/source/config/fragments/fcfg_draw_bf.mk b/filter/source/config/fragments/fcfg_draw_bf.mk
new file mode 100644
index 000000000000..5fc2f7da0303
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_draw_bf.mk
@@ -0,0 +1,51 @@
+all_fragments+=draw_bf
+
+# -----------------------------------------------
+# count = 4
+T4_DRAW_BF = \
+ draw_StarDraw_30 \
+ draw_StarDraw_30_Vorlage \
+ draw_StarDraw_50 \
+ draw_StarDraw_50_Vorlage
+
+# -----------------------------------------------
+# count = 4
+F4_DRAW_BF = \
+ StarDraw_3_0 \
+ StarDraw_3_0_Vorlage \
+ StarDraw_5_0 \
+ StarDraw_5_0_Vorlage
+
+# -----------------------------------------------
+# count = 2
+F4_UI_DRAW_BF = \
+ StarDraw_3_0_Vorlage_ui \
+ StarDraw_5_0_Vorlage_ui
+
+# -----------------------------------------------
+# count = 0
+L4_DRAW_BF =
+
+# -----------------------------------------------
+# count = 0
+C4_DRAW_BF =
+
+# -----------------------------------------------
+TYPES_4fcfg_draw_bf = $(foreach,i,$(T4_DRAW_BF) types$/$i.xcu )
+FILTERS_4fcfg_draw_bf = $(foreach,i,$(F4_DRAW_BF) filters$/$i.xcu )
+UI_FILTERS_4fcfg_draw_bf = $(foreach,i,$(F4_UI_DRAW_BF) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_draw_bf = $(foreach,i,$(L4_DRAW_BF) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_draw_bf = $(foreach,i,$(C4_DRAW_BF) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_draw_bf = \
+ $(TYPES_4fcfg_draw_bf) \
+ $(FILTERS_4fcfg_draw_bf) \
+ $(UI_FILTERS_4fcfg_draw_bf) \
+ $(FRAMELOADERS_4fcfg_draw_bf) \
+ $(CONTENTHANDLERS_4fcfg_draw_bf)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_draw_bf)
+
+ALL_PACKAGES+=draw_bf
diff --git a/filter/source/config/fragments/fcfg_drawgraphics.mk b/filter/source/config/fragments/fcfg_drawgraphics.mk
new file mode 100644
index 000000000000..7038e27e8ae4
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_drawgraphics.mk
@@ -0,0 +1,117 @@
+all_fragments+=drawgraphics
+
+# -----------------------------------------------
+# count = 29
+T4_DRAWGRAPHICS = \
+ bmp_MS_Windows \
+ dxf_AutoCAD_Interchange \
+ emf_MS_Windows_Metafile \
+ eps_Encapsulated_PostScript \
+ gif_Graphics_Interchange \
+ graphic_HTML \
+ graphic_SWF \
+ jpg_JPEG \
+ met_OS2_Metafile \
+ pbm_Portable_Bitmap \
+ pcd_Photo_CD_Base \
+ pcd_Photo_CD_Base16 \
+ pcd_Photo_CD_Base4 \
+ pct_Mac_Pict \
+ pcx_Zsoft_Paintbrush \
+ pgm_Portable_Graymap \
+ png_Portable_Network_Graphic \
+ ppm_Portable_Pixelmap \
+ psd_Adobe_Photoshop \
+ ras_Sun_Rasterfile \
+ sgf_StarOffice_Writer_SGF \
+ sgv_StarDraw_20 \
+ svg_Scalable_Vector_Graphics \
+ svm_StarView_Metafile \
+ tga_Truevision_TARGA \
+ tif_Tag_Image_File \
+ wmf_MS_Windows_Metafile \
+ xbm_X_Consortium \
+ xpm_XPM
+
+# -----------------------------------------------
+# count = 45
+F4_DRAWGRAPHICS = \
+ BMP___MS_Windows \
+ DXF___AutoCAD_Interchange \
+ EMF___MS_Windows_Metafile \
+ EPS___Encapsulated_PostScript \
+ GIF___Graphics_Interchange \
+ JPG___JPEG \
+ MET___OS_2_Metafile \
+ PBM___Portable_Bitmap \
+ PCT___Mac_Pict \
+ PCX___Zsoft_Paintbrush \
+ PGM___Portable_Graymap \
+ PNG___Portable_Network_Graphic \
+ PPM___Portable_Pixelmap \
+ PSD___Adobe_Photoshop \
+ RAS___Sun_Rasterfile \
+ SGF___StarOffice_Writer_SGF \
+ SGV___StarDraw_2_0 \
+ SVM___StarView_Metafile \
+ TGA___Truevision_TARGA \
+ TIF___Tag_Image_File \
+ WMF___MS_Windows_Metafile \
+ XBM___X_Consortium \
+ XPM \
+ draw_PCD_Photo_CD_Base \
+ draw_PCD_Photo_CD_Base16 \
+ draw_PCD_Photo_CD_Base4 \
+ draw_bmp_Export \
+ draw_emf_Export \
+ draw_eps_Export \
+ draw_flash_Export \
+ draw_gif_Export \
+ draw_html_Export \
+ draw_jpg_Export \
+ draw_met_Export \
+ draw_pbm_Export \
+ draw_pct_Export \
+ draw_pgm_Export \
+ draw_png_Export \
+ draw_ppm_Export \
+ draw_ras_Export \
+ draw_svg_Export \
+ draw_svm_Export \
+ draw_tif_Export \
+ draw_wmf_Export \
+ draw_xpm_Export
+
+# -----------------------------------------------
+# count = 1
+F4_UI_DRAWGRAPHICS = \
+ draw_html_Export_ui
+
+# -----------------------------------------------
+# count = 0
+L4_DRAWGRAPHICS =
+
+# -----------------------------------------------
+# count = 0
+C4_DRAWGRAPHICS =
+
+# -----------------------------------------------
+TYPES_4fcfg_drawgraphics = $(foreach,i,$(T4_DRAWGRAPHICS) types$/$i.xcu )
+FILTERS_4fcfg_drawgraphics = $(foreach,i,$(F4_DRAWGRAPHICS) filters$/$i.xcu )
+UI_FILTERS_4fcfg_drawgraphics = $(foreach,i,$(F4_UI_DRAWGRAPHICS) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_drawgraphics = $(foreach,i,$(L4_DRAWGRAPHICS) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_drawgraphics = $(foreach,i,$(C4_DRAWGRAPHICS) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_drawgraphics = \
+ $(TYPES_4fcfg_drawgraphics) \
+ $(FILTERS_4fcfg_drawgraphics) \
+ $(UI_FILTERS_4fcfg_drawgraphics) \
+ $(FRAMELOADERS_4fcfg_drawgraphics) \
+ $(CONTENTHANDLERS_4fcfg_drawgraphics)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_drawgraphics)
+
+ALL_PACKAGES+=drawgraphics
+
diff --git a/filter/source/config/fragments/fcfg_global.mk b/filter/source/config/fragments/fcfg_global.mk
new file mode 100644
index 000000000000..c0f2cbb90e2d
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_global.mk
@@ -0,0 +1,59 @@
+all_fragments+=global
+
+# -----------------------------------------------
+# count = 12
+T4_GLOBAL = \
+ writer_Text \
+ writer_StarOffice_XML_Writer \
+ writer_globaldocument_StarOffice_XML_Writer_GlobalDocument \
+ pdf_Portable_Document_Format \
+ writerglobal8 \
+
+# -----------------------------------------------
+# count = 12
+F4_GLOBAL = \
+ Text__encoded___StarWriter_GlobalDocument_ \
+ writer_globaldocument_StarOffice_XML_Writer \
+ writer_globaldocument_StarOffice_XML_Writer_GlobalDocument \
+ writer_globaldocument_pdf_Export \
+ writerglobal8 \
+ writerglobal8_writer \
+ writerglobal8_HTML
+
+# -----------------------------------------------
+# count = 12
+F4_UI_GLOBAL = \
+ Text__encoded___StarWriter_GlobalDocument__ui \
+ writer_globaldocument_StarOffice_XML_Writer_ui \
+ writer_globaldocument_StarOffice_XML_Writer_GlobalDocument_ui \
+ writerglobal8_ui \
+ writerglobal8_writer_ui
+
+# -----------------------------------------------
+# count = 0
+L4_GLOBAL =
+
+# -----------------------------------------------
+# count = 0
+C4_GLOBAL =
+
+# -----------------------------------------------
+TYPES_4fcfg_global = $(foreach,i,$(T4_GLOBAL) types$/$i.xcu )
+FILTERS_4fcfg_global = $(foreach,i,$(F4_GLOBAL) filters$/$i.xcu )
+UI_FILTERS_4fcfg_global = $(foreach,i,$(F4_UI_GLOBAL) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_global = $(foreach,i,$(L4_GLOBAL) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_global = $(foreach,i,$(C4_GLOBAL) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_global = \
+ $(TYPES_4fcfg_global) \
+ $(FILTERS_4fcfg_global) \
+ $(UI_FILTERS_4fcfg_global) \
+ $(FRAMELOADERS_4fcfg_global) \
+ $(CONTENTHANDLERS_4fcfg_global)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_global)
+
+ALL_PACKAGES+=global
+
diff --git a/filter/source/config/fragments/fcfg_global_bf.mk b/filter/source/config/fragments/fcfg_global_bf.mk
new file mode 100644
index 000000000000..371359937d5e
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_global_bf.mk
@@ -0,0 +1,55 @@
+all_fragments+=global_bf
+
+
+# -----------------------------------------------
+# count = 5
+T4_GLOBAL_BF = \
+ writer_StarWriter_30 \
+ writer_StarWriter_40 \
+ writer_globaldocument_StarWriter_40GlobalDocument \
+ writer_StarWriter_50 \
+ writer_globaldocument_StarWriter_50GlobalDocument
+
+# -----------------------------------------------
+# count = 5
+F4_GLOBAL_BF = \
+ StarWriter_3_0__StarWriter_GlobalDocument_ \
+ StarWriter_4_0__StarWriter_GlobalDocument_ \
+ StarWriter_4_0_GlobalDocument \
+ StarWriter_5_0__StarWriter_GlobalDocument_ \
+ StarWriter_5_0_GlobalDocument
+
+# -----------------------------------------------
+# count = 2
+F4_UI_GLOBAL_BF = \
+ StarWriter_4_0_GlobalDocument_ui \
+ StarWriter_5_0_GlobalDocument_ui
+
+# -----------------------------------------------
+# count = 0
+L4_GLOBAL_BF =
+
+# -----------------------------------------------
+# count = 0
+C4_GLOBAL_BF =
+
+# -----------------------------------------------
+TYPES_4fcfg_global_bf = $(foreach,i,$(T4_GLOBAL_BF) types$/$i.xcu )
+FILTERS_4fcfg_global_bf = $(foreach,i,$(F4_GLOBAL_BF) filters$/$i.xcu )
+UI_FILTERS_4fcfg_global_bf = $(foreach,i,$(F4_UI_GLOBAL_BF) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_global_bf = $(foreach,i,$(L4_GLOBAL_BF) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_global_bf = $(foreach,i,$(C4_GLOBAL_BF) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_global_bf = \
+ $(TYPES_4fcfg_global_bf) \
+ $(FILTERS_4fcfg_global_bf) \
+ $(UI_FILTERS_4fcfg_global_bf) \
+ $(FRAMELOADERS_4fcfg_global_bf) \
+ $(CONTENTHANDLERS_4fcfg_global_bf)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_global_bf)
+
+ALL_PACKAGES+=global_bf
+
diff --git a/filter/source/config/fragments/fcfg_impress.mk b/filter/source/config/fragments/fcfg_impress.mk
new file mode 100644
index 000000000000..f5c1c7de750c
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_impress.mk
@@ -0,0 +1,75 @@
+all_fragments+=impress
+
+# -----------------------------------------------
+# count = 19
+T4_IMPRESS = \
+ draw_StarOffice_XML_Draw \
+ impress_MS_PowerPoint_97 \
+ impress_MS_PowerPoint_97_Vorlage \
+ impress_StarOffice_XML_Impress \
+ impress_StarOffice_XML_Impress_Template \
+ pdf_Portable_Document_Format \
+ pwp_PlaceWare\
+ impress8\
+ impress8_template\
+ draw8\
+ MS_PowerPoint_2007_XML\
+ MS_PowerPoint_2007_XML_Template
+
+# -----------------------------------------------
+# count = 20
+F4_IMPRESS = \
+ MS_PowerPoint_97 \
+ MS_PowerPoint_97_Vorlage \
+ impress_StarOffice_XML_Draw \
+ StarOffice_XML__Impress_ \
+ impress_StarOffice_XML_Impress_Template \
+ impress_pdf_Export \
+ placeware_Export\
+ impress8\
+ impress8_template\
+ impress8_draw\
+ impress_MS_PowerPoint_2007_XML\
+ impress_MS_PowerPoint_2007_XML_Template
+
+# -----------------------------------------------
+# count = 12
+F4_UI_IMPRESS = \
+ MS_PowerPoint_97_Vorlage_ui \
+ impress_StarOffice_XML_Draw_ui \
+ StarOffice_XML__Impress__ui \
+ impress_StarOffice_XML_Impress_Template_ui \
+ impress8_ui \
+ impress8_template_ui \
+ impress8_draw_ui \
+ impress_MS_PowerPoint_2007_XML_ui \
+ impress_MS_PowerPoint_2007_XML_Template_ui
+
+# -----------------------------------------------
+# count = 0
+L4_GLOBAL =
+
+# -----------------------------------------------
+# count = 0
+C4_GLOBAL =
+
+# -----------------------------------------------
+TYPES_4fcfg_impress = $(foreach,i,$(T4_IMPRESS) types$/$i.xcu )
+FILTERS_4fcfg_impress = $(foreach,i,$(F4_IMPRESS) filters$/$i.xcu )
+UI_FILTERS_4fcfg_impress = $(foreach,i,$(F4_UI_IMPRESS) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_impress = $(foreach,i,$(L4_IMPRESS) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_impress = $(foreach,i,$(C4_IMPRESS) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_impress = \
+ $(TYPES_4fcfg_impress) \
+ $(FILTERS_4fcfg_impress) \
+ $(UI_FILTERS_4fcfg_impress) \
+ $(FRAMELOADERS_4fcfg_impress) \
+ $(CONTENTHANDLERS_4fcfg_impress)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_impress)
+
+ALL_PACKAGES+=impress
+
diff --git a/filter/source/config/fragments/fcfg_impress_bf.mk b/filter/source/config/fragments/fcfg_impress_bf.mk
new file mode 100644
index 000000000000..050aeccff300
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_impress_bf.mk
@@ -0,0 +1,66 @@
+all_fragments+=impress_bf
+
+
+# -----------------------------------------------
+# count = 9
+T4_IMPRESS_BF = \
+ draw_StarDraw_30 \
+ draw_StarDraw_30_Vorlage \
+ draw_StarDraw_50 \
+ draw_StarDraw_50_Vorlage \
+ impress_StarImpress_40 \
+ impress_StarImpress_40_Vorlage \
+ impress_StarImpress_50 \
+ impress_StarImpress_50_Vorlage \
+ impress_StarImpress_50_packed
+
+# -----------------------------------------------
+# count = 9
+F4_IMPRESS_BF = \
+ StarDraw_3_0_Vorlage__StarImpress_ \
+ StarDraw_3_0__StarImpress_ \
+ StarDraw_5_0_Vorlage__StarImpress_ \
+ StarDraw_5_0__StarImpress_ \
+ StarImpress_4_0 \
+ StarImpress_4_0_Vorlage \
+ StarImpress_5_0 \
+ StarImpress_5_0_Vorlage \
+ StarImpress_5_0__packed_
+
+# -----------------------------------------------
+# count = 5
+F4_UI_IMPRESS_BF = \
+ StarDraw_3_0_Vorlage__StarImpress__ui \
+ StarDraw_5_0_Vorlage__StarImpress__ui \
+ StarImpress_4_0_Vorlage_ui \
+ StarImpress_5_0_Vorlage_ui \
+ StarImpress_5_0__packed__ui \
+
+# -----------------------------------------------
+# count = 0
+L4_IMPRESS_BF =
+
+# -----------------------------------------------
+# count = 0
+C4_IMPRESS_BF =
+
+# -----------------------------------------------
+TYPES_4fcfg_impress_bf = $(foreach,i,$(T4_IMPRESS_BF) types$/$i.xcu )
+FILTERS_4fcfg_impress_bf = $(foreach,i,$(F4_IMPRESS_BF) filters$/$i.xcu )
+UI_FILTERS_4fcfg_impress_bf = $(foreach,i,$(F4_UI_IMPRESS_BF) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_impress_bf = $(foreach,i,$(L4_IMPRESS_BF) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_impress_bf = $(foreach,i,$(C4_IMPRESS_BF) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_impress_bf = \
+ $(TYPES_4fcfg_impress_bf) \
+ $(FILTERS_4fcfg_impress_bf) \
+ $(UI_FILTERS_4fcfg_impress_bf) \
+ $(FRAMELOADERS_4fcfg_impress_bf) \
+ $(CONTENTHANDLERS_4fcfg_impress_bf)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_impress_bf)
+
+ALL_PACKAGES+=impress_bf
+
diff --git a/filter/source/config/fragments/fcfg_impressgraphics.mk b/filter/source/config/fragments/fcfg_impressgraphics.mk
new file mode 100644
index 000000000000..a05aac7e7ed4
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_impressgraphics.mk
@@ -0,0 +1,83 @@
+all_fragments+=impressgraphics
+
+# -----------------------------------------------
+# count = 20
+T4_IMPRESSGRAPHICS = \
+ bmp_MS_Windows \
+ emf_MS_Windows_Metafile \
+ eps_Encapsulated_PostScript \
+ gif_Graphics_Interchange \
+ graphic_HTML \
+ graphic_SWF \
+ impress_CGM_Computer_Graphics_Metafile \
+ jpg_JPEG \
+ met_OS2_Metafile \
+ pbm_Portable_Bitmap \
+ pct_Mac_Pict \
+ pgm_Portable_Graymap \
+ png_Portable_Network_Graphic \
+ ppm_Portable_Pixelmap \
+ ras_Sun_Rasterfile \
+ svg_Scalable_Vector_Graphics \
+ svm_StarView_Metafile \
+ tif_Tag_Image_File \
+ wmf_MS_Windows_Metafile \
+ xpm_XPM
+
+# -----------------------------------------------
+# count = 20
+F4_IMPRESSGRAPHICS = \
+ CGM___Computer_Graphics_Metafile \
+ impress_bmp_Export \
+ impress_emf_Export \
+ impress_eps_Export \
+ impress_flash_Export \
+ impress_gif_Export \
+ impress_html_Export \
+ impress_jpg_Export \
+ impress_met_Export \
+ impress_pbm_Export \
+ impress_pct_Export \
+ impress_pgm_Export \
+ impress_png_Export \
+ impress_ppm_Export \
+ impress_ras_Export \
+ impress_svg_Export \
+ impress_svm_Export \
+ impress_tif_Export \
+ impress_wmf_Export \
+ impress_xpm_Export
+
+# -----------------------------------------------
+# count = 1
+F4_UI_IMPRESSGRAPHICS = \
+ impress_html_Export_ui
+
+# -----------------------------------------------
+# count = 0
+L4_IMPRESSGRAPHICS =
+
+# -----------------------------------------------
+# count = 0
+C4_IMPRESSGRAPHICS =
+
+# -----------------------------------------------
+TYPES_4fcfg_impressgraphics = $(foreach,i,$(T4_IMPRESSGRAPHICS) types$/$i.xcu )
+FILTERS_4fcfg_impressgraphics = $(foreach,i,$(F4_IMPRESSGRAPHICS) filters$/$i.xcu )
+UI_FILTERS_4fcfg_impressgraphics = $(foreach,i,$(F4_UI_IMPRESSGRAPHICS) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_impressgraphics = $(foreach,i,$(L4_IMPRESSGRAPHICS) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_impressgraphics = $(foreach,i,$(C4_IMPRESSGRAPHICS) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_impressgraphics = \
+ $(TYPES_4fcfg_impressgraphics) \
+ $(FILTERS_4fcfg_impressgraphics) \
+ $(UI_FILTERS_4fcfg_impressgraphics) \
+ $(FRAMELOADERS_4fcfg_impressgraphics) \
+ $(CONTENTHANDLERS_4fcfg_impressgraphics)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_impressgraphics)
+
+ALL_PACKAGES+=impressgraphics
+
diff --git a/filter/source/config/fragments/fcfg_internalgraphics.mk b/filter/source/config/fragments/fcfg_internalgraphics.mk
new file mode 100644
index 000000000000..ae978f0ca06c
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_internalgraphics.mk
@@ -0,0 +1,109 @@
+# do not add internal filter
+#all_fragments+=internalgraphics
+
+# -----------------------------------------------
+# count = 27
+T4_INTERNALGRAPHICS = \
+ bmp_MS_Windows \
+ dxf_AutoCAD_Interchange \
+ emf_MS_Windows_Metafile \
+ eps_Encapsulated_PostScript \
+ gif_Graphics_Interchange \
+ jpg_JPEG \
+ met_OS2_Metafile \
+ pbm_Portable_Bitmap \
+ pcd_Photo_CD_Base \
+ pcd_Photo_CD_Base16 \
+ pcd_Photo_CD_Base4 \
+ pct_Mac_Pict \
+ pcx_Zsoft_Paintbrush \
+ pgm_Portable_Graymap \
+ png_Portable_Network_Graphic \
+ ppm_Portable_Pixelmap \
+ psd_Adobe_Photoshop \
+ ras_Sun_Rasterfile \
+ sgf_StarOffice_Writer_SGF \
+ sgv_StarDraw_20 \
+ svg_Scalable_Vector_Graphics \
+ svm_StarView_Metafile \
+ tga_Truevision_TARGA \
+ tif_Tag_Image_File \
+ wmf_MS_Windows_Metafile \
+ xbm_X_Consortium \
+ xpm_XPM
+
+# -----------------------------------------------
+# count = 43
+F4_INTERNALGRAPHICS = \
+ bmp_Export \
+ bmp_Import \
+ dxf_Import \
+ emf_Export \
+ emf_Import \
+ eps_Export \
+ eps_Import \
+ gif_Export \
+ gif_Import \
+ jpg_Export \
+ jpg_Import \
+ met_Export \
+ met_Import \
+ pbm_Export \
+ pbm_Import \
+ pcd_Import_Base \
+ pcd_Import_Base4 \
+ pcd_Import_Base16 \
+ pct_Export \
+ pct_Import \
+ pcx_Import \
+ pgm_Export \
+ pgm_Import \
+ png_Export \
+ png_Import \
+ ppm_Export \
+ ppm_Import \
+ psd_Import \
+ ras_Export \
+ ras_Import \
+ sgf_Import \
+ sgv_Import \
+ svg_Export \
+ svm_Export \
+ svm_Import \
+ tga_Import \
+ tif_Export \
+ tif_Import \
+ wmf_Export \
+ wmf_Import \
+ xbm_Import \
+ xpm_Export \
+ xpm_Import
+
+# -----------------------------------------------
+# count = 0
+L4_INTERNALGRAPHICS =
+
+# -----------------------------------------------
+# count = 0
+C4_INTERNALGRAPHICS =
+
+# -----------------------------------------------
+TYPES_4fcfg_internalgraphics = $(foreach,i,$(T4_INTERNALGRAPHICS) types$/$i.xcu )
+FILTERS_4fcfg_internalgraphics = $(foreach,i,$(F4_INTERNALGRAPHICS) internalgraphicfilters$/$i.xcu )
+FRAMELOADERS_4fcfg_internalgraphics = $(foreach,i,$(L4_INTERNALGRAPHICS) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_internalgraphics = $(foreach,i,$(C4_INTERNALGRAPHICS) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_internalgraphics = \
+ $(TYPES_4fcfg_internalgraphics) \
+ $(FILTERS_4fcfg_internalgraphics) \
+ $(FRAMELOADERS_4fcfg_internalgraphics) \
+ $(CONTENTHANDLERS_4fcfg_internalgraphics)
+
+# do not add internal filter
+# ALL_UI_FILTERS+=
+
+# do not add internal filter
+# ALL_PACKAGES+=internalgraphics
+
diff --git a/filter/source/config/fragments/fcfg_math.mk b/filter/source/config/fragments/fcfg_math.mk
new file mode 100644
index 000000000000..07747769b66a
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_math.mk
@@ -0,0 +1,55 @@
+all_fragments+=math
+
+
+# -----------------------------------------------
+# count = 5
+T4_MATH = \
+ math_MathML_XML_Math \
+ math_MathType_3x \
+ math_StarOffice_XML_Math \
+ pdf_Portable_Document_Format \
+ math8
+
+# -----------------------------------------------
+# count = 5
+F4_MATH = \
+ MathML_XML__Math_ \
+ MathType_3_x \
+ StarOffice_XML__Math_ \
+ math_pdf_Export \
+ math8
+
+# -----------------------------------------------
+# count = 2
+F4_UI_MATH = \
+ StarOffice_XML__Math__ui \
+ math8_ui
+
+# -----------------------------------------------
+# count = 0
+L4_MATH =
+
+# -----------------------------------------------
+# count = 0
+C4_MATH =
+
+# -----------------------------------------------
+TYPES_4fcfg_math = $(foreach,i,$(T4_MATH) types$/$i.xcu )
+FILTERS_4fcfg_math = $(foreach,i,$(F4_MATH) filters$/$i.xcu )
+UI_FILTERS_4fcfg_math = $(foreach,i,$(F4_UI_MATH) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_math = $(foreach,i,$(L4_MATH) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_math = $(foreach,i,$(C4_MATH) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_math = \
+ $(TYPES_4fcfg_math) \
+ $(FILTERS_4fcfg_math) \
+ $(UI_FILTERS_4fcfg_math) \
+ $(FRAMELOADERS_4fcfg_math) \
+ $(CONTENTHANDLERS_4fcfg_math)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_math)
+
+ALL_PACKAGES+=math
+
diff --git a/filter/source/config/fragments/fcfg_math_bf.mk b/filter/source/config/fragments/fcfg_math_bf.mk
new file mode 100644
index 000000000000..f01fb997653b
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_math_bf.mk
@@ -0,0 +1,50 @@
+all_fragments+=math_bf
+
+# -----------------------------------------------
+# count = 4
+T4_MATH_BF = \
+ math_StarMath_20 \
+ math_StarMath_30 \
+ math_StarMath_40 \
+ math_StarMath_50
+
+# -----------------------------------------------
+# count = 4
+F4_MATH_BF = \
+ StarMath_2_0 \
+ StarMath_3_0 \
+ StarMath_4_0 \
+ StarMath_5_0
+
+# -----------------------------------------------
+# count = 0
+F4_UI_MATH_BF =
+
+# -----------------------------------------------
+# count = 0
+L4_MATH_BF =
+
+# -----------------------------------------------
+# count = 0
+C4_MATH_BF =
+
+# -----------------------------------------------
+TYPES_4fcfg_math_bf = $(foreach,i,$(T4_MATH_BF) types$/$i.xcu )
+FILTERS_4fcfg_math_bf = $(foreach,i,$(F4_MATH_BF) filters$/$i.xcu )
+UI_FILTERS_4fcfg_math_bf = $(foreach,i,$(F4_UI_MATH_BF) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_math_bf = $(foreach,i,$(L4_MATH_BF) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_math_bf = $(foreach,i,$(C4_MATH_BF) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_math_bf = \
+ $(TYPES_4fcfg_math_bf) \
+ $(FILTERS_4fcfg_math_bf) \
+ $(UI_FILTERS_4fcfg_math_bf) \
+ $(FRAMELOADERS_4fcfg_math_bf) \
+ $(CONTENTHANDLERS_4fcfg_math_bf)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_math_bf)
+
+ALL_PACKAGES+=math_bf
+
diff --git a/filter/source/config/fragments/fcfg_palm.mk b/filter/source/config/fragments/fcfg_palm.mk
new file mode 100644
index 000000000000..8b43b542c896
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_palm.mk
@@ -0,0 +1,44 @@
+all_fragments+=palm
+
+# -----------------------------------------------
+# count = 1
+T4_PALM = \
+ writer_AportisDoc_PalmDB_File
+
+# -----------------------------------------------
+# count = 1
+F4_PALM = \
+ AportisDoc_Palm_DB
+
+# -----------------------------------------------
+# count = 0
+F4_UI_PALM =
+
+# -----------------------------------------------
+# count = 0
+L4_PALM =
+
+# -----------------------------------------------
+# count = 0
+C4_PALM =
+
+# -----------------------------------------------
+TYPES_4fcfg_palm = $(foreach,i,$(T4_PALM) types$/$i.xcu )
+FILTERS_4fcfg_palm = $(foreach,i,$(F4_PALM) filters$/$i.xcu )
+UI_FILTERS_4fcfg_palm = $(foreach,i,$(F4_UI_PALM) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_palm = $(foreach,i,$(L4_PALM) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_palm = $(foreach,i,$(C4_PALM) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_palm = \
+ $(TYPES_4fcfg_palm) \
+ $(FILTERS_4fcfg_palm) \
+ $(UI_FILTERS_4fcfg_palm) \
+ $(FRAMELOADERS_4fcfg_palm) \
+ $(CONTENTHANDLERS_4fcfg_palm)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_palm)
+
+ALL_PACKAGES+=palm
+
diff --git a/filter/source/config/fragments/fcfg_pocketexcel.mk b/filter/source/config/fragments/fcfg_pocketexcel.mk
new file mode 100644
index 000000000000..02ec4fec488e
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_pocketexcel.mk
@@ -0,0 +1,44 @@
+all_fragments+=pocketexcel
+
+# -----------------------------------------------
+# count = 1
+T4_POCKETEXCEL = \
+ calc_Pocket_Excel_File
+
+# -----------------------------------------------
+# count = 1
+F4_POCKETEXCEL = \
+ Pocket_Excel
+
+# -----------------------------------------------
+# count = 0
+F4_UI_POCKETEXCEL =
+
+# -----------------------------------------------
+# count = 0
+L4_POCKETEXCEL =
+
+# -----------------------------------------------
+# count = 0
+C4_POCKETEXCEL =
+
+# -----------------------------------------------
+TYPES_4fcfg_pocketexcel = $(foreach,i,$(T4_POCKETEXCEL) types$/$i.xcu )
+FILTERS_4fcfg_pocketexcel = $(foreach,i,$(F4_POCKETEXCEL) filters$/$i.xcu )
+UI_FILTERS_4fcfg_pocketexcel = $(foreach,i,$(F4_UI_POCKETEXCEL) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_pocketexcel = $(foreach,i,$(L4_POCKETEXCEL) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_pocketexcel = $(foreach,i,$(C4_POCKETEXCEL) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_pocketexcel = \
+ $(TYPES_4fcfg_pocketexcel) \
+ $(FILTERS_4fcfg_pocketexcel) \
+ $(UI_FILTERS_4fcfg_pocketexcel) \
+ $(FRAMELOADERS_4fcfg_pocketexcel) \
+ $(CONTENTHANDLERS_4fcfg_pocketexcel)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_pocketexcel)
+
+ALL_PACKAGES+=pocketexcel
+
diff --git a/filter/source/config/fragments/fcfg_pocketword.mk b/filter/source/config/fragments/fcfg_pocketword.mk
new file mode 100644
index 000000000000..6060262147f7
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_pocketword.mk
@@ -0,0 +1,44 @@
+all_fragments+=pocketword
+
+# -----------------------------------------------
+# count = 1
+T4_POCKETWORD = \
+ writer_PocketWord_File
+
+# -----------------------------------------------
+# count = 1
+F4_POCKETWORD = \
+ PocketWord_File
+
+# -----------------------------------------------
+# count = 0
+F4_UI_POCKETWORD =
+
+# -----------------------------------------------
+# count = 0
+L4_POCKETWORD =
+
+# -----------------------------------------------
+# count = 0
+C4_POCKETWORD =
+
+# -----------------------------------------------
+TYPES_4fcfg_pocketword = $(foreach,i,$(T4_POCKETWORD) types$/$i.xcu )
+FILTERS_4fcfg_pocketword = $(foreach,i,$(F4_POCKETWORD) filters$/$i.xcu )
+UI_FILTERS_4fcfg_pocketword = $(foreach,i,$(F4_UI_POCKETWORD) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_pocketword = $(foreach,i,$(L4_POCKETWORD) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_pocketword = $(foreach,i,$(C4_POCKETWORD) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_pocketword = \
+ $(TYPES_4fcfg_pocketword) \
+ $(FILTERS_4fcfg_pocketword) \
+ $(UI_FILTERS_4fcfg_pocketword) \
+ $(FRAMELOADERS_4fcfg_pocketword) \
+ $(CONTENTHANDLERS_4fcfg_pocketword)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_pocketword)
+
+ALL_PACKAGES+=pocketword
+
diff --git a/filter/source/config/fragments/fcfg_w4w.mk b/filter/source/config/fragments/fcfg_w4w.mk
new file mode 100644
index 000000000000..dd40b5938d80
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_w4w.mk
@@ -0,0 +1,260 @@
+all_fragments+=w4w
+
+# -----------------------------------------------
+# count = 109
+T4_W4W = \
+ writer_Ami_Pro_1x_31_W4W \
+ writer_CTOS_DEF_W4W \
+ writer_Claris_Works_W4W \
+ writer_DCA_Revisable_Form_Text_W4W \
+ writer_DCA_with_Display_Write_5_W4W \
+ writer_DCAFFT_Final_Form_Text_W4W \
+ writer_DEC_DX_W4W \
+ writer_DEC_WPS_PLUS_W4W \
+ writer_DataGeneral_CEO_Write_W4W \
+ writer_DisplayWrite_20_4x_W4W \
+ writer_DisplayWrite_5x_W4W \
+ writer_EBCDIC_W4W \
+ writer_Enable_W4W \
+ writer_Frame_Maker_MIF_30_W4W \
+ writer_Frame_Maker_MIF_40_W4W \
+ writer_Frame_Maker_MIF_50_W4W \
+ writer_Frame_Work_III_W4W \
+ writer_Frame_Work_IV_W4W \
+ writer_HP_AdvanceWrite_Plus_W4W \
+ writer_ICL_Office_Power_6_W4W \
+ writer_ICL_Office_Power_7_W4W \
+ writer_Interleaf_W4W \
+ writer_Interleaf_5_6_W4W \
+ writer_Legacy_Winstar_onGO_W4W \
+ writer_Lotus_Manuscript_W4W \
+ writer_MASS_11_Rel_80_83_W4W \
+ writer_MASS_11_Rel_85_90_W4W \
+ writer_MS_MacWord_30_W4W \
+ writer_MS_MacWord_40_W4W \
+ writer_MS_MacWord_5x_W4W \
+ writer_MS_WinWord_1x_W4W \
+ writer_MS_WinWord_2x_W4W \
+ writer_MS_Word_3x_W4W \
+ writer_MS_Word_4x_W4W \
+ writer_MS_Word_5x_W4W \
+ writer_MS_Word_6x_W4W \
+ writer_MS_Works_20_DOS_W4W \
+ writer_MS_Works_30_Win_W4W \
+ writer_MS_Works_40_Mac_W4W \
+ writer_Mac_Write_4x_50_W4W \
+ writer_Mac_Write_II_W4W \
+ writer_Mac_Write_Pro_W4W \
+ writer_MultiMate_33_W4W \
+ writer_MultiMate_4_W4W \
+ writer_MultiMate_Adv_36_W4W \
+ writer_MultiMate_Adv_II_37_W4W \
+ writer_NAVY_DIF_W4W \
+ writer_OfficeWriter_40_W4W \
+ writer_OfficeWriter_50_W4W \
+ writer_OfficeWriter_6x_W4W \
+ writer_PFS_First_Choice_10_W4W \
+ writer_PFS_First_Choice_20_W4W \
+ writer_PFS_First_Choice_30_W4W \
+ writer_PFS_Write_W4W \
+ writer_Peach_Text_W4W \
+ writer_Professional_Write_10_W4W \
+ writer_Professional_Write_2x_W4W \
+ writer_Professional_Write_Plus_W4W \
+ writer_QA_Write_10_30_W4W \
+ writer_QA_Write_40_W4W \
+ writer_Rapid_File_10_W4W \
+ writer_Rapid_File_12_W4W \
+ writer_Samna_Word_IV_IV_Plus_W4W \
+ writer_Total_Word_W4W \
+ writer_Uniplex_V7_V8_W4W \
+ writer_Uniplex_onGO_W4W \
+ writer_VolksWriter_3_and_4_W4W \
+ writer_VolksWriter_Deluxe_W4W \
+ writer_WITA_W4W \
+ writer_Wang_II_SWP_W4W \
+ writer_Wang_PC_W4W \
+ writer_Wang_WP_Plus_W4W \
+ writer_Win_Write_3x_W4W \
+ writer_WiziWord_30_W4W \
+ writer_WordPerfect_Win_51_52_W4W \
+ writer_WordPerfect_Win_60_W4W \
+ writer_WordPerfect_Win_61_W4W \
+ writer_WordPerfect_Win_70_W4W \
+ writer_WordPerfect_41_W4W \
+ writer_WordPerfect_42_W4W \
+ writer_WordPerfect_50_W4W \
+ writer_WordPerfect_51_W4W \
+ writer_WordPerfect_60_W4W \
+ writer_WordPerfect_61_W4W \
+ writer_WordPerfect_Mac_1_W4W \
+ writer_WordPerfect_Mac_2_W4W \
+ writer_WordPerfect_Mac_3_W4W \
+ writer_WordStar_Win_1x_20_W4W \
+ writer_WordStar_2000_Rel_30_W4W \
+ writer_WordStar_2000_Rel_35_W4W \
+ writer_WordStar_33x_W4W \
+ writer_WordStar_345_W4W \
+ writer_WordStar_40_W4W \
+ writer_WordStar_50_W4W \
+ writer_WordStar_55_W4W \
+ writer_WordStar_60_W4W \
+ writer_WordStar_70_W4W \
+ writer_WriteNow_30_Macintosh_W4W \
+ writer_Writing_Assistant_W4W \
+ writer_XEROX_XIF_50_Illustrator_W4W \
+ writer_XEROX_XIF_50_W4W \
+ writer_XEROX_XIF_60_Color_Bitmap_W4W \
+ writer_XEROX_XIF_60_Res_Graphic_W4W \
+ writer_XyWrite_Win_10_W4W \
+ writer_XyWrite_III_W4W \
+ writer_XyWrite_IIIP_W4W \
+ writer_XyWrite_IV_W4W \
+ writer_XyWrite_Sig_Win_W4W \
+ writer_XyWrite_Signature_W4W
+
+# -----------------------------------------------
+# count = 109
+F4_W4W = \
+ Ami_Pro_1_x_3_1__W4W_ \
+ CTOS_DEF__W4W_ \
+ Claris_Works__W4W_ \
+ DCA_Revisable_Form_Text__W4W_ \
+ DCA_with_Display_Write_5__W4W_ \
+ DCA_FFT_Final_Form_Text__W4W_ \
+ DEC_DX__W4W_ \
+ DEC_WPS_PLUS__W4W_ \
+ DataGeneral_CEO_Write__W4W_ \
+ DisplayWrite_2_0_4_x__W4W_ \
+ DisplayWrite_5_x__W4W_ \
+ EBCDIC__W4W_ \
+ Enable__W4W_ \
+ Frame_Maker_MIF_3_0__W4W_ \
+ Frame_Maker_MIF_4_0__W4W_ \
+ Frame_Maker_MIF_5_0__W4W_ \
+ Frame_Work_III__W4W_ \
+ Frame_Work_IV___W4W_ \
+ HP_AdvanceWrite_Plus__W4W_ \
+ ICL_Office_Power_6__W4W_ \
+ ICL_Office_Power_7__W4W_ \
+ Interleaf__W4W_ \
+ Interleaf_5___6__W4W_ \
+ Legacy_Winstar_onGO__W4W_ \
+ Lotus_Manuscript__W4W_ \
+ MASS_11_Rel__8_0_8_3__W4W_ \
+ MASS_11_Rel__8_5_9_0__W4W_ \
+ MS_MacWord_3_0__W4W_ \
+ MS_MacWord_4_0__W4W_ \
+ MS_MacWord_5_x__W4W_ \
+ MS_WinWord_1_x__W4W_ \
+ MS_WinWord_2_x__W4W_ \
+ MS_Word_3_x__W4W_ \
+ MS_Word_4_x__W4W_ \
+ MS_Word_5_x__W4W_ \
+ MS_Word_6_x__W4W_ \
+ MS_Works_2_0_DOS__W4W_ \
+ MS_Works_3_0_Win__W4W_ \
+ MS_Works_4_0_Mac__W4W_ \
+ Mac_Write_4_x_5_0__W4W_ \
+ Mac_Write_II__W4W_ \
+ Mac_Write_Pro__W4W_ \
+ MultiMate_3_3__W4W_ \
+ MultiMate_4__W4W_ \
+ MultiMate_Adv__3_6__W4W_ \
+ MultiMate_Adv__II_3_7__W4W_ \
+ NAVY_DIF__W4W_ \
+ OfficeWriter_4_0__W4W_ \
+ OfficeWriter_5_0__W4W_ \
+ OfficeWriter_6_x__W4W_ \
+ PFS_First_Choice_1_0__W4W_ \
+ PFS_First_Choice_2_0__W4W_ \
+ PFS_First_Choice_3_0__W4W_ \
+ PFS_Write__W4W_ \
+ Peach_Text__W4W_ \
+ Professional_Write_1_0__W4W_ \
+ Professional_Write_2_x__W4W_ \
+ Professional_Write_Plus__W4W_ \
+ Q_A_Write_1_0_3_0__W4W_ \
+ Q_A_Write_4_0__W4W_ \
+ Rapid_File_1_0__W4W_ \
+ Rapid_File_1_2__W4W_ \
+ Samna_Word_IV_IV_Plus__W4W_ \
+ Total_Word__W4W_ \
+ Uniplex_V7_V8__W4W_ \
+ Uniplex_onGO__W4W_ \
+ VolksWriter_3_and_4__W4W_ \
+ VolksWriter_Deluxe__W4W_ \
+ WITA__W4W_ \
+ Wang_II_SWP__W4W_ \
+ Wang_PC__W4W_ \
+ Wang_WP_Plus__W4W_ \
+ Win_Write_3_x__W4W_ \
+ WiziWord_3_0__W4W_ \
+ WordPerfect__Win__5_1_5_2__W4W_ \
+ WordPerfect__Win__6_0__W4W_ \
+ WordPerfect__Win__6_1__W4W_ \
+ WordPerfect__Win__7_0__W4W_ \
+ WordPerfect_4_1__W4W_ \
+ WordPerfect_4_2__W4W_ \
+ WordPerfect_5_0__W4W_ \
+ WordPerfect_5_1__W4W_ \
+ WordPerfect_6_0__W4W_ \
+ WordPerfect_6_1__W4W_ \
+ WordPerfect_Mac_1__W4W_ \
+ WordPerfect_Mac_2__W4W_ \
+ WordPerfect_Mac_3__W4W_ \
+ WordStar__Win__1_x_2_0__W4W_ \
+ WordStar_2000_Rel__3_0__W4W_ \
+ WordStar_2000_Rel__3_5__W4W_ \
+ WordStar_3_3x__W4W_ \
+ WordStar_3_45__W4W_ \
+ WordStar_4_0___W4W_ \
+ WordStar_5_0___W4W_ \
+ WordStar_5_5___W4W_ \
+ WordStar_6_0___W4W_ \
+ WordStar_7_0___W4W_ \
+ WriteNow_3_0__Macintosh___W4W_ \
+ Writing_Assistant__W4W_ \
+ XEROX_XIF_5_0__Illustrator___W4W_ \
+ XEROX_XIF_5_0__W4W_ \
+ XEROX_XIF_6_0__Color_Bitmap___W4W_ \
+ XEROX_XIF_6_0__Res_Graphic___W4W_ \
+ XyWrite__Win__1_0__W4W_ \
+ XyWrite_III___W4W_ \
+ XyWrite_III____W4W_ \
+ XyWrite_IV__W4W_ \
+ XyWrite_Sig___Win___W4W_ \
+ XyWrite_Signature__W4W_
+
+# -----------------------------------------------
+# count = 0
+F4_UI_W4W =
+
+# -----------------------------------------------
+# count = 0
+L4_W4W =
+
+# -----------------------------------------------
+# count = 0
+C4_W4W =
+
+# -----------------------------------------------
+TYPES_4fcfg_w4w = $(foreach,i,$(T4_W4W) types$/$i.xcu )
+FILTERS_4fcfg_w4w = $(foreach,i,$(F4_W4W) filters$/$i.xcu )
+UI_FILTERS_4fcfg_w4w = $(foreach,i,$(F4_UI_W4W) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_w4w = $(foreach,i,$(L4_W4W) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_w4w = $(foreach,i,$(C4_W4W) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_w4w = \
+ $(TYPES_4fcfg_w4w) \
+ $(FILTERS_4fcfg_w4w) \
+ $(UI_FILTERS_4fcfg_w4w) \
+ $(FRAMELOADERS_4fcfg_w4w) \
+ $(CONTENTHANDLERS_4fcfg_w4w)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_w4w)
+
+ALL_PACKAGES+=w4w
+
diff --git a/filter/source/config/fragments/fcfg_web.mk b/filter/source/config/fragments/fcfg_web.mk
new file mode 100644
index 000000000000..c333635228c0
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_web.mk
@@ -0,0 +1,65 @@
+all_fragments+=web
+
+# -----------------------------------------------
+# count = 12
+T4_WEB = \
+ writer_web_HTML \
+ writer_Text \
+ writer_web_HTML_help \
+ writer_StarOffice_XML_Writer \
+ writer_web_StarOffice_XML_Writer_Web_Template \
+ pdf_Portable_Document_Format\
+ writerweb8_writer_template
+
+# -----------------------------------------------
+# count = 14
+F4_WEB = \
+ HTML \
+ Text__StarWriter_Web_ \
+ Text__encoded___StarWriter_Web_ \
+ writer_web_HTML_help \
+ writer_web_StarOffice_XML_Writer \
+ writer_web_StarOffice_XML_Writer_Web_Template \
+ writer_web_pdf_Export\
+ writerweb8_writer_template\
+ writerweb8_writer
+
+# -----------------------------------------------
+# count = 9
+F4_UI_WEB = \
+ HTML_ui \
+ Text__StarWriter_Web__ui \
+ Text__encoded___StarWriter_Web__ui \
+ writer_web_StarOffice_XML_Writer_ui \
+ writer_web_StarOffice_XML_Writer_Web_Template_ui \
+ writerweb8_writer_template_ui \
+ writerweb8_writer_ui
+
+# -----------------------------------------------
+# count = 0
+L4_WEB =
+
+# -----------------------------------------------
+# count = 0
+C4_WEB =
+
+# -----------------------------------------------
+TYPES_4fcfg_web = $(foreach,i,$(T4_WEB) types$/$i.xcu )
+FILTERS_4fcfg_web = $(foreach,i,$(F4_WEB) filters$/$i.xcu )
+UI_FILTERS_4fcfg_web = $(foreach,i,$(F4_UI_WEB) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_web = $(foreach,i,$(L4_WEB) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_web = $(foreach,i,$(C4_WEB) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_web = \
+ $(TYPES_4fcfg_web) \
+ $(FILTERS_4fcfg_web) \
+ $(UI_FILTERS_4fcfg_web) \
+ $(FRAMELOADERS_4fcfg_web) \
+ $(CONTENTHANDLERS_4fcfg_web)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_web)
+
+ALL_PACKAGES+=web
+
diff --git a/filter/source/config/fragments/fcfg_web_bf.mk b/filter/source/config/fragments/fcfg_web_bf.mk
new file mode 100644
index 000000000000..78d43d4360cb
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_web_bf.mk
@@ -0,0 +1,54 @@
+all_fragments+=web_bf
+
+# -----------------------------------------------
+# count = 5
+T4_WEB_BF = \
+ writer_StarWriter_30 \
+ writer_StarWriter_40 \
+ writer_StarWriter_50 \
+ writer_web_StarWriterWeb_40_VorlageTemplate \
+ writer_web_StarWriterWeb_50_VorlageTemplate
+
+# -----------------------------------------------
+# count = 5
+F4_WEB_BF = \
+ StarWriter_3_0__StarWriter_Web_ \
+ StarWriter_4_0__StarWriter_Web_ \
+ StarWriter_5_0__StarWriter_Web_ \
+ StarWriter_Web_4_0_Vorlage_Template \
+ StarWriter_Web_5_0_Vorlage_Template
+
+# -----------------------------------------------
+# count = 2
+F4_UI_WEB_BF = \
+ StarWriter_Web_4_0_Vorlage_Template_ui \
+ StarWriter_Web_5_0_Vorlage_Template_ui
+
+# -----------------------------------------------
+# count = 0
+L4_WEB_BF =
+
+# -----------------------------------------------
+# count = 0
+C4_WEB_BF =
+
+# -----------------------------------------------
+TYPES_4fcfg_web_bf = $(foreach,i,$(T4_WEB_BF) types$/$i.xcu )
+FILTERS_4fcfg_web_bf = $(foreach,i,$(F4_WEB_BF) filters$/$i.xcu )
+UI_FILTERS_4fcfg_web_bf = $(foreach,i,$(F4_UI_WEB_BF) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_web_bf = $(foreach,i,$(L4_WEB_BF) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_web_bf = $(foreach,i,$(C4_WEB_BF) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_web_bf = \
+ $(TYPES_4fcfg_web_bf) \
+ $(FILTERS_4fcfg_web_bf) \
+ $(UI_FILTERS_4fcfg_web_bf) \
+ $(FRAMELOADERS_4fcfg_web_bf) \
+ $(CONTENTHANDLERS_4fcfg_web_bf)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_web_bf)
+
+ALL_PACKAGES+=web_bf
+
diff --git a/filter/source/config/fragments/fcfg_writer.mk b/filter/source/config/fragments/fcfg_writer.mk
new file mode 100644
index 000000000000..220788049f79
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_writer.mk
@@ -0,0 +1,106 @@
+all_fragments+=writer
+
+# -----------------------------------------------
+# count = 39
+T4_WRITER = \
+ writer_web_HTML \
+ writer_Lotus_1_2_3_10_DOS_StarWriter \
+ writer_Lotus_1_2_3_10_WIN_StarWriter \
+ calc_MS_Excel_40 \
+ calc_MS_Excel_5095 \
+ calc_MS_Excel_95 \
+ writer_MS_WinWord_5 \
+ writer_MS_WinWord_60 \
+ writer_MS_Word_95 \
+ writer_MS_Word_95_Vorlage \
+ writer_MS_Word_97 \
+ writer_MS_Word_97_Vorlage \
+ writer_Rich_Text_Format \
+ writer_StarOffice_XML_Writer \
+ writer_WordPerfect_Document \
+ writer_T602_Document \
+ writer_Text \
+ writer_Text_encoded \
+ writer_MIZI_Hwp_97 \
+ writer_StarOffice_XML_Writer_Template \
+ pdf_Portable_Document_Format\
+ writer8_template\
+ writer8 \
+ writer_MS_Word_2003_XML \
+ writer_MS_Word_2007_XML \
+ writer_MS_Word_2007_XML_Template
+
+# -----------------------------------------------
+# count = 39
+F4_WRITER = \
+ HTML__StarWriter_ \
+ Lotus_1_2_3_1_0__DOS___StarWriter_ \
+ Lotus_1_2_3_1_0__WIN___StarWriter_ \
+ MS_Excel_4_0__StarWriter_ \
+ MS_Excel_5_0__StarWriter_ \
+ MS_Excel_95__StarWriter_ \
+ MS_WinWord_5 \
+ MS_WinWord_6_0 \
+ MS_Word_95 \
+ MS_Word_95_Vorlage \
+ MS_Word_97 \
+ MS_Word_97_Vorlage \
+ Rich_Text_Format \
+ StarOffice_XML__Writer_ \
+ WordPerfect \
+ T602Document \
+ Text \
+ Text__encoded_ \
+ writer_MIZI_Hwp_97 \
+ writer_StarOffice_XML_Writer_Template \
+ writer_pdf_Export\
+ writer8\
+ writer8_template \
+ MS_Word_2003_XML \
+ MS_Word_2007_XML \
+ MS_Word_2007_XML_Template
+
+# -----------------------------------------------
+# count = 14
+F4_UI_WRITER = \
+ HTML__StarWriter__ui \
+ MS_Word_95_Vorlage_ui \
+ MS_Word_97_Vorlage_ui \
+ StarOffice_XML__Writer__ui \
+ Text_ui \
+ Text__encoded__ui \
+ writer_StarOffice_XML_Writer_Template_ui \
+ writer8_ui \
+ writer8_template_ui \
+ MS_Word_2003_XML_ui \
+ MS_Word_2007_XML_ui \
+ MS_Word_2007_XML_Template_ui
+
+# -----------------------------------------------
+# count = 0
+L4_WRITER =
+
+# -----------------------------------------------
+# count = 0
+C4_WRITER =
+
+# -----------------------------------------------
+TYPES_4fcfg_writer = $(foreach,i,$(T4_WRITER) types$/$i.xcu )
+FILTERS_4fcfg_writer = $(foreach,i,$(F4_WRITER) filters$/$i.xcu )
+UI_FILTERS_4fcfg_writer = $(foreach,i,$(F4_UI_WRITER) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_writer = $(foreach,i,$(L4_WRITER) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_writer = $(foreach,i,$(C4_WRITER) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_writer = \
+ $(TYPES_4fcfg_writer) \
+ $(FILTERS_4fcfg_writer) \
+ $(UI_FILTERS_4fcfg_writer) \
+ $(FRAMELOADERS_4fcfg_writer) \
+ $(CONTENTHANDLERS_4fcfg_writer)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_writer)
+
+ALL_PACKAGES+=writer
+
diff --git a/filter/source/config/fragments/fcfg_writer_bf.mk b/filter/source/config/fragments/fcfg_writer_bf.mk
new file mode 100644
index 000000000000..2e4c5b82b04e
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_writer_bf.mk
@@ -0,0 +1,63 @@
+all_fragments+=writer_bf
+
+# -----------------------------------------------
+# count = 9
+T4_WRITER_BF = \
+ writer_StarWriter_10 \
+ writer_StarWriter_20 \
+ writer_StarWriter_30 \
+ writer_StarWriter_30_VorlageTemplate \
+ writer_StarWriter_40 \
+ writer_StarWriter_40_VorlageTemplate \
+ writer_StarWriter_50 \
+ writer_StarWriter_50_VorlageTemplate \
+ writer_StarWriter_DOS
+
+# -----------------------------------------------
+# count = 9
+F4_WRITER_BF = \
+ StarWriter_1_0 \
+ StarWriter_2_0 \
+ StarWriter_3_0 \
+ StarWriter_3_0_Vorlage_Template \
+ StarWriter_4_0 \
+ StarWriter_4_0_Vorlage_Template \
+ StarWriter_5_0 \
+ StarWriter_5_0_Vorlage_Template \
+ StarWriter_DOS
+
+# -----------------------------------------------
+# count = 3
+F4_UI_WRITER_BF = \
+ StarWriter_3_0_Vorlage_Template_ui \
+ StarWriter_4_0_Vorlage_Template_ui \
+ StarWriter_5_0_Vorlage_Template_ui \
+
+# -----------------------------------------------
+# count = 0
+L4_WRITER_BF =
+
+# -----------------------------------------------
+# count = 0
+C4_WRITER_BF =
+
+# -----------------------------------------------
+TYPES_4fcfg_writer_bf = $(foreach,i,$(T4_WRITER_BF) types$/$i.xcu )
+FILTERS_4fcfg_writer_bf = $(foreach,i,$(F4_WRITER_BF) filters$/$i.xcu )
+UI_FILTERS_4fcfg_writer_bf = $(foreach,i,$(F4_UI_WRITER_BF) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_writer_bf = $(foreach,i,$(L4_WRITER_BF) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_writer_bf = $(foreach,i,$(C4_WRITER_BF) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_writer_bf = \
+ $(TYPES_4fcfg_writer_bf) \
+ $(FILTERS_4fcfg_writer_bf) \
+ $(UI_FILTERS_4fcfg_writer_bf) \
+ $(FRAMELOADERS_4fcfg_writer_bf) \
+ $(CONTENTHANDLERS_4fcfg_writer_bf)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_writer_bf)
+
+ALL_PACKAGES+=writer_bf
+
diff --git a/filter/source/config/fragments/fcfg_xslt.mk b/filter/source/config/fragments/fcfg_xslt.mk
new file mode 100644
index 000000000000..852383aa760e
--- /dev/null
+++ b/filter/source/config/fragments/fcfg_xslt.mk
@@ -0,0 +1,55 @@
+all_fragments+=xslt
+
+# -----------------------------------------------
+# count = 5
+T4_XSLT = \
+ writer_DocBook_File \
+ XHTML_File \
+ Unified_Office_Format_text \
+ Unified_Office_Format_spreadsheet \
+ Unified_Office_Format_presentation
+
+# -----------------------------------------------
+# count = 8
+F4_XSLT = \
+ DocBook_File \
+ XHTML_Calc_File \
+ XHTML_Draw_File \
+ XHTML_Impress_File \
+ XHTML_Writer_File \
+ UOF_text \
+ UOF_spreadsheet \
+ UOF_presentation
+
+# -----------------------------------------------
+# count = 0
+F4_UI_XSLT =
+
+# -----------------------------------------------
+# count = 0
+L4_XSLT =
+
+# -----------------------------------------------
+# count = 0
+C4_XSLT =
+
+# -----------------------------------------------
+TYPES_4fcfg_xslt = $(foreach,i,$(T4_XSLT) types$/$i.xcu )
+FILTERS_4fcfg_xslt = $(foreach,i,$(F4_XSLT) filters$/$i.xcu )
+UI_FILTERS_4fcfg_xslt = $(foreach,i,$(F4_UI_XSLT) $(DIR_LOCFRAG)$/filters$/$i.xcu )
+FRAMELOADERS_4fcfg_xslt = $(foreach,i,$(L4_XSLT) frameloaders$/$i.xcu )
+CONTENTHANDLERS_4fcfg_xslt = $(foreach,i,$(C4_XSLT) contenthandlers$/$i.xcu )
+
+# -----------------------------------------------
+# needed to get dependencies inside global makefile work!
+ALL_4fcfg_xslt = \
+ $(TYPES_4fcfg_xslt) \
+ $(FILTERS_4fcfg_xslt) \
+ $(UI_FILTERS_4fcfg_xslt) \
+ $(FRAMELOADERS_4fcfg_xslt) \
+ $(CONTENTHANDLERS_4fcfg_xslt)
+
+ALL_UI_FILTERS+=$(UI_FILTERS_4fcfg_xslt)
+
+ALL_PACKAGES+=xslt
+
diff --git a/filter/source/config/fragments/filters/Ami_Pro_1_x_3_1__W4W_.xcu b/filter/source/config/fragments/filters/Ami_Pro_1_x_3_1__W4W_.xcu
new file mode 100644
index 000000000000..71c84d3fb7df
--- /dev/null
+++ b/filter/source/config/fragments/filters/Ami_Pro_1_x_3_1__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Ami Pro 1.x-3.1 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W33_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Ami Pro 1.x-3.1</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Ami_Pro_1x_31_W4W</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/filters/AportisDoc_Palm_DB.xcu b/filter/source/config/fragments/filters/AportisDoc_Palm_DB.xcu
new file mode 100644
index 000000000000..d3d65abc8f8b
--- /dev/null
+++ b/filter/source/config/fragments/filters/AportisDoc_Palm_DB.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="AportisDoc Palm DB" oor:op="replace">
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_AportisDoc_PalmDB_File</value></prop>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UserData"><value>com.sun.star.documentconversion.XMergeBridge classes/aportisdoc.jar com.sun.star.comp.Writer.XMLImporter com.sun.star.comp.Writer.XMLExporter staroffice/sxw application/x-aportisdoc</value></prop>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="UIName">
+ <value>AportisDoc (Palm)</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/BMP___MS_Windows.xcu b/filter/source/config/fragments/filters/BMP___MS_Windows.xcu
new file mode 100644
index 000000000000..911d2841351a
--- /dev/null
+++ b/filter/source/config/fragments/filters/BMP___MS_Windows.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="BMP - MS Windows" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">BMP - Windows Bitmap</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>bmp_MS_Windows</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/CGM___Computer_Graphics_Metafile.xcu b/filter/source/config/fragments/filters/CGM___Computer_Graphics_Metafile.xcu
new file mode 100644
index 000000000000..652821c72247
--- /dev/null
+++ b/filter/source/config/fragments/filters/CGM___Computer_Graphics_Metafile.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="CGM - Computer Graphics Metafile" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>icg</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">CGM - Computer Graphics Metafile</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>impress_CGM_Computer_Graphics_Metafile</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/CTOS_DEF__W4W_.xcu b/filter/source/config/fragments/filters/CTOS_DEF__W4W_.xcu
new file mode 100644
index 000000000000..7eac49b885c4
--- /dev/null
+++ b/filter/source/config/fragments/filters/CTOS_DEF__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="CTOS DEF (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W36_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">CTOS DEF</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_CTOS_DEF_W4W</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/filters/Claris_Works__W4W_.xcu b/filter/source/config/fragments/filters/Claris_Works__W4W_.xcu
new file mode 100644
index 000000000000..491b57de36ed
--- /dev/null
+++ b/filter/source/config/fragments/filters/Claris_Works__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Claris Works (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W57_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Claris Works</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Claris_Works_W4W</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/filters/DCA_FFT_Final_Form_Text__W4W_.xcu b/filter/source/config/fragments/filters/DCA_FFT_Final_Form_Text__W4W_.xcu
new file mode 100644
index 000000000000..510d30fbbbe2
--- /dev/null
+++ b/filter/source/config/fragments/filters/DCA_FFT_Final_Form_Text__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="DCA/FFT-Final Form Text (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W32_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">DCA/FFT-Final Form Text</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_DCAFFT_Final_Form_Text_W4W</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/filters/DCA_Revisable_Form_Text__W4W_.xcu b/filter/source/config/fragments/filters/DCA_Revisable_Form_Text__W4W_.xcu
new file mode 100644
index 000000000000..e22a5b7b0a91
--- /dev/null
+++ b/filter/source/config/fragments/filters/DCA_Revisable_Form_Text__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="DCA Revisable Form Text (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W15_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">DCA Revisable Form Text</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_DCA_Revisable_Form_Text_W4W</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/filters/DCA_with_Display_Write_5__W4W_.xcu b/filter/source/config/fragments/filters/DCA_with_Display_Write_5__W4W_.xcu
new file mode 100644
index 000000000000..ce3bcb947a27
--- /dev/null
+++ b/filter/source/config/fragments/filters/DCA_with_Display_Write_5__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="DCA with Display Write 5 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W15_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">DCA with Display Write 5</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_DCA_with_Display_Write_5_W4W</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/filters/DEC_DX__W4W_.xcu b/filter/source/config/fragments/filters/DEC_DX__W4W_.xcu
new file mode 100644
index 000000000000..26a4f367b525
--- /dev/null
+++ b/filter/source/config/fragments/filters/DEC_DX__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="DEC DX (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W30_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">DEC DX</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_DEC_DX_W4W</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/filters/DEC_WPS_PLUS__W4W_.xcu b/filter/source/config/fragments/filters/DEC_WPS_PLUS__W4W_.xcu
new file mode 100644
index 000000000000..b91cd6f8894d
--- /dev/null
+++ b/filter/source/config/fragments/filters/DEC_WPS_PLUS__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="DEC WPS-PLUS (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W45_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">DEC WPS-PLUS</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_DEC_WPS_PLUS_W4W</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/filters/DIF.xcu b/filter/source/config/fragments/filters/DIF.xcu
new file mode 100644
index 000000000000..c331ba028e13
--- /dev/null
+++ b/filter/source/config/fragments/filters/DIF.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="DIF" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN USESOPTIONS</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.comp.Calc.FilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Data Interchange Format</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>calc_DIF</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/DXF___AutoCAD_Interchange.xcu b/filter/source/config/fragments/filters/DXF___AutoCAD_Interchange.xcu
new file mode 100644
index 000000000000..699622528196
--- /dev/null
+++ b/filter/source/config/fragments/filters/DXF___AutoCAD_Interchange.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="DXF - AutoCAD Interchange" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">DXF - AutoCAD Interchange Format</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>dxf_AutoCAD_Interchange</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/DataGeneral_CEO_Write__W4W_.xcu b/filter/source/config/fragments/filters/DataGeneral_CEO_Write__W4W_.xcu
new file mode 100644
index 000000000000..dc04e0ea1e97
--- /dev/null
+++ b/filter/source/config/fragments/filters/DataGeneral_CEO_Write__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="DataGeneral CEO Write (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W104_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">DataGeneral CEO Write</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_DataGeneral_CEO_Write_W4W</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/filters/DisplayWrite_2_0_4_x__W4W_.xcu b/filter/source/config/fragments/filters/DisplayWrite_2_0_4_x__W4W_.xcu
new file mode 100644
index 000000000000..61e8dd2bcbf1
--- /dev/null
+++ b/filter/source/config/fragments/filters/DisplayWrite_2_0_4_x__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="DisplayWrite 2.0-4.x (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W15_2</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">DisplayWrite 2.0-4.x</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_DisplayWrite_20_4x_W4W</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/filters/DisplayWrite_5_x__W4W_.xcu b/filter/source/config/fragments/filters/DisplayWrite_5_x__W4W_.xcu
new file mode 100644
index 000000000000..098c463d111c
--- /dev/null
+++ b/filter/source/config/fragments/filters/DisplayWrite_5_x__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="DisplayWrite 5.x (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W15_3</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">DisplayWrite 5.x</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_DisplayWrite_5x_W4W</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/filters/DocBook_File.xcu b/filter/source/config/fragments/filters/DocBook_File.xcu
new file mode 100644
index 000000000000..07eb48046acb
--- /dev/null
+++ b/filter/source/config/fragments/filters/DocBook_File.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="DocBook File" oor:op="replace">
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_DocBook_File</value></prop>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Writer.XMLImporter,com.sun.star.comp.Writer.XMLExporter,../share/xslt/docbook/docbooktosoffheadings.xsl,../share/xslt/docbook/sofftodocbookheadings.xsl</value></prop>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
+ <prop oor:name="TemplateName"><value>../share/xslt/docbook/DocBookTemplate.stw</value></prop>
+ <prop oor:name="UIName">
+ <value>DocBook</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/EBCDIC__W4W_.xcu b/filter/source/config/fragments/filters/EBCDIC__W4W_.xcu
new file mode 100644
index 000000000000..0922f3162273
--- /dev/null
+++ b/filter/source/config/fragments/filters/EBCDIC__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="EBCDIC (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W02_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">EBCDIC</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_EBCDIC_W4W</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/filters/EMF___MS_Windows_Metafile.xcu b/filter/source/config/fragments/filters/EMF___MS_Windows_Metafile.xcu
new file mode 100644
index 000000000000..3420e53180e9
--- /dev/null
+++ b/filter/source/config/fragments/filters/EMF___MS_Windows_Metafile.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="EMF - MS Windows Metafile" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">EMF - Enhanced Metafile</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>emf_MS_Windows_Metafile</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/EPS___Encapsulated_PostScript.xcu b/filter/source/config/fragments/filters/EPS___Encapsulated_PostScript.xcu
new file mode 100644
index 000000000000..d73045dacc2d
--- /dev/null
+++ b/filter/source/config/fragments/filters/EPS___Encapsulated_PostScript.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="EPS - Encapsulated PostScript" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">EPS - Encapsulated PostScript</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>eps_Encapsulated_PostScript</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/Enable__W4W_.xcu b/filter/source/config/fragments/filters/Enable__W4W_.xcu
new file mode 100644
index 000000000000..7ee528fc3f2f
--- /dev/null
+++ b/filter/source/config/fragments/filters/Enable__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Enable (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W28_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Enable</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Enable_W4W</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/filters/Frame_Maker_MIF_3_0__W4W_.xcu b/filter/source/config/fragments/filters/Frame_Maker_MIF_3_0__W4W_.xcu
new file mode 100644
index 000000000000..1b49abb99539
--- /dev/null
+++ b/filter/source/config/fragments/filters/Frame_Maker_MIF_3_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Frame Maker MIF 3.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W42_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Frame Maker MIF 3.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Frame_Maker_MIF_30_W4W</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/filters/Frame_Maker_MIF_4_0__W4W_.xcu b/filter/source/config/fragments/filters/Frame_Maker_MIF_4_0__W4W_.xcu
new file mode 100644
index 000000000000..ea2a52f3fbdd
--- /dev/null
+++ b/filter/source/config/fragments/filters/Frame_Maker_MIF_4_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Frame Maker MIF 4.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W42_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Frame Maker MIF 4.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Frame_Maker_MIF_40_W4W</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/filters/Frame_Maker_MIF_5_0__W4W_.xcu b/filter/source/config/fragments/filters/Frame_Maker_MIF_5_0__W4W_.xcu
new file mode 100644
index 000000000000..fd6da2b5a998
--- /dev/null
+++ b/filter/source/config/fragments/filters/Frame_Maker_MIF_5_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Frame Maker MIF 5.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W42_2</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Frame Maker MIF 5.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Frame_Maker_MIF_50_W4W</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/filters/Frame_Work_III__W4W_.xcu b/filter/source/config/fragments/filters/Frame_Work_III__W4W_.xcu
new file mode 100644
index 000000000000..fec82004b7d4
--- /dev/null
+++ b/filter/source/config/fragments/filters/Frame_Work_III__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Frame Work III (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W29_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Frame Work III</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Frame_Work_III_W4W</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/filters/Frame_Work_IV___W4W_.xcu b/filter/source/config/fragments/filters/Frame_Work_IV___W4W_.xcu
new file mode 100644
index 000000000000..b5338bd3be00
--- /dev/null
+++ b/filter/source/config/fragments/filters/Frame_Work_IV___W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Frame Work IV (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W29_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Frame Work IV</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Frame_Work_IV_W4W</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/filters/GIF___Graphics_Interchange.xcu b/filter/source/config/fragments/filters/GIF___Graphics_Interchange.xcu
new file mode 100644
index 000000000000..b0db0e0b7298
--- /dev/null
+++ b/filter/source/config/fragments/filters/GIF___Graphics_Interchange.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="GIF - Graphics Interchange" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">GIF - Graphics Interchange Format</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>gif_Graphics_Interchange</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/HP_AdvanceWrite_Plus__W4W_.xcu b/filter/source/config/fragments/filters/HP_AdvanceWrite_Plus__W4W_.xcu
new file mode 100644
index 000000000000..eab8b2773e45
--- /dev/null
+++ b/filter/source/config/fragments/filters/HP_AdvanceWrite_Plus__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="HP AdvanceWrite Plus (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W22_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">HP AdvanceWrite Plus</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_HP_AdvanceWrite_Plus_W4W</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/filters/HTML.xcu b/filter/source/config/fragments/filters/HTML.xcu
new file mode 100644
index 000000000000..853b32d112ec
--- /dev/null
+++ b/filter/source/config/fragments/filters/HTML.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="HTML" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ASYNCHRON PREFERRED</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>HTML</value></prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_web_HTML</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/HTML_MasterDoc.xcu b/filter/source/config/fragments/filters/HTML_MasterDoc.xcu
new file mode 100644
index 000000000000..ff18e7c46068
--- /dev/null
+++ b/filter/source/config/fragments/filters/HTML_MasterDoc.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="HTML_MasterDoc" oor:op="replace">
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_web_HTML</value></prop>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UserData"><value>HTML</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">HTML Document (%productname% Master Document)</value>
+ </prop>
+ <prop oor:name="Flags"><value>EXPORT INTERNAL NOTINFILEDIALOG NOTINCHOOSER</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/HTML_MasterDoc_ui.xcu b/filter/source/config/fragments/filters/HTML_MasterDoc_ui.xcu
new file mode 100644
index 000000000000..ce18cbf07c81
--- /dev/null
+++ b/filter/source/config/fragments/filters/HTML_MasterDoc_ui.xcu
@@ -0,0 +1,5 @@
+ <node oor:name="HTML_MasterDoc">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">HTML Document (%productname% Master Document)</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/HTML__StarCalc_.xcu b/filter/source/config/fragments/filters/HTML__StarCalc_.xcu
new file mode 100644
index 000000000000..01d88c818c09
--- /dev/null
+++ b/filter/source/config/fragments/filters/HTML__StarCalc_.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="HTML (StarCalc)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN USEOPTIONS</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.comp.Calc.FilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_web_HTML</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/HTML__StarCalc__ui.xcu b/filter/source/config/fragments/filters/HTML__StarCalc__ui.xcu
new file mode 100644
index 000000000000..ec66d294cec1
--- /dev/null
+++ b/filter/source/config/fragments/filters/HTML__StarCalc__ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="HTML (StarCalc)">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">HTML Document (%productname% Calc)</value>
+ <value xml:lang="x-translate">HTML Document (%productname% Calc)</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/HTML__StarWriter_.xcu b/filter/source/config/fragments/filters/HTML__StarWriter_.xcu
new file mode 100644
index 000000000000..285fb7d3e3f5
--- /dev/null
+++ b/filter/source/config/fragments/filters/HTML__StarWriter_.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="HTML (StarWriter)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN ASYNCHRON</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>HTML</value></prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_web_HTML</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/filters/HTML__StarWriter__ui.xcu b/filter/source/config/fragments/filters/HTML__StarWriter__ui.xcu
new file mode 100644
index 000000000000..954ad6185586
--- /dev/null
+++ b/filter/source/config/fragments/filters/HTML__StarWriter__ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="HTML (StarWriter)">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">HTML Document (%productname% Writer)</value>
+ <value xml:lang="x-translate">HTML Document (%productname% Writer)</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/HTML_ui.xcu b/filter/source/config/fragments/filters/HTML_ui.xcu
new file mode 100644
index 000000000000..2549c90d0676
--- /dev/null
+++ b/filter/source/config/fragments/filters/HTML_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="HTML">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">HTML Document</value>
+ <value xml:lang="x-translate">HTML Document</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/ICL_Office_Power_6__W4W_.xcu b/filter/source/config/fragments/filters/ICL_Office_Power_6__W4W_.xcu
new file mode 100644
index 000000000000..9e4837530df9
--- /dev/null
+++ b/filter/source/config/fragments/filters/ICL_Office_Power_6__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="ICL Office Power 6 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W102_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">ICL Office Power 6</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_ICL_Office_Power_6_W4W</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/filters/ICL_Office_Power_7__W4W_.xcu b/filter/source/config/fragments/filters/ICL_Office_Power_7__W4W_.xcu
new file mode 100644
index 000000000000..2f985fee39b3
--- /dev/null
+++ b/filter/source/config/fragments/filters/ICL_Office_Power_7__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="ICL Office Power 7 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W102_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">ICL Office Power 7</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_ICL_Office_Power_7_W4W</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/filters/Interleaf_5___6__W4W_.xcu b/filter/source/config/fragments/filters/Interleaf_5___6__W4W_.xcu
new file mode 100644
index 000000000000..b90e6644783d
--- /dev/null
+++ b/filter/source/config/fragments/filters/Interleaf_5___6__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Interleaf 5 - 6 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W46_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Interleaf 5 - 6</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Interleaf_5_6_W4W</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/filters/Interleaf__W4W_.xcu b/filter/source/config/fragments/filters/Interleaf__W4W_.xcu
new file mode 100644
index 000000000000..b9f89273e5b0
--- /dev/null
+++ b/filter/source/config/fragments/filters/Interleaf__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Interleaf (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W35_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Interleaf</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Interleaf_W4W</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/filters/JPG___JPEG.xcu b/filter/source/config/fragments/filters/JPG___JPEG.xcu
new file mode 100644
index 000000000000..cefaa6416ec8
--- /dev/null
+++ b/filter/source/config/fragments/filters/JPG___JPEG.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="JPG - JPEG" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">JPEG - Joint Photographic Experts Group</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>jpg_JPEG</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/Legacy_Winstar_onGO__W4W_.xcu b/filter/source/config/fragments/filters/Legacy_Winstar_onGO__W4W_.xcu
new file mode 100644
index 000000000000..4e4756f8507f
--- /dev/null
+++ b/filter/source/config/fragments/filters/Legacy_Winstar_onGO__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Legacy Winstar onGO (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W37_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Legacy Winstar onGO</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Legacy_Winstar_onGO_W4W</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/filters/Lotus.xcu b/filter/source/config/fragments/filters/Lotus.xcu
new file mode 100644
index 000000000000..cff013910f8c
--- /dev/null
+++ b/filter/source/config/fragments/filters/Lotus.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Lotus" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN USESOPTIONS PREFERRED</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.comp.Calc.FilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Lotus 1-2-3</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>calc_Lotus</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/Lotus_1_2_3_1_0__DOS___StarWriter_.xcu b/filter/source/config/fragments/filters/Lotus_1_2_3_1_0__DOS___StarWriter_.xcu
new file mode 100644
index 000000000000..e8c57c254a4c
--- /dev/null
+++ b/filter/source/config/fragments/filters/Lotus_1_2_3_1_0__DOS___StarWriter_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Lotus 1-2-3 1.0 (DOS) (StarWriter)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN NOTINFILEDIALOG NOTINCHOOSER 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>LOTUSD</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Lotus 1-2-3 1.0 DOS (%productname% Writer)</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Lotus_1_2_3_10_DOS_StarWriter</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/filters/Lotus_1_2_3_1_0__WIN___StarWriter_.xcu b/filter/source/config/fragments/filters/Lotus_1_2_3_1_0__WIN___StarWriter_.xcu
new file mode 100644
index 000000000000..2e1a47f961f8
--- /dev/null
+++ b/filter/source/config/fragments/filters/Lotus_1_2_3_1_0__WIN___StarWriter_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Lotus 1-2-3 1.0 (WIN) (StarWriter)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN NOTINFILEDIALOG NOTINCHOOSER 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>LOTUSW</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Lotus 1-2-3 1.0 WIN (%productname% Writer)</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Lotus_1_2_3_10_WIN_StarWriter</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/filters/Lotus_Manuscript__W4W_.xcu b/filter/source/config/fragments/filters/Lotus_Manuscript__W4W_.xcu
new file mode 100644
index 000000000000..e2201269e6b6
--- /dev/null
+++ b/filter/source/config/fragments/filters/Lotus_Manuscript__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Lotus Manuscript (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W24_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Lotus Manuscript</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Lotus_Manuscript_W4W</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/filters/MASS_11_Rel__8_0_8_3__W4W_.xcu b/filter/source/config/fragments/filters/MASS_11_Rel__8_0_8_3__W4W_.xcu
new file mode 100644
index 000000000000..d7d490e45780
--- /dev/null
+++ b/filter/source/config/fragments/filters/MASS_11_Rel__8_0_8_3__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MASS 11 Rel. 8.0-8.3 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W31_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">MASS 11 Rel. 8.0-8.3</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MASS_11_Rel_80_83_W4W</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/filters/MASS_11_Rel__8_5_9_0__W4W_.xcu b/filter/source/config/fragments/filters/MASS_11_Rel__8_5_9_0__W4W_.xcu
new file mode 100644
index 000000000000..ba1924b3e4cc
--- /dev/null
+++ b/filter/source/config/fragments/filters/MASS_11_Rel__8_5_9_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MASS 11 Rel. 8.5-9.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W31_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">MASS 11 Rel. 8.5-9.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MASS_11_Rel_85_90_W4W</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/filters/MET___OS_2_Metafile.xcu b/filter/source/config/fragments/filters/MET___OS_2_Metafile.xcu
new file mode 100644
index 000000000000..f37c131e7837
--- /dev/null
+++ b/filter/source/config/fragments/filters/MET___OS_2_Metafile.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MET - OS/2 Metafile" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">MET - OS/2 Metafile</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>met_OS2_Metafile</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/MS_Excel_2003_XML.xcu b/filter/source/config/fragments/filters/MS_Excel_2003_XML.xcu
new file mode 100644
index 000000000000..d0d2b13e5584
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Excel_2003_XML.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="MS Excel 2003 XML" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
+ <prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Calc.XMLOasisImporter,com.sun.star.comp.Calc.XMLOasisExporter,../share/xslt/import/spreadsheetml/spreadsheetml2ooo.xsl,../share/xslt/export/spreadsheetml/ooo2spreadsheetml.xsl</value></prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>calc_MS_Excel_2003_XML</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/MS_Excel_2003_XML_ui.xcu b/filter/source/config/fragments/filters/MS_Excel_2003_XML_ui.xcu
new file mode 100644
index 000000000000..b6c743fc1b84
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Excel_2003_XML_ui.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="MS Excel 2003 XML">
+ <prop oor:name="UIName">
+ <value xml:lang="el">Microsoft Excel 2003 XML</value>
+ <value xml:lang="en-US">Microsoft Excel 2003 XML</value>
+ <value xml:lang="hu">Microsoft Excel 2003 XML</value>
+ <value xml:lang="cs">Microsoft Excel 2003 XML</value>
+ <value xml:lang="sk">Microsoft Excel 2003 XML</value>
+ <value xml:lang="sl">Microsoft Excel 2003 XML</value>
+ <value xml:lang="nl">Microsoft Excel 2003 XML</value>
+ <value xml:lang="da">Microsoft Excel 2003 XML</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/MS_Excel_4_0.xcu b/filter/source/config/fragments/filters/MS_Excel_4_0.xcu
new file mode 100644
index 000000000000..f0c5bd97fd16
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Excel_4_0.xcu
@@ -0,0 +1,13 @@
+<node oor:name="MS Excel 4.0" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN PREFERRED</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"/>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft Excel 4.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>calc_MS_Excel_40</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+</node>
diff --git a/filter/source/config/fragments/filters/MS_Excel_4_0_Vorlage_Template.xcu b/filter/source/config/fragments/filters/MS_Excel_4_0_Vorlage_Template.xcu
new file mode 100644
index 000000000000..5366f1282ece
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Excel_4_0_Vorlage_Template.xcu
@@ -0,0 +1,10 @@
+<node oor:name="MS Excel 4.0 Vorlage/Template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN TEMPLATE TEMPLATEPATH</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"/>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>calc_MS_Excel_40_VorlageTemplate</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+</node>
diff --git a/filter/source/config/fragments/filters/MS_Excel_4_0_Vorlage_Template_ui.xcu b/filter/source/config/fragments/filters/MS_Excel_4_0_Vorlage_Template_ui.xcu
new file mode 100644
index 000000000000..c68e1e33ac8a
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Excel_4_0_Vorlage_Template_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="MS Excel 4.0 Vorlage/Template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Microsoft Excel 4.0 Template</value>
+ <value xml:lang="x-translate">Microsoft Excel 4.0 Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/MS_Excel_4_0__StarWriter_.xcu b/filter/source/config/fragments/filters/MS_Excel_4_0__StarWriter_.xcu
new file mode 100644
index 000000000000..611e4a30898b
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Excel_4_0__StarWriter_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MS Excel 4.0 (StarWriter)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN NOTINFILEDIALOG NOTINCHOOSER 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>EXCEL</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft Excel 4.0 (%productname% Writer)</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>calc_MS_Excel_40</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/filters/MS_Excel_5_0_95.xcu b/filter/source/config/fragments/filters/MS_Excel_5_0_95.xcu
new file mode 100644
index 000000000000..21c8a0c2d67f
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Excel_5_0_95.xcu
@@ -0,0 +1,13 @@
+<node oor:name="MS Excel 5.0/95" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN PREFERRED</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"/>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft Excel 5.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>calc_MS_Excel_5095</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+</node>
diff --git a/filter/source/config/fragments/filters/MS_Excel_5_0_95_Vorlage_Template.xcu b/filter/source/config/fragments/filters/MS_Excel_5_0_95_Vorlage_Template.xcu
new file mode 100644
index 000000000000..1fef8ef27461
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Excel_5_0_95_Vorlage_Template.xcu
@@ -0,0 +1,10 @@
+<node oor:name="MS Excel 5.0/95 Vorlage/Template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN TEMPLATE TEMPLATEPATH</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"/>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>calc_MS_Excel_5095_VorlageTemplate</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+</node>
diff --git a/filter/source/config/fragments/filters/MS_Excel_5_0_95_Vorlage_Template_ui.xcu b/filter/source/config/fragments/filters/MS_Excel_5_0_95_Vorlage_Template_ui.xcu
new file mode 100644
index 000000000000..d50a4aa4d941
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Excel_5_0_95_Vorlage_Template_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="MS Excel 5.0/95 Vorlage/Template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Microsoft Excel 5.0 Template</value>
+ <value xml:lang="x-translate">Microsoft Excel 5.0 Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/MS_Excel_5_0__StarWriter_.xcu b/filter/source/config/fragments/filters/MS_Excel_5_0__StarWriter_.xcu
new file mode 100644
index 000000000000..e1fe503830cf
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Excel_5_0__StarWriter_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MS Excel 5.0 (StarWriter)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN NOTINFILEDIALOG NOTINCHOOSER 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>CEXCEL</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft Excel 5.0 (%productname% Writer)</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>calc_MS_Excel_5095</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/filters/MS_Excel_95.xcu b/filter/source/config/fragments/filters/MS_Excel_95.xcu
new file mode 100644
index 000000000000..1fa61477f073
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Excel_95.xcu
@@ -0,0 +1,13 @@
+<node oor:name="MS Excel 95" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN PREFERRED</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"/>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft Excel 95</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>calc_MS_Excel_95</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+</node>
diff --git a/filter/source/config/fragments/filters/MS_Excel_95_Vorlage_Template.xcu b/filter/source/config/fragments/filters/MS_Excel_95_Vorlage_Template.xcu
new file mode 100644
index 000000000000..b14d6619be0d
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Excel_95_Vorlage_Template.xcu
@@ -0,0 +1,10 @@
+<node oor:name="MS Excel 95 Vorlage/Template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN TEMPLATE TEMPLATEPATH</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"/>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>calc_MS_Excel_95_VorlageTemplate</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+</node>
diff --git a/filter/source/config/fragments/filters/MS_Excel_95_Vorlage_Template_ui.xcu b/filter/source/config/fragments/filters/MS_Excel_95_Vorlage_Template_ui.xcu
new file mode 100644
index 000000000000..eb44244a400f
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Excel_95_Vorlage_Template_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="MS Excel 95 Vorlage/Template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Microsoft Excel 95 Template</value>
+ <value xml:lang="x-translate">Microsoft Excel 95 Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/MS_Excel_95__StarWriter_.xcu b/filter/source/config/fragments/filters/MS_Excel_95__StarWriter_.xcu
new file mode 100644
index 000000000000..35c56ccb0d93
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Excel_95__StarWriter_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MS Excel 95 (StarWriter)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN NOTINFILEDIALOG NOTINCHOOSER 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>CEXCEL</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft Excel 95 (%productname% Writer)</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>calc_MS_Excel_95</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/filters/MS_Excel_97.xcu b/filter/source/config/fragments/filters/MS_Excel_97.xcu
new file mode 100644
index 000000000000..1baa4341d90d
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Excel_97.xcu
@@ -0,0 +1,13 @@
+<node oor:name="MS Excel 97" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN PREFERRED ENCRYPTION PASSWORDTOMODIFY</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"/>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft Excel 97/2000/XP</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>calc_MS_Excel_97</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+</node>
diff --git a/filter/source/config/fragments/filters/MS_Excel_97_Vorlage_Template.xcu b/filter/source/config/fragments/filters/MS_Excel_97_Vorlage_Template.xcu
new file mode 100644
index 000000000000..42c997f967f9
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Excel_97_Vorlage_Template.xcu
@@ -0,0 +1,10 @@
+<node oor:name="MS Excel 97 Vorlage/Template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN TEMPLATE TEMPLATEPATH ENCRYPTION PASSWORDTOMODIFY</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"/>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>calc_MS_Excel_97_VorlageTemplate</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+</node>
diff --git a/filter/source/config/fragments/filters/MS_Excel_97_Vorlage_Template_ui.xcu b/filter/source/config/fragments/filters/MS_Excel_97_Vorlage_Template_ui.xcu
new file mode 100644
index 000000000000..3916c4e68b59
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Excel_97_Vorlage_Template_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="MS Excel 97 Vorlage/Template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Microsoft Excel 97/2000/XP Template</value>
+ <value xml:lang="x-translate">Microsoft Excel 97/2000/XP Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/MS_MacWord_3_0__W4W_.xcu b/filter/source/config/fragments/filters/MS_MacWord_3_0__W4W_.xcu
new file mode 100644
index 000000000000..679289dd571b
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_MacWord_3_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MS MacWord 3.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W54_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft MacWord 3.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MS_MacWord_30_W4W</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/filters/MS_MacWord_4_0__W4W_.xcu b/filter/source/config/fragments/filters/MS_MacWord_4_0__W4W_.xcu
new file mode 100644
index 000000000000..ec8117695038
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_MacWord_4_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MS MacWord 4.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W54_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft MacWord 4.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MS_MacWord_40_W4W</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/filters/MS_MacWord_5_x__W4W_.xcu b/filter/source/config/fragments/filters/MS_MacWord_5_x__W4W_.xcu
new file mode 100644
index 000000000000..bcef70090790
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_MacWord_5_x__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MS MacWord 5.x (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W54_2</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft MacWord 5.x</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MS_MacWord_5x_W4W</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/filters/MS_PowerPoint_97.xcu b/filter/source/config/fragments/filters/MS_PowerPoint_97.xcu
new file mode 100644
index 000000000000..20c55429e465
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_PowerPoint_97.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MS PowerPoint 97" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>sdfilt</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft PowerPoint 97/2000/XP</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>impress_MS_PowerPoint_97</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/MS_PowerPoint_97_Vorlage.xcu b/filter/source/config/fragments/filters/MS_PowerPoint_97_Vorlage.xcu
new file mode 100644
index 000000000000..b0776fda9500
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_PowerPoint_97_Vorlage.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="MS PowerPoint 97 Vorlage" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>sdfilt</value></prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>impress_MS_PowerPoint_97_Vorlage</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/MS_PowerPoint_97_Vorlage_ui.xcu b/filter/source/config/fragments/filters/MS_PowerPoint_97_Vorlage_ui.xcu
new file mode 100644
index 000000000000..c9b728448f09
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_PowerPoint_97_Vorlage_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="MS PowerPoint 97 Vorlage">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Microsoft PowerPoint 97/2000/XP Template</value>
+ <value xml:lang="x-translate">Microsoft PowerPoint 97/2000/XP Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/MS_WinWord_1_x__W4W_.xcu b/filter/source/config/fragments/filters/MS_WinWord_1_x__W4W_.xcu
new file mode 100644
index 000000000000..65a88b830d04
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_WinWord_1_x__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MS WinWord 1.x (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W44_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft WinWord 1.x</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MS_WinWord_1x_W4W</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/filters/MS_WinWord_2_x__W4W_.xcu b/filter/source/config/fragments/filters/MS_WinWord_2_x__W4W_.xcu
new file mode 100644
index 000000000000..2f6381d80b54
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_WinWord_2_x__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MS WinWord 2.x (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W44_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft WinWord 2.x</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MS_WinWord_2x_W4W</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/filters/MS_WinWord_5.xcu b/filter/source/config/fragments/filters/MS_WinWord_5.xcu
new file mode 100644
index 000000000000..4f0c51b95fd2
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_WinWord_5.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MS WinWord 5" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>WW6</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft WinWord 5</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MS_WinWord_5</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/filters/MS_WinWord_6_0.xcu b/filter/source/config/fragments/filters/MS_WinWord_6_0.xcu
new file mode 100644
index 000000000000..6c0b17451f0a
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_WinWord_6_0.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MS WinWord 6.0" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>CWW6</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft Word 6.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MS_WinWord_60</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/filters/MS_Word_2003_XML.xcu b/filter/source/config/fragments/filters/MS_Word_2003_XML.xcu
new file mode 100644
index 000000000000..c953598dd67d
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Word_2003_XML.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="MS Word 2003 XML" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
+ <prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Writer.XMLOasisImporter,com.sun.star.comp.Writer.XMLOasisExporter,../share/xslt/import/wordml/wordml2ooo.xsl,../share/xslt/export/wordml/ooo2wordml.xsl</value></prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MS_Word_2003_XML</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/filters/MS_Word_2003_XML_ui.xcu b/filter/source/config/fragments/filters/MS_Word_2003_XML_ui.xcu
new file mode 100644
index 000000000000..1a6847dfbdb9
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Word_2003_XML_ui.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="MS Word 2003 XML">
+ <prop oor:name="UIName">
+ <value xml:lang="el">Microsoft Word 2003 XML</value>
+ <value xml:lang="en-US">Microsoft Word 2003 XML</value>
+ <value xml:lang="hu">Microsoft Word 2003 XML</value>
+ <value xml:lang="cs">Microsoft Word 2003 XML</value>
+ <value xml:lang="sk">Microsoft Word 2003 XML</value>
+ <value xml:lang="sl">Microsoft Word 2003 XML</value>
+ <value xml:lang="nl">Microsoft Word 2003 XML</value>
+ <value xml:lang="da">Microsoft Word 2003 XML</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/MS_Word_2007_XML.xcu b/filter/source/config/fragments/filters/MS_Word_2007_XML.xcu
new file mode 100644
index 000000000000..d8a37406fe93
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Word_2007_XML.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MS Word 2007 XML" 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.WriterFilter</value></prop>
+ <prop oor:name="UserData"><value>OXML</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft Word 2007 XML</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MS_Word_2007</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/filters/MS_Word_2007_XML_Template.xcu b/filter/source/config/fragments/filters/MS_Word_2007_XML_Template.xcu
new file mode 100644
index 000000000000..987e57c35f0b
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Word_2007_XML_Template.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MS Word 2007 XML Template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN 3RDPARTYFILTER TEMPLATE TEMPLATEPATH</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.WriterFilter</value></prop>
+ <prop oor:name="UserData"><value>OXML</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft Word 2007 XML Template</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MS_Word_2007_Template</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/filters/MS_Word_2007_XML_Template_ui.xcu b/filter/source/config/fragments/filters/MS_Word_2007_XML_Template_ui.xcu
new file mode 100644
index 000000000000..818ddbcf00da
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Word_2007_XML_Template_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="MS Word 2007 XML Template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Microsoft Word 2007 XML Template</value>
+ <value xml:lang="de">Microsoft Word 2007 XML Vorlage</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/MS_Word_2007_XML_ui.xcu b/filter/source/config/fragments/filters/MS_Word_2007_XML_ui.xcu
new file mode 100644
index 000000000000..a4a293561e31
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Word_2007_XML_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="MS Word 2007 XML">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Microsoft Word 2007 XML</value>
+ <value xml:lang="de">Microsoft Word 2007 XML</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/MS_Word_3_x__W4W_.xcu b/filter/source/config/fragments/filters/MS_Word_3_x__W4W_.xcu
new file mode 100644
index 000000000000..b244802b3d3f
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Word_3_x__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MS Word 3.x (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W05_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft Word 3.x</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MS_Word_3x_W4W</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/filters/MS_Word_4_x__W4W_.xcu b/filter/source/config/fragments/filters/MS_Word_4_x__W4W_.xcu
new file mode 100644
index 000000000000..89dc19b3b9d5
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Word_4_x__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MS Word 4.x (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W05_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft Word 4.x</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MS_Word_4x_W4W</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/filters/MS_Word_5_x__W4W_.xcu b/filter/source/config/fragments/filters/MS_Word_5_x__W4W_.xcu
new file mode 100644
index 000000000000..5faa71cfdea2
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Word_5_x__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MS Word 5.x (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W05_2</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft Word 5.x</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MS_Word_5x_W4W</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/filters/MS_Word_6_x__W4W_.xcu b/filter/source/config/fragments/filters/MS_Word_6_x__W4W_.xcu
new file mode 100644
index 000000000000..2e495455758d
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Word_6_x__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MS Word 6.x (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W05_3</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft Word 6.x</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MS_Word_6x_W4W</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/filters/MS_Word_95.xcu b/filter/source/config/fragments/filters/MS_Word_95.xcu
new file mode 100644
index 000000000000..40af005de713
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Word_95.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MS Word 95" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>CWW6</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft Word 95</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MS_Word_95</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/filters/MS_Word_95_Vorlage.xcu b/filter/source/config/fragments/filters/MS_Word_95_Vorlage.xcu
new file mode 100644
index 000000000000..29b93c2eb79f
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Word_95_Vorlage.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="MS Word 95 Vorlage" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE TEMPLATEPATH ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>CWW6</value></prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MS_Word_95_Vorlage</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/filters/MS_Word_95_Vorlage_ui.xcu b/filter/source/config/fragments/filters/MS_Word_95_Vorlage_ui.xcu
new file mode 100644
index 000000000000..952bb13bb494
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Word_95_Vorlage_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="MS Word 95 Vorlage">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Microsoft Word 95 Template</value>
+ <value xml:lang="x-translate">Microsoft Word 95 Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/MS_Word_97.xcu b/filter/source/config/fragments/filters/MS_Word_97.xcu
new file mode 100644
index 000000000000..c02a895b82f8
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Word_97.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MS Word 97" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN PREFERRED ENCRYPTION PASSWORDTOMODIFY</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>CWW8</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft Word 97/2000/XP</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MS_Word_97</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/filters/MS_Word_97_Vorlage.xcu b/filter/source/config/fragments/filters/MS_Word_97_Vorlage.xcu
new file mode 100644
index 000000000000..35d694a4832d
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Word_97_Vorlage.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="MS Word 97 Vorlage" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE TEMPLATEPATH ALIEN ENCRYPTION PASSWORDTOMODIFY</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>CWW8</value></prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MS_Word_97_Vorlage</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/filters/MS_Word_97_Vorlage_ui.xcu b/filter/source/config/fragments/filters/MS_Word_97_Vorlage_ui.xcu
new file mode 100644
index 000000000000..f0df07a762ea
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Word_97_Vorlage_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="MS Word 97 Vorlage">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Microsoft Word 97/2000/XP Template</value>
+ <value xml:lang="x-translate">Microsoft Word 97/2000/XP Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/MS_Works_2_0_DOS__W4W_.xcu b/filter/source/config/fragments/filters/MS_Works_2_0_DOS__W4W_.xcu
new file mode 100644
index 000000000000..da458068e747
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Works_2_0_DOS__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MS Works 2.0 DOS (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W39_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft Works 2.0 DOS</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MS_Works_20_DOS_W4W</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/filters/MS_Works_3_0_Win__W4W_.xcu b/filter/source/config/fragments/filters/MS_Works_3_0_Win__W4W_.xcu
new file mode 100644
index 000000000000..a9a9b9814dca
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Works_3_0_Win__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MS Works 3.0 Win (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W39_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft Works 3.0 Win</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MS_Works_30_Win_W4W</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/filters/MS_Works_4_0_Mac__W4W_.xcu b/filter/source/config/fragments/filters/MS_Works_4_0_Mac__W4W_.xcu
new file mode 100644
index 000000000000..8a696f7bafe6
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_Works_4_0_Mac__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MS Works 4.0 Mac (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W58_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Microsoft Works 4.0 Mac</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MS_Works_40_Mac_W4W</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/filters/Mac_Write_4_x_5_0__W4W_.xcu b/filter/source/config/fragments/filters/Mac_Write_4_x_5_0__W4W_.xcu
new file mode 100644
index 000000000000..249220b08db5
--- /dev/null
+++ b/filter/source/config/fragments/filters/Mac_Write_4_x_5_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Mac Write 4.x 5.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W51_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Mac Write 4.x 5.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Mac_Write_4x_50_W4W</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/filters/Mac_Write_II__W4W_.xcu b/filter/source/config/fragments/filters/Mac_Write_II__W4W_.xcu
new file mode 100644
index 000000000000..68f8ffb6d5f3
--- /dev/null
+++ b/filter/source/config/fragments/filters/Mac_Write_II__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Mac Write II (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W52_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Mac Write II</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Mac_Write_II_W4W</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/filters/Mac_Write_Pro__W4W_.xcu b/filter/source/config/fragments/filters/Mac_Write_Pro__W4W_.xcu
new file mode 100644
index 000000000000..9b6431e04eab
--- /dev/null
+++ b/filter/source/config/fragments/filters/Mac_Write_Pro__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Mac Write Pro (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W56_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Mac Write Pro</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Mac_Write_Pro_W4W</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/filters/MathML_XML__Math_.xcu b/filter/source/config/fragments/filters/MathML_XML__Math_.xcu
new file mode 100644
index 000000000000..7c80e41f6030
--- /dev/null
+++ b/filter/source/config/fragments/filters/MathML_XML__Math_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MathML XML (Math)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">MathML 1.01</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>6200</value></prop>
+ <prop oor:name="Type"><value>math_MathML_XML_Math</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.formula.FormulaProperties</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/MathType_3_x.xcu b/filter/source/config/fragments/filters/MathType_3_x.xcu
new file mode 100644
index 000000000000..93637ee583b2
--- /dev/null
+++ b/filter/source/config/fragments/filters/MathType_3_x.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MathType 3.x" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN NOTINFILEDIALOG NOTINCHOOSER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">MathType3.x</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>math_MathType_3x</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.formula.FormulaProperties</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/MiniCalc__Palm_.xcu b/filter/source/config/fragments/filters/MiniCalc__Palm_.xcu
new file mode 100644
index 000000000000..234d187c2b08
--- /dev/null
+++ b/filter/source/config/fragments/filters/MiniCalc__Palm_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MiniCalc (Palm)" oor:op="replace">
+ <prop oor:name="FileFormatVersion"><value>1</value></prop>
+ <prop oor:name="Type"><value>calc_MiniCalc_PalmDB_File</value></prop>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UserData"><value>com.sun.star.documentconversion.XMergeBridge classes/minicalc.jar com.sun.star.comp.Calc.XMLImporter com.sun.star.comp.Calc.XMLExporter staroffice/sxc application/x-minicalc</value></prop>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="UIName">
+ <value>MiniCalc (Palm)</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/MultiMate_3_3__W4W_.xcu b/filter/source/config/fragments/filters/MultiMate_3_3__W4W_.xcu
new file mode 100644
index 000000000000..9b98327b4af1
--- /dev/null
+++ b/filter/source/config/fragments/filters/MultiMate_3_3__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MultiMate 3.3 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W10_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">MultiMate 3.3</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MultiMate_33_W4W</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/filters/MultiMate_4__W4W_.xcu b/filter/source/config/fragments/filters/MultiMate_4__W4W_.xcu
new file mode 100644
index 000000000000..9098ed8f3305
--- /dev/null
+++ b/filter/source/config/fragments/filters/MultiMate_4__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MultiMate 4 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W10_3</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">MultiMate 4</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MultiMate_4_W4W</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/filters/MultiMate_Adv__3_6__W4W_.xcu b/filter/source/config/fragments/filters/MultiMate_Adv__3_6__W4W_.xcu
new file mode 100644
index 000000000000..4e9dc9e84ba4
--- /dev/null
+++ b/filter/source/config/fragments/filters/MultiMate_Adv__3_6__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MultiMate Adv. 3.6 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W10_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">MultiMate Adv. 3.6</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MultiMate_Adv_36_W4W</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/filters/MultiMate_Adv__II_3_7__W4W_.xcu b/filter/source/config/fragments/filters/MultiMate_Adv__II_3_7__W4W_.xcu
new file mode 100644
index 000000000000..26939248d58b
--- /dev/null
+++ b/filter/source/config/fragments/filters/MultiMate_Adv__II_3_7__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="MultiMate Adv. II 3.7 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W10_2</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">MultiMate Adv. II 3.7</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MultiMate_Adv_II_37_W4W</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/filters/NAVY_DIF__W4W_.xcu b/filter/source/config/fragments/filters/NAVY_DIF__W4W_.xcu
new file mode 100644
index 000000000000..dcc5ecc36c39
--- /dev/null
+++ b/filter/source/config/fragments/filters/NAVY_DIF__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="NAVY DIF (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W18_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">NAVY DIF</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_NAVY_DIF_W4W</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/filters/OfficeWriter_4_0__W4W_.xcu b/filter/source/config/fragments/filters/OfficeWriter_4_0__W4W_.xcu
new file mode 100644
index 000000000000..afc5b8a83586
--- /dev/null
+++ b/filter/source/config/fragments/filters/OfficeWriter_4_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="OfficeWriter 4.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W16_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">OfficeWriter 4.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_OfficeWriter_40_W4W</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/filters/OfficeWriter_5_0__W4W_.xcu b/filter/source/config/fragments/filters/OfficeWriter_5_0__W4W_.xcu
new file mode 100644
index 000000000000..299101bd5601
--- /dev/null
+++ b/filter/source/config/fragments/filters/OfficeWriter_5_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="OfficeWriter 5.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W16_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">OfficeWriter 5.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_OfficeWriter_50_W4W</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/filters/OfficeWriter_6_x__W4W_.xcu b/filter/source/config/fragments/filters/OfficeWriter_6_x__W4W_.xcu
new file mode 100644
index 000000000000..73baa867021f
--- /dev/null
+++ b/filter/source/config/fragments/filters/OfficeWriter_6_x__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="OfficeWriter 6.x (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W16_2</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">OfficeWriter 6.x</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_OfficeWriter_6x_W4W</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/filters/PBM___Portable_Bitmap.xcu b/filter/source/config/fragments/filters/PBM___Portable_Bitmap.xcu
new file mode 100644
index 000000000000..b5d30b17fd5a
--- /dev/null
+++ b/filter/source/config/fragments/filters/PBM___Portable_Bitmap.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="PBM - Portable Bitmap" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PBM - Portable Bitmap</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>pbm_Portable_Bitmap</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/PCT___Mac_Pict.xcu b/filter/source/config/fragments/filters/PCT___Mac_Pict.xcu
new file mode 100644
index 000000000000..34816883e8d5
--- /dev/null
+++ b/filter/source/config/fragments/filters/PCT___Mac_Pict.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="PCT - Mac Pict" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PCT - Mac Pict</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>pct_Mac_Pict</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/PCX___Zsoft_Paintbrush.xcu b/filter/source/config/fragments/filters/PCX___Zsoft_Paintbrush.xcu
new file mode 100644
index 000000000000..ad56e44c0314
--- /dev/null
+++ b/filter/source/config/fragments/filters/PCX___Zsoft_Paintbrush.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="PCX - Zsoft Paintbrush" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PCX - Zsoft Paintbrush</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>pcx_Zsoft_Paintbrush</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/PFS_First_Choice_1_0__W4W_.xcu b/filter/source/config/fragments/filters/PFS_First_Choice_1_0__W4W_.xcu
new file mode 100644
index 000000000000..fb20708bd933
--- /dev/null
+++ b/filter/source/config/fragments/filters/PFS_First_Choice_1_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="PFS First Choice 1.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W08_2</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PFS First Choice 1.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_PFS_First_Choice_10_W4W</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/filters/PFS_First_Choice_2_0__W4W_.xcu b/filter/source/config/fragments/filters/PFS_First_Choice_2_0__W4W_.xcu
new file mode 100644
index 000000000000..1f7002fa4bdf
--- /dev/null
+++ b/filter/source/config/fragments/filters/PFS_First_Choice_2_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="PFS First Choice 2.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W08_3</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PFS First Choice 2.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_PFS_First_Choice_20_W4W</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/filters/PFS_First_Choice_3_0__W4W_.xcu b/filter/source/config/fragments/filters/PFS_First_Choice_3_0__W4W_.xcu
new file mode 100644
index 000000000000..9c3be7e436f2
--- /dev/null
+++ b/filter/source/config/fragments/filters/PFS_First_Choice_3_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="PFS First Choice 3.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W08_5</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PFS First Choice 3.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_PFS_First_Choice_30_W4W</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/filters/PFS_Write__W4W_.xcu b/filter/source/config/fragments/filters/PFS_Write__W4W_.xcu
new file mode 100644
index 000000000000..4abd5c90dba8
--- /dev/null
+++ b/filter/source/config/fragments/filters/PFS_Write__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="PFS Write (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W08_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PFS Write</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_PFS_Write_W4W</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/filters/PGM___Portable_Graymap.xcu b/filter/source/config/fragments/filters/PGM___Portable_Graymap.xcu
new file mode 100644
index 000000000000..e79262752cf5
--- /dev/null
+++ b/filter/source/config/fragments/filters/PGM___Portable_Graymap.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="PGM - Portable Graymap" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PGM - Portable Graymap</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>pgm_Portable_Graymap</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/PNG___Portable_Network_Graphic.xcu b/filter/source/config/fragments/filters/PNG___Portable_Network_Graphic.xcu
new file mode 100644
index 000000000000..d96ce0f9fbd4
--- /dev/null
+++ b/filter/source/config/fragments/filters/PNG___Portable_Network_Graphic.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="PNG - Portable Network Graphic" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PNG - Portable Network Graphic</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>png_Portable_Network_Graphic</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/PPM___Portable_Pixelmap.xcu b/filter/source/config/fragments/filters/PPM___Portable_Pixelmap.xcu
new file mode 100644
index 000000000000..fec669f4ee5b
--- /dev/null
+++ b/filter/source/config/fragments/filters/PPM___Portable_Pixelmap.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="PPM - Portable Pixelmap" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PPM - Portable Pixelmap</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>ppm_Portable_Pixelmap</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/PSD___Adobe_Photoshop.xcu b/filter/source/config/fragments/filters/PSD___Adobe_Photoshop.xcu
new file mode 100644
index 000000000000..95683a6de6b5
--- /dev/null
+++ b/filter/source/config/fragments/filters/PSD___Adobe_Photoshop.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="PSD - Adobe Photoshop" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PSD - Adobe Photoshop</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>psd_Adobe_Photoshop</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/Peach_Text__W4W_.xcu b/filter/source/config/fragments/filters/Peach_Text__W4W_.xcu
new file mode 100644
index 000000000000..5bc2f3c60dda
--- /dev/null
+++ b/filter/source/config/fragments/filters/Peach_Text__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Peach Text (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W27_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Peach Text</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Peach_Text_W4W</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/filters/PocketWord_File.xcu b/filter/source/config/fragments/filters/PocketWord_File.xcu
new file mode 100644
index 000000000000..87d4cf74a40a
--- /dev/null
+++ b/filter/source/config/fragments/filters/PocketWord_File.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="PocketWord File" oor:op="replace">
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_PocketWord_File</value></prop>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UserData"><value>com.sun.star.documentconversion.XMergeBridge classes/pocketword.jar com.sun.star.comp.Writer.XMLImporter com.sun.star.comp.Writer.XMLExporter staroffice/sxw application/x-pocket-word</value></prop>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="UIName">
+ <value>Pocket Word</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/Pocket_Excel.xcu b/filter/source/config/fragments/filters/Pocket_Excel.xcu
new file mode 100644
index 000000000000..2fe86184a1cc
--- /dev/null
+++ b/filter/source/config/fragments/filters/Pocket_Excel.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Pocket Excel" oor:op="replace">
+ <prop oor:name="FileFormatVersion"><value>1</value></prop>
+ <prop oor:name="Type"><value>calc_Pocket_Excel_File</value></prop>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UserData"><value>com.sun.star.documentconversion.XMergeBridge classes/pexcel.jar com.sun.star.comp.Calc.XMLImporter com.sun.star.comp.Calc.XMLExporter staroffice/sxc application/x-pocket-excel</value></prop>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="UIName">
+ <value>Pocket Excel</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/Professional_Write_1_0__W4W_.xcu b/filter/source/config/fragments/filters/Professional_Write_1_0__W4W_.xcu
new file mode 100644
index 000000000000..cd52a17c2873
--- /dev/null
+++ b/filter/source/config/fragments/filters/Professional_Write_1_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Professional Write 1.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W08_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PFS Professional Write 1.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Professional_Write_10_W4W</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/filters/Professional_Write_2_x__W4W_.xcu b/filter/source/config/fragments/filters/Professional_Write_2_x__W4W_.xcu
new file mode 100644
index 000000000000..5ba7499a79e8
--- /dev/null
+++ b/filter/source/config/fragments/filters/Professional_Write_2_x__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Professional Write 2.x (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W08_4</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PFS Professional Write 2.x</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Professional_Write_2x_W4W</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/filters/Professional_Write_Plus__W4W_.xcu b/filter/source/config/fragments/filters/Professional_Write_Plus__W4W_.xcu
new file mode 100644
index 000000000000..5852f02c4083
--- /dev/null
+++ b/filter/source/config/fragments/filters/Professional_Write_Plus__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Professional Write Plus (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W33_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PFS Professional Write Plus</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Professional_Write_Plus_W4W</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/filters/QPro.xcu b/filter/source/config/fragments/filters/QPro.xcu
new file mode 100644
index 000000000000..950dcaef2758
--- /dev/null
+++ b/filter/source/config/fragments/filters/QPro.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Quattro Pro 6.0" oor:op="replace" oor:finalized="true" oor:mandatory="true">
+ <prop oor:name="Flags"><value>IMPORT ALIEN PREFERRED</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"/>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Quattro Pro 6.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>calc_QPro</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/Q_A_Write_1_0_3_0__W4W_.xcu b/filter/source/config/fragments/filters/Q_A_Write_1_0_3_0__W4W_.xcu
new file mode 100644
index 000000000000..124e03b80b4f
--- /dev/null
+++ b/filter/source/config/fragments/filters/Q_A_Write_1_0_3_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Q&amp;A Write 1.0-3.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W23_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Q&amp;A Write 1.0-3.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_QA_Write_10_30_W4W</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/filters/Q_A_Write_4_0__W4W_.xcu b/filter/source/config/fragments/filters/Q_A_Write_4_0__W4W_.xcu
new file mode 100644
index 000000000000..4ad2dd226038
--- /dev/null
+++ b/filter/source/config/fragments/filters/Q_A_Write_4_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Q&amp;A Write 4.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W23_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Q&amp;A Write 4.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_QA_Write_40_W4W</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/filters/RAS___Sun_Rasterfile.xcu b/filter/source/config/fragments/filters/RAS___Sun_Rasterfile.xcu
new file mode 100644
index 000000000000..9b66385d1f82
--- /dev/null
+++ b/filter/source/config/fragments/filters/RAS___Sun_Rasterfile.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="RAS - Sun Rasterfile" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">RAS - Sun Raster Image</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>ras_Sun_Rasterfile</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/Rapid_File_1_0__W4W_.xcu b/filter/source/config/fragments/filters/Rapid_File_1_0__W4W_.xcu
new file mode 100644
index 000000000000..ed2da0acef84
--- /dev/null
+++ b/filter/source/config/fragments/filters/Rapid_File_1_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Rapid File 1.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W25_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Rapid File 1.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Rapid_File_10_W4W</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/filters/Rapid_File_1_2__W4W_.xcu b/filter/source/config/fragments/filters/Rapid_File_1_2__W4W_.xcu
new file mode 100644
index 000000000000..86bf7a3857bf
--- /dev/null
+++ b/filter/source/config/fragments/filters/Rapid_File_1_2__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Rapid File 1.2 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W25_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Rapid File 1.2</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Rapid_File_12_W4W</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/filters/Rich_Text_Format.xcu b/filter/source/config/fragments/filters/Rich_Text_Format.xcu
new file mode 100644
index 000000000000..d8fb18c96d06
--- /dev/null
+++ b/filter/source/config/fragments/filters/Rich_Text_Format.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Rich Text Format" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER PREFERRED</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.RtfFilter</value></prop>
+ <prop oor:name="UserData"><value>RTF</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Rich Text Format</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Rich_Text_Format</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/filters/Rich_Text_Format__StarCalc_.xcu b/filter/source/config/fragments/filters/Rich_Text_Format__StarCalc_.xcu
new file mode 100644
index 000000000000..48af73df89ff
--- /dev/null
+++ b/filter/source/config/fragments/filters/Rich_Text_Format__StarCalc_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Rich Text Format (StarCalc)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Rich Text Format (%productname% Calc)</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Rich_Text_Format</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/SGF___StarOffice_Writer_SGF.xcu b/filter/source/config/fragments/filters/SGF___StarOffice_Writer_SGF.xcu
new file mode 100644
index 000000000000..41acbb993b0c
--- /dev/null
+++ b/filter/source/config/fragments/filters/SGF___StarOffice_Writer_SGF.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="SGF - StarOffice Writer SGF" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">SGF - StarWriter Graphics Format</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>sgf_StarOffice_Writer_SGF</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/SGV___StarDraw_2_0.xcu b/filter/source/config/fragments/filters/SGV___StarDraw_2_0.xcu
new file mode 100644
index 000000000000..94548119adcf
--- /dev/null
+++ b/filter/source/config/fragments/filters/SGV___StarDraw_2_0.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="SGV - StarDraw 2.0" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">SGV - StarDraw 2.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>sgv_StarDraw_20</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/SVM___StarView_Metafile.xcu b/filter/source/config/fragments/filters/SVM___StarView_Metafile.xcu
new file mode 100644
index 000000000000..bb15deff047f
--- /dev/null
+++ b/filter/source/config/fragments/filters/SVM___StarView_Metafile.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="SVM - StarView Metafile" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">SVM - StarView Metafile</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>svm_StarView_Metafile</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/SYLK.xcu b/filter/source/config/fragments/filters/SYLK.xcu
new file mode 100644
index 000000000000..e46fcbdbe3af
--- /dev/null
+++ b/filter/source/config/fragments/filters/SYLK.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="SYLK" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">SYLK</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>calc_SYLK</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/Samna_Word_IV_IV_Plus__W4W_.xcu b/filter/source/config/fragments/filters/Samna_Word_IV_IV_Plus__W4W_.xcu
new file mode 100644
index 000000000000..0c939ce76dc7
--- /dev/null
+++ b/filter/source/config/fragments/filters/Samna_Word_IV_IV_Plus__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Samna Word IV-IV Plus (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W22_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Samna Word IV-IV Plus</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Samna_Word_IV_IV_Plus_W4W</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/filters/StarCalc_1_0.xcu b/filter/source/config/fragments/filters/StarCalc_1_0.xcu
new file mode 100644
index 000000000000..ba0603cc13dc
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarCalc_1_0.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarCalc 1.0" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UserData"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarCalc 1.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>calc_StarCalc_10</value></prop>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarCalc_3_0.xcu b/filter/source/config/fragments/filters/StarCalc_3_0.xcu
new file mode 100644
index 000000000000..59d1682d5e91
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarCalc_3_0.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarCalc 3.0" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarCalc 3.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>3450</value></prop>
+ <prop oor:name="Type"><value>calc_StarCalc_30</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarCalc_3_0_Vorlage_Template.xcu b/filter/source/config/fragments/filters/StarCalc_3_0_Vorlage_Template.xcu
new file mode 100644
index 000000000000..d71f4625baa8
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarCalc_3_0_Vorlage_Template.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarCalc 3.0 Vorlage/Template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE TEMPLATEPATH OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="FileFormatVersion"><value>3450</value></prop>
+ <prop oor:name="Type"><value>calc_StarCalc_30_VorlageTemplate</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarCalc_3_0_Vorlage_Template_ui.xcu b/filter/source/config/fragments/filters/StarCalc_3_0_Vorlage_Template_ui.xcu
new file mode 100644
index 000000000000..e4ce9330a1c5
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarCalc_3_0_Vorlage_Template_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarCalc 3.0 Vorlage/Template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">StarCalc 3.0 Template</value>
+ <value xml:lang="x-translate">StarCalc 3.0 Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarCalc_4_0.xcu b/filter/source/config/fragments/filters/StarCalc_4_0.xcu
new file mode 100644
index 000000000000..8ce6a5224426
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarCalc_4_0.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarCalc 4.0" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarCalc 4.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>3580</value></prop>
+ <prop oor:name="Type"><value>calc_StarCalc_40</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarCalc_4_0_Vorlage_Template.xcu b/filter/source/config/fragments/filters/StarCalc_4_0_Vorlage_Template.xcu
new file mode 100644
index 000000000000..caa58a176d00
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarCalc_4_0_Vorlage_Template.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarCalc 4.0 Vorlage/Template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE TEMPLATEPATH OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="FileFormatVersion"><value>3580</value></prop>
+ <prop oor:name="Type"><value>calc_StarCalc_40_VorlageTemplate</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarCalc_4_0_Vorlage_Template_ui.xcu b/filter/source/config/fragments/filters/StarCalc_4_0_Vorlage_Template_ui.xcu
new file mode 100644
index 000000000000..9de89570e351
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarCalc_4_0_Vorlage_Template_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarCalc 4.0 Vorlage/Template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">StarCalc 4.0 Template</value>
+ <value xml:lang="x-translate">StarCalc 4.0 Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarCalc_5_0.xcu b/filter/source/config/fragments/filters/StarCalc_5_0.xcu
new file mode 100644
index 000000000000..4f9838bb5e95
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarCalc_5_0.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarCalc 5.0" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarCalc 5.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>5050</value></prop>
+ <prop oor:name="Type"><value>calc_StarCalc_50</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarCalc_5_0_Vorlage_Template.xcu b/filter/source/config/fragments/filters/StarCalc_5_0_Vorlage_Template.xcu
new file mode 100644
index 000000000000..ad43c3b0e1c9
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarCalc_5_0_Vorlage_Template.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarCalc 5.0 Vorlage/Template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE TEMPLATEPATH OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="FileFormatVersion"><value>5050</value></prop>
+ <prop oor:name="Type"><value>calc_StarCalc_50_VorlageTemplate</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarCalc_5_0_Vorlage_Template_ui.xcu b/filter/source/config/fragments/filters/StarCalc_5_0_Vorlage_Template_ui.xcu
new file mode 100644
index 000000000000..62b2001c0700
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarCalc_5_0_Vorlage_Template_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarCalc 5.0 Vorlage/Template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">StarCalc 5.0 Template</value>
+ <value xml:lang="x-translate">StarCalc 5.0 Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarChart_3_0.xcu b/filter/source/config/fragments/filters/StarChart_3_0.xcu
new file mode 100644
index 000000000000..fa756883f332
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarChart_3_0.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarChart 3.0" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT OWN ALIEN NOTINFILEDIALOG NOTINCHOOSER 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarChart 3.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>3450</value></prop>
+ <prop oor:name="Type"><value>chart_StarChart_30</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.chart2.ChartDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarChart_4_0.xcu b/filter/source/config/fragments/filters/StarChart_4_0.xcu
new file mode 100644
index 000000000000..ed5e69c88ade
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarChart_4_0.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarChart 4.0" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT OWN ALIEN NOTINFILEDIALOG NOTINCHOOSER 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarChart 4.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>3580</value></prop>
+ <prop oor:name="Type"><value>chart_StarChart_40</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.chart2.ChartDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarChart_5_0.xcu b/filter/source/config/fragments/filters/StarChart_5_0.xcu
new file mode 100644
index 000000000000..43326bd6e82a
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarChart_5_0.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarChart 5.0" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT OWN ALIEN NOTINFILEDIALOG NOTINCHOOSER 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarChart 5.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>5050</value></prop>
+ <prop oor:name="Type"><value>chart_StarChart_50</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.chart2.ChartDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarDraw_3_0.xcu b/filter/source/config/fragments/filters/StarDraw_3_0.xcu
new file mode 100644
index 000000000000..3f9ca691236d
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarDraw_3_0.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarDraw 3.0" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarDraw 3.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>3450</value></prop>
+ <prop oor:name="Type"><value>draw_StarDraw_30</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarDraw_3_0_Vorlage.xcu b/filter/source/config/fragments/filters/StarDraw_3_0_Vorlage.xcu
new file mode 100644
index 000000000000..ce8eda7943b0
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarDraw_3_0_Vorlage.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarDraw 3.0 Vorlage" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE TEMPLATEPATH OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="FileFormatVersion"><value>3450</value></prop>
+ <prop oor:name="Type"><value>draw_StarDraw_30_Vorlage</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarDraw_3_0_Vorlage__StarImpress_.xcu b/filter/source/config/fragments/filters/StarDraw_3_0_Vorlage__StarImpress_.xcu
new file mode 100644
index 000000000000..f44f7da0dac8
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarDraw_3_0_Vorlage__StarImpress_.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarDraw 3.0 Vorlage (StarImpress)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE TEMPLATEPATH OWN ALIEN NOTINFILEDIALOG NOTINCHOOSER 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="FileFormatVersion"><value>3450</value></prop>
+ <prop oor:name="Type"><value>draw_StarDraw_30_Vorlage</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarDraw_3_0_Vorlage__StarImpress__ui.xcu b/filter/source/config/fragments/filters/StarDraw_3_0_Vorlage__StarImpress__ui.xcu
new file mode 100644
index 000000000000..542736c1168e
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarDraw_3_0_Vorlage__StarImpress__ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarDraw 3.0 Vorlage (StarImpress)">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">StarDraw 3.0 Template (%productname% Impress)</value>
+ <value xml:lang="x-translate">StarDraw 3.0 Template (%productname% Impress)</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarDraw_3_0_Vorlage_ui.xcu b/filter/source/config/fragments/filters/StarDraw_3_0_Vorlage_ui.xcu
new file mode 100644
index 000000000000..61f15235792b
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarDraw_3_0_Vorlage_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarDraw 3.0 Vorlage">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">StarDraw 3.0 Template</value>
+ <value xml:lang="x-translate">StarDraw 3.0 Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarDraw_3_0__StarImpress_.xcu b/filter/source/config/fragments/filters/StarDraw_3_0__StarImpress_.xcu
new file mode 100644
index 000000000000..1dcce8b34680
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarDraw_3_0__StarImpress_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarDraw 3.0 (StarImpress)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarDraw 3.0 (%productname% Impress)</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>3450</value></prop>
+ <prop oor:name="Type"><value>draw_StarDraw_30</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarDraw_5_0.xcu b/filter/source/config/fragments/filters/StarDraw_5_0.xcu
new file mode 100644
index 000000000000..ef5075ef066e
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarDraw_5_0.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarDraw 5.0" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE OWN ALIEN 3RDPARTYFILTER PREFERRED</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarDraw 5.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>5050</value></prop>
+ <prop oor:name="Type"><value>draw_StarDraw_50</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarDraw_5_0_Vorlage.xcu b/filter/source/config/fragments/filters/StarDraw_5_0_Vorlage.xcu
new file mode 100644
index 000000000000..7168ce984f8f
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarDraw_5_0_Vorlage.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarDraw 5.0 Vorlage" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE TEMPLATEPATH OWN ALIEN 3RDPARTYFILTER PREFERRED</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="FileFormatVersion"><value>5050</value></prop>
+ <prop oor:name="Type"><value>draw_StarDraw_50_Vorlage</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarDraw_5_0_Vorlage__StarImpress_.xcu b/filter/source/config/fragments/filters/StarDraw_5_0_Vorlage__StarImpress_.xcu
new file mode 100644
index 000000000000..2956522f2e67
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarDraw_5_0_Vorlage__StarImpress_.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarDraw 5.0 Vorlage (StarImpress)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE TEMPLATEPATH OWN ALIEN NOTINFILEDIALOG NOTINCHOOSER 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="FileFormatVersion"><value>5050</value></prop>
+ <prop oor:name="Type"><value>draw_StarDraw_50_Vorlage</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarDraw_5_0_Vorlage__StarImpress__ui.xcu b/filter/source/config/fragments/filters/StarDraw_5_0_Vorlage__StarImpress__ui.xcu
new file mode 100644
index 000000000000..2ecf87a4c5f5
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarDraw_5_0_Vorlage__StarImpress__ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarDraw 5.0 Vorlage (StarImpress)">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">StarDraw 5.0 Template (%productname% Impress)</value>
+ <value xml:lang="x-translate">StarDraw 5.0 Template (%productname% Impress)</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarDraw_5_0_Vorlage_ui.xcu b/filter/source/config/fragments/filters/StarDraw_5_0_Vorlage_ui.xcu
new file mode 100644
index 000000000000..bd057e44dc46
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarDraw_5_0_Vorlage_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarDraw 5.0 Vorlage">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">StarDraw 5.0 Template</value>
+ <value xml:lang="x-translate">StarDraw 5.0 Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarDraw_5_0__StarImpress_.xcu b/filter/source/config/fragments/filters/StarDraw_5_0__StarImpress_.xcu
new file mode 100644
index 000000000000..67d03c77af17
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarDraw_5_0__StarImpress_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarDraw 5.0 (StarImpress)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarDraw 5.0 (%productname% Impress)</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>5050</value></prop>
+ <prop oor:name="Type"><value>draw_StarDraw_50</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarImpress_4_0.xcu b/filter/source/config/fragments/filters/StarImpress_4_0.xcu
new file mode 100644
index 000000000000..ef28390774b5
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarImpress_4_0.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarImpress 4.0" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE OWN ALIEN 3RDPARTYFILTER PREFERRED</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarImpress 4.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>3580</value></prop>
+ <prop oor:name="Type"><value>impress_StarImpress_40</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarImpress_4_0_Vorlage.xcu b/filter/source/config/fragments/filters/StarImpress_4_0_Vorlage.xcu
new file mode 100644
index 000000000000..b4d73953bd00
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarImpress_4_0_Vorlage.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarImpress 4.0 Vorlage" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE TEMPLATEPATH OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="FileFormatVersion"><value>3580</value></prop>
+ <prop oor:name="Type"><value>impress_StarImpress_40_Vorlage</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarImpress_4_0_Vorlage_ui.xcu b/filter/source/config/fragments/filters/StarImpress_4_0_Vorlage_ui.xcu
new file mode 100644
index 000000000000..2071a51476d0
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarImpress_4_0_Vorlage_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarImpress 4.0 Vorlage">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">StarImpress 4.0 Template</value>
+ <value xml:lang="x-translate">StarImpress 4.0 Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarImpress_5_0.xcu b/filter/source/config/fragments/filters/StarImpress_5_0.xcu
new file mode 100644
index 000000000000..1c1377cf3ab7
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarImpress_5_0.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarImpress 5.0" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE OWN ALIEN 3RDPARTYFILTER PREFERRED</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarImpress 5.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>5050</value></prop>
+ <prop oor:name="Type"><value>impress_StarImpress_50</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarImpress_5_0_Vorlage.xcu b/filter/source/config/fragments/filters/StarImpress_5_0_Vorlage.xcu
new file mode 100644
index 000000000000..9da35f9745e4
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarImpress_5_0_Vorlage.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarImpress 5.0 Vorlage" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE TEMPLATEPATH OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="FileFormatVersion"><value>5050</value></prop>
+ <prop oor:name="Type"><value>impress_StarImpress_50_Vorlage</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarImpress_5_0_Vorlage_ui.xcu b/filter/source/config/fragments/filters/StarImpress_5_0_Vorlage_ui.xcu
new file mode 100644
index 000000000000..e1711fec4e8d
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarImpress_5_0_Vorlage_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarImpress 5.0 Vorlage">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">StarImpress 5.0 Template</value>
+ <value xml:lang="x-translate">StarImpress 5.0 Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarImpress_5_0__packed_.xcu b/filter/source/config/fragments/filters/StarImpress_5_0__packed_.xcu
new file mode 100644
index 000000000000..e208e69b6ad1
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarImpress_5_0__packed_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarImpress 5.0 (packed)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN 3RDPARTYFILTER PACKED</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>impress_StarImpress_50_packed</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarImpress 5.0 Packed</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarImpress_5_0__packed__ui.xcu b/filter/source/config/fragments/filters/StarImpress_5_0__packed__ui.xcu
new file mode 100644
index 000000000000..2f87eb815f1b
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarImpress_5_0__packed__ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarImpress 5.0 (packed)">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">StarImpress 5.0 Packed</value>
+ <value xml:lang="x-translate">StarImpress 5.0 Packed</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarMath_2_0.xcu b/filter/source/config/fragments/filters/StarMath_2_0.xcu
new file mode 100644
index 000000000000..bc67524cc407
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarMath_2_0.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarMath 2.0" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UserData"><value>1</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarMath 2.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>math_StarMath_20</value></prop>
+ <prop oor:name="DocumentService"><value>com.sun.star.formula.FormulaProperties</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarMath_3_0.xcu b/filter/source/config/fragments/filters/StarMath_3_0.xcu
new file mode 100644
index 000000000000..916b8208e2ca
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarMath_3_0.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarMath 3.0" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>0</value></prop>
+ <prop oor:name="FileFormatVersion"><value>3450</value></prop>
+ <prop oor:name="Type"><value>math_StarMath_30</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.formula.FormulaProperties</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarMath 3.0</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarMath_4_0.xcu b/filter/source/config/fragments/filters/StarMath_4_0.xcu
new file mode 100644
index 000000000000..aad13996f029
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarMath_4_0.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarMath 4.0" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarMath 4.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>3580</value></prop>
+ <prop oor:name="Type"><value>math_StarMath_40</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.formula.FormulaProperties</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarMath_5_0.xcu b/filter/source/config/fragments/filters/StarMath_5_0.xcu
new file mode 100644
index 000000000000..6d52188d81dd
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarMath_5_0.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarMath 5.0" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarMath 5.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>5050</value></prop>
+ <prop oor:name="Type"><value>math_StarMath_50</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.formula.FormulaProperties</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarOffice_XML__Base_.xcu b/filter/source/config/fragments/filters/StarOffice_XML__Base_.xcu
new file mode 100644
index 000000000000..c9bc143ac3d8
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarOffice_XML__Base_.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarOffice XML (Base)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT OWN DEFAULT 3RDPARTYFILTER ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"/>
+ <prop oor:name="FileFormatVersion"><value>6200</value></prop>
+ <prop oor:name="Type"><value>StarBase</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sdb.OfficeDatabaseDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarOffice_XML__Base__ui.xcu b/filter/source/config/fragments/filters/StarOffice_XML__Base__ui.xcu
new file mode 100644
index 000000000000..0328738a1bee
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarOffice_XML__Base__ui.xcu
@@ -0,0 +1,5 @@
+ <node oor:name="StarOffice XML (Base)">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">ODF Database</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarOffice_XML__Calc_.xcu b/filter/source/config/fragments/filters/StarOffice_XML__Calc_.xcu
new file mode 100644
index 000000000000..36970e6aadae
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarOffice_XML__Calc_.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarOffice XML (Calc)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN ALIEN ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="FileFormatVersion"><value>6200</value></prop>
+ <prop oor:name="Type"><value>calc_StarOffice_XML_Calc</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarOffice_XML__Calc__ui.xcu b/filter/source/config/fragments/filters/StarOffice_XML__Calc__ui.xcu
new file mode 100644
index 000000000000..0f8abbabf972
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarOffice_XML__Calc__ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarOffice XML (Calc)">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">%productname% %formatversion% Spreadsheet</value>
+ <value xml:lang="x-translate">%productname% %formatversion% Spreadsheet</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarOffice_XML__Chart_.xcu b/filter/source/config/fragments/filters/StarOffice_XML__Chart_.xcu
new file mode 100644
index 000000000000..b7e05cb17860
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarOffice_XML__Chart_.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarOffice XML (Chart)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT OWN ALIEN NOTINFILEDIALOG NOTINCHOOSER ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.chart2.XMLFilter</value></prop>
+ <prop oor:name="UserData"><value>XML</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6200</value></prop>
+ <prop oor:name="Type"><value>chart_StarOffice_XML_Chart</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.chart2.ChartDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarOffice_XML__Chart__ui.xcu b/filter/source/config/fragments/filters/StarOffice_XML__Chart__ui.xcu
new file mode 100644
index 000000000000..c74974f0cea5
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarOffice_XML__Chart__ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarOffice XML (Chart)">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">%productname% %formatversion% Chart</value>
+ <value xml:lang="x-translate">%productname% %formatversion% Chart</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarOffice_XML__Draw_.xcu b/filter/source/config/fragments/filters/StarOffice_XML__Draw_.xcu
new file mode 100644
index 000000000000..089cc612d6c6
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarOffice_XML__Draw_.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarOffice XML (Draw)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN ALIEN PREFERRED ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>XML</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6200</value></prop>
+ <prop oor:name="Type"><value>draw_StarOffice_XML_Draw</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarOffice_XML__Draw__ui.xcu b/filter/source/config/fragments/filters/StarOffice_XML__Draw__ui.xcu
new file mode 100644
index 000000000000..32de3a5842a3
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarOffice_XML__Draw__ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarOffice XML (Draw)">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">%productname% %formatversion% Drawing</value>
+ <value xml:lang="x-translate">%productname% %formatversion% Drawing</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarOffice_XML__Impress_.xcu b/filter/source/config/fragments/filters/StarOffice_XML__Impress_.xcu
new file mode 100644
index 000000000000..5912555177d1
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarOffice_XML__Impress_.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarOffice XML (Impress)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN ALIEN PREFERRED ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>XML</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6200</value></prop>
+ <prop oor:name="Type"><value>impress_StarOffice_XML_Impress</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarOffice_XML__Impress__ui.xcu b/filter/source/config/fragments/filters/StarOffice_XML__Impress__ui.xcu
new file mode 100644
index 000000000000..83adfb8269dd
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarOffice_XML__Impress__ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarOffice XML (Impress)">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">%productname% %formatversion% Presentation</value>
+ <value xml:lang="x-translate">%productname% %formatversion% Presentation</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarOffice_XML__Math_.xcu b/filter/source/config/fragments/filters/StarOffice_XML__Math_.xcu
new file mode 100644
index 000000000000..282bff7448ed
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarOffice_XML__Math_.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarOffice XML (Math)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN ALIEN ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="FileFormatVersion"><value>6200</value></prop>
+ <prop oor:name="Type"><value>math_StarOffice_XML_Math</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.formula.FormulaProperties</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarOffice_XML__Math__ui.xcu b/filter/source/config/fragments/filters/StarOffice_XML__Math__ui.xcu
new file mode 100644
index 000000000000..57315a718777
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarOffice_XML__Math__ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarOffice XML (Math)">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">%productname% %formatversion% Formula</value>
+ <value xml:lang="x-translate">%productname% %formatversion% Formula</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarOffice_XML__Writer_.xcu b/filter/source/config/fragments/filters/StarOffice_XML__Writer_.xcu
new file mode 100644
index 000000000000..c86b1d3deda7
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarOffice_XML__Writer_.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarOffice XML (Writer)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN ALIEN PREFERRED ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>CXML</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6200</value></prop>
+ <prop oor:name="Type"><value>writer_StarOffice_XML_Writer</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/filters/StarOffice_XML__Writer__ui.xcu b/filter/source/config/fragments/filters/StarOffice_XML__Writer__ui.xcu
new file mode 100644
index 000000000000..20be1b1e1c04
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarOffice_XML__Writer__ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarOffice XML (Writer)">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">%productname% %formatversion% Text Document</value>
+ <value xml:lang="x-translate">%productname% %formatversion% Text Document</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarWriter_1_0.xcu b/filter/source/config/fragments/filters/StarWriter_1_0.xcu
new file mode 100644
index 000000000000..23c6715f728b
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_1_0.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarWriter 1.0" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>SWG1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarWriter 1.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_StarWriter_10</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/filters/StarWriter_2_0.xcu b/filter/source/config/fragments/filters/StarWriter_2_0.xcu
new file mode 100644
index 000000000000..2617a6f330de
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_2_0.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarWriter 2.0" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>SWG</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarWriter 2.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_StarWriter_20</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/filters/StarWriter_3_0.xcu b/filter/source/config/fragments/filters/StarWriter_3_0.xcu
new file mode 100644
index 000000000000..30d52dde4fa8
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_3_0.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarWriter 3.0" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>CSW3</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarWriter 3.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>3450</value></prop>
+ <prop oor:name="Type"><value>writer_StarWriter_30</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/filters/StarWriter_3_0_Vorlage_Template.xcu b/filter/source/config/fragments/filters/StarWriter_3_0_Vorlage_Template.xcu
new file mode 100644
index 000000000000..af6c79baaf6c
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_3_0_Vorlage_Template.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarWriter 3.0 Vorlage/Template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE TEMPLATEPATH OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>CSW3V</value></prop>
+ <prop oor:name="FileFormatVersion"><value>3450</value></prop>
+ <prop oor:name="Type"><value>writer_StarWriter_30_VorlageTemplate</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/filters/StarWriter_3_0_Vorlage_Template_ui.xcu b/filter/source/config/fragments/filters/StarWriter_3_0_Vorlage_Template_ui.xcu
new file mode 100644
index 000000000000..a888cf6518d7
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_3_0_Vorlage_Template_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarWriter 3.0 Vorlage/Template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">StarWriter 3.0 Template</value>
+ <value xml:lang="x-translate">StarWriter 3.0 Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarWriter_3_0__StarWriter_GlobalDocument_.xcu b/filter/source/config/fragments/filters/StarWriter_3_0__StarWriter_GlobalDocument_.xcu
new file mode 100644
index 000000000000..aedeb92e6a51
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_3_0__StarWriter_GlobalDocument_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarWriter 3.0 (StarWriter/GlobalDocument)" oor:op="replace">
+ <prop oor:name="Flags"><value>TEMPLATE ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>CSW3</value></prop>
+ <prop oor:name="FileFormatVersion"><value>3450</value></prop>
+ <prop oor:name="Type"><value>writer_StarWriter_30</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarWriter 3.0</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarWriter_3_0__StarWriter_Web_.xcu b/filter/source/config/fragments/filters/StarWriter_3_0__StarWriter_Web_.xcu
new file mode 100644
index 000000000000..fd33dc7a4cf0
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_3_0__StarWriter_Web_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarWriter 3.0 (StarWriter/Web)" oor:op="replace">
+ <prop oor:name="Flags"><value>TEMPLATE ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>CSW3</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarWriter 3.0 (%productname% Writer/Web)</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>3450</value></prop>
+ <prop oor:name="Type"><value>writer_StarWriter_30</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarWriter_4_0.xcu b/filter/source/config/fragments/filters/StarWriter_4_0.xcu
new file mode 100644
index 000000000000..a5ba428c58ad
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_4_0.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarWriter 4.0" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>CSW4</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarWriter 4.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>3580</value></prop>
+ <prop oor:name="Type"><value>writer_StarWriter_40</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/filters/StarWriter_4_0_GlobalDocument.xcu b/filter/source/config/fragments/filters/StarWriter_4_0_GlobalDocument.xcu
new file mode 100644
index 000000000000..9c0058b832d7
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_4_0_GlobalDocument.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarWriter 4.0/GlobalDocument" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>CSW4</value></prop>
+ <prop oor:name="FileFormatVersion"><value>3580</value></prop>
+ <prop oor:name="Type"><value>writer_globaldocument_StarWriter_40GlobalDocument</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarWriter_4_0_GlobalDocument_ui.xcu b/filter/source/config/fragments/filters/StarWriter_4_0_GlobalDocument_ui.xcu
new file mode 100644
index 000000000000..b1aafd2309bb
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_4_0_GlobalDocument_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarWriter 4.0/GlobalDocument">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">StarWriter 4.0 Master Document</value>
+ <value xml:lang="x-translate">StarWriter 4.0 Master Document</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarWriter_4_0_Vorlage_Template.xcu b/filter/source/config/fragments/filters/StarWriter_4_0_Vorlage_Template.xcu
new file mode 100644
index 000000000000..70efeb98a308
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_4_0_Vorlage_Template.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarWriter 4.0 Vorlage/Template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE TEMPLATEPATH OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>CSW4V</value></prop>
+ <prop oor:name="FileFormatVersion"><value>3580</value></prop>
+ <prop oor:name="Type"><value>writer_StarWriter_40_VorlageTemplate</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/filters/StarWriter_4_0_Vorlage_Template_ui.xcu b/filter/source/config/fragments/filters/StarWriter_4_0_Vorlage_Template_ui.xcu
new file mode 100644
index 000000000000..003c3274ca8a
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_4_0_Vorlage_Template_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarWriter 4.0 Vorlage/Template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">StarWriter 4.0 Template</value>
+ <value xml:lang="x-translate">StarWriter 4.0 Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarWriter_4_0__StarWriter_GlobalDocument_.xcu b/filter/source/config/fragments/filters/StarWriter_4_0__StarWriter_GlobalDocument_.xcu
new file mode 100644
index 000000000000..437a26106391
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_4_0__StarWriter_GlobalDocument_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarWriter 4.0 (StarWriter/GlobalDocument)" oor:op="replace">
+ <prop oor:name="Flags"><value>TEMPLATE ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>CSW4</value></prop>
+ <prop oor:name="FileFormatVersion"><value>3580</value></prop>
+ <prop oor:name="Type"><value>writer_StarWriter_40</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarWriter 4.0</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarWriter_4_0__StarWriter_Web_.xcu b/filter/source/config/fragments/filters/StarWriter_4_0__StarWriter_Web_.xcu
new file mode 100644
index 000000000000..1a44d99564d0
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_4_0__StarWriter_Web_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarWriter 4.0 (StarWriter/Web)" oor:op="replace">
+ <prop oor:name="Flags"><value>TEMPLATE ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>CSW4</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarWriter 4.0 (%productname% Writer/Web)</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>3580</value></prop>
+ <prop oor:name="Type"><value>writer_StarWriter_40</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarWriter_5_0.xcu b/filter/source/config/fragments/filters/StarWriter_5_0.xcu
new file mode 100644
index 000000000000..cdd8241af507
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_5_0.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarWriter 5.0" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE OWN ALIEN 3RDPARTYFILTER PREFERRED</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>CSW5</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarWriter 5.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>5050</value></prop>
+ <prop oor:name="Type"><value>writer_StarWriter_50</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/filters/StarWriter_5_0_GlobalDocument.xcu b/filter/source/config/fragments/filters/StarWriter_5_0_GlobalDocument.xcu
new file mode 100644
index 000000000000..1149f621b878
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_5_0_GlobalDocument.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarWriter 5.0/GlobalDocument" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>CSW5</value></prop>
+ <prop oor:name="FileFormatVersion"><value>5050</value></prop>
+ <prop oor:name="Type"><value>writer_globaldocument_StarWriter_50GlobalDocument</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarWriter_5_0_GlobalDocument_ui.xcu b/filter/source/config/fragments/filters/StarWriter_5_0_GlobalDocument_ui.xcu
new file mode 100644
index 000000000000..912abc802244
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_5_0_GlobalDocument_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarWriter 5.0/GlobalDocument">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">StarWriter 5.0 Master Document</value>
+ <value xml:lang="x-translate">StarWriter 5.0 Master Document</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarWriter_5_0_Vorlage_Template.xcu b/filter/source/config/fragments/filters/StarWriter_5_0_Vorlage_Template.xcu
new file mode 100644
index 000000000000..b249680af26b
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_5_0_Vorlage_Template.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarWriter 5.0 Vorlage/Template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE TEMPLATEPATH OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>CSW5V</value></prop>
+ <prop oor:name="FileFormatVersion"><value>5050</value></prop>
+ <prop oor:name="Type"><value>writer_StarWriter_50_VorlageTemplate</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/filters/StarWriter_5_0_Vorlage_Template_ui.xcu b/filter/source/config/fragments/filters/StarWriter_5_0_Vorlage_Template_ui.xcu
new file mode 100644
index 000000000000..caf14d0d308f
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_5_0_Vorlage_Template_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarWriter 5.0 Vorlage/Template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">StarWriter 5.0 Template</value>
+ <value xml:lang="x-translate">StarWriter 5.0 Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarWriter_5_0__StarWriter_GlobalDocument_.xcu b/filter/source/config/fragments/filters/StarWriter_5_0__StarWriter_GlobalDocument_.xcu
new file mode 100644
index 000000000000..fb99f014220e
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_5_0__StarWriter_GlobalDocument_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarWriter 5.0 (StarWriter/GlobalDocument)" oor:op="replace">
+ <prop oor:name="Flags"><value>TEMPLATE ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>CSW5</value></prop>
+ <prop oor:name="FileFormatVersion"><value>5050</value></prop>
+ <prop oor:name="Type"><value>writer_StarWriter_50</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarWriter 5.0</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarWriter_5_0__StarWriter_Web_.xcu b/filter/source/config/fragments/filters/StarWriter_5_0__StarWriter_Web_.xcu
new file mode 100644
index 000000000000..076f95990b7a
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_5_0__StarWriter_Web_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarWriter 5.0 (StarWriter/Web)" oor:op="replace">
+ <prop oor:name="Flags"><value>TEMPLATE ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>CSW5</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarWriter 5.0 (%productname% Writer/Web)</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>5050</value></prop>
+ <prop oor:name="Type"><value>writer_StarWriter_50</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarWriter_DOS.xcu b/filter/source/config/fragments/filters/StarWriter_DOS.xcu
new file mode 100644
index 000000000000..493151f6f806
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_DOS.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="StarWriter DOS" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>SW6</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">StarWriter DOS</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_StarWriter_DOS</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/filters/StarWriter_Web_4_0_Vorlage_Template.xcu b/filter/source/config/fragments/filters/StarWriter_Web_4_0_Vorlage_Template.xcu
new file mode 100644
index 000000000000..33a0a82f44eb
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_Web_4_0_Vorlage_Template.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarWriter/Web 4.0 Vorlage/Template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE TEMPLATEPATH OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>CSW4VWEB</value></prop>
+ <prop oor:name="FileFormatVersion"><value>3580</value></prop>
+ <prop oor:name="Type"><value>writer_web_StarWriterWeb_40_VorlageTemplate</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarWriter_Web_4_0_Vorlage_Template_ui.xcu b/filter/source/config/fragments/filters/StarWriter_Web_4_0_Vorlage_Template_ui.xcu
new file mode 100644
index 000000000000..3dd348296d40
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_Web_4_0_Vorlage_Template_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarWriter/Web 4.0 Vorlage/Template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">StarWriter/Web 4.0 Template</value>
+ <value xml:lang="x-translate">StarWriter/Web 4.0 Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarWriter_Web_5_0_Vorlage_Template.xcu b/filter/source/config/fragments/filters/StarWriter_Web_5_0_Vorlage_Template.xcu
new file mode 100644
index 000000000000..efdc14034980
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_Web_5_0_Vorlage_Template.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="StarWriter/Web 5.0 Vorlage/Template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT TEMPLATE TEMPLATEPATH OWN ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>CSW5VWEB</value></prop>
+ <prop oor:name="FileFormatVersion"><value>5050</value></prop>
+ <prop oor:name="Type"><value>writer_web_StarWriterWeb_50_VorlageTemplate</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/StarWriter_Web_5_0_Vorlage_Template_ui.xcu b/filter/source/config/fragments/filters/StarWriter_Web_5_0_Vorlage_Template_ui.xcu
new file mode 100644
index 000000000000..1d194cb4ac4c
--- /dev/null
+++ b/filter/source/config/fragments/filters/StarWriter_Web_5_0_Vorlage_Template_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="StarWriter/Web 5.0 Vorlage/Template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">StarWriter/Web 5.0 Template</value>
+ <value xml:lang="x-translate">StarWriter/Web 5.0 Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/T602Document.xcu b/filter/source/config/fragments/filters/T602Document.xcu
new file mode 100644
index 000000000000..544364913dff
--- /dev/null
+++ b/filter/source/config/fragments/filters/T602Document.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="T602Document" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER PREFERRED</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.T602ImportFilter</value></prop>
+ <prop oor:name="UserData"><value>602</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">T602 Document</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_T602_Document</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/filters/TGA___Truevision_TARGA.xcu b/filter/source/config/fragments/filters/TGA___Truevision_TARGA.xcu
new file mode 100644
index 000000000000..48cd2ad8731a
--- /dev/null
+++ b/filter/source/config/fragments/filters/TGA___Truevision_TARGA.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="TGA - Truevision TARGA" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">TGA - Truevision Targa</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>tga_Truevision_TARGA</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/TIF___Tag_Image_File.xcu b/filter/source/config/fragments/filters/TIF___Tag_Image_File.xcu
new file mode 100644
index 000000000000..6ed47b00d6ef
--- /dev/null
+++ b/filter/source/config/fragments/filters/TIF___Tag_Image_File.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="TIF - Tag Image File" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">TIFF - Tagged Image File Format</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>tif_Tag_Image_File</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/Text.xcu b/filter/source/config/fragments/filters/Text.xcu
new file mode 100644
index 000000000000..ac11931b75db
--- /dev/null
+++ b/filter/source/config/fragments/filters/Text.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="Text" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN PREFERRED</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>TEXT</value></prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Text</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/filters/Text__StarWriter_Web_.xcu b/filter/source/config/fragments/filters/Text__StarWriter_Web_.xcu
new file mode 100644
index 000000000000..5161a52b99a7
--- /dev/null
+++ b/filter/source/config/fragments/filters/Text__StarWriter_Web_.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="Text (StarWriter/Web)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>TEXT</value></prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Text</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/Text__StarWriter_Web__ui.xcu b/filter/source/config/fragments/filters/Text__StarWriter_Web__ui.xcu
new file mode 100644
index 000000000000..98175c30bf6f
--- /dev/null
+++ b/filter/source/config/fragments/filters/Text__StarWriter_Web__ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="Text (StarWriter/Web)">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Text (%productname% Writer/Web)</value>
+ <value xml:lang="x-translate">Text (%productname% Writer/Web)</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/Text___txt___csv__StarCalc_.xcu b/filter/source/config/fragments/filters/Text___txt___csv__StarCalc_.xcu
new file mode 100644
index 000000000000..69b4ff752f06
--- /dev/null
+++ b/filter/source/config/fragments/filters/Text___txt___csv__StarCalc_.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="Text - txt - csv (StarCalc)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN USESOPTIONS</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.comp.Calc.FilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>calc_Text_txt_csv_StarCalc</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/Text___txt___csv__StarCalc__ui.xcu b/filter/source/config/fragments/filters/Text___txt___csv__StarCalc__ui.xcu
new file mode 100644
index 000000000000..7cf434011d1f
--- /dev/null
+++ b/filter/source/config/fragments/filters/Text___txt___csv__StarCalc__ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="Text - txt - csv (StarCalc)">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Text CSV</value>
+ <value xml:lang="x-translate">Text CSV</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/Text__encoded_.xcu b/filter/source/config/fragments/filters/Text__encoded_.xcu
new file mode 100644
index 000000000000..a0b19b9b32bb
--- /dev/null
+++ b/filter/source/config/fragments/filters/Text__encoded_.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="Text (encoded)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.comp.Writer.FilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>TEXT_DLG</value></prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Text_encoded</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/filters/Text__encoded___StarWriter_GlobalDocument_.xcu b/filter/source/config/fragments/filters/Text__encoded___StarWriter_GlobalDocument_.xcu
new file mode 100644
index 000000000000..2c39de832bb6
--- /dev/null
+++ b/filter/source/config/fragments/filters/Text__encoded___StarWriter_GlobalDocument_.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="Text (encoded) (StarWriter/GlobalDocument)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.comp.Writer.FilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>TEXT_DLG</value></prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Text</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/Text__encoded___StarWriter_GlobalDocument__ui.xcu b/filter/source/config/fragments/filters/Text__encoded___StarWriter_GlobalDocument__ui.xcu
new file mode 100644
index 000000000000..9d2bd9d86e85
--- /dev/null
+++ b/filter/source/config/fragments/filters/Text__encoded___StarWriter_GlobalDocument__ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="Text (encoded) (StarWriter/GlobalDocument)">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Text Encoded (%productname% Master Document)</value>
+ <value xml:lang="x-translate">Text Encoded (%productname% Master Document)</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/Text__encoded___StarWriter_Web_.xcu b/filter/source/config/fragments/filters/Text__encoded___StarWriter_Web_.xcu
new file mode 100644
index 000000000000..f8ced3003be1
--- /dev/null
+++ b/filter/source/config/fragments/filters/Text__encoded___StarWriter_Web_.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="Text (encoded) (StarWriter/Web)" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.comp.Writer.FilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>TEXT_DLG</value></prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Text</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/Text__encoded___StarWriter_Web__ui.xcu b/filter/source/config/fragments/filters/Text__encoded___StarWriter_Web__ui.xcu
new file mode 100644
index 000000000000..83e261a77147
--- /dev/null
+++ b/filter/source/config/fragments/filters/Text__encoded___StarWriter_Web__ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="Text (encoded) (StarWriter/Web)">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Text Encoded (%productname% Writer/Web)</value>
+ <value xml:lang="x-translate">Text Encoded (%productname% Writer/Web)</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/Text__encoded__ui.xcu b/filter/source/config/fragments/filters/Text__encoded__ui.xcu
new file mode 100644
index 000000000000..0ed1b78d615c
--- /dev/null
+++ b/filter/source/config/fragments/filters/Text__encoded__ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="Text (encoded)">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Text Encoded</value>
+ <value xml:lang="x-translate">Text Encoded</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/Text_ui.xcu b/filter/source/config/fragments/filters/Text_ui.xcu
new file mode 100644
index 000000000000..f0d198f8301b
--- /dev/null
+++ b/filter/source/config/fragments/filters/Text_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="Text">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Text</value>
+ <value xml:lang="x-translate">Text</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/Total_Word__W4W_.xcu b/filter/source/config/fragments/filters/Total_Word__W4W_.xcu
new file mode 100644
index 000000000000..e50e38a6d0d7
--- /dev/null
+++ b/filter/source/config/fragments/filters/Total_Word__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Total Word (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W14_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Total Word</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Total_Word_W4W</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/filters/UOF_presentation.xcu b/filter/source/config/fragments/filters/UOF_presentation.xcu
new file mode 100644
index 000000000000..f62c623c9af5
--- /dev/null
+++ b/filter/source/config/fragments/filters/UOF_presentation.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="UOF presentation" oor:op="replace">
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>Unified_Office_Format_presentation</value></prop>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Impress.XMLOasisImporter,com.sun.star.comp.Impress.XMLOasisExporter,../share/xslt/import/uof/uof2odf_presentation.xsl,../share/xslt/export/uof/odf2uof_presentation.xsl</value></prop>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="UIName">
+ <value>Unified Office Format presentation</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/UOF_presentation_ui.xcu b/filter/source/config/fragments/filters/UOF_presentation_ui.xcu
new file mode 100644
index 000000000000..46e822cacba6
--- /dev/null
+++ b/filter/source/config/fragments/filters/UOF_presentation_ui.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="UOF presentation" oor:op="replace">
+ <prop oor:name="UIName">
+ <value xml:lang="el">Unified Office Format presentation</value>
+ <value xml:lang="en-US">Unified Office Format presentation</value>
+ <value xml:lang="hu">Unified Office Format presentation</value>
+ <value xml:lang="cs">Unified Office Format presentation</value>
+ <value xml:lang="sk">Unified Office Format presentation</value>
+ <value xml:lang="sl">Unified Office Format presentation</value>
+ <value xml:lang="nl">Unified Office Format presentation</value>
+ <value xml:lang="da">Unified Office Format presentation</value>
+ <value xml:lang="de">Unified Office Format presentation</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/UOF_spreadsheet.xcu b/filter/source/config/fragments/filters/UOF_spreadsheet.xcu
new file mode 100644
index 000000000000..549ed79ac2e0
--- /dev/null
+++ b/filter/source/config/fragments/filters/UOF_spreadsheet.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="UOF spreadsheet" oor:op="replace">
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>Unified_Office_Format_spreadsheet</value></prop>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Calc.XMLOasisImporter,com.sun.star.comp.Calc.XMLOasisExporter,../share/xslt/import/uof/uof2odf_spreadsheet.xsl,../share/xslt/export/uof/odf2uof_spreadsheet.xsl</value></prop>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="UIName">
+ <value>Unified Office Format spreadsheet</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/UOF_spreadsheet_ui.xcu b/filter/source/config/fragments/filters/UOF_spreadsheet_ui.xcu
new file mode 100644
index 000000000000..1b2a88b0d868
--- /dev/null
+++ b/filter/source/config/fragments/filters/UOF_spreadsheet_ui.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="UOF spreadsheet" oor:op="replace">
+ <prop oor:name="UIName">
+ <value xml:lang="el">Unified Office Format spreadsheet</value>
+ <value xml:lang="en-US">Unified Office Format spreadsheet</value>
+ <value xml:lang="hu">Unified Office Format spreadsheet</value>
+ <value xml:lang="cs">Unified Office Format spreadsheet</value>
+ <value xml:lang="sk">Unified Office Format spreadsheet</value>
+ <value xml:lang="sl">Unified Office Format spreadsheet</value>
+ <value xml:lang="nl">Unified Office Format spreadsheet</value>
+ <value xml:lang="da">Unified Office Format spreadsheet</value>
+ <value xml:lang="de">Unified Office Format spreadsheet</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/UOF_text.xcu b/filter/source/config/fragments/filters/UOF_text.xcu
new file mode 100644
index 000000000000..3dd6f2bb3273
--- /dev/null
+++ b/filter/source/config/fragments/filters/UOF_text.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="UOF text" oor:op="replace">
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>Unified_Office_Format_text</value></prop>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Writer.XMLOasisImporter,com.sun.star.comp.Writer.XMLOasisExporter,../share/xslt/import/uof/uof2odf_text.xsl,../share/xslt/export/uof/odf2uof_text.xsl</value></prop>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="UIName">
+ <value>Unified Office Format text</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/UOF_text_ui.xcu b/filter/source/config/fragments/filters/UOF_text_ui.xcu
new file mode 100644
index 000000000000..bf7170a68a9d
--- /dev/null
+++ b/filter/source/config/fragments/filters/UOF_text_ui.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="UOF text" oor:op="replace">
+ <prop oor:name="UIName">
+ <value xml:lang="el">Unified Office Format text</value>
+ <value xml:lang="en-US">Unified Office Format text</value>
+ <value xml:lang="hu">Unified Office Format text</value>
+ <value xml:lang="cs">Unified Office Format text</value>
+ <value xml:lang="sk">Unified Office Format text</value>
+ <value xml:lang="sl">Unified Office Format text</value>
+ <value xml:lang="nl">Unified Office Format text</value>
+ <value xml:lang="da">Unified Office Format text</value>
+ <value xml:lang="de">Unified Office Format text</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/Uniplex_V7_V8__W4W_.xcu b/filter/source/config/fragments/filters/Uniplex_V7_V8__W4W_.xcu
new file mode 100644
index 000000000000..ca42d4f81c78
--- /dev/null
+++ b/filter/source/config/fragments/filters/Uniplex_V7_V8__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Uniplex V7-V8 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W101_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Uniplex V7-V8</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Uniplex_V7_V8_W4W</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/filters/Uniplex_onGO__W4W_.xcu b/filter/source/config/fragments/filters/Uniplex_onGO__W4W_.xcu
new file mode 100644
index 000000000000..58f5c1ce4648
--- /dev/null
+++ b/filter/source/config/fragments/filters/Uniplex_onGO__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Uniplex onGO (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W37_2</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Uniplex onGO</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Uniplex_onGO_W4W</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/filters/VolksWriter_3_and_4__W4W_.xcu b/filter/source/config/fragments/filters/VolksWriter_3_and_4__W4W_.xcu
new file mode 100644
index 000000000000..61c25a47ede2
--- /dev/null
+++ b/filter/source/config/fragments/filters/VolksWriter_3_and_4__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="VolksWriter 3 and 4 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W14_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">VolksWriter 3 and 4</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_VolksWriter_3_and_4_W4W</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/filters/VolksWriter_Deluxe__W4W_.xcu b/filter/source/config/fragments/filters/VolksWriter_Deluxe__W4W_.xcu
new file mode 100644
index 000000000000..ac95b135b0ad
--- /dev/null
+++ b/filter/source/config/fragments/filters/VolksWriter_Deluxe__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="VolksWriter Deluxe (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W11_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">VolksWriter Deluxe</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_VolksWriter_Deluxe_W4W</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/filters/WITA__W4W_.xcu b/filter/source/config/fragments/filters/WITA__W4W_.xcu
new file mode 100644
index 000000000000..2f27c4041107
--- /dev/null
+++ b/filter/source/config/fragments/filters/WITA__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WITA (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W34_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WITA</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WITA_W4W</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/filters/WMF___MS_Windows_Metafile.xcu b/filter/source/config/fragments/filters/WMF___MS_Windows_Metafile.xcu
new file mode 100644
index 000000000000..2210b3afbf8c
--- /dev/null
+++ b/filter/source/config/fragments/filters/WMF___MS_Windows_Metafile.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WMF - MS Windows Metafile" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WMF - Windows Metafile</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>wmf_MS_Windows_Metafile</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/Wang_II_SWP__W4W_.xcu b/filter/source/config/fragments/filters/Wang_II_SWP__W4W_.xcu
new file mode 100644
index 000000000000..70f1d1967eae
--- /dev/null
+++ b/filter/source/config/fragments/filters/Wang_II_SWP__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Wang II SWP (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W88_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Wang II SWP</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Wang_II_SWP_W4W</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/filters/Wang_PC__W4W_.xcu b/filter/source/config/fragments/filters/Wang_PC__W4W_.xcu
new file mode 100644
index 000000000000..ae9e3682ce5f
--- /dev/null
+++ b/filter/source/config/fragments/filters/Wang_PC__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Wang PC (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W26_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Wang PC</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Wang_PC_W4W</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/filters/Wang_WP_Plus__W4W_.xcu b/filter/source/config/fragments/filters/Wang_WP_Plus__W4W_.xcu
new file mode 100644
index 000000000000..fc042b041d8b
--- /dev/null
+++ b/filter/source/config/fragments/filters/Wang_WP_Plus__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Wang WP Plus (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W89_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Wang WP Plus</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Wang_WP_Plus_W4W</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/filters/Win_Write_3_x__W4W_.xcu b/filter/source/config/fragments/filters/Win_Write_3_x__W4W_.xcu
new file mode 100644
index 000000000000..fcbeeac669f2
--- /dev/null
+++ b/filter/source/config/fragments/filters/Win_Write_3_x__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Win Write 3.x (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W43_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Win Write 3.x</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Win_Write_3x_W4W</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/filters/WiziWord_3_0__W4W_.xcu b/filter/source/config/fragments/filters/WiziWord_3_0__W4W_.xcu
new file mode 100644
index 000000000000..76ce9136fb54
--- /dev/null
+++ b/filter/source/config/fragments/filters/WiziWord_3_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WiziWord 3.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W47_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WiziWord 3.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WiziWord_30_W4W</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/filters/WordPerfect.xcu b/filter/source/config/fragments/filters/WordPerfect.xcu
new file mode 100644
index 000000000000..0683be1dc48a
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordPerfect.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordPerfect" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN USESOPTIONS 3RDPARTYFILTER PREFERRED</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.WordPerfectImportFilter</value></prop>
+ <prop oor:name="UserData"><value>WPD</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordPerfect Document</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordPerfect_Document</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/filters/WordPerfect_4_1__W4W_.xcu b/filter/source/config/fragments/filters/WordPerfect_4_1__W4W_.xcu
new file mode 100644
index 000000000000..bd84d6d44af4
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordPerfect_4_1__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordPerfect 4.1 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W06_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordPerfect 4.1</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordPerfect_41_W4W</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/filters/WordPerfect_4_2__W4W_.xcu b/filter/source/config/fragments/filters/WordPerfect_4_2__W4W_.xcu
new file mode 100644
index 000000000000..b923c2f4b221
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordPerfect_4_2__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordPerfect 4.2 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W06_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordPerfect 4.2</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordPerfect_42_W4W</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/filters/WordPerfect_5_0__W4W_.xcu b/filter/source/config/fragments/filters/WordPerfect_5_0__W4W_.xcu
new file mode 100644
index 000000000000..7c95fcfd0003
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordPerfect_5_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordPerfect 5.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W07_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordPerfect 5.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordPerfect_50_W4W</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/filters/WordPerfect_5_1__W4W_.xcu b/filter/source/config/fragments/filters/WordPerfect_5_1__W4W_.xcu
new file mode 100644
index 000000000000..2b5447c85585
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordPerfect_5_1__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordPerfect 5.1 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W07_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordPerfect 5.1</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordPerfect_51_W4W</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/filters/WordPerfect_6_0__W4W_.xcu b/filter/source/config/fragments/filters/WordPerfect_6_0__W4W_.xcu
new file mode 100644
index 000000000000..5fb7baa804d5
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordPerfect_6_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordPerfect 6.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W48_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordPerfect 6.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordPerfect_60_W4W</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/filters/WordPerfect_6_1__W4W_.xcu b/filter/source/config/fragments/filters/WordPerfect_6_1__W4W_.xcu
new file mode 100644
index 000000000000..d349e1002499
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordPerfect_6_1__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordPerfect 6.1 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W48_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordPerfect 6.1</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordPerfect_61_W4W</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/filters/WordPerfect_Mac_1__W4W_.xcu b/filter/source/config/fragments/filters/WordPerfect_Mac_1__W4W_.xcu
new file mode 100644
index 000000000000..5da63256533e
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordPerfect_Mac_1__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordPerfect Mac 1 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W59_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordPerfect Mac 1</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordPerfect_Mac_1_W4W</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/filters/WordPerfect_Mac_2__W4W_.xcu b/filter/source/config/fragments/filters/WordPerfect_Mac_2__W4W_.xcu
new file mode 100644
index 000000000000..04dc9fdb1449
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordPerfect_Mac_2__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordPerfect Mac 2 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W60_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordPerfect Mac 2</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordPerfect_Mac_2_W4W</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/filters/WordPerfect_Mac_3__W4W_.xcu b/filter/source/config/fragments/filters/WordPerfect_Mac_3__W4W_.xcu
new file mode 100644
index 000000000000..7768461689fd
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordPerfect_Mac_3__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordPerfect Mac 3 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W60_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordPerfect Mac 3</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordPerfect_Mac_3_W4W</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/filters/WordPerfect__Win__5_1_5_2__W4W_.xcu b/filter/source/config/fragments/filters/WordPerfect__Win__5_1_5_2__W4W_.xcu
new file mode 100644
index 000000000000..9d85af7225e6
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordPerfect__Win__5_1_5_2__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordPerfect (Win) 5.1-5.2 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W07_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordPerfect (Win) 5.1-5.2</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordPerfect_Win_51_52_W4W</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/filters/WordPerfect__Win__6_0__W4W_.xcu b/filter/source/config/fragments/filters/WordPerfect__Win__6_0__W4W_.xcu
new file mode 100644
index 000000000000..5c3ceaa6e508
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordPerfect__Win__6_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordPerfect (Win) 6.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W48_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordPerfect (Win) 6.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordPerfect_Win_60_W4W</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/filters/WordPerfect__Win__6_1__W4W_.xcu b/filter/source/config/fragments/filters/WordPerfect__Win__6_1__W4W_.xcu
new file mode 100644
index 000000000000..f6f837a2dff1
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordPerfect__Win__6_1__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordPerfect (Win) 6.1 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W48_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordPerfect (Win) 6.1</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordPerfect_Win_61_W4W</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/filters/WordPerfect__Win__7_0__W4W_.xcu b/filter/source/config/fragments/filters/WordPerfect__Win__7_0__W4W_.xcu
new file mode 100644
index 000000000000..5af0da68364b
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordPerfect__Win__7_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordPerfect (Win) 7.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W48_2</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordPerfect (Win) 7.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordPerfect_Win_70_W4W</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/filters/WordStar_2000_Rel__3_0__W4W_.xcu b/filter/source/config/fragments/filters/WordStar_2000_Rel__3_0__W4W_.xcu
new file mode 100644
index 000000000000..ede22402b842
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordStar_2000_Rel__3_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordStar 2000 Rel. 3.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W09_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordStar 2000 Rel. 3.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordStar_2000_Rel_30_W4W</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/filters/WordStar_2000_Rel__3_5__W4W_.xcu b/filter/source/config/fragments/filters/WordStar_2000_Rel__3_5__W4W_.xcu
new file mode 100644
index 000000000000..0d942c7bac3f
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordStar_2000_Rel__3_5__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordStar 2000 Rel. 3.5 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W09_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordStar 2000 Rel. 3.5</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordStar_2000_Rel_35_W4W</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/filters/WordStar_3_3x__W4W_.xcu b/filter/source/config/fragments/filters/WordStar_3_3x__W4W_.xcu
new file mode 100644
index 000000000000..8478b7c8dcc7
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordStar_3_3x__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordStar 3.3x (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W04_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordStar 3.3x</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordStar_33x_W4W</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/filters/WordStar_3_45__W4W_.xcu b/filter/source/config/fragments/filters/WordStar_3_45__W4W_.xcu
new file mode 100644
index 000000000000..38d7f827624e
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordStar_3_45__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordStar 3.45 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W04_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordStar 3.45</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordStar_345_W4W</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/filters/WordStar_4_0___W4W_.xcu b/filter/source/config/fragments/filters/WordStar_4_0___W4W_.xcu
new file mode 100644
index 000000000000..2c7910f7d341
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordStar_4_0___W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordStar 4.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W04_2</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordStar 4.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordStar_40_W4W</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/filters/WordStar_5_0___W4W_.xcu b/filter/source/config/fragments/filters/WordStar_5_0___W4W_.xcu
new file mode 100644
index 000000000000..94444b0a424b
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordStar_5_0___W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordStar 5.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W04_3</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordStar 5.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordStar_50_W4W</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/filters/WordStar_5_5___W4W_.xcu b/filter/source/config/fragments/filters/WordStar_5_5___W4W_.xcu
new file mode 100644
index 000000000000..e3714d13fde5
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordStar_5_5___W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordStar 5.5 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W04_4</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordStar 5.5</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordStar_55_W4W</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/filters/WordStar_6_0___W4W_.xcu b/filter/source/config/fragments/filters/WordStar_6_0___W4W_.xcu
new file mode 100644
index 000000000000..08716c85cc62
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordStar_6_0___W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordStar 6.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W04_5</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordStar 6.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordStar_60_W4W</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/filters/WordStar_7_0___W4W_.xcu b/filter/source/config/fragments/filters/WordStar_7_0___W4W_.xcu
new file mode 100644
index 000000000000..a67aefdc87a8
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordStar_7_0___W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordStar 7.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W04_6</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordStar 7.0 </value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordStar_70_W4W</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/filters/WordStar__Win__1_x_2_0__W4W_.xcu b/filter/source/config/fragments/filters/WordStar__Win__1_x_2_0__W4W_.xcu
new file mode 100644
index 000000000000..ac46209420a5
--- /dev/null
+++ b/filter/source/config/fragments/filters/WordStar__Win__1_x_2_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WordStar (Win) 1.x-2.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W37_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WordStar (Win) 1.x-2.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WordStar_Win_1x_20_W4W</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/filters/WriteNow_3_0__Macintosh___W4W_.xcu b/filter/source/config/fragments/filters/WriteNow_3_0__Macintosh___W4W_.xcu
new file mode 100644
index 000000000000..4d4a9fe623c7
--- /dev/null
+++ b/filter/source/config/fragments/filters/WriteNow_3_0__Macintosh___W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="WriteNow 3.0 (Macintosh) (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W62_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WriteNow 3.0 (Macintosh)</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_WriteNow_30_Macintosh_W4W</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/filters/Writing_Assistant__W4W_.xcu b/filter/source/config/fragments/filters/Writing_Assistant__W4W_.xcu
new file mode 100644
index 000000000000..8673c1a98a63
--- /dev/null
+++ b/filter/source/config/fragments/filters/Writing_Assistant__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="Writing Assistant (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W13_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Writing Assistant</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_Writing_Assistant_W4W</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/filters/XBM___X_Consortium.xcu b/filter/source/config/fragments/filters/XBM___X_Consortium.xcu
new file mode 100644
index 000000000000..04aa82ce974e
--- /dev/null
+++ b/filter/source/config/fragments/filters/XBM___X_Consortium.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="XBM - X-Consortium" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">XBM - X Bitmap</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>xbm_X_Consortium</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/XEROX_XIF_5_0__Illustrator___W4W_.xcu b/filter/source/config/fragments/filters/XEROX_XIF_5_0__Illustrator___W4W_.xcu
new file mode 100644
index 000000000000..ee10136d54bf
--- /dev/null
+++ b/filter/source/config/fragments/filters/XEROX_XIF_5_0__Illustrator___W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="XEROX XIF 5.0 (Illustrator) (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W103_2</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">XEROX XIF 5.0 (Illustrator)</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_XEROX_XIF_50_Illustrator_W4W</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/filters/XEROX_XIF_5_0__W4W_.xcu b/filter/source/config/fragments/filters/XEROX_XIF_5_0__W4W_.xcu
new file mode 100644
index 000000000000..4f647eff5641
--- /dev/null
+++ b/filter/source/config/fragments/filters/XEROX_XIF_5_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="XEROX XIF 5.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W103_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">XEROX XIF 5.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_XEROX_XIF_50_W4W</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/filters/XEROX_XIF_6_0__Color_Bitmap___W4W_.xcu b/filter/source/config/fragments/filters/XEROX_XIF_6_0__Color_Bitmap___W4W_.xcu
new file mode 100644
index 000000000000..cc2648a980e7
--- /dev/null
+++ b/filter/source/config/fragments/filters/XEROX_XIF_6_0__Color_Bitmap___W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="XEROX XIF 6.0 (Color Bitmap) (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W103_4</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">XEROX XIF 6.0 (Color Bitmap)</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_XEROX_XIF_60_Color_Bitmap_W4W</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/filters/XEROX_XIF_6_0__Res_Graphic___W4W_.xcu b/filter/source/config/fragments/filters/XEROX_XIF_6_0__Res_Graphic___W4W_.xcu
new file mode 100644
index 000000000000..60501f505e06
--- /dev/null
+++ b/filter/source/config/fragments/filters/XEROX_XIF_6_0__Res_Graphic___W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="XEROX XIF 6.0 (Res Graphic) (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W103_8</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">XEROX XIF 6.0 (Res Graphic)</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_XEROX_XIF_60_Res_Graphic_W4W</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/filters/XHTML_Calc_File.xcu b/filter/source/config/fragments/filters/XHTML_Calc_File.xcu
new file mode 100644
index 000000000000..60486621ec5c
--- /dev/null
+++ b/filter/source/config/fragments/filters/XHTML_Calc_File.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="XHTML Calc File" oor:op="replace">
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>XHTML_File</value></prop>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Calc.XMLOasisImporter,com.sun.star.comp.Calc.XMLOasisExporter,,../share/xslt/export/xhtml/opendoc2xhtml.xsl</value></prop>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="UIName">
+ <value>XHTML</value>
+ </prop>
+ <prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/XHTML_Draw_File.xcu b/filter/source/config/fragments/filters/XHTML_Draw_File.xcu
new file mode 100644
index 000000000000..fe7aa6e85773
--- /dev/null
+++ b/filter/source/config/fragments/filters/XHTML_Draw_File.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="XHTML Draw File" oor:op="replace">
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>XHTML_File</value></prop>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Draw.XMLOasisImporter,com.sun.star.comp.Draw.XMLOasisExporter,,../share/xslt/export/xhtml/opendoc2xhtml.xsl</value></prop>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="UIName">
+ <value>XHTML</value>
+ </prop>
+ <prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/XHTML_Impress_File.xcu b/filter/source/config/fragments/filters/XHTML_Impress_File.xcu
new file mode 100644
index 000000000000..cdec23746cd0
--- /dev/null
+++ b/filter/source/config/fragments/filters/XHTML_Impress_File.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="XHTML Impress File" oor:op="replace">
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>XHTML_File</value></prop>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Impress.XMLOasisImporter,com.sun.star.comp.Impress.XMLOasisExporter,,../share/xslt/export/xhtml/opendoc2xhtml.xsl</value></prop>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="UIName">
+ <value>XHTML</value>
+ </prop>
+ <prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/XHTML_Writer_File.xcu b/filter/source/config/fragments/filters/XHTML_Writer_File.xcu
new file mode 100644
index 000000000000..32d954ec52c6
--- /dev/null
+++ b/filter/source/config/fragments/filters/XHTML_Writer_File.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="XHTML Writer File" oor:op="replace">
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>XHTML_File</value></prop>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UserData"><value oor:separator=",">com.sun.star.documentconversion.XSLTFilter,,com.sun.star.comp.Writer.XMLOasisImporter,com.sun.star.comp.Writer.XMLOasisExporter,,../share/xslt/export/xhtml/opendoc2xhtml.xsl,,true</value></prop>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.XmlFilterAdaptor</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="UIName">
+ <value>XHTML</value>
+ </prop>
+ <prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/XPM.xcu b/filter/source/config/fragments/filters/XPM.xcu
new file mode 100644
index 000000000000..f4b54ea308ef
--- /dev/null
+++ b/filter/source/config/fragments/filters/XPM.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="XPM" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">XPM - X PixMap</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>xpm_XPM</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/XyWrite_III___W4W_.xcu b/filter/source/config/fragments/filters/XyWrite_III___W4W_.xcu
new file mode 100644
index 000000000000..6cc42a840f22
--- /dev/null
+++ b/filter/source/config/fragments/filters/XyWrite_III___W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="XyWrite III ( W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W17_0</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">XyWrite III</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_XyWrite_III_W4W</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/filters/XyWrite_III____W4W_.xcu b/filter/source/config/fragments/filters/XyWrite_III____W4W_.xcu
new file mode 100644
index 000000000000..d00ce5ef1294
--- /dev/null
+++ b/filter/source/config/fragments/filters/XyWrite_III____W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="XyWrite III+ ( W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W17_1</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">XyWrite III+</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_XyWrite_IIIP_W4W</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/filters/XyWrite_IV__W4W_.xcu b/filter/source/config/fragments/filters/XyWrite_IV__W4W_.xcu
new file mode 100644
index 000000000000..b9b12ed0f855
--- /dev/null
+++ b/filter/source/config/fragments/filters/XyWrite_IV__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="XyWrite IV (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W17_4</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">XyWrite IV</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_XyWrite_IV_W4W</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/filters/XyWrite_Sig___Win___W4W_.xcu b/filter/source/config/fragments/filters/XyWrite_Sig___Win___W4W_.xcu
new file mode 100644
index 000000000000..b9a773af5372
--- /dev/null
+++ b/filter/source/config/fragments/filters/XyWrite_Sig___Win___W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="XyWrite Sig. (Win) (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W17_3</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">XyWrite Sig. (Win)</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_XyWrite_Sig_Win_W4W</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/filters/XyWrite_Signature__W4W_.xcu b/filter/source/config/fragments/filters/XyWrite_Signature__W4W_.xcu
new file mode 100644
index 000000000000..50730f7983cb
--- /dev/null
+++ b/filter/source/config/fragments/filters/XyWrite_Signature__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="XyWrite Signature (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W17_2</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">XyWrite Signature</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_XyWrite_Signature_W4W</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/filters/XyWrite__Win__1_0__W4W_.xcu b/filter/source/config/fragments/filters/XyWrite__Win__1_0__W4W_.xcu
new file mode 100644
index 000000000000..e1154464e1e1
--- /dev/null
+++ b/filter/source/config/fragments/filters/XyWrite__Win__1_0__W4W_.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="XyWrite (Win) 1.0 (W4W)" 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.office.BF_MigrateFilter</value></prop>
+ <prop oor:name="UserData"><value>W4W17_5</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">XyWrite (Win) 1.0</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_XyWrite_Win_10_W4W</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/filters/calc8.xcu b/filter/source/config/fragments/filters/calc8.xcu
new file mode 100644
index 000000000000..1c77a96ad887
--- /dev/null
+++ b/filter/source/config/fragments/filters/calc8.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="calc8" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN DEFAULT ENCRYPTION PASSWORDTOMODIFY</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="FileFormatVersion"><value>6800</value></prop>
+ <prop oor:name="Type"><value>calc8</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/calc8_template.xcu b/filter/source/config/fragments/filters/calc8_template.xcu
new file mode 100644
index 000000000000..5b5c1d5c3d56
--- /dev/null
+++ b/filter/source/config/fragments/filters/calc8_template.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="calc8_template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ENCRYPTION PASSWORDTOMODIFY</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="FileFormatVersion"><value>6800</value></prop>
+ <prop oor:name="Type"><value>calc8_template</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/calc8_template_ui.xcu b/filter/source/config/fragments/filters/calc8_template_ui.xcu
new file mode 100644
index 000000000000..47c22a0544ff
--- /dev/null
+++ b/filter/source/config/fragments/filters/calc8_template_ui.xcu
@@ -0,0 +1,5 @@
+ <node oor:name="calc8_template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">ODF Spreadsheet Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/calc8_ui.xcu b/filter/source/config/fragments/filters/calc8_ui.xcu
new file mode 100644
index 000000000000..57daf1f9a709
--- /dev/null
+++ b/filter/source/config/fragments/filters/calc8_ui.xcu
@@ -0,0 +1,5 @@
+ <node oor:name="calc8">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">ODF Spreadsheet</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/calc_HTML_WebQuery.xcu b/filter/source/config/fragments/filters/calc_HTML_WebQuery.xcu
new file mode 100644
index 000000000000..8808adc140a1
--- /dev/null
+++ b/filter/source/config/fragments/filters/calc_HTML_WebQuery.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="calc_HTML_WebQuery" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN USEOPTIONS</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.comp.Calc.FilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_web_HTML</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/calc_HTML_WebQuery_ui.xcu b/filter/source/config/fragments/filters/calc_HTML_WebQuery_ui.xcu
new file mode 100644
index 000000000000..828a356f23d9
--- /dev/null
+++ b/filter/source/config/fragments/filters/calc_HTML_WebQuery_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="calc_HTML_WebQuery">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Web Page Query (%productname% Calc)</value>
+ <value xml:lang="x-translate">Web Page Query (%productname% Calc)</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary.xcu b/filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary.xcu
new file mode 100644
index 000000000000..2402d74084e3
--- /dev/null
+++ b/filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary.xcu
@@ -0,0 +1,10 @@
+<node oor:name="Calc MS Excel 2007 Binary" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN 3RDPARTYFILTER PREFERRED</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.oox.xls.ExcelFilter</value></prop>
+ <prop oor:name="UserData"/>
+ <prop oor:name="FileFormatVersion"/>
+ <prop oor:name="Type"><value>MS Excel 2007 Binary</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+</node>
diff --git a/filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary_ui.xcu b/filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary_ui.xcu
new file mode 100644
index 000000000000..49faa3d1a849
--- /dev/null
+++ b/filter/source/config/fragments/filters/calc_MS_Excel_2007_Binary_ui.xcu
@@ -0,0 +1,6 @@
+<node oor:name="Calc MS Excel 2007 Binary">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Microsoft Excel 2007 Binary</value>
+ <value xml:lang="de">Microsoft Excel 2007 Binär</value>
+ </prop>
+</node>
diff --git a/filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu b/filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu
new file mode 100644
index 000000000000..73c9e1be54df
--- /dev/null
+++ b/filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu
@@ -0,0 +1,10 @@
+<node oor:name="Calc MS Excel 2007 XML" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN 3RDPARTYFILTER PREFERRED</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.oox.xls.ExcelFilter</value></prop>
+ <prop oor:name="UserData"/>
+ <prop oor:name="FileFormatVersion"/>
+ <prop oor:name="Type"><value>MS Excel 2007 XML</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+</node>
diff --git a/filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template.xcu b/filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template.xcu
new file mode 100644
index 000000000000..d5a14a27d0e2
--- /dev/null
+++ b/filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template.xcu
@@ -0,0 +1,10 @@
+<node oor:name="Calc MS Excel 2007 XML Template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN 3RDPARTYFILTER TEMPLATE TEMPLATEPATH</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.oox.xls.ExcelFilter</value></prop>
+ <prop oor:name="UserData"/>
+ <prop oor:name="FileFormatVersion"/>
+ <prop oor:name="Type"><value>MS Excel 2007 XML Template</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+</node>
diff --git a/filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template_ui.xcu b/filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template_ui.xcu
new file mode 100644
index 000000000000..4d2019e55d2e
--- /dev/null
+++ b/filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_Template_ui.xcu
@@ -0,0 +1,6 @@
+<node oor:name="Calc MS Excel 2007 XML Template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Microsoft Excel 2007 XML Template</value>
+ <value xml:lang="de">Microsoft Excel 2007 XML Vorlage</value>
+ </prop>
+</node>
diff --git a/filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_ui.xcu b/filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_ui.xcu
new file mode 100644
index 000000000000..9a81fd99d0d6
--- /dev/null
+++ b/filter/source/config/fragments/filters/calc_MS_Excel_2007_XML_ui.xcu
@@ -0,0 +1,6 @@
+<node oor:name="Calc MS Excel 2007 XML">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Microsoft Excel 2007 XML</value>
+ <value xml:lang="de">Microsoft Excel 2007 XML</value>
+ </prop>
+</node>
diff --git a/filter/source/config/fragments/filters/calc_StarOffice_XML_Calc_Template.xcu b/filter/source/config/fragments/filters/calc_StarOffice_XML_Calc_Template.xcu
new file mode 100644
index 000000000000..56e132620108
--- /dev/null
+++ b/filter/source/config/fragments/filters/calc_StarOffice_XML_Calc_Template.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="calc_StarOffice_XML_Calc_Template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ALIEN ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="FileFormatVersion"><value>6200</value></prop>
+ <prop oor:name="Type"><value>calc_StarOffice_XML_Calc_Template</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/calc_StarOffice_XML_Calc_Template_ui.xcu b/filter/source/config/fragments/filters/calc_StarOffice_XML_Calc_Template_ui.xcu
new file mode 100644
index 000000000000..8d71de15869a
--- /dev/null
+++ b/filter/source/config/fragments/filters/calc_StarOffice_XML_Calc_Template_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="calc_StarOffice_XML_Calc_Template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">%productname% %formatversion% Spreadsheet Template</value>
+ <value xml:lang="x-translate">%productname% %formatversion% Spreadsheet Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/calc_pdf_Export.xcu b/filter/source/config/fragments/filters/calc_pdf_Export.xcu
new file mode 100644
index 000000000000..c00ca73bfc47
--- /dev/null
+++ b/filter/source/config/fragments/filters/calc_pdf_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="calc_pdf_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.comp.PDF.PDFDialog</value></prop>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.PDF.PDFFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PDF - Portable Document Format</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>pdf_Portable_Document_Format</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/chart8.xcu b/filter/source/config/fragments/filters/chart8.xcu
new file mode 100644
index 000000000000..c3700acfeb65
--- /dev/null
+++ b/filter/source/config/fragments/filters/chart8.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="chart8" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT OWN DEFAULT NOTINFILEDIALOG NOTINCHOOSER ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.chart2.XMLFilter</value></prop>
+ <prop oor:name="UserData"><value>XML</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6800</value></prop>
+ <prop oor:name="Type"><value>chart8</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.chart2.ChartDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/chart8_ui.xcu b/filter/source/config/fragments/filters/chart8_ui.xcu
new file mode 100644
index 000000000000..d34981fa4bc9
--- /dev/null
+++ b/filter/source/config/fragments/filters/chart8_ui.xcu
@@ -0,0 +1,5 @@
+ <node oor:name="chart8">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">ODF Chart</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/dBase.xcu b/filter/source/config/fragments/filters/dBase.xcu
new file mode 100644
index 000000000000..4e2939520c14
--- /dev/null
+++ b/filter/source/config/fragments/filters/dBase.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="dBase" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN USESOPTIONS</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.comp.Calc.FilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">dBASE</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>calc_dBase</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw8.xcu b/filter/source/config/fragments/filters/draw8.xcu
new file mode 100644
index 000000000000..6a1df34e4af3
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw8.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="draw8" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN DEFAULT PREFERRED ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>XML</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6800</value></prop>
+ <prop oor:name="Type"><value>draw8</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw8_template.xcu b/filter/source/config/fragments/filters/draw8_template.xcu
new file mode 100644
index 000000000000..3f42e65f5853
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw8_template.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="draw8_template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>CXMLV</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6800</value></prop>
+ <prop oor:name="Type"><value>draw8_template</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw8_template_ui.xcu b/filter/source/config/fragments/filters/draw8_template_ui.xcu
new file mode 100644
index 000000000000..430766aa87fe
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw8_template_ui.xcu
@@ -0,0 +1,5 @@
+ <node oor:name="draw8_template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">ODF Drawing Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw8_ui.xcu b/filter/source/config/fragments/filters/draw8_ui.xcu
new file mode 100644
index 000000000000..0852c2042470
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw8_ui.xcu
@@ -0,0 +1,5 @@
+ <node oor:name="draw8">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">ODF Drawing</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_PCD_Photo_CD_Base.xcu b/filter/source/config/fragments/filters/draw_PCD_Photo_CD_Base.xcu
new file mode 100644
index 000000000000..a0878c4d3145
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_PCD_Photo_CD_Base.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="draw_PCD_Photo_CD_Base" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PCD - Kodak Photo CD (768x512)</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>pcd_Photo_CD_Base</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_PCD_Photo_CD_Base16.xcu b/filter/source/config/fragments/filters/draw_PCD_Photo_CD_Base16.xcu
new file mode 100644
index 000000000000..24c17ca932e2
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_PCD_Photo_CD_Base16.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="draw_PCD_Photo_CD_Base16" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PCD - Kodak Photo CD (192x128)</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>pcd_Photo_CD_Base16</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_PCD_Photo_CD_Base4.xcu b/filter/source/config/fragments/filters/draw_PCD_Photo_CD_Base4.xcu
new file mode 100644
index 000000000000..699358d87b49
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_PCD_Photo_CD_Base4.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="draw_PCD_Photo_CD_Base4" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PCD - Kodak Photo CD (384x256)</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>pcd_Photo_CD_Base4</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_StarOffice_XML_Draw_Template.xcu b/filter/source/config/fragments/filters/draw_StarOffice_XML_Draw_Template.xcu
new file mode 100644
index 000000000000..55f1f96a922f
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_StarOffice_XML_Draw_Template.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="draw_StarOffice_XML_Draw_Template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ALIEN ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>CXMLV</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6200</value></prop>
+ <prop oor:name="Type"><value>draw_StarOffice_XML_Draw_Template</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_StarOffice_XML_Draw_Template_ui.xcu b/filter/source/config/fragments/filters/draw_StarOffice_XML_Draw_Template_ui.xcu
new file mode 100644
index 000000000000..8121a7bb9646
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_StarOffice_XML_Draw_Template_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="draw_StarOffice_XML_Draw_Template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">%productname% %formatversion% Drawing Template</value>
+ <value xml:lang="x-translate">%productname% %formatversion% Drawing Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_bmp_Export.xcu b/filter/source/config/fragments/filters/draw_bmp_Export.xcu
new file mode 100644
index 000000000000..fbfddfc06a0b
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_bmp_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="draw_bmp_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">BMP - Windows Bitmap</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>bmp_MS_Windows</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_emf_Export.xcu b/filter/source/config/fragments/filters/draw_emf_Export.xcu
new file mode 100644
index 000000000000..c6f9d933f3f2
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_emf_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="draw_emf_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">EMF - Enhanced Metafile</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>emf_MS_Windows_Metafile</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_eps_Export.xcu b/filter/source/config/fragments/filters/draw_eps_Export.xcu
new file mode 100644
index 000000000000..9cc1eb92678e
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_eps_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="draw_eps_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">EPS - Encapsulated PostScript</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>eps_Encapsulated_PostScript</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_flash_Export.xcu b/filter/source/config/fragments/filters/draw_flash_Export.xcu
new file mode 100644
index 000000000000..222138869266
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_flash_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="draw_flash_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Impress.FlashExportFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Macromedia Flash (SWF)</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>graphic_SWF</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_gif_Export.xcu b/filter/source/config/fragments/filters/draw_gif_Export.xcu
new file mode 100644
index 000000000000..017a277030f6
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_gif_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="draw_gif_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">GIF - Graphics Interchange Format</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>gif_Graphics_Interchange</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_html_Export.xcu b/filter/source/config/fragments/filters/draw_html_Export.xcu
new file mode 100644
index 000000000000..04ddadb4b38e
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_html_Export.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="draw_html_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.comp.draw.SdHtmlOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>graphic_HTML</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_html_Export_ui.xcu b/filter/source/config/fragments/filters/draw_html_Export_ui.xcu
new file mode 100644
index 000000000000..8c35eb96a157
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_html_Export_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="draw_html_Export">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">HTML Document (%productname% Draw)</value>
+ <value xml:lang="x-translate">HTML Document (%productname% Draw)</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_jpg_Export.xcu b/filter/source/config/fragments/filters/draw_jpg_Export.xcu
new file mode 100644
index 000000000000..efa6798cf824
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_jpg_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="draw_jpg_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">JPEG - Joint Photographic Experts Group</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>jpg_JPEG</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_met_Export.xcu b/filter/source/config/fragments/filters/draw_met_Export.xcu
new file mode 100644
index 000000000000..e4b47ec8a5da
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_met_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="draw_met_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">MET - OS/2 Metafile</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>met_OS2_Metafile</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_pbm_Export.xcu b/filter/source/config/fragments/filters/draw_pbm_Export.xcu
new file mode 100644
index 000000000000..ff4a84d38548
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_pbm_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="draw_pbm_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PBM - Portable Bitmap</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>pbm_Portable_Bitmap</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_pct_Export.xcu b/filter/source/config/fragments/filters/draw_pct_Export.xcu
new file mode 100644
index 000000000000..2b9069694d5a
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_pct_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="draw_pct_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PCT - Mac Pict</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>pct_Mac_Pict</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_pdf_Export.xcu b/filter/source/config/fragments/filters/draw_pdf_Export.xcu
new file mode 100644
index 000000000000..23a76e6812ea
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_pdf_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="draw_pdf_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.comp.PDF.PDFDialog</value></prop>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.PDF.PDFFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PDF - Portable Document Format</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>pdf_Portable_Document_Format</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_pgm_Export.xcu b/filter/source/config/fragments/filters/draw_pgm_Export.xcu
new file mode 100644
index 000000000000..fc187599c326
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_pgm_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="draw_pgm_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PGM - Portable Graymap</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>pgm_Portable_Graymap</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_png_Export.xcu b/filter/source/config/fragments/filters/draw_png_Export.xcu
new file mode 100644
index 000000000000..08c0b2ac5a26
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_png_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="draw_png_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PNG - Portable Network Graphic</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>png_Portable_Network_Graphic</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_ppm_Export.xcu b/filter/source/config/fragments/filters/draw_ppm_Export.xcu
new file mode 100644
index 000000000000..9631ffcee666
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_ppm_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="draw_ppm_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PPM - Portable Pixelmap</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>ppm_Portable_Pixelmap</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_ras_Export.xcu b/filter/source/config/fragments/filters/draw_ras_Export.xcu
new file mode 100644
index 000000000000..4cdd9e0b9989
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_ras_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="draw_ras_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">RAS - Sun Raster Image</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>ras_Sun_Rasterfile</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_svg_Export.xcu b/filter/source/config/fragments/filters/draw_svg_Export.xcu
new file mode 100644
index 000000000000..6e273c555060
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_svg_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="draw_svg_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Draw.SVGFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">SVG - Scalable Vector Graphics</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>svg_Scalable_Vector_Graphics</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_svm_Export.xcu b/filter/source/config/fragments/filters/draw_svm_Export.xcu
new file mode 100644
index 000000000000..29f52d67d3ae
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_svm_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="draw_svm_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">SVM - StarView Metafile</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>svm_StarView_Metafile</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_tif_Export.xcu b/filter/source/config/fragments/filters/draw_tif_Export.xcu
new file mode 100644
index 000000000000..0b03360bf75d
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_tif_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="draw_tif_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">TIFF - Tagged Image File Format</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>tif_Tag_Image_File</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_wmf_Export.xcu b/filter/source/config/fragments/filters/draw_wmf_Export.xcu
new file mode 100644
index 000000000000..667b15259e92
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_wmf_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="draw_wmf_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WMF - Windows Metafile</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>wmf_MS_Windows_Metafile</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/draw_xpm_Export.xcu b/filter/source/config/fragments/filters/draw_xpm_Export.xcu
new file mode 100644
index 000000000000..18b221c6ccbf
--- /dev/null
+++ b/filter/source/config/fragments/filters/draw_xpm_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="draw_xpm_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">XPM - X PixMap</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>xpm_XPM</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.drawing.DrawingDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress8.xcu b/filter/source/config/fragments/filters/impress8.xcu
new file mode 100644
index 000000000000..099bce62d3c5
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress8.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="impress8" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN DEFAULT PREFERRED ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>XML</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6800</value></prop>
+ <prop oor:name="Type"><value>impress8</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress8_draw.xcu b/filter/source/config/fragments/filters/impress8_draw.xcu
new file mode 100644
index 000000000000..5781c2a3e709
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress8_draw.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="impress8_draw" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>XML</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6800</value></prop>
+ <prop oor:name="Type"><value>draw8</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress8_draw_ui.xcu b/filter/source/config/fragments/filters/impress8_draw_ui.xcu
new file mode 100644
index 000000000000..2ba1fcbd2a7f
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress8_draw_ui.xcu
@@ -0,0 +1,5 @@
+ <node oor:name="impress8_draw">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">ODF Drawing (Impress)</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress8_template.xcu b/filter/source/config/fragments/filters/impress8_template.xcu
new file mode 100644
index 000000000000..891f8f86b0c4
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress8_template.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="impress8_template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>CXMLV</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6800</value></prop>
+ <prop oor:name="Type"><value>impress8_template</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress8_template_ui.xcu b/filter/source/config/fragments/filters/impress8_template_ui.xcu
new file mode 100644
index 000000000000..d8b3d4d68fc3
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress8_template_ui.xcu
@@ -0,0 +1,5 @@
+ <node oor:name="impress8_template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">ODF Presentation Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress8_ui.xcu b/filter/source/config/fragments/filters/impress8_ui.xcu
new file mode 100644
index 000000000000..3ac78f8d88b2
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress8_ui.xcu
@@ -0,0 +1,5 @@
+ <node oor:name="impress8">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">ODF Presentation</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML.xcu b/filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML.xcu
new file mode 100644
index 000000000000..254ba468b6eb
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML.xcu
@@ -0,0 +1,10 @@
+<node oor:name="Impress MS PowerPoint 2007 XML" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN 3RDPARTYFILTER PREFERRED</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.oox.ppt.PowerPointImport</value></prop>
+ <prop oor:name="UserData"/>
+ <prop oor:name="FileFormatVersion"/>
+ <prop oor:name="Type"><value>MS PowerPoint 2007 XML</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+</node>
diff --git a/filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_Template.xcu b/filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_Template.xcu
new file mode 100644
index 000000000000..01fd72086d6b
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_Template.xcu
@@ -0,0 +1,10 @@
+<node oor:name="Impress MS PowerPoint 2007 XML Template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN 3RDPARTYFILTER TEMPLATE TEMPLATEPATH PREFERRED</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.oox.ppt.PowerPointImport</value></prop>
+ <prop oor:name="UserData"/>
+ <prop oor:name="FileFormatVersion"/>
+ <prop oor:name="Type"><value>MS PowerPoint 2007 XML Template</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+</node>
diff --git a/filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_Template_ui.xcu b/filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_Template_ui.xcu
new file mode 100644
index 000000000000..24f2d3889b59
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_Template_ui.xcu
@@ -0,0 +1,6 @@
+<node oor:name="Impress MS PowerPoint 2007 XML Template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Microsoft PowerPoint 2007 XML Template</value>
+ <value xml:lang="de">Microsoft PowerPoint 2007 XML Vorlage</value>
+ </prop>
+</node>
diff --git a/filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_ui.xcu b/filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_ui.xcu
new file mode 100644
index 000000000000..1a6b220a0681
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_ui.xcu
@@ -0,0 +1,6 @@
+<node oor:name="Impress MS PowerPoint 2007 XML">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Microsoft PowerPoint 2007 XML</value>
+ <value xml:lang="de">Microsoft PowerPoint 2007 XML</value>
+ </prop>
+</node>
diff --git a/filter/source/config/fragments/filters/impress_StarOffice_XML_Draw.xcu b/filter/source/config/fragments/filters/impress_StarOffice_XML_Draw.xcu
new file mode 100644
index 000000000000..225843c661b7
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_StarOffice_XML_Draw.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="impress_StarOffice_XML_Draw" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN ALIEN ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>XML</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6200</value></prop>
+ <prop oor:name="Type"><value>draw_StarOffice_XML_Draw</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_StarOffice_XML_Draw_ui.xcu b/filter/source/config/fragments/filters/impress_StarOffice_XML_Draw_ui.xcu
new file mode 100644
index 000000000000..a0df30be38be
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_StarOffice_XML_Draw_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="impress_StarOffice_XML_Draw">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">%productname% %formatversion% Drawing (%productname% Impress)</value>
+ <value xml:lang="x-translate">%productname% %formatversion% Drawing (%productname% Impress)</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_StarOffice_XML_Impress_Template.xcu b/filter/source/config/fragments/filters/impress_StarOffice_XML_Impress_Template.xcu
new file mode 100644
index 000000000000..472dcf16130a
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_StarOffice_XML_Impress_Template.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="impress_StarOffice_XML_Impress_Template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ALIEN ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>CXMLV</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6200</value></prop>
+ <prop oor:name="Type"><value>impress_StarOffice_XML_Impress_Template</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_StarOffice_XML_Impress_Template_ui.xcu b/filter/source/config/fragments/filters/impress_StarOffice_XML_Impress_Template_ui.xcu
new file mode 100644
index 000000000000..24392c0d66dc
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_StarOffice_XML_Impress_Template_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="impress_StarOffice_XML_Impress_Template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">%productname% %formatversion% Presentation Template</value>
+ <value xml:lang="x-translate">%productname% %formatversion% Presentation Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_bmp_Export.xcu b/filter/source/config/fragments/filters/impress_bmp_Export.xcu
new file mode 100644
index 000000000000..74c632cfd910
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_bmp_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="impress_bmp_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">BMP - Windows Bitmap</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>bmp_MS_Windows</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_emf_Export.xcu b/filter/source/config/fragments/filters/impress_emf_Export.xcu
new file mode 100644
index 000000000000..02b575420aba
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_emf_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="impress_emf_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">EMF - Enhanced Metafile</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>emf_MS_Windows_Metafile</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_eps_Export.xcu b/filter/source/config/fragments/filters/impress_eps_Export.xcu
new file mode 100644
index 000000000000..a1c7f3694a6f
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_eps_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="impress_eps_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">EPS - Encapsulated PostScript</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>eps_Encapsulated_PostScript</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_flash_Export.xcu b/filter/source/config/fragments/filters/impress_flash_Export.xcu
new file mode 100644
index 000000000000..51fa2e39e765
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_flash_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="impress_flash_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Impress.FlashExportFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Macromedia Flash (SWF)</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>graphic_SWF</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_gif_Export.xcu b/filter/source/config/fragments/filters/impress_gif_Export.xcu
new file mode 100644
index 000000000000..3d65c2d165b4
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_gif_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="impress_gif_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">GIF - Graphics Interchange Format</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>gif_Graphics_Interchange</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_html_Export.xcu b/filter/source/config/fragments/filters/impress_html_Export.xcu
new file mode 100644
index 000000000000..60de237501b8
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_html_Export.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="impress_html_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.comp.draw.SdHtmlOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>graphic_HTML</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_html_Export_ui.xcu b/filter/source/config/fragments/filters/impress_html_Export_ui.xcu
new file mode 100644
index 000000000000..d7392eb427f6
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_html_Export_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="impress_html_Export">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">HTML Document (%productname% Impress)</value>
+ <value xml:lang="x-translate">HTML Document (%productname% Impress)</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_jpg_Export.xcu b/filter/source/config/fragments/filters/impress_jpg_Export.xcu
new file mode 100644
index 000000000000..3fca1776b2a9
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_jpg_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="impress_jpg_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">JPEG - Joint Photographic Experts Group</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>jpg_JPEG</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_met_Export.xcu b/filter/source/config/fragments/filters/impress_met_Export.xcu
new file mode 100644
index 000000000000..d144158465b7
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_met_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="impress_met_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">MET - OS/2 Metafile</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>met_OS2_Metafile</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_pbm_Export.xcu b/filter/source/config/fragments/filters/impress_pbm_Export.xcu
new file mode 100644
index 000000000000..bf6dd89de38e
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_pbm_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="impress_pbm_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PBM - Portable Bitmap</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>pbm_Portable_Bitmap</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_pct_Export.xcu b/filter/source/config/fragments/filters/impress_pct_Export.xcu
new file mode 100644
index 000000000000..46f44610437e
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_pct_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="impress_pct_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PCT - Mac Pict</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>pct_Mac_Pict</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_pdf_Export.xcu b/filter/source/config/fragments/filters/impress_pdf_Export.xcu
new file mode 100644
index 000000000000..deadf1d35291
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_pdf_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="impress_pdf_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.comp.PDF.PDFDialog</value></prop>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.PDF.PDFFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PDF - Portable Document Format</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>pdf_Portable_Document_Format</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_pgm_Export.xcu b/filter/source/config/fragments/filters/impress_pgm_Export.xcu
new file mode 100644
index 000000000000..e14eda40af44
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_pgm_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="impress_pgm_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PGM - Portable Graymap</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>pgm_Portable_Graymap</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_png_Export.xcu b/filter/source/config/fragments/filters/impress_png_Export.xcu
new file mode 100644
index 000000000000..e836c6fb0ede
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_png_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="impress_png_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PNG - Portable Network Graphic</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>png_Portable_Network_Graphic</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_ppm_Export.xcu b/filter/source/config/fragments/filters/impress_ppm_Export.xcu
new file mode 100644
index 000000000000..27c970e32f54
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_ppm_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="impress_ppm_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PPM - Portable Pixelmap</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>ppm_Portable_Pixelmap</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_ras_Export.xcu b/filter/source/config/fragments/filters/impress_ras_Export.xcu
new file mode 100644
index 000000000000..c3327e8d1b5a
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_ras_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="impress_ras_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">RAS - Sun Raster Image</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>ras_Sun_Rasterfile</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_svg_Export.xcu b/filter/source/config/fragments/filters/impress_svg_Export.xcu
new file mode 100644
index 000000000000..44efb45bcea4
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_svg_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="impress_svg_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Draw.SVGFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">SVG - Scalable Vector Graphics</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>svg_Scalable_Vector_Graphics</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_svm_Export.xcu b/filter/source/config/fragments/filters/impress_svm_Export.xcu
new file mode 100644
index 000000000000..6bfcd9711ca8
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_svm_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="impress_svm_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">SVM - StarView Metafile</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>svm_StarView_Metafile</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_tif_Export.xcu b/filter/source/config/fragments/filters/impress_tif_Export.xcu
new file mode 100644
index 000000000000..f4b76ab8f193
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_tif_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="impress_tif_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">TIFF - Tagged Image File Format</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>tif_Tag_Image_File</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_wmf_Export.xcu b/filter/source/config/fragments/filters/impress_wmf_Export.xcu
new file mode 100644
index 000000000000..18864e015375
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_wmf_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="impress_wmf_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">WMF - Windows Metafile</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>wmf_MS_Windows_Metafile</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/impress_xpm_Export.xcu b/filter/source/config/fragments/filters/impress_xpm_Export.xcu
new file mode 100644
index 000000000000..0a83d3e853f1
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_xpm_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="impress_xpm_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN SUPPORTSSELECTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">XPM - X PixMap</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>xpm_XPM</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/makefile.mk b/filter/source/config/fragments/filters/makefile.mk
new file mode 100644
index 000000000000..2c557906df29
--- /dev/null
+++ b/filter/source/config/fragments/filters/makefile.mk
@@ -0,0 +1,57 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ = ..$/..$/..$/..
+TARGET = FCFGPkgFilters
+PRJNAME = filter
+
+# -----------------------------------------------------------------------------
+# include global settings
+# -----------------------------------------------------------------------------
+
+.INCLUDE: settings.mk
+
+# -----------------------------------------------------------------------------
+# include all package definition files
+# -----------------------------------------------------------------------------
+
+.INCLUDE: ..$/packagedef.mk
+
+.INCLUDE: target.mk
+
+ALLTAR: $(ALL_UI_FILTERS)
+
+.IF "$(WITH_LANG)"!=""
+$(DIR_LOCFRAG)$/filters$/%.xcu : %.xcu
+ -$(MKDIRHIER) $(@:d)
+ $(WRAPCMD) $(CFGEX) -p $(PRJNAME) -i $(@:f) -o $@ -m $(LOCALIZESDF) -l all
+
+.IF "$(ALL_UI_FILTERS)"!=""
+$(ALL_UI_FILTERS) : $(LOCALIZESDF)
+.ENDIF # "$(ALL_UI_FILTERS)"!=""
+
+.ENDIF # "$(WITH_LANG)"!=""
diff --git a/filter/source/config/fragments/filters/math8.xcu b/filter/source/config/fragments/filters/math8.xcu
new file mode 100644
index 000000000000..94c86a96cf83
--- /dev/null
+++ b/filter/source/config/fragments/filters/math8.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="math8" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN DEFAULT ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="FileFormatVersion"><value>6800</value></prop>
+ <prop oor:name="Type"><value>math8</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.formula.FormulaProperties</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/math8_ui.xcu b/filter/source/config/fragments/filters/math8_ui.xcu
new file mode 100644
index 000000000000..c892495fca90
--- /dev/null
+++ b/filter/source/config/fragments/filters/math8_ui.xcu
@@ -0,0 +1,5 @@
+ <node oor:name="math8">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">ODF Formula</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/math_pdf_Export.xcu b/filter/source/config/fragments/filters/math_pdf_Export.xcu
new file mode 100644
index 000000000000..844714fbc5ec
--- /dev/null
+++ b/filter/source/config/fragments/filters/math_pdf_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="math_pdf_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.comp.PDF.PDFDialog</value></prop>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.PDF.PDFFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PDF - Portable Document Format</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>pdf_Portable_Document_Format</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.formula.FormulaProperties</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/placeware_Export.xcu b/filter/source/config/fragments/filters/placeware_Export.xcu
new file mode 100644
index 000000000000..a9c9a655acbb
--- /dev/null
+++ b/filter/source/config/fragments/filters/placeware_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="placeware_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.Impress.PlaceWareExportFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PWP - PlaceWare</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>pwp_PlaceWare</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writer8.xcu b/filter/source/config/fragments/filters/writer8.xcu
new file mode 100644
index 000000000000..bcfd55640e79
--- /dev/null
+++ b/filter/source/config/fragments/filters/writer8.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="writer8" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN DEFAULT PREFERRED ENCRYPTION PASSWORDTOMODIFY</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>CXML</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6800</value></prop>
+ <prop oor:name="Type"><value>writer8</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/filters/writer8_template.xcu b/filter/source/config/fragments/filters/writer8_template.xcu
new file mode 100644
index 000000000000..34ee8055113c
--- /dev/null
+++ b/filter/source/config/fragments/filters/writer8_template.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="writer8_template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ENCRYPTION PASSWORDTOMODIFY</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>CXMLV</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6800</value></prop>
+ <prop oor:name="Type"><value>writer8_template</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/filters/writer8_template_ui.xcu b/filter/source/config/fragments/filters/writer8_template_ui.xcu
new file mode 100644
index 000000000000..05a5a32ac134
--- /dev/null
+++ b/filter/source/config/fragments/filters/writer8_template_ui.xcu
@@ -0,0 +1,5 @@
+ <node oor:name="writer8_template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">ODF Text Document Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writer8_ui.xcu b/filter/source/config/fragments/filters/writer8_ui.xcu
new file mode 100644
index 000000000000..e70d69b759d1
--- /dev/null
+++ b/filter/source/config/fragments/filters/writer8_ui.xcu
@@ -0,0 +1,5 @@
+ <node oor:name="writer8">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">ODF Text Document</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writer_MIZI_Hwp_97.xcu b/filter/source/config/fragments/filters/writer_MIZI_Hwp_97.xcu
new file mode 100644
index 000000000000..01a305bb7eec
--- /dev/null
+++ b/filter/source/config/fragments/filters/writer_MIZI_Hwp_97.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="writer_MIZI_Hwp_97" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"><value>com.sun.comp.hwpimport.HwpImportFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Hangul WP 97</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_MIZI_Hwp_97</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/filters/writer_StarOffice_XML_Writer_Template.xcu b/filter/source/config/fragments/filters/writer_StarOffice_XML_Writer_Template.xcu
new file mode 100644
index 000000000000..9c54cf04e06b
--- /dev/null
+++ b/filter/source/config/fragments/filters/writer_StarOffice_XML_Writer_Template.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="writer_StarOffice_XML_Writer_Template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ALIEN ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>CXMLV</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6200</value></prop>
+ <prop oor:name="Type"><value>writer_StarOffice_XML_Writer_Template</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/filters/writer_StarOffice_XML_Writer_Template_ui.xcu b/filter/source/config/fragments/filters/writer_StarOffice_XML_Writer_Template_ui.xcu
new file mode 100644
index 000000000000..f15981efe33d
--- /dev/null
+++ b/filter/source/config/fragments/filters/writer_StarOffice_XML_Writer_Template_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="writer_StarOffice_XML_Writer_Template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">%productname% %formatversion% Text Document Template</value>
+ <value xml:lang="x-translate">%productname% %formatversion% Text Document Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writer_globaldocument_StarOffice_XML_Writer.xcu b/filter/source/config/fragments/filters/writer_globaldocument_StarOffice_XML_Writer.xcu
new file mode 100644
index 000000000000..b1210080e631
--- /dev/null
+++ b/filter/source/config/fragments/filters/writer_globaldocument_StarOffice_XML_Writer.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="writer_globaldocument_StarOffice_XML_Writer" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT TEMPLATE ALIEN ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>CXML</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6200</value></prop>
+ <prop oor:name="Type"><value>writer_StarOffice_XML_Writer</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writer_globaldocument_StarOffice_XML_Writer_GlobalDocument.xcu b/filter/source/config/fragments/filters/writer_globaldocument_StarOffice_XML_Writer_GlobalDocument.xcu
new file mode 100644
index 000000000000..2dfb7fe0d21e
--- /dev/null
+++ b/filter/source/config/fragments/filters/writer_globaldocument_StarOffice_XML_Writer_GlobalDocument.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="writer_globaldocument_StarOffice_XML_Writer_GlobalDocument" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN ALIEN PREFERRED ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>CXML</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6200</value></prop>
+ <prop oor:name="Type"><value>writer_globaldocument_StarOffice_XML_Writer_GlobalDocument</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writer_globaldocument_StarOffice_XML_Writer_GlobalDocument_ui.xcu b/filter/source/config/fragments/filters/writer_globaldocument_StarOffice_XML_Writer_GlobalDocument_ui.xcu
new file mode 100644
index 000000000000..28e9b4082a7a
--- /dev/null
+++ b/filter/source/config/fragments/filters/writer_globaldocument_StarOffice_XML_Writer_GlobalDocument_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="writer_globaldocument_StarOffice_XML_Writer_GlobalDocument">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">%productname% %formatversion% Master Document</value>
+ <value xml:lang="x-translate">%productname% %formatversion% Master Document</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writer_globaldocument_StarOffice_XML_Writer_ui.xcu b/filter/source/config/fragments/filters/writer_globaldocument_StarOffice_XML_Writer_ui.xcu
new file mode 100644
index 000000000000..216e70c0ed1e
--- /dev/null
+++ b/filter/source/config/fragments/filters/writer_globaldocument_StarOffice_XML_Writer_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="writer_globaldocument_StarOffice_XML_Writer">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">%productname% %formatversion% Text Document</value>
+ <value xml:lang="x-translate">%productname% %formatversion% Text Document</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writer_globaldocument_pdf_Export.xcu b/filter/source/config/fragments/filters/writer_globaldocument_pdf_Export.xcu
new file mode 100644
index 000000000000..cddd4936a50d
--- /dev/null
+++ b/filter/source/config/fragments/filters/writer_globaldocument_pdf_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="writer_globaldocument_pdf_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.comp.PDF.PDFDialog</value></prop>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.PDF.PDFFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PDF - Portable Document Format</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>pdf_Portable_Document_Format</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writer_pdf_Export.xcu b/filter/source/config/fragments/filters/writer_pdf_Export.xcu
new file mode 100644
index 000000000000..ca3e63d3b887
--- /dev/null
+++ b/filter/source/config/fragments/filters/writer_pdf_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="writer_pdf_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.comp.PDF.PDFDialog</value></prop>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.PDF.PDFFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PDF - Portable Document Format</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>pdf_Portable_Document_Format</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/filters/writer_web_HTML_help.xcu b/filter/source/config/fragments/filters/writer_web_HTML_help.xcu
new file mode 100644
index 000000000000..e03632542233
--- /dev/null
+++ b/filter/source/config/fragments/filters/writer_web_HTML_help.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="writer_web_HTML_help" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT INTERNAL NOTINFILEDIALOG NOTINCHOOSER ASYNCHRON READONLY</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>HTML_HELP</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">Help content</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_web_HTML_help</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writer_web_StarOffice_XML_Writer.xcu b/filter/source/config/fragments/filters/writer_web_StarOffice_XML_Writer.xcu
new file mode 100644
index 000000000000..8e217e6d79a8
--- /dev/null
+++ b/filter/source/config/fragments/filters/writer_web_StarOffice_XML_Writer.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="writer_web_StarOffice_XML_Writer" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT TEMPLATE ALIEN ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>CXML</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6200</value></prop>
+ <prop oor:name="Type"><value>writer_StarOffice_XML_Writer</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writer_web_StarOffice_XML_Writer_Web_Template.xcu b/filter/source/config/fragments/filters/writer_web_StarOffice_XML_Writer_Web_Template.xcu
new file mode 100644
index 000000000000..64b3b8cdfe81
--- /dev/null
+++ b/filter/source/config/fragments/filters/writer_web_StarOffice_XML_Writer_Web_Template.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="writer_web_StarOffice_XML_Writer_Web_Template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ALIEN ENCRYPTION</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>CXMLVWEB</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6200</value></prop>
+ <prop oor:name="Type"><value>writer_web_StarOffice_XML_Writer_Web_Template</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writer_web_StarOffice_XML_Writer_Web_Template_ui.xcu b/filter/source/config/fragments/filters/writer_web_StarOffice_XML_Writer_Web_Template_ui.xcu
new file mode 100644
index 000000000000..b02aaf02d50b
--- /dev/null
+++ b/filter/source/config/fragments/filters/writer_web_StarOffice_XML_Writer_Web_Template_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="writer_web_StarOffice_XML_Writer_Web_Template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">%productname% %formatversion% HTML Template</value>
+ <value xml:lang="x-translate">%productname% %formatversion% HTML Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writer_web_StarOffice_XML_Writer_ui.xcu b/filter/source/config/fragments/filters/writer_web_StarOffice_XML_Writer_ui.xcu
new file mode 100644
index 000000000000..e7e65247c4bf
--- /dev/null
+++ b/filter/source/config/fragments/filters/writer_web_StarOffice_XML_Writer_ui.xcu
@@ -0,0 +1,6 @@
+ <node oor:name="writer_web_StarOffice_XML_Writer">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">%productname% %formatversion% Text Document (%productname% Writer/Web)</value>
+ <value xml:lang="x-translate">%productname% %formatversion% Text Document (%productname% Writer/Web)</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writer_web_pdf_Export.xcu b/filter/source/config/fragments/filters/writer_web_pdf_Export.xcu
new file mode 100644
index 000000000000..6cdedd21eaed
--- /dev/null
+++ b/filter/source/config/fragments/filters/writer_web_pdf_Export.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="writer_web_pdf_Export" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+ <prop oor:name="UIComponent"><value>com.sun.star.comp.PDF.PDFDialog</value></prop>
+ <prop oor:name="FilterService"><value>com.sun.star.comp.PDF.PDFFilter</value></prop>
+ <prop oor:name="UserData"><value></value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">PDF - Portable Document Format</value>
+ </prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>pdf_Portable_Document_Format</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writerglobal8.xcu b/filter/source/config/fragments/filters/writerglobal8.xcu
new file mode 100644
index 000000000000..df5fcb7e6d1b
--- /dev/null
+++ b/filter/source/config/fragments/filters/writerglobal8.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="writerglobal8" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE OWN PREFERRED ENCRYPTION PASSWORDTOMODIFY</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>CXML</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6800</value></prop>
+ <prop oor:name="Type"><value>writerglobal8</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writerglobal8_HTML.xcu b/filter/source/config/fragments/filters/writerglobal8_HTML.xcu
new file mode 100644
index 000000000000..65bfdb5ab0a9
--- /dev/null
+++ b/filter/source/config/fragments/filters/writerglobal8_HTML.xcu
@@ -0,0 +1,13 @@
+ <node oor:name="writerglobal8_HTML" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT ALIEN ASYNCHRON NOTINCHOOSER</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>HTML</value></prop>
+ <prop oor:name="FileFormatVersion"><value>0</value></prop>
+ <prop oor:name="Type"><value>writer_web_HTML</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="x-default">HTML (Writer/Global)</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writerglobal8_ui.xcu b/filter/source/config/fragments/filters/writerglobal8_ui.xcu
new file mode 100644
index 000000000000..1a0d5a41bd51
--- /dev/null
+++ b/filter/source/config/fragments/filters/writerglobal8_ui.xcu
@@ -0,0 +1,5 @@
+ <node oor:name="writerglobal8">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">ODF Master Document</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writerglobal8_writer.xcu b/filter/source/config/fragments/filters/writerglobal8_writer.xcu
new file mode 100644
index 000000000000..ca3794de493b
--- /dev/null
+++ b/filter/source/config/fragments/filters/writerglobal8_writer.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="writerglobal8_writer" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT TEMPLATE DEFAULT ENCRYPTION PASSWORDTOMODIFY</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>CXML</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6800</value></prop>
+ <prop oor:name="Type"><value>writer8</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.GlobalDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writerglobal8_writer_ui.xcu b/filter/source/config/fragments/filters/writerglobal8_writer_ui.xcu
new file mode 100644
index 000000000000..ee04bbd2a547
--- /dev/null
+++ b/filter/source/config/fragments/filters/writerglobal8_writer_ui.xcu
@@ -0,0 +1,5 @@
+ <node oor:name="writerglobal8_writer">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">ODF Text Document</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writerweb8_writer.xcu b/filter/source/config/fragments/filters/writerweb8_writer.xcu
new file mode 100644
index 000000000000..a3fbc783e92a
--- /dev/null
+++ b/filter/source/config/fragments/filters/writerweb8_writer.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="writerweb8_writer" oor:op="replace">
+ <prop oor:name="Flags"><value>EXPORT TEMPLATE ENCRYPTION PASSWORDTOMODIFY</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>CXML</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6800</value></prop>
+ <prop oor:name="Type"><value>writer8</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writerweb8_writer_template.xcu b/filter/source/config/fragments/filters/writerweb8_writer_template.xcu
new file mode 100644
index 000000000000..eb383eafaeeb
--- /dev/null
+++ b/filter/source/config/fragments/filters/writerweb8_writer_template.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="writerweb8_writer_template" oor:op="replace">
+ <prop oor:name="Flags"><value>IMPORT EXPORT TEMPLATE TEMPLATEPATH OWN ENCRYPTION PASSWORDTOMODIFY</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="FilterService"/>
+ <prop oor:name="UserData"><value>CXMLVWEB</value></prop>
+ <prop oor:name="FileFormatVersion"><value>6800</value></prop>
+ <prop oor:name="Type"><value>writerweb8_writer_template</value></prop>
+ <prop oor:name="TemplateName"/>
+ <prop oor:name="DocumentService"><value>com.sun.star.text.WebDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writerweb8_writer_template_ui.xcu b/filter/source/config/fragments/filters/writerweb8_writer_template_ui.xcu
new file mode 100644
index 000000000000..9ff5d088d15b
--- /dev/null
+++ b/filter/source/config/fragments/filters/writerweb8_writer_template_ui.xcu
@@ -0,0 +1,5 @@
+ <node oor:name="writerweb8_writer_template">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">HTML Document Template</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/filters/writerweb8_writer_ui.xcu b/filter/source/config/fragments/filters/writerweb8_writer_ui.xcu
new file mode 100644
index 000000000000..8b823ceeca70
--- /dev/null
+++ b/filter/source/config/fragments/filters/writerweb8_writer_ui.xcu
@@ -0,0 +1,5 @@
+ <node oor:name="writerweb8_writer">
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">%productname% Text (%productname% Writer/Web)</value>
+ </prop>
+ </node>
diff --git a/filter/source/config/fragments/frameloaders/com_sun_star_comp_chart2_ChartFrameLoader.xcu b/filter/source/config/fragments/frameloaders/com_sun_star_comp_chart2_ChartFrameLoader.xcu
new file mode 100644
index 000000000000..2f315761a296
--- /dev/null
+++ b/filter/source/config/fragments/frameloaders/com_sun_star_comp_chart2_ChartFrameLoader.xcu
@@ -0,0 +1,3 @@
+ <node oor:name="com.sun.star.comp.chart2.ChartFrameLoader" oor:op="replace" oor:finalized="true" oor:mandatory="true">
+ <prop oor:name="Types"><value>chart_StarOffice_XML_Chart chart8 chart_StarChart_50 chart_StarChart_40 chart_StarChart_30</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/frameloaders/com_sun_star_frame_Bibliography.xcu b/filter/source/config/fragments/frameloaders/com_sun_star_frame_Bibliography.xcu
new file mode 100644
index 000000000000..25fa8762f29d
--- /dev/null
+++ b/filter/source/config/fragments/frameloaders/com_sun_star_frame_Bibliography.xcu
@@ -0,0 +1,3 @@
+ <node oor:name="com.sun.star.frame.Bibliography" oor:op="replace" >
+ <prop oor:name="Types"><value>component_Bibliography</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/frameloaders/com_sun_star_sdb_ContentLoader.xcu b/filter/source/config/fragments/frameloaders/com_sun_star_sdb_ContentLoader.xcu
new file mode 100644
index 000000000000..cd5bb4684827
--- /dev/null
+++ b/filter/source/config/fragments/frameloaders/com_sun_star_sdb_ContentLoader.xcu
@@ -0,0 +1,3 @@
+ <node oor:name="com.sun.star.sdb.ContentLoader" oor:op="replace" >
+ <prop oor:name="Types"><value>component_DB</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/frameloaders/org_openoffice_comp_dbflt_DBContentLoader2.xcu b/filter/source/config/fragments/frameloaders/org_openoffice_comp_dbflt_DBContentLoader2.xcu
new file mode 100644
index 000000000000..299a907fb576
--- /dev/null
+++ b/filter/source/config/fragments/frameloaders/org_openoffice_comp_dbflt_DBContentLoader2.xcu
@@ -0,0 +1,3 @@
+ <node oor:name="org.openoffice.comp.dbflt.DBContentLoader2" oor:op="replace">
+ <prop oor:name="Types"><value>StarBase</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/bmp_Export.xcu b/filter/source/config/fragments/internalgraphicfilters/bmp_Export.xcu
new file mode 100644
index 000000000000..ea5d9f14bebe
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/bmp_Export.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="bmp_Export" oor:op="replace" >
+ <prop oor:name="Type"><value>bmp_MS_Windows</value></prop>
+ <prop oor:name="FormatName"><value>SVBMP</value></prop>
+ <prop oor:name="RealFilterName"/>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">BMP - Windows Bitmap</value>
+ </prop>
+ <prop oor:name="Flags"><value>EXPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/bmp_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/bmp_Import.xcu
new file mode 100644
index 000000000000..32a213efa594
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/bmp_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="bmp_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>bmp_MS_Windows</value></prop>
+ <prop oor:name="FormatName"><value>SVBMP</value></prop>
+ <prop oor:name="RealFilterName"><value>BMP - MS Windows</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">BMP - Windows Bitmap</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/dxf_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/dxf_Import.xcu
new file mode 100644
index 000000000000..b132f3c59df6
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/dxf_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="dxf_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>dxf_AutoCAD_Interchange</value></prop>
+ <prop oor:name="FormatName"><value>idx</value></prop>
+ <prop oor:name="RealFilterName"><value>DXF - AutoCAD Interchange</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">DXF - AutoCAD Interchange Format</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/emf_Export.xcu b/filter/source/config/fragments/internalgraphicfilters/emf_Export.xcu
new file mode 100644
index 000000000000..4a82c5080ad4
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/emf_Export.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="emf_Export" oor:op="replace" >
+ <prop oor:name="Type"><value>emf_MS_Windows_Metafile</value></prop>
+ <prop oor:name="FormatName"><value>SVEMF</value></prop>
+ <prop oor:name="RealFilterName"/>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">EMF - Enhanced Metafile</value>
+ </prop>
+ <prop oor:name="Flags"><value>EXPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/emf_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/emf_Import.xcu
new file mode 100644
index 000000000000..f84aab35b0da
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/emf_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="emf_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>emf_MS_Windows_Metafile</value></prop>
+ <prop oor:name="FormatName"><value>SVEMF</value></prop>
+ <prop oor:name="RealFilterName"><value>EMF - MS Windows Metafile</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">EMF - Enhanced Metafile</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/eps_Export.xcu b/filter/source/config/fragments/internalgraphicfilters/eps_Export.xcu
new file mode 100644
index 000000000000..ed08ed2bc783
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/eps_Export.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="eps_Export" oor:op="replace" >
+ <prop oor:name="Type"><value>eps_Encapsulated_PostScript</value></prop>
+ <prop oor:name="FormatName"><value>eps</value></prop>
+ <prop oor:name="RealFilterName"/>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">EPS - Encapsulated PostScript</value>
+ </prop>
+ <prop oor:name="Flags"><value>EXPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/eps_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/eps_Import.xcu
new file mode 100644
index 000000000000..7fcd90b66481
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/eps_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="eps_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>eps_Encapsulated_PostScript</value></prop>
+ <prop oor:name="FormatName"><value>ips</value></prop>
+ <prop oor:name="RealFilterName"><value>EPS - Encapsulated PostScript</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">EPS - Encapsulated PostScript</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/gif_Export.xcu b/filter/source/config/fragments/internalgraphicfilters/gif_Export.xcu
new file mode 100644
index 000000000000..08d82e808fb4
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/gif_Export.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="gif_Export" oor:op="replace" >
+ <prop oor:name="Type"><value>gif_Graphics_Interchange</value></prop>
+ <prop oor:name="FormatName"><value>egi</value></prop>
+ <prop oor:name="RealFilterName"/>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">GIF - Graphics Interchange Format</value>
+ </prop>
+ <prop oor:name="Flags"><value>EXPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/gif_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/gif_Import.xcu
new file mode 100644
index 000000000000..5c1b34ffcbfa
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/gif_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="gif_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>gif_Graphics_Interchange</value></prop>
+ <prop oor:name="FormatName"><value>SVIGIF</value></prop>
+ <prop oor:name="RealFilterName"><value>GIF - Graphics Interchange</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">GIF - Graphics Interchange Format</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/jpg_Export.xcu b/filter/source/config/fragments/internalgraphicfilters/jpg_Export.xcu
new file mode 100644
index 000000000000..36e53e14a7ad
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/jpg_Export.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="jpg_Export" oor:op="replace" >
+ <prop oor:name="Type"><value>jpg_JPEG</value></prop>
+ <prop oor:name="FormatName"><value>SVEJPEG</value></prop>
+ <prop oor:name="RealFilterName"/>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">JPEG - Joint Photographic Experts Group</value>
+ </prop>
+ <prop oor:name="Flags"><value>EXPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/jpg_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/jpg_Import.xcu
new file mode 100644
index 000000000000..2f4482c90a3b
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/jpg_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="jpg_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>jpg_JPEG</value></prop>
+ <prop oor:name="FormatName"><value>SVIJPEG</value></prop>
+ <prop oor:name="RealFilterName"><value>JPG - JPEG</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">JPEG - Joint Photographic Experts Group</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/met_Export.xcu b/filter/source/config/fragments/internalgraphicfilters/met_Export.xcu
new file mode 100644
index 000000000000..95afe373b91a
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/met_Export.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="met_Export" oor:op="replace" >
+ <prop oor:name="Type"><value>met_OS2_Metafile</value></prop>
+ <prop oor:name="FormatName"><value>eme</value></prop>
+ <prop oor:name="RealFilterName"/>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">MET - OS/2 Metafile</value>
+ </prop>
+ <prop oor:name="Flags"><value>EXPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/met_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/met_Import.xcu
new file mode 100644
index 000000000000..c1084e53e812
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/met_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="met_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>met_OS2_Metafile</value></prop>
+ <prop oor:name="FormatName"><value>ime</value></prop>
+ <prop oor:name="RealFilterName"><value>MET - OS/2 Metafile</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">MET - OS/2 Metafile</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/pbm_Export.xcu b/filter/source/config/fragments/internalgraphicfilters/pbm_Export.xcu
new file mode 100644
index 000000000000..62e728d7b268
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/pbm_Export.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="pbm_Export" oor:op="replace" >
+ <prop oor:name="Type"><value>pbm_Portable_Bitmap</value></prop>
+ <prop oor:name="FormatName"><value>epb</value></prop>
+ <prop oor:name="RealFilterName"/>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">PBM - Portable Bitmap</value>
+ </prop>
+ <prop oor:name="Flags"><value>EXPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/pbm_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/pbm_Import.xcu
new file mode 100644
index 000000000000..62736e4b8351
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/pbm_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="pbm_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>pbm_Portable_Bitmap</value></prop>
+ <prop oor:name="FormatName"><value>ipb</value></prop>
+ <prop oor:name="RealFilterName"><value>PBM - Portable Bitmap</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">PBM - Portable Bitmap</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/pcd_Import_Base.xcu b/filter/source/config/fragments/internalgraphicfilters/pcd_Import_Base.xcu
new file mode 100644
index 000000000000..5f240c1e24bc
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/pcd_Import_Base.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="pcd_Import_Base" oor:op="replace" >
+ <prop oor:name="Type"><value>pcd_Photo_CD_Base</value></prop>
+ <prop oor:name="FormatName"><value>icd</value></prop>
+ <prop oor:name="RealFilterName"><value>draw_PCD_Photo_CD_Base</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">PCD - Kodak Photo CD (768x512)</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/pcd_Import_Base16.xcu b/filter/source/config/fragments/internalgraphicfilters/pcd_Import_Base16.xcu
new file mode 100644
index 000000000000..64625f1c391c
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/pcd_Import_Base16.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="pcd_Import_Base16" oor:op="replace" >
+ <prop oor:name="Type"><value>pcd_Photo_CD_Base16</value></prop>
+ <prop oor:name="FormatName"><value>icd</value></prop>
+ <prop oor:name="RealFilterName"><value>draw_PCD_Photo_CD_Base16</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">PCD - Kodak Photo CD (192x128)</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/pcd_Import_Base4.xcu b/filter/source/config/fragments/internalgraphicfilters/pcd_Import_Base4.xcu
new file mode 100644
index 000000000000..927d1ad54fc5
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/pcd_Import_Base4.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="pcd_Import_Base4" oor:op="replace" >
+ <prop oor:name="Type"><value>pcd_Photo_CD_Base4</value></prop>
+ <prop oor:name="FormatName"><value>icd</value></prop>
+ <prop oor:name="RealFilterName"><value>draw_PCD_Photo_CD_Base4</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">PCD - Kodak Photo CD (384x256)</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/pct_Export.xcu b/filter/source/config/fragments/internalgraphicfilters/pct_Export.xcu
new file mode 100644
index 000000000000..6dcae82e07d4
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/pct_Export.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="pct_Export" oor:op="replace" >
+ <prop oor:name="Type"><value>pct_Mac_Pict</value></prop>
+ <prop oor:name="FormatName"><value>ept</value></prop>
+ <prop oor:name="RealFilterName"/>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">PCT - Mac Pict</value>
+ </prop>
+ <prop oor:name="Flags"><value>EXPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/pct_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/pct_Import.xcu
new file mode 100644
index 000000000000..b8fc4175d895
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/pct_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="pct_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>pct_Mac_Pict</value></prop>
+ <prop oor:name="FormatName"><value>ipt</value></prop>
+ <prop oor:name="RealFilterName"><value>PCT - Mac Pict</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">PCT - Mac Pict</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/pcx_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/pcx_Import.xcu
new file mode 100644
index 000000000000..7fa5dac0345a
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/pcx_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="pcx_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>pcx_Zsoft_Paintbrush</value></prop>
+ <prop oor:name="FormatName"><value>ipx</value></prop>
+ <prop oor:name="RealFilterName"><value>PCX - Zsoft Paintbrush</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">PCX - Zsoft Paintbrush</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/pgm_Export.xcu b/filter/source/config/fragments/internalgraphicfilters/pgm_Export.xcu
new file mode 100644
index 000000000000..21628d9c1b02
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/pgm_Export.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="pgm_Export" oor:op="replace" >
+ <prop oor:name="Type"><value>pgm_Portable_Graymap</value></prop>
+ <prop oor:name="FormatName"><value>epg</value></prop>
+ <prop oor:name="RealFilterName"/>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">PGM - Portable Graymap</value>
+ </prop>
+ <prop oor:name="Flags"><value>EXPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/pgm_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/pgm_Import.xcu
new file mode 100644
index 000000000000..45cc3a83cea4
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/pgm_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="pgm_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>pgm_Portable_Graymap</value></prop>
+ <prop oor:name="FormatName"><value>ipb</value></prop>
+ <prop oor:name="RealFilterName"><value>PGM - Portable Graymap</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">PGM - Portable Graymap</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/png_Export.xcu b/filter/source/config/fragments/internalgraphicfilters/png_Export.xcu
new file mode 100644
index 000000000000..abafad770e3a
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/png_Export.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="png_Export" oor:op="replace" >
+ <prop oor:name="Type"><value>png_Portable_Network_Graphic</value></prop>
+ <prop oor:name="FormatName"><value>SVEPNG</value></prop>
+ <prop oor:name="RealFilterName"/>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">PNG - Portable Network Graphic</value>
+ </prop>
+ <prop oor:name="Flags"><value>EXPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/png_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/png_Import.xcu
new file mode 100644
index 000000000000..5979e7857f28
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/png_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="png_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>png_Portable_Network_Graphic</value></prop>
+ <prop oor:name="FormatName"><value>SVIPNG</value></prop>
+ <prop oor:name="RealFilterName"><value>PNG - Portable Network Graphic</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">PNG - Portable Network Graphic</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/ppm_Export.xcu b/filter/source/config/fragments/internalgraphicfilters/ppm_Export.xcu
new file mode 100644
index 000000000000..2d7a18c34e3f
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/ppm_Export.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="ppm_Export" oor:op="replace" >
+ <prop oor:name="Type"><value>ppm_Portable_Pixelmap</value></prop>
+ <prop oor:name="FormatName"><value>epp</value></prop>
+ <prop oor:name="RealFilterName"/>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">PPM - Portable Pixelmap</value>
+ </prop>
+ <prop oor:name="Flags"><value>EXPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/ppm_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/ppm_Import.xcu
new file mode 100644
index 000000000000..2d4792b7b7b5
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/ppm_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="ppm_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>ppm_Portable_Pixelmap</value></prop>
+ <prop oor:name="FormatName"><value>ipb</value></prop>
+ <prop oor:name="RealFilterName"><value>PPM - Portable Pixelmap</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">PPM - Portable Pixelmap</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/psd_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/psd_Import.xcu
new file mode 100644
index 000000000000..cbfc6e4710e7
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/psd_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="psd_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>psd_Adobe_Photoshop</value></prop>
+ <prop oor:name="FormatName"><value>ipd</value></prop>
+ <prop oor:name="RealFilterName"><value>PSD - Adobe Photoshop</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">PSD - Adobe Photoshop</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/ras_Export.xcu b/filter/source/config/fragments/internalgraphicfilters/ras_Export.xcu
new file mode 100644
index 000000000000..69aa0147ea36
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/ras_Export.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="ras_Export" oor:op="replace" >
+ <prop oor:name="Type"><value>ras_Sun_Rasterfile</value></prop>
+ <prop oor:name="FormatName"><value>era</value></prop>
+ <prop oor:name="RealFilterName"/>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">RAS - Sun Raster Image</value>
+ </prop>
+ <prop oor:name="Flags"><value>EXPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/ras_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/ras_Import.xcu
new file mode 100644
index 000000000000..ce30b3c2f00f
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/ras_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="ras_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>ras_Sun_Rasterfile</value></prop>
+ <prop oor:name="FormatName"><value>ira</value></prop>
+ <prop oor:name="RealFilterName"><value>RAS - Sun Rasterfile</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">RAS - Sun Raster Image</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/sgf_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/sgf_Import.xcu
new file mode 100644
index 000000000000..29da3f9f9165
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/sgf_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="sgf_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>sgf_StarOffice_Writer_SGF</value></prop>
+ <prop oor:name="FormatName"><value>SVSGF</value></prop>
+ <prop oor:name="RealFilterName"><value>SGF - StarOffice Writer SGF</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">SGF - StarWriter Graphics Format</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/sgv_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/sgv_Import.xcu
new file mode 100644
index 000000000000..cc40a3815769
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/sgv_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="sgv_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>sgv_StarDraw_20</value></prop>
+ <prop oor:name="FormatName"><value>SVSGV</value></prop>
+ <prop oor:name="RealFilterName"><value>SGV - StarDraw 2.0</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">SGV - StarDraw 2.0</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/svg_Export.xcu b/filter/source/config/fragments/internalgraphicfilters/svg_Export.xcu
new file mode 100644
index 000000000000..30b7122a654d
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/svg_Export.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="svg_Export" oor:op="replace" >
+ <prop oor:name="Type"><value>svg_Scalable_Vector_Graphics</value></prop>
+ <prop oor:name="FormatName"><value>SVESVG</value></prop>
+ <prop oor:name="RealFilterName"/>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">SVG - Scalable Vector Graphics</value>
+ </prop>
+ <prop oor:name="Flags"><value>EXPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/svm_Export.xcu b/filter/source/config/fragments/internalgraphicfilters/svm_Export.xcu
new file mode 100644
index 000000000000..d6b55e8bf169
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/svm_Export.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="svm_Export" oor:op="replace" >
+ <prop oor:name="Type"><value>svm_StarView_Metafile</value></prop>
+ <prop oor:name="FormatName"><value>SVMETAFILE</value></prop>
+ <prop oor:name="RealFilterName"/>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">SVM - StarView Metafile</value>
+ </prop>
+ <prop oor:name="Flags"><value>EXPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/svm_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/svm_Import.xcu
new file mode 100644
index 000000000000..8a291265710b
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/svm_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="svm_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>svm_StarView_Metafile</value></prop>
+ <prop oor:name="FormatName"><value>SVMETAFILE</value></prop>
+ <prop oor:name="RealFilterName"><value>SVM - StarView Metafile</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">SVM - StarView Metafile</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/tga_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/tga_Import.xcu
new file mode 100644
index 000000000000..af3db9b3c8fc
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/tga_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="tga_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>tga_Truevision_TARGA</value></prop>
+ <prop oor:name="FormatName"><value>itg</value></prop>
+ <prop oor:name="RealFilterName"><value>TGA - Truevision TARGA</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">TGA - Truevision Targa</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/tif_Export.xcu b/filter/source/config/fragments/internalgraphicfilters/tif_Export.xcu
new file mode 100644
index 000000000000..791335acce1f
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/tif_Export.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="tif_Export" oor:op="replace" >
+ <prop oor:name="Type"><value>tif_Tag_Image_File</value></prop>
+ <prop oor:name="FormatName"><value>eti</value></prop>
+ <prop oor:name="RealFilterName"/>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">TIFF - Tagged Image File Format</value>
+ </prop>
+ <prop oor:name="Flags"><value>EXPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/tif_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/tif_Import.xcu
new file mode 100644
index 000000000000..2737128acf05
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/tif_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="tif_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>tif_Tag_Image_File</value></prop>
+ <prop oor:name="FormatName"><value>iti</value></prop>
+ <prop oor:name="RealFilterName"><value>TIF - Tag Image File</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">TIFF - Tagged Image File Format</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/wmf_Export.xcu b/filter/source/config/fragments/internalgraphicfilters/wmf_Export.xcu
new file mode 100644
index 000000000000..0a97f23b4875
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/wmf_Export.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="wmf_Export" oor:op="replace" >
+ <prop oor:name="Type"><value>wmf_MS_Windows_Metafile</value></prop>
+ <prop oor:name="FormatName"><value>SVWMF</value></prop>
+ <prop oor:name="RealFilterName"/>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">WMF - Windows Metafile</value>
+ </prop>
+ <prop oor:name="Flags"><value>EXPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/wmf_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/wmf_Import.xcu
new file mode 100644
index 000000000000..313221f4edc4
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/wmf_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="wmf_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>wmf_MS_Windows_Metafile</value></prop>
+ <prop oor:name="FormatName"><value>SVWMF</value></prop>
+ <prop oor:name="RealFilterName"><value>WMF - MS Windows Metafile</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">WMF - Windows Metafile</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/xbm_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/xbm_Import.xcu
new file mode 100644
index 000000000000..a433e15a7fc5
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/xbm_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="xbm_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>xbm_X_Consortium</value></prop>
+ <prop oor:name="FormatName"><value>SVIXBM</value></prop>
+ <prop oor:name="RealFilterName"><value>XBM - X-Consortium</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">XBM - X Bitmap</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/xpm_Export.xcu b/filter/source/config/fragments/internalgraphicfilters/xpm_Export.xcu
new file mode 100644
index 000000000000..660a240a6678
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/xpm_Export.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="xpm_Export" oor:op="replace" >
+ <prop oor:name="Type"><value>xpm_XPM</value></prop>
+ <prop oor:name="FormatName"><value>exp</value></prop>
+ <prop oor:name="RealFilterName"/>
+ <prop oor:name="UIComponent"><value>com.sun.star.svtools.SvFilterOptionsDialog</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">XPM - X PixMap</value>
+ </prop>
+ <prop oor:name="Flags"><value>EXPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/internalgraphicfilters/xpm_Import.xcu b/filter/source/config/fragments/internalgraphicfilters/xpm_Import.xcu
new file mode 100644
index 000000000000..886e29bfe708
--- /dev/null
+++ b/filter/source/config/fragments/internalgraphicfilters/xpm_Import.xcu
@@ -0,0 +1,10 @@
+ <node oor:name="xpm_Import" oor:op="replace" >
+ <prop oor:name="Type"><value>xpm_XPM</value></prop>
+ <prop oor:name="FormatName"><value>SVIXPM</value></prop>
+ <prop oor:name="RealFilterName"><value>XPM</value></prop>
+ <prop oor:name="UIComponent"/>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">XPM - X PixMap</value>
+ </prop>
+ <prop oor:name="Flags"><value>IMPORT</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/langfilter.xsl b/filter/source/config/fragments/langfilter.xsl
new file mode 100644
index 000000000000..76cfcff20ac6
--- /dev/null
+++ b/filter/source/config/fragments/langfilter.xsl
@@ -0,0 +1,37 @@
+<?xml version='1.0' encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:oor="http://openoffice.org/2001/registry">
+<xsl:output method="xml" indent="yes" omit-xml-declaration="no" version="1.0" encoding="UTF-8"/>
+<xsl:param name="lang"/>
+<xsl:template match="*">
+ <xsl:if test="count(.//*[@xml:lang=$lang])&gt;0">
+ <xsl:copy>
+ <xsl:apply-templates select="*|@*"/>
+ </xsl:copy>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="@*">
+ <xsl:copy>
+ <xsl:apply-templates select="*|@*"/>
+ </xsl:copy>
+</xsl:template>
+
+<xsl:template match="value">
+ <xsl:if test="@xml:lang=$lang">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|text()"/>
+ </xsl:copy>
+ </xsl:if>
+</xsl:template>
+
+<xsl:template match="text()">
+ <xsl:if test="../@xml:lang=$lang">
+ <xsl:copy>
+ <xsl:apply-templates select="@*|text()"/>
+ </xsl:copy>
+ </xsl:if>
+</xsl:template>
+
+
+</xsl:stylesheet>
+
diff --git a/filter/source/config/fragments/makefile.mk b/filter/source/config/fragments/makefile.mk
new file mode 100644
index 000000000000..d827b3496359
--- /dev/null
+++ b/filter/source/config/fragments/makefile.mk
@@ -0,0 +1,255 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ = ..$/..$/..
+TARGET = FCFGPkg
+PRJNAME = filter
+
+# -----------------------------------------------------------------------------
+# include global settings
+# -----------------------------------------------------------------------------
+
+.INCLUDE: settings.mk
+
+# -----------------------------------------------------------------------------
+# include all package definition files
+# -----------------------------------------------------------------------------
+
+.INCLUDE: packagedef.mk
+
+# -----------------------------------------------------------------------------
+# list of all required destination files
+# -----------------------------------------------------------------------------
+
+REALFILTERPACKAGES_TYPES_FLAG = \
+ $(DIR_FILTERCFGOUT)$/fcfg_base.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_writer.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_web.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_global.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_w4w.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_calc.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_draw.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_impress.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_database.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_chart.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_math.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_xslt.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_palm.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_pocketexcel.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_pocketword.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_drawgraphics.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_impressgraphics.types_flag
+
+.IF "$(WITH_BINFILTER)" != "NO"
+REALFILTERPACKAGES_TYPES_FLAG += \
+ $(DIR_FILTERCFGOUT)$/fcfg_writer_bf.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_web_bf.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_global_bf.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_calc_bf.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_draw_bf.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_impress_bf.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_chart_bf.types_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_math_bf.types_flag
+.ENDIF
+
+REALFILTERPACKAGES_FILTERS_FLAG = \
+ $(DIR_FILTERCFGOUT)$/fcfg_base.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_writer.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_web.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_global.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_w4w.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_calc.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_draw.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_impress.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_database.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_chart.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_math.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_xslt.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_palm.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_pocketexcel.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_pocketword.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_drawgraphics.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_impressgraphics.filters_flag
+
+.IF "$(WITH_BINFILTER)" != "NO"
+REALFILTERPACKAGES_FILTERS_FLAG += \
+ $(DIR_FILTERCFGOUT)$/fcfg_writer_bf.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_web_bf.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_global_bf.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_calc_bf.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_draw_bf.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_impress_bf.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_chart_bf.filters_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_math_bf.filters_flag
+.ENDIF
+
+REALFILTERPACKAGES_FILTERS_UI_MERGE = \
+ $(DIR_LOCMERGE)$/filter_ui.xcu
+
+REALFILTERPACKAGES_FILTERS_UI_LANGPACKS = \
+ $(foreach,i,$(alllangiso) $(DIR_LANGPACK)$/$i$/org$/openoffice$/TypeDetection$/Filter.xcu)
+
+REALFILTERPACKAGES_FILTERS_UI_LANGPACKS_PACKED = \
+ $(foreach,i,$(alllangiso) $(COMMONBIN)$/fcfg_langpack_$i.zip)
+
+REALFILTERPACKAGES_OTHERS_FLAG = \
+ $(DIR_FILTERCFGOUT)$/fcfg_base.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_writer.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_web.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_global.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_w4w.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_calc.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_draw.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_impress.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_database.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_chart.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_math.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_xslt.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_palm.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_pocketexcel.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_pocketword.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_drawgraphics.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_impressgraphics.others_flag
+
+.IF "$(WITH_BINFILTER)" != "NO"
+REALFILTERPACKAGES_OTHERS_FLAG += \
+ $(DIR_FILTERCFGOUT)$/fcfg_writer_bf.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_web_bf.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_global_bf.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_calc_bf.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_draw_bf.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_impress_bf.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_chart_bf.others_flag \
+ $(DIR_FILTERCFGOUT)$/fcfg_math_bf.others_flag
+.ENDIF
+
+INTERNALFILTERPACKAGES_TYPES_FLAG = \
+ $(DIR_FILTERCFGOUT)$/fcfg_internalgraphics.types_flag
+
+INTERNALFILTERPACKAGES_FILTERS_FLAG = \
+ $(DIR_FILTERCFGOUT)$/fcfg_internalgraphics.filters_flag
+
+ALL_FLAGS = \
+ $(REALFILTERPACKAGES_TYPES_FLAG) \
+ $(REALFILTERPACKAGES_FILTERS_FLAG) \
+ $(REALFILTERPACKAGES_FILTERS_UI_MERGE) \
+ $(REALFILTERPACKAGES_FILTERS_UI_LANGPACKS) \
+ $(REALFILTERPACKAGES_OTHERS_FLAG) \
+ $(INTERNALFILTERPACKAGES_TYPES_FLAG) \
+ $(INTERNALFILTERPACKAGES_FILTERS_FLAG)
+
+# -----------------------------------------------------------------------------
+# build all
+# -----------------------------------------------------------------------------
+
+zip1generatedlangs=TRUE
+zip1langdirs=$(alllangiso)
+ZIP1TARGET=fcfg_langpack
+ZIP1FLAGS= -u -r
+ZIP1DIR=$(DIR_LANGPACK)$/$(LANGDIR)
+ZIP1LIST=$(LANGDIR)$/*
+
+.INCLUDE: target.mk
+
+ALLTAR : $(ALL_FLAGS)
+
+$(ALL_FLAGS) : $(INCLUDE_FRAGMENTS)
+
+.IF "$(SOLAR_JAVA)"==""
+#cmc, hack to workaround the java build requirement
+.IF "$(SYSTEM_PYTHON)" == "YES"
+MERGE:=python ../tools/merge/pyAltFCFGMerge
+.ELSE
+MERGE:=$(AUGMENT_LIBRARY_PATH) $(SOLARBINDIR)/python ../tools/merge/pyAltFCFGMerge
+.ENDIF
+.ELSE
+MERGE := $(JAVAI) $(JAVAIFLAGS) -jar $(SOLARBINDIR)$/FCFGMerge.jar
+.ENDIF
+
+PACKLANG := $(XSLTPROC) --nonet
+PACKLANG_IN :=
+PACKLANG_PARAM := --stringparam
+PACKLANG_XSL :=
+
+# -----------------------------------------------------------------------------
+# build every module seperated
+# -----------------------------------------------------------------------------
+
+$(REALFILTERPACKAGES_TYPES_FLAG) : $$(TYPES_4$$(@:b))
+ @echo ===================================================================
+ @echo Merge type fragments for package $@
+ @echo ===================================================================
+ -$(MKDIRHIER) $(DIR_MODPACKS)
+ $(MERGE) fragmentsdir=. tempdir=$(TEMP) outdir=$(DIR_MODPACKS) pkg=$(DIR_MODPACKS)$/$(@:b)_types.xcu xmlpackage=Types tcfg=$(mktmp items=$(TYPES_4$(@:b):b:t",":s/.xcu//)) && $(TOUCH) $@
+
+$(REALFILTERPACKAGES_FILTERS_UI_MERGE) : $(ALL_UI_FILTERS)
+ @echo ===================================================================
+ @echo Merge localized filter fragments for package $@
+ @echo ===================================================================
+ -$(MKDIRHIER) $(DIR_LOCMERGE)
+ $(MERGE) fragmentsdir=$(DIR_LOCFRAG) tempdir=$(TEMP) pkg=$@ xmlpackage=Filter fcfg=$(mktmp items=$(ALL_UI_FILTERS:b:t",")) languagepack=true
+
+# Note: The used XSL transformation returns errors on stderr.
+# But they dont do it in case we use the -OUT parameter.
+# So we have to dump stdout to the target file and let stderr messages break the build!
+$(REALFILTERPACKAGES_FILTERS_UI_LANGPACKS) : $(REALFILTERPACKAGES_FILTERS_UI_MERGE)
+ @echo ===================================================================
+ @echo Building language packages $(@:b:s/Filter_//) for filters
+ @echo ===================================================================
+ +-$(MKDIRHIER) $(@:d)
+ $(PACKLANG) $(PACKLANG_PARAM) lang $(@:d:d:d:d:d:d:d:d:b) $(PACKLANG_XSL) langfilter.xsl $(PACKLANG_IN) $< > $@
+
+$(REALFILTERPACKAGES_FILTERS_UI_LANGPACKS_PACKED) : $(REALFILTERPACKAGES_FILTERS_UI_LANGPACKS)
+
+$(REALFILTERPACKAGES_FILTERS_FLAG) : $$(FILTERS_4$$(@:b))
+ @echo ===================================================================
+ @echo Building packages filter $@
+ @echo ===================================================================
+ -$(MKDIRHIER) $(DIR_MODPACKS)
+ $(MERGE) fragmentsdir=. tempdir=$(TEMP) outdir=$(DIR_MODPACKS) pkg=$(DIR_MODPACKS)$/$(@:b)_filters.xcu xmlpackage=Filter fcfg=$(mktmp items=$(FILTERS_4$(@:b):b:t",":s/.xcu//)) && $(TOUCH) $@
+
+$(REALFILTERPACKAGES_OTHERS_FLAG) : $$(ALL_4$$(@:b))
+ @echo ===================================================================
+ @echo Building packages others $@
+ @echo ===================================================================
+ -$(MKDIRHIER) $(DIR_MODPACKS)
+ $(MERGE) fragmentsdir=. tempdir=$(TEMP) outdir=$(DIR_MODPACKS) pkg=$(DIR_MODPACKS)$/$(@:b)_others.xcu xmlpackage=Misc lcfg=$(mktmp items=$(FRAMELOADERS_4$(@:b):b:t",":s/.xcu//)) ccfg=$(mktmp items=$(CONTENTHANDLERS_4$(@:b):b:t",":s/.xcu//)) && $(TOUCH) $@
+
+$(INTERNALFILTERPACKAGES_TYPES_FLAG) : $$(TYPES_4$$(@:b))
+ @echo ===================================================================
+ @echo Building special packages types $@
+ @echo ===================================================================
+ -$(MKDIRHIER) $(DIR_MODPACKS)
+ $(MERGE) fragmentsdir=. tempdir=$(TEMP) outdir=$(DIR_MODPACKS) pkg=$(DIR_MODPACKS)$/$(@:b)_types.xcu xmlpackage=Types tcfg=$(mktmp items=$(TYPES_4$(@:b):b:t",":s/.xcu//)) && $(TOUCH) $@
+
+$(INTERNALFILTERPACKAGES_FILTERS_FLAG) : $$(FILTERS_4$$(@:b))
+ @echo ===================================================================
+ @echo Building special packages filter $@
+ @echo ===================================================================
+ -$(MKDIRHIER) $(DIR_MODPACKS)
+ $(MERGE) fragmentsdir=. tempdir=$(TEMP) outdir=$(DIR_MODPACKS) pkg=$(DIR_MODPACKS)$/$(@:b)_filters.xcu xmlpackage=GraphicFilter fcfg=$(mktmp items=$(FILTERS_4$(@:b):b:t",":s/.xcu//)) subdir_filters=internalgraphicfilters && $(TOUCH) $@
+
diff --git a/filter/source/config/fragments/packagedef.mk b/filter/source/config/fragments/packagedef.mk
new file mode 100644
index 000000000000..fda7b4a6cc60
--- /dev/null
+++ b/filter/source/config/fragments/packagedef.mk
@@ -0,0 +1,71 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+DIR_FILTERCFGOUT := $(MISC)$/filters
+.IF "$(WITH_LANG)"!=""
+DIR_LOCFRAG := $(DIR_FILTERCFGOUT)$/ui$/fragments
+.ELSE # "$(WITH_LANG)"!=""
+DIR_LOCFRAG := $(PRJ)$/source$/config$/fragments
+.ENDIF # "$(WITH_LANG)"!=""
+DIR_LOCMERGE := $(DIR_FILTERCFGOUT)$/ui$/merge
+DIR_LANGPACK := $(DIR_FILTERCFGOUT)$/ui$/langpacks
+DIR_MODPACKS := $(DIR_FILTERCFGOUT)$/modulepacks
+
+INCLUDE_FRAGMENTS = \
+ $(PRJ)$/source$/config$/fragments$/fcfg_base.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_database.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_writer.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_web.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_global.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_w4w.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_calc.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_draw.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_impress.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_database.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_chart.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_math.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_xslt.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_palm.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_pocketword.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_pocketexcel.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_drawgraphics.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_impressgraphics.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_internalgraphics.mk
+
+.IF "$(WITH_BINFILTER)" != "NO"
+INCLUDE_FRAGMENTS += \
+ $(PRJ)$/source$/config$/fragments$/fcfg_writer_bf.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_web_bf.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_global_bf.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_calc_bf.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_draw_bf.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_impress_bf.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_chart_bf.mk \
+ $(PRJ)$/source$/config$/fragments$/fcfg_math_bf.mk
+.ENDIF
+
+.INCLUDE: $(INCLUDE_FRAGMENTS)
diff --git a/filter/source/config/fragments/types/MS_Excel_2007_Binary.xcu b/filter/source/config/fragments/types/MS_Excel_2007_Binary.xcu
new file mode 100644
index 000000000000..fd0183d0555f
--- /dev/null
+++ b/filter/source/config/fragments/types/MS_Excel_2007_Binary.xcu
@@ -0,0 +1,10 @@
+<node oor:name="MS Excel 2007 Binary" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xlsb</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Calc MS Excel 2007 Binary</value></prop>
+ <prop oor:name="UIName"><value xml:lang="x-default">Microsoft Excel 2007 Binary</value></prop>
+ <prop oor:name="ClipboardFormat"/>
+</node>
diff --git a/filter/source/config/fragments/types/MS_Excel_2007_XML.xcu b/filter/source/config/fragments/types/MS_Excel_2007_XML.xcu
new file mode 100644
index 000000000000..edd1498e39df
--- /dev/null
+++ b/filter/source/config/fragments/types/MS_Excel_2007_XML.xcu
@@ -0,0 +1,10 @@
+<node oor:name="MS Excel 2007 XML" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xlsm xlsx</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Calc MS Excel 2007 XML</value></prop>
+ <prop oor:name="UIName"><value xml:lang="x-default">Microsoft Excel 2007 XML</value></prop>
+ <prop oor:name="ClipboardFormat"/>
+</node>
diff --git a/filter/source/config/fragments/types/MS_Excel_2007_XML_Template.xcu b/filter/source/config/fragments/types/MS_Excel_2007_XML_Template.xcu
new file mode 100644
index 000000000000..5aa05abd7010
--- /dev/null
+++ b/filter/source/config/fragments/types/MS_Excel_2007_XML_Template.xcu
@@ -0,0 +1,10 @@
+<node oor:name="MS Excel 2007 XML Template" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xltm xltx</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Calc MS Excel 2007 XML Template</value></prop>
+ <prop oor:name="UIName"><value xml:lang="x-default">Microsoft Excel 2007 XML Template</value></prop>
+ <prop oor:name="ClipboardFormat"/>
+</node>
diff --git a/filter/source/config/fragments/types/MS_PowerPoint_2007_XML.xcu b/filter/source/config/fragments/types/MS_PowerPoint_2007_XML.xcu
new file mode 100644
index 000000000000..99f22ee47e7a
--- /dev/null
+++ b/filter/source/config/fragments/types/MS_PowerPoint_2007_XML.xcu
@@ -0,0 +1,10 @@
+<node oor:name="MS PowerPoint 2007 XML" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>pptm pptx</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>true</value></prop>
+ <prop oor:name="PreferredFilter"><value>Impress MS PowerPoint 2007 XML</value></prop>
+ <prop oor:name="UIName"><value xml:lang="x-default">Microsoft PowerPoint 2007 XML</value></prop>
+ <prop oor:name="ClipboardFormat"/>
+</node>
diff --git a/filter/source/config/fragments/types/MS_PowerPoint_2007_XML_Template.xcu b/filter/source/config/fragments/types/MS_PowerPoint_2007_XML_Template.xcu
new file mode 100644
index 000000000000..9341c3c57c31
--- /dev/null
+++ b/filter/source/config/fragments/types/MS_PowerPoint_2007_XML_Template.xcu
@@ -0,0 +1,10 @@
+<node oor:name="MS PowerPoint 2007 XML Template" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>potm potx</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>true</value></prop>
+ <prop oor:name="PreferredFilter"><value>Impress MS PowerPoint 2007 XML Template</value></prop>
+ <prop oor:name="UIName"><value>Microsoft PowerPoint 2007 XML Template</value></prop>
+ <prop oor:name="ClipboardFormat"/>
+</node>
diff --git a/filter/source/config/fragments/types/StarBase.xcu b/filter/source/config/fragments/types/StarBase.xcu
new file mode 100644
index 000000000000..85d8b7a7e5f1
--- /dev/null
+++ b/filter/source/config/fragments/types/StarBase.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="StarBase" oor:op="replace">
+ <prop oor:name="DetectService"><value>org.openoffice.comp.dbflt.DBTypeDetection</value></prop>
+ <prop oor:name="URLPattern"><value>private:factory/sdatabase*</value></prop>
+ <prop oor:name="Extensions"><value>odb</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.sun.xml.base</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarOffice XML (Base)</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">OpenDocument Database</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarBase 6.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/Unified_Office_Format_presentation.xcu b/filter/source/config/fragments/types/Unified_Office_Format_presentation.xcu
new file mode 100644
index 000000000000..f814eb998b5f
--- /dev/null
+++ b/filter/source/config/fragments/types/Unified_Office_Format_presentation.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="Unified_Office_Format_presentation" oor:op="replace">
+ <prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value oor:separator=";">uop;uof</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"/>
+ <prop oor:name="UIName">
+ <value>Unified Office Format presentation</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>doctype:vnd.uof.presentation</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/Unified_Office_Format_spreadsheet.xcu b/filter/source/config/fragments/types/Unified_Office_Format_spreadsheet.xcu
new file mode 100644
index 000000000000..a8bae7e1ed2d
--- /dev/null
+++ b/filter/source/config/fragments/types/Unified_Office_Format_spreadsheet.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="Unified_Office_Format_spreadsheet" oor:op="replace">
+ <prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value oor:separator=";">uos;uof</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"/>
+ <prop oor:name="UIName">
+ <value>Unified Office Format spreadsheet</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>doctype:vnd.uof.spreadsheet</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/Unified_Office_Format_text.xcu b/filter/source/config/fragments/types/Unified_Office_Format_text.xcu
new file mode 100644
index 000000000000..76bf0e5fffa9
--- /dev/null
+++ b/filter/source/config/fragments/types/Unified_Office_Format_text.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="Unified_Office_Format_text" oor:op="replace">
+ <prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value oor:separator=";">uot;uof</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"/>
+ <prop oor:name="UIName">
+ <value>Unified Office Format text</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>doctype:vnd.uof.text</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/XHTML_File.xcu b/filter/source/config/fragments/types/XHTML_File.xcu
new file mode 100644
index 000000000000..ea594b1aaf5f
--- /dev/null
+++ b/filter/source/config/fragments/types/XHTML_File.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="XHTML_File" oor:op="replace">
+ <prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>html xhtml</value></prop>
+ <prop oor:name="MediaType"><value>application/xhtml+xml</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"/>
+ <prop oor:name="UIName">
+ <value>XHTML</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/bmp_MS_Windows.xcu b/filter/source/config/fragments/types/bmp_MS_Windows.xcu
new file mode 100644
index 000000000000..a344333abaa0
--- /dev/null
+++ b/filter/source/config/fragments/types/bmp_MS_Windows.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="bmp_MS_Windows" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>bmp</value></prop>
+ <prop oor:name="MediaType"><value>image/x-MS-bmp</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>BMP - MS Windows</value></prop>
+ <prop oor:name="UIName">
+ <value>BMP - Windows Bitmap</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/calc8.xcu b/filter/source/config/fragments/types/calc8.xcu
new file mode 100644
index 000000000000..f351e0c14c5d
--- /dev/null
+++ b/filter/source/config/fragments/types/calc8.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc8" oor:op="replace">
+ <prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"><value>private:factory/scalc*</value></prop>
+ <prop oor:name="Extensions"><value>ods</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.spreadsheet</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>calc8</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Calc 8</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Calc 8</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/calc8_template.xcu b/filter/source/config/fragments/types/calc8_template.xcu
new file mode 100644
index 000000000000..933cbc84ab34
--- /dev/null
+++ b/filter/source/config/fragments/types/calc8_template.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc8_template" oor:op="replace">
+ <prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>ots</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.spreadsheet-template</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>calc8_template</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Calc 8 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Calc 8 Template</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_DIF.xcu b/filter/source/config/fragments/types/calc_DIF.xcu
new file mode 100644
index 000000000000..f2c8a8e9d247
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_DIF.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_DIF" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>dif</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>DIF</value></prop>
+ <prop oor:name="UIName">
+ <value>Data Interchange Format</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_Lotus.xcu b/filter/source/config/fragments/types/calc_Lotus.xcu
new file mode 100644
index 000000000000..5e4581301586
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_Lotus.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_Lotus" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wk1 wks 123</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>true</value></prop>
+ <prop oor:name="PreferredFilter"><value>Lotus</value></prop>
+ <prop oor:name="UIName">
+ <value>Lotus</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_MS_Excel_2003_XML.xcu b/filter/source/config/fragments/types/calc_MS_Excel_2003_XML.xcu
new file mode 100644
index 000000000000..a3af765eaeb4
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_MS_Excel_2003_XML.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_MS_Excel_2003_XML" oor:op="replace">
+ <prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xml</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Excel 2003 XML</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Microsoft Excel 2003 XML</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>doctype:Workbook</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_MS_Excel_40.xcu b/filter/source/config/fragments/types/calc_MS_Excel_40.xcu
new file mode 100644
index 000000000000..939a0a4025ad
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_MS_Excel_40.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_MS_Excel_40" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.oox.xls.BiffDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xls xlw xlc xlm</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.ms-excel</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Excel 4.0</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft Excel 4.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_MS_Excel_40_VorlageTemplate.xcu b/filter/source/config/fragments/types/calc_MS_Excel_40_VorlageTemplate.xcu
new file mode 100644
index 000000000000..291382df43b6
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_MS_Excel_40_VorlageTemplate.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_MS_Excel_40_VorlageTemplate" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.oox.xls.BiffDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xlt</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.ms-excel</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Excel 4.0 Vorlage/Template</value></prop>
+ <prop oor:name="UIName">
+ <value>MS Excel 4.0 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_MS_Excel_5095.xcu b/filter/source/config/fragments/types/calc_MS_Excel_5095.xcu
new file mode 100644
index 000000000000..5656b73f57dd
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_MS_Excel_5095.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_MS_Excel_5095" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.oox.xls.BiffDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xls xlc xlm xlw</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.ms-excel</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Excel 5.0/95</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft Excel 5.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Biff5</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_MS_Excel_5095_VorlageTemplate.xcu b/filter/source/config/fragments/types/calc_MS_Excel_5095_VorlageTemplate.xcu
new file mode 100644
index 000000000000..9c1799dfe405
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_MS_Excel_5095_VorlageTemplate.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_MS_Excel_5095_VorlageTemplate" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.oox.xls.BiffDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xlt</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.ms-excel</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Excel 5.0/95 Vorlage/Template</value></prop>
+ <prop oor:name="UIName">
+ <value>MS Excel 5.0 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Biff5</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_MS_Excel_95.xcu b/filter/source/config/fragments/types/calc_MS_Excel_95.xcu
new file mode 100644
index 000000000000..8e02ea8f088d
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_MS_Excel_95.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_MS_Excel_95" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.oox.xls.BiffDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xls xlc xlm xlw</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.ms-excel</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Excel 95</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft Excel 95</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Biff5</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_MS_Excel_95_VorlageTemplate.xcu b/filter/source/config/fragments/types/calc_MS_Excel_95_VorlageTemplate.xcu
new file mode 100644
index 000000000000..bc80367624f3
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_MS_Excel_95_VorlageTemplate.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_MS_Excel_95_VorlageTemplate" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.oox.xls.BiffDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xlt</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.ms-excel</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Excel 95 Vorlage/Template</value></prop>
+ <prop oor:name="UIName">
+ <value>MS Excel 95 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Biff5</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_MS_Excel_97.xcu b/filter/source/config/fragments/types/calc_MS_Excel_97.xcu
new file mode 100644
index 000000000000..ab71bc304247
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_MS_Excel_97.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_MS_Excel_97" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.oox.xls.BiffDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xls xlc xlm xlw</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.ms-excel</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Excel 97</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft Excel 97/2000/XP</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Biff8</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_MS_Excel_97_VorlageTemplate.xcu b/filter/source/config/fragments/types/calc_MS_Excel_97_VorlageTemplate.xcu
new file mode 100644
index 000000000000..ff390ce3d376
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_MS_Excel_97_VorlageTemplate.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_MS_Excel_97_VorlageTemplate" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.oox.xls.BiffDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xlt</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.ms-excel</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Excel 97 Vorlage/Template</value></prop>
+ <prop oor:name="UIName">
+ <value>MS Excel 97/2000 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Biff8</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_MiniCalc_PalmDB_File.xcu b/filter/source/config/fragments/types/calc_MiniCalc_PalmDB_File.xcu
new file mode 100644
index 000000000000..7362f8308b52
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_MiniCalc_PalmDB_File.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_MiniCalc_PalmDB_File" oor:op="replace" >
+ <prop oor:name="DetectService"/>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>pdb</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MiniCalc (Palm)</value></prop>
+ <prop oor:name="UIName">
+ <value>MiniCalc (Palm)</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_Pocket_Excel_File.xcu b/filter/source/config/fragments/types/calc_Pocket_Excel_File.xcu
new file mode 100644
index 000000000000..6be3877cdc81
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_Pocket_Excel_File.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_Pocket_Excel_File" oor:op="replace" >
+ <prop oor:name="DetectService"/>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>pxl</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Pocket Excel</value></prop>
+ <prop oor:name="UIName">
+ <value>Pocket Excel</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_QPro.xcu b/filter/source/config/fragments/types/calc_QPro.xcu
new file mode 100644
index 000000000000..751b534fb511
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_QPro.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_QPro" oor:op="replace" oor:finalized="true" oor:mandatory="true">
+ <prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wb2</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>true</value></prop>
+ <prop oor:name="PreferredFilter"><value>Quattro Pro 6.0</value></prop>
+ <prop oor:name="UIName">
+ <value>Quattro Pro 6.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_SYLK.xcu b/filter/source/config/fragments/types/calc_SYLK.xcu
new file mode 100644
index 000000000000..bcc970a91987
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_SYLK.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_SYLK" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>slk</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>SYLK</value></prop>
+ <prop oor:name="UIName">
+ <value>SYLK</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_StarCalc_10.xcu b/filter/source/config/fragments/types/calc_StarCalc_10.xcu
new file mode 100644
index 000000000000..0a90e4001b97
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_StarCalc_10.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_StarCalc_10" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sdc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarCalc 1.0</value></prop>
+ <prop oor:name="UIName">
+ <value>StarCalc 1.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_StarCalc_30.xcu b/filter/source/config/fragments/types/calc_StarCalc_30.xcu
new file mode 100644
index 000000000000..27f46b7ad70a
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_StarCalc_30.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_StarCalc_30" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sdc</value></prop>
+ <prop oor:name="MediaType"><value>application/x-starcalc</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarCalc 3.0</value></prop>
+ <prop oor:name="UIName">
+ <value>StarCalc 3.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarCalcDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_StarCalc_30_VorlageTemplate.xcu b/filter/source/config/fragments/types/calc_StarCalc_30_VorlageTemplate.xcu
new file mode 100644
index 000000000000..866b5efa7c1b
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_StarCalc_30_VorlageTemplate.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_StarCalc_30_VorlageTemplate" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>vor</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarCalc 3.0 Vorlage/Template</value></prop>
+ <prop oor:name="UIName">
+ <value>StarCalc 3.0 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarCalcDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_StarCalc_40.xcu b/filter/source/config/fragments/types/calc_StarCalc_40.xcu
new file mode 100644
index 000000000000..a794e57d4cc6
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_StarCalc_40.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_StarCalc_40" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sdc</value></prop>
+ <prop oor:name="MediaType"><value>application/x-starcalc</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarCalc 4.0</value></prop>
+ <prop oor:name="UIName">
+ <value>StarCalc 4.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarCalc 4.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_StarCalc_40_VorlageTemplate.xcu b/filter/source/config/fragments/types/calc_StarCalc_40_VorlageTemplate.xcu
new file mode 100644
index 000000000000..f16c7510bf20
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_StarCalc_40_VorlageTemplate.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_StarCalc_40_VorlageTemplate" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>vor</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarCalc 4.0 Vorlage/Template</value></prop>
+ <prop oor:name="UIName">
+ <value>StarCalc 4.0 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarCalc 4.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_StarCalc_50.xcu b/filter/source/config/fragments/types/calc_StarCalc_50.xcu
new file mode 100644
index 000000000000..f3659cdcd203
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_StarCalc_50.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_StarCalc_50" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sdc</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.stardivision.calc</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarCalc 5.0</value></prop>
+ <prop oor:name="UIName">
+ <value>StarCalc 5.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarCalc 5.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_StarCalc_50_VorlageTemplate.xcu b/filter/source/config/fragments/types/calc_StarCalc_50_VorlageTemplate.xcu
new file mode 100644
index 000000000000..e517605c5756
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_StarCalc_50_VorlageTemplate.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_StarCalc_50_VorlageTemplate" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>vor</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarCalc 5.0 Vorlage/Template</value></prop>
+ <prop oor:name="UIName">
+ <value>StarCalc 5.0 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarCalc 5.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_StarOffice_XML_Calc.xcu b/filter/source/config/fragments/types/calc_StarOffice_XML_Calc.xcu
new file mode 100644
index 000000000000..9a37858f5fa7
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_StarOffice_XML_Calc.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_StarOffice_XML_Calc" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sxc</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.sun.xml.calc</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarOffice XML (Calc)</value></prop>
+ <prop oor:name="UIName">
+ <value>Calc 6.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Calc 6.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_StarOffice_XML_Calc_Template.xcu b/filter/source/config/fragments/types/calc_StarOffice_XML_Calc_Template.xcu
new file mode 100644
index 000000000000..022e6acfae29
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_StarOffice_XML_Calc_Template.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_StarOffice_XML_Calc_Template" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>stc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>calc_StarOffice_XML_Calc_Template</value></prop>
+ <prop oor:name="UIName">
+ <value>Calc 6.0 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Calc 6.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_Text_txt_csv_StarCalc.xcu b/filter/source/config/fragments/types/calc_Text_txt_csv_StarCalc.xcu
new file mode 100644
index 000000000000..708717263917
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_Text_txt_csv_StarCalc.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_Text_txt_csv_StarCalc" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>csv txt</value></prop>
+ <prop oor:name="MediaType"><value>text/plain</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Text - txt - csv (StarCalc)</value></prop>
+ <prop oor:name="UIName">
+ <value>Text - txt - csv (StarOffice Calc)</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/calc_dBase.xcu b/filter/source/config/fragments/types/calc_dBase.xcu
new file mode 100644
index 000000000000..e2707d4b00f3
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_dBase.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="calc_dBase" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.calc.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>dbf</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>dBase</value></prop>
+ <prop oor:name="UIName">
+ <value>dBASE</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/chart8.xcu b/filter/source/config/fragments/types/chart8.xcu
new file mode 100644
index 000000000000..22e6d7d15e36
--- /dev/null
+++ b/filter/source/config/fragments/types/chart8.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="chart8" oor:op="replace">
+ <prop oor:name="DetectService"/>
+ <prop oor:name="URLPattern"><value>private:factory/schart*</value></prop>
+ <prop oor:name="Extensions"><value>odc</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.chart</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>chart8</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Chart 8</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Chart 8</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/chart_StarChart_30.xcu b/filter/source/config/fragments/types/chart_StarChart_30.xcu
new file mode 100644
index 000000000000..f42c5b6c9f05
--- /dev/null
+++ b/filter/source/config/fragments/types/chart_StarChart_30.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="chart_StarChart_30" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sds</value></prop>
+ <prop oor:name="MediaType"><value>application/x-starchart</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarChart 3.0</value></prop>
+ <prop oor:name="UIName">
+ <value>StarChart 3.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarChartDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/chart_StarChart_40.xcu b/filter/source/config/fragments/types/chart_StarChart_40.xcu
new file mode 100644
index 000000000000..a1ce87af1abe
--- /dev/null
+++ b/filter/source/config/fragments/types/chart_StarChart_40.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="chart_StarChart_40" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sds</value></prop>
+ <prop oor:name="MediaType"><value>application/x-starchart</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarChart 4.0</value></prop>
+ <prop oor:name="UIName">
+ <value>StarChart 4.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarChartDocument 4.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/chart_StarChart_50.xcu b/filter/source/config/fragments/types/chart_StarChart_50.xcu
new file mode 100644
index 000000000000..79ff33234b6a
--- /dev/null
+++ b/filter/source/config/fragments/types/chart_StarChart_50.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="chart_StarChart_50" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sds</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.stardivision.chart</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarChart 5.0</value></prop>
+ <prop oor:name="UIName">
+ <value>StarChart 5.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarChart 5.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/chart_StarOffice_XML_Chart.xcu b/filter/source/config/fragments/types/chart_StarOffice_XML_Chart.xcu
new file mode 100644
index 000000000000..1d581ae3b87c
--- /dev/null
+++ b/filter/source/config/fragments/types/chart_StarOffice_XML_Chart.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="chart_StarOffice_XML_Chart" oor:op="replace" oor:finalized="true" oor:mandatory="true">
+ <prop oor:name="DetectService"/>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sxs</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.sun.xml.chart</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarOffice XML (Chart)</value></prop>
+ <prop oor:name="UIName">
+ <value>Chart 6.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Chart 6.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/component_Bibliography.xcu b/filter/source/config/fragments/types/component_Bibliography.xcu
new file mode 100644
index 000000000000..dac9d9e2f19c
--- /dev/null
+++ b/filter/source/config/fragments/types/component_Bibliography.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="component_Bibliography" oor:op="replace" >
+ <prop oor:name="URLPattern"><value>.component:Bibliography/*</value></prop>
+ <prop oor:name="Extensions"/>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="UIName">
+ <value>Bibliography component</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ <prop oor:name="DetectService"/>
+ <prop oor:name="PreferredFilter"/>
+ </node>
diff --git a/filter/source/config/fragments/types/component_DB.xcu b/filter/source/config/fragments/types/component_DB.xcu
new file mode 100644
index 000000000000..7fe591eda872
--- /dev/null
+++ b/filter/source/config/fragments/types/component_DB.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="component_DB" oor:op="replace" >
+ <prop oor:name="URLPattern"><value>.component:DB*</value></prop>
+ <prop oor:name="Extensions"/>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="UIName">
+ <value>DB component</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ <prop oor:name="DetectService"/>
+ <prop oor:name="PreferredFilter"/>
+ </node>
diff --git a/filter/source/config/fragments/types/draw8.xcu b/filter/source/config/fragments/types/draw8.xcu
new file mode 100644
index 000000000000..b74358397bff
--- /dev/null
+++ b/filter/source/config/fragments/types/draw8.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="draw8" oor:op="replace">
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"><value>private:factory/sdraw*</value></prop>
+ <prop oor:name="Extensions"><value>odg</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.graphics</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>draw8</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Draw 8</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Draw 8</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/draw8_template.xcu b/filter/source/config/fragments/types/draw8_template.xcu
new file mode 100644
index 000000000000..aac3d5e7b1eb
--- /dev/null
+++ b/filter/source/config/fragments/types/draw8_template.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="draw8_template" oor:op="replace">
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>otg</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.graphics-template</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>draw8_template</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Draw 8 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Draw 8 Template</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/draw_StarDraw_30.xcu b/filter/source/config/fragments/types/draw_StarDraw_30.xcu
new file mode 100644
index 000000000000..208b247662b7
--- /dev/null
+++ b/filter/source/config/fragments/types/draw_StarDraw_30.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="draw_StarDraw_30" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sdd</value></prop>
+ <prop oor:name="MediaType"><value>application/x-stardraw</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarDraw 3.0 (StarImpress)</value></prop>
+ <prop oor:name="UIName">
+ <value>StarDraw 3.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarDrawDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/draw_StarDraw_30_Vorlage.xcu b/filter/source/config/fragments/types/draw_StarDraw_30_Vorlage.xcu
new file mode 100644
index 000000000000..f618780b0de9
--- /dev/null
+++ b/filter/source/config/fragments/types/draw_StarDraw_30_Vorlage.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="draw_StarDraw_30_Vorlage" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>vor</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarDraw 3.0 Vorlage</value></prop>
+ <prop oor:name="UIName">
+ <value>StarDraw 3.0 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarDrawDocument </value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/draw_StarDraw_50.xcu b/filter/source/config/fragments/types/draw_StarDraw_50.xcu
new file mode 100644
index 000000000000..18340f2a7937
--- /dev/null
+++ b/filter/source/config/fragments/types/draw_StarDraw_50.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="draw_StarDraw_50" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sda</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.stardivision.draw</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarDraw 5.0</value></prop>
+ <prop oor:name="UIName">
+ <value>StarDraw 5.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarDraw 5.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/draw_StarDraw_50_Vorlage.xcu b/filter/source/config/fragments/types/draw_StarDraw_50_Vorlage.xcu
new file mode 100644
index 000000000000..5063da9bbdfb
--- /dev/null
+++ b/filter/source/config/fragments/types/draw_StarDraw_50_Vorlage.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="draw_StarDraw_50_Vorlage" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>vor</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarDraw 5.0 Vorlage</value></prop>
+ <prop oor:name="UIName">
+ <value>StarDraw 5.0 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarDraw 5.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/draw_StarOffice_XML_Draw.xcu b/filter/source/config/fragments/types/draw_StarOffice_XML_Draw.xcu
new file mode 100644
index 000000000000..9bae1925f977
--- /dev/null
+++ b/filter/source/config/fragments/types/draw_StarOffice_XML_Draw.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="draw_StarOffice_XML_Draw" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sxd</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.sun.xml.draw</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarOffice XML (Draw)</value></prop>
+ <prop oor:name="UIName">
+ <value>%productname% %formatversion% Zeichnung</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Draw 6.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/draw_StarOffice_XML_Draw_Template.xcu b/filter/source/config/fragments/types/draw_StarOffice_XML_Draw_Template.xcu
new file mode 100644
index 000000000000..6367ec382ac2
--- /dev/null
+++ b/filter/source/config/fragments/types/draw_StarOffice_XML_Draw_Template.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="draw_StarOffice_XML_Draw_Template" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>std</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>draw_StarOffice_XML_Draw_Template</value></prop>
+ <prop oor:name="UIName">
+ <value>Draw 6.0 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Draw 6.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/dxf_AutoCAD_Interchange.xcu b/filter/source/config/fragments/types/dxf_AutoCAD_Interchange.xcu
new file mode 100644
index 000000000000..d7df23807f1f
--- /dev/null
+++ b/filter/source/config/fragments/types/dxf_AutoCAD_Interchange.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="dxf_AutoCAD_Interchange" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>dxf</value></prop>
+ <prop oor:name="MediaType"><value>image/vnd.dxf</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>DXF - AutoCAD Interchange</value></prop>
+ <prop oor:name="UIName">
+ <value>DXF - AutoCAD Interchange Format</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/emf_MS_Windows_Metafile.xcu b/filter/source/config/fragments/types/emf_MS_Windows_Metafile.xcu
new file mode 100644
index 000000000000..3f2789c161b8
--- /dev/null
+++ b/filter/source/config/fragments/types/emf_MS_Windows_Metafile.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="emf_MS_Windows_Metafile" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>emf</value></prop>
+ <prop oor:name="MediaType"><value>image/x-emf</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>EMF - MS Windows Metafile</value></prop>
+ <prop oor:name="UIName">
+ <value>EMF - Enhanced Meta File</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/eps_Encapsulated_PostScript.xcu b/filter/source/config/fragments/types/eps_Encapsulated_PostScript.xcu
new file mode 100644
index 000000000000..32fdda46d7f7
--- /dev/null
+++ b/filter/source/config/fragments/types/eps_Encapsulated_PostScript.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="eps_Encapsulated_PostScript" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>eps</value></prop>
+ <prop oor:name="MediaType"><value>image/x-eps</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>EPS - Encapsulated PostScript</value></prop>
+ <prop oor:name="UIName">
+ <value>EPS - Encapsulated PostScript</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/gif_Graphics_Interchange.xcu b/filter/source/config/fragments/types/gif_Graphics_Interchange.xcu
new file mode 100644
index 000000000000..13eed4ad46ea
--- /dev/null
+++ b/filter/source/config/fragments/types/gif_Graphics_Interchange.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="gif_Graphics_Interchange" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>gif</value></prop>
+ <prop oor:name="MediaType"><value>image/gif</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>GIF - Graphics Interchange</value></prop>
+ <prop oor:name="UIName">
+ <value>GIF - Graphics Interchange</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/graphic_HTML.xcu b/filter/source/config/fragments/types/graphic_HTML.xcu
new file mode 100644
index 000000000000..7c834cccf687
--- /dev/null
+++ b/filter/source/config/fragments/types/graphic_HTML.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="graphic_HTML" oor:op="replace" >
+ <prop oor:name="DetectService"/>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>html htm</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</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/graphic_SWF.xcu b/filter/source/config/fragments/types/graphic_SWF.xcu
new file mode 100644
index 000000000000..ce67250d0854
--- /dev/null
+++ b/filter/source/config/fragments/types/graphic_SWF.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="graphic_SWF" oor:op="replace" >
+ <prop oor:name="DetectService"/>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>swf</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"/>
+ <prop oor:name="UIName">
+ <value>Macromedia Flash (SWF)</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/impress8.xcu b/filter/source/config/fragments/types/impress8.xcu
new file mode 100644
index 000000000000..8242aac979ec
--- /dev/null
+++ b/filter/source/config/fragments/types/impress8.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="impress8" oor:op="replace">
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"><value>private:factory/simpress*</value></prop>
+ <prop oor:name="Extensions"><value>odp</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.presentation</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>impress8</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Impress 8</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Impress 8</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/impress8_template.xcu b/filter/source/config/fragments/types/impress8_template.xcu
new file mode 100644
index 000000000000..9b1a49261eb9
--- /dev/null
+++ b/filter/source/config/fragments/types/impress8_template.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="impress8_template" oor:op="replace">
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>otp</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.presentation-template</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>impress8_template</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Impress 8 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Impress 8 Template</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/impress_CGM_Computer_Graphics_Metafile.xcu b/filter/source/config/fragments/types/impress_CGM_Computer_Graphics_Metafile.xcu
new file mode 100644
index 000000000000..5f30bb455a4c
--- /dev/null
+++ b/filter/source/config/fragments/types/impress_CGM_Computer_Graphics_Metafile.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="impress_CGM_Computer_Graphics_Metafile" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>cgm</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>CGM - Computer Graphics Metafile</value></prop>
+ <prop oor:name="UIName">
+ <value>CGM - Computer Graphics Metafile</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/impress_MS_PowerPoint_97.xcu b/filter/source/config/fragments/types/impress_MS_PowerPoint_97.xcu
new file mode 100644
index 000000000000..3584127fed3a
--- /dev/null
+++ b/filter/source/config/fragments/types/impress_MS_PowerPoint_97.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="impress_MS_PowerPoint_97" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>ppt pps</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.ms-powerpoint</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS PowerPoint 97</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft PowerPoint 97/2000/XP</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/impress_MS_PowerPoint_97_Vorlage.xcu b/filter/source/config/fragments/types/impress_MS_PowerPoint_97_Vorlage.xcu
new file mode 100644
index 000000000000..6e9690e4c554
--- /dev/null
+++ b/filter/source/config/fragments/types/impress_MS_PowerPoint_97_Vorlage.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="impress_MS_PowerPoint_97_Vorlage" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>pot</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.ms-powerpoint</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS PowerPoint 97 Vorlage</value></prop>
+ <prop oor:name="UIName">
+ <value>MS PowerPoint 97/2000 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/impress_StarImpress_40.xcu b/filter/source/config/fragments/types/impress_StarImpress_40.xcu
new file mode 100644
index 000000000000..bdb4c6516b63
--- /dev/null
+++ b/filter/source/config/fragments/types/impress_StarImpress_40.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="impress_StarImpress_40" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sdd</value></prop>
+ <prop oor:name="MediaType"><value>application/x-starimpress</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarImpress 4.0</value></prop>
+ <prop oor:name="UIName">
+ <value>StarImpress 4.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarDrawDocument 4.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/impress_StarImpress_40_Vorlage.xcu b/filter/source/config/fragments/types/impress_StarImpress_40_Vorlage.xcu
new file mode 100644
index 000000000000..76db489ac6f0
--- /dev/null
+++ b/filter/source/config/fragments/types/impress_StarImpress_40_Vorlage.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="impress_StarImpress_40_Vorlage" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>vor</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarImpress 4.0 Vorlage</value></prop>
+ <prop oor:name="UIName">
+ <value>StarImpress 4.0 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarDrawDocument 4.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/impress_StarImpress_50.xcu b/filter/source/config/fragments/types/impress_StarImpress_50.xcu
new file mode 100644
index 000000000000..32b54804f077
--- /dev/null
+++ b/filter/source/config/fragments/types/impress_StarImpress_50.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="impress_StarImpress_50" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sdd</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.stardivision.impress</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarImpress 5.0</value></prop>
+ <prop oor:name="UIName">
+ <value>StarImpress 5.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarImpress 5.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/impress_StarImpress_50_Vorlage.xcu b/filter/source/config/fragments/types/impress_StarImpress_50_Vorlage.xcu
new file mode 100644
index 000000000000..e0538927e440
--- /dev/null
+++ b/filter/source/config/fragments/types/impress_StarImpress_50_Vorlage.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="impress_StarImpress_50_Vorlage" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>vor</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarImpress 5.0 Vorlage</value></prop>
+ <prop oor:name="UIName">
+ <value>StarImpress 5.0 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarImpress 5.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/impress_StarImpress_50_packed.xcu b/filter/source/config/fragments/types/impress_StarImpress_50_packed.xcu
new file mode 100644
index 000000000000..8a9f02a439e0
--- /dev/null
+++ b/filter/source/config/fragments/types/impress_StarImpress_50_packed.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="impress_StarImpress_50_packed" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sdp</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.stardivision.impress-packed</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarImpress 5.0 (packed)</value></prop>
+ <prop oor:name="UIName">
+ <value>StarImpress (packed)</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/impress_StarOffice_XML_Impress.xcu b/filter/source/config/fragments/types/impress_StarOffice_XML_Impress.xcu
new file mode 100644
index 000000000000..e015eff35e5b
--- /dev/null
+++ b/filter/source/config/fragments/types/impress_StarOffice_XML_Impress.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="impress_StarOffice_XML_Impress" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sxi</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.sun.xml.impress</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarOffice XML (Impress)</value></prop>
+ <prop oor:name="UIName">
+ <value>%productname% %formatversion% Präsentation</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Impress 6.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/impress_StarOffice_XML_Impress_Template.xcu b/filter/source/config/fragments/types/impress_StarOffice_XML_Impress_Template.xcu
new file mode 100644
index 000000000000..764e822d1cbb
--- /dev/null
+++ b/filter/source/config/fragments/types/impress_StarOffice_XML_Impress_Template.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="impress_StarOffice_XML_Impress_Template" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sti</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>impress_StarOffice_XML_Impress_Template</value></prop>
+ <prop oor:name="UIName">
+ <value>Impress 6.0 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Impress 6.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/jpg_JPEG.xcu b/filter/source/config/fragments/types/jpg_JPEG.xcu
new file mode 100644
index 000000000000..00ca0bff41de
--- /dev/null
+++ b/filter/source/config/fragments/types/jpg_JPEG.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="jpg_JPEG" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>jpg jpeg jfif jif jpe</value></prop>
+ <prop oor:name="MediaType"><value>image/jpeg</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>JPG - JPEG</value></prop>
+ <prop oor:name="UIName">
+ <value>JPEG - Joint Photographic Experts Group</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/makefile.mk b/filter/source/config/fragments/types/makefile.mk
new file mode 100644
index 000000000000..67ad14b038a2
--- /dev/null
+++ b/filter/source/config/fragments/types/makefile.mk
@@ -0,0 +1,54 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ = ..$/..$/..$/..
+TARGET = FCFGPkgTypes
+PRJNAME = filter
+
+# -----------------------------------------------------------------------------
+# include global settings
+# -----------------------------------------------------------------------------
+
+.INCLUDE: settings.mk
+
+# -----------------------------------------------------------------------------
+# build nothing!
+# This makefile is a fake, to force localization of types
+# in combination with our data base tool!
+# -----------------------------------------------------------------------------
+
+TYPES_LIST= \
+ $(BIN)$/dummy.dummy
+
+.INCLUDE: target.mk
+
+.IF "$(SOLAR_JAVA)"!=""
+ALLTAR: $(TYPES_LIST)
+.ENDIF
+
+$(TYPES_LIST) :
+ @echo "localize types ..."
diff --git a/filter/source/config/fragments/types/math8.xcu b/filter/source/config/fragments/types/math8.xcu
new file mode 100644
index 000000000000..e33c2d6f88ae
--- /dev/null
+++ b/filter/source/config/fragments/types/math8.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="math8" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.math.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"><value>private:factory/smath*</value></prop>
+ <prop oor:name="Extensions"><value>odf</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.formula</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>math8</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Math 8</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Math 8</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/math_MathML_XML_Math.xcu b/filter/source/config/fragments/types/math_MathML_XML_Math.xcu
new file mode 100644
index 000000000000..ae79854aae5c
--- /dev/null
+++ b/filter/source/config/fragments/types/math_MathML_XML_Math.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="math_MathML_XML_Math" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.math.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>mml</value></prop>
+ <prop oor:name="MediaType"><value>application/mathml+xml</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MathML XML (Math)</value></prop>
+ <prop oor:name="UIName">
+ <value>MathML 1.01</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/math_MathType_3x.xcu b/filter/source/config/fragments/types/math_MathType_3x.xcu
new file mode 100644
index 000000000000..3b3c88b3f1a7
--- /dev/null
+++ b/filter/source/config/fragments/types/math_MathType_3x.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="math_MathType_3x" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.math.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xxx</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MathType 3.x</value></prop>
+ <prop oor:name="UIName">
+ <value>MathType3.x</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>DS Equation</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/math_StarMath_20.xcu b/filter/source/config/fragments/types/math_StarMath_20.xcu
new file mode 100644
index 000000000000..3870f92cd83f
--- /dev/null
+++ b/filter/source/config/fragments/types/math_StarMath_20.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="math_StarMath_20" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.math.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>smf</value></prop>
+ <prop oor:name="MediaType"><value>application/x-starmath</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarMath 2.0</value></prop>
+ <prop oor:name="UIName">
+ <value>StarMath 2.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/math_StarMath_30.xcu b/filter/source/config/fragments/types/math_StarMath_30.xcu
new file mode 100644
index 000000000000..f2410d3bcb77
--- /dev/null
+++ b/filter/source/config/fragments/types/math_StarMath_30.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="math_StarMath_30" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>smf</value></prop>
+ <prop oor:name="MediaType"><value>application/x-starmath</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarMath 3.0</value></prop>
+ <prop oor:name="UIName">
+ <value>StarMath 3.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarMath</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/math_StarMath_40.xcu b/filter/source/config/fragments/types/math_StarMath_40.xcu
new file mode 100644
index 000000000000..c535af92e0e5
--- /dev/null
+++ b/filter/source/config/fragments/types/math_StarMath_40.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="math_StarMath_40" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>smf</value></prop>
+ <prop oor:name="MediaType"><value>application/x-starmath</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarMath 4.0</value></prop>
+ <prop oor:name="UIName">
+ <value>StarMath 4.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarMathDocument 4.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/math_StarMath_50.xcu b/filter/source/config/fragments/types/math_StarMath_50.xcu
new file mode 100644
index 000000000000..183d55a4b925
--- /dev/null
+++ b/filter/source/config/fragments/types/math_StarMath_50.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="math_StarMath_50" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>smf</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.stardivision.math</value></prop>
+ <prop oor:name="Preferred"><value>true</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarMath 5.0</value></prop>
+ <prop oor:name="UIName">
+ <value>StarMath 5.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarMath 5.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/math_StarOffice_XML_Math.xcu b/filter/source/config/fragments/types/math_StarOffice_XML_Math.xcu
new file mode 100644
index 000000000000..0a5b6db26f77
--- /dev/null
+++ b/filter/source/config/fragments/types/math_StarOffice_XML_Math.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="math_StarOffice_XML_Math" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.math.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sxm</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.sun.xml.math</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarOffice XML (Math)</value></prop>
+ <prop oor:name="UIName">
+ <value>%productname% %formatversion% Formel</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Math 6.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/met_OS2_Metafile.xcu b/filter/source/config/fragments/types/met_OS2_Metafile.xcu
new file mode 100644
index 000000000000..256714f45474
--- /dev/null
+++ b/filter/source/config/fragments/types/met_OS2_Metafile.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="met_OS2_Metafile" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>met</value></prop>
+ <prop oor:name="MediaType"><value>image/x-met</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MET - OS/2 Metafile</value></prop>
+ <prop oor:name="UIName">
+ <value>MET - OS/2 Metafile</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/oxt_OpenOffice_Extension.xcu b/filter/source/config/fragments/types/oxt_OpenOffice_Extension.xcu
new file mode 100644
index 000000000000..67b9ed70d517
--- /dev/null
+++ b/filter/source/config/fragments/types/oxt_OpenOffice_Extension.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="oxt_OpenOffice_Extension" oor:op="replace" >
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>oxt</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="UIName">
+ <value>OpenOffice Extension</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ <prop oor:name="DetectService"><value>com.sun.star.comp.framework.OXTFileHandler</value></prop>
+ <prop oor:name="PreferredFilter"/>
+ </node>
diff --git a/filter/source/config/fragments/types/pbm_Portable_Bitmap.xcu b/filter/source/config/fragments/types/pbm_Portable_Bitmap.xcu
new file mode 100644
index 000000000000..4617f54440d4
--- /dev/null
+++ b/filter/source/config/fragments/types/pbm_Portable_Bitmap.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="pbm_Portable_Bitmap" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>pbm</value></prop>
+ <prop oor:name="MediaType"><value>image/x-portable-bitmap</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>PBM - Portable Bitmap</value></prop>
+ <prop oor:name="UIName">
+ <value>PBM - Portable Bitmap</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/pcd_Photo_CD_Base.xcu b/filter/source/config/fragments/types/pcd_Photo_CD_Base.xcu
new file mode 100644
index 000000000000..2888c0f0ba46
--- /dev/null
+++ b/filter/source/config/fragments/types/pcd_Photo_CD_Base.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="pcd_Photo_CD_Base" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>pcd</value></prop>
+ <prop oor:name="MediaType"><value>image/x-photo-cd</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>draw_PCD_Photo_CD_Base</value></prop>
+ <prop oor:name="UIName">
+ <value>PCD - Photo CD Base</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/pcd_Photo_CD_Base16.xcu b/filter/source/config/fragments/types/pcd_Photo_CD_Base16.xcu
new file mode 100644
index 000000000000..e7bcee7e4c4c
--- /dev/null
+++ b/filter/source/config/fragments/types/pcd_Photo_CD_Base16.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="pcd_Photo_CD_Base16" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>pcd</value></prop>
+ <prop oor:name="MediaType"><value>image/x-photo-cd</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>draw_PCD_Photo_CD_Base16</value></prop>
+ <prop oor:name="UIName">
+ <value>PCD - Photo CD Base16</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/pcd_Photo_CD_Base4.xcu b/filter/source/config/fragments/types/pcd_Photo_CD_Base4.xcu
new file mode 100644
index 000000000000..966a77a47c73
--- /dev/null
+++ b/filter/source/config/fragments/types/pcd_Photo_CD_Base4.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="pcd_Photo_CD_Base4" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>pcd</value></prop>
+ <prop oor:name="MediaType"><value>image/x-photo-cd</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>draw_PCD_Photo_CD_Base4</value></prop>
+ <prop oor:name="UIName">
+ <value>PCD - Photo CD Base4</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/pct_Mac_Pict.xcu b/filter/source/config/fragments/types/pct_Mac_Pict.xcu
new file mode 100644
index 000000000000..b15ffded9dfe
--- /dev/null
+++ b/filter/source/config/fragments/types/pct_Mac_Pict.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="pct_Mac_Pict" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>pct pict</value></prop>
+ <prop oor:name="MediaType"><value>image/x-pict</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>PCT - Mac Pict</value></prop>
+ <prop oor:name="UIName">
+ <value>PCT - Mac Pict</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/pcx_Zsoft_Paintbrush.xcu b/filter/source/config/fragments/types/pcx_Zsoft_Paintbrush.xcu
new file mode 100644
index 000000000000..c4fa34f4d3e2
--- /dev/null
+++ b/filter/source/config/fragments/types/pcx_Zsoft_Paintbrush.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="pcx_Zsoft_Paintbrush" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>pcx</value></prop>
+ <prop oor:name="MediaType"><value>image/x-pcx</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>PCX - Zsoft Paintbrush</value></prop>
+ <prop oor:name="UIName">
+ <value>PCX - Zsoft Paintbrush</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/pdf_Portable_Document_Format.xcu b/filter/source/config/fragments/types/pdf_Portable_Document_Format.xcu
new file mode 100644
index 000000000000..64a09cfc087a
--- /dev/null
+++ b/filter/source/config/fragments/types/pdf_Portable_Document_Format.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="pdf_Portable_Document_Format" oor:op="replace" >
+ <prop oor:name="DetectService"/>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>pdf</value></prop>
+ <prop oor:name="MediaType"><value>application/pdf</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"/>
+ <prop oor:name="UIName">
+ <value>PDF - Portable Document Format</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/pgm_Portable_Graymap.xcu b/filter/source/config/fragments/types/pgm_Portable_Graymap.xcu
new file mode 100644
index 000000000000..35605a54f307
--- /dev/null
+++ b/filter/source/config/fragments/types/pgm_Portable_Graymap.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="pgm_Portable_Graymap" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>pgm</value></prop>
+ <prop oor:name="MediaType"><value>image/x-portable-graymap</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>PGM - Portable Graymap</value></prop>
+ <prop oor:name="UIName">
+ <value>PGM - Portable Graymap</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/png_Portable_Network_Graphic.xcu b/filter/source/config/fragments/types/png_Portable_Network_Graphic.xcu
new file mode 100644
index 000000000000..e95b961c601b
--- /dev/null
+++ b/filter/source/config/fragments/types/png_Portable_Network_Graphic.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="png_Portable_Network_Graphic" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>png</value></prop>
+ <prop oor:name="MediaType"><value>image/png</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>PNG - Portable Network Graphic</value></prop>
+ <prop oor:name="UIName">
+ <value>PNG - Portable Network Graphic</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/ppm_Portable_Pixelmap.xcu b/filter/source/config/fragments/types/ppm_Portable_Pixelmap.xcu
new file mode 100644
index 000000000000..62d9ac07d723
--- /dev/null
+++ b/filter/source/config/fragments/types/ppm_Portable_Pixelmap.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="ppm_Portable_Pixelmap" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>ppm</value></prop>
+ <prop oor:name="MediaType"><value>image/x-portable-pixmap</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>PPM - Portable Pixelmap</value></prop>
+ <prop oor:name="UIName">
+ <value>PPM - Portable Pixelmap</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/psd_Adobe_Photoshop.xcu b/filter/source/config/fragments/types/psd_Adobe_Photoshop.xcu
new file mode 100644
index 000000000000..ad4ce367bb18
--- /dev/null
+++ b/filter/source/config/fragments/types/psd_Adobe_Photoshop.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="psd_Adobe_Photoshop" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>psd</value></prop>
+ <prop oor:name="MediaType"><value>image/vnd.adobe.photoshop</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>PSD - Adobe Photoshop</value></prop>
+ <prop oor:name="UIName">
+ <value>PSD - Adobe Photoshop</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/pwp_PlaceWare.xcu b/filter/source/config/fragments/types/pwp_PlaceWare.xcu
new file mode 100644
index 000000000000..6bcd5e6ae86e
--- /dev/null
+++ b/filter/source/config/fragments/types/pwp_PlaceWare.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="pwp_PlaceWare" oor:op="replace" >
+ <prop oor:name="DetectService"/>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>pwp</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"/>
+ <prop oor:name="UIName">
+ <value>PWP - PlaceWare</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/ras_Sun_Rasterfile.xcu b/filter/source/config/fragments/types/ras_Sun_Rasterfile.xcu
new file mode 100644
index 000000000000..aa4ae085b13e
--- /dev/null
+++ b/filter/source/config/fragments/types/ras_Sun_Rasterfile.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="ras_Sun_Rasterfile" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>ras</value></prop>
+ <prop oor:name="MediaType"><value>image/x-cmu-raster</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>RAS - Sun Rasterfile</value></prop>
+ <prop oor:name="UIName">
+ <value>RAS - Sun Raster Image</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/sgf_StarOffice_Writer_SGF.xcu b/filter/source/config/fragments/types/sgf_StarOffice_Writer_SGF.xcu
new file mode 100644
index 000000000000..c0e8c5aba4df
--- /dev/null
+++ b/filter/source/config/fragments/types/sgf_StarOffice_Writer_SGF.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="sgf_StarOffice_Writer_SGF" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sgf</value></prop>
+ <prop oor:name="MediaType"><value>image/x-sgf</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>SGF - StarOffice Writer SGF</value></prop>
+ <prop oor:name="UIName">
+ <value>SGF - StarWriter SGF</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/sgv_StarDraw_20.xcu b/filter/source/config/fragments/types/sgv_StarDraw_20.xcu
new file mode 100644
index 000000000000..c4778a602111
--- /dev/null
+++ b/filter/source/config/fragments/types/sgv_StarDraw_20.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="sgv_StarDraw_20" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sgv</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>SGV - StarDraw 2.0</value></prop>
+ <prop oor:name="UIName">
+ <value>SGV - StarDraw 2.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/svg_Scalable_Vector_Graphics.xcu b/filter/source/config/fragments/types/svg_Scalable_Vector_Graphics.xcu
new file mode 100644
index 000000000000..37643df4c7ec
--- /dev/null
+++ b/filter/source/config/fragments/types/svg_Scalable_Vector_Graphics.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="svg_Scalable_Vector_Graphics" oor:op="replace" >
+ <prop oor:name="DetectService"/>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>svg</value></prop>
+ <prop oor:name="MediaType"><value>image/svg+xml</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"/>
+ <prop oor:name="UIName">
+ <value>SVG - Scalable Vector Graphics</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/svm_StarView_Metafile.xcu b/filter/source/config/fragments/types/svm_StarView_Metafile.xcu
new file mode 100644
index 000000000000..d7e52dbbb11a
--- /dev/null
+++ b/filter/source/config/fragments/types/svm_StarView_Metafile.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="svm_StarView_Metafile" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>svm</value></prop>
+ <prop oor:name="MediaType"><value>image/x-svm</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>SVM - StarView Metafile</value></prop>
+ <prop oor:name="UIName">
+ <value>SVM - StarView Meta File</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/tga_Truevision_TARGA.xcu b/filter/source/config/fragments/types/tga_Truevision_TARGA.xcu
new file mode 100644
index 000000000000..178d75f47c4d
--- /dev/null
+++ b/filter/source/config/fragments/types/tga_Truevision_TARGA.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="tga_Truevision_TARGA" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>tga</value></prop>
+ <prop oor:name="MediaType"><value>image/x-targa</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>TGA - Truevision TARGA</value></prop>
+ <prop oor:name="UIName">
+ <value>TGA - Truevision Targa</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/tif_Tag_Image_File.xcu b/filter/source/config/fragments/types/tif_Tag_Image_File.xcu
new file mode 100644
index 000000000000..e08689a65e79
--- /dev/null
+++ b/filter/source/config/fragments/types/tif_Tag_Image_File.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="tif_Tag_Image_File" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>tif tiff</value></prop>
+ <prop oor:name="MediaType"><value>image/tiff</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>TIF - Tag Image File</value></prop>
+ <prop oor:name="UIName">
+ <value>TIFF - Tagged Image File Format</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/wav_Wave_Audio_File.xcu b/filter/source/config/fragments/types/wav_Wave_Audio_File.xcu
new file mode 100644
index 000000000000..b4e7d2e65149
--- /dev/null
+++ b/filter/source/config/fragments/types/wav_Wave_Audio_File.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="wav_Wave_Audio_File" oor:op="replace" >
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wav</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="UIName">
+ <value>Wave Audio File</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ <prop oor:name="DetectService"><value>com.sun.star.comp.framework.SoundHandler</value></prop>
+ <prop oor:name="PreferredFilter"/>
+ </node>
diff --git a/filter/source/config/fragments/types/wmf_MS_Windows_Metafile.xcu b/filter/source/config/fragments/types/wmf_MS_Windows_Metafile.xcu
new file mode 100644
index 000000000000..ef02dd3ce7a9
--- /dev/null
+++ b/filter/source/config/fragments/types/wmf_MS_Windows_Metafile.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="wmf_MS_Windows_Metafile" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wmf</value></prop>
+ <prop oor:name="MediaType"><value>image/x-wmf</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WMF - MS Windows Metafile</value></prop>
+ <prop oor:name="UIName">
+ <value>WMF - Windows Metafile</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer8.xcu b/filter/source/config/fragments/types/writer8.xcu
new file mode 100644
index 000000000000..b57dbde222f2
--- /dev/null
+++ b/filter/source/config/fragments/types/writer8.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer8" oor:op="replace">
+ <prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"><value>private:factory/swriter</value></prop>
+ <prop oor:name="Extensions"><value>odt</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.text</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>writer8</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Writer 8</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Writer 8</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer8_template.xcu b/filter/source/config/fragments/types/writer8_template.xcu
new file mode 100644
index 000000000000..c9445969e37f
--- /dev/null
+++ b/filter/source/config/fragments/types/writer8_template.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer8_template" oor:op="replace">
+ <prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>ott</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.text-template</value></prop>
+ <prop oor:name="Preferred"><value>true</value></prop>
+ <prop oor:name="PreferredFilter"><value>writer8_template</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Writer 8 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Writer 8 Template</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Ami_Pro_1x_31_W4W.xcu b/filter/source/config/fragments/types/writer_Ami_Pro_1x_31_W4W.xcu
new file mode 100644
index 000000000000..4d038674fd61
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Ami_Pro_1x_31_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Ami_Pro_1x_31_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sam</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Ami Pro 1.x-3.1 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Ami Pro 1.x-3.1</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_AportisDoc_PalmDB_File.xcu b/filter/source/config/fragments/types/writer_AportisDoc_PalmDB_File.xcu
new file mode 100644
index 000000000000..516d9da0eeaf
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_AportisDoc_PalmDB_File.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_AportisDoc_PalmDB_File" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>pdb</value></prop>
+ <prop oor:name="MediaType"><value>application/x-aportisdoc</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>AportisDoc Palm DB</value></prop>
+ <prop oor:name="UIName">
+ <value>AportisDoc (Palm)</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>doctype:TEXt</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_CTOS_DEF_W4W.xcu b/filter/source/config/fragments/types/writer_CTOS_DEF_W4W.xcu
new file mode 100644
index 000000000000..15c789e075c9
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_CTOS_DEF_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_CTOS_DEF_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>CTOS DEF (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>CTOS DEF</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Claris_Works_W4W.xcu b/filter/source/config/fragments/types/writer_Claris_Works_W4W.xcu
new file mode 100644
index 000000000000..45bdcb1d792e
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Claris_Works_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Claris_Works_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>cwk</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Claris Works (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Claris Works</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_DCAFFT_Final_Form_Text_W4W.xcu b/filter/source/config/fragments/types/writer_DCAFFT_Final_Form_Text_W4W.xcu
new file mode 100644
index 000000000000..2773c1894d4c
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_DCAFFT_Final_Form_Text_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_DCAFFT_Final_Form_Text_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>DCA/FFT-Final Form Text (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>DCA/FFT-Final Form Text</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_DCA_Revisable_Form_Text_W4W.xcu b/filter/source/config/fragments/types/writer_DCA_Revisable_Form_Text_W4W.xcu
new file mode 100644
index 000000000000..90408305cc91
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_DCA_Revisable_Form_Text_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_DCA_Revisable_Form_Text_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>DCA Revisable Form Text (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>DCA Revisable Form Text</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_DCA_with_Display_Write_5_W4W.xcu b/filter/source/config/fragments/types/writer_DCA_with_Display_Write_5_W4W.xcu
new file mode 100644
index 000000000000..e7d57d65fe97
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_DCA_with_Display_Write_5_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_DCA_with_Display_Write_5_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>DCA with Display Write 5 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>DCA with Display Write 5</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_DEC_DX_W4W.xcu b/filter/source/config/fragments/types/writer_DEC_DX_W4W.xcu
new file mode 100644
index 000000000000..d0004b6fa90d
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_DEC_DX_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_DEC_DX_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>DEC DX (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>DEC DX</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_DEC_WPS_PLUS_W4W.xcu b/filter/source/config/fragments/types/writer_DEC_WPS_PLUS_W4W.xcu
new file mode 100644
index 000000000000..7a1f5107a162
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_DEC_WPS_PLUS_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_DEC_WPS_PLUS_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>DEC WPS-PLUS (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>DEC WPS-PLUS</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_DataGeneral_CEO_Write_W4W.xcu b/filter/source/config/fragments/types/writer_DataGeneral_CEO_Write_W4W.xcu
new file mode 100644
index 000000000000..52feca7ffba7
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_DataGeneral_CEO_Write_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_DataGeneral_CEO_Write_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>DataGeneral CEO Write (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>DataGeneral CEO Write</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_DisplayWrite_20_4x_W4W.xcu b/filter/source/config/fragments/types/writer_DisplayWrite_20_4x_W4W.xcu
new file mode 100644
index 000000000000..5fda4a2c89bf
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_DisplayWrite_20_4x_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_DisplayWrite_20_4x_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>DisplayWrite 2.0-4.x (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>DisplayWrite 2.0-4.x</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_DisplayWrite_5x_W4W.xcu b/filter/source/config/fragments/types/writer_DisplayWrite_5x_W4W.xcu
new file mode 100644
index 000000000000..a88fd8cdc55c
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_DisplayWrite_5x_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_DisplayWrite_5x_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>DisplayWrite 5.x (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>DisplayWrite 5.x</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_DocBook_File.xcu b/filter/source/config/fragments/types/writer_DocBook_File.xcu
new file mode 100644
index 000000000000..f68a64cdc8e6
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_DocBook_File.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_DocBook_File" oor:op="replace">
+ <prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xml</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>DocBook File</value></prop>
+ <prop oor:name="UIName">
+ <value>DocBook</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>doctype:-//OASIS//DTD DocBook XML V4</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_EBCDIC_W4W.xcu b/filter/source/config/fragments/types/writer_EBCDIC_W4W.xcu
new file mode 100644
index 000000000000..d42dafa29c32
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_EBCDIC_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_EBCDIC_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>EBCDIC (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>EBCDIC</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Enable_W4W.xcu b/filter/source/config/fragments/types/writer_Enable_W4W.xcu
new file mode 100644
index 000000000000..00deca734423
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Enable_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Enable_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wpf</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Enable (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Enable</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Frame_Maker_MIF_30_W4W.xcu b/filter/source/config/fragments/types/writer_Frame_Maker_MIF_30_W4W.xcu
new file mode 100644
index 000000000000..549fc4f3c2d9
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Frame_Maker_MIF_30_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Frame_Maker_MIF_30_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>mif</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Frame Maker MIF 3.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Frame Maker Melse if 3.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Frame_Maker_MIF_40_W4W.xcu b/filter/source/config/fragments/types/writer_Frame_Maker_MIF_40_W4W.xcu
new file mode 100644
index 000000000000..6c77a7a22d13
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Frame_Maker_MIF_40_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Frame_Maker_MIF_40_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>mif</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Frame Maker MIF 4.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Frame Maker Melse if 4.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Frame_Maker_MIF_50_W4W.xcu b/filter/source/config/fragments/types/writer_Frame_Maker_MIF_50_W4W.xcu
new file mode 100644
index 000000000000..fa650910597a
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Frame_Maker_MIF_50_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Frame_Maker_MIF_50_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>mif</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Frame Maker MIF 5.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Frame Maker Melse if 5.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Frame_Work_III_W4W.xcu b/filter/source/config/fragments/types/writer_Frame_Work_III_W4W.xcu
new file mode 100644
index 000000000000..0982e6413cd4
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Frame_Work_III_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Frame_Work_III_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>fw3</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Frame Work III (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Frame Work III</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Frame_Work_IV_W4W.xcu b/filter/source/config/fragments/types/writer_Frame_Work_IV_W4W.xcu
new file mode 100644
index 000000000000..93cbc6b4edcd
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Frame_Work_IV_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Frame_Work_IV_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>fw4</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Frame Work IV (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Frame Work IV</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_HP_AdvanceWrite_Plus_W4W.xcu b/filter/source/config/fragments/types/writer_HP_AdvanceWrite_Plus_W4W.xcu
new file mode 100644
index 000000000000..353c3f23562c
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_HP_AdvanceWrite_Plus_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_HP_AdvanceWrite_Plus_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>hpp</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>HP AdvanceWrite Plus (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>HP AdvanceWrite Plus</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_ICL_Office_Power_6_W4W.xcu b/filter/source/config/fragments/types/writer_ICL_Office_Power_6_W4W.xcu
new file mode 100644
index 000000000000..9f860e62805d
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_ICL_Office_Power_6_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_ICL_Office_Power_6_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>ICL Office Power 6 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>ICL Office Power 6</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_ICL_Office_Power_7_W4W.xcu b/filter/source/config/fragments/types/writer_ICL_Office_Power_7_W4W.xcu
new file mode 100644
index 000000000000..9f9187f51230
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_ICL_Office_Power_7_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_ICL_Office_Power_7_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>ICL Office Power 7 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>ICL Office Power 7</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Interleaf_5_6_W4W.xcu b/filter/source/config/fragments/types/writer_Interleaf_5_6_W4W.xcu
new file mode 100644
index 000000000000..fbace2175c37
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Interleaf_5_6_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Interleaf_5_6_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Interleaf 5 - 6 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Interleaf 5 - 6</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Interleaf_W4W.xcu b/filter/source/config/fragments/types/writer_Interleaf_W4W.xcu
new file mode 100644
index 000000000000..c29ef426e16b
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Interleaf_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Interleaf_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Interleaf (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Interleaf</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Legacy_Winstar_onGO_W4W.xcu b/filter/source/config/fragments/types/writer_Legacy_Winstar_onGO_W4W.xcu
new file mode 100644
index 000000000000..c58f7a14818e
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Legacy_Winstar_onGO_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Legacy_Winstar_onGO_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>nvo</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Legacy Winstar onGO (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Legacy Winstar onGO</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Lotus_1_2_3_10_DOS_StarWriter.xcu b/filter/source/config/fragments/types/writer_Lotus_1_2_3_10_DOS_StarWriter.xcu
new file mode 100644
index 000000000000..0fa4e36a26b6
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Lotus_1_2_3_10_DOS_StarWriter.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Lotus_1_2_3_10_DOS_StarWriter" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wk1 wks</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Lotus 1-2-3 1.0 (DOS) (StarWriter)</value></prop>
+ <prop oor:name="UIName">
+ <value>Lotus 1-2-3 1.0 (DOS) (%productname% %formatversion% Writer)</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Lotus_1_2_3_10_WIN_StarWriter.xcu b/filter/source/config/fragments/types/writer_Lotus_1_2_3_10_WIN_StarWriter.xcu
new file mode 100644
index 000000000000..285202b5f650
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Lotus_1_2_3_10_WIN_StarWriter.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Lotus_1_2_3_10_WIN_StarWriter" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wk1 wks</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Lotus 1-2-3 1.0 (WIN) (StarWriter)</value></prop>
+ <prop oor:name="UIName">
+ <value>Lotus 1-2-3 1.0 (WIN) (%productname% %formatversion% Writer)</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Lotus_Manuscript_W4W.xcu b/filter/source/config/fragments/types/writer_Lotus_Manuscript_W4W.xcu
new file mode 100644
index 000000000000..b2c7d63d901b
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Lotus_Manuscript_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Lotus_Manuscript_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Lotus Manuscript (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Lotus Manuscript</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MASS_11_Rel_80_83_W4W.xcu b/filter/source/config/fragments/types/writer_MASS_11_Rel_80_83_W4W.xcu
new file mode 100644
index 000000000000..da2fbcb93ccd
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MASS_11_Rel_80_83_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MASS_11_Rel_80_83_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MASS 11 Rel. 8.0-8.3 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>MASS 11 Rel. 8.0-8.3</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MASS_11_Rel_85_90_W4W.xcu b/filter/source/config/fragments/types/writer_MASS_11_Rel_85_90_W4W.xcu
new file mode 100644
index 000000000000..9d1169e2203d
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MASS_11_Rel_85_90_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MASS_11_Rel_85_90_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MASS 11 Rel. 8.5-9.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>MASS 11 Rel. 8.5-9.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MIZI_Hwp_97.xcu b/filter/source/config/fragments/types/writer_MIZI_Hwp_97.xcu
new file mode 100644
index 000000000000..53678e381517
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MIZI_Hwp_97.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MIZI_Hwp_97" oor:op="replace" >
+ <prop oor:name="DetectService"/>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>hwp</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>writer_MIZI_Hwp_97</value></prop>
+ <prop oor:name="UIName">
+ <value>Hangul WP 97</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MS_MacWord_30_W4W.xcu b/filter/source/config/fragments/types/writer_MS_MacWord_30_W4W.xcu
new file mode 100644
index 000000000000..0a5642d39466
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MS_MacWord_30_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MS_MacWord_30_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS MacWord 3.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft MacWord 3.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MS_MacWord_40_W4W.xcu b/filter/source/config/fragments/types/writer_MS_MacWord_40_W4W.xcu
new file mode 100644
index 000000000000..1858a9bb8cef
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MS_MacWord_40_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MS_MacWord_40_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS MacWord 4.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft MacWord 4.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MS_MacWord_5x_W4W.xcu b/filter/source/config/fragments/types/writer_MS_MacWord_5x_W4W.xcu
new file mode 100644
index 000000000000..038ca2c8cdd9
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MS_MacWord_5x_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MS_MacWord_5x_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS MacWord 5.x (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft MacWord 5.x</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MS_WinWord_1x_W4W.xcu b/filter/source/config/fragments/types/writer_MS_WinWord_1x_W4W.xcu
new file mode 100644
index 000000000000..ba3e0a1f6942
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MS_WinWord_1x_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MS_WinWord_1x_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS WinWord 1.x (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft WinWord 1.x</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MS_WinWord_2x_W4W.xcu b/filter/source/config/fragments/types/writer_MS_WinWord_2x_W4W.xcu
new file mode 100644
index 000000000000..9b026ac45503
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MS_WinWord_2x_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MS_WinWord_2x_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS WinWord 2.x (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft WinWord 2.x</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MS_WinWord_5.xcu b/filter/source/config/fragments/types/writer_MS_WinWord_5.xcu
new file mode 100644
index 000000000000..5c8993c9c789
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MS_WinWord_5.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MS_WinWord_5" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"><value>application/msword</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS WinWord 5</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft WinWord 5</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>MSWordDoc</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MS_WinWord_60.xcu b/filter/source/config/fragments/types/writer_MS_WinWord_60.xcu
new file mode 100644
index 000000000000..e56079d92ba5
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MS_WinWord_60.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MS_WinWord_60" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"><value>application/msword</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS WinWord 6.0</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft Word 6.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>MSWordDoc</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MS_Word_2003_XML.xcu b/filter/source/config/fragments/types/writer_MS_Word_2003_XML.xcu
new file mode 100644
index 000000000000..003b5870773c
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MS_Word_2003_XML.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MS_Word_2003_XML" oor:op="replace">
+ <prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xml</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Word 2003 XML</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Microsoft Word 2003 XML</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>doctype:wordDocument</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MS_Word_2007_XML.xcu b/filter/source/config/fragments/types/writer_MS_Word_2007_XML.xcu
new file mode 100644
index 000000000000..53a7f5b74ead
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MS_Word_2007_XML.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MS_Word_2007" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>docx docm</value></prop>
+ <prop oor:name="MediaType"><value>application/msword</value></prop>
+ <prop oor:name="Preferred"><value>true</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Word 2007 XML</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft Word 2007 XML</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>MSWordDoc</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MS_Word_2007_XML_Template.xcu b/filter/source/config/fragments/types/writer_MS_Word_2007_XML_Template.xcu
new file mode 100644
index 000000000000..c0ec68200f22
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MS_Word_2007_XML_Template.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MS_Word_2007_Template" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>dotx dotm</value></prop>
+ <prop oor:name="MediaType"><value>application/msword</value></prop>
+ <prop oor:name="Preferred"><value>true</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Word 2007 XML Template</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft Word 2007 XML Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>MSWordDoc</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MS_Word_3x_W4W.xcu b/filter/source/config/fragments/types/writer_MS_Word_3x_W4W.xcu
new file mode 100644
index 000000000000..9e938137690a
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MS_Word_3x_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MS_Word_3x_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>txt</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Word 3.x (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft Word 3.x</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MS_Word_4x_W4W.xcu b/filter/source/config/fragments/types/writer_MS_Word_4x_W4W.xcu
new file mode 100644
index 000000000000..fc6eaf12b9dc
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MS_Word_4x_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MS_Word_4x_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>txt</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Word 4.x (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft Word 4.x</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MS_Word_5x_W4W.xcu b/filter/source/config/fragments/types/writer_MS_Word_5x_W4W.xcu
new file mode 100644
index 000000000000..0d43e21b5577
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MS_Word_5x_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MS_Word_5x_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>txt</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Word 5.x (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft Word 5.x</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MS_Word_6x_W4W.xcu b/filter/source/config/fragments/types/writer_MS_Word_6x_W4W.xcu
new file mode 100644
index 000000000000..6ab45081e712
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MS_Word_6x_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MS_Word_6x_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>txt</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Word 6.x (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft Word 6.x</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MS_Word_95.xcu b/filter/source/config/fragments/types/writer_MS_Word_95.xcu
new file mode 100644
index 000000000000..3cb66bd5716e
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MS_Word_95.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MS_Word_95" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"><value>application/msword</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Word 95</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft Word 95</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>MSWordDoc</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MS_Word_95_Vorlage.xcu b/filter/source/config/fragments/types/writer_MS_Word_95_Vorlage.xcu
new file mode 100644
index 000000000000..138130b57602
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MS_Word_95_Vorlage.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MS_Word_95_Vorlage" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>dot</value></prop>
+ <prop oor:name="MediaType"><value>application/msword</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Word 95 Vorlage</value></prop>
+ <prop oor:name="UIName">
+ <value>MS Word 95 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>MSWordDoc</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MS_Word_97.xcu b/filter/source/config/fragments/types/writer_MS_Word_97.xcu
new file mode 100644
index 000000000000..911beb123e04
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MS_Word_97.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MS_Word_97" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"><value>application/msword</value></prop>
+ <prop oor:name="Preferred"><value>true</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Word 97</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft Word 97/2000/XP</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>MSWordDoc</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MS_Word_97_Vorlage.xcu b/filter/source/config/fragments/types/writer_MS_Word_97_Vorlage.xcu
new file mode 100644
index 000000000000..46b3b9b03b46
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MS_Word_97_Vorlage.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MS_Word_97_Vorlage" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>dot</value></prop>
+ <prop oor:name="MediaType"><value>application/msword</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Word 97 Vorlage</value></prop>
+ <prop oor:name="UIName">
+ <value>MS Word 97/2000 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>MSWordDoc</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MS_Works_20_DOS_W4W.xcu b/filter/source/config/fragments/types/writer_MS_Works_20_DOS_W4W.xcu
new file mode 100644
index 000000000000..3c404b350300
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MS_Works_20_DOS_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MS_Works_20_DOS_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wks</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Works 2.0 DOS (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft Works 2.0 DOS</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MS_Works_30_Win_W4W.xcu b/filter/source/config/fragments/types/writer_MS_Works_30_Win_W4W.xcu
new file mode 100644
index 000000000000..bceaf7e9fc0f
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MS_Works_30_Win_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MS_Works_30_Win_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wps</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Works 3.0 Win (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft Works 3.0 Windows</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MS_Works_40_Mac_W4W.xcu b/filter/source/config/fragments/types/writer_MS_Works_40_Mac_W4W.xcu
new file mode 100644
index 000000000000..f1b17496f0bd
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MS_Works_40_Mac_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MS_Works_40_Mac_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wks</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MS Works 4.0 Mac (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Microsoft Works 4.0 Mac</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Mac_Write_4x_50_W4W.xcu b/filter/source/config/fragments/types/writer_Mac_Write_4x_50_W4W.xcu
new file mode 100644
index 000000000000..a8dba50134d9
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Mac_Write_4x_50_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Mac_Write_4x_50_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Mac Write 4.x 5.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Mac Write 4.x 5.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Mac_Write_II_W4W.xcu b/filter/source/config/fragments/types/writer_Mac_Write_II_W4W.xcu
new file mode 100644
index 000000000000..f5d7f54190c3
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Mac_Write_II_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Mac_Write_II_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Mac Write II (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Mac Write II</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Mac_Write_Pro_W4W.xcu b/filter/source/config/fragments/types/writer_Mac_Write_Pro_W4W.xcu
new file mode 100644
index 000000000000..e50afdf9e97a
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Mac_Write_Pro_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Mac_Write_Pro_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Mac Write Pro (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Mac Write Pro</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MultiMate_33_W4W.xcu b/filter/source/config/fragments/types/writer_MultiMate_33_W4W.xcu
new file mode 100644
index 000000000000..1046b796134d
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MultiMate_33_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MultiMate_33_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MultiMate 3.3 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>MultiMate 3.3</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MultiMate_4_W4W.xcu b/filter/source/config/fragments/types/writer_MultiMate_4_W4W.xcu
new file mode 100644
index 000000000000..bd96a8a8b838
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MultiMate_4_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MultiMate_4_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>dox</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MultiMate 4 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>MultiMate 4</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MultiMate_Adv_36_W4W.xcu b/filter/source/config/fragments/types/writer_MultiMate_Adv_36_W4W.xcu
new file mode 100644
index 000000000000..8c962e59bae7
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MultiMate_Adv_36_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MultiMate_Adv_36_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MultiMate Adv. 3.6 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>MultiMate Adv. 3.6</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_MultiMate_Adv_II_37_W4W.xcu b/filter/source/config/fragments/types/writer_MultiMate_Adv_II_37_W4W.xcu
new file mode 100644
index 000000000000..9106dee7e95f
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_MultiMate_Adv_II_37_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_MultiMate_Adv_II_37_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>MultiMate Adv. II 3.7 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>MultiMate Adv. II 3.7</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_NAVY_DIF_W4W.xcu b/filter/source/config/fragments/types/writer_NAVY_DIF_W4W.xcu
new file mode 100644
index 000000000000..c55ed5f34d43
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_NAVY_DIF_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_NAVY_DIF_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>NAVY DIF (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>NAVY DIF</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_OfficeWriter_40_W4W.xcu b/filter/source/config/fragments/types/writer_OfficeWriter_40_W4W.xcu
new file mode 100644
index 000000000000..58e11ed9ee39
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_OfficeWriter_40_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_OfficeWriter_40_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wp</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>OfficeWriter 4.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>OfficeWriter 4.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_OfficeWriter_50_W4W.xcu b/filter/source/config/fragments/types/writer_OfficeWriter_50_W4W.xcu
new file mode 100644
index 000000000000..895e78c36d40
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_OfficeWriter_50_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_OfficeWriter_50_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wp</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>OfficeWriter 5.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>OfficeWriter 5.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_OfficeWriter_6x_W4W.xcu b/filter/source/config/fragments/types/writer_OfficeWriter_6x_W4W.xcu
new file mode 100644
index 000000000000..80befadbc319
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_OfficeWriter_6x_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_OfficeWriter_6x_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wp</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>OfficeWriter 6.x (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>OfficeWriter 6.x</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_PFS_First_Choice_10_W4W.xcu b/filter/source/config/fragments/types/writer_PFS_First_Choice_10_W4W.xcu
new file mode 100644
index 000000000000..783b40243c9f
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_PFS_First_Choice_10_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_PFS_First_Choice_10_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>PFS First Choice 1.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>PFS First Choice 1.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_PFS_First_Choice_20_W4W.xcu b/filter/source/config/fragments/types/writer_PFS_First_Choice_20_W4W.xcu
new file mode 100644
index 000000000000..de4655924c1e
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_PFS_First_Choice_20_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_PFS_First_Choice_20_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>PFS First Choice 2.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>PFS First Choice 2.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_PFS_First_Choice_30_W4W.xcu b/filter/source/config/fragments/types/writer_PFS_First_Choice_30_W4W.xcu
new file mode 100644
index 000000000000..5ee28be8be41
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_PFS_First_Choice_30_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_PFS_First_Choice_30_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>PFS First Choice 3.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>PFS First Choice 3.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_PFS_Write_W4W.xcu b/filter/source/config/fragments/types/writer_PFS_Write_W4W.xcu
new file mode 100644
index 000000000000..44c867e1daee
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_PFS_Write_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_PFS_Write_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>PFS Write (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>PFS Write</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Peach_Text_W4W.xcu b/filter/source/config/fragments/types/writer_Peach_Text_W4W.xcu
new file mode 100644
index 000000000000..3388860e62e8
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Peach_Text_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Peach_Text_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Peach Text (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Peach Text</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_PocketWord_File.xcu b/filter/source/config/fragments/types/writer_PocketWord_File.xcu
new file mode 100644
index 000000000000..61c50a935dbc
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_PocketWord_File.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_PocketWord_File" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.filters.XMLFilterDetect</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>psw</value></prop>
+ <prop oor:name="MediaType"><value>application/x-pocket-word</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>PocketWord File</value></prop>
+ <prop oor:name="UIName">
+ <value>Pocket Word</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>doctype:pwi</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Professional_Write_10_W4W.xcu b/filter/source/config/fragments/types/writer_Professional_Write_10_W4W.xcu
new file mode 100644
index 000000000000..f97f8cee9387
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Professional_Write_10_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Professional_Write_10_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Professional Write 1.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>PFS Professional Write 1.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Professional_Write_2x_W4W.xcu b/filter/source/config/fragments/types/writer_Professional_Write_2x_W4W.xcu
new file mode 100644
index 000000000000..7b6f2d8433c8
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Professional_Write_2x_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Professional_Write_2x_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Professional Write 2.x (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>PFS Professional Write 2.x</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Professional_Write_Plus_W4W.xcu b/filter/source/config/fragments/types/writer_Professional_Write_Plus_W4W.xcu
new file mode 100644
index 000000000000..f745ffd79dd0
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Professional_Write_Plus_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Professional_Write_Plus_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Professional Write Plus (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>PFS Professional Write Plus</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_QA_Write_10_30_W4W.xcu b/filter/source/config/fragments/types/writer_QA_Write_10_30_W4W.xcu
new file mode 100644
index 000000000000..1c6723c51280
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_QA_Write_10_30_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_QA_Write_10_30_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>qw</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Q&amp;A Write 1.0-3.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Q&amp;A Write 1.0-3.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_QA_Write_40_W4W.xcu b/filter/source/config/fragments/types/writer_QA_Write_40_W4W.xcu
new file mode 100644
index 000000000000..d687fa4659eb
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_QA_Write_40_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_QA_Write_40_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>qw</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Q&amp;A Write 4.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Q&amp;A Write 4.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Rapid_File_10_W4W.xcu b/filter/source/config/fragments/types/writer_Rapid_File_10_W4W.xcu
new file mode 100644
index 000000000000..3f04250df4f8
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Rapid_File_10_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Rapid_File_10_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Rapid File 1.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Rapid File 1.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Rapid_File_12_W4W.xcu b/filter/source/config/fragments/types/writer_Rapid_File_12_W4W.xcu
new file mode 100644
index 000000000000..a3ba7198ed38
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Rapid_File_12_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Rapid_File_12_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Rapid File 1.2 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Rapid File 1.2</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Rich_Text_Format.xcu b/filter/source/config/fragments/types/writer_Rich_Text_Format.xcu
new file mode 100644
index 000000000000..80f7e6c39797
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Rich_Text_Format.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Rich_Text_Format" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>rtf</value></prop>
+ <prop oor:name="MediaType"><value>application/rtf</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Rich Text Format</value></prop>
+ <prop oor:name="UIName">
+ <value>Rich Text Format</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Samna_Word_IV_IV_Plus_W4W.xcu b/filter/source/config/fragments/types/writer_Samna_Word_IV_IV_Plus_W4W.xcu
new file mode 100644
index 000000000000..6aab4e9bf9c8
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Samna_Word_IV_IV_Plus_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Samna_Word_IV_IV_Plus_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sw4</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Samna Word IV-IV Plus (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Samna Word IV-IV Plus</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_StarOffice_XML_Writer.xcu b/filter/source/config/fragments/types/writer_StarOffice_XML_Writer.xcu
new file mode 100644
index 000000000000..09ebbf6b8224
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_StarOffice_XML_Writer.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_StarOffice_XML_Writer" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sxw</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.sun.xml.writer</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarOffice XML (Writer)</value></prop>
+ <prop oor:name="UIName">
+ <value>%productname% %formatversion% Textdokument</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Writer 6.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_StarOffice_XML_Writer_Template.xcu b/filter/source/config/fragments/types/writer_StarOffice_XML_Writer_Template.xcu
new file mode 100644
index 000000000000..1ad5271eadc5
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_StarOffice_XML_Writer_Template.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_StarOffice_XML_Writer_Template" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>stw</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>true</value></prop>
+ <prop oor:name="PreferredFilter"><value>writer_StarOffice_XML_Writer_Template</value></prop>
+ <prop oor:name="UIName">
+ <value>Writer 6.0 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Writer 6.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_StarWriter_10.xcu b/filter/source/config/fragments/types/writer_StarWriter_10.xcu
new file mode 100644
index 000000000000..f5e55f95d46d
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_StarWriter_10.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_StarWriter_10" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sdw</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarWriter 1.0</value></prop>
+ <prop oor:name="UIName">
+ <value>StarWriter 1.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_StarWriter_20.xcu b/filter/source/config/fragments/types/writer_StarWriter_20.xcu
new file mode 100644
index 000000000000..d166b294803c
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_StarWriter_20.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_StarWriter_20" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sdw</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarWriter 2.0</value></prop>
+ <prop oor:name="UIName">
+ <value>StarWriter 2.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_StarWriter_30.xcu b/filter/source/config/fragments/types/writer_StarWriter_30.xcu
new file mode 100644
index 000000000000..5b8297f196d5
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_StarWriter_30.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_StarWriter_30" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sdw</value></prop>
+ <prop oor:name="MediaType"><value>application/x-starwriter</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarWriter 3.0</value></prop>
+ <prop oor:name="UIName">
+ <value>StarWriter 3.0 (%productname% %formatversion% Globaldokument)</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarWriter 3.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_StarWriter_30_VorlageTemplate.xcu b/filter/source/config/fragments/types/writer_StarWriter_30_VorlageTemplate.xcu
new file mode 100644
index 000000000000..ad4ee7d15628
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_StarWriter_30_VorlageTemplate.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_StarWriter_30_VorlageTemplate" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>vor</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarWriter 3.0 Vorlage/Template</value></prop>
+ <prop oor:name="UIName">
+ <value>StarWriter 3.0 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarWriter 3.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_StarWriter_40.xcu b/filter/source/config/fragments/types/writer_StarWriter_40.xcu
new file mode 100644
index 000000000000..cb4148dd1032
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_StarWriter_40.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_StarWriter_40" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sdw</value></prop>
+ <prop oor:name="MediaType"><value>application/x-starwriter</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarWriter 4.0</value></prop>
+ <prop oor:name="UIName">
+ <value>StarWriter 4.0 (%productname% %formatversion% Globaldokument)</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarWriter 4.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_StarWriter_40_VorlageTemplate.xcu b/filter/source/config/fragments/types/writer_StarWriter_40_VorlageTemplate.xcu
new file mode 100644
index 000000000000..168c63b11b42
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_StarWriter_40_VorlageTemplate.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_StarWriter_40_VorlageTemplate" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>vor</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarWriter 4.0 Vorlage/Template</value></prop>
+ <prop oor:name="UIName">
+ <value>StarWriter 4.0 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarWriter 4.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_StarWriter_50.xcu b/filter/source/config/fragments/types/writer_StarWriter_50.xcu
new file mode 100644
index 000000000000..d8aeeb6bd617
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_StarWriter_50.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_StarWriter_50" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sdw</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.stardivision.writer</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarWriter 5.0</value></prop>
+ <prop oor:name="UIName">
+ <value>StarWriter 5.0 (%productname% %formatversion% Globaldokument)</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarWriter 5.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_StarWriter_50_VorlageTemplate.xcu b/filter/source/config/fragments/types/writer_StarWriter_50_VorlageTemplate.xcu
new file mode 100644
index 000000000000..d46b510fc328
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_StarWriter_50_VorlageTemplate.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_StarWriter_50_VorlageTemplate" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>vor</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarWriter 5.0 Vorlage/Template</value></prop>
+ <prop oor:name="UIName">
+ <value>StarWriter 5.0 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarWriter 5.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_StarWriter_DOS.xcu b/filter/source/config/fragments/types/writer_StarWriter_DOS.xcu
new file mode 100644
index 000000000000..00864caffe68
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_StarWriter_DOS.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_StarWriter_DOS" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>txt</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarWriter DOS</value></prop>
+ <prop oor:name="UIName">
+ <value>StarWriter DOS</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_T602_Document.xcu b/filter/source/config/fragments/types/writer_T602_Document.xcu
new file mode 100644
index 000000000000..c233c324bd3e
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_T602_Document.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_T602_Document" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.Writer.T602ImportFilter</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>602 txt</value></prop>
+ <prop oor:name="MediaType"><value>application/x-t602</value></prop>
+ <prop oor:name="Preferred"><value>true</value></prop>
+ <prop oor:name="PreferredFilter"><value>T602Document</value></prop>
+ <prop oor:name="UIName">
+ <value>T602 Document</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Text.xcu b/filter/source/config/fragments/types/writer_Text.xcu
new file mode 100644
index 000000000000..014c73d729b2
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Text.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Text" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>txt</value></prop>
+ <prop oor:name="MediaType"><value>text/plain</value></prop>
+ <prop oor:name="Preferred"><value>true</value></prop>
+ <prop oor:name="PreferredFilter"><value>Text</value></prop>
+ <prop oor:name="UIName">
+ <value>Text</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Text_encoded.xcu b/filter/source/config/fragments/types/writer_Text_encoded.xcu
new file mode 100644
index 000000000000..6959f61c4dba
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Text_encoded.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Text_encoded" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>txt</value></prop>
+ <prop oor:name="MediaType"><value>text/plain</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Text (encoded)</value></prop>
+ <prop oor:name="UIName">
+ <value>Text - encoded</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Total_Word_W4W.xcu b/filter/source/config/fragments/types/writer_Total_Word_W4W.xcu
new file mode 100644
index 000000000000..6af415b72d80
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Total_Word_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Total_Word_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Total Word (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Total Word</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Uniplex_V7_V8_W4W.xcu b/filter/source/config/fragments/types/writer_Uniplex_V7_V8_W4W.xcu
new file mode 100644
index 000000000000..6f3c7402dc3f
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Uniplex_V7_V8_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Uniplex_V7_V8_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Uniplex V7-V8 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Uniplex V7-V8</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Uniplex_onGO_W4W.xcu b/filter/source/config/fragments/types/writer_Uniplex_onGO_W4W.xcu
new file mode 100644
index 000000000000..ee60b06a270e
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Uniplex_onGO_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Uniplex_onGO_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>nvo</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Uniplex onGO (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Uniplex onGO</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_VolksWriter_3_and_4_W4W.xcu b/filter/source/config/fragments/types/writer_VolksWriter_3_and_4_W4W.xcu
new file mode 100644
index 000000000000..c37992e0322e
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_VolksWriter_3_and_4_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_VolksWriter_3_and_4_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>VolksWriter 3 and 4 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>VolksWriter 3 and 4</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_VolksWriter_Deluxe_W4W.xcu b/filter/source/config/fragments/types/writer_VolksWriter_Deluxe_W4W.xcu
new file mode 100644
index 000000000000..7df44a50309d
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_VolksWriter_Deluxe_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_VolksWriter_Deluxe_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>VolksWriter Deluxe (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>VolksWriter Deluxe</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WITA_W4W.xcu b/filter/source/config/fragments/types/writer_WITA_W4W.xcu
new file mode 100644
index 000000000000..b2c965e3c93f
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WITA_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WITA_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WITA (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WITA</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Wang_II_SWP_W4W.xcu b/filter/source/config/fragments/types/writer_Wang_II_SWP_W4W.xcu
new file mode 100644
index 000000000000..3dc0fad0a37c
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Wang_II_SWP_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Wang_II_SWP_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Wang II SWP (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Wang II SWP</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Wang_PC_W4W.xcu b/filter/source/config/fragments/types/writer_Wang_PC_W4W.xcu
new file mode 100644
index 000000000000..380d43c32c1b
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Wang_PC_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Wang_PC_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Wang PC (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Wang PC</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Wang_WP_Plus_W4W.xcu b/filter/source/config/fragments/types/writer_Wang_WP_Plus_W4W.xcu
new file mode 100644
index 000000000000..6ec9fa5bf66e
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Wang_WP_Plus_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Wang_WP_Plus_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Wang WP Plus (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Wang WP Plus</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Win_Write_3x_W4W.xcu b/filter/source/config/fragments/types/writer_Win_Write_3x_W4W.xcu
new file mode 100644
index 000000000000..bdd03bc7248a
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Win_Write_3x_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Win_Write_3x_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wri</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Win Write 3.x (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Win Write 3.x</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WiziWord_30_W4W.xcu b/filter/source/config/fragments/types/writer_WiziWord_30_W4W.xcu
new file mode 100644
index 000000000000..9db56666abbe
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WiziWord_30_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WiziWord_30_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WiziWord 3.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WiziWord 3.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordPerfect_41_W4W.xcu b/filter/source/config/fragments/types/writer_WordPerfect_41_W4W.xcu
new file mode 100644
index 000000000000..ebff7aa049b9
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordPerfect_41_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordPerfect_41_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wpd</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordPerfect 4.1 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordPerfect 4.1</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordPerfect_42_W4W.xcu b/filter/source/config/fragments/types/writer_WordPerfect_42_W4W.xcu
new file mode 100644
index 000000000000..d45ed8db7e84
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordPerfect_42_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordPerfect_42_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wpd</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordPerfect 4.2 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordPerfect 4.2</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordPerfect_50_W4W.xcu b/filter/source/config/fragments/types/writer_WordPerfect_50_W4W.xcu
new file mode 100644
index 000000000000..39020fe18326
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordPerfect_50_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordPerfect_50_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wpd</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordPerfect 5.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordPerfect 5.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordPerfect_51_W4W.xcu b/filter/source/config/fragments/types/writer_WordPerfect_51_W4W.xcu
new file mode 100644
index 000000000000..215abbf68b4b
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordPerfect_51_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordPerfect_51_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wpd</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordPerfect 5.1 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordPerfect 5.1</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordPerfect_60_W4W.xcu b/filter/source/config/fragments/types/writer_WordPerfect_60_W4W.xcu
new file mode 100644
index 000000000000..1437e283ca9a
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordPerfect_60_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordPerfect_60_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wpd</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordPerfect 6.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordPerfect 6.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordPerfect_61_W4W.xcu b/filter/source/config/fragments/types/writer_WordPerfect_61_W4W.xcu
new file mode 100644
index 000000000000..c52456bddacb
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordPerfect_61_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordPerfect_61_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wpd</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordPerfect 6.1 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordPerfect 6.1</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordPerfect_Document.xcu b/filter/source/config/fragments/types/writer_WordPerfect_Document.xcu
new file mode 100644
index 000000000000..3798319ca976
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordPerfect_Document.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordPerfect_Document" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.Writer.WordPerfectImportFilter</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wpd</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>true</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordPerfect</value></prop>
+ <prop oor:name="UIName">
+ <value>WordPerfect Document</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordPerfect_Mac_1_W4W.xcu b/filter/source/config/fragments/types/writer_WordPerfect_Mac_1_W4W.xcu
new file mode 100644
index 000000000000..f05ce9964707
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordPerfect_Mac_1_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordPerfect_Mac_1_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wpd</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordPerfect Mac 1 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordPerfect Mac 1</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordPerfect_Mac_2_W4W.xcu b/filter/source/config/fragments/types/writer_WordPerfect_Mac_2_W4W.xcu
new file mode 100644
index 000000000000..3a5838f96cf7
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordPerfect_Mac_2_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordPerfect_Mac_2_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wpd</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordPerfect Mac 2 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordPerfect Mac 2</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordPerfect_Mac_3_W4W.xcu b/filter/source/config/fragments/types/writer_WordPerfect_Mac_3_W4W.xcu
new file mode 100644
index 000000000000..8dc35dc6eb30
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordPerfect_Mac_3_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordPerfect_Mac_3_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wpd</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordPerfect Mac 3 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordPerfect Mac 3</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordPerfect_Win_51_52_W4W.xcu b/filter/source/config/fragments/types/writer_WordPerfect_Win_51_52_W4W.xcu
new file mode 100644
index 000000000000..aea69373a41e
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordPerfect_Win_51_52_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordPerfect_Win_51_52_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wpd</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordPerfect (Win) 5.1-5.2 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordPerfect (Win) 5.1-5.2</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordPerfect_Win_60_W4W.xcu b/filter/source/config/fragments/types/writer_WordPerfect_Win_60_W4W.xcu
new file mode 100644
index 000000000000..b484283587c6
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordPerfect_Win_60_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordPerfect_Win_60_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wpd</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordPerfect (Win) 6.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordPerfect (Win) 6.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordPerfect_Win_61_W4W.xcu b/filter/source/config/fragments/types/writer_WordPerfect_Win_61_W4W.xcu
new file mode 100644
index 000000000000..8926abcf4d36
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordPerfect_Win_61_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordPerfect_Win_61_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wpd</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordPerfect (Win) 6.1 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordPerfect (Win) 6.1</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordPerfect_Win_70_W4W.xcu b/filter/source/config/fragments/types/writer_WordPerfect_Win_70_W4W.xcu
new file mode 100644
index 000000000000..fca29da4d451
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordPerfect_Win_70_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordPerfect_Win_70_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wpd</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordPerfect (Win) 7.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordPerfect (Win) 7.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordStar_2000_Rel_30_W4W.xcu b/filter/source/config/fragments/types/writer_WordStar_2000_Rel_30_W4W.xcu
new file mode 100644
index 000000000000..d3d6d3050253
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordStar_2000_Rel_30_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordStar_2000_Rel_30_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>ws</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordStar 2000 Rel. 3.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordStar 2000 Rel. 3.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordStar_2000_Rel_35_W4W.xcu b/filter/source/config/fragments/types/writer_WordStar_2000_Rel_35_W4W.xcu
new file mode 100644
index 000000000000..fcf1875fb824
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordStar_2000_Rel_35_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordStar_2000_Rel_35_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>ws</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordStar 2000 Rel. 3.5 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordStar 2000 Rel. 3.5</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordStar_33x_W4W.xcu b/filter/source/config/fragments/types/writer_WordStar_33x_W4W.xcu
new file mode 100644
index 000000000000..0f5df15cd4a4
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordStar_33x_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordStar_33x_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wsd</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordStar 3.3x (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordStar 3.3</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordStar_345_W4W.xcu b/filter/source/config/fragments/types/writer_WordStar_345_W4W.xcu
new file mode 100644
index 000000000000..2393cce4e21e
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordStar_345_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordStar_345_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wsd</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordStar 3.45 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordStar 3.4</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordStar_40_W4W.xcu b/filter/source/config/fragments/types/writer_WordStar_40_W4W.xcu
new file mode 100644
index 000000000000..ff3e5cecd3f7
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordStar_40_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordStar_40_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wsd</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordStar 4.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordStar 4.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordStar_50_W4W.xcu b/filter/source/config/fragments/types/writer_WordStar_50_W4W.xcu
new file mode 100644
index 000000000000..9a18cefe2aee
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordStar_50_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordStar_50_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wsd</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordStar 5.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordStar 5.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordStar_55_W4W.xcu b/filter/source/config/fragments/types/writer_WordStar_55_W4W.xcu
new file mode 100644
index 000000000000..ea0267411388
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordStar_55_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordStar_55_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wsd</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordStar 5.5 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordStar 5.5</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordStar_60_W4W.xcu b/filter/source/config/fragments/types/writer_WordStar_60_W4W.xcu
new file mode 100644
index 000000000000..42b7413c1baa
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordStar_60_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordStar_60_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wsd</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordStar 6.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordStar 6.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordStar_70_W4W.xcu b/filter/source/config/fragments/types/writer_WordStar_70_W4W.xcu
new file mode 100644
index 000000000000..18dbe3e99867
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordStar_70_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordStar_70_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wsd</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordStar 7.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordStar 7.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WordStar_Win_1x_20_W4W.xcu b/filter/source/config/fragments/types/writer_WordStar_Win_1x_20_W4W.xcu
new file mode 100644
index 000000000000..911edcee23cb
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WordStar_Win_1x_20_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WordStar_Win_1x_20_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>wsd</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WordStar (Win) 1.x-2.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WordStar (Win) 1.x-2.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_WriteNow_30_Macintosh_W4W.xcu b/filter/source/config/fragments/types/writer_WriteNow_30_Macintosh_W4W.xcu
new file mode 100644
index 000000000000..9638b4ae4d66
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_WriteNow_30_Macintosh_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_WriteNow_30_Macintosh_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>WriteNow 3.0 (Macintosh) (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>WriteNow 3.0 Macintosh</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_Writing_Assistant_W4W.xcu b/filter/source/config/fragments/types/writer_Writing_Assistant_W4W.xcu
new file mode 100644
index 000000000000..b8cf4728957a
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_Writing_Assistant_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_Writing_Assistant_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>doc</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>Writing Assistant (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>Writing Assistant</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_XEROX_XIF_50_Illustrator_W4W.xcu b/filter/source/config/fragments/types/writer_XEROX_XIF_50_Illustrator_W4W.xcu
new file mode 100644
index 000000000000..4072bfca5dea
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_XEROX_XIF_50_Illustrator_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_XEROX_XIF_50_Illustrator_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xif</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>XEROX XIF 5.0 (Illustrator) (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>XEROX Xelse if 5.0 Illustrator</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_XEROX_XIF_50_W4W.xcu b/filter/source/config/fragments/types/writer_XEROX_XIF_50_W4W.xcu
new file mode 100644
index 000000000000..abb982f5ee37
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_XEROX_XIF_50_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_XEROX_XIF_50_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xif</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>XEROX XIF 5.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>XEROX Xelse if 5.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_XEROX_XIF_60_Color_Bitmap_W4W.xcu b/filter/source/config/fragments/types/writer_XEROX_XIF_60_Color_Bitmap_W4W.xcu
new file mode 100644
index 000000000000..eecea8188781
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_XEROX_XIF_60_Color_Bitmap_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_XEROX_XIF_60_Color_Bitmap_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xif</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>XEROX XIF 6.0 (Color Bitmap) (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>XEROX Xelse if 6.0 Color Bitmap</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_XEROX_XIF_60_Res_Graphic_W4W.xcu b/filter/source/config/fragments/types/writer_XEROX_XIF_60_Res_Graphic_W4W.xcu
new file mode 100644
index 000000000000..6b023aee7a96
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_XEROX_XIF_60_Res_Graphic_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_XEROX_XIF_60_Res_Graphic_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xif</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>XEROX XIF 6.0 (Res Graphic) (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>XEROX Xelse if 6.0 Res Graphic</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_XyWrite_IIIP_W4W.xcu b/filter/source/config/fragments/types/writer_XyWrite_IIIP_W4W.xcu
new file mode 100644
index 000000000000..eff7cc2794f9
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_XyWrite_IIIP_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_XyWrite_IIIP_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xyw</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>XyWrite III+ ( W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>XyWrite III+</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_XyWrite_III_W4W.xcu b/filter/source/config/fragments/types/writer_XyWrite_III_W4W.xcu
new file mode 100644
index 000000000000..d8218de40bf7
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_XyWrite_III_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_XyWrite_III_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xyw</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>XyWrite III ( W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>XyWrite III</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_XyWrite_IV_W4W.xcu b/filter/source/config/fragments/types/writer_XyWrite_IV_W4W.xcu
new file mode 100644
index 000000000000..b3e652285bc0
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_XyWrite_IV_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_XyWrite_IV_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xyw</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>XyWrite IV (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>XyWrite IV</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_XyWrite_Sig_Win_W4W.xcu b/filter/source/config/fragments/types/writer_XyWrite_Sig_Win_W4W.xcu
new file mode 100644
index 000000000000..084b2adcc8c7
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_XyWrite_Sig_Win_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_XyWrite_Sig_Win_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xyw</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>XyWrite Sig. (Win) (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>XyWrite Signature</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_XyWrite_Signature_W4W.xcu b/filter/source/config/fragments/types/writer_XyWrite_Signature_W4W.xcu
new file mode 100644
index 000000000000..c86cb3647278
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_XyWrite_Signature_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_XyWrite_Signature_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xyw</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>XyWrite Signature (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>XyWrite Signature</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_XyWrite_Win_10_W4W.xcu b/filter/source/config/fragments/types/writer_XyWrite_Win_10_W4W.xcu
new file mode 100644
index 000000000000..e570e578d338
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_XyWrite_Win_10_W4W.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_XyWrite_Win_10_W4W" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xyw</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>XyWrite (Win) 1.0 (W4W)</value></prop>
+ <prop oor:name="UIName">
+ <value>XyWrite (Win) 1.0</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_globaldocument_StarOffice_XML_Writer_GlobalDocument.xcu b/filter/source/config/fragments/types/writer_globaldocument_StarOffice_XML_Writer_GlobalDocument.xcu
new file mode 100644
index 000000000000..e0efe4d21ccd
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_globaldocument_StarOffice_XML_Writer_GlobalDocument.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_globaldocument_StarOffice_XML_Writer_GlobalDocument" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sxg</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.sun.xml.writer.global</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>writer_globaldocument_StarOffice_XML_Writer_GlobalDocument</value></prop>
+ <prop oor:name="UIName">
+ <value>Writer 6.0 Master Document</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Writer/Global 6.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_globaldocument_StarWriter_40GlobalDocument.xcu b/filter/source/config/fragments/types/writer_globaldocument_StarWriter_40GlobalDocument.xcu
new file mode 100644
index 000000000000..5f0f05204355
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_globaldocument_StarWriter_40GlobalDocument.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_globaldocument_StarWriter_40GlobalDocument" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sgl</value></prop>
+ <prop oor:name="MediaType"><value>application/x-starwriter</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarWriter 4.0/GlobalDocument</value></prop>
+ <prop oor:name="UIName">
+ <value>StarWriter 4.0 Master Document</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarWriter/Global 4.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_globaldocument_StarWriter_50GlobalDocument.xcu b/filter/source/config/fragments/types/writer_globaldocument_StarWriter_50GlobalDocument.xcu
new file mode 100644
index 000000000000..0850c43becc6
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_globaldocument_StarWriter_50GlobalDocument.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_globaldocument_StarWriter_50GlobalDocument" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.sfx2.BinaryFormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>sgl</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.stardivision.writer-global</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarWriter 5.0/GlobalDocument</value></prop>
+ <prop oor:name="UIName">
+ <value>StarWriter 5.0 Master Document</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarWriter/Global 5.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_web_HTML.xcu b/filter/source/config/fragments/types/writer_web_HTML.xcu
new file mode 100644
index 000000000000..a1d9a0914ff5
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_web_HTML.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_web_HTML" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"><value>private:factory/swriter/web*</value></prop>
+ <prop oor:name="Extensions"><value>html htm</value></prop>
+ <prop oor:name="MediaType"><value>text/html</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>HTML</value></prop>
+ <prop oor:name="UIName">
+ <value>HTML Document</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_web_HTML_help.xcu b/filter/source/config/fragments/types/writer_web_HTML_help.xcu
new file mode 100644
index 000000000000..5394c7776bea
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_web_HTML_help.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_web_HTML_help" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"><value>vnd.sun.star.help://*</value></prop>
+ <prop oor:name="Extensions"/>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>writer_web_HTML_help</value></prop>
+ <prop oor:name="UIName">
+ <value>Help content</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_web_StarOffice_XML_Writer_Web_Template.xcu b/filter/source/config/fragments/types/writer_web_StarOffice_XML_Writer_Web_Template.xcu
new file mode 100644
index 000000000000..97fb23c1d3e2
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_web_StarOffice_XML_Writer_Web_Template.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_web_StarOffice_XML_Writer_Web_Template" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>stw</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>writer_web_StarOffice_XML_Writer_Web_Template</value></prop>
+ <prop oor:name="UIName">
+ <value>Writer/Web 6.0 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Writer/Web 6.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_web_StarWriterWeb_40_VorlageTemplate.xcu b/filter/source/config/fragments/types/writer_web_StarWriterWeb_40_VorlageTemplate.xcu
new file mode 100644
index 000000000000..1e93d6411419
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_web_StarWriterWeb_40_VorlageTemplate.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_web_StarWriterWeb_40_VorlageTemplate" oor:op="replace" >
+ <prop oor:name="DetectService"/>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>vor</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarWriter/Web 4.0 Vorlage/Template</value></prop>
+ <prop oor:name="UIName">
+ <value>StarWriter/Web 4.0 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarWriter/Web 4.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writer_web_StarWriterWeb_50_VorlageTemplate.xcu b/filter/source/config/fragments/types/writer_web_StarWriterWeb_50_VorlageTemplate.xcu
new file mode 100644
index 000000000000..1cc98cad2e2e
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_web_StarWriterWeb_50_VorlageTemplate.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writer_web_StarWriterWeb_50_VorlageTemplate" oor:op="replace" >
+ <prop oor:name="DetectService"/>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>vor</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>StarWriter/Web 5.0 Vorlage/Template</value></prop>
+ <prop oor:name="UIName">
+ <value>StarWriter/Web 5.0 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>StarWriter/Web 5.0</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writerglobal8.xcu b/filter/source/config/fragments/types/writerglobal8.xcu
new file mode 100644
index 000000000000..f9f32e7c6b5d
--- /dev/null
+++ b/filter/source/config/fragments/types/writerglobal8.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writerglobal8" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"><value>private:factory/swriter/GlobalDocument*</value></prop>
+ <prop oor:name="Extensions"><value>odm</value></prop>
+ <prop oor:name="MediaType"><value>application/vnd.oasis.opendocument.text-master</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>writerglobal8</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Writer 8 Master Document</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Writer/Global 8</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/writerweb8_writer_template.xcu b/filter/source/config/fragments/types/writerweb8_writer_template.xcu
new file mode 100644
index 000000000000..dbf9b45e0f6c
--- /dev/null
+++ b/filter/source/config/fragments/types/writerweb8_writer_template.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="writerweb8_writer_template" oor:op="replace">
+ <prop oor:name="DetectService"><value>com.sun.star.text.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>oth</value></prop>
+ <prop oor:name="MediaType"/>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>writerweb8_writer_template</value></prop>
+ <prop oor:name="UIName">
+ <value xml:lang="en-US">Writer/Web 8 Template</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"><value>Writer/Web 8</value></prop>
+ </node>
diff --git a/filter/source/config/fragments/types/xbm_X_Consortium.xcu b/filter/source/config/fragments/types/xbm_X_Consortium.xcu
new file mode 100644
index 000000000000..948b77dea121
--- /dev/null
+++ b/filter/source/config/fragments/types/xbm_X_Consortium.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="xbm_X_Consortium" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xbm</value></prop>
+ <prop oor:name="MediaType"><value>image/x-xbitmap</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>XBM - X-Consortium</value></prop>
+ <prop oor:name="UIName">
+ <value>XBM - X Bitmap</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/fragments/types/xpm_XPM.xcu b/filter/source/config/fragments/types/xpm_XPM.xcu
new file mode 100644
index 000000000000..8361ec6ac313
--- /dev/null
+++ b/filter/source/config/fragments/types/xpm_XPM.xcu
@@ -0,0 +1,12 @@
+ <node oor:name="xpm_XPM" oor:op="replace" >
+ <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+ <prop oor:name="URLPattern"/>
+ <prop oor:name="Extensions"><value>xpm</value></prop>
+ <prop oor:name="MediaType"><value>image/x-xpixmap</value></prop>
+ <prop oor:name="Preferred"><value>false</value></prop>
+ <prop oor:name="PreferredFilter"><value>XPM</value></prop>
+ <prop oor:name="UIName">
+ <value>XPM - X PixMap</value>
+ </prop>
+ <prop oor:name="ClipboardFormat"/>
+ </node>
diff --git a/filter/source/config/tools/Manifest.mf b/filter/source/config/tools/Manifest.mf
new file mode 100644
index 000000000000..91387715ae71
--- /dev/null
+++ b/filter/source/config/tools/Manifest.mf
@@ -0,0 +1,4 @@
+Manifest-Version: 1.0
+Created-By: Sun Microsystems, Inc.
+Main-Class: MergeApp
+Class-Path: .
diff --git a/filter/source/config/tools/merge/pyAltFCFGMerge b/filter/source/config/tools/merge/pyAltFCFGMerge
new file mode 100755
index 000000000000..a44a4bb81d29
--- /dev/null
+++ b/filter/source/config/tools/merge/pyAltFCFGMerge
@@ -0,0 +1,591 @@
+#!/bin/env python
+#_____________________________________________
+# Caolan McNamara caolanm@redhat.com
+# converted from original java written by Andreas Schluens so we can continue
+# to build 680 OpenOffice.org series without java
+# this is not really a replacement for the existing java tool, just the
+# minimum required to make it work for now, the existing tool is still
+# the canonical base, changes to it will have to be mirrored here until
+# there is a java which is available for use by all
+#_____________________________________________
+
+import sys, string, os.path
+
+CFGFILE = os.environ["SOLARVER"] + "/" + os.environ["INPATH"] + "/inc/l10ntools/FCFGMerge.cfg"
+
+PROP_XMLVERSION = "xmlversion" # // <= global cfg file
+PROP_XMLENCODING = "xmlencoding" # // <= global cfg file
+PROP_XMLPATH = "xmlpath" # // <= global cfg file
+PROP_XMLPACKAGE = "xmlpackage" # // <= global cfg file
+PROP_SETNAME_TYPES = "setname_types" # // <= global cfg file
+PROP_SETNAME_FILTERS = "setname_filters" # // <= global cfg file
+PROP_SETNAME_LOADERS = "setname_frameloaders" # // <= global cfg file
+PROP_SETNAME_HANDLERS = "setname_contenthandlers" # // <= global cfg file
+PROP_SUBDIR_TYPES = "subdir_types" # // <= global cfg file
+PROP_SUBDIR_FILTERS = "subdir_filters" # // <= global cfg file
+PROP_SUBDIR_LOADERS = "subdir_frameloaders" # // <= global cfg file
+PROP_SUBDIR_HANDLERS = "subdir_contenthandlers" # // <= global cfg file
+PROP_EXTENSION_XCU = "extension_xcu" # // <= global cfg file
+PROP_EXTENSION_PKG = "extension_pkg" # // <= global cfg file
+PROP_DELIMITER = "delimiter" # // <= global cfg file
+PROP_TRIM = "trim" # // <= global cfg file
+PROP_DECODE = "decode" # // <= global cfg file
+PROP_FRAGMENTSDIR = "fragmentsdir" # // <= cmdline
+PROP_TEMPDIR = "tempdir" # // <= cmdline
+PROP_OUTDIR = "outdir" # // <= cmdline
+PROP_PKG = "pkg" # // <= cmdline
+PROP_TCFG = "tcfg" # // <= cmdline
+PROP_FCFG = "fcfg" # // <= cmdline
+PROP_LCFG = "lcfg" # // <= cmdline
+PROP_CCFG = "ccfg" # // <= cmdline
+PROP_LANGUAGEPACK = "languagepack" # // <= cmdline
+PROP_ITEMS = "items" # // <= pkg cfg files!
+
+#---begin java.util.Properties copy---#
+"""
+
+An incomplete clean room implementation of
+java.util.Properties written in Python.
+
+Copyright (C) 2002,2004 - Ollie Rutherfurd <oliver@rutherfurd.net>
+
+Based on:
+
+ http://java.sun.com/j2se/1.3/docs/api/java/util/Properties.html
+
+Missing:
+
+ - Currently, u\XXXX sequences are escaped when saving, but not unescaped
+ when read..
+
+License: Python License
+
+Example Usage:
+
+>>> from properties import Properties
+>>> props = Properties()
+>>> props['one'] = '1'
+>>> props['your name'] = "I don't know"
+>>> print '\n'.join(props.keys())
+your name
+one
+>>> from StringIO import StringIO
+>>> buff = StringIO()
+>>> props.store(buff, "a little example...")
+>>> buff.seek(0)
+>>> print buff.read()
+# a little example...
+your\ name=I\ don\'t\ know
+one=1
+>>> print props['your name']
+I don't know
+
+$Id: pyAltFCFGMerge,v 1.3 2007-12-07 10:57:44 vg Exp $
+
+"""
+
+__all__ = ['Properties']
+
+
+def dec2hex(n):
+
+ h = hex(n)[2:].upper()
+ return '\\u' + '0' * (4 - len(h)) + h
+
+
+def escapestr(s):
+
+ buff = []
+ # QUESTION: escape leading or trailing spaces?
+ for c in s:
+ if c == '\\':
+ buff.append('\\\\')
+ elif c == '\t':
+ buff.append('\\t')
+ elif c == '\n':
+ buff.append('\\n')
+ elif c == '\r':
+ buff.append('\\r')
+ elif c == ' ':
+ buff.append('\\ ')
+ elif c == "'":
+ buff.append("\\'")
+ elif c == '"':
+ buff.append('\\"')
+ elif c == '#':
+ buff.append('\\#')
+ elif c == '!':
+ buff.append('\\!')
+ elif c == '=':
+ buff.append('\\=')
+ elif 32 <= ord(c) <= 126:
+ buff.append(c)
+ else:
+ buff.append(dec2hex(c))
+
+ return ''.join(buff)
+
+
+# TODO: add support for \uXXXX?
+def unescapestr(line):
+
+ buff = []
+ escape = 0
+ for i in range(len(line)):
+ c = line[i]
+ if c == '\\':
+ if escape:
+ escape = 0
+ buff.append('\\')
+ continue
+ else:
+ # this is to deal with '\'
+ # acting as a line continuation
+ # character
+ if i == len(line) - 1:
+ buff.append('\\')
+ break
+ else:
+ escape = 1
+ continue
+ elif c == 'n':
+ if escape:
+ escape = 0
+ buff.append('\n')
+ continue
+ elif c == 'r':
+ if escape:
+ escape = 0
+ buff.append('\r')
+ continue
+ elif c == 't':
+ if escape:
+ escape = 0
+ buff.append('\t')
+ continue
+
+ buff.append(c)
+
+ # make sure escape doesn't stay one
+ # all expected escape sequences either break
+ # or continue, so this should be safe
+ if escape:
+ escape = 0
+
+ return ''.join(buff)
+
+
+
+class Properties(dict):
+
+ def __init__(self, defaults={}):
+ dict.__init__(self)
+ for n,v in defaults.items():
+ self[n] = v
+
+ def __getittem__(self,key):
+ try:
+ return dict.__getittem__(self,key)
+ except KeyError:
+ return None
+
+ def read(self,filename):
+ """
+ Reads properties from a file (java Property class
+ reads from an input stream -- see load()).
+ """
+ f = None
+ try:
+ f = open(filename)
+ self.load(f)
+ finally:
+ if f:
+ f.close()
+
+ def load(self, buff):
+ """
+ Reads properties from a stream (StringIO, file, etc...)
+ """
+ props = readprops(buff)
+ for n,v in props.iteritems():
+ self[n] = v
+
+def readprops(buff):
+
+ name,value = None,''
+ props = {}
+ continued = 0
+
+ while 1:
+ line = buff.readline()
+ if not line:
+ break
+ line = line.strip()
+
+ # empty line
+ if not line:
+ continue
+
+ # comment
+ if line[0] in ('#','!'):
+ continue
+
+ # find name
+ i,escaped = 0,0
+ while i < len(line):
+ c = line[i]
+
+ if c == '\\':
+ if escaped:
+ escaped = 0
+ else:
+ escaped = 1
+ i += 1
+ continue
+
+ elif c in (' ', '\t', ':', '=') and not escaped:
+ name = unescapestr(line[:i])
+ break
+
+ # make sure escaped doesn't stay on
+ if escaped:
+ escaped = 0
+
+ i += 1
+
+ # no dlimiter was found, name is entire line, there is no value
+ if name == None:
+ name = unescapestr(line.lstrip())
+
+ # skip delimiter
+ while line[i:i+1] in ('\t', ' ', ':', '='):
+ i += 1
+
+ value = unescapestr(line[i:].strip())
+ while value[-1:] == '\\':
+ value = value[:-1] # remove \
+ line = buff.readline()
+ if not line:
+ break
+ value += unescapestr(line.strip())
+
+ #print 'value:',value ##
+ props[name] = value
+
+ return props
+#---end java.util.Properties copy---#
+
+# Its a simple command line tool, which can merge different XML fragments
+# together. Such fragments must exist as files on disk, will be moved into
+# one file together on disk.
+#
+# @author Andreas Schluens
+#
+def run(sCmdLine):
+ printCopyright()
+
+ aCfg = ConfigHelper(CFGFILE, sCmdLine)
+
+ # help requested?
+ if aCfg.isHelp():
+ printHelp()
+ sys.exit(-1)
+
+ #create new merge object and start operation
+ aMerger = Merger(aCfg)
+ aMerger.merge()
+
+ sys.exit(0)
+
+#prints out a copyright message on stdout.
+def printCopyright():
+ print "FCFGMerge"
+ print "Copyright: 2003 by Red Hat, Inc., based on FCFGMerge.java` by Sun"
+ print "All Rights Reserved."
+
+#prints out a help message on stdout.
+def printHelp():
+ print "____________________________________________________________"
+ print "usage: FCFGMerge cfg=<file name>"
+ print "parameters:"
+ print "\tcfg=<file name>"
+ print "\t\tmust point to a system file, which contains"
+ print "\t\tall neccessary configuration data for the merge process."
+ print "\tFurther cou can specify every parameter allowed in the"
+ print "\tconfig file as command line parameter too, to overwrite"
+ print "\tthe value from the file."
+
+def StringTokenizer(mstring, separators, isSepIncluded=0):
+#Return a list of tokens given a base string and a string of
+#separators, optionally including the separators if asked for"""
+ token=''
+ tokenList=[]
+ for c in mstring:
+ if c in separators:
+ if token != '':
+ tokenList.append(token)
+ token=''
+ if isSepIncluded:
+ tokenList.append(c)
+ else:
+ token+=c
+ if token:
+ tokenList.append(token)
+ return tokenList
+
+# can be used to analyze command line parameters
+# and merge it together with might existing config
+# files. That provides the possibility to overwrite
+# config values via command line parameter.
+#
+# @author Andreas Schluens
+class ConfigHelper:
+ def __init__(self, sPropFile, lCommandLineArgs):
+ self.m_bEmpty = 1
+ # first load prop file, so its values can be overwritten
+ # by command line args later
+ # Do it only, if a valid file name was given.
+ # But in case this file name is wrong, throw an exception.
+ # So the outside code can react!
+ if sPropFile != None and len(sPropFile) > 0:
+ self.props = Properties()
+ self.props.read(sPropFile)
+
+ count = 0
+ if lCommandLineArgs != None:
+ count = len(lCommandLineArgs)
+ self.m_bEmpty = (count < 1)
+
+ print lCommandLineArgs, "and len is", count
+ for arg in range(count):
+ # is it a named-value argument?
+ # Note: We ignores double "=" signs! => search from left to right
+ pos = lCommandLineArgs[arg].find('=')
+ if pos != -1:
+ sArg = lCommandLineArgs[arg][0:pos]
+ sValue = lCommandLineArgs[arg][pos+1:]
+ self.props[sArg] = sValue
+ continue
+
+ # is it a boolean argument?
+ # Note: Because "--" and "-" will be interpreted as the same
+ # we search from right to left!
+ pos = string.rfind(lCommandLineArgs[arg], '-')
+ if pos == -1:
+ pos = lCommandLineArgs[arg].rfind('/')
+ if pos != -1:
+ sArg = lCommandLineArgs[arg][pos+1:]
+ self.props[sArg] = 1
+ continue
+
+ raise Exception("Invalid command line detected. The argument \""+\
+ lCommandLineArgs[arg]+"\" use an unsupported format.")
+
+# for item in self.props:
+# print item, '->', self.props[item]
+
+ def isHelp(self):
+ return (
+ (self.props.has_key("help")) or
+ (self.props.has_key("?") ) or
+ (self.props.has_key("h") )
+ )
+
+ def getValue(self, sProp):
+ if not self.props.has_key(sProp):
+ raise Exception("The requested config value \""+sProp+"\" "\
+ "does not exists!");
+ return self.props[sProp];
+
+ def getValueWithDefault(self, sProp, default):
+ if not self.props.has_key(sProp):
+ return default;
+ return self.props[sProp];
+
+ def getStringList(self, sProp, sDelimiter, bTrim, bDecode):
+ if not self.props.has_key(sProp):
+ raise Exception("The requested config value \""+sProp+"\" does "\
+ "not exists!");
+ sValue = self.props[sProp]
+
+ lValue = []
+ lTokens = StringTokenizer(sValue, sDelimiter)
+ for sToken in lTokens:
+ if bTrim:
+ sToken = string.strip(sToken)
+ # remove ""
+ if ((bDecode) and (sToken.find("\"") == 0) and \
+ (sToken.rfind("\"") == len(sToken)-1)):
+ sToken = sToken[1, len(sToken)-1]
+ lValue.append(sToken)
+
+ return lValue
+
+def generateHeader(sVersion, sEncoding, sPath, sPackage, bLanguagePack):
+ sHeader = "<?xml version=\""
+ sHeader += sVersion
+ sHeader += "\" encoding=\""
+ sHeader += sEncoding
+ sHeader += "\"?>\n"
+
+ if bLanguagePack:
+ sHeader += "<oor:component-data oor:package=\""
+ sHeader += sPath
+ sHeader += "\" oor:name=\""
+ sHeader += sPackage
+ sHeader += "\" xmlns:install=\"http://openoffice.org/2004/installation\""
+ sHeader += " xmlns:oor=\"http://openoffice.org/2001/registry\""
+ sHeader += " xmlns:xs=\"http://www.w3.org/2001/XMLSchema\""
+ sHeader += " xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">\n"
+ else:
+ sHeader += "<oor:component-data xmlns:oor=\"http://openoffice.org/2001/registry\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" oor:package=\""
+ sHeader += sPath
+ sHeader += "\" oor:name=\""
+ sHeader += sPackage
+ sHeader += "\">\n"
+ return sHeader
+
+def generateFooter():
+ return "</oor:component-data>\n"
+
+# can merge different xml fragments together.
+#
+# @author Caolan McNamara converted from the original java by Andreas Schluens
+#
+class Merger:
+ def __init__(self, aCfg):
+ self.m_aCfg = aCfg
+
+ self.m_aFragmentsDir = self.m_aCfg.getValue(PROP_FRAGMENTSDIR)
+
+ sDelimiter = self.m_aCfg.getValue(PROP_DELIMITER)
+ bTrim = self.m_aCfg.getValue(PROP_TRIM)
+ bDecode = self.m_aCfg.getValue(PROP_DECODE)
+
+ try:
+ aFcfg = ConfigHelper(self.m_aCfg.getValue(PROP_TCFG), None)
+ self.m_lTypes = aFcfg.getStringList(PROP_ITEMS, sDelimiter, bTrim, bDecode)
+ except:
+ self.m_lTypes = []
+
+ try:
+ aFcfg = ConfigHelper(self.m_aCfg.getValue(PROP_FCFG), None)
+ self.m_lFilters = aFcfg.getStringList(PROP_ITEMS, sDelimiter, bTrim, bDecode)
+ except:
+ self.m_lFilters = []
+
+ try:
+ aFcfg = ConfigHelper(self.m_aCfg.getValue(PROP_LCFG), None)
+ self.m_lLoaders = aFcfg.getStringList(PROP_ITEMS, sDelimiter, bTrim, bDecode)
+ except:
+ self.m_lLoaders = []
+
+ try:
+ aFcfg = ConfigHelper(self.m_aCfg.getValue(PROP_CCFG), None)
+ self.m_lHandlers = aFcfg.getStringList(PROP_ITEMS, sDelimiter, bTrim, bDecode)
+ except:
+ self.m_lHandlers = []
+
+ def merge(self):
+ sPackage = self.m_aCfg.getValue(PROP_PKG)
+
+ print "create package \""+sPackage+"\" ..."
+ print "generate package header ... "
+
+ sBuffer = generateHeader(\
+ self.m_aCfg.getValue(PROP_XMLVERSION ),\
+ self.m_aCfg.getValue(PROP_XMLENCODING),\
+ self.m_aCfg.getValue(PROP_XMLPATH ),\
+ self.m_aCfg.getValue(PROP_XMLPACKAGE ),\
+ self.m_aCfg.getValueWithDefault(PROP_LANGUAGEPACK, False))
+
+ # counts all transfered fragments
+ # Can be used later to decide, if a generated package file
+ # contains "nothing"!
+ nItemCount = 0
+
+ for i in range(4):
+ sSetName = None
+ sSubDir = None
+ lFragments = None
+
+ try:
+ if i == 0: #types
+ print "generate set for types ... "
+ sSetName = self.m_aCfg.getValue(PROP_SETNAME_TYPES)
+ sSubDir = self.m_aCfg.getValue(PROP_SUBDIR_TYPES )
+ lFragments = self.m_lTypes
+ elif i == 1: # filters
+ print "generate set for filter ... "
+ sSetName = self.m_aCfg.getValue(PROP_SETNAME_FILTERS)
+ sSubDir = self.m_aCfg.getValue(PROP_SUBDIR_FILTERS )
+ lFragments = self.m_lFilters
+ elif i == 2: # loaders
+ print "generate set for frame loader ... "
+ sSetName = self.m_aCfg.getValue(PROP_SETNAME_LOADERS)
+ sSubDir = self.m_aCfg.getValue(PROP_SUBDIR_LOADERS )
+ lFragments = self.m_lLoaders
+ elif i == 3: # handlers
+ print "generate set for content handler ... "
+ sSetName = self.m_aCfg.getValue(PROP_SETNAME_HANDLERS)
+ sSubDir = self.m_aCfg.getValue(PROP_SUBDIR_HANDLERS )
+ lFragments = self.m_lHandlers
+ except:
+ continue
+
+ nItemCount = nItemCount + len(lFragments)
+
+ sBuffer = sBuffer + self.getFragments(\
+ os.path.join(self.m_aFragmentsDir, sSubDir), \
+ sSetName, lFragments, 1)
+
+ print "generate package footer ... "
+ sBuffer = sBuffer + generateFooter()
+
+ # Attention!
+ # If the package seem to be empty, it make no sense to generate a
+ # corresponding xml file. We should suppress writing of this file on
+ # disk completly ...
+ if nItemCount < 1:
+ print "Package is empty and will not result into a xml file on "\
+ "disk!? Please check configuration file."
+ return
+ print "package contains "+str(nItemCount)+" items"
+
+ aPackage = open(sPackage, 'w')
+ print "write temp package \""+sPackage
+ aPackage.write(sBuffer)
+
+ def getFragments(self, aDir, sSetName, lFragments, nPrettyTabs):
+ sBuffer = ''
+ sExtXcu = self.m_aCfg.getValue(PROP_EXTENSION_XCU);
+
+ if len(lFragments) < 1:
+ return sBuffer
+
+ for tabs in range(nPrettyTabs):
+ sBuffer = sBuffer + "\t"
+ sBuffer = sBuffer + "<node oor:name=\""+sSetName+"\">\n"
+ nPrettyTabs = nPrettyTabs + 1
+
+ for sFragment in lFragments:
+ sFragPath = os.path.join(aDir, sFragment+"."+sExtXcu)
+ try:
+ aFragmentFile = open(sFragPath)
+ except:
+ # handle simple files only and check for existence!
+ raise Exception("fragment \""+sFragPath+"\" does not exists.")
+
+ print "merge fragment \""+sFragPath+"\" ..."
+ sBuffer = sBuffer + aFragmentFile.read()
+
+ sBuffer = sBuffer + "\n"
+
+ nPrettyTabs = nPrettyTabs - 1
+ for tabs in range(nPrettyTabs):
+ sBuffer = sBuffer + "\t"
+ sBuffer = sBuffer + "</node>\n"
+ return sBuffer
+
+run(sys.argv)
+
diff --git a/filter/source/config/tools/split/FCFGSplit.cfg b/filter/source/config/tools/split/FCFGSplit.cfg
new file mode 100644
index 000000000000..0c3c72b2029d
--- /dev/null
+++ b/filter/source/config/tools/split/FCFGSplit.cfg
@@ -0,0 +1,110 @@
+#------------------------------------------------------
+# must be a system file name, which points to the
+# xcu file, should be analyzed and splitted
+#------------------------------------------------------
+xmlfile =o:/SRC680/src.m21/officecfg/registry/data/org/openoffice/Office/TypeDetection.xcu
+
+#------------------------------------------------------
+# specify the format of the specified "xmlfile"
+#------------------------------------------------------
+informat = 6.0
+
+#------------------------------------------------------
+# must be a system directory, which can be cleared completly
+# and will be used then to generate all results of this
+# program there - means to generate al xcu fragments
+#------------------------------------------------------
+outdir =c:/temp/split/fragments
+
+#------------------------------------------------------
+# specify the format of the generated xcu fragments
+# inside the "outdir"
+#------------------------------------------------------
+outformat = 6.Y
+
+#------------------------------------------------------
+# specify the text encoding, which must be used for
+# reading the "xmlfile"
+#------------------------------------------------------
+inencoding = UTF-8
+
+#------------------------------------------------------
+# specify the text encoding, which must be used for
+# writing the xcu fragments
+#------------------------------------------------------
+outencoding = UTF-8
+
+#------------------------------------------------------
+# The following defines specify system directories
+# which must be sub directories of "outdir".
+# Every of these sub dir willl be used to generate
+# groups of xcu fragments there.
+#------------------------------------------------------
+subdir_types = types
+subdir_filters = filters
+subdir_detectservices = detectservices
+subdir_frameloaders = frameloaders
+subdir_contenthandlers = contenthandlers
+
+#------------------------------------------------------
+# Enable/Disable grouping of filter fragments and using
+# of specialized sub directories.
+#------------------------------------------------------
+seperate_filters_by_module = false
+
+#------------------------------------------------------
+# The following defines specify system directories
+# which must be sub directories of "outdir/subdir_filters".
+# Every of these sub dir willl be used to generate
+# groups of filter fragments there.
+# Note: These sub directories are used only if
+# "seperate_filters_by_module" is set to true!
+#------------------------------------------------------
+subdir_module_swriter = swriter
+subdir_module_sweb = sweb
+subdir_module_sglobal = sglobal
+subdir_module_scalc = scalc
+subdir_module_sdraw = sdraw
+subdir_module_simpress = simpress
+subdir_module_smath = smath
+subdir_module_schart = schart
+subdir_module_others = others
+
+#------------------------------------------------------
+# Define the file extension, which is used for
+# every generated fragment inside "outdir".
+#------------------------------------------------------
+fragment_extension = .xcu
+
+#------------------------------------------------------
+# specify a debug level for generating debug output
+# on the console
+# The following levels exists:
+# 0 = no output
+# 1 = only errors/exceptions will be shown
+# 2 = errors/exceptions and warnings will be shown
+# 3 = additional to errors and warnings some global
+# informations are shown
+# 4 = additional to errors and warnings some global
+# and many detailed informations are shown
+#------------------------------------------------------
+debug = 4
+
+#------------------------------------------------------
+# Enable/Disable creation of the new "COMBINED" filter flag
+# for 6.y versions. That means: every filter with set
+# "IMPORT" and "EXPORT" flag will get the new flag value
+# and lose the old ones.
+#------------------------------------------------------
+create_combine_filter_flag = false
+
+#------------------------------------------------------
+# Remove some obsolete filter flags for 6.y versions.
+#------------------------------------------------------
+remove_filter_flag_browserpreferred = true
+remove_filter_flag_preferred = false
+remove_filter_flag_3rdparty = false
+
+remove_graphic_filters = false
+remove_filter_uinames = false
+set_default_detector = false
diff --git a/filter/source/config/tools/split/FCFGSplit.java b/filter/source/config/tools/split/FCFGSplit.java
new file mode 100644
index 000000000000..4693db4cdf83
--- /dev/null
+++ b/filter/source/config/tools/split/FCFGSplit.java
@@ -0,0 +1,565 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package com.sun.star.filter.config.tools.split;
+
+//_______________________________________________
+
+import java.lang.*;
+import java.util.*;
+import java.io.*;
+import com.sun.star.filter.config.tools.utils.*;
+
+//_______________________________________________
+
+/**
+ * Implements a simple command line tool, which can read a given xml
+ * configuration file of the filter configuration, analyze it
+ * and split it into different xml fragments.
+ * All parameters of this process can be given by a configuration file.
+ *
+ *
+ */
+public class FCFGSplit
+{
+ //___________________________________________
+ // private const
+
+ /** specify the command line parameter to set the debug level for this app. */
+ private static final java.lang.String CMD_DEBUG = "debug" ;
+
+ /** specify the command line parameter to set a configuration file for this app. */
+ private static final java.lang.String CMD_CONFIG = "config";
+
+ /** The following strings are used as property names of
+ * the configuration file we need here.
+ *
+ * @seealso readCfg()
+ */
+
+ private static final java.lang.String CFGKEY_XMLFILE = "xmlfile" ;
+ private static final java.lang.String CFGKEY_INFORMAT = "informat" ;
+ private static final java.lang.String CFGKEY_OUTFORMAT = "outformat" ;
+ private static final java.lang.String CFGKEY_INENCODING = "inencoding" ;
+ private static final java.lang.String CFGKEY_OUTENCODING = "outencoding" ;
+ private static final java.lang.String CFGKEY_OUTDIR = "outdir" ;
+ private static final java.lang.String CFGKEY_FRAGMENT_EXTENSION = "fragment_extension" ;
+ private static final java.lang.String CFGKEY_CREATE_COMBINE_FILTER_FLAG = "create_combine_filter_flag" ;
+ private static final java.lang.String CFGKEY_REMOVE_FILTER_FLAG_BROWSERPREFERRED = "remove_filter_flag_browserpreferred" ;
+ private static final java.lang.String CFGKEY_REMOVE_FILTER_FLAG_PREFERRED = "remove_filter_flag_preferred" ;
+ private static final java.lang.String CFGKEY_REMOVE_FILTER_FLAG_3RDPARTY = "remove_filter_flag_3rdparty" ;
+ private static final java.lang.String CFGKEY_REMOVE_FILTER_UINAMES = "remove_filter_uinames" ;
+ private static final java.lang.String CFGKEY_REMOVE_GRAPHIC_FILTERS = "remove_graphic_filters" ;
+ private static final java.lang.String CFGKEY_SET_DEFAULT_DETECTOR = "set_default_detector" ;
+
+ private static final java.lang.String CFGKEY_SUBDIR_TYPES = "subdir_types" ;
+ private static final java.lang.String CFGKEY_SUBDIR_FILTERS = "subdir_filters" ;
+ private static final java.lang.String CFGKEY_SUBDIR_DETECTSERVICES = "subdir_detectservices" ;
+ private static final java.lang.String CFGKEY_SUBDIR_FRAMELOADERS = "subdir_frameloaders" ;
+ private static final java.lang.String CFGKEY_SUBDIR_CONTENTHANDLERS = "subdir_contenthandlers" ;
+
+ private static final java.lang.String CFGKEY_SEPERATE_FILTERS_BY_MODULE = "seperate_filters_by_module" ;
+
+ private static final java.lang.String CFGKEY_SUBDIR_MODULE_SWRITER = "subdir_module_swriter" ;
+ private static final java.lang.String CFGKEY_SUBDIR_MODULE_SWEB = "subdir_module_sweb" ;
+ private static final java.lang.String CFGKEY_SUBDIR_MODULE_SGLOBAL = "subdir_module_sglobal" ;
+ private static final java.lang.String CFGKEY_SUBDIR_MODULE_SCALC = "subdir_module_scalc" ;
+ private static final java.lang.String CFGKEY_SUBDIR_MODULE_SDRAW = "subdir_module_sdraw" ;
+ private static final java.lang.String CFGKEY_SUBDIR_MODULE_SIMPRESS = "subdir_module_simpress" ;
+ private static final java.lang.String CFGKEY_SUBDIR_MODULE_SMATH = "subdir_module_smath" ;
+ private static final java.lang.String CFGKEY_SUBDIR_MODULE_SCHART = "subdir_module_schart" ;
+ private static final java.lang.String CFGKEY_SUBDIR_MODULE_OTHERS = "subdir_module_others" ;
+
+ /** The following strings are used as property default
+ * values if a configuration key does not exist.
+ * It must be a string value, because the class java.util.Properties
+ * accept it as the only type. But of course the value must be
+ * convertable to the right target type.
+ *
+ * @seealso readCfg()
+ */
+
+ private static final java.lang.String DEFAULT_XMLFILE = ".//TypeDetection.xcu" ;
+ private static final java.lang.String DEFAULT_INFORMAT = "6.0" ;
+ private static final java.lang.String DEFAULT_OUTFORMAT = "6.Y" ;
+ private static final java.lang.String DEFAULT_INENCODING = "UTF-8" ;
+ private static final java.lang.String DEFAULT_OUTENCODING = "UTF-8" ;
+ private static final java.lang.String DEFAULT_OUTDIR = ".//temp" ;
+ private static final java.lang.String DEFAULT_FRAGMENT_EXTENSION = ".xcu" ;
+ private static final java.lang.String DEFAULT_CREATE_COMBINE_FILTER_FLAG = "false" ;
+ private static final java.lang.String DEFAULT_REMOVE_FILTER_FLAG_BROWSERPREFERRED = "false" ;
+ private static final java.lang.String DEFAULT_REMOVE_FILTER_FLAG_PREFERRED = "false" ;
+ private static final java.lang.String DEFAULT_REMOVE_FILTER_FLAG_3RDPARTY = "false" ;
+ private static final java.lang.String DEFAULT_REMOVE_FILTER_UINAMES = "false" ;
+ private static final java.lang.String DEFAULT_REMOVE_GRAPHIC_FILTERS = "false" ;
+ private static final java.lang.String DEFAULT_SET_DEFAULT_DETECTOR = "false" ;
+
+ private static final java.lang.String DEFAULT_SUBDIR_TYPES = "Types" ;
+ private static final java.lang.String DEFAULT_SUBDIR_FILTERS = "Filters" ;
+ private static final java.lang.String DEFAULT_SUBDIR_DETECTSERVICES = "DetectServices" ;
+ private static final java.lang.String DEFAULT_SUBDIR_FRAMELOADERS = "FrameLoaders" ;
+ private static final java.lang.String DEFAULT_SUBDIR_CONTENTHANDLERS = "ContentHandlers" ;
+
+ private static final java.lang.String DEFAULT_SEPERATE_FILTERS_BY_MODULE = "false" ;
+
+ private static final java.lang.String DEFAULT_SUBDIR_MODULE_SWRITER = "SWriter" ;
+ private static final java.lang.String DEFAULT_SUBDIR_MODULE_SWEB = "SWeb" ;
+ private static final java.lang.String DEFAULT_SUBDIR_MODULE_SGLOBAL = "SGlobal" ;
+ private static final java.lang.String DEFAULT_SUBDIR_MODULE_SCALC = "SCalc" ;
+ private static final java.lang.String DEFAULT_SUBDIR_MODULE_SDRAW = "SDraw" ;
+ private static final java.lang.String DEFAULT_SUBDIR_MODULE_SIMPRESS = "SImpress" ;
+ private static final java.lang.String DEFAULT_SUBDIR_MODULE_SMATH = "SMath" ;
+ private static final java.lang.String DEFAULT_SUBDIR_MODULE_SCHART = "SChart" ;
+ private static final java.lang.String DEFAULT_SUBDIR_MODULE_OTHERS = "Others" ;
+
+ //___________________________________________
+ // private member
+
+ /** contains the name of the reading xcu file. */
+ private static java.lang.String m_sXMLFile;
+
+ /** specify the xml file format, which must be interpreted at reading time. */
+ private static int m_nInFormat;
+
+ /** specify the xml file format, which must be used
+ * to generate all xcu fragments. */
+ private static int m_nOutFormat;
+
+ /** specify the file encoding for reading. */
+ private static java.lang.String m_sInEncoding;
+
+ /** specify the file encoding for writing fragments. */
+ private static java.lang.String m_sOutEncoding;
+
+ /** specify the target directory, where all results of this
+ * process can be generated.
+ * Note: May it will be cleared! */
+ private static java.lang.String m_sOutDir;
+
+ /** can be used to generate some output on the console. */
+ private static Logger m_aDebug;
+
+ /** contains the file extension for all generated xml fragments. */
+ private static java.lang.String m_sFragmentExtension;
+
+ /** specify the sub directory to generate type fragments.
+ * Its meaned relativ to m_sOutDir. */
+ private static java.lang.String m_sSubDirTypes;
+
+ /** specify the sub directory to generate filter fragments.
+ * Its meaned relativ to m_sOutDir. */
+ private static java.lang.String m_sSubDirFilters;
+
+ /** specify the sub directory to generate detect service fragments.
+ * Its meaned relativ to m_sOutDir. */
+ private static java.lang.String m_sSubDirDetectServices;
+
+ /** specify the sub directory to generate frame loader fragments.
+ * Its meaned relativ to m_sOutDir. */
+ private static java.lang.String m_sSubDirFrameLoaders;
+
+ /** specify the sub directory to generate content handler fragments.
+ * Its meaned relativ to m_sOutDir. */
+ private static java.lang.String m_sSubDirContentHandlers;
+
+ /** enable/disable generating of filter groups - seperated by
+ * application modules. */
+ private static boolean m_bSeperateFiltersByModule;
+
+ /** specify the sub directory to generate filter groups
+ * for the module writer. Will be used only,
+ * if m_bSeperateFiltersByModule is set to TRUE.*/
+ private static java.lang.String m_sSubDirModuleSWriter;
+
+ /** specify the sub directory to generate filter groups
+ * for the module writer/web. Will be used only,
+ * if m_bSeperateFiltersByModule is set to TRUE.*/
+ private static java.lang.String m_sSubDirModuleSWeb;
+
+ /** specify the sub directory to generate filter groups
+ * for the module writer/global. Will be used only,
+ * if m_bSeperateFiltersByModule is set to TRUE.*/
+ private static java.lang.String m_sSubDirModuleSGlobal;
+
+ /** specify the sub directory to generate filter groups
+ * for the module calc. Will be used only,
+ * if m_bSeperateFiltersByModule is set to TRUE.*/
+ private static java.lang.String m_sSubDirModuleSCalc;
+
+ /** specify the sub directory to generate filter groups
+ * for the module draw. Will be used only,
+ * if m_bSeperateFiltersByModule is set to TRUE.*/
+ private static java.lang.String m_sSubDirModuleSDraw;
+
+ /** specify the sub directory to generate filter groups
+ * for the module impress. Will be used only,
+ * if m_bSeperateFiltersByModule is set to TRUE.*/
+ private static java.lang.String m_sSubDirModuleSImpress;
+
+ /** specify the sub directory to generate filter groups
+ * for the module math. Will be used only,
+ * if m_bSeperateFiltersByModule is set to TRUE.*/
+ private static java.lang.String m_sSubDirModuleSMath;
+
+ /** specify the sub directory to generate filter groups
+ * for the module chart. Will be used only,
+ * if m_bSeperateFiltersByModule is set to TRUE.*/
+ private static java.lang.String m_sSubDirModuleSChart;
+
+ /** specify the sub directory to generate filter groups
+ * for unknown modules - e.g. the graphic filters.
+ * Will be used only, if m_bSeperateFiltersByModule
+ * is set to TRUE.*/
+ private static java.lang.String m_sSubDirModuleOthers;
+
+ private static boolean m_bCreateCombineFilterFlag;
+ private static boolean m_bRemoveFilterFlagBrowserPreferred;
+ private static boolean m_bRemoveFilterFlagPreferred;
+ private static boolean m_bRemoveFilterFlag3rdparty;
+ private static boolean m_bRemoveFilterUINames;
+ private static boolean m_bRemoveGraphicFilters;
+ private static boolean m_bSetDefaultDetector;
+
+ //___________________________________________
+ // main
+
+ /** main.
+ *
+ * Analyze the command line arguments, load the configuration file,
+ * fill a cache from the specified xml file and generate all
+ * needed xml fragments inside the specified output directory.
+ *
+ * @param lArgs
+ * contains the command line arguments.
+ */
+ public static void main(java.lang.String[] lArgs)
+ {
+ long t_start = System.currentTimeMillis();
+
+ // must be :-)
+ FCFGSplit.printCopyright();
+ // can be used as exit code
+ int nErr = 0;
+
+ // --------------------------------------------------------------------
+ // analyze command line parameter
+ ConfigHelper aCmdLine = null;
+ try
+ {
+ aCmdLine = new ConfigHelper("com/sun/star/filter/config/tools/split/FCFGSplit.cfg", lArgs);
+ }
+ catch(java.lang.Throwable exCmdLine)
+ {
+ exCmdLine.printStackTrace();
+ FCFGSplit.printHelp();
+ System.exit(--nErr);
+ }
+
+ // --------------------------------------------------------------------
+ // help requested?
+ if (aCmdLine.isHelp())
+ {
+ FCFGSplit.printHelp();
+ System.exit(--nErr);
+ }
+
+ // --------------------------------------------------------------------
+ // initialize an output channel for errors/warnings etc.
+ int nLevel = aCmdLine.getInt(CMD_DEBUG, Logger.LEVEL_DETAILEDINFOS);
+ m_aDebug = new Logger(nLevel);
+ try
+ {
+ FCFGSplit.readCfg(aCmdLine);
+ }
+ catch(java.lang.Exception exCfgLoad)
+ {
+ m_aDebug.setException(exCfgLoad);
+ System.exit(--nErr);
+ }
+
+ // --------------------------------------------------------------------
+ // check if the required resources exists
+ java.io.File aXMLFile = new java.io.File(m_sXMLFile);
+ if (!aXMLFile.exists() || !aXMLFile.isFile())
+ {
+ m_aDebug.setError("The specified xml file \""+aXMLFile.getPath()+"\" does not exist or seems not to be a simple file.");
+ System.exit(--nErr);
+ }
+
+ java.io.File aOutDir = new java.io.File(m_sOutDir);
+ if (!aOutDir.exists() || !aOutDir.isDirectory())
+ {
+ m_aDebug.setError("The specified directory \""+aOutDir.getPath()+"\" does not exist or seems not to be a directory.");
+ System.exit(--nErr);
+ }
+
+ if (m_nInFormat == Cache.FORMAT_UNSUPPORTED)
+ {
+ m_aDebug.setError("The specified xml format for input is not supported.");
+ System.exit(--nErr);
+ }
+
+ if (m_nOutFormat == Cache.FORMAT_UNSUPPORTED)
+ {
+ m_aDebug.setError("The specified xml format for output is not supported.");
+ System.exit(--nErr);
+ }
+
+ // --------------------------------------------------------------------
+ // load the xml file
+ m_aDebug.setGlobalInfo("loading xml file \""+aXMLFile.getPath()+"\" ...");
+ long t_load_start = System.currentTimeMillis();
+ Cache aCache = new Cache(m_aDebug);
+ try
+ {
+ aCache.fromXML(aXMLFile, m_nInFormat);
+ }
+ catch(java.lang.Throwable exLoad)
+ {
+ m_aDebug.setException(exLoad);
+ System.exit(--nErr);
+ }
+ long t_load_end = System.currentTimeMillis();
+
+ // --------------------------------------------------------------------
+ // validate the content, fix some problems and convert it to the output format
+ m_aDebug.setGlobalInfo("validate and transform to output format ...");
+ long t_transform_start = System.currentTimeMillis();
+ try
+ {
+ aCache.validate(m_nInFormat);
+ if (
+ (m_nInFormat == Cache.FORMAT_60) &&
+ (m_nOutFormat == Cache.FORMAT_6Y)
+ )
+ {
+ aCache.transform60to6Y(m_bCreateCombineFilterFlag ,
+ m_bRemoveFilterFlagBrowserPreferred,
+ m_bRemoveFilterFlagPreferred ,
+ m_bRemoveFilterFlag3rdparty ,
+ m_bRemoveFilterUINames ,
+ m_bRemoveGraphicFilters ,
+ m_bSetDefaultDetector );
+ }
+ aCache.validate(m_nOutFormat);
+ }
+ catch(java.lang.Throwable exTransform)
+ {
+ m_aDebug.setException(exTransform);
+ System.exit(--nErr);
+ }
+ long t_transform_end = System.currentTimeMillis();
+
+ // --------------------------------------------------------------------
+ // generate all xml fragments
+ m_aDebug.setGlobalInfo("generate xml fragments into directory \""+aOutDir.getPath()+"\" ...");
+ long t_split_start = System.currentTimeMillis();
+ try
+ {
+ SplitterData aDataSet = new SplitterData();
+ aDataSet.m_aDebug = m_aDebug ;
+ aDataSet.m_aCache = aCache ;
+ aDataSet.m_nFormat = m_nOutFormat ;
+ aDataSet.m_sEncoding = m_sOutEncoding ;
+ aDataSet.m_bSeperateFiltersByModule = m_bSeperateFiltersByModule;
+ aDataSet.m_sFragmentExtension = m_sFragmentExtension ;
+ aDataSet.m_aOutDir = aOutDir ;
+
+ aDataSet.m_aFragmentDirTypes = new java.io.File(aOutDir, m_sSubDirTypes );
+ aDataSet.m_aFragmentDirFilters = new java.io.File(aOutDir, m_sSubDirFilters );
+ aDataSet.m_aFragmentDirDetectServices = new java.io.File(aOutDir, m_sSubDirDetectServices );
+ aDataSet.m_aFragmentDirFrameLoaders = new java.io.File(aOutDir, m_sSubDirFrameLoaders );
+ aDataSet.m_aFragmentDirContentHandlers = new java.io.File(aOutDir, m_sSubDirContentHandlers);
+
+ if (m_bSeperateFiltersByModule)
+ {
+ aDataSet.m_aFragmentDirModuleSWriter = new java.io.File(aDataSet.m_aFragmentDirFilters, m_sSubDirModuleSWriter );
+ aDataSet.m_aFragmentDirModuleSWeb = new java.io.File(aDataSet.m_aFragmentDirFilters, m_sSubDirModuleSWeb );
+ aDataSet.m_aFragmentDirModuleSGlobal = new java.io.File(aDataSet.m_aFragmentDirFilters, m_sSubDirModuleSGlobal );
+ aDataSet.m_aFragmentDirModuleSCalc = new java.io.File(aDataSet.m_aFragmentDirFilters, m_sSubDirModuleSCalc );
+ aDataSet.m_aFragmentDirModuleSDraw = new java.io.File(aDataSet.m_aFragmentDirFilters, m_sSubDirModuleSDraw );
+ aDataSet.m_aFragmentDirModuleSImpress = new java.io.File(aDataSet.m_aFragmentDirFilters, m_sSubDirModuleSImpress);
+ aDataSet.m_aFragmentDirModuleSMath = new java.io.File(aDataSet.m_aFragmentDirFilters, m_sSubDirModuleSMath );
+ aDataSet.m_aFragmentDirModuleSChart = new java.io.File(aDataSet.m_aFragmentDirFilters, m_sSubDirModuleSChart );
+ aDataSet.m_aFragmentDirModuleOthers = new java.io.File(aDataSet.m_aFragmentDirFilters, m_sSubDirModuleOthers );
+ }
+ else
+ {
+ aDataSet.m_aFragmentDirModuleSWriter = aDataSet.m_aFragmentDirFilters;
+ aDataSet.m_aFragmentDirModuleSWeb = aDataSet.m_aFragmentDirFilters;
+ aDataSet.m_aFragmentDirModuleSGlobal = aDataSet.m_aFragmentDirFilters;
+ aDataSet.m_aFragmentDirModuleSCalc = aDataSet.m_aFragmentDirFilters;
+ aDataSet.m_aFragmentDirModuleSDraw = aDataSet.m_aFragmentDirFilters;
+ aDataSet.m_aFragmentDirModuleSImpress = aDataSet.m_aFragmentDirFilters;
+ aDataSet.m_aFragmentDirModuleSMath = aDataSet.m_aFragmentDirFilters;
+ aDataSet.m_aFragmentDirModuleSChart = aDataSet.m_aFragmentDirFilters;
+ aDataSet.m_aFragmentDirModuleOthers = aDataSet.m_aFragmentDirFilters;
+ }
+
+ Splitter aSplitter = new Splitter(aDataSet);
+ aSplitter.split();
+ }
+ catch(java.lang.Throwable exSplit)
+ {
+ m_aDebug.setException(exSplit);
+ System.exit(--nErr);
+ }
+ long t_split_end = System.currentTimeMillis();
+
+ // --------------------------------------------------------------------
+ // generate some special views
+ m_aDebug.setGlobalInfo("generate views and statistics ...");
+ long t_statistics_start = System.currentTimeMillis();
+ try
+ {
+ aCache.analyze();
+ aCache.toHTML(aOutDir, m_nOutFormat, m_sOutEncoding);
+ m_aDebug.setDetailedInfo(aCache.getStatistics());
+ }
+ catch(java.lang.Throwable exStatistics)
+ {
+ m_aDebug.setException(exStatistics);
+ System.exit(--nErr);
+ }
+ long t_statistics_end = System.currentTimeMillis();
+
+ // --------------------------------------------------------------------
+ // analyze some time stamps
+ long t_end = System.currentTimeMillis();
+
+ java.lang.StringBuffer sTimes = new java.lang.StringBuffer(100);
+ sTimes.append("Needed times:\n" );
+ sTimes.append("t [all]\t\t=\t" );
+ sTimes.append(t_end-t_start );
+ sTimes.append(" ms\n" );
+ sTimes.append("t [load]\t=\t" );
+ sTimes.append(t_load_end-t_load_start );
+ sTimes.append(" ms\n" );
+ sTimes.append("t [transform]\t=\t" );
+ sTimes.append(t_transform_end-t_transform_start );
+ sTimes.append(" ms\n" );
+ sTimes.append("t [split]\t=\t" );
+ sTimes.append(t_split_end-t_split_start );
+ sTimes.append(" ms\n" );
+ sTimes.append("t [statistics]\t=\t" );
+ sTimes.append(t_statistics_end-t_statistics_start);
+ sTimes.append(" ms\n" );
+ m_aDebug.setDetailedInfo(sTimes.toString());
+
+ // everyting seems to be ok.
+ // Return "OK" to calli.
+ m_aDebug.setGlobalInfo("Finish.");
+ System.exit(0);
+ }
+
+ //___________________________________________
+
+ /** read the configuration file.
+ *
+ * @param aCfg
+ * contains the content of the
+ * loaded configuration file.
+ */
+ private static void readCfg(java.util.Properties aCfg)
+ {
+ m_sXMLFile = aCfg.getProperty(CFGKEY_XMLFILE , DEFAULT_XMLFILE );
+
+ m_sInEncoding = aCfg.getProperty(CFGKEY_INENCODING , DEFAULT_INENCODING );
+ m_sOutEncoding = aCfg.getProperty(CFGKEY_OUTENCODING , DEFAULT_OUTENCODING );
+ m_sOutDir = aCfg.getProperty(CFGKEY_OUTDIR , DEFAULT_OUTDIR );
+ m_sFragmentExtension = aCfg.getProperty(CFGKEY_FRAGMENT_EXTENSION , DEFAULT_FRAGMENT_EXTENSION );
+
+ m_sSubDirTypes = aCfg.getProperty(CFGKEY_SUBDIR_TYPES , DEFAULT_SUBDIR_TYPES );
+ m_sSubDirFilters = aCfg.getProperty(CFGKEY_SUBDIR_FILTERS , DEFAULT_SUBDIR_FILTERS );
+ m_sSubDirDetectServices = aCfg.getProperty(CFGKEY_SUBDIR_DETECTSERVICES , DEFAULT_SUBDIR_DETECTSERVICES );
+ m_sSubDirFrameLoaders = aCfg.getProperty(CFGKEY_SUBDIR_FRAMELOADERS , DEFAULT_SUBDIR_FRAMELOADERS );
+ m_sSubDirContentHandlers = aCfg.getProperty(CFGKEY_SUBDIR_CONTENTHANDLERS , DEFAULT_SUBDIR_CONTENTHANDLERS );
+
+ m_sSubDirModuleSWriter = aCfg.getProperty(CFGKEY_SUBDIR_MODULE_SWRITER , DEFAULT_SUBDIR_MODULE_SWRITER );
+ m_sSubDirModuleSWeb = aCfg.getProperty(CFGKEY_SUBDIR_MODULE_SWEB , DEFAULT_SUBDIR_MODULE_SWEB );
+ m_sSubDirModuleSGlobal = aCfg.getProperty(CFGKEY_SUBDIR_MODULE_SGLOBAL , DEFAULT_SUBDIR_MODULE_SGLOBAL );
+ m_sSubDirModuleSCalc = aCfg.getProperty(CFGKEY_SUBDIR_MODULE_SCALC , DEFAULT_SUBDIR_MODULE_SCALC );
+ m_sSubDirModuleSDraw = aCfg.getProperty(CFGKEY_SUBDIR_MODULE_SDRAW , DEFAULT_SUBDIR_MODULE_SDRAW );
+ m_sSubDirModuleSImpress = aCfg.getProperty(CFGKEY_SUBDIR_MODULE_SIMPRESS , DEFAULT_SUBDIR_MODULE_SIMPRESS );
+ m_sSubDirModuleSMath = aCfg.getProperty(CFGKEY_SUBDIR_MODULE_SMATH , DEFAULT_SUBDIR_MODULE_SMATH );
+ m_sSubDirModuleSChart = aCfg.getProperty(CFGKEY_SUBDIR_MODULE_SCHART , DEFAULT_SUBDIR_MODULE_SCHART );
+ m_sSubDirModuleOthers = aCfg.getProperty(CFGKEY_SUBDIR_MODULE_OTHERS , DEFAULT_SUBDIR_MODULE_OTHERS );
+
+ m_bSeperateFiltersByModule = new java.lang.Boolean(aCfg.getProperty(CFGKEY_SEPERATE_FILTERS_BY_MODULE , DEFAULT_SEPERATE_FILTERS_BY_MODULE )).booleanValue();
+ m_bCreateCombineFilterFlag = new java.lang.Boolean(aCfg.getProperty(CFGKEY_CREATE_COMBINE_FILTER_FLAG , DEFAULT_CREATE_COMBINE_FILTER_FLAG )).booleanValue();
+ m_bRemoveFilterFlagBrowserPreferred = new java.lang.Boolean(aCfg.getProperty(CFGKEY_REMOVE_FILTER_FLAG_BROWSERPREFERRED, DEFAULT_REMOVE_FILTER_FLAG_BROWSERPREFERRED)).booleanValue();
+ m_bRemoveFilterFlagPreferred = new java.lang.Boolean(aCfg.getProperty(CFGKEY_REMOVE_FILTER_FLAG_PREFERRED , DEFAULT_REMOVE_FILTER_FLAG_PREFERRED )).booleanValue();
+ m_bRemoveFilterFlag3rdparty = new java.lang.Boolean(aCfg.getProperty(CFGKEY_REMOVE_FILTER_FLAG_3RDPARTY , DEFAULT_REMOVE_FILTER_FLAG_3RDPARTY )).booleanValue();
+ m_bRemoveFilterUINames = new java.lang.Boolean(aCfg.getProperty(CFGKEY_REMOVE_FILTER_UINAMES , DEFAULT_REMOVE_FILTER_UINAMES )).booleanValue();
+ m_bRemoveGraphicFilters = new java.lang.Boolean(aCfg.getProperty(CFGKEY_REMOVE_GRAPHIC_FILTERS , DEFAULT_REMOVE_GRAPHIC_FILTERS )).booleanValue();
+ m_bSetDefaultDetector = new java.lang.Boolean(aCfg.getProperty(CFGKEY_SET_DEFAULT_DETECTOR , DEFAULT_SET_DEFAULT_DETECTOR )).booleanValue();
+
+ java.lang.String sFormat = aCfg.getProperty(CFGKEY_INFORMAT, DEFAULT_INFORMAT);
+ m_nInFormat = Cache.mapFormatString2Format(sFormat);
+
+ sFormat = aCfg.getProperty(CFGKEY_OUTFORMAT, DEFAULT_OUTFORMAT);
+ m_nOutFormat = Cache.mapFormatString2Format(sFormat);
+ }
+
+ //___________________________________________
+
+ /** prints out a copyright message on stdout.
+ */
+ private static void printCopyright()
+ {
+ java.lang.StringBuffer sOut = new java.lang.StringBuffer(256);
+ sOut.append("FCFGSplit\n");
+ sOut.append("Copyright: 2000 by Sun Microsystems, Inc.\n");
+ sOut.append("All Rights Reserved.\n");
+ System.out.println(sOut.toString());
+ }
+
+ //___________________________________________
+
+ /** prints out a help message on stdout.
+ */
+ private static void printHelp()
+ {
+ java.lang.StringBuffer sOut = new java.lang.StringBuffer(1000);
+ sOut.append("_______________________________________________________________________________\n\n" );
+ sOut.append("usage: FCFGSplit "+CMD_CONFIG+"=<file name> "+CMD_DEBUG+"=<level>\n" );
+ sOut.append("parameters:\n" );
+ sOut.append("\t-help\n" );
+ sOut.append("\t\tshow this little help.\n\n" );
+ sOut.append("\t"+CMD_CONFIG+"=<file name>\n" );
+ sOut.append("\t\tspecify the configuration file.\n\n" );
+ sOut.append("\t"+CMD_DEBUG+"=<level>\n" );
+ sOut.append("\t\tprints out some debug messages.\n" );
+ sOut.append("\t\tlevel=[0..4]\n" );
+ sOut.append("\t\t0 => no debug messages\n" );
+ sOut.append("\t\t1 => print out errors only\n" );
+ sOut.append("\t\t2 => print out errors & warnings\n" );
+ sOut.append("\t\t3 => print out some global actions (e.g. load file ...)\n" );
+ sOut.append("\t\t4 => print out more detailed actions (e.g. load item nr. xxx of file.)\n\n" );
+ System.out.println(sOut.toString());
+ }
+}
diff --git a/filter/source/config/tools/split/Manifest.mf b/filter/source/config/tools/split/Manifest.mf
new file mode 100644
index 000000000000..4d0d20ed59cc
--- /dev/null
+++ b/filter/source/config/tools/split/Manifest.mf
@@ -0,0 +1 @@
+Main-Class: com.sun.star.filter.config.tools.split.FCFGSplit
diff --git a/filter/source/config/tools/split/Splitter.java b/filter/source/config/tools/split/Splitter.java
new file mode 100644
index 000000000000..d9c171382596
--- /dev/null
+++ b/filter/source/config/tools/split/Splitter.java
@@ -0,0 +1,310 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package com.sun.star.filter.config.tools.split;
+
+//_______________________________________________
+
+import java.lang.*;
+import java.util.*;
+import java.io.*;
+import com.sun.star.filter.config.tools.utils.*;
+
+//_______________________________________________
+
+/**
+ * Can split one xml file into its different xml fragments.
+ *
+ *
+ */
+public class Splitter
+{
+ //___________________________________________
+ // const
+
+ //___________________________________________
+ // member
+
+ /** contains all real member of this instance.
+ * That make it easy to initialize an instance
+ * of this class inside a multi-threaded environment. */
+ private SplitterData m_aDataSet;
+
+ //___________________________________________
+ // interface
+
+ /** initialize a new instance of this class with all
+ * needed resources.
+ *
+ * @param aDataSet
+ * contains all needed parameters for this instance
+ * as a complete set, which can be filled outside.
+ */
+ public Splitter(SplitterData aDataSet)
+ {
+ m_aDataSet = aDataSet;
+ }
+
+ //___________________________________________
+ // interface
+
+ /** generate xml fragments for all cache items.
+ *
+ * @throw [java.lang.Exception]
+ * if anything will fail inside during
+ * this operation runs.
+ */
+ public synchronized void split()
+ throws java.lang.Exception
+ {
+ createDirectoryStructures();
+
+ // use some statistic values to check if all cache items
+ // will be transformed realy.
+ int nTypes = m_aDataSet.m_aCache.getItemCount(Cache.E_TYPE );
+ int nFilters = m_aDataSet.m_aCache.getItemCount(Cache.E_FILTER );
+ int nDetectServices = m_aDataSet.m_aCache.getItemCount(Cache.E_DETECTSERVICE );
+ int nFrameLoaders = m_aDataSet.m_aCache.getItemCount(Cache.E_FRAMELOADER );
+ int nContentHandlers = m_aDataSet.m_aCache.getItemCount(Cache.E_CONTENTHANDLER);
+
+ // generate all type fragments
+ m_aDataSet.m_aDebug.setGlobalInfo("generate type fragments ...");
+ java.util.Vector lNames = m_aDataSet.m_aCache.getItemNames(Cache.E_TYPE);
+ java.util.Enumeration it = lNames.elements();
+ while(it.hasMoreElements())
+ generateXMLFragment(Cache.E_TYPE, (java.lang.String)it.nextElement(), m_aDataSet.m_aFragmentDirTypes);
+ nTypes -= lNames.size();
+
+ // generate filter fragments for the writer module
+ m_aDataSet.m_aDebug.setGlobalInfo("generate filter fragments ...");
+ m_aDataSet.m_aDebug.setGlobalInfo("\tfor module writer ...");
+ java.util.HashMap rRequestedProps = new java.util.HashMap();
+ rRequestedProps.put(Cache.PROPNAME_DOCUMENTSERVICE, "com.sun.star.text.TextDocument");
+ lNames = m_aDataSet.m_aCache.getMatchedItemNames(Cache.E_FILTER, rRequestedProps);
+ it = lNames.elements();
+ while(it.hasMoreElements())
+ generateXMLFragment(Cache.E_FILTER, (java.lang.String)it.nextElement(), m_aDataSet.m_aFragmentDirModuleSWriter);
+ nFilters -= lNames.size();
+
+ // generate filter fragments for the writer/web module
+ m_aDataSet.m_aDebug.setGlobalInfo("\tfor module writer/web ...");
+ rRequestedProps.put(Cache.PROPNAME_DOCUMENTSERVICE, "com.sun.star.text.WebDocument");
+ lNames = m_aDataSet.m_aCache.getMatchedItemNames(Cache.E_FILTER, rRequestedProps);
+ it = lNames.elements();
+ while(it.hasMoreElements())
+ generateXMLFragment(Cache.E_FILTER, (java.lang.String)it.nextElement(), m_aDataSet.m_aFragmentDirModuleSWeb);
+ nFilters -= lNames.size();
+
+ // generate filter fragments for the writer/global module
+ m_aDataSet.m_aDebug.setGlobalInfo("\tfor module writer/global ...");
+ rRequestedProps.put(Cache.PROPNAME_DOCUMENTSERVICE, "com.sun.star.text.GlobalDocument");
+ lNames = m_aDataSet.m_aCache.getMatchedItemNames(Cache.E_FILTER, rRequestedProps);
+ it = lNames.elements();
+ while(it.hasMoreElements())
+ generateXMLFragment(Cache.E_FILTER, (java.lang.String)it.nextElement(), m_aDataSet.m_aFragmentDirModuleSGlobal);
+ nFilters -= lNames.size();
+
+ // generate filter fragments for the calc module
+ m_aDataSet.m_aDebug.setGlobalInfo("\tfor module calc ...");
+ rRequestedProps.put(Cache.PROPNAME_DOCUMENTSERVICE, "com.sun.star.sheet.SpreadsheetDocument");
+ lNames = m_aDataSet.m_aCache.getMatchedItemNames(Cache.E_FILTER, rRequestedProps);
+ it = lNames.elements();
+ while(it.hasMoreElements())
+ generateXMLFragment(Cache.E_FILTER, (java.lang.String)it.nextElement(), m_aDataSet.m_aFragmentDirModuleSCalc);
+ nFilters -= lNames.size();
+
+ // generate filter fragments for the draw module
+ m_aDataSet.m_aDebug.setGlobalInfo("\tfor module draw ...");
+ rRequestedProps.put(Cache.PROPNAME_DOCUMENTSERVICE, "com.sun.star.drawing.DrawingDocument");
+ lNames = m_aDataSet.m_aCache.getMatchedItemNames(Cache.E_FILTER, rRequestedProps);
+ it = lNames.elements();
+ while(it.hasMoreElements())
+ generateXMLFragment(Cache.E_FILTER, (java.lang.String)it.nextElement(), m_aDataSet.m_aFragmentDirModuleSDraw);
+ nFilters -= lNames.size();
+
+ // generate filter fragments for the impress module
+ m_aDataSet.m_aDebug.setGlobalInfo("\tfor module impress ...");
+ rRequestedProps.put(Cache.PROPNAME_DOCUMENTSERVICE, "com.sun.star.presentation.PresentationDocument");
+ lNames = m_aDataSet.m_aCache.getMatchedItemNames(Cache.E_FILTER, rRequestedProps);
+ it = lNames.elements();
+ while(it.hasMoreElements())
+ generateXMLFragment(Cache.E_FILTER, (java.lang.String)it.nextElement(), m_aDataSet.m_aFragmentDirModuleSImpress);
+ nFilters -= lNames.size();
+
+ // generate filter fragments for the chart module
+ m_aDataSet.m_aDebug.setGlobalInfo("\tfor module chart ...");
+ rRequestedProps.put(Cache.PROPNAME_DOCUMENTSERVICE, "com.sun.star.chart2.ChartDocument");
+ lNames = m_aDataSet.m_aCache.getMatchedItemNames(Cache.E_FILTER, rRequestedProps);
+ it = lNames.elements();
+ while(it.hasMoreElements())
+ generateXMLFragment(Cache.E_FILTER, (java.lang.String)it.nextElement(), m_aDataSet.m_aFragmentDirModuleSChart);
+ nFilters -= lNames.size();
+
+ // generate filter fragments for the math module
+ m_aDataSet.m_aDebug.setGlobalInfo("\tfor module math ...");
+ rRequestedProps.put(Cache.PROPNAME_DOCUMENTSERVICE, "com.sun.star.formula.FormulaProperties");
+ lNames = m_aDataSet.m_aCache.getMatchedItemNames(Cache.E_FILTER, rRequestedProps);
+ it = lNames.elements();
+ while(it.hasMoreElements())
+ generateXMLFragment(Cache.E_FILTER, (java.lang.String)it.nextElement(), m_aDataSet.m_aFragmentDirModuleSMath);
+ nFilters -= lNames.size();
+
+ // generate fragments for 3rdParty or unspecified (may graphics) filters!
+ m_aDataSet.m_aDebug.setGlobalInfo("\tfor unknown modules ...");
+ rRequestedProps.put(Cache.PROPNAME_DOCUMENTSERVICE, "");
+ lNames = m_aDataSet.m_aCache.getMatchedItemNames(Cache.E_FILTER, rRequestedProps);
+ it = lNames.elements();
+ while(it.hasMoreElements())
+ generateXMLFragment(Cache.E_FILTER, (java.lang.String)it.nextElement(), m_aDataSet.m_aFragmentDirModuleOthers);
+ nFilters -= lNames.size();
+
+ // generate all detect service fragments
+ m_aDataSet.m_aDebug.setGlobalInfo("generate detect service fragments ...");
+ lNames = m_aDataSet.m_aCache.getItemNames(Cache.E_DETECTSERVICE);
+ it = lNames.elements();
+ while(it.hasMoreElements())
+ generateXMLFragment(Cache.E_DETECTSERVICE, (java.lang.String)it.nextElement(), m_aDataSet.m_aFragmentDirDetectServices);
+ nDetectServices -= lNames.size();
+
+ // generate all frame loader fragments
+ m_aDataSet.m_aDebug.setGlobalInfo("generate frame loader fragments ...");
+ lNames = m_aDataSet.m_aCache.getItemNames(Cache.E_FRAMELOADER);
+ it = lNames.elements();
+ while(it.hasMoreElements())
+ generateXMLFragment(Cache.E_FRAMELOADER, (java.lang.String)it.nextElement(), m_aDataSet.m_aFragmentDirFrameLoaders);
+ nFrameLoaders -= lNames.size();
+
+ // generate all content handler fragments
+ m_aDataSet.m_aDebug.setGlobalInfo("generate content handler fragments ...");
+ lNames = m_aDataSet.m_aCache.getItemNames(Cache.E_CONTENTHANDLER);
+ it = lNames.elements();
+ while(it.hasMoreElements())
+ generateXMLFragment(Cache.E_CONTENTHANDLER, (java.lang.String)it.nextElement(), m_aDataSet.m_aFragmentDirContentHandlers);
+ nContentHandlers -= lNames.size();
+
+ // check if all cache items was handled
+ if (
+ (nTypes != 0) ||
+ (nFilters != 0) ||
+ (nDetectServices != 0) ||
+ (nFrameLoaders != 0) ||
+ (nContentHandlers != 0)
+ )
+ {
+ java.lang.StringBuffer sStatistic = new java.lang.StringBuffer(256);
+ sStatistic.append("some cache items seems to be not transformed:\n");
+ sStatistic.append(nTypes +" unhandled types\n" );
+ sStatistic.append(nFilters +" unhandled filters\n" );
+ sStatistic.append(nDetectServices +" unhandled detect services\n");
+ sStatistic.append(nFrameLoaders +" unhandled frame loader\n" );
+ sStatistic.append(nContentHandlers+" unhandled content handler\n");
+ throw new java.lang.Exception(sStatistic.toString());
+ }
+ }
+
+ //___________________________________________
+
+ /** generate a xml fragment file from the specified cache item.
+ *
+ * @param eItemType
+ * specify, which sub container of the cache must be used
+ * to locate the right item.
+ *
+ * @param sItemName
+ * the name of the cache item inside the specified sub container.
+ *
+ * @param aOutDir
+ * output directory.
+ *
+ * @throw [java.lang.Exception]
+ * if the fragment file already exists or could not be created
+ * successfully.
+ */
+ private void generateXMLFragment(int eItemType,
+ java.lang.String sItemName,
+ java.io.File aOutDir )
+ throws java.lang.Exception
+ {
+ java.lang.String sFileName = FileHelper.convertName2FileName(sItemName);
+ java.lang.String sXML = m_aDataSet.m_aCache.getItemAsXML(eItemType, sItemName, m_aDataSet.m_nFormat);
+ java.io.File aFile = new java.io.File(aOutDir, sFileName+m_aDataSet.m_sFragmentExtension);
+
+ if (aFile.exists())
+ throw new java.lang.Exception("fragment["+eItemType+", \""+sItemName+"\"] file named \""+aFile.getPath()+"\" already exists.");
+
+ java.io.FileOutputStream aStream = new java.io.FileOutputStream(aFile);
+ java.io.OutputStreamWriter aWriter = new java.io.OutputStreamWriter(aStream, m_aDataSet.m_sEncoding);
+ aWriter.write(sXML, 0, sXML.length());
+ aWriter.flush();
+ aWriter.close();
+
+ m_aDataSet.m_aDebug.setDetailedInfo("fragment["+eItemType+", \""+sItemName+"\"] => \""+aFile.getPath()+"\" ... OK");
+ }
+
+ //___________________________________________
+
+ /** create all needed directory structures.
+ *
+ * First it try to clear old structures and
+ * create new ones afterwards.
+ *
+ * @throw [java.lang.Exception]
+ * if some of the needed structures
+ * could not be created successfully.
+ */
+ private void createDirectoryStructures()
+ throws java.lang.Exception
+ {
+ m_aDataSet.m_aDebug.setGlobalInfo("create needed directory structures ...");
+
+ // delete simple files only; no directories!
+ // Because this tool may run inside
+ // a cvs environment its not a godd idea to do so.
+ boolean bFilesOnly = false;
+ FileHelper.makeDirectoryEmpty(m_aDataSet.m_aOutDir, bFilesOnly);
+
+ if (
+ (!m_aDataSet.m_aFragmentDirTypes.exists() && !m_aDataSet.m_aFragmentDirTypes.mkdir() ) ||
+ (!m_aDataSet.m_aFragmentDirFilters.exists() && !m_aDataSet.m_aFragmentDirFilters.mkdir() ) ||
+ (!m_aDataSet.m_aFragmentDirDetectServices.exists() && !m_aDataSet.m_aFragmentDirDetectServices.mkdir() ) ||
+ (!m_aDataSet.m_aFragmentDirFrameLoaders.exists() && !m_aDataSet.m_aFragmentDirFrameLoaders.mkdir() ) ||
+ (!m_aDataSet.m_aFragmentDirContentHandlers.exists() && !m_aDataSet.m_aFragmentDirContentHandlers.mkdir()) ||
+ (!m_aDataSet.m_aFragmentDirModuleSWriter.exists() && !m_aDataSet.m_aFragmentDirModuleSWriter.mkdir() ) ||
+ (!m_aDataSet.m_aFragmentDirModuleSWeb.exists() && !m_aDataSet.m_aFragmentDirModuleSWeb.mkdir() ) ||
+ (!m_aDataSet.m_aFragmentDirModuleSGlobal.exists() && !m_aDataSet.m_aFragmentDirModuleSGlobal.mkdir() ) ||
+ (!m_aDataSet.m_aFragmentDirModuleSCalc.exists() && !m_aDataSet.m_aFragmentDirModuleSCalc.mkdir() ) ||
+ (!m_aDataSet.m_aFragmentDirModuleSDraw.exists() && !m_aDataSet.m_aFragmentDirModuleSDraw.mkdir() ) ||
+ (!m_aDataSet.m_aFragmentDirModuleSImpress.exists() && !m_aDataSet.m_aFragmentDirModuleSImpress.mkdir() ) ||
+ (!m_aDataSet.m_aFragmentDirModuleSMath.exists() && !m_aDataSet.m_aFragmentDirModuleSMath.mkdir() ) ||
+ (!m_aDataSet.m_aFragmentDirModuleSChart.exists() && !m_aDataSet.m_aFragmentDirModuleSChart.mkdir() ) ||
+ (!m_aDataSet.m_aFragmentDirModuleOthers.exists() && !m_aDataSet.m_aFragmentDirModuleOthers.mkdir() )
+ )
+ {
+ throw new java.lang.Exception("some directory structures does not exists and could not be created successfully.");
+ }
+ }
+}
diff --git a/filter/source/config/tools/split/SplitterData.java b/filter/source/config/tools/split/SplitterData.java
new file mode 100644
index 000000000000..daa09797da68
--- /dev/null
+++ b/filter/source/config/tools/split/SplitterData.java
@@ -0,0 +1,87 @@
+/*************************************************************************
+ *
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * Copyright 2000, 2010 Oracle and/or its affiliates.
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * This file is part of OpenOffice.org.
+ *
+ * OpenOffice.org is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License version 3
+ * only, as published by the Free Software Foundation.
+ *
+ * OpenOffice.org is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License version 3 for more details
+ * (a copy is included in the LICENSE file that accompanied this code).
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * version 3 along with OpenOffice.org. If not, see
+ * <http://www.openoffice.org/license.html>
+ * for a copy of the LGPLv3 License.
+ *
+ ************************************************************************/
+
+package com.sun.star.filter.config.tools.split;
+
+//_______________________________________________
+
+import java.lang.*;
+import java.io.*;
+import com.sun.star.filter.config.tools.utils.*;
+
+//_______________________________________________
+
+/**
+ * Data container for class Splitter.
+ *
+ *
+ */
+public class SplitterData
+{
+ /** can be used to generate some debug output. */
+ public Logger m_aDebug;
+
+ /** contains all configuration structures, for which the xml
+ fragments should be generated. */
+ public Cache m_aCache;
+
+ /** specify the output xml format. */
+ public int m_nFormat;
+
+ /** specify the encoding for the output xml files. */
+ public java.lang.String m_sEncoding;
+
+ /** directory to generate some generic views. */
+ public java.io.File m_aOutDir;
+
+ /** directories to generate all xml fragments there.
+ * Must be relative to "m_aOutDir"! */
+ public java.io.File m_aFragmentDirTypes;
+ public java.io.File m_aFragmentDirFilters;
+ public java.io.File m_aFragmentDirDetectServices;
+ public java.io.File m_aFragmentDirFrameLoaders;
+ public java.io.File m_aFragmentDirContentHandlers;
+
+ /** enable/disable grouping of filters by its application modules. */
+ public boolean m_bSeperateFiltersByModule;
+
+ /** directories to group all filter fragments ... if requested.
+ * Must be relative to "m_aOutDir/m_aFragmentDirFilters" and
+ * will be used only, if "m_bSeperateFiltersByModule" is set to true. */
+ public java.io.File m_aFragmentDirModuleSWriter;
+ public java.io.File m_aFragmentDirModuleSWeb;
+ public java.io.File m_aFragmentDirModuleSGlobal;
+ public java.io.File m_aFragmentDirModuleSCalc;
+ public java.io.File m_aFragmentDirModuleSDraw;
+ public java.io.File m_aFragmentDirModuleSImpress;
+ public java.io.File m_aFragmentDirModuleSMath;
+ public java.io.File m_aFragmentDirModuleSChart;
+ public java.io.File m_aFragmentDirModuleOthers;
+
+ /** file extension for generated xml fragments. */
+ public java.lang.String m_sFragmentExtension;
+}
diff --git a/filter/source/config/tools/split/makefile.mk b/filter/source/config/tools/split/makefile.mk
new file mode 100644
index 000000000000..a6942bfa6d5f
--- /dev/null
+++ b/filter/source/config/tools/split/makefile.mk
@@ -0,0 +1,88 @@
+#*************************************************************************
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# Copyright 2000, 2010 Oracle and/or its affiliates.
+#
+# OpenOffice.org - a multi-platform office productivity suite
+#
+# This file is part of OpenOffice.org.
+#
+# OpenOffice.org is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Lesser General Public License version 3
+# only, as published by the Free Software Foundation.
+#
+# OpenOffice.org is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Lesser General Public License version 3 for more details
+# (a copy is included in the LICENSE file that accompanied this code).
+#
+# You should have received a copy of the GNU Lesser General Public License
+# version 3 along with OpenOffice.org. If not, see
+# <http://www.openoffice.org/license.html>
+# for a copy of the LGPLv3 License.
+#
+#*************************************************************************
+
+PRJ = ..$/..$/..$/..
+PRJNAME = filter
+TARGET = FCFGSplit
+PACKAGE = com$/sun$/star$/filter$/config$/tools$/split
+
+# --- Settings -----------------------------------------------------
+
+.INCLUDE: settings.mk
+
+#----- compile .java files -----------------------------------------
+
+OWNCOPY = \
+ $(MISC)$/$(TARGET)_copied.done
+
+JARFILES = \
+ ridl.jar \
+ unoil.jar \
+ jurt.jar \
+ juh.jar \
+ java_uno.jar
+
+CFGFILES = \
+ FCFGSplit.cfg
+
+JAVACLASSFILES = \
+ $(CLASSDIR)$/$(PACKAGE)$/SplitterData.class \
+ $(CLASSDIR)$/$(PACKAGE)$/Splitter.class \
+ $(CLASSDIR)$/$(PACKAGE)$/FCFGSplit.class
+
+CUSTOMMANIFESTFILE = \
+ Manifest.mf
+
+MAXLINELENGTH = 100000
+
+#----- make a jar from compiled files ------------------------------
+
+JARCLASSDIRS = \
+ com$/sun$/star$/filter$/config$/tools$/utils \
+ com$/sun$/star$/filter$/config$/tools$/split
+
+JARTARGET = $(TARGET).jar
+
+JARCOMPRESS = TRUE
+
+# --- targets -----------------------------------------------------
+
+.INCLUDE : target.mk
+
+ALLTAR : $(OWNCOPY)
+
+.IF "$(JARTARGETN)" != ""
+$(JARTARGETN) : $(OWNCOPY)
+.ENDIF
+
+$(OWNCOPY) : $(CFGFILES)
+ -$(MKDIR) $(CLASSDIR)$/$(PACKAGE)
+ $(COPY) $? $(CLASSDIR)$/$(PACKAGE) && $(TOUCH) $@
+
+run :
+ @$(MKDIR) c:\temp\fragments
+ @$(JAVA) -jar $(CLASSDIR)$/FCFGSplit.jar debug=4 xmlfile=o:/src680/src.m7/officecfg/registry/data/org/openoffice/Office/TypeDetection.xcu outdir=c:/temp/fragments