From f06372807d11bbd4412de3671a1136eac57642fb Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Mon, 12 Nov 2001 16:12:48 +0000 Subject: [PATCH] fix file dialog bug git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@3010 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/frontends/xforms/ChangeLog | 5 +++++ src/frontends/xforms/FormFiledialog.C | 17 +++++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/frontends/xforms/ChangeLog b/src/frontends/xforms/ChangeLog index 0f48bdf447..b7f4fab130 100644 --- a/src/frontends/xforms/ChangeLog +++ b/src/frontends/xforms/ChangeLog @@ -1,3 +1,8 @@ +2001-11-12 John Levon + + * FormFiledialog.C: don't reset path if new dir + doesn't exist. + 2001-11-12 Jürgen Spitzmüller * forms/form_document.fd: Renamed "Save as Class Defaults" diff --git a/src/frontends/xforms/FormFiledialog.C b/src/frontends/xforms/FormFiledialog.C index 869b5759ca..3dc6233008 100644 --- a/src/frontends/xforms/FormFiledialog.C +++ b/src/frontends/xforms/FormFiledialog.C @@ -376,11 +376,24 @@ void FileDialog::Private::Reread() // SetDirectory: sets dialog current directory void FileDialog::Private::SetDirectory(string const & Path) { + string tmp; + if (!pszDirectory.empty()) { string TempPath = ExpandPath(Path); // Expand ~/ TempPath = MakeAbsPath(TempPath, pszDirectory); - pszDirectory = MakeAbsPath(TempPath); - } else pszDirectory = MakeAbsPath(Path); + tmp = MakeAbsPath(TempPath); + } else { + tmp = MakeAbsPath(Path); + } + + // must check the directory exists + DIR * pDirectory = ::opendir(tmp.c_str()); + if (!pDirectory) { + WriteFSAlert(_("Warning! Couldn't open directory."), tmp); + } else { + ::closedir(pDirectory); + pszDirectory = tmp; + } } -- 2.39.2