From: Unknown (MO) Date: Mon, 20 Jul 1998 14:59:54 +0000 (+0000) Subject: Added use of default file/dir and confirm on overwrite to file selection X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/035b704a464852c4d6ce297f20a90551c08d3a4c?ds=sidebyside;hp=f40ccee99b037cbb58bc3b34e577088738ab5ced 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 --- diff --git a/include/wx/gtk/filedlg.h b/include/wx/gtk/filedlg.h index 665debbe74..9955be184e 100644 --- a/include/wx/gtk/filedlg.h +++ b/include/wx/gtk/filedlg.h @@ -29,6 +29,8 @@ class wxFileDialog: public wxDialog { DECLARE_DYNAMIC_CLASS(wxFileDialog) + + friend void gtk_filedialog_ok_callback( GtkWidget *widget, gpointer data ); public: diff --git a/include/wx/gtk1/filedlg.h b/include/wx/gtk1/filedlg.h index 665debbe74..9955be184e 100644 --- a/include/wx/gtk1/filedlg.h +++ b/include/wx/gtk1/filedlg.h @@ -29,6 +29,8 @@ class wxFileDialog: public wxDialog { DECLARE_DYNAMIC_CLASS(wxFileDialog) + + friend void gtk_filedialog_ok_callback( GtkWidget *widget, gpointer data ); public: diff --git a/src/gtk/filedlg.cpp b/src/gtk/filedlg.cpp index 74798f65f2..8f7b97ed89 100644 --- a/src/gtk/filedlg.cpp +++ b/src/gtk/filedlg.cpp @@ -15,6 +15,7 @@ #include "wx/filedlg.h" #include "wx/utils.h" #include "wx/intl.h" +#include "wx/generic/msgdlgg.h" //----------------------------------------------------------------------------- // wxFileDialog @@ -24,6 +25,13 @@ void gtk_filedialog_ok_callback( GtkWidget *WXUNUSED(widget), gpointer data ) { wxFileDialog *dialog = (wxFileDialog*)data; 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 ); }; @@ -49,11 +57,18 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message, m_fileName = defaultFileName; m_dir = defaultDir; m_wildCard = wildCard; + m_dialogStyle = style; m_filterIndex = 1; m_widget = gtk_file_selection_new( "File selection" ); 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_FUNC(gtk_filedialog_ok_callback), (gpointer*)this ); @@ -65,6 +80,7 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message, int wxFileDialog::ShowModal(void) { int ret = wxDialog::ShowModal(); + if (ret == wxID_OK) { m_fileName = gtk_file_selection_get_filename( GTK_FILE_SELECTION(m_widget) ); diff --git a/src/gtk1/filedlg.cpp b/src/gtk1/filedlg.cpp index 74798f65f2..8f7b97ed89 100644 --- a/src/gtk1/filedlg.cpp +++ b/src/gtk1/filedlg.cpp @@ -15,6 +15,7 @@ #include "wx/filedlg.h" #include "wx/utils.h" #include "wx/intl.h" +#include "wx/generic/msgdlgg.h" //----------------------------------------------------------------------------- // wxFileDialog @@ -24,6 +25,13 @@ void gtk_filedialog_ok_callback( GtkWidget *WXUNUSED(widget), gpointer data ) { wxFileDialog *dialog = (wxFileDialog*)data; 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 ); }; @@ -49,11 +57,18 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message, m_fileName = defaultFileName; m_dir = defaultDir; m_wildCard = wildCard; + m_dialogStyle = style; m_filterIndex = 1; m_widget = gtk_file_selection_new( "File selection" ); 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_FUNC(gtk_filedialog_ok_callback), (gpointer*)this ); @@ -65,6 +80,7 @@ wxFileDialog::wxFileDialog(wxWindow *parent, const wxString& message, int wxFileDialog::ShowModal(void) { int ret = wxDialog::ShowModal(); + if (ret == wxID_OK) { m_fileName = gtk_file_selection_get_filename( GTK_FILE_SELECTION(m_widget) );