summaryrefslogtreecommitdiff
path: root/cui
diff options
context:
space:
mode:
authorAndras Timar <atimar@suse.com>2013-05-04 09:48:27 -0700
committerMichael Stahl <mstahl@redhat.com>2013-05-06 12:09:46 +0000
commitf577975db513c2108600a1fabd1f7560c95b3db2 (patch)
treeb334c58f9096caf172c44c80e7a2eb7609df5757 /cui
parentd69a05d97c8a686ff24bd6d89905dfd3aee6a1cb (diff)
fdo#54087 refactor/fix browser plugin detection on Windows
Former code did not find the Firefox plugin, if it was registered under HKEY_CURRENT_USER. Therefore the checkbox state was not preserved in Tools - Options - Internet - Browser Plug-in. Change-Id: I9ae2a7dae1501500d7ea7cb42517605219450af3 Reviewed-on: https://gerrit.libreoffice.org/3784 Reviewed-by: Michael Stahl <mstahl@redhat.com> Tested-by: Michael Stahl <mstahl@redhat.com>
Diffstat (limited to 'cui')
-rw-r--r--cui/source/dialogs/winpluginlib.cxx31
1 files changed, 5 insertions, 26 deletions
diff --git a/cui/source/dialogs/winpluginlib.cxx b/cui/source/dialogs/winpluginlib.cxx
index ce4ab24ee8c0..539137576c8e 100644
--- a/cui/source/dialogs/winpluginlib.cxx
+++ b/cui/source/dialogs/winpluginlib.cxx
@@ -33,37 +33,18 @@
extern "C" {
int lc_isInstalled(const char* realFilePath)
{
- HKEY hKeySoftware;
- HKEY hMozillaPlugins;
- HKEY hStarOffice;
+ HKEY hLibreOffice;
char sSoPath[SO_PATH_SIZE];
char sPluginPath[SO_PATH_SIZE];
LONG ret;
- ret = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE", 0, KEY_READ, &hKeySoftware);
+ ret = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "SOFTWARE\\MozillaPlugins\\@sun.com/npsopluginmi;version=1.0", 0, KEY_READ, &hLibreOffice);
if(ret != ERROR_SUCCESS){
- ret = RegOpenKeyEx(HKEY_CURRENT_USER, "SOFTWARE", 0, KEY_READ, &hKeySoftware);
+ ret = RegOpenKeyEx(HKEY_CURRENT_USER, "SOFTWARE\\MozillaPlugins\\@sun.com/npsopluginmi;version=1.0", 0, KEY_READ, &hLibreOffice);
if(ret != ERROR_SUCCESS){
return -1;
}
}
- ret = RegOpenKeyEx(hKeySoftware, "MozillaPlugins", 0, KEY_READ, &hMozillaPlugins);
- if(ret != ERROR_SUCCESS){
- RegCloseKey(hKeySoftware);
- if( ret == ERROR_FILE_NOT_FOUND)
- return 1;
- else
- return -1;
- }
- ret = RegOpenKeyEx(hMozillaPlugins, "@sun.com/npsopluginmi;version=1.0", 0, KEY_READ, &hStarOffice);
- if(ret != ERROR_SUCCESS){
- RegCloseKey(hKeySoftware);
- RegCloseKey(hMozillaPlugins);
- if( ret == ERROR_FILE_NOT_FOUND)
- return 1;
- else
- return -1;
- }
if((realFilePath == NULL) || (strlen(realFilePath) == 0) || (strlen(realFilePath) >= SO_PATH_SIZE))
ret = -1;
@@ -76,7 +57,7 @@ int lc_isInstalled(const char* realFilePath)
if(ret == 0){
DWORD dType = REG_SZ;
DWORD dSize = SO_PATH_SIZE;
- ret = RegQueryValueEx (hStarOffice, "Path", NULL, &dType , (LPBYTE) sPluginPath, &dSize);
+ ret = RegQueryValueEx (hLibreOffice, "Path", NULL, &dType , (LPBYTE) sPluginPath, &dSize);
if(ret == ERROR_SUCCESS){
if(strcmp(sPluginPath, sSoPath) == 0)
ret = 0;
@@ -88,9 +69,7 @@ int lc_isInstalled(const char* realFilePath)
}
else
ret = -1;
- RegCloseKey(hStarOffice);
- RegCloseKey(hMozillaPlugins);
- RegCloseKey(hKeySoftware);
+ RegCloseKey(hLibreOffice);
return ret;
}