]> git.saurik.com Git - wxWidgets.git/commitdiff
wxDirDialog no longer shows hidden files. I don't
authorRobert Roebling <robert@roebling.de>
Wed, 9 Jan 2002 18:00:39 +0000 (18:00 +0000)
committerRobert Roebling <robert@roebling.de>
Wed, 9 Jan 2002 18:00:39 +0000 (18:00 +0000)
    know yet how to implement the reparsing when the
    user checks/unchecks the "Show hidden directories"
    button. And my mail is down...

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13482 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/generic/dirctrlg.h
include/wx/generic/dirdlgg.h
src/generic/dirctrlg.cpp
src/generic/dirdlgg.cpp

index e0e5c4c5542d2e4ee610f34cd032ea1059335414..467c04f7a4e056a8fb1e620febb6fe89f4e58b7f 100644 (file)
@@ -119,27 +119,33 @@ public:
     void SetDefaultPath(const wxString& path) { m_defaultPath = path; }
 
     // Get dir or filename
-    wxString GetPath() const ;
+    wxString GetPath() const;
+    
     // Get selected filename path only (else empty string).
     // I.e. don't count a directory as a selection
-    wxString GetFilePath() const ;
-    void SetPath(const wxString& path) ;
+    wxString GetFilePath() const;
+    void SetPath(const wxString& path);
+    
+    void ShowHidden( bool show );
+    bool GetShowHidden() { return m_showHidden; }
 
     wxString GetFilter() const { return m_filter; }
     void SetFilter(const wxString& filter);
 
     int GetFilterIndex() const { return m_currentFilter; }
-    void SetFilterIndex(int n) ;
+    void SetFilterIndex(int n);
 
     wxTreeItemId GetRootId() { return m_rootId; }
 
     wxTreeCtrl* GetTreeCtrl() const { return m_treeCtrl; }
     wxDirFilterListCtrl* GetFilterListCtrl() const { return m_filterListCtrl; }
 
-    //// Helpers
+    // Helper
     void SetupSections();
+    
     // Parse the filter into an array of filters and an array of descriptions
     int ParseFilter(const wxString& filterStr, wxArrayString& filters, wxArrayString& descriptions);
+    
     // Find the child that matches the first part of 'path'.
     // E.g. if a child path is "/usr" and 'path' is "/usr/include"
     // then the child for /usr is returned.
@@ -148,6 +154,7 @@ public:
     
     // Resize the components of the control
     void DoResize();
+    
 protected:
     void ExpandDir(wxTreeItemId parentId);
     void AddSection(const wxString& path, const wxString& name, int imageId = 0);
index 594c889dc574fdd82fddeaf013a5ba580e8c74f6..278a1c6083f7f9b121426ef2f6d1563238c168eb 100644 (file)
@@ -64,6 +64,7 @@ protected:
     void OnTreeSelected(wxTreeEvent &event);
     void OnTreeKeyDown(wxTreeEvent &event);
     void OnNew(wxCommandEvent& event);
+    void OnShowHidden(wxCommandEvent& event);
 
     wxString          m_message;
     long              m_dialogStyle;
index c0016cef7960c8a511300bc67ce70fe6659b9f6d..2a2bba6bf72894b53677a086e059922172ed2085 100644 (file)
@@ -572,6 +572,13 @@ void wxGenericDirCtrl::Init()
     m_filterListCtrl = NULL;
 }
 
+void wxGenericDirCtrl::ShowHidden( bool show )
+{
+    m_showHidden = show;
+    
+    // reparse FIXME 
+}
+
 void wxGenericDirCtrl::AddSection(const wxString& path, const wxString& name, int imageId)
 {
     wxDirItemData *dir_item = new wxDirItemData(path,name,TRUE);
@@ -806,7 +813,9 @@ void wxGenericDirCtrl::ExpandDir(wxTreeItemId parentId)
 
     if (d.IsOpened())
     {
-        if (d.GetFirst(& eachFilename, wxEmptyString, wxDIR_DIRS | wxDIR_HIDDEN))
+        int style = wxDIR_DIRS;
+        if (m_showHidden) style |= wxDIR_HIDDEN;
+        if (d.GetFirst(& eachFilename, wxEmptyString, style))
         {
             do
             {
index 880836a0023b9c7ef3b7e43fc2c8d334c09d4e82..7b230c3f3cbfe2bc22b8cc94ca3a42a059636292 100644 (file)
@@ -28,6 +28,7 @@
 #ifndef WX_PRECOMP
     #include "wx/textctrl.h"
     #include "wx/button.h"
+    #include "wx/checkbox.h"
     #include "wx/sizer.h"
     #include "wx/intl.h"
     #include "wx/log.h"
@@ -47,15 +48,16 @@ static const int ID_TEXTCTRL = 1001;
 static const int ID_OK = 1002;
 static const int ID_CANCEL = 1003;
 static const int ID_NEW = 1004;
-//static const int ID_CHECK = 1005;
+static const int ID_SHOW_HIDDEN = 1005;
 
 BEGIN_EVENT_TABLE(wxGenericDirDialog, wxDialog)
-    EVT_BUTTON               (wxID_OK,  wxGenericDirDialog::OnOK)
-    EVT_BUTTON               (wxID_NEW,     wxGenericDirDialog::OnNew)
     EVT_CLOSE                (wxGenericDirDialog::OnCloseWindow)
-    EVT_TREE_KEY_DOWN        (-1,   wxGenericDirDialog::OnTreeKeyDown)
-    EVT_TREE_SEL_CHANGED     (-1,   wxGenericDirDialog::OnTreeSelected)
-    EVT_TEXT_ENTER           (ID_TEXTCTRL,  wxGenericDirDialog::OnOK)
+    EVT_BUTTON               (wxID_OK,        wxGenericDirDialog::OnOK)
+    EVT_BUTTON               (ID_NEW,         wxGenericDirDialog::OnNew)
+    EVT_TREE_KEY_DOWN        (-1,             wxGenericDirDialog::OnTreeKeyDown)
+    EVT_TREE_SEL_CHANGED     (-1,             wxGenericDirDialog::OnTreeSelected)
+    EVT_TEXT_ENTER           (ID_TEXTCTRL,    wxGenericDirDialog::OnOK)
+    EVT_CHECKBOX             (ID_SHOW_HIDDEN, wxGenericDirDialog::OnShowHidden)
 END_EVENT_TABLE()
 
 wxGenericDirDialog::wxGenericDirDialog(wxWindow* parent, const wxString& title,
@@ -95,16 +97,22 @@ wxGenericDirDialog::wxGenericDirDialog(wxWindow* parent, const wxString& title,
 
     // 4) Buttons
     wxSizer* buttonsizer = new wxBoxSizer( wxHORIZONTAL );
-    wxButton* okButton = new wxButton(this, wxID_OK, _("OK"));
-    buttonsizer->Add( okButton, 0, wxLEFT|wxRIGHT, 10 );
-    wxButton* cancelButton = new wxButton(this, wxID_CANCEL, _("Cancel"));
-    buttonsizer->Add( cancelButton, 0, wxLEFT|wxRIGHT, 10 );
+    
+    // Make the an option depending on a flag?
+    wxCheckBox* check = new wxCheckBox( this, ID_SHOW_HIDDEN, _("Show hidden directories") );
+    buttonsizer->Add( check, 0, wxLEFT|wxRIGHT, 10 );
 
     // I'm not convinced we need a New button, and we tend to get annoying
     // accidental-editing with label editing enabled.
-    wxButton* newButton = new wxButton( this, wxID_NEW, _("New...") );
+    wxButton* newButton = new wxButton( this, ID_NEW, _("New...") );
     buttonsizer->Add( newButton, 0, wxLEFT|wxRIGHT, 10 );
 
+    // OK and Cancel button should be at the right bottom
+    wxButton* okButton = new wxButton(this, wxID_OK, _("OK"));
+    buttonsizer->Add( okButton, 0, wxLEFT|wxRIGHT, 10 );
+    wxButton* cancelButton = new wxButton(this, wxID_CANCEL, _("Cancel"));
+    buttonsizer->Add( cancelButton, 0, wxLEFT|wxRIGHT, 10 );
+
     topsizer->Add( buttonsizer, 0, wxALL | wxCENTER, 10 );
 
     okButton->SetDefault();
@@ -197,6 +205,14 @@ void wxGenericDirDialog::OnTreeKeyDown( wxTreeEvent &WXUNUSED(event) )
         m_input->SetValue( data->m_path );
 };
 
+void wxGenericDirDialog::OnShowHidden( wxCommandEvent& event )
+{
+    if (!m_dirCtrl)
+        return;
+
+    m_dirCtrl->ShowHidden( event.GetInt() );
+}
+
 void wxGenericDirDialog::OnNew( wxCommandEvent& WXUNUSED(event) )
 {
     wxTreeItemId id = m_dirCtrl->GetTreeCtrl()->GetSelection();