@@ -864,7 +864,7 @@ void ControlPanel::stopRecording()
864864void ControlPanel::componentBeingDeleted (Component &component)
865865{
866866 /* Update filename fields as configured in the popup box upon exit. */
867- filenameConfigWindow = std::make_unique<FilenameConfigWindow>(filenameFields);
867+ filenameConfigWindow = std::make_unique<FilenameConfigWindow>(filenameFields);
868868 filenameText->setButtonText (generateFilenameFromFields (true ));
869869
870870 // TODO: Assumes any change in filename settings should start a new directory next recording
@@ -882,6 +882,9 @@ void ControlPanel::buttonClicked(Button* button)
882882 if (button == filenameText.get () && !getRecordingState ())
883883 {
884884
885+ filenameConfigWindow.reset ();
886+ filenameConfigWindow = std::make_unique<FilenameConfigWindow>(filenameFields);
887+
885888 CallOutBox& myBox
886889 = CallOutBox::launchAsynchronously (std::move (filenameConfigWindow),
887890 button->getScreenBounds (),
@@ -1195,7 +1198,10 @@ void ControlPanel::setRecordingDirectoryPrependText(String text)
11951198 {
11961199 if (field->value != text)
11971200 {
1198- if (!text.length ())
1201+
1202+ field->newDirectoryNeeded = true ;
1203+
1204+ if (text.length () == 0 )
11991205 field->state = FilenameFieldComponent::State::NONE;
12001206 else if (text == " auto" )
12011207 field->state = FilenameFieldComponent::State::AUTO;
@@ -1208,6 +1214,8 @@ void ControlPanel::setRecordingDirectoryPrependText(String text)
12081214 field->value = text;
12091215 }
12101216 createNewRecordingDirectory ();
1217+
1218+ generateFilenameFromFields (true );
12111219 }
12121220 }
12131221 }
@@ -1232,7 +1240,10 @@ void ControlPanel::setRecordingDirectoryAppendText(String text)
12321240 {
12331241 if (field->value != text)
12341242 {
1235- if (!text.length ())
1243+
1244+ field->newDirectoryNeeded = true ;
1245+
1246+ if (text.length () == 0 )
12361247 field->state = FilenameFieldComponent::State::NONE;
12371248 else if (text == " auto" )
12381249 field->state = FilenameFieldComponent::State::AUTO;
@@ -1245,6 +1256,8 @@ void ControlPanel::setRecordingDirectoryAppendText(String text)
12451256 field->value = text;
12461257 }
12471258 createNewRecordingDirectory ();
1259+
1260+ generateFilenameFromFields (true );
12481261 }
12491262 }
12501263 }
@@ -1269,8 +1282,14 @@ void ControlPanel::setRecordingDirectoryBaseText(String text)
12691282 {
12701283 if (field->value != text)
12711284 {
1272- if ( text == " auto" )
1285+
1286+ field->newDirectoryNeeded = true ;
1287+
1288+ if (text == " auto" )
1289+ {
12731290 field->state = FilenameFieldComponent::State::AUTO;
1291+ }
1292+
12741293 else if ( text.length () > 0 )
12751294 {
12761295 String errString = FilenameFieldComponent::validate (text);
@@ -1279,7 +1298,10 @@ void ControlPanel::setRecordingDirectoryBaseText(String text)
12791298 field->state = FilenameFieldComponent::State::CUSTOM;
12801299 field->value = text;
12811300 }
1301+
12821302 createNewRecordingDirectory ();
1303+
1304+ generateFilenameFromFields (true );
12831305 }
12841306 }
12851307 }
0 commit comments