GUI: de-duplicate file dialog filters
untested. may not work...
This commit is contained in:
		
							parent
							
								
									c21f880e3e
								
							
						
					
					
						commit
						1c171ed7bd
					
				|  | @ -76,7 +76,38 @@ void _nfdThread(const NFDState state, std::atomic<bool>* ok, std::vector<String> | ||||||
| } | } | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| bool FurnaceGUIFileDialog::openLoad(String header, std::vector<String> filter, const char* noSysFilter, String path, double dpiScale, FileDialogSelectCallback clickCallback, bool allowMultiple) { | void FurnaceGUIFileDialog::convertFilterList(std::vector<String>& filter) { | ||||||
|  |   memset(noSysFilter,0,4096); | ||||||
|  | 
 | ||||||
|  |   String result; | ||||||
|  | 
 | ||||||
|  |   for (size_t i=0; (i+1)<filter.size(); i+=2) { | ||||||
|  |     String label=filter[i]; | ||||||
|  |     String ext; | ||||||
|  | 
 | ||||||
|  |     if (filter[i+1]=="*") { | ||||||
|  |       ext=".*"; | ||||||
|  |     } else for (char i: filter[i+1]) { | ||||||
|  |       switch (i) { | ||||||
|  |         case '*': | ||||||
|  |           break; | ||||||
|  |         case ' ': | ||||||
|  |           ext+=','; | ||||||
|  |           break; | ||||||
|  |         default: | ||||||
|  |           ext+=i; | ||||||
|  |           break; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     if (!result.empty()) result+=','; | ||||||
|  |     result+=fmt::sprintf("%s{%s}",label,ext); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   strncpy(noSysFilter,result.c_str(),4095); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | bool FurnaceGUIFileDialog::openLoad(String header, std::vector<String> filter, String path, double dpiScale, FileDialogSelectCallback clickCallback, bool allowMultiple) { | ||||||
|   if (opened) return false; |   if (opened) return false; | ||||||
|   saving=false; |   saving=false; | ||||||
|   curPath=path; |   curPath=path; | ||||||
|  | @ -149,6 +180,8 @@ bool FurnaceGUIFileDialog::openLoad(String header, std::vector<String> filter, c | ||||||
|     } |     } | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
|  |     convertFilterList(filter); | ||||||
|  | 
 | ||||||
|     ImGuiFileDialog::Instance()->singleClickSel=mobileUI; |     ImGuiFileDialog::Instance()->singleClickSel=mobileUI; | ||||||
|     ImGuiFileDialog::Instance()->DpiScale=dpiScale; |     ImGuiFileDialog::Instance()->DpiScale=dpiScale; | ||||||
|     ImGuiFileDialog::Instance()->mobileMode=mobileUI; |     ImGuiFileDialog::Instance()->mobileMode=mobileUI; | ||||||
|  | @ -159,7 +192,7 @@ bool FurnaceGUIFileDialog::openLoad(String header, std::vector<String> filter, c | ||||||
|   return true; |   return true; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| bool FurnaceGUIFileDialog::openSave(String header, std::vector<String> filter, const char* noSysFilter, String path, double dpiScale) { | bool FurnaceGUIFileDialog::openSave(String header, std::vector<String> filter, String path, double dpiScale) { | ||||||
|   if (opened) return false; |   if (opened) return false; | ||||||
| 
 | 
 | ||||||
| #ifdef ANDROID | #ifdef ANDROID | ||||||
|  | @ -233,6 +266,8 @@ bool FurnaceGUIFileDialog::openSave(String header, std::vector<String> filter, c | ||||||
|   } else { |   } else { | ||||||
|     hasError=false; |     hasError=false; | ||||||
| 
 | 
 | ||||||
|  |     convertFilterList(filter); | ||||||
|  | 
 | ||||||
|     ImGuiFileDialog::Instance()->singleClickSel=false; |     ImGuiFileDialog::Instance()->singleClickSel=false; | ||||||
|     ImGuiFileDialog::Instance()->DpiScale=dpiScale; |     ImGuiFileDialog::Instance()->DpiScale=dpiScale; | ||||||
|     ImGuiFileDialog::Instance()->mobileMode=mobileUI; |     ImGuiFileDialog::Instance()->mobileMode=mobileUI; | ||||||
|  |  | ||||||
|  | @ -31,6 +31,7 @@ class FurnaceGUIFileDialog { | ||||||
|   bool opened; |   bool opened; | ||||||
|   bool saving; |   bool saving; | ||||||
|   bool hasError; |   bool hasError; | ||||||
|  |   char noSysFilter[4096]; | ||||||
|   String curPath; |   String curPath; | ||||||
|   std::vector<String> fileName; |   std::vector<String> fileName; | ||||||
| #ifdef USE_NFD | #ifdef USE_NFD | ||||||
|  | @ -46,10 +47,12 @@ class FurnaceGUIFileDialog { | ||||||
|   pfd::open_file* dialogO; |   pfd::open_file* dialogO; | ||||||
|   pfd::save_file* dialogS; |   pfd::save_file* dialogS; | ||||||
| #endif | #endif | ||||||
|  | 
 | ||||||
|  |   void convertFilterList(std::vector<String>& filter); | ||||||
|   public: |   public: | ||||||
|     bool mobileUI; |     bool mobileUI; | ||||||
|     bool openLoad(String header, std::vector<String> filter, const char* noSysFilter, String path, double dpiScale, FileDialogSelectCallback clickCallback=NULL, bool allowMultiple=false); |     bool openLoad(String header, std::vector<String> filter, String path, double dpiScale, FileDialogSelectCallback clickCallback=NULL, bool allowMultiple=false); | ||||||
|     bool openSave(String header, std::vector<String> filter, const char* noSysFilter, String path, double dpiScale); |     bool openSave(String header, std::vector<String> filter, String path, double dpiScale); | ||||||
|     bool accepted(); |     bool accepted(); | ||||||
|     void close(); |     void close(); | ||||||
|     bool render(const ImVec2& min, const ImVec2& max); |     bool render(const ImVec2& min, const ImVec2& max); | ||||||
|  |  | ||||||
|  | @ -1567,7 +1567,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|         "Open File", |         "Open File", | ||||||
|         {"compatible files", "*.fur *.dmf *.mod *.fc13 *.fc14 *.smod *.fc", |         {"compatible files", "*.fur *.dmf *.mod *.fc13 *.fc14 *.smod *.fc", | ||||||
|          "all files", "*"}, |          "all files", "*"}, | ||||||
|         "compatible files{.fur,.dmf,.mod,.fc13,.fc14,.smod,.fc},.*", |  | ||||||
|         workingDirSong, |         workingDirSong, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1580,7 +1579,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openLoad( |       hasOpened=fileDialog->openLoad( | ||||||
|         "Restore Backup", |         "Restore Backup", | ||||||
|         {"Furnace song", "*.fur"}, |         {"Furnace song", "*.fur"}, | ||||||
|         "Furnace song{.fur}", |  | ||||||
|         backupPath+String(DIR_SEPARATOR_STR), |         backupPath+String(DIR_SEPARATOR_STR), | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1590,7 +1588,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openSave( |       hasOpened=fileDialog->openSave( | ||||||
|         "Save File", |         "Save File", | ||||||
|         {"Furnace song", "*.fur"}, |         {"Furnace song", "*.fur"}, | ||||||
|         "Furnace song{.fur}", |  | ||||||
|         workingDirSong, |         workingDirSong, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1600,7 +1597,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openSave( |       hasOpened=fileDialog->openSave( | ||||||
|         "Save File", |         "Save File", | ||||||
|         {"DefleMask 1.1.3 module", "*.dmf"}, |         {"DefleMask 1.1.3 module", "*.dmf"}, | ||||||
|         "DefleMask 1.1.3 module{.dmf}", |  | ||||||
|         workingDirSong, |         workingDirSong, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1610,7 +1606,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openSave( |       hasOpened=fileDialog->openSave( | ||||||
|         "Save File", |         "Save File", | ||||||
|         {"DefleMask 1.0/legacy module", "*.dmf"}, |         {"DefleMask 1.0/legacy module", "*.dmf"}, | ||||||
|         "DefleMask 1.0/legacy module{.dmf}", |  | ||||||
|         workingDirSong, |         workingDirSong, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1627,8 +1622,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       if (!dirExists(workingDirIns)) workingDirIns=getHomeDir(); |       if (!dirExists(workingDirIns)) workingDirIns=getHomeDir(); | ||||||
|       hasOpened=fileDialog->openLoad( |       hasOpened=fileDialog->openLoad( | ||||||
|         "Load Instrument", |         "Load Instrument", | ||||||
|         // TODO supply loadable formats in a dynamic, scalable, "DRY" way.
 |  | ||||||
|         // thank the author of IGFD for making things impossible
 |  | ||||||
|         {"all compatible files", "*.fui *.dmp *.tfi *.vgi *.s3i *.sbi *.opli *.opni *.y12 *.bnk *.ff *.gyb *.opm *.wopl *.wopn", |         {"all compatible files", "*.fui *.dmp *.tfi *.vgi *.s3i *.sbi *.opli *.opni *.y12 *.bnk *.ff *.gyb *.opm *.wopl *.wopn", | ||||||
|          "Furnace instrument", "*.fui", |          "Furnace instrument", "*.fui", | ||||||
|          "DefleMask preset", "*.dmp", |          "DefleMask preset", "*.dmp", | ||||||
|  | @ -1646,7 +1639,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|          "Wohlstand WOPL bank", "*.wopl", |          "Wohlstand WOPL bank", "*.wopl", | ||||||
|          "Wohlstand WOPN bank", "*.wopn", |          "Wohlstand WOPN bank", "*.wopn", | ||||||
|          "all files", "*"}, |          "all files", "*"}, | ||||||
|         "all compatible files{.fui,.dmp,.tfi,.vgi,.s3i,.sbi,.opli,.opni,.y12,.bnk,.ff,.gyb,.opm,.wopl,.wopn},.*", |  | ||||||
|         workingDirIns, |         workingDirIns, | ||||||
|         dpiScale, |         dpiScale, | ||||||
|         [this](const char* path) { |         [this](const char* path) { | ||||||
|  | @ -1681,7 +1673,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openSave( |       hasOpened=fileDialog->openSave( | ||||||
|         "Save Instrument", |         "Save Instrument", | ||||||
|         {"Furnace instrument", "*.fui"}, |         {"Furnace instrument", "*.fui"}, | ||||||
|         "Furnace instrument{.fui}", |  | ||||||
|         workingDirIns, |         workingDirIns, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1691,7 +1682,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openSave( |       hasOpened=fileDialog->openSave( | ||||||
|         "Save Instrument", |         "Save Instrument", | ||||||
|         {"DefleMask preset", "*.dmp"}, |         {"DefleMask preset", "*.dmp"}, | ||||||
|         "DefleMask preset{.dmp}", |  | ||||||
|         workingDirIns, |         workingDirIns, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1703,7 +1693,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|         "Load Wavetable", |         "Load Wavetable", | ||||||
|         {"compatible files", "*.fuw *.dmw", |         {"compatible files", "*.fuw *.dmw", | ||||||
|          "all files", "*"}, |          "all files", "*"}, | ||||||
|         "compatible files{.fuw,.dmw},.*", |  | ||||||
|         workingDirWave, |         workingDirWave, | ||||||
|         dpiScale, |         dpiScale, | ||||||
|         NULL, // TODO
 |         NULL, // TODO
 | ||||||
|  | @ -1715,7 +1704,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openSave( |       hasOpened=fileDialog->openSave( | ||||||
|         "Save Wavetable", |         "Save Wavetable", | ||||||
|         {"Furnace wavetable", ".fuw"}, |         {"Furnace wavetable", ".fuw"}, | ||||||
|         "Furnace wavetable{.fuw}", |  | ||||||
|         workingDirWave, |         workingDirWave, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1725,7 +1713,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openSave( |       hasOpened=fileDialog->openSave( | ||||||
|         "Save Wavetable", |         "Save Wavetable", | ||||||
|         {"DefleMask wavetable", ".dmw"}, |         {"DefleMask wavetable", ".dmw"}, | ||||||
|         "DefleMask wavetable{.dmw}", |  | ||||||
|         workingDirWave, |         workingDirWave, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1735,7 +1722,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openSave( |       hasOpened=fileDialog->openSave( | ||||||
|         "Save Wavetable", |         "Save Wavetable", | ||||||
|         {"raw data", ".raw"}, |         {"raw data", ".raw"}, | ||||||
|         "raw data{.raw}", |  | ||||||
|         workingDirWave, |         workingDirWave, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1747,7 +1733,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|         "Load Sample", |         "Load Sample", | ||||||
|         {"compatible files", "*.wav *.dmc *.brr", |         {"compatible files", "*.wav *.dmc *.brr", | ||||||
|          "all files", "*"}, |          "all files", "*"}, | ||||||
|         "compatible files{.wav,.dmc,.brr},.*", |  | ||||||
|         workingDirSample, |         workingDirSample, | ||||||
|         dpiScale, |         dpiScale, | ||||||
|         NULL, // TODO
 |         NULL, // TODO
 | ||||||
|  | @ -1760,7 +1745,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openLoad( |       hasOpened=fileDialog->openLoad( | ||||||
|         "Load Raw Sample", |         "Load Raw Sample", | ||||||
|         {"all files", "*"}, |         {"all files", "*"}, | ||||||
|         ".*", |  | ||||||
|         workingDirSample, |         workingDirSample, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1770,7 +1754,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openSave( |       hasOpened=fileDialog->openSave( | ||||||
|         "Save Sample", |         "Save Sample", | ||||||
|         {"Wave file", "*.wav"}, |         {"Wave file", "*.wav"}, | ||||||
|         "Wave file{.wav}", |  | ||||||
|         workingDirSample, |         workingDirSample, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1778,9 +1761,8 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|     case GUI_FILE_SAMPLE_SAVE_RAW: |     case GUI_FILE_SAMPLE_SAVE_RAW: | ||||||
|       if (!dirExists(workingDirSample)) workingDirSample=getHomeDir(); |       if (!dirExists(workingDirSample)) workingDirSample=getHomeDir(); | ||||||
|       hasOpened=fileDialog->openSave( |       hasOpened=fileDialog->openSave( | ||||||
|         "Load Raw Sample", |         "Save Raw Sample", | ||||||
|         {"all files", "*"}, |         {"all files", "*"}, | ||||||
|         ".*", |  | ||||||
|         workingDirSample, |         workingDirSample, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1790,7 +1772,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openSave( |       hasOpened=fileDialog->openSave( | ||||||
|         "Export Audio", |         "Export Audio", | ||||||
|         {"Wave file", "*.wav"}, |         {"Wave file", "*.wav"}, | ||||||
|         "Wave file{.wav}", |  | ||||||
|         workingDirAudioExport, |         workingDirAudioExport, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1800,7 +1781,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openSave( |       hasOpened=fileDialog->openSave( | ||||||
|         "Export Audio", |         "Export Audio", | ||||||
|         {"Wave file", "*.wav"}, |         {"Wave file", "*.wav"}, | ||||||
|         "Wave file{.wav}", |  | ||||||
|         workingDirAudioExport, |         workingDirAudioExport, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1810,7 +1790,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openSave( |       hasOpened=fileDialog->openSave( | ||||||
|         "Export Audio", |         "Export Audio", | ||||||
|         {"Wave file", "*.wav"}, |         {"Wave file", "*.wav"}, | ||||||
|         "Wave file{.wav}", |  | ||||||
|         workingDirAudioExport, |         workingDirAudioExport, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1820,7 +1799,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openSave( |       hasOpened=fileDialog->openSave( | ||||||
|         "Export VGM", |         "Export VGM", | ||||||
|         {"VGM file", "*.vgm"}, |         {"VGM file", "*.vgm"}, | ||||||
|         "VGM file{.vgm}", |  | ||||||
|         workingDirVGMExport, |         workingDirVGMExport, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1830,7 +1808,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openSave( |       hasOpened=fileDialog->openSave( | ||||||
|         "Export ZSM", |         "Export ZSM", | ||||||
|         {"ZSM file", "*.zsm"}, |         {"ZSM file", "*.zsm"}, | ||||||
|         "ZSM file{.zsm}", |  | ||||||
|         workingDirZSMExport, |         workingDirZSMExport, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1840,7 +1817,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openSave( |       hasOpened=fileDialog->openSave( | ||||||
|         "Export Command Stream", |         "Export Command Stream", | ||||||
|         {"text file", "*.txt"}, |         {"text file", "*.txt"}, | ||||||
|         "text file{.txt}", |  | ||||||
|         workingDirROMExport, |         workingDirROMExport, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1850,7 +1826,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openSave( |       hasOpened=fileDialog->openSave( | ||||||
|         "Export Command Stream", |         "Export Command Stream", | ||||||
|         {"binary file", "*.bin"}, |         {"binary file", "*.bin"}, | ||||||
|         "binary file{.bin}", |  | ||||||
|         workingDirROMExport, |         workingDirROMExport, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1863,7 +1838,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openLoad( |       hasOpened=fileDialog->openLoad( | ||||||
|         "Select Font", |         "Select Font", | ||||||
|         {"compatible files", "*.ttf *.otf *.ttc"}, |         {"compatible files", "*.ttf *.otf *.ttc"}, | ||||||
|         "compatible files{.ttf,.otf,.ttc}", |  | ||||||
|         workingDirFont, |         workingDirFont, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1873,7 +1847,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openLoad( |       hasOpened=fileDialog->openLoad( | ||||||
|         "Select Font", |         "Select Font", | ||||||
|         {"compatible files", "*.ttf *.otf *.ttc"}, |         {"compatible files", "*.ttf *.otf *.ttc"}, | ||||||
|         "compatible files{.ttf,.otf,.ttc}", |  | ||||||
|         workingDirFont, |         workingDirFont, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1883,7 +1856,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openLoad( |       hasOpened=fileDialog->openLoad( | ||||||
|         "Select Font", |         "Select Font", | ||||||
|         {"compatible files", "*.ttf *.otf *.ttc"}, |         {"compatible files", "*.ttf *.otf *.ttc"}, | ||||||
|         "compatible files{.ttf,.otf,.ttc}", |  | ||||||
|         workingDirFont, |         workingDirFont, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1893,7 +1865,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openLoad( |       hasOpened=fileDialog->openLoad( | ||||||
|         "Select Color File", |         "Select Color File", | ||||||
|         {"configuration files", "*.cfgc"}, |         {"configuration files", "*.cfgc"}, | ||||||
|         "configuration files{.cfgc}", |  | ||||||
|         workingDirColors, |         workingDirColors, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1903,7 +1874,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openLoad( |       hasOpened=fileDialog->openLoad( | ||||||
|         "Select Keybind File", |         "Select Keybind File", | ||||||
|         {"configuration files", "*.cfgk"}, |         {"configuration files", "*.cfgk"}, | ||||||
|         "configuration files{.cfgk}", |  | ||||||
|         workingDirKeybinds, |         workingDirKeybinds, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1913,7 +1883,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openLoad( |       hasOpened=fileDialog->openLoad( | ||||||
|         "Select Layout File", |         "Select Layout File", | ||||||
|         {".ini files", "*.ini"}, |         {".ini files", "*.ini"}, | ||||||
|         ".ini files{.ini}", |  | ||||||
|         workingDirKeybinds, |         workingDirKeybinds, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1923,7 +1892,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openSave( |       hasOpened=fileDialog->openSave( | ||||||
|         "Export Colors", |         "Export Colors", | ||||||
|         {"configuration files", "*.cfgc"}, |         {"configuration files", "*.cfgc"}, | ||||||
|         "configuration files{.cfgc}", |  | ||||||
|         workingDirColors, |         workingDirColors, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1933,7 +1901,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openSave( |       hasOpened=fileDialog->openSave( | ||||||
|         "Export Keybinds", |         "Export Keybinds", | ||||||
|         {"configuration files", "*.cfgk"}, |         {"configuration files", "*.cfgk"}, | ||||||
|         "configuration files{.cfgk}", |  | ||||||
|         workingDirKeybinds, |         workingDirKeybinds, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1943,7 +1910,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|       hasOpened=fileDialog->openSave( |       hasOpened=fileDialog->openSave( | ||||||
|         "Export Layout", |         "Export Layout", | ||||||
|         {".ini files", "*.ini"}, |         {".ini files", "*.ini"}, | ||||||
|         ".ini files{.ini}", |  | ||||||
|         workingDirKeybinds, |         workingDirKeybinds, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1956,7 +1922,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|         "Load ROM", |         "Load ROM", | ||||||
|         {"compatible files", "*.rom *.bin", |         {"compatible files", "*.rom *.bin", | ||||||
|          "all files", "*"}, |          "all files", "*"}, | ||||||
|         "compatible files{.rom,.bin},.*", |  | ||||||
|         workingDirROM, |         workingDirROM, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1967,7 +1932,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|         "Play Command Stream", |         "Play Command Stream", | ||||||
|         {"command stream", "*.bin", |         {"command stream", "*.bin", | ||||||
|          "all files", "*"}, |          "all files", "*"}, | ||||||
|         "command stream{.bin},.*", |  | ||||||
|         workingDirROM, |         workingDirROM, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  | @ -1979,7 +1943,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|         {"compatible files", "*.fur *.dmf *.mod", |         {"compatible files", "*.fur *.dmf *.mod", | ||||||
|          "another option", "*.wav *.ttf", |          "another option", "*.wav *.ttf", | ||||||
|          "all files", "*"}, |          "all files", "*"}, | ||||||
|         "compatible files{.fur,.dmf,.mod},another option{.wav,.ttf},.*", |  | ||||||
|         workingDirTest, |         workingDirTest, | ||||||
|         dpiScale, |         dpiScale, | ||||||
|         [](const char* path) { |         [](const char* path) { | ||||||
|  | @ -1998,7 +1961,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|         {"compatible files", "*.fur *.dmf *.mod", |         {"compatible files", "*.fur *.dmf *.mod", | ||||||
|          "another option", "*.wav *.ttf", |          "another option", "*.wav *.ttf", | ||||||
|          "all files", "*"}, |          "all files", "*"}, | ||||||
|         "compatible files{.fur,.dmf,.mod},another option{.wav,.ttf},.*", |  | ||||||
|         workingDirTest, |         workingDirTest, | ||||||
|         dpiScale, |         dpiScale, | ||||||
|         [](const char* path) { |         [](const char* path) { | ||||||
|  | @ -2017,7 +1979,6 @@ void FurnaceGUI::openFileDialog(FurnaceGUIFileDialogs type) { | ||||||
|         "Save Test", |         "Save Test", | ||||||
|         {"Furnace song", "*.fur", |         {"Furnace song", "*.fur", | ||||||
|          "DefleMask module", "*.dmf"}, |          "DefleMask module", "*.dmf"}, | ||||||
|         "Furnace song{.fur},DefleMask module{.dmf}", |  | ||||||
|         workingDirTest, |         workingDirTest, | ||||||
|         dpiScale |         dpiScale | ||||||
|       ); |       ); | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 tildearrow
						tildearrow