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:
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)
{