Applied patch [ 1174270 ] small fixes to wxGenericDirCtrl
Stas Sergeev: 1. CollapseDir() was forgetting to... hrmm, to collapse the dir... It was only removing the child elements, leaving the dir expanded. Missing code added. 2. ReCreateTree(), which, according to the comments, must collapse and re-open the tree, was not re-opening it. Fixed. 3. For those who used the bogus ReCreateTree() behaviour to collapse the tree, I added CollapseTree(). This does visually what the ReCreateTree() wrongly did before the patch. 4. Documentation is updated accordingly. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@33223 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
5890ad78fa
commit
c06dde42fe
@ -89,6 +89,12 @@ Create function for two-step construction. See \helpref{wxGenericDirCtrl::wxGene
|
||||
|
||||
Initializes variables.
|
||||
|
||||
\membersection{wxGenericDirCtrl::CollapseTree}\label{wxgenericdirctrlcollapsetree}
|
||||
|
||||
\func{void}{CollapseTree}{\void}
|
||||
|
||||
Collapses the entire tree.
|
||||
|
||||
\membersection{wxGenericDirCtrl::ExpandPath}\label{wxgenericdirctrlexpandpath}
|
||||
|
||||
\func{bool}{ExpandPath}{\param{const wxString\& }{path}}
|
||||
@ -145,6 +151,13 @@ Returns the root id for the tree control.
|
||||
|
||||
Returns a pointer to the tree control.
|
||||
|
||||
\membersection{wxGenericDirCtrl::ReCreateTree}\label{wxgenericdirctrlrecreatetree}
|
||||
|
||||
\func{void}{ReCreateTree}{\void}
|
||||
|
||||
Collapse and expand the tree, thus re-creating it from scratch.
|
||||
May be used to update the displayed directory content.
|
||||
|
||||
\membersection{wxGenericDirCtrl::SetDefaultPath}\label{wxgenericdirctrlsetdefaultpath}
|
||||
|
||||
\func{void}{SetDefaultPath}{\param{const wxString\& }{path}}
|
||||
|
@ -168,7 +168,11 @@ public:
|
||||
// Collapse & expand the tree, thus re-creating it from scratch:
|
||||
virtual void ReCreateTree();
|
||||
|
||||
// Collapse the entire tree
|
||||
virtual void CollapseTree();
|
||||
|
||||
protected:
|
||||
virtual void ExpandRoot();
|
||||
virtual void ExpandDir(wxTreeItemId parentId);
|
||||
virtual void CollapseDir(wxTreeItemId parentId);
|
||||
virtual const wxTreeItemId AddSection(const wxString& path, const wxString& name, int imageId = 0);
|
||||
|
@ -487,6 +487,26 @@ wxGenericDirCtrl::wxGenericDirCtrl(void)
|
||||
Init();
|
||||
}
|
||||
|
||||
void wxGenericDirCtrl::ExpandRoot()
|
||||
{
|
||||
ExpandDir(m_rootId); // automatically expand first level
|
||||
|
||||
// Expand and select the default path
|
||||
if (!m_defaultPath.empty())
|
||||
{
|
||||
ExpandPath(m_defaultPath);
|
||||
}
|
||||
#ifdef __UNIX__
|
||||
else
|
||||
{
|
||||
// On Unix, there's only one node under the (hidden) root node. It
|
||||
// represents the / path, so the user would always have to expand it;
|
||||
// let's do it ourselves
|
||||
ExpandPath( wxT("/") );
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
bool wxGenericDirCtrl::Create(wxWindow *parent,
|
||||
const wxWindowID id,
|
||||
const wxString& dir,
|
||||
@ -560,22 +580,8 @@ bool wxGenericDirCtrl::Create(wxWindow *parent,
|
||||
|
||||
m_rootId = m_treeCtrl->AddRoot( rootName, 3, -1, rootData);
|
||||
m_treeCtrl->SetItemHasChildren(m_rootId);
|
||||
ExpandDir(m_rootId); // automatically expand first level
|
||||
|
||||
// Expand and select the default path
|
||||
if (!m_defaultPath.empty())
|
||||
{
|
||||
ExpandPath(m_defaultPath);
|
||||
}
|
||||
#ifdef __UNIX__
|
||||
else
|
||||
{
|
||||
// On Unix, there's only one node under the (hidden) root node. It
|
||||
// represents the / path, so the user would always have to expand it;
|
||||
// let's do it ourselves
|
||||
ExpandPath( wxT("/") );
|
||||
}
|
||||
#endif
|
||||
ExpandRoot();
|
||||
|
||||
SetBestSize(size);
|
||||
DoResize();
|
||||
@ -740,6 +746,8 @@ void wxGenericDirCtrl::CollapseDir(wxTreeItemId parentId)
|
||||
* handle disappearing children! */
|
||||
child = m_treeCtrl->GetFirstChild(parentId, cookie);
|
||||
}
|
||||
if (parentId != m_treeCtrl->GetRootItem())
|
||||
m_treeCtrl->Collapse(parentId);
|
||||
}
|
||||
|
||||
void wxGenericDirCtrl::ExpandDir(wxTreeItemId parentId)
|
||||
@ -894,7 +902,18 @@ void wxGenericDirCtrl::ExpandDir(wxTreeItemId parentId)
|
||||
void wxGenericDirCtrl::ReCreateTree()
|
||||
{
|
||||
CollapseDir(m_treeCtrl->GetRootItem());
|
||||
ExpandDir(m_treeCtrl->GetRootItem());
|
||||
ExpandRoot();
|
||||
}
|
||||
|
||||
void wxGenericDirCtrl::CollapseTree()
|
||||
{
|
||||
wxTreeItemIdValue cookie;
|
||||
wxTreeItemId child = m_treeCtrl->GetFirstChild(m_rootId, cookie);
|
||||
while (child.IsOk())
|
||||
{
|
||||
CollapseDir(child);
|
||||
child = m_treeCtrl->GetNextChild(m_rootId, cookie);
|
||||
}
|
||||
}
|
||||
|
||||
// Find the child that matches the first part of 'path'.
|
||||
|
Loading…
Reference in New Issue
Block a user