Added use of default file/dir and confirm on overwrite to file selection
dialog git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@315 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -29,6 +29,8 @@ class wxFileDialog: public wxDialog
|
|||||||
{
|
{
|
||||||
|
|
||||||
DECLARE_DYNAMIC_CLASS(wxFileDialog)
|
DECLARE_DYNAMIC_CLASS(wxFileDialog)
|
||||||
|
|
||||||
|
friend void gtk_filedialog_ok_callback( GtkWidget *widget, gpointer data );
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
@@ -29,6 +29,8 @@ class wxFileDialog: public wxDialog
|
|||||||
{
|
{
|
||||||
|
|
||||||
DECLARE_DYNAMIC_CLASS(wxFileDialog)
|
DECLARE_DYNAMIC_CLASS(wxFileDialog)
|
||||||
|
|
||||||
|
friend void gtk_filedialog_ok_callback( GtkWidget *widget, gpointer data );
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
@@ -15,6 +15,7 @@
|
|||||||
#include "wx/filedlg.h"
|
#include "wx/filedlg.h"
|
||||||
#include "wx/utils.h"
|
#include "wx/utils.h"
|
||||||
#include "wx/intl.h"
|
#include "wx/intl.h"
|
||||||
|
#include "wx/generic/msgdlgg.h"
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// wxFileDialog
|
// wxFileDialog
|
||||||
@@ -24,6 +25,13 @@ void gtk_filedialog_ok_callback( GtkWidget *WXUNUSED(widget), gpointer data )
|
|||||||
{
|
{
|
||||||
wxFileDialog *dialog = (wxFileDialog*)data;
|
wxFileDialog *dialog = (wxFileDialog*)data;
|
||||||
wxCommandEvent event(wxEVT_NULL);
|
wxCommandEvent event(wxEVT_NULL);
|
||||||
|
|
||||||
|
if(dialog->GetStyle()&(wxSAVE|wxOVERWRITE_PROMPT))
|
||||||
|
if(wxFileExists(gtk_file_selection_get_filename(GTK_FILE_SELECTION(dialog->m_widget) ))) {
|
||||||
|
if(wxMessageBox("File exists. Overwrite?","Confirm",wxYES_NO)!=wxYES)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
dialog->OnOk( event );
|
dialog->OnOk( event );
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -49,11 +57,18 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
|
|||||||
m_fileName = defaultFileName;
|
m_fileName = defaultFileName;
|
||||||
m_dir = defaultDir;
|
m_dir = defaultDir;
|
||||||
m_wildCard = wildCard;
|
m_wildCard = wildCard;
|
||||||
|
m_dialogStyle = style;
|
||||||
m_filterIndex = 1;
|
m_filterIndex = 1;
|
||||||
|
|
||||||
m_widget = gtk_file_selection_new( "File selection" );
|
m_widget = gtk_file_selection_new( "File selection" );
|
||||||
|
|
||||||
GtkFileSelection *sel = GTK_FILE_SELECTION(m_widget);
|
GtkFileSelection *sel = GTK_FILE_SELECTION(m_widget);
|
||||||
|
|
||||||
|
m_path.Append(m_dir);
|
||||||
|
if(m_path.Last()!='/') m_path.Append('/');
|
||||||
|
m_path.Append(m_fileName);
|
||||||
|
|
||||||
|
if(m_path.Length()>1) gtk_file_selection_set_filename(sel,m_path);
|
||||||
|
|
||||||
gtk_signal_connect( GTK_OBJECT(sel->ok_button), "clicked",
|
gtk_signal_connect( GTK_OBJECT(sel->ok_button), "clicked",
|
||||||
GTK_SIGNAL_FUNC(gtk_filedialog_ok_callback), (gpointer*)this );
|
GTK_SIGNAL_FUNC(gtk_filedialog_ok_callback), (gpointer*)this );
|
||||||
@@ -65,6 +80,7 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
|
|||||||
int wxFileDialog::ShowModal(void)
|
int wxFileDialog::ShowModal(void)
|
||||||
{
|
{
|
||||||
int ret = wxDialog::ShowModal();
|
int ret = wxDialog::ShowModal();
|
||||||
|
|
||||||
if (ret == wxID_OK)
|
if (ret == wxID_OK)
|
||||||
{
|
{
|
||||||
m_fileName = gtk_file_selection_get_filename( GTK_FILE_SELECTION(m_widget) );
|
m_fileName = gtk_file_selection_get_filename( GTK_FILE_SELECTION(m_widget) );
|
||||||
|
@@ -15,6 +15,7 @@
|
|||||||
#include "wx/filedlg.h"
|
#include "wx/filedlg.h"
|
||||||
#include "wx/utils.h"
|
#include "wx/utils.h"
|
||||||
#include "wx/intl.h"
|
#include "wx/intl.h"
|
||||||
|
#include "wx/generic/msgdlgg.h"
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// wxFileDialog
|
// wxFileDialog
|
||||||
@@ -24,6 +25,13 @@ void gtk_filedialog_ok_callback( GtkWidget *WXUNUSED(widget), gpointer data )
|
|||||||
{
|
{
|
||||||
wxFileDialog *dialog = (wxFileDialog*)data;
|
wxFileDialog *dialog = (wxFileDialog*)data;
|
||||||
wxCommandEvent event(wxEVT_NULL);
|
wxCommandEvent event(wxEVT_NULL);
|
||||||
|
|
||||||
|
if(dialog->GetStyle()&(wxSAVE|wxOVERWRITE_PROMPT))
|
||||||
|
if(wxFileExists(gtk_file_selection_get_filename(GTK_FILE_SELECTION(dialog->m_widget) ))) {
|
||||||
|
if(wxMessageBox("File exists. Overwrite?","Confirm",wxYES_NO)!=wxYES)
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
dialog->OnOk( event );
|
dialog->OnOk( event );
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -49,11 +57,18 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
|
|||||||
m_fileName = defaultFileName;
|
m_fileName = defaultFileName;
|
||||||
m_dir = defaultDir;
|
m_dir = defaultDir;
|
||||||
m_wildCard = wildCard;
|
m_wildCard = wildCard;
|
||||||
|
m_dialogStyle = style;
|
||||||
m_filterIndex = 1;
|
m_filterIndex = 1;
|
||||||
|
|
||||||
m_widget = gtk_file_selection_new( "File selection" );
|
m_widget = gtk_file_selection_new( "File selection" );
|
||||||
|
|
||||||
GtkFileSelection *sel = GTK_FILE_SELECTION(m_widget);
|
GtkFileSelection *sel = GTK_FILE_SELECTION(m_widget);
|
||||||
|
|
||||||
|
m_path.Append(m_dir);
|
||||||
|
if(m_path.Last()!='/') m_path.Append('/');
|
||||||
|
m_path.Append(m_fileName);
|
||||||
|
|
||||||
|
if(m_path.Length()>1) gtk_file_selection_set_filename(sel,m_path);
|
||||||
|
|
||||||
gtk_signal_connect( GTK_OBJECT(sel->ok_button), "clicked",
|
gtk_signal_connect( GTK_OBJECT(sel->ok_button), "clicked",
|
||||||
GTK_SIGNAL_FUNC(gtk_filedialog_ok_callback), (gpointer*)this );
|
GTK_SIGNAL_FUNC(gtk_filedialog_ok_callback), (gpointer*)this );
|
||||||
@@ -65,6 +80,7 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message,
|
|||||||
int wxFileDialog::ShowModal(void)
|
int wxFileDialog::ShowModal(void)
|
||||||
{
|
{
|
||||||
int ret = wxDialog::ShowModal();
|
int ret = wxDialog::ShowModal();
|
||||||
|
|
||||||
if (ret == wxID_OK)
|
if (ret == wxID_OK)
|
||||||
{
|
{
|
||||||
m_fileName = gtk_file_selection_get_filename( GTK_FILE_SELECTION(m_widget) );
|
m_fileName = gtk_file_selection_get_filename( GTK_FILE_SELECTION(m_widget) );
|
||||||
|
Reference in New Issue
Block a user