From 05decb6a055072a206a423411ed5564255d98d16 Mon Sep 17 00:00:00 2001 From: omigamedev Date: Sat, 6 Oct 2018 16:17:42 +0200 Subject: [PATCH] fix some ui glitch with NodeButton, start implementing working dir option --- PanoPainter-OSX/main.cpp | 20 ++++++++++++++++++++ PanoPainter-OSX/main.h | 1 + data/layout.xml | 25 +++++++++++++------------ src/app.cpp | 3 +++ src/app.h | 3 ++- src/app_events.cpp | 21 +++++++++++++++++++++ src/node_button.cpp | 3 ++- src/node_dialog_open.cpp | 13 +++++++++++-- src/node_dialog_open.h | 1 + 9 files changed, 74 insertions(+), 16 deletions(-) diff --git a/PanoPainter-OSX/main.cpp b/PanoPainter-OSX/main.cpp index 86e5f0f..89fd826 100644 --- a/PanoPainter-OSX/main.cpp +++ b/PanoPainter-OSX/main.cpp @@ -61,6 +61,26 @@ std::mutex task_mutex; } return ret; } +- (std::string)pick_dir +{ + NSOpenPanel *panel = [NSOpenPanel openPanel]; + [panel setCanChooseFiles:NO]; + [panel setCanChooseDirectories:YES]; + [panel setAllowsMultipleSelection:NO]; // yes if more than one dir is allowed + + NSInteger clicked = [panel runModal]; + + std::string ret; + if (clicked == NSFileHandlingPanelOKButton) + { + for (NSURL *url in [panel URLs]) + { + LOG("selected path: %s", [[url path] cStringUsingEncoding:NSUTF8StringEncoding]); + ret = [[url path] cStringUsingEncoding:NSUTF8StringEncoding]; + } + } + return ret; +} - (instancetype)initWithFrame:(NSRect)frameRect { gl_ready = false; diff --git a/PanoPainter-OSX/main.h b/PanoPainter-OSX/main.h index ab49287..6a2d0a2 100644 --- a/PanoPainter-OSX/main.h +++ b/PanoPainter-OSX/main.h @@ -23,4 +23,5 @@ - (void)async_unlock; - (void)async_swap; - (std::string)pick_file:(NSArray*)types; +- (std::string)pick_dir; @end diff --git a/data/layout.xml b/data/layout.xml index b109021..367b375 100644 --- a/data/layout.xml +++ b/data/layout.xml @@ -317,7 +317,7 @@