- Made changes in code of floater preferences and panel login that were required because of turning the setting per-account.
- Added new method to LLFloaterPreference that looks for current user's record in saved favorites file and removes it.
Implementation details:
- File is saved on exit from viewer and not immediately on changes as was written in spec. It is done to make this file consistent with favorites order: order of favorites is saved on exit,
so if favorites info is saved in other moment earlier, crashing viewer or other unexpected way of finishing its work (i.e. via Windows task bar) would cause inconsistence between favorites order
saved per account and one from this new file.
- File is saved in user_settings\stored_favorites.xml.
- If you uncheck the option in Preferences and press OK, the file gets immediately deleted (according to spec).
Issues that require further changes:
- Currently only favorites of last logged in user are shown in login screen. Showing favorites of multiple users will be implemented later when design for it is approved by Esbee.
- Preference is now global for all users, because design states it may be changed before login, and we don't have account info at the moment. But it doesn't seem to be a good idea, so changes in design are needed.
- Currently the way of retrieving SLURLs needs optimization in a separate ticket.
More detailed design approved by Esbee is needed to develop it further, perhaps in new tickets.
- Added dirty flag that is set true when user changes checkbox or chooses one of radiobuttons connected to double-click action. No change of user settings happens on this commit, because user may press cancel or close floater. If user presses OK, and flag is true, user changes are applied to settings.
If user clicks cancel or closes floater, controls are reverted to the state they were before changes, using settings to determine it.
- Removed double-click action menu items and code that handled them to avoid functionality duplication and synchronization problems.
Changes:
- The line editor is now scrollable.
- Its value is duplicated in the tool-tip.
Technical notes:
If you set the "enabled" param of a line editor to "false", that will disable text selection in the widget.
However, if a line editor is initially enabled and then gets disabled with setEnabled(FALSE), it will remain selectable.
It looks like bug, but I'm not going to fix it now to not introduce issues like this one.
Instead, I'm applying to workaround which is to enable the widget initially and disable later, thus keeping it read-only but selectable.
- The root of busy response problem is that this text is located in non-localizable xml and, to make things worse, may be changed by user. So usual translation approach is little help here. So busy response was set the following way(EXT-5885)- on first run, string was written there from strings xml and was never changed later without direct user actions. So after changin locale message always remained the same.
- To make this string localize each time locale is changed and if it is the same as default message, new setting was added- BusyResponseChanged which is TRUE if user's busy message differ's from default. If it is true, we do nothing when locale changes, otherwise we set default message from current locale as user's busy message.
- Old transitional code from DEV-24146 was removed in this diff including unnecessary "BusyModeResponse2" setting(it is not needed because we'll anyway have to set busy message to default after first run of viewer after this fix and now busy response will be stored in "BusyModeResponse").
Warning! If user modified busy response message before this fix, it will be reset to default after first postfix run.
Reviewed by Richard Linden at https://codereview.productengine.com/secondlife/r/350/
--HG--
branch : product-engine