* Brought llfilepicker.{cpp,h} up to speed with V3 by adding
FFLOAD_MODEL, FFLOAD_COLLADA, FFLOAD_SCRIPT, FFLOAD_DICTIONARY
However, note that we used FFLOAD_LSL, so I renamed their
FFLOAD_SCRIPT to FFLOAD_LSL and kept our way of filtering.
* Fixed the filter token that is sent to the plugin for
collada (from "dae" to "collada").
Actually flush messages before terminating a plugin (upon
the shutdown message) and flush messages in the file- and
dirpicker before opening the blocking dialog. Flush debug
messages too (deeper into the code, just prior to the actual
blocking call).
Also, fix the context folder map to be a thread-safe
singleton and *attempt* to add support for default folders
to windows and Mac. The latter might even not compile yet
and definitely have to be tested (and fixed):
Opening a DirPicker in preferences --> Network and Set
the directory location of the cache. It should open a
Dialog window where you are already in the folder that
is the current cache directory setting (you can click
Cancel after verifying that this worked).
And, start to upload an image, select a file is some
directory (other than what it starts in). You can omit
the actual upload by clicking cancel in the preview.
Then upload again and now it should start in the same
folder as that you were just in. Possibly you need to
first open a file picker elsewhere with a different context
though, or windows might choose to open in the last
folder anyway while the code doesn't really work. Uploading
a sound before the second texture upload should do the
trick.
Also removed some code from the Mac/windows code in
indra/plugins/filepicker/llfilepicker.cpp that shouldn't
be in there anymore (send_agent_pause/resume and updating
the LLFrameTimer stuff).
Also upgrade the file picker filters with the new extensions found
in the orginal file picker code of Singularity.
Also improve AIFilePicker a bit: added hasFilename() and now
deleting the statemachine automatically by default: it's no longer
needed to call deleteMe from the callback.
Added support for plugin debug messages and better error reporting
when something goes wrong during start up of SLPlugin.
Also added more debug output regarding general plugin messages
as well as debug output related to AIFilePicker.
Add back fixes that were in Singularity (in indra/media_plugins) but not
in imprudence.
Also:
Add "shutdown" plugin message and terminate file picker plugins cleanly.
The DSO (libbasic_plugin_filepicker.so) now tells the child process /
plugin loader (SLPlugin) to terminate (using the 'shutdown' message),
and AIFilePicker::finish_impl destroys the plugin object on the viewer
side when it's ... finished thus.
Also added a large comment that gives an overview of all classes
involved on the viewer side.
Additional fixes for filepicker.
Plugin refactor bug fix: mDeleteMe was uninitialized in AIPluginFilePicker.
This commit contains all changes, except those in indra/media_plugins
(which was renamed to indra/plugins) and indra/llplugin.
However, it does contain the (new) file
indra/plugins/filepicker/basic_plugin_filepicker.cpp