GUI: no system file picker on Flatpak

portals bring too many issues to deal with
issue #2490
This commit is contained in:
tildearrow 2025-04-30 15:17:07 -05:00
parent 0ea4310b22
commit 184b8efcc4
3 changed files with 18 additions and 6 deletions

View file

@ -825,11 +825,13 @@ void FurnaceGUI::drawSettings() {
// SUBSECTION FILE
CONFIG_SUBSECTION(_("File"));
#ifndef FLATPAK_WORKAROUNDS
bool sysFileDialogB=settings.sysFileDialog;
if (ImGui::Checkbox(_("Use system file picker"),&sysFileDialogB)) {
settings.sysFileDialog=sysFileDialogB;
settingsChanged=true;
}
#endif
if (ImGui::InputInt(_("Number of recent files"),&settings.maxRecentFile,1,5)) {
if (settings.maxRecentFile<0) settings.maxRecentFile=0;
@ -4874,7 +4876,9 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
settings.hiddenSystems=conf.getInt("hiddenSystems",0);
settings.mswEnabled=conf.getInt("mswEnabled",0);
settings.allowEditDocking=conf.getInt("allowEditDocking",1);
#ifndef FLATPAK_WORKAROUNDS
settings.sysFileDialog=conf.getInt("sysFileDialog",SYS_FILE_DIALOG_DEFAULT);
#endif
settings.displayAllInsTypes=conf.getInt("displayAllInsTypes",0);
settings.displayPartial=conf.getInt("displayPartial",0);
@ -5284,7 +5288,9 @@ void FurnaceGUI::readConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
clampSetting(settings.insFocusesPattern,0,1);
clampSetting(settings.stepOnInsert,0,1);
clampSetting(settings.unifiedDataView,0,1);
#ifndef FLATPAK_WORKAROUNDS
clampSetting(settings.sysFileDialog,0,1);
#endif
clampSetting(settings.roundedWindows,0,1);
clampSetting(settings.roundedButtons,0,1);
clampSetting(settings.roundedMenus,0,1);
@ -5470,7 +5476,9 @@ void FurnaceGUI::writeConfig(DivConfig& conf, FurnaceGUISettingGroups groups) {
conf.set("hiddenSystems",settings.hiddenSystems);
conf.set("mswEnabled",settings.mswEnabled);
conf.set("allowEditDocking",settings.allowEditDocking);
#ifndef FLATPAK_WORKAROUNDS
conf.set("sysFileDialog",settings.sysFileDialog);
#endif
conf.set("displayAllInsTypes",settings.displayAllInsTypes);
conf.set("displayPartial",settings.displayPartial);
@ -7207,7 +7215,11 @@ void FurnaceGUI::applyUISettings(bool updateFonts) {
if (updateFonts) {
if (fileDialog!=NULL) delete fileDialog;
#ifdef FLATPAK_WORKAROUNDS
fileDialog=new FurnaceGUIFileDialog(false);
#else
fileDialog=new FurnaceGUIFileDialog(settings.sysFileDialog);
#endif
fileDialog->mobileUI=mobileUI;
}