From 36637accb46694da25810c648e894795ab4e2186 Mon Sep 17 00:00:00 2001 From: "cmanske%netscape.com" Date: Tue, 6 Feb 2001 04:38:08 +0000 Subject: [PATCH] Fixed saving over existing file bug 66745. r,m=Makoto Hamanaka (VYA04230@nifty.com), sr=sfraser.' --- widget/src/beos/nsFilePicker.cpp | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/widget/src/beos/nsFilePicker.cpp b/widget/src/beos/nsFilePicker.cpp index f6d647209469..0c92af6aa0e7 100644 --- a/widget/src/beos/nsFilePicker.cpp +++ b/widget/src/beos/nsFilePicker.cpp @@ -178,11 +178,28 @@ NS_IMETHODIMP nsFilePicker::Show(PRInt16 *retval) ppanel->Quit(); } - if (result) - *retval = returnOK; - else - *retval = returnCancel; - + if (result) { + PRInt16 returnOKorReplace = returnOK; + + if (mMode == modeSave) { + // Windows does not return resultReplace, + // we must check if file already exists + nsCOMPtr file(do_CreateInstance("@mozilla.org/file/local;1")); + + NS_ENSURE_TRUE(file, NS_ERROR_FAILURE); + + file->InitWithPath(mFile); + + PRBool exists = PR_FALSE; + file->Exists(&exists); + if (exists) + returnOKorReplace = returnReplace; + } + *retval = returnOKorReplace; + } + else { + *retval = returnCancel; + } return NS_OK; // TODO: implement filters