diff options
author | Dave Parks <davep@lindenlab.com> | 2010-03-08 21:33:19 -0600 |
---|---|---|
committer | Dave Parks <davep@lindenlab.com> | 2010-03-08 21:33:19 -0600 |
commit | 38334e22e3dbbf7ddc735e8f64a8dc39691d1701 (patch) | |
tree | 5a1cb7c36e4e532585699d7fd680e02a217087e9 /indra/newview/llviewermenufile.h | |
parent | b9a2c6eafacdaa4838cd62672b3255c3e9c0ee16 (diff) |
Multi-threaded file dialog
Diffstat (limited to 'indra/newview/llviewermenufile.h')
-rw-r--r-- | indra/newview/llviewermenufile.h | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/indra/newview/llviewermenufile.h b/indra/newview/llviewermenufile.h index e700b0565e..8936b5cdb4 100644 --- a/indra/newview/llviewermenufile.h +++ b/indra/newview/llviewermenufile.h @@ -36,6 +36,7 @@ #include "llfoldertype.h" #include "llassetstorage.h" #include "llinventorytype.h" +#include "llfilepicker.h" class LLTransactionID; @@ -120,5 +121,30 @@ void on_new_single_inventory_upload_complete( const LLSD& server_response, S32 upload_price); +class LLFilePickerThread : public LLThread +{ //multi-threaded file picker (runs system specific file picker in background and calls "notify" from main thread) +public: + + static std::queue<LLFilePickerThread*> sDeadQ; + static LLMutex* sMutex; + + static void initClass(); + static void cleanupClass(); + static void clearDead(); + + std::string mFile; + + LLFilePicker::ELoadFilter mFilter; + + LLFilePickerThread(LLFilePicker::ELoadFilter filter) + : LLThread("file picker"), mFilter(filter) + { + + } + virtual void run(); + + virtual void notify(const std::string& filename) = 0; +}; + #endif |