From e8a008684eff61d9b801b557bf61226127d17abc Mon Sep 17 00:00:00 2001 From: Ansariel Date: Sun, 4 Dec 2016 21:00:32 +0100 Subject: [PATCH] Add convenience methods for generic threaded filepickers --- indra/newview/lllocalbitmaps.cpp | 2 +- indra/newview/llviewermenufile.cpp | 10 +++++----- indra/newview/llviewermenufile.h | 18 ++++++++++++++++++ indra/newview/llviewerwindow.cpp | 2 +- 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/indra/newview/lllocalbitmaps.cpp b/indra/newview/lllocalbitmaps.cpp index f8e7a9e269..9ae750edc1 100644 --- a/indra/newview/lllocalbitmaps.cpp +++ b/indra/newview/lllocalbitmaps.cpp @@ -907,7 +907,7 @@ void LLLocalBitmapMgr::cleanupClass() void LLLocalBitmapMgr::addUnit() { - (new LLGenericLoadMultipleFilePicker(LLFilePicker::FFLOAD_IMAGE, boost::bind(&LLLocalBitmapMgr::filePickerCallback, _1)))->getFiles(); + LLGenericLoadMultipleFilePicker::open(LLFilePicker::FFLOAD_IMAGE, boost::bind(&LLLocalBitmapMgr::filePickerCallback, _1)); } void LLLocalBitmapMgr::filePickerCallback(std::list filenames) diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp index ed507bf8a6..040b409d0c 100644 --- a/indra/newview/llviewermenufile.cpp +++ b/indra/newview/llviewermenufile.cpp @@ -558,7 +558,7 @@ class LLFileUploadImage : public view_listener_t //{ // LLFloaterReg::showInstance("upload_image", LLSD(filename)); //} - (new LLGenericLoadFilePicker(LLFilePicker::FFLOAD_IMAGE, boost::bind(&show_floater_callback, "upload_image", _1, LLFilePicker::FFLOAD_IMAGE)))->getFile(); + LLGenericLoadFilePicker::open(LLFilePicker::FFLOAD_IMAGE, boost::bind(&show_floater_callback, "upload_image", _1, LLFilePicker::FFLOAD_IMAGE)); // return TRUE; } @@ -588,7 +588,7 @@ class LLFileUploadSound : public view_listener_t //{ // LLFloaterReg::showInstance("upload_sound", LLSD(filename)); //} - (new LLGenericLoadFilePicker(LLFilePicker::FFLOAD_WAV, boost::bind(&show_floater_callback, "upload_sound", _1, LLFilePicker::FFLOAD_WAV)))->getFile(); + LLGenericLoadFilePicker::open(LLFilePicker::FFLOAD_WAV, boost::bind(&show_floater_callback, "upload_sound", _1, LLFilePicker::FFLOAD_WAV)); // return true; } @@ -614,7 +614,7 @@ class LLFileUploadAnim : public view_listener_t // LLFloaterReg::showInstance("upload_anim_bvh", LLSD(filename)); // } //} - (new LLGenericLoadFilePicker(LLFilePicker::FFLOAD_ANIM, boost::bind(&show_floater_anim_callback,_1)))->getFile(); + LLGenericLoadFilePicker::open(LLFilePicker::FFLOAD_ANIM, boost::bind(&show_floater_anim_callback, _1)); // return true; } @@ -707,7 +707,7 @@ class LLFileUploadBulk : public view_listener_t // LL_INFOS() << "Couldn't import objects from file" << LL_ENDL; //} // - (new LLGenericLoadMultipleFilePicker(LLFilePicker::FFLOAD_ALL, boost::bind(&upload_bulk_callback, _1)))->getFiles(); + LLGenericLoadMultipleFilePicker::open(LLFilePicker::FFLOAD_ALL, boost::bind(&upload_bulk_callback, _1)); return true; } }; @@ -717,7 +717,7 @@ class FSFileImportLinkset : public view_listener_t { bool handleEvent(const LLSD& userdata) { - (new LLGenericLoadFilePicker(LLFilePicker::FFLOAD_IMPORT, boost::bind(&show_floater_callback, "fs_import", _1, LLFilePicker::FFLOAD_IMPORT)))->getFile(); + LLGenericLoadFilePicker::open(LLFilePicker::FFLOAD_IMPORT, boost::bind(&show_floater_callback, "fs_import", _1, LLFilePicker::FFLOAD_IMPORT)); return TRUE; } }; diff --git a/indra/newview/llviewermenufile.h b/indra/newview/llviewermenufile.h index e50fe77c9d..58bd5c1fdf 100644 --- a/indra/newview/llviewermenufile.h +++ b/indra/newview/llviewermenufile.h @@ -162,6 +162,12 @@ public: mSignal.connect(notify_slot); } virtual void notify(const std::string& filename); + + static void open(LLFilePicker::ELoadFilter filter, boost::function notify_slot) + { + (new LLGenericLoadFilePicker(filter, notify_slot))->getFile(); + } + protected: boost::signals2::signal mSignal; }; @@ -175,6 +181,12 @@ public: mSignal.connect(notify_slot); } virtual void notify(const std::string& filename); + + static void open(LLFilePicker::ESaveFilter filter, const std::string& default_name, boost::function notify_slot) + { + (new LLGenericSaveFilePicker(filter, default_name, notify_slot))->getFile(); + } + protected: boost::signals2::signal mSignal; }; @@ -208,6 +220,12 @@ public: mSignal.connect(notify_slot); } virtual void notify(std::list filenames); + + static void open(LLFilePicker::ELoadFilter filter, boost::function filenames)> notify_slot) + { + (new LLGenericLoadMultipleFilePicker(filter, notify_slot))->getFiles(); + } + protected: boost::signals2::signal filenames)> mSignal; }; diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp index d5ab51853a..54f84861b6 100644 --- a/indra/newview/llviewerwindow.cpp +++ b/indra/newview/llviewerwindow.cpp @@ -4978,7 +4978,7 @@ void LLViewerWindow::saveImageNumbered(LLImageFormatted *image, bool force_picke { std::string proposed_name( sSnapshotBaseName ); - (new LLGenericSaveFilePicker(pick_type, proposed_name, boost::bind(&LLViewerWindow::saveImageCallback, this, _1, image, extension, callback)))->getFile(); + LLGenericSaveFilePicker::open(pick_type, proposed_name, boost::bind(&LLViewerWindow::saveImageCallback, this, _1, image, extension, callback)); return; }