From aa9453d6f4afbbfd44214a9cb85373d066549209 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 9 Mar 2013 15:07:49 +0000 Subject: [PATCH] Restore wxDIRCTRL_SHOW_FILTERS flag of wxDirCtrl. Closes #8572. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@73621 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/generic/dirctrlg.h | 4 +--- interface/wx/dirctrl.h | 4 ++++ samples/widgets/dirctrl.cpp | 3 +++ src/generic/dirctrlg.cpp | 4 ++-- src/xrc/xh_gdctl.cpp | 1 + 5 files changed, 11 insertions(+), 5 deletions(-) diff --git a/include/wx/generic/dirctrlg.h b/include/wx/generic/dirctrlg.h index af6ab5de58..815ff2554b 100644 --- a/include/wx/generic/dirctrlg.h +++ b/include/wx/generic/dirctrlg.h @@ -39,10 +39,8 @@ enum wxDIRCTRL_DIR_ONLY = 0x0010, // When setting the default path, select the first file in the directory wxDIRCTRL_SELECT_FIRST = 0x0020, -#if WXWIN_COMPATIBILITY_2_8 - // Unused, for compatibility only + // Show the filter list wxDIRCTRL_SHOW_FILTERS = 0x0040, -#endif // WXWIN_COMPATIBILITY_2_8 // Use 3D borders on internal controls wxDIRCTRL_3D_INTERNAL = 0x0080, // Editable labels diff --git a/interface/wx/dirctrl.h b/interface/wx/dirctrl.h index 37c96d45a0..e650643106 100644 --- a/interface/wx/dirctrl.h +++ b/interface/wx/dirctrl.h @@ -12,6 +12,8 @@ enum wxDIRCTRL_DIR_ONLY = 0x0010, // When setting the default path, select the first file in the directory wxDIRCTRL_SELECT_FIRST = 0x0020, + // Show the filter list + wxDIRCTRL_SHOW_FILTERS = 0x0040, // Use 3D borders on internal controls wxDIRCTRL_3D_INTERNAL = 0x0080, // Editable labels @@ -38,6 +40,8 @@ enum @style{wxDIRCTRL_SELECT_FIRST} When setting the default path, select the first file in the directory. + @style{wxDIRCTRL_SHOW_FILTERS} + Show the drop-down filter list. @style{wxDIRCTRL_EDIT_LABELS} Allow the folder and file labels to be editable. @style{wxDIRCTRL_MULTIPLE} diff --git a/samples/widgets/dirctrl.cpp b/samples/widgets/dirctrl.cpp index 6a55991d55..ff3b96cf3e 100644 --- a/samples/widgets/dirctrl.cpp +++ b/samples/widgets/dirctrl.cpp @@ -135,6 +135,7 @@ protected: wxCheckBox *m_chkDirOnly, *m_chk3D, *m_chkFirst, + *m_chkFilters, *m_chkLabels, *m_chkMulti; @@ -190,6 +191,7 @@ void DirCtrlWidgetsPage::CreateContent() m_chkDirOnly = CreateCheckBoxAndAddToSizer(sizerUseFlags, wxT("wxDIRCTRL_DIR_ONLY")); m_chk3D = CreateCheckBoxAndAddToSizer(sizerUseFlags, wxT("wxDIRCTRL_3D_INTERNAL")); m_chkFirst = CreateCheckBoxAndAddToSizer(sizerUseFlags, wxT("wxDIRCTRL_SELECT_FIRST")); + m_chkFilters = CreateCheckBoxAndAddToSizer(sizerUseFlags, wxT("wxDIRCTRL_SHOW_FILTERS")); m_chkLabels = CreateCheckBoxAndAddToSizer(sizerUseFlags, wxT("wxDIRCTRL_EDIT_LABELS")); m_chkMulti = CreateCheckBoxAndAddToSizer(sizerUseFlags, wxT("wxDIRCTRL_MULTIPLE")); sizerLeft->Add(sizerUseFlags, wxSizerFlags().Expand().Border()); @@ -252,6 +254,7 @@ void DirCtrlWidgetsPage::CreateDirCtrl() ( m_chkDirOnly->IsChecked() ? wxDIRCTRL_DIR_ONLY : 0 ) | ( m_chk3D->IsChecked() ? wxDIRCTRL_3D_INTERNAL : 0 ) | ( m_chkFirst->IsChecked() ? wxDIRCTRL_SELECT_FIRST : 0 ) | + ( m_chkFilters->IsChecked() ? wxDIRCTRL_SHOW_FILTERS : 0 ) | ( m_chkLabels->IsChecked() ? wxDIRCTRL_EDIT_LABELS : 0 ) | ( m_chkMulti->IsChecked() ? wxDIRCTRL_MULTIPLE : 0) ); diff --git a/src/generic/dirctrlg.cpp b/src/generic/dirctrlg.cpp index 56349938d9..78f8ffc252 100644 --- a/src/generic/dirctrlg.cpp +++ b/src/generic/dirctrlg.cpp @@ -518,7 +518,7 @@ bool wxGenericDirCtrl::Create(wxWindow *parent, m_treeCtrl = CreateTreeCtrl(this, wxID_TREECTRL, wxPoint(0,0), GetClientSize(), treeStyle); - if (!filter.empty()) + if (!filter.empty() && (style & wxDIRCTRL_SHOW_FILTERS)) m_filterListCtrl = new wxDirFilterListCtrl(this, wxID_FILTERLISTCTRL); m_defaultPath = dir; @@ -1251,7 +1251,7 @@ void wxGenericDirCtrl::SetFilter(const wxString& filter) { m_filter = filter; - if (!filter.empty() && !m_filterListCtrl) + if (!filter.empty() && !m_filterListCtrl && HasFlag(wxDIRCTRL_SHOW_FILTERS)) m_filterListCtrl = new wxDirFilterListCtrl(this, wxID_FILTERLISTCTRL); else if (filter.empty() && m_filterListCtrl) { diff --git a/src/xrc/xh_gdctl.cpp b/src/xrc/xh_gdctl.cpp index 367ab60489..74a0977fd1 100644 --- a/src/xrc/xh_gdctl.cpp +++ b/src/xrc/xh_gdctl.cpp @@ -33,6 +33,7 @@ wxGenericDirCtrlXmlHandler::wxGenericDirCtrlXmlHandler() XRC_ADD_STYLE(wxDIRCTRL_DIR_ONLY); XRC_ADD_STYLE(wxDIRCTRL_3D_INTERNAL); XRC_ADD_STYLE(wxDIRCTRL_SELECT_FIRST); + XRC_ADD_STYLE(wxDIRCTRL_SHOW_FILTERS); XRC_ADD_STYLE(wxDIRCTRL_EDIT_LABELS); XRC_ADD_STYLE(wxDIRCTRL_MULTIPLE); AddWindowStyles(); -- 2.45.2