Add wxDir::Close().

This is trivial to have and can sometimes be useful and also is symmetric to
Open().

Closes #14493.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72204 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2012-07-24 20:45:30 +00:00
parent 1f7c17f405
commit 6619c4af1b
5 changed files with 35 additions and 8 deletions

View File

@@ -527,6 +527,10 @@ Major new features in this release
2.9.5: (released ????-??-??)
----------------------------
All:
- Add wxDir::Close() method (Silverstorm82).
All (GUI):
- Add possibility to hide and show again wxRibbonBar pages (wxBen).

View File

@@ -94,12 +94,15 @@ public:
// opens the directory for enumeration, use IsOpened() to test success
wxDir(const wxString& dir);
// dtor cleans up the associated resources
~wxDir();
// dtor calls Close() automatically
~wxDir() { Close(); }
// open the directory for enumerating
bool Open(const wxString& dir);
// close the directory, Open() can be called again later
void Close();
// returns true if the directory was successfully opened
bool IsOpened() const;

View File

@@ -160,11 +160,23 @@ public:
wxDir(const wxString& dir);
/**
Destructor cleans up the associated resources. It is not virtual and so
this class is not meant to be used polymorphically.
Destructor cleans up the associated resources by calling Close().
It is not virtual and so this class is not meant to be used
polymorphically.
*/
~wxDir();
/**
Close the directory.
The object can't be used after closing it, but Open() may be called
again to reopen it later.
@since 2.9.5
*/
void Close();
/**
Test for existence of a directory with the given name.
*/

View File

@@ -343,9 +343,13 @@ wxString wxDir::GetName() const
return name;
}
wxDir::~wxDir()
void wxDir::Close()
{
delete M_DIR;
if ( m_data )
{
delete m_data;
m_data = NULL;
}
}
// ----------------------------------------------------------------------------

View File

@@ -248,9 +248,13 @@ wxString wxDir::GetName() const
return name;
}
wxDir::~wxDir()
void wxDir::Close()
{
delete M_DIR;
if ( m_data )
{
delete m_data;
m_data = NULL;
}
}
// ----------------------------------------------------------------------------