minor fixes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@629 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
c47711479e
commit
4128681253
@ -78,6 +78,9 @@ wxRegConfig::wxRegConfig(const wxString& strRoot)
|
|||||||
// Create() will Open() if key already exists
|
// Create() will Open() if key already exists
|
||||||
m_keyLocalRoot.Create();
|
m_keyLocalRoot.Create();
|
||||||
|
|
||||||
|
// as it's the same key, Open() shouldn't fail (i.e. no need for Create())
|
||||||
|
m_keyLocal.Open();
|
||||||
|
|
||||||
wxLogNull nolog;
|
wxLogNull nolog;
|
||||||
m_keyGlobalRoot.Open();
|
m_keyGlobalRoot.Open();
|
||||||
}
|
}
|
||||||
@ -94,10 +97,9 @@ void wxRegConfig::SetPath(const wxString& strPath)
|
|||||||
{
|
{
|
||||||
wxArrayString aParts;
|
wxArrayString aParts;
|
||||||
|
|
||||||
if ( strPath.IsEmpty() )
|
// because GetPath() returns "" when we're at root, we must understand
|
||||||
return;
|
// empty string as "/"
|
||||||
|
if ( strPath.IsEmpty() || (strPath[0] == wxCONFIG_PATH_SEPARATOR) ) {
|
||||||
if ( strPath[0] == wxCONFIG_PATH_SEPARATOR ) {
|
|
||||||
// absolute path
|
// absolute path
|
||||||
wxSplitPath(aParts, strPath);
|
wxSplitPath(aParts, strPath);
|
||||||
}
|
}
|
||||||
@ -278,14 +280,19 @@ bool wxRegConfig::Read(wxString *pStr,
|
|||||||
// first try local key
|
// first try local key
|
||||||
if ( TryGetValue(m_keyLocal, path.Name(), *pStr) ||
|
if ( TryGetValue(m_keyLocal, path.Name(), *pStr) ||
|
||||||
(bQueryGlobal && TryGetValue(m_keyGlobal, path.Name(), *pStr)) ) {
|
(bQueryGlobal && TryGetValue(m_keyGlobal, path.Name(), *pStr)) ) {
|
||||||
return TRUE;
|
// nothing to do
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if ( IsRecordingDefaults() ) {
|
||||||
|
((wxRegConfig*)this)->Write(szKey, szDefault);
|
||||||
|
}
|
||||||
|
|
||||||
|
// default value
|
||||||
|
*pStr = szDefault;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(IsRecordingDefaults())
|
*pStr = wxConfigBase::ExpandEnvVars(*pStr);
|
||||||
((wxRegConfig*)this)->Write(szKey,szDefault);
|
|
||||||
|
|
||||||
// default value
|
|
||||||
*pStr = szDefault;
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,6 +32,8 @@
|
|||||||
#include "wx/intl.h"
|
#include "wx/intl.h"
|
||||||
#include "wx/log.h"
|
#include "wx/log.h"
|
||||||
|
|
||||||
|
#include "wx/config.h" // for wxExpandEnvVars
|
||||||
|
|
||||||
// Windows headers
|
// Windows headers
|
||||||
/*
|
/*
|
||||||
#define STRICT
|
#define STRICT
|
||||||
@ -804,7 +806,7 @@ bool GetExtensionFromMimeType(wxString *pExt, const wxString& strMimeType)
|
|||||||
// suppress possible error messages
|
// suppress possible error messages
|
||||||
wxLogNull nolog;
|
wxLogNull nolog;
|
||||||
wxRegKey key(wxRegKey::HKCR, strKey);
|
wxRegKey key(wxRegKey::HKCR, strKey);
|
||||||
if ( key.IsOpened() ) {
|
if ( key.Open() ) {
|
||||||
if ( key.QueryValue("Extension", *pExt) )
|
if ( key.QueryValue("Extension", *pExt) )
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -827,7 +829,7 @@ bool GetMimeTypeFromExtension(wxString *pMimeType, const wxString& strExt)
|
|||||||
// suppress possible error messages
|
// suppress possible error messages
|
||||||
wxLogNull nolog;
|
wxLogNull nolog;
|
||||||
wxRegKey key(wxRegKey::HKCR, str);
|
wxRegKey key(wxRegKey::HKCR, str);
|
||||||
if ( key.IsOpened() ) {
|
if ( key.Open() ) {
|
||||||
if ( key.QueryValue("Content Type", *pMimeType) )
|
if ( key.QueryValue("Content Type", *pMimeType) )
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -850,11 +852,74 @@ bool GetFileTypeFromExtension(wxString *pFileType, const wxString& strExt)
|
|||||||
// suppress possible error messages
|
// suppress possible error messages
|
||||||
wxLogNull nolog;
|
wxLogNull nolog;
|
||||||
wxRegKey key(wxRegKey::HKCR, str);
|
wxRegKey key(wxRegKey::HKCR, str);
|
||||||
if ( key.IsOpened() ) {
|
if ( key.Open() ) {
|
||||||
if ( key.QueryValue("", *pFileType) ) // it's the default value of the key
|
if ( key.QueryValue("", *pFileType) ) // it's the default value of the key
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// no such extension or no value
|
// no such extension or no value
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool GetFileTypeIcon(wxIcon *pIcon, const wxString& strFileType)
|
||||||
|
{
|
||||||
|
wxCHECK( !strFileType.IsEmpty(), FALSE );
|
||||||
|
|
||||||
|
wxString strIconKey;
|
||||||
|
strIconKey << strFileType << REG_SEPARATOR << "DefaultIcon";
|
||||||
|
|
||||||
|
// suppress possible error messages
|
||||||
|
wxLogNull nolog;
|
||||||
|
wxRegKey key(wxRegKey::HKCR, strIconKey);
|
||||||
|
|
||||||
|
if ( key.Open() ) {
|
||||||
|
wxString strIcon;
|
||||||
|
if ( key.QueryValue("", strIcon) ) { // it's the default value of the key
|
||||||
|
// the format is the following: <full path to file>, <icon index>
|
||||||
|
// NB: icon index may be negative as well as positive and the full path
|
||||||
|
// may contain the environment variables inside '%'
|
||||||
|
wxString strFullPath = strIcon.Before(','),
|
||||||
|
strIndex = strIcon.After(',');
|
||||||
|
|
||||||
|
// unless I misunderstand the format (may be index may be ommited, I
|
||||||
|
// don't know)
|
||||||
|
wxASSERT( !(strFullPath.IsEmpty() || strIndex.IsEmpty()) );
|
||||||
|
|
||||||
|
wxString strExpPath = wxExpandEnvVars(strFullPath);
|
||||||
|
int nIndex = atoi(strIndex);
|
||||||
|
|
||||||
|
HICON hIcon = ExtractIcon(GetModuleHandle(NULL), strExpPath, nIndex);
|
||||||
|
switch ( (int)hIcon ) {
|
||||||
|
case 0: // means no icons were found
|
||||||
|
case 1: // means no such file or it wasn't a DLL/EXE/OCX/ICO/...
|
||||||
|
wxLogDebug("incorrect registry entry '%s': no such icon.",
|
||||||
|
GetFullName(&key));
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
pIcon->SetHICON((WXHICON)hIcon);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// no such file type or no value or incorrect icon entry
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool GetFileTypeDescription(wxString *pDesc, const wxString& strFileType)
|
||||||
|
{
|
||||||
|
wxCHECK( !strFileType.IsEmpty(), FALSE );
|
||||||
|
|
||||||
|
// suppress possible error messages
|
||||||
|
wxLogNull nolog;
|
||||||
|
wxRegKey key(wxRegKey::HKCR, strFileType);
|
||||||
|
|
||||||
|
if ( key.Open() ) {
|
||||||
|
if ( key.QueryValue("", *pDesc) ) // it's the default value of the key
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// no such file type or no value
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user