wxConfig -> wxConfigBase renaming plus some minor changes
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@415 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// Name: config.cpp
|
||||
// Purpose: implementation of wxConfig class
|
||||
// Purpose: implementation of wxConfigBase class
|
||||
// Author: Vadim Zeitlin
|
||||
// Modified by:
|
||||
// Created: 07.04.98
|
||||
@@ -38,7 +38,7 @@
|
||||
#include <wx/textfile.h>
|
||||
#include <wx/config.h>
|
||||
|
||||
// we must include (one of) these files for wxConfig::Create
|
||||
// we must include (one of) these files for wxConfigBase::Create
|
||||
#if defined(__MSWIN__) && defined(wxCONFIG_WIN32_NATIVE)
|
||||
#ifdef __WIN32__
|
||||
#include <wx/msw/regconf.h>
|
||||
@@ -56,24 +56,24 @@
|
||||
// global and class static variables
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
wxConfig *wxConfig::ms_pConfig = NULL;
|
||||
wxConfigBase *wxConfigBase::ms_pConfig = NULL;
|
||||
|
||||
// ============================================================================
|
||||
// implementation
|
||||
// ============================================================================
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
// wxConfig
|
||||
// wxConfigBase
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
wxConfig *wxConfig::Set(wxConfig *pConfig)
|
||||
wxConfigBase *wxConfigBase::Set(wxConfigBase *pConfig)
|
||||
{
|
||||
wxConfig *pOld = ms_pConfig;
|
||||
wxConfigBase *pOld = ms_pConfig;
|
||||
ms_pConfig = pConfig;
|
||||
return pOld;
|
||||
}
|
||||
|
||||
wxConfig *wxConfig::Create()
|
||||
wxConfigBase *wxConfigBase::Create()
|
||||
{
|
||||
return ms_pConfig =
|
||||
#if defined(__MSWIN__) && defined(wxCONFIG_WIN32_NATIVE)
|
||||
@@ -88,7 +88,7 @@ wxConfig *wxConfig::Create()
|
||||
#endif
|
||||
}
|
||||
|
||||
const char *wxConfig::Read(const char *szKey, const char *szDefault) const
|
||||
const char *wxConfigBase::Read(const char *szKey, const char *szDefault) const
|
||||
{
|
||||
static char s_szBuf[1024];
|
||||
wxString s;
|
||||
@@ -102,10 +102,10 @@ const char *wxConfig::Read(const char *szKey, const char *szDefault) const
|
||||
// Config::PathChanger
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
wxConfig::PathChanger::PathChanger(const wxConfig *pContainer,
|
||||
wxConfigBase::PathChanger::PathChanger(const wxConfigBase *pContainer,
|
||||
const wxString& strEntry)
|
||||
{
|
||||
m_pContainer = (wxConfig *)pContainer;
|
||||
m_pContainer = (wxConfigBase *)pContainer;
|
||||
wxString strPath = strEntry.Before(wxCONFIG_PATH_SEPARATOR);
|
||||
|
||||
// special case of "/keyname" when there is nothing before "/"
|
||||
@@ -127,7 +127,7 @@ wxConfig::PathChanger::PathChanger(const wxConfig *pContainer,
|
||||
}
|
||||
}
|
||||
|
||||
wxConfig::PathChanger::~PathChanger()
|
||||
wxConfigBase::PathChanger::~PathChanger()
|
||||
{
|
||||
// only restore path if it was changed
|
||||
if ( m_bChanged ) {
|
||||
|
@@ -157,6 +157,7 @@ wxString wxFileConfig::GetLocalFileName(const char *szFile)
|
||||
str << szFile;
|
||||
|
||||
#ifdef __WXMSW__
|
||||
if ( strchr(szFile, '.') == NULL )
|
||||
str << ".ini";
|
||||
#endif
|
||||
|
||||
@@ -432,13 +433,13 @@ void wxFileConfig::SetPath(const wxString& strPath)
|
||||
// enumeration
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
bool wxFileConfig::GetFirstGroup(wxString& str, long& lIndex)
|
||||
bool wxFileConfig::GetFirstGroup(wxString& str, long& lIndex) const
|
||||
{
|
||||
lIndex = 0;
|
||||
return GetNextGroup(str, lIndex);
|
||||
}
|
||||
|
||||
bool wxFileConfig::GetNextGroup (wxString& str, long& lIndex)
|
||||
bool wxFileConfig::GetNextGroup (wxString& str, long& lIndex) const
|
||||
{
|
||||
if ( uint(lIndex) < m_pCurrentGroup->Groups().Count() ) {
|
||||
str = m_pCurrentGroup->Groups()[lIndex++]->Name();
|
||||
@@ -448,13 +449,13 @@ bool wxFileConfig::GetNextGroup (wxString& str, long& lIndex)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool wxFileConfig::GetFirstEntry(wxString& str, long& lIndex)
|
||||
bool wxFileConfig::GetFirstEntry(wxString& str, long& lIndex) const
|
||||
{
|
||||
lIndex = 0;
|
||||
return GetNextEntry(str, lIndex);
|
||||
}
|
||||
|
||||
bool wxFileConfig::GetNextEntry (wxString& str, long& lIndex)
|
||||
bool wxFileConfig::GetNextEntry (wxString& str, long& lIndex) const
|
||||
{
|
||||
if ( uint(lIndex) < m_pCurrentGroup->Entries().Count() ) {
|
||||
str = m_pCurrentGroup->Entries()[lIndex++]->Name();
|
||||
@@ -648,7 +649,7 @@ bool wxFileConfig::DeleteEntry(const char *szKey, bool bGroupIfEmptyAlso)
|
||||
if ( m_pCurrentGroup != m_pRootGroup ) {
|
||||
ConfigGroup *pGroup = m_pCurrentGroup;
|
||||
SetPath(".."); // changes m_pCurrentGroup!
|
||||
m_pCurrentGroup->DeleteSubgroup(pGroup->Name());
|
||||
m_pCurrentGroup->DeleteSubgroupByName(pGroup->Name());
|
||||
}
|
||||
//else: never delete the root group
|
||||
}
|
||||
@@ -660,7 +661,7 @@ bool wxFileConfig::DeleteGroup(const char *szKey)
|
||||
{
|
||||
PathChanger path(this, szKey);
|
||||
|
||||
return m_pCurrentGroup->DeleteSubgroup(path.Name());
|
||||
return m_pCurrentGroup->DeleteSubgroupByName(path.Name());
|
||||
}
|
||||
|
||||
bool wxFileConfig::DeleteAll()
|
||||
@@ -1012,9 +1013,16 @@ wxFileConfig::ConfigGroup::AddSubgroup(const wxString& strName)
|
||||
delete several of them.
|
||||
*/
|
||||
|
||||
bool wxFileConfig::ConfigGroup::DeleteSubgroup(const char *szName)
|
||||
bool wxFileConfig::ConfigGroup::DeleteSubgroupByName(const char *szName)
|
||||
{
|
||||
return DeleteSubgroup(FindSubgroup(szName));
|
||||
}
|
||||
|
||||
// doesn't delete the subgroup itself, but does remove references to it from
|
||||
// all other data structures (and normally the returned pointer should be
|
||||
// deleted a.s.a.p. because there is nothing much to be done with it anyhow)
|
||||
bool wxFileConfig::ConfigGroup::DeleteSubgroup(ConfigGroup *pGroup)
|
||||
{
|
||||
ConfigGroup *pGroup = FindSubgroup(szName);
|
||||
wxCHECK( pGroup != NULL, FALSE ); // deleting non existing group?
|
||||
|
||||
// delete all entries
|
||||
@@ -1025,6 +1033,12 @@ bool wxFileConfig::ConfigGroup::DeleteSubgroup(const char *szName)
|
||||
m_pConfig->LineListRemove(pLine);
|
||||
}
|
||||
|
||||
// and subgroups of this sungroup
|
||||
nCount = pGroup->m_aSubgroups.Count();
|
||||
for ( uint nGroup = 0; nGroup < nCount; nGroup++ ) {
|
||||
pGroup->DeleteSubgroup(pGroup->m_aSubgroups[nGroup]);
|
||||
}
|
||||
|
||||
LineList *pLine = pGroup->m_pLine;
|
||||
if ( pLine != NULL ) {
|
||||
// notice that we may do this test inside the previous "if" because the
|
||||
|
Reference in New Issue
Block a user