-Required addition of an extra texture overlay for list headers, as normal button overlay is used for sort arrows.
-Added padding to italic text in scroll list, as the text clipped outside of the element.
-Groups list is now sortable and has header visible.
-'none' entry always be first in the list, regardless of sort order.
-LLGroupMgrGroupData::mListInProfile removed. Was unreferenced and always false. LLGroupMgrGroupData doesn't handle show/chat/notify properties
Apply button in group settings doesn't behave quite as badly after changing notices/chat/show in profile settings.
Groups floater now bolds visible groups, italicized if active (this may need to be something more noticeable)
Replace 'Save Texture As...' in File menu with 'Save Preview As...',
since it's used for textures, sounds, animations, notecards and scripts,
which ever type you have open at the moment.
This fix addresses
http://code.google.com/p/singularity-viewer/issues/detail?id=12
Bug fix in LLPreviewAnim::gotAssetForSave_continued: the if()
that tests if the result from the filepicker can be used was
accidently negated, mostly causing a crash when cancelling an
animation preview download (open animation, File -> Save Texture As..),
and canceling the save when a filename is picked.
The lifetime of AIFileUpload is actually till the very end
of the main(), causing it's member mPicker to be reused.
This leads to problems. When someone tries to open a file picker
for a file upload of the same time before the previous filepicker
called the callback function (ie, when two filepickers are
opened at the same time, or when the plugin crashes).
With this fix it is possible to open any number of file pickers.
Finally, for linux, LLFastTimers was using assembly with gives
rather random results on multicore machines. Since AIStateMachine
is using this for wait timing, it had a negative effect on
how well the file picker worked (the last message wasn't flushed
for several seconds).
Forgot to initialize AIFetchInventoryFolder::mCreate.
Also changed assert as it's possible that a statemachine
is in state bs_initialize while checking for idle
statemachines and another, already running statemachine
created the new statemachine.