@@ -790,7 +790,10 @@ void SeqEditor::buttonClicked (juce::Button* buttonThatWasClicked)
790790 // TODO default files
791791 File f = File::getSpecialLocation (File::userHomeDirectory); // TODO SEQ64::readFolderProperty("midiimportfolder");
792792 FileChooser box (" Select a MIDI to load..." , f, " *.mid;*.midi;*.rmi" , true );
793- if (!box.browseForFileToOpen ()) return ;
793+ File oldwd = File::getCurrentWorkingDirectory ();
794+ bool hitokay = box.browseForFileToOpen ();
795+ oldwd.setAsCurrentWorkingDirectory ();
796+ if (!hitokay) return ;
794797 f = box.getResult ();
795798 if (!f.existsAsFile ()){
796799 std::cout << " File " << f.getFullPathName () << " does not exist!" ;
@@ -814,7 +817,10 @@ void SeqEditor::buttonClicked (juce::Button* buttonThatWasClicked)
814817
815818 File savelocation = File::getSpecialLocation (File::userHomeDirectory); // SEQ64::readFolderProperty("midifolder");
816819 FileChooser box (" Save MIDI" , savelocation, " *.mid" , true );
817- if (!box.browseForFileToSave (true )) return ;
820+ File oldwd = File::getCurrentWorkingDirectory ();
821+ bool hitokay = box.browseForFileToSave (true );
822+ oldwd.setAsCurrentWorkingDirectory ();
823+ if (!hitokay) return ;
818824 savelocation = box.getResult ();
819825 startSeqOperation (" MIDI export" , &SeqFile::exportMIDI, savelocation, midiopts);
820826 // [/UserButtonCode_btnExportMIDI]
@@ -827,7 +833,10 @@ void SeqEditor::buttonClicked (juce::Button* buttonThatWasClicked)
827833 if (!checkSeqPresence (false )) return ;
828834 File f = File::getSpecialLocation (File::userHomeDirectory); // TODO SEQ64::readFolderProperty("romfolder");
829835 FileChooser box (" Load .mus" , f, " *.mus" , true );
830- if (!box.browseForFileToOpen ()) return ;
836+ File oldwd = File::getCurrentWorkingDirectory ();
837+ bool hitokay = box.browseForFileToOpen ();
838+ oldwd.setAsCurrentWorkingDirectory ();
839+ if (!hitokay) return ;
831840 f = box.getResult ();
832841 seq.reset (new SeqFile (abi));
833842 startSeqOperation (" .mus import" , &SeqFile::importMus, f);
@@ -839,7 +848,10 @@ void SeqEditor::buttonClicked (juce::Button* buttonThatWasClicked)
839848 if (!checkSeqPresence (true )) return ;
840849 File savelocation = File::getSpecialLocation (File::userHomeDirectory); // SEQ64::readFolderProperty("comfolder");
841850 FileChooser box (" Save .mus" , savelocation, " *.mus" , true );
842- if (!box.browseForFileToSave (true )) return ;
851+ File oldwd = File::getCurrentWorkingDirectory ();
852+ bool hitokay = box.browseForFileToSave (true );
853+ oldwd.setAsCurrentWorkingDirectory ();
854+ if (!hitokay) return ;
843855 savelocation = box.getResult ();
844856 int dialect = optMusCommunity->getToggleState () ? 0 : optMusCanon->getToggleState () ? 2 : 4 ;
845857 dialect |= optStyleSFX->getToggleState () ? 1 : 0 ;
@@ -854,7 +866,10 @@ void SeqEditor::buttonClicked (juce::Button* buttonThatWasClicked)
854866 if (!checkSeqPresence (false )) return ;
855867 File f = File::getSpecialLocation (File::userHomeDirectory); // TODO SEQ64::readFolderProperty("romfolder");
856868 FileChooser box (" Load .com/.aseq" , f, " *.com;*.aseq;*.seq;*.m64;*.bin;*.seq" , true );
857- if (!box.browseForFileToOpen ()) return ;
869+ File oldwd = File::getCurrentWorkingDirectory ();
870+ bool hitokay = box.browseForFileToOpen ();
871+ oldwd.setAsCurrentWorkingDirectory ();
872+ if (!hitokay) return ;
858873 f = box.getResult ();
859874 seq.reset (new SeqFile (abi));
860875 startSeqOperation (" .com/.aseq import" , &SeqFile::importCom, f);
@@ -866,7 +881,10 @@ void SeqEditor::buttonClicked (juce::Button* buttonThatWasClicked)
866881 if (!checkSeqPresence (true )) return ;
867882 File savelocation = File::getSpecialLocation (File::userHomeDirectory); // SEQ64::readFolderProperty("comfolder");
868883 FileChooser box (" Save .com/.aseq" , savelocation, " *.com;*.aseq;*.seq;*.m64;*.bin;*.seq" , true );
869- if (!box.browseForFileToSave (true )) return ;
884+ File oldwd = File::getCurrentWorkingDirectory ();
885+ bool hitokay = box.browseForFileToSave (true );
886+ oldwd.setAsCurrentWorkingDirectory ();
887+ if (!hitokay) return ;
870888 savelocation = box.getResult ();
871889 startSeqOperation (" .com/.aseq export" , &SeqFile::exportCom, savelocation);
872890 // [/UserButtonCode_btnExportCom]
@@ -957,7 +975,9 @@ void SeqEditor::timerCallback(){
957975}
958976
959977ValueTree SeqEditor::getABI (){
960- ValueTree abi = SeqFile::loadABI (lstABI->get (lstABI->getLastRowSelected ()));
978+ int row = lstABI->getLastRowSelected ();
979+ String abistr = lstABI->get (row);
980+ ValueTree abi = SeqFile::loadABI (abistr);
961981 if (!abi.isValid ()){
962982 NativeMessageBox::showMessageBox (AlertWindow::WarningIcon, " seq64" ,
963983 " Invalid ABI selected!" );
0 commit comments