summaryrefslogtreecommitdiff
path: root/indra/newview/llviewermenufile.h
diff options
context:
space:
mode:
authorDave Parks <davep@lindenlab.com>2010-03-08 21:33:19 -0600
committerDave Parks <davep@lindenlab.com>2010-03-08 21:33:19 -0600
commit38334e22e3dbbf7ddc735e8f64a8dc39691d1701 (patch)
tree5a1cb7c36e4e532585699d7fd680e02a217087e9 /indra/newview/llviewermenufile.h
parentb9a2c6eafacdaa4838cd62672b3255c3e9c0ee16 (diff)
Multi-threaded file dialog
Diffstat (limited to 'indra/newview/llviewermenufile.h')
-rw-r--r--indra/newview/llviewermenufile.h26
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