use update UI handler for the up and new directory buttons instead of manually updating the controls, this fixes a bug where up button wasn't enabled back after selecting a child of top level directory
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@48794 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -83,13 +83,14 @@ public:
|
|||||||
void OnNew( wxCommandEvent &event );
|
void OnNew( wxCommandEvent &event );
|
||||||
void OnFileActivated( wxFileCtrlEvent &event);
|
void OnFileActivated( wxFileCtrlEvent &event);
|
||||||
|
|
||||||
virtual void UpdateControls();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Don't use this implementation at all :-)
|
// if true, don't use this implementation at all
|
||||||
bool m_bypassGenericImpl;
|
bool m_bypassGenericImpl;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
// update the state of m_upDirButton and m_newDirButton depending on the
|
||||||
|
// currently selected directory
|
||||||
|
void OnUpdateButtonsUI(wxUpdateUIEvent& event);
|
||||||
|
|
||||||
wxString m_filterExtension;
|
wxString m_filterExtension;
|
||||||
wxGenericFileCtrl *m_filectrl;
|
wxGenericFileCtrl *m_filectrl;
|
||||||
@@ -98,6 +99,7 @@ protected:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
void Init();
|
void Init();
|
||||||
|
|
||||||
DECLARE_DYNAMIC_CLASS(wxGenericFileDialog)
|
DECLARE_DYNAMIC_CLASS(wxGenericFileDialog)
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
|
|
||||||
|
@@ -112,6 +112,11 @@ BEGIN_EVENT_TABLE(wxGenericFileDialog,wxDialog)
|
|||||||
EVT_BUTTON(ID_NEW_DIR, wxGenericFileDialog::OnNew)
|
EVT_BUTTON(ID_NEW_DIR, wxGenericFileDialog::OnNew)
|
||||||
EVT_BUTTON(wxID_OK, wxGenericFileDialog::OnOk)
|
EVT_BUTTON(wxID_OK, wxGenericFileDialog::OnOk)
|
||||||
EVT_FILECTRL_FILEACTIVATED(ID_FILE_CTRL, wxGenericFileDialog::OnFileActivated)
|
EVT_FILECTRL_FILEACTIVATED(ID_FILE_CTRL, wxGenericFileDialog::OnFileActivated)
|
||||||
|
|
||||||
|
EVT_UPDATE_UI(ID_UP_DIR, wxGenericFileDialog::OnUpdateButtonsUI)
|
||||||
|
#if defined(__DOS__) || defined(__WINDOWS__) || defined(__OS2__)
|
||||||
|
EVT_UPDATE_UI(ID_NEW_DIR, wxGenericFileDialog::OnUpdateButtonsUI)
|
||||||
|
#endif // defined(__DOS__) || defined(__WINDOWS__) || defined(__OS2__)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
long wxGenericFileDialog::ms_lastViewStyle = wxLC_LIST;
|
long wxGenericFileDialog::ms_lastViewStyle = wxLC_LIST;
|
||||||
@@ -328,7 +333,6 @@ wxGenericFileDialog::~wxGenericFileDialog()
|
|||||||
int wxGenericFileDialog::ShowModal()
|
int wxGenericFileDialog::ShowModal()
|
||||||
{
|
{
|
||||||
m_filectrl->SetDirectory(m_dir);
|
m_filectrl->SetDirectory(m_dir);
|
||||||
UpdateControls();
|
|
||||||
|
|
||||||
return wxDialog::ShowModal();
|
return wxDialog::ShowModal();
|
||||||
}
|
}
|
||||||
@@ -340,7 +344,6 @@ bool wxGenericFileDialog::Show( bool show )
|
|||||||
if (show)
|
if (show)
|
||||||
{
|
{
|
||||||
m_filectrl->SetDirectory(m_dir);
|
m_filectrl->SetDirectory(m_dir);
|
||||||
UpdateControls();
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -391,14 +394,12 @@ void wxGenericFileDialog::OnUp( wxCommandEvent &WXUNUSED(event) )
|
|||||||
{
|
{
|
||||||
m_filectrl->GoToParentDir();
|
m_filectrl->GoToParentDir();
|
||||||
m_filectrl->GetFileList()->SetFocus();
|
m_filectrl->GetFileList()->SetFocus();
|
||||||
UpdateControls();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxGenericFileDialog::OnHome( wxCommandEvent &WXUNUSED(event) )
|
void wxGenericFileDialog::OnHome( wxCommandEvent &WXUNUSED(event) )
|
||||||
{
|
{
|
||||||
m_filectrl->GoToHomeDir();
|
m_filectrl->GoToHomeDir();
|
||||||
m_filectrl->SetFocus();
|
m_filectrl->SetFocus();
|
||||||
UpdateControls();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxGenericFileDialog::OnNew( wxCommandEvent &WXUNUSED(event) )
|
void wxGenericFileDialog::OnNew( wxCommandEvent &WXUNUSED(event) )
|
||||||
@@ -430,14 +431,9 @@ void wxGenericFileDialog::GetFilenames(wxArrayString& files) const
|
|||||||
m_filectrl->GetFilenames(files);
|
m_filectrl->GetFilenames(files);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxGenericFileDialog::UpdateControls()
|
void wxGenericFileDialog::OnUpdateButtonsUI(wxUpdateUIEvent& event)
|
||||||
{
|
{
|
||||||
const bool enable = !IsTopMostDir(m_filectrl->GetDirectory());
|
event.Enable( !IsTopMostDir(m_filectrl->GetDirectory()) );
|
||||||
m_upDirButton->Enable(enable);
|
|
||||||
|
|
||||||
#if defined(__DOS__) || defined(__WINDOWS__) || defined(__OS2__)
|
|
||||||
m_newDirButton->Enable(enable);
|
|
||||||
#endif // defined(__DOS__) || defined(__WINDOWS__) || defined(__OS2__)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef wxHAS_GENERIC_FILEDIALOG
|
#ifdef wxHAS_GENERIC_FILEDIALOG
|
||||||
|
Reference in New Issue
Block a user