File tree Expand file tree Collapse file tree
OvEditor/src/OvEditor/Core
include/OvWindowing/Dialogs Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1081,6 +1081,7 @@ bool OvEditor::Core::EditorActions::ImportAsset(const std::string& p_initialDest
10811081
10821082 SaveFileDialog saveLocationDialog (" Where to import?" );
10831083 saveLocationDialog.SetInitialDirectory (p_initialDestinationDirectory);
1084+ saveLocationDialog.SetInitialFilename (filename);
10841085 saveLocationDialog.DefineExtension (extension, extension);
10851086 saveLocationDialog.Show ();
10861087
Original file line number Diff line number Diff line change @@ -74,6 +74,12 @@ namespace OvWindowing::Dialogs
7474 */
7575 void SetInitialDirectory (const std::string& p_initialDirectory);
7676
77+ /* *
78+ * Defines the initial filename pre-populated in the dialog
79+ * @param p_initialFilename
80+ */
81+ void SetInitialFilename (const std::string& p_initialFilename);
82+
7783 /* *
7884 * Show the file dialog
7985 * @param p_flags
@@ -112,6 +118,7 @@ namespace OvWindowing::Dialogs
112118 std::function<int (tagOFNA*)> m_callback;
113119 const std::string m_dialogTitle;
114120 std::string m_initialDirectory;
121+ std::string m_initialFilename;
115122 std::string m_filter;
116123 std::string m_error;
117124 std::string m_filename;
Original file line number Diff line number Diff line change @@ -30,6 +30,11 @@ void OvWindowing::Dialogs::FileDialog::SetInitialDirectory(const std::string & p
3030 m_initialDirectory = p_initialDirectory;
3131}
3232
33+ void OvWindowing::Dialogs::FileDialog::SetInitialFilename (const std::string& p_initialFilename)
34+ {
35+ m_initialFilename = p_initialFilename;
36+ }
37+
3338void OvWindowing::Dialogs::FileDialog::Show (EExplorerFlags p_flags)
3439{
3540#ifdef _WIN32
@@ -38,6 +43,9 @@ void OvWindowing::Dialogs::FileDialog::Show(EExplorerFlags p_flags)
3843 if (!m_initialDirectory.empty ())
3944 m_filepath = m_initialDirectory;
4045
46+ if (!m_initialFilename.empty ())
47+ m_filepath = (std::filesystem::path{ m_initialDirectory } / m_initialFilename).string ();
48+
4149 m_filepath.resize (MAX_PATH);
4250
4351 ZeroMemory (&ofn, sizeof (ofn));
@@ -72,11 +80,10 @@ void OvWindowing::Dialogs::FileDialog::Show(EExplorerFlags p_flags)
7280 if (m_isSaveDialog)
7381 command += " --save" ;
7482
75- if (!m_initialDirectory.empty ())
83+ if (!m_initialDirectory.empty () || !m_initialFilename. empty () )
7684 {
77- // Add trailing slash to indicate directory for zenity
78- command += " --filename=\" " + m_initialDirectory;
79- if (m_initialDirectory.back () != ' /' )
85+ command += " --filename=\" " + (std::filesystem::path{ m_initialDirectory } / m_initialFilename).string ();
86+ if (m_initialFilename.empty () && m_initialDirectory.back () != ' /' )
8087 command += " /" ;
8188 command += " \" " ;
8289 }
You can’t perform that action at this time.
0 commit comments