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
|
// Name: config.cpp
|
||||||
// Purpose: implementation of wxConfig class
|
// Purpose: implementation of wxConfigBase class
|
||||||
// Author: Vadim Zeitlin
|
// Author: Vadim Zeitlin
|
||||||
// Modified by:
|
// Modified by:
|
||||||
// Created: 07.04.98
|
// Created: 07.04.98
|
||||||
@@ -38,7 +38,7 @@
|
|||||||
#include <wx/textfile.h>
|
#include <wx/textfile.h>
|
||||||
#include <wx/config.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)
|
#if defined(__MSWIN__) && defined(wxCONFIG_WIN32_NATIVE)
|
||||||
#ifdef __WIN32__
|
#ifdef __WIN32__
|
||||||
#include <wx/msw/regconf.h>
|
#include <wx/msw/regconf.h>
|
||||||
@@ -56,24 +56,24 @@
|
|||||||
// global and class static variables
|
// global and class static variables
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
wxConfig *wxConfig::ms_pConfig = NULL;
|
wxConfigBase *wxConfigBase::ms_pConfig = NULL;
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
// implementation
|
// implementation
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxConfig
|
// wxConfigBase
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
wxConfig *wxConfig::Set(wxConfig *pConfig)
|
wxConfigBase *wxConfigBase::Set(wxConfigBase *pConfig)
|
||||||
{
|
{
|
||||||
wxConfig *pOld = ms_pConfig;
|
wxConfigBase *pOld = ms_pConfig;
|
||||||
ms_pConfig = pConfig;
|
ms_pConfig = pConfig;
|
||||||
return pOld;
|
return pOld;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxConfig *wxConfig::Create()
|
wxConfigBase *wxConfigBase::Create()
|
||||||
{
|
{
|
||||||
return ms_pConfig =
|
return ms_pConfig =
|
||||||
#if defined(__MSWIN__) && defined(wxCONFIG_WIN32_NATIVE)
|
#if defined(__MSWIN__) && defined(wxCONFIG_WIN32_NATIVE)
|
||||||
@@ -88,7 +88,7 @@ wxConfig *wxConfig::Create()
|
|||||||
#endif
|
#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];
|
static char s_szBuf[1024];
|
||||||
wxString s;
|
wxString s;
|
||||||
@@ -102,10 +102,10 @@ const char *wxConfig::Read(const char *szKey, const char *szDefault) const
|
|||||||
// Config::PathChanger
|
// Config::PathChanger
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
wxConfig::PathChanger::PathChanger(const wxConfig *pContainer,
|
wxConfigBase::PathChanger::PathChanger(const wxConfigBase *pContainer,
|
||||||
const wxString& strEntry)
|
const wxString& strEntry)
|
||||||
{
|
{
|
||||||
m_pContainer = (wxConfig *)pContainer;
|
m_pContainer = (wxConfigBase *)pContainer;
|
||||||
wxString strPath = strEntry.Before(wxCONFIG_PATH_SEPARATOR);
|
wxString strPath = strEntry.Before(wxCONFIG_PATH_SEPARATOR);
|
||||||
|
|
||||||
// special case of "/keyname" when there is nothing before "/"
|
// 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
|
// only restore path if it was changed
|
||||||
if ( m_bChanged ) {
|
if ( m_bChanged ) {
|
||||||
|
@@ -157,6 +157,7 @@ wxString wxFileConfig::GetLocalFileName(const char *szFile)
|
|||||||
str << szFile;
|
str << szFile;
|
||||||
|
|
||||||
#ifdef __WXMSW__
|
#ifdef __WXMSW__
|
||||||
|
if ( strchr(szFile, '.') == NULL )
|
||||||
str << ".ini";
|
str << ".ini";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -432,13 +433,13 @@ void wxFileConfig::SetPath(const wxString& strPath)
|
|||||||
// enumeration
|
// enumeration
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
bool wxFileConfig::GetFirstGroup(wxString& str, long& lIndex)
|
bool wxFileConfig::GetFirstGroup(wxString& str, long& lIndex) const
|
||||||
{
|
{
|
||||||
lIndex = 0;
|
lIndex = 0;
|
||||||
return GetNextGroup(str, lIndex);
|
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() ) {
|
if ( uint(lIndex) < m_pCurrentGroup->Groups().Count() ) {
|
||||||
str = m_pCurrentGroup->Groups()[lIndex++]->Name();
|
str = m_pCurrentGroup->Groups()[lIndex++]->Name();
|
||||||
@@ -448,13 +449,13 @@ bool wxFileConfig::GetNextGroup (wxString& str, long& lIndex)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxFileConfig::GetFirstEntry(wxString& str, long& lIndex)
|
bool wxFileConfig::GetFirstEntry(wxString& str, long& lIndex) const
|
||||||
{
|
{
|
||||||
lIndex = 0;
|
lIndex = 0;
|
||||||
return GetNextEntry(str, lIndex);
|
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() ) {
|
if ( uint(lIndex) < m_pCurrentGroup->Entries().Count() ) {
|
||||||
str = m_pCurrentGroup->Entries()[lIndex++]->Name();
|
str = m_pCurrentGroup->Entries()[lIndex++]->Name();
|
||||||
@@ -648,7 +649,7 @@ bool wxFileConfig::DeleteEntry(const char *szKey, bool bGroupIfEmptyAlso)
|
|||||||
if ( m_pCurrentGroup != m_pRootGroup ) {
|
if ( m_pCurrentGroup != m_pRootGroup ) {
|
||||||
ConfigGroup *pGroup = m_pCurrentGroup;
|
ConfigGroup *pGroup = m_pCurrentGroup;
|
||||||
SetPath(".."); // changes m_pCurrentGroup!
|
SetPath(".."); // changes m_pCurrentGroup!
|
||||||
m_pCurrentGroup->DeleteSubgroup(pGroup->Name());
|
m_pCurrentGroup->DeleteSubgroupByName(pGroup->Name());
|
||||||
}
|
}
|
||||||
//else: never delete the root group
|
//else: never delete the root group
|
||||||
}
|
}
|
||||||
@@ -660,7 +661,7 @@ bool wxFileConfig::DeleteGroup(const char *szKey)
|
|||||||
{
|
{
|
||||||
PathChanger path(this, szKey);
|
PathChanger path(this, szKey);
|
||||||
|
|
||||||
return m_pCurrentGroup->DeleteSubgroup(path.Name());
|
return m_pCurrentGroup->DeleteSubgroupByName(path.Name());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxFileConfig::DeleteAll()
|
bool wxFileConfig::DeleteAll()
|
||||||
@@ -1012,9 +1013,16 @@ wxFileConfig::ConfigGroup::AddSubgroup(const wxString& strName)
|
|||||||
delete several of them.
|
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?
|
wxCHECK( pGroup != NULL, FALSE ); // deleting non existing group?
|
||||||
|
|
||||||
// delete all entries
|
// delete all entries
|
||||||
@@ -1025,6 +1033,12 @@ bool wxFileConfig::ConfigGroup::DeleteSubgroup(const char *szName)
|
|||||||
m_pConfig->LineListRemove(pLine);
|
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;
|
LineList *pLine = pGroup->m_pLine;
|
||||||
if ( pLine != NULL ) {
|
if ( pLine != NULL ) {
|
||||||
// notice that we may do this test inside the previous "if" because the
|
// notice that we may do this test inside the previous "if" because the
|
||||||
|
Reference in New Issue
Block a user