From f8cbf86bbc84292974146504dfa287b119c0ba8e Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Sun, 15 Jun 2003 13:21:21 +0000 Subject: *** empty log message *** --- embed/mozilla/FilePicker.cpp | 50 +++++++++++++++++++++++++------------------- 1 file changed, 29 insertions(+), 21 deletions(-) (limited to 'embed/mozilla/FilePicker.cpp') diff --git a/embed/mozilla/FilePicker.cpp b/embed/mozilla/FilePicker.cpp index bb9b0aaeb..537a66d7b 100644 --- a/embed/mozilla/FilePicker.cpp +++ b/embed/mozilla/FilePicker.cpp @@ -284,14 +284,17 @@ NS_IMETHODIMP GFilePicker::Show(PRInt16 *_retval) gint retVal = gtk_dialog_run(GTK_DIALOG(mFileSelector)); - HandleFilePickerResult(_retval); + HandleFilePickerResult(); if (retVal != GTK_RESPONSE_OK) { *_retval = returnCancel; } + else + { + ValidateFilePickerResult(_retval); + } - gtk_widget_hide(mFileSelector); gtk_widget_destroy(mFileSelector); return NS_OK; @@ -407,24 +410,12 @@ NS_METHOD GFilePicker::SanityCheck (PRBool *retIsSane) // begin local private methods impl //////////////////////////////////////////////////////////////////////////////// -NS_METHOD GFilePicker::HandleFilePickerResult(PRInt16 *retval) +NS_METHOD GFilePicker::HandleFilePickerResult() { - *retval = returnCancel; - nsresult rv; - const char *fileName = gtk_file_selection_get_filename(GTK_FILE_SELECTION(mFileSelector)); if (!fileName || strlen(fileName) == 0) return NS_ERROR_FAILURE; - if (mMode == nsIFilePicker::modeSave) - { - if (!ephy_gui_confirm_overwrite_file (mFileSelector, - fileName)) - { - return NS_OK; - } - } - const nsACString &cFileName = nsDependentCString(fileName); mFile->InitWithNativePath(cFileName); @@ -441,10 +432,6 @@ NS_METHOD GFilePicker::HandleFilePickerResult(PRInt16 *retval) mFile->GetNativeLeafName(mDefaultString); } - PRBool passesSanityCheck; - rv = SanityCheck(&passesSanityCheck); - if (NS_SUCCEEDED(rv) && !passesSanityCheck) return NS_ERROR_FAILURE; - if (mFormatChooser) { GtkWidget *menu = gtk_option_menu_get_menu @@ -463,9 +450,30 @@ NS_METHOD GFilePicker::HandleFilePickerResult(PRInt16 *retval) } } - *retval = returnOK; - return NS_OK; } +NS_METHOD GFilePicker::ValidateFilePickerResult(PRInt16 *retval) +{ + nsresult rv; + const char *fileName = gtk_file_selection_get_filename(GTK_FILE_SELECTION(mFileSelector)); + + *retval = returnCancel; + PRBool passesSanityCheck; + rv = SanityCheck(&passesSanityCheck); + if (NS_SUCCEEDED(rv) && !passesSanityCheck) return NS_ERROR_FAILURE; + + if (mMode == nsIFilePicker::modeSave) + { + if (!ephy_gui_confirm_overwrite_file (mFileSelector, + fileName)) + { + return NS_OK; + } + } + + *retval = returnOK; + + return NS_OK; +} -- cgit v1.2.3