[Scummvm-git-logs] scummvm master -> 707a85466882f5d36f0bdf6d732a98da0760382c

moralrecordings noreply at scummvm.org
Tue Jun 18 15:53:26 UTC 2024


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
707a854668 DIRECTOR: Fix FileIO::m_displaySave


Commit: 707a85466882f5d36f0bdf6d732a98da0760382c
    https://github.com/scummvm/scummvm/commit/707a85466882f5d36f0bdf6d732a98da0760382c
Author: Scott Percival (code at moral.net.au)
Date: 2024-06-18T23:46:44+08:00

Commit Message:
DIRECTOR: Fix FileIO::m_displaySave

Changed paths:
    engines/director/lingo/xlibs/fileio.cpp
    engines/director/lingo/xlibs/mmovie.cpp
    engines/director/util.cpp
    engines/director/util.h


diff --git a/engines/director/lingo/xlibs/fileio.cpp b/engines/director/lingo/xlibs/fileio.cpp
index 15a5a5ef91c..f3dceeedc43 100644
--- a/engines/director/lingo/xlibs/fileio.cpp
+++ b/engines/director/lingo/xlibs/fileio.cpp
@@ -226,7 +226,7 @@ FileIOError FileObject::open(const Common::String &origpath, const Common::Strin
 
 	if (option.hasPrefix("?")) {
 		option = option.substr(1);
-		path = getFileNameFromModal(option.equalsIgnoreCase("write"), origpath, "txt");
+		path = getFileNameFromModal(option.equalsIgnoreCase("write"), origpath, Common::String(), "txt");
 		if (path.empty()) {
 			return kErrorFileNotFound;
 		}
@@ -376,11 +376,13 @@ void FileIO::m_closeFile(int nargs) {
 XOBJSTUB(FileIO::m_createFile, 0)
 
 void FileIO::m_displayOpen(int nargs) {
-	g_lingo->push(getFileNameFromModal(false, Common::String(), "txt"));
+	g_lingo->push(getFileNameFromModal(false, Common::String(), Common::String(), "txt"));
 }
 
 void FileIO::m_displaySave(int nargs) {
-	g_lingo->push(getFileNameFromModal(true, Common::String(), "txt"));
+	Datum defaultFileName = g_lingo->pop();
+	Datum title = g_lingo->pop();
+	g_lingo->push(getFileNameFromModal(true, Common::String(), title.asString(), "txt"));
 }
 
 XOBJSTUB(FileIO::m_setFilterMask, 0)
diff --git a/engines/director/lingo/xlibs/mmovie.cpp b/engines/director/lingo/xlibs/mmovie.cpp
index c06584cfe68..b008cb7e6b3 100644
--- a/engines/director/lingo/xlibs/mmovie.cpp
+++ b/engines/director/lingo/xlibs/mmovie.cpp
@@ -585,7 +585,7 @@ void MMovieXObj::m_readFile(int nargs) {
 	Common::String prefix = savePrefix();
 	Common::String result;
 	if (origPath.empty()) {
-		path = getFileNameFromModal(false, Common::String(), "txt");
+		path = getFileNameFromModal(false, Common::String(), Common::String(), "txt");
 		if (path.empty()) {
 			debugC(5, kDebugXObj, "MMovieXObj::m_readFile(): read cancelled by modal");
 			g_lingo->push(result);
@@ -646,7 +646,7 @@ void MMovieXObj::m_writeFile(int nargs) {
 
 	Common::String prefix = savePrefix();
 	if (origPath.empty()) {
-		path = getFileNameFromModal(true, Common::String(), "txt");
+		path = getFileNameFromModal(true, Common::String(), Common::String(), "txt");
 		if (path.empty()) {
 			debugC(5, kDebugXObj, "MMovieXObj::m_writeFile(): read cancelled by modal");
 			g_lingo->push(result);
diff --git a/engines/director/util.cpp b/engines/director/util.cpp
index f444a0a005d..f91eaa8ccad 100644
--- a/engines/director/util.cpp
+++ b/engines/director/util.cpp
@@ -974,14 +974,14 @@ Common::Path findAudioPath(const Common::String &path, bool currentFolder, bool
 	return result;
 }
 
-Common::String getFileNameFromModal(bool save, const Common::String &suggested, const char *ext) {
+Common::String getFileNameFromModal(bool save, const Common::String &suggested, const Common::String &title, const char *ext) {
 	Common::String prefix = savePrefix();
 	Common::String mask = prefix + "*";
 	if (ext) {
 		mask += ".";
 		mask += ext;
 	}
-	GUI::FileBrowserDialog browser(nullptr, "txt", save ? GUI::kFBModeSave : GUI::kFBModeLoad, mask.c_str(), suggested.c_str());
+	GUI::FileBrowserDialog browser(title.c_str(), "txt", save ? GUI::kFBModeSave : GUI::kFBModeLoad, mask.c_str(), suggested.c_str());
 	if (browser.runModal() <= 0) {
 		return Common::String();
 	}
diff --git a/engines/director/util.h b/engines/director/util.h
index 5e962bde558..9be0e4ad06d 100644
--- a/engines/director/util.h
+++ b/engines/director/util.h
@@ -54,7 +54,7 @@ Common::Path findMoviePath(const Common::String &path, bool currentFolder = true
 Common::Path findXLibPath(const Common::String &path, bool currentFolder = true, bool searchPaths = true);
 Common::Path findAudioPath(const Common::String &path, bool currentFolder = true, bool searchPaths = true);
 
-Common::String getFileNameFromModal(bool save, const Common::String &suggested, const char *ext = "txt");
+Common::String getFileNameFromModal(bool save, const Common::String &suggested, const Common::String &title, const char *ext = "txt");
 Common::String savePrefix();
 
 bool hasExtension(Common::String filename);




More information about the Scummvm-git-logs mailing list