CC Review #7 (monroe)
LLMediaDataResponder and LLMediaDataFetcher were helpful classes that interacted with each other, but they were not general enough to cleanly be used for all media service interaction. This change refactors these classes into one (in fact, it is closer to a complete rewrite): LLMediaDataClient. This class has the following design points:
- You subclass from it when you want to specialize the responder, and then subclass from LLMediaDataClient::Responder if desired
- It has a few inner classes:
- LLMediaDataClient::Request, which now holds all of the data pertaining to a request, including retry counts
- LLMediaDataClient::Responder, which is now the LLHTTPClient::Responder
- LLMediaDataClient::PriorityQueue, which is now a STL priority_queue of Request objects.
- LLMediaDataClient::QueueTimer, which is the timer that fires to peel off queue items
- LLMediaDataClient::Responder::RetryTimer, which is the timer that is used when 503 errors are received.
The encapsulation of these inner classes is a lot cleaner and better reflects the scope of their responsibilities.
By and large, the logic hasn't really changed much. However, now there are two subclasses of LLMediaDataClient: one for the ObjectMedia cap and the other for the ObjectMediaNavigate cap. (I decided it was overkill to make three subclasses, one each for GET, UPDATE, and NAVIGATE, but we could still do that). LLVOVolume now instantiates both of these classes as statics (and destroys them on shutdown). They now have very simple API:
- LLObjectMediaDataClient::fetchMedia(LLVOVolume*) fetches the media for the given object
- LLObjectMediaDataClient::updateMedia(LLVOVolume*) sends an UPDATE of the media from the given object
- LLObjectMediaNavigateClient::navigate(LLVOVolume*, U8 texture_index, const std::string &url) navigates the given face (texture_index) on the given object to the given url.
Resolved conflicts in lltexteditor.cpp, llchatitemscontainerctrl.cpp, llchatmsgbox.cpp, llfloaterbuycurrency.cpp, llnearbychat.cpp, floater_buy_currency.xml, and ru/strings.xml
Merging revisions 134925-135157 of svn+ssh://svn.lindenlab.com/svn/linden/branches/gooey/gooey-4 into C:\source\viewer-2.0.0-3, respecting ancestry
- moving some existing translations into strings.xml
- deleting sentences that were removed from EN in notifications.xml
- converting structures in floater_god_tools.xml
NO CHANGES TO ENGLISH
Erica's design. Now any errors during the L$ purchase process will
give you a nice prompt to visit the SL website.
Replaced all user-visible references to the illegal term "currency"
with the term "L$".
Also fixed an outstanding bug with this floater: if you clicked the
Buy button but then cancelled the confirmation dialog, then the Buy
button would remain disabled. Now the Buy button is only disabled
during periods when you actually cannot buy.
Added initial support for local currencies, with the use of a new
[LOCALAMOUNT] field in the XUI files. When the XML-RPC server can
actually return local currency details, we can hook this up by just
changing llcurrencyuimanager.cpp.
Discussed XML-RPC interaction with Morpheus. Thanks to Erica for
the images and first cut at the XUI.
returned no media plugin for text/html (NULL dereference), which seems
to be happening in viewer-2.0.0-3 for me at the moment.
Clearly there's not too much to do if we can't display HTML, but this
fix will at least stop the help browser from crashing.
Copy-paste caused duplicate control and widget names in the script errors checkbox & radio buttons; Need to fix this before code is written for it.
Need a unique name= for localization
- also fixes the specific cases of VWR-3766, VWR-1794
- string changes only, NO CODE changed.
- this is needed so that we can begin the Localization round