DPF

DISTRHO Plugin Framework
Log | Files | Refs | Submodules | README | LICENSE

commit 7e110bfe1765b6ffa129976087408225732009fd
parent 283e9c3dab4c2d85917c388d1edb27a00e86d0d2
Author: falkTX <falktx@falktx.com>
Date:   Wed,  8 Sep 2021 16:46:19 +0100

Try to map file browser flags

Diffstat:
Mdgl/src/WindowPrivateData.cpp | 28++++++++++++++++++++++++++--
Mdgl/src/pugl.cpp | 11++++++++---
Mdistrho/src/DistrhoPluginLV2.cpp | 2+-
3 files changed, 35 insertions(+), 6 deletions(-)

diff --git a/dgl/src/WindowPrivateData.cpp b/dgl/src/WindowPrivateData.cpp @@ -497,7 +497,19 @@ bool Window::PrivateData::openFileBrowser(const Window::FileBrowserOptions& opti # ifdef DISTRHO_OS_MAC uint flags = 0x0; - // TODO flags + if (options.buttons.listAllFiles == FileBrowserOptions::kButtonVisibleChecked) + flags |= 0x001; + else if (options.buttons.listAllFiles == FileBrowserOptions::kButtonVisibleUnchecked) + flags |= 0x002; + if (options.buttons.showHidden == FileBrowserOptions::kButtonVisibleChecked) + flags |= 0x010; + else if (options.buttons.showHidden == FileBrowserOptions::kButtonVisibleUnchecked) + flags |= 0x020; + if (options.buttons.showPlaces == FileBrowserOptions::kButtonVisibleChecked) + flags |= 0x100; + else if (options.buttons.showPlaces == FileBrowserOptions::kButtonVisibleUnchecked) + flags |= 0x200; + return puglMacOSFilePanelOpen(view, startDir, title, flags, openPanelCallback); # endif @@ -552,7 +564,19 @@ bool Window::PrivateData::openFileBrowser(const Window::FileBrowserOptions& opti # ifdef HAVE_X11 uint flags = 0x0; - // TODO flags + if (options.buttons.listAllFiles == FileBrowserOptions::kButtonVisibleChecked) + flags |= 0x001; + else if (options.buttons.listAllFiles == FileBrowserOptions::kButtonVisibleUnchecked) + flags |= 0x002; + if (options.buttons.showHidden == FileBrowserOptions::kButtonVisibleChecked) + flags |= 0x010; + else if (options.buttons.showHidden == FileBrowserOptions::kButtonVisibleUnchecked) + flags |= 0x020; + if (options.buttons.showPlaces == FileBrowserOptions::kButtonVisibleChecked) + flags |= 0x100; + else if (options.buttons.showPlaces == FileBrowserOptions::kButtonVisibleUnchecked) + flags |= 0x200; + return sofdFileDialogShow(view, startDir, title, flags, autoScaling ? autoScaleFactor : scaleFactor); # endif diff --git a/dgl/src/pugl.cpp b/dgl/src/pugl.cpp @@ -505,13 +505,18 @@ bool puglMacOSFilePanelOpen(PuglView* const view, NSOpenPanel* const panel = [NSOpenPanel openPanel]; - // TODO flags + [panel setAllowsMultipleSelection:NO]; [panel setCanChooseFiles:YES]; [panel setCanChooseDirectories:NO]; - [panel setAllowsMultipleSelection:NO]; - [panel setDirectoryURL:[NSURL fileURLWithPath:[NSString stringWithUTF8String:startDir]]]; + // TODO file filter using allowedContentTypes: [UTType] + + if (flags & 0x001) + [panel setAllowsOtherFileTypes:YES]; + if (flags & 0x010) + [panel setShowsHiddenFiles:YES]; + NSString* titleString = [[NSString alloc] initWithBytes:title length:strlen(title) diff --git a/distrho/src/DistrhoPluginLV2.cpp b/distrho/src/DistrhoPluginLV2.cpp @@ -84,10 +84,10 @@ public: fPortControls(nullptr), fLastControlValues(nullptr), fSampleRate(sampleRate), + fURIDs(uridMap), #if DISTRHO_PLUGIN_WANT_PARAMETER_VALUE_CHANGE_REQUEST fCtrlInPortChangeReq(ctrlInPortChangeReq), #endif - fURIDs(uridMap), fUridMap(uridMap), fWorker(worker) {