Initialize picker style in native GTK file/dir pickers.
This fixes the styles used in the native wxGTK version after changes in r63654: we must initialize base class m_pickerStyle now and the code didn't do this before resulting in various asserts and incorrect behaviour. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63690 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -29,7 +29,7 @@ class WXDLLIMPEXP_CORE wxGenericFileDirButton : public wxButton,
|
|||||||
public wxFileDirPickerWidgetBase
|
public wxFileDirPickerWidgetBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
wxGenericFileDirButton() { }
|
wxGenericFileDirButton() { Init(); }
|
||||||
wxGenericFileDirButton(wxWindow *parent,
|
wxGenericFileDirButton(wxWindow *parent,
|
||||||
wxWindowID id,
|
wxWindowID id,
|
||||||
const wxString& label = wxFilePickerWidgetLabel,
|
const wxString& label = wxFilePickerWidgetLabel,
|
||||||
@@ -42,12 +42,11 @@ public:
|
|||||||
const wxValidator& validator = wxDefaultValidator,
|
const wxValidator& validator = wxDefaultValidator,
|
||||||
const wxString& name = wxFilePickerWidgetNameStr)
|
const wxString& name = wxFilePickerWidgetNameStr)
|
||||||
{
|
{
|
||||||
|
Init();
|
||||||
Create(parent, id, label, path, message, wildcard,
|
Create(parent, id, label, path, message, wildcard,
|
||||||
pos, size, style, validator, name);
|
pos, size, style, validator, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ~wxGenericFileDirButton() {}
|
|
||||||
|
|
||||||
virtual wxControl *AsControl() { return this; }
|
virtual wxControl *AsControl() { return this; }
|
||||||
|
|
||||||
public: // overrideable
|
public: // overrideable
|
||||||
@@ -82,6 +81,10 @@ protected:
|
|||||||
// wxButton as some of our bits can conflict with wxButton styles and it
|
// wxButton as some of our bits can conflict with wxButton styles and it
|
||||||
// just doesn't make sense to use picker styles for wxButton anyhow
|
// just doesn't make sense to use picker styles for wxButton anyhow
|
||||||
long m_pickerStyle;
|
long m_pickerStyle;
|
||||||
|
|
||||||
|
private:
|
||||||
|
// common part of all ctors
|
||||||
|
void Init() { m_pickerStyle = -1; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -115,6 +118,12 @@ public: // overrideable
|
|||||||
|
|
||||||
virtual long GetDialogStyle() const
|
virtual long GetDialogStyle() const
|
||||||
{
|
{
|
||||||
|
// the derived class must initialize it if it doesn't use the
|
||||||
|
// non-default wxGenericFileDirButton ctor
|
||||||
|
wxASSERT_MSG( m_pickerStyle != -1,
|
||||||
|
"forgot to initialize m_pickerStyle?" );
|
||||||
|
|
||||||
|
|
||||||
long filedlgstyle = 0;
|
long filedlgstyle = 0;
|
||||||
|
|
||||||
if ( m_pickerStyle & wxFLP_OPEN )
|
if ( m_pickerStyle & wxFLP_OPEN )
|
||||||
|
@@ -61,7 +61,7 @@ protected: \
|
|||||||
class WXDLLIMPEXP_CORE wxFileButton : public wxGenericFileButton
|
class WXDLLIMPEXP_CORE wxFileButton : public wxGenericFileButton
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
wxFileButton() { m_dialog = NULL; }
|
wxFileButton() { Init(); }
|
||||||
wxFileButton(wxWindow *parent,
|
wxFileButton(wxWindow *parent,
|
||||||
wxWindowID id,
|
wxWindowID id,
|
||||||
const wxString& label = wxFilePickerWidgetLabel,
|
const wxString& label = wxFilePickerWidgetLabel,
|
||||||
@@ -74,7 +74,8 @@ public:
|
|||||||
const wxValidator& validator = wxDefaultValidator,
|
const wxValidator& validator = wxDefaultValidator,
|
||||||
const wxString& name = wxFilePickerWidgetNameStr)
|
const wxString& name = wxFilePickerWidgetNameStr)
|
||||||
{
|
{
|
||||||
m_dialog = NULL;
|
Init();
|
||||||
|
m_pickerStyle = style;
|
||||||
Create(parent, id, label, path, message, wildcard,
|
Create(parent, id, label, path, message, wildcard,
|
||||||
pos, size, style, validator, name);
|
pos, size, style, validator, name);
|
||||||
}
|
}
|
||||||
@@ -109,6 +110,10 @@ protected:
|
|||||||
|
|
||||||
wxDialog *m_dialog;
|
wxDialog *m_dialog;
|
||||||
|
|
||||||
|
private:
|
||||||
|
// common part of all ctors
|
||||||
|
void Init() { m_dialog = NULL; }
|
||||||
|
|
||||||
DECLARE_DYNAMIC_CLASS(wxFileButton)
|
DECLARE_DYNAMIC_CLASS(wxFileButton)
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -134,6 +139,8 @@ public:
|
|||||||
{
|
{
|
||||||
Init();
|
Init();
|
||||||
|
|
||||||
|
m_pickerStyle = style;
|
||||||
|
|
||||||
Create(parent, id, label, path, message, wxEmptyString,
|
Create(parent, id, label, path, message, wxEmptyString,
|
||||||
pos, size, style, validator, name);
|
pos, size, style, validator, name);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user