GUI: auto-fill on save

This commit is contained in:
tildearrow 2024-05-24 04:45:08 -05:00
parent 71a9355a9e
commit d7c9bd5620

View file

@ -1642,6 +1642,18 @@ bool dirExists(String s) {
void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) {
bool hasOpened=false; bool hasOpened=false;
String shortName;
size_t shortNamePos=curFileName.rfind(DIR_SEPARATOR);
if (shortNamePos!=String::npos && (shortNamePos+1)<curFileName.size()) {
shortName=curFileName.substr(shortNamePos+1);
// remove extension
shortNamePos=shortName.rfind('.');
if (shortNamePos!=String::npos) {
shortName=shortName.substr(0,shortNamePos);
}
}
switch (type) { switch (type) {
case GUI_FILE_OPEN: case GUI_FILE_OPEN:
if (!dirExists(workingDirSong)) workingDirSong=getHomeDir(); if (!dirExists(workingDirSong)) workingDirSong=getHomeDir();
@ -1680,7 +1692,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) {
"Export DMF", "Export DMF",
{"DefleMask 1.1.3 module", "*.dmf"}, {"DefleMask 1.1.3 module", "*.dmf"},
workingDirSong, workingDirSong,
dpiScale dpiScale,
(settings.autoFillSave)?shortName:""
); );
break; break;
case GUI_FILE_SAVE_DMF_LEGACY: case GUI_FILE_SAVE_DMF_LEGACY:
@ -1689,7 +1702,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) {
"Export DMF", "Export DMF",
{"DefleMask 1.0/legacy module", "*.dmf"}, {"DefleMask 1.0/legacy module", "*.dmf"},
workingDirSong, workingDirSong,
dpiScale dpiScale,
(settings.autoFillSave)?shortName:""
); );
break; break;
case GUI_FILE_INS_OPEN: case GUI_FILE_INS_OPEN:
@ -1766,7 +1780,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) {
"Save Instrument", "Save Instrument",
{"DefleMask preset", "*.dmp"}, {"DefleMask preset", "*.dmp"},
workingDirIns, workingDirIns,
dpiScale dpiScale,
(settings.autoFillSave)?e->getIns(curIns)->name:""
); );
break; break;
case GUI_FILE_WAVE_OPEN: case GUI_FILE_WAVE_OPEN:
@ -1838,7 +1853,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) {
"Save Sample", "Save Sample",
{"Wave file", "*.wav"}, {"Wave file", "*.wav"},
workingDirSample, workingDirSample,
dpiScale dpiScale,
(settings.autoFillSave)?e->getSample(curSample)->name:""
); );
break; break;
case GUI_FILE_SAMPLE_SAVE_RAW: case GUI_FILE_SAMPLE_SAVE_RAW:
@ -1847,7 +1863,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) {
"Save Raw Sample", "Save Raw Sample",
{"all files", "*"}, {"all files", "*"},
workingDirSample, workingDirSample,
dpiScale dpiScale,
(settings.autoFillSave)?e->getSample(curSample)->name:""
); );
break; break;
case GUI_FILE_EXPORT_AUDIO_ONE: case GUI_FILE_EXPORT_AUDIO_ONE:
@ -1856,7 +1873,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) {
"Export Audio", "Export Audio",
{"Wave file", "*.wav"}, {"Wave file", "*.wav"},
workingDirAudioExport, workingDirAudioExport,
dpiScale dpiScale,
(settings.autoFillSave)?shortName:""
); );
break; break;
case GUI_FILE_EXPORT_AUDIO_PER_SYS: case GUI_FILE_EXPORT_AUDIO_PER_SYS:
@ -1865,7 +1883,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) {
"Export Audio", "Export Audio",
{"Wave file", "*.wav"}, {"Wave file", "*.wav"},
workingDirAudioExport, workingDirAudioExport,
dpiScale dpiScale,
(settings.autoFillSave)?shortName:""
); );
break; break;
case GUI_FILE_EXPORT_AUDIO_PER_CHANNEL: case GUI_FILE_EXPORT_AUDIO_PER_CHANNEL:
@ -1874,7 +1893,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) {
"Export Audio", "Export Audio",
{"Wave file", "*.wav"}, {"Wave file", "*.wav"},
workingDirAudioExport, workingDirAudioExport,
dpiScale dpiScale,
(settings.autoFillSave)?shortName:""
); );
break; break;
case GUI_FILE_EXPORT_VGM: case GUI_FILE_EXPORT_VGM:
@ -1883,7 +1903,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) {
"Export VGM", "Export VGM",
{"VGM file", "*.vgm"}, {"VGM file", "*.vgm"},
workingDirVGMExport, workingDirVGMExport,
dpiScale dpiScale,
(settings.autoFillSave)?shortName:""
); );
break; break;
case GUI_FILE_EXPORT_ZSM: case GUI_FILE_EXPORT_ZSM:
@ -1892,7 +1913,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) {
"Export ZSM", "Export ZSM",
{"ZSM file", "*.zsm"}, {"ZSM file", "*.zsm"},
workingDirZSMExport, workingDirZSMExport,
dpiScale dpiScale,
(settings.autoFillSave)?shortName:""
); );
break; break;
case GUI_FILE_EXPORT_TEXT: case GUI_FILE_EXPORT_TEXT:
@ -1901,7 +1923,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) {
"Export Command Stream", "Export Command Stream",
{"text file", "*.txt"}, {"text file", "*.txt"},
workingDirROMExport, workingDirROMExport,
dpiScale dpiScale,
(settings.autoFillSave)?shortName:""
); );
break; break;
case GUI_FILE_EXPORT_CMDSTREAM: case GUI_FILE_EXPORT_CMDSTREAM:
@ -1910,7 +1933,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) {
"Export Command Stream", "Export Command Stream",
{"binary file", "*.bin"}, {"binary file", "*.bin"},
workingDirROMExport, workingDirROMExport,
dpiScale dpiScale,
(settings.autoFillSave)?shortName:""
); );
break; break;
case GUI_FILE_EXPORT_ROM: case GUI_FILE_EXPORT_ROM: