diff options
author | Andras Timar <atimar@suse.com> | 2012-06-21 17:28:58 +0200 |
---|---|---|
committer | Andras Timar <atimar@suse.com> | 2012-06-21 17:38:14 +0200 |
commit | ade85a43e1369cb9e0026f048ed410a964db48d9 (patch) | |
tree | b61a70c8943324390702d02e550cb70f2237cab7 | |
parent | 75c789691b3ed7a10caa4319cf58144cfaace3a7 (diff) |
fdo#51274 optionally associate Visio file types (vsd/vst) to Draw
Change-Id: I0362d758205e7d12484e9e86ff2dce9608730c57
11 files changed, 84 insertions, 29 deletions
diff --git a/filter/source/config/fragments/types/draw_Visio_Document.xcu b/filter/source/config/fragments/types/draw_Visio_Document.xcu index 17600d0bd0ed..a271e2aa2d90 100644 --- a/filter/source/config/fragments/types/draw_Visio_Document.xcu +++ b/filter/source/config/fragments/types/draw_Visio_Document.xcu @@ -1,7 +1,7 @@ <node oor:name="draw_Visio_Document" oor:op="replace" > <prop oor:name="DetectService"><value>com.sun.star.comp.Draw.VisioImportFilter</value></prop> <prop oor:name="URLPattern"/> - <prop oor:name="Extensions"><value>vsd</value></prop> + <prop oor:name="Extensions"><value>vsd vst</value></prop> <prop oor:name="MediaType"><value>application/vnd.visio</value></prop> <prop oor:name="Preferred"><value>true</value></prop> <prop oor:name="PreferredFilter"><value>Visio Document</value></prop> diff --git a/instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf b/instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf index 51f351b9dea0..d2a473b05baf 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf +++ b/instsetoo_native/inc_openoffice/windows/msi_languages/Control.ulf @@ -614,7 +614,7 @@ en-US = "Microsoft &Excel Spreadsheets" en-US = "Microsoft Po&werPoint Presentations" [OOO_CONTROL_273] -en-US = "&[ProductName] Writer/Web" +en-US = "Microsoft &Visio Documents" [OOO_CONTROL_274] en-US = "Set [DEFINEDPRODUCT] to be the default application for Microsoft Office file types." @@ -622,12 +622,6 @@ en-US = "Set [DEFINEDPRODUCT] to be the default application for Microsoft Office [OOO_CONTROL_275] en-US = "[ProductName] can be set as the default application to open Microsoft Office file types. This means, for instance, that if you double click on one of these files, [ProductName] will open it, not the program that opens it now." -[OOO_CONTROL_276] -en-US = "File types" - -[OOO_CONTROL_277] -en-US = "Default HTML editor" - [OOO_CONTROL_278] en-US = "{&MSSansBold8}File Type" diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/Control.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/Control.idt index 561133380598..2fbbad753df8 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/Control.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/Control.idt @@ -128,11 +128,12 @@ FileTypeDialog Branding2 Text 3 228 88 13 65537 [ProductName] FileTypeDialog Cancel PushButton 301 243 66 17 3 OOO_CONTROL_138 CheckBox1 FileTypeDialog CheckBox1 CheckBox 41 106 200 10 3 SELECT_WORD OOO_CONTROL_270 CheckBox2 FileTypeDialog CheckBox2 CheckBox 41 131 200 10 3 SELECT_EXCEL OOO_CONTROL_271 CheckBox3 -FileTypeDialog CheckBox3 CheckBox 41 156 200 10 3 SELECT_POWERPOINT OOO_CONTROL_272 Back +FileTypeDialog CheckBox3 CheckBox 41 156 200 10 3 SELECT_POWERPOINT OOO_CONTROL_272 CheckBox4 +FileTypeDialog CheckBox4 CheckBox 41 181 200 10 3 SELECT_VISIO OOO_CONTROL_273 Back FileTypeDialog DlgDesc Text 21 20 272 25 65539 OOO_CONTROL_274 FileTypeDialog DlgLine Line 90 234 284 0 1 FileTypeDialog DlgText Text 21 56 326 40 3 OOO_CONTROL_275 -FileTypeDialog DlgText2 Text 21 190 326 30 3 OOO_CONTROL_309 +FileTypeDialog DlgText2 Text 21 200 326 30 3 OOO_CONTROL_309 FileTypeDialog DlgTitle Text 13 6 280 25 65539 OOO_CONTROL_278 FileTypeDialog Next PushButton 230 243 66 17 3 OOO_CONTROL_134 Cancel InstallChangeFolder Banner Bitmap 0 0 374 44 1 BannerBmp diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/ControlC.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/ControlC.idt index 604fc8463abb..7b69d143041a 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/ControlC.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/ControlC.idt @@ -14,6 +14,8 @@ FileTypeDialog CheckBox2 Enable &gm_p_Calc=3 OR ( !gm_p_Calc=3 AND &gm_p_Calc=-1 FileTypeDialog CheckBox2 Disable NOT ( &gm_p_Calc=3 OR ( !gm_p_Calc=3 AND &gm_p_Calc=-1 ) ) FileTypeDialog CheckBox3 Enable &gm_p_Impress=3 OR ( !gm_p_Impress=3 AND &gm_p_Impress=-1 ) FileTypeDialog CheckBox3 Disable NOT ( &gm_p_Impress=3 OR ( !gm_p_Impress=3 AND &gm_p_Impress=-1 ) ) +FileTypeDialog CheckBox4 Enable &gm_p_Draw=3 OR ( !gm_p_Draw=3 AND &gm_p_Draw=-1 ) +FileTypeDialog CheckBox4 Disable NOT ( &gm_p_Draw=3 OR ( !gm_p_Draw=3 AND &gm_p_Draw=-1 ) ) InstallWelcome Copyright Hide SHOWCOPYRIGHT="No" InstallWelcome Copyright Show SHOWCOPYRIGHT="Yes" LicenseAgreement Next Disable AgreeToLicense <> "Yes" diff --git a/instsetoo_native/inc_openoffice/windows/msi_templates/Property.idt b/instsetoo_native/inc_openoffice/windows/msi_templates/Property.idt index 979b58f0af49..a1cb18aede44 100644 --- a/instsetoo_native/inc_openoffice/windows/msi_templates/Property.idt +++ b/instsetoo_native/inc_openoffice/windows/msi_templates/Property.idt @@ -47,6 +47,7 @@ SetupType Typical SELECT_WORD 0 SELECT_EXCEL 0 SELECT_POWERPOINT 0 +SELECT_VISIO 0 STR_NEW_DISPLAY_NAME OOO_STR_NEW_DISPLAY_NAME STR_EDIT OOO_STR_EDIT STR_MS_WORD_DOCUMENT OOO_STR_MS_WORD_DOCUMENT diff --git a/officecfg/registry/data/org/openoffice/Office/UI.xcu b/officecfg/registry/data/org/openoffice/Office/UI.xcu index 32249a85bbc9..e4e518b29b52 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI.xcu @@ -63,7 +63,7 @@ <value xml:lang="en-US">Drawings</value> </prop> <prop oor:name="Filters"> - <value oor:separator=";">draw_StarOffice_XML_Draw_Template;SGV - StarDraw 2.0;StarDraw 3.0;StarDraw 3.0 Vorlage;StarDraw 5.0;StarDraw 5.0 Vorlage;StarOffice XML (Draw);draw8;draw8_template</value> + <value oor:separator=";">draw_StarOffice_XML_Draw_Template;SGV - StarDraw 2.0;StarDraw 3.0;StarDraw 3.0 Vorlage;StarDraw 5.0;StarDraw 5.0 Vorlage;StarOffice XML (Draw);draw8;draw8_template;Visio Document;SVG - Scalable Vector Graphics;Corel Draw Document</value> </prop> </node> <node oor:name="com.sun.star.text.WebDocument" oor:op="replace"> diff --git a/scp2/source/draw/module_draw.scp b/scp2/source/draw/module_draw.scp index b5bec12dc7f8..63e982c65f2d 100644 --- a/scp2/source/draw/module_draw.scp +++ b/scp2/source/draw/module_draw.scp @@ -68,4 +68,13 @@ Module gid_Module_Langpack_Draw_Template Files = (); End +Module gid_Module_Prg_Draw_MSO_Reg + ParentID = gid_Module_Prg_Draw; + Name = "gid_Module_Prg_Draw_MSO_Reg"; + Description = "gid_Module_Prg_Draw_MSO_Reg"; + Styles = (HIDDEN_ROOT); + Minimal = YES; + Default = YES; +End + #include "alllangmodules_draw.inc" diff --git a/scp2/source/draw/registryitem_draw.scp b/scp2/source/draw/registryitem_draw.scp index d82a59f6af95..6a2ce537d065 100644 --- a/scp2/source/draw/registryitem_draw.scp +++ b/scp2/source/draw/registryitem_draw.scp @@ -1091,3 +1091,9 @@ REGISTER_PROPERTY_HANDLER_FOR_EXTENSION( odg ) REGISTER_PROPERTY_HANDLER_FOR_EXTENSION( otg ) REGISTER_PROPERTY_HANDLER_FOR_EXTENSION( sxd ) REGISTER_PROPERTY_HANDLER_FOR_EXTENSION( std ) + +// registering the mso file types +// CONDITIONAL_REGISTER_DOC_EXTENSION(name,modid, key, cond, disp_name, icon_id, app, default, dox_type) + +CONDITIONAL_REGISTER_DOC_EXTENSION( Vsd, gid_Module_Prg_Draw_MSO_Reg, vsd, VSD, MS_VISIO_DOCUMENT, 5, sdraw.exe, open, Draw ) +CONDITIONAL_REGISTER_DOCTEMPLATE_EXTENSION( Vst, gid_Module_Prg_Draw_MSO_Reg, vst, VST, MS_VISIO_TEMPLATE, 6, sdraw.exe, new, Draw ) diff --git a/scp2/source/draw/registryitem_draw.ulf b/scp2/source/draw/registryitem_draw.ulf index 79efc1503c54..819c76a2eff2 100644 --- a/scp2/source/draw/registryitem_draw.ulf +++ b/scp2/source/draw/registryitem_draw.ulf @@ -31,3 +31,8 @@ en-US = "OpenDocument Drawing" [STR_REG_VAL_OO_DRAW_TEMPLATE] en-US = "OpenDocument Drawing Template" +[STR_REG_VAL_MS_VISIO_DOCUMENT] +en-US = "Microsoft Visio 2000/XP/2003 Document" + +[STR_REG_VAL_MS_VISIO_TEMPLATE] +en-US = "Microsoft Visio 2000/XP/2003 Template" diff --git a/setup_native/source/win32/customactions/reg4allmsdoc/reg4allmsi.cxx b/setup_native/source/win32/customactions/reg4allmsdoc/reg4allmsi.cxx index c7e4c3b1d445..755a581d1d8e 100644 --- a/setup_native/source/win32/customactions/reg4allmsdoc/reg4allmsi.cxx +++ b/setup_native/source/win32/customactions/reg4allmsdoc/reg4allmsi.cxx @@ -66,13 +66,16 @@ static const CHAR* g_Extensions[] = ".potx", // Office PowerPoint 2007 XML template ".potm", // Office PowerPoint 2007 macro-enabled XML template ".ppsx", // Office PowerPoint 2007 XML show + ".vsd", // Visio 2000/XP/2003 document + ".vst", // Visio 2000/XP/2003 template 0 }; static const int WORD_START = 0; static const int EXCEL_START = 7; static const int POWERPOINT_START = 15; -static const int POWERPOINT_END = 23; +static const int VISIO_START = 23; +static const int VISIO_END = 25; // ".xlam", // Office Excel 2007 XML macro-enabled add-in // ".ppam", // Office PowerPoint 2007 macro-enabled XML add-in @@ -121,7 +124,7 @@ static BOOL CheckExtensionInRegistry( LPCSTR lpSubKey ) { // We will replace registration for our own types, too bRet = true; } - else if ( strncmp( szBuffer, "ooostub.", 8 ) == 0 ) + else if ( strncmp( szBuffer, "lostub.", 8 ) == 0 ) { // We will replace registration for ooostub, too bRet = true; } @@ -333,7 +336,7 @@ static void saveOldRegistration( LPCSTR lpSubKey ) if ( strncmp( szBuffer, "LibreOffice.", 12 ) != 0 ) { // Save the old association - RegSetValueExA( hKey, "OOoBackupAssociation", 0, + RegSetValueExA( hKey, "LOBackupAssociation", 0, REG_SZ, (LPBYTE)szBuffer, nSize ); // Also save what the old association means, just so we can try to verify // if/when restoring it that the old application still exists @@ -346,7 +349,7 @@ static void saveOldRegistration( LPCSTR lpSubKey ) lResult = RegQueryValueExA( hKey2, "", NULL, NULL, (LPBYTE)szBuffer, &nSize ); if ( ERROR_SUCCESS == lResult ) { - RegSetValueExA( hKey, "OOoBackupAssociationDeref", 0, + RegSetValueExA( hKey, "LOBackupAssociationDeref", 0, REG_SZ, (LPBYTE)szBuffer, nSize ); } RegCloseKey( hKey2 ); @@ -414,6 +417,7 @@ extern "C" UINT __stdcall LookForRegisteredExtensions( MSIHANDLE handle ) bool bWriterEnabled = false; bool bCalcEnabled = false; bool bImpressEnabled = false; + bool bDrawEnabled = false; bool bRegisterNone = IsSetMsiProp( handle, "REGISTER_NO_MSO_TYPES" ); if ( ( ERROR_SUCCESS == MsiGetFeatureState( handle, L"gm_p_Wrt", ¤t_state, &future_state ) ) && @@ -446,9 +450,20 @@ extern "C" UINT __stdcall LookForRegisteredExtensions( MSIHANDLE handle ) else OutputDebugStringFormat( "LookForRegisteredExtensions: Impress is NOT enabled" ); + if ( ( ERROR_SUCCESS == MsiGetFeatureState( handle, L"gm_p_Draw", ¤t_state, &future_state ) ) && + ( (future_state == INSTALLSTATE_LOCAL) || ((current_state == INSTALLSTATE_LOCAL) && (future_state == INSTALLSTATE_UNKNOWN) ) ) ) + bDrawEnabled = true; + + OutputDebugStringFormat( "LookForRegisteredExtensions: Install state Draw is [%d], will be [%d]", current_state, future_state ); + if ( bImpressEnabled ) + OutputDebugStringFormat( "LookForRegisteredExtensions: Draw is enabled" ); + else + OutputDebugStringFormat( "LookForRegisteredExtensions: Draw is NOT enabled" ); + MsiSetPropertyA( handle, "SELECT_WORD", "" ); MsiSetPropertyA( handle, "SELECT_EXCEL", "" ); MsiSetPropertyA( handle, "SELECT_POWERPOINT", "" ); + MsiSetPropertyA( handle, "SELECT_VISIO", "" ); if ( ! bRegisterNone ) { @@ -460,23 +475,30 @@ extern "C" UINT __stdcall LookForRegisteredExtensions( MSIHANDLE handle ) MsiSetPropertyA( handle, "SELECT_EXCEL", "1" ); if ( bImpressEnabled ) MsiSetPropertyA( handle, "SELECT_POWERPOINT", "1" ); + if ( bDrawEnabled ) + MsiSetPropertyA( handle, "SELECT_VISIO", "1" ); } else { if ( bWriterEnabled && ! checkSomeExtensionInRegistry( WORD_START, EXCEL_START ) ) { MsiSetPropertyA( handle, "SELECT_WORD", "1" ); - OutputDebugStringFormat( "LookForRegisteredExtensions: Register for MicroSoft Word" ); + OutputDebugStringFormat( "LookForRegisteredExtensions: Register for Microsoft Word" ); } if ( bCalcEnabled && ! checkSomeExtensionInRegistry( EXCEL_START, POWERPOINT_START ) ) { MsiSetPropertyA( handle, "SELECT_EXCEL", "1" ); - OutputDebugStringFormat( "LookForRegisteredExtensions: Register for MicroSoft Excel" ); + OutputDebugStringFormat( "LookForRegisteredExtensions: Register for Microsoft Excel" ); } - if ( bImpressEnabled && ! checkSomeExtensionInRegistry( POWERPOINT_START, POWERPOINT_END ) ) + if ( bImpressEnabled && ! checkSomeExtensionInRegistry( POWERPOINT_START, VISIO_START ) ) { MsiSetPropertyA( handle, "SELECT_POWERPOINT", "1" ); - OutputDebugStringFormat( "LookForRegisteredExtensions: Register for MicroSoft PowerPoint" ); + OutputDebugStringFormat( "LookForRegisteredExtensions: Register for Microsoft PowerPoint" ); + } + if ( bImpressEnabled && ! checkSomeExtensionInRegistry( VISIO_START, VISIO_END ) ) + { + MsiSetPropertyA( handle, "SELECT_VISIO", "1" ); + OutputDebugStringFormat( "LookForRegisteredExtensions: Register for Microsoft Visio" ); } } } @@ -495,7 +517,7 @@ extern "C" UINT __stdcall RegisterSomeExtensions( MSIHANDLE handle ) { registerSomeExtensions( handle, WORD_START, EXCEL_START, true ); MsiSetFeatureState( handle, L"gm_p_Wrt_MSO_Reg", INSTALLSTATE_LOCAL ); - OutputDebugStringFormat( "RegisterSomeExtensions: Register for MicroSoft Word" ); + OutputDebugStringFormat( "RegisterSomeExtensions: Register for Microsoft Word" ); } else { @@ -507,7 +529,7 @@ extern "C" UINT __stdcall RegisterSomeExtensions( MSIHANDLE handle ) { registerSomeExtensions( handle, EXCEL_START, POWERPOINT_START, true ); MsiSetFeatureState( handle, L"gm_p_Calc_MSO_Reg", INSTALLSTATE_LOCAL ); - OutputDebugStringFormat( "RegisterSomeExtensions: Register for MicroSoft Excel" ); + OutputDebugStringFormat( "RegisterSomeExtensions: Register for Microsoft Excel" ); } else { @@ -517,16 +539,27 @@ extern "C" UINT __stdcall RegisterSomeExtensions( MSIHANDLE handle ) if ( IsSetMsiProp( handle, "SELECT_POWERPOINT" ) ) { - registerSomeExtensions( handle, POWERPOINT_START, POWERPOINT_END, true ); + registerSomeExtensions( handle, POWERPOINT_START, VISIO_START, true ); MsiSetFeatureState( handle, L"gm_p_Impress_MSO_Reg", INSTALLSTATE_LOCAL ); - OutputDebugStringFormat( "RegisterSomeExtensions: Register for MicroSoft PowerPoint" ); + OutputDebugStringFormat( "RegisterSomeExtensions: Register for Microsoft PowerPoint" ); } else { - registerSomeExtensions( handle, POWERPOINT_START, POWERPOINT_END, false ); + registerSomeExtensions( handle, POWERPOINT_START, VISIO_START, false ); MsiSetFeatureState( handle, L"gm_p_Impress_MSO_Reg", INSTALLSTATE_ABSENT ); } + if ( IsSetMsiProp( handle, "SELECT_VISIO" ) ) + { + registerSomeExtensions( handle, VISIO_START, VISIO_END, true ); + MsiSetFeatureState( handle, L"gm_p_Draw_MSO_Reg", INSTALLSTATE_LOCAL ); + OutputDebugStringFormat( "RegisterSomeExtensions: Register for Microsoft Visio" ); + } + else + { + registerSomeExtensions( handle, VISIO_START, VISIO_END, false ); + MsiSetFeatureState( handle, L"gm_p_Draw_MSO_Reg", INSTALLSTATE_ABSENT ); + } return ERROR_SUCCESS; } @@ -564,7 +597,9 @@ extern "C" UINT __stdcall FindRegisteredExtensions( MSIHANDLE handle ) if ( IsSetMsiProp( handle, "SELECT_EXCEL" ) ) registerSomeExtensions( handle, EXCEL_START, POWERPOINT_START, true ); if ( IsSetMsiProp( handle, "SELECT_POWERPOINT" ) ) - registerSomeExtensions( handle, POWERPOINT_START, POWERPOINT_END, true ); + registerSomeExtensions( handle, POWERPOINT_START, VISIO_START, true ); + if ( IsSetMsiProp( handle, "SELECT_VISIO" ) ) + registerSomeExtensions( handle, VISIO_START, VISIO_END, true ); registerForExtensions( handle, bRegisterAll ); @@ -607,7 +642,7 @@ static void restoreOldRegistration( LPCSTR lpSubKey ) CHAR szBuffer[1024]; DWORD nSize = sizeof( szBuffer ); - lResult = RegQueryValueExA( hKey, "OOoBackupAssociation", NULL, NULL, + lResult = RegQueryValueExA( hKey, "LOBackupAssociation", NULL, NULL, (LPBYTE)szBuffer, &nSize ); if ( ERROR_SUCCESS == lResult ) { @@ -626,7 +661,7 @@ static void restoreOldRegistration( LPCSTR lpSubKey ) DWORD nSize3 = sizeof( szBuffer3 ); // Try to verify that the old association is OK to restore - lResult = RegQueryValueExA( hKey, "OOoBackupAssociationDeref", NULL, NULL, + lResult = RegQueryValueExA( hKey, "LOBackupAssociationDeref", NULL, NULL, (LPBYTE)szBuffer3, &nSize3 ); if ( ERROR_SUCCESS == lResult ) { @@ -639,9 +674,9 @@ static void restoreOldRegistration( LPCSTR lpSubKey ) } RegCloseKey( hKey2 ); } - RegDeleteValueA( hKey, "OOoBackupAssociation" ); + RegDeleteValueA( hKey, "LOBackupAssociation" ); } - RegDeleteValueA( hKey, "OOoBackupAssociationDeref" ); + RegDeleteValueA( hKey, "LOBackupAssociationDeref" ); RegCloseKey( hKey ); } } diff --git a/solenv/bin/modules/installer/windows/property.pm b/solenv/bin/modules/installer/windows/property.pm index 9f29195463af..e48d89cb1e09 100644 --- a/solenv/bin/modules/installer/windows/property.pm +++ b/solenv/bin/modules/installer/windows/property.pm @@ -647,6 +647,8 @@ sub update_checkbox_table push(@{$checkboxfile}, $checkboxline); $checkboxline = "SELECT_POWERPOINT" . "\t" . "0" . "\n"; push(@{$checkboxfile}, $checkboxline); + $checkboxline = "SELECT_VISIO" . "\t" . "0" . "\n"; + push(@{$checkboxfile}, $checkboxline); # Saving the property file installer::files::save_file($checkboxfilename ,$checkboxfile); |