From a8a62201ba762e98dff92cf49033e577fc34d8d4 Mon Sep 17 00:00:00 2001 From: Jacek Antonelli Date: Fri, 15 Aug 2008 23:45:27 -0500 Subject: Second Life viewer sources 1.19.0.0 --- .../indra/newview/English.lproj/InfoPlist.strings | 4 +- linden/indra/newview/Info-SecondLife.plist | 2 +- linden/indra/newview/VertexCache.h | 4 +- linden/indra/newview/VorbisFramework.h | 4 +- linden/indra/newview/app_settings/colors_base.ini | 157 - linden/indra/newview/app_settings/colors_base.xml | 16 +- linden/indra/newview/audiosettings.h | 4 +- linden/indra/newview/fakevoicesoundsignal.cpp | 4 +- linden/indra/newview/fakevoicesoundsignal.h | 4 +- linden/indra/newview/files.lst | 1 - linden/indra/newview/fmodwrapper.cpp | 4 +- linden/indra/newview/gpu_table.txt | 4 + linden/indra/newview/head.cpp | 4 +- linden/indra/newview/head.h | 4 +- linden/indra/newview/linux_tools/client-readme.txt | 32 +- linden/indra/newview/linux_tools/wrapper.sh | 5 +- linden/indra/newview/llagent.cpp | 191 +- linden/indra/newview/llagent.h | 16 +- linden/indra/newview/llagentdata.cpp | 4 +- linden/indra/newview/llagentdata.h | 4 +- linden/indra/newview/llagentpilot.cpp | 4 +- linden/indra/newview/llagentpilot.h | 4 +- linden/indra/newview/llanimalcontrols.cpp | 4 +- linden/indra/newview/llanimalcontrols.h | 4 +- linden/indra/newview/llappearance.h | 4 +- linden/indra/newview/llappviewer.cpp | 88 +- linden/indra/newview/llappviewer.h | 4 +- linden/indra/newview/llappviewerlinux.cpp | 4 +- linden/indra/newview/llappviewerlinux.h | 4 +- linden/indra/newview/llappviewermacosx.cpp | 7 +- linden/indra/newview/llappviewermacosx.h | 4 +- linden/indra/newview/llappviewerwin32.cpp | 4 +- linden/indra/newview/llappviewerwin32.h | 4 +- linden/indra/newview/llassetuploadresponders.cpp | 7 +- linden/indra/newview/llassetuploadresponders.h | 4 +- linden/indra/newview/llaudiosourcevo.cpp | 4 +- linden/indra/newview/llaudiosourcevo.h | 4 +- linden/indra/newview/llbbox.cpp | 4 +- linden/indra/newview/llbbox.h | 4 +- linden/indra/newview/llbox.cpp | 4 +- linden/indra/newview/llbox.h | 4 +- linden/indra/newview/llcallbacklist.cpp | 4 +- linden/indra/newview/llcallbacklist.h | 4 +- linden/indra/newview/llcallingcard.cpp | 4 +- linden/indra/newview/llcallingcard.h | 4 +- linden/indra/newview/llcameraview.cpp | 4 +- linden/indra/newview/llcameraview.h | 4 +- linden/indra/newview/llcape.cpp | 4 +- linden/indra/newview/llcape.h | 4 +- linden/indra/newview/llcaphttpsender.cpp | 4 +- linden/indra/newview/llcaphttpsender.h | 4 +- linden/indra/newview/llchatbar.cpp | 172 +- linden/indra/newview/llchatbar.h | 20 +- linden/indra/newview/llclassifiedinfo.cpp | 4 +- linden/indra/newview/llclassifiedinfo.h | 4 +- .../indra/newview/llclassifiedstatsresponder.cpp | 33 +- linden/indra/newview/llclassifiedstatsresponder.h | 32 +- linden/indra/newview/llcloud.cpp | 4 +- linden/indra/newview/llcloud.h | 4 +- linden/indra/newview/llcolorscheme.cpp | 4 +- linden/indra/newview/llcolorscheme.h | 4 +- linden/indra/newview/llcolorswatch.cpp | 4 +- linden/indra/newview/llcolorswatch.h | 4 +- linden/indra/newview/llcommandhandler.cpp | 49 +- linden/indra/newview/llcommandhandler.h | 16 +- linden/indra/newview/llcompass.cpp | 4 +- linden/indra/newview/llcompass.h | 4 +- linden/indra/newview/llcompilequeue.cpp | 16 +- linden/indra/newview/llcompilequeue.h | 4 +- linden/indra/newview/llconfirmationmanager.cpp | 4 +- linden/indra/newview/llconfirmationmanager.h | 4 +- linden/indra/newview/llconsole.cpp | 4 +- linden/indra/newview/llconsole.h | 4 +- linden/indra/newview/llcontainerview.cpp | 4 +- linden/indra/newview/llcontainerview.h | 4 +- linden/indra/newview/llcontroldef.cpp | 29 +- linden/indra/newview/llcubemap.cpp | 4 +- linden/indra/newview/llcubemap.h | 4 +- linden/indra/newview/llcurrencyuimanager.cpp | 4 +- linden/indra/newview/llcurrencyuimanager.h | 4 +- linden/indra/newview/llcylinder.cpp | 4 +- linden/indra/newview/llcylinder.h | 4 +- linden/indra/newview/lldebugmessagebox.cpp | 4 +- linden/indra/newview/lldebugmessagebox.h | 4 +- linden/indra/newview/lldebugview.cpp | 4 +- linden/indra/newview/lldebugview.h | 4 +- linden/indra/newview/lldirpicker.cpp | 4 +- linden/indra/newview/lldirpicker.h | 4 +- linden/indra/newview/lldrawable.cpp | 17 +- linden/indra/newview/lldrawable.h | 4 +- linden/indra/newview/lldrawpool.cpp | 4 +- linden/indra/newview/lldrawpool.h | 4 +- linden/indra/newview/lldrawpoolalpha.cpp | 4 +- linden/indra/newview/lldrawpoolalpha.h | 4 +- linden/indra/newview/lldrawpoolavatar.cpp | 4 +- linden/indra/newview/lldrawpoolavatar.h | 4 +- linden/indra/newview/lldrawpoolbump.cpp | 4 +- linden/indra/newview/lldrawpoolbump.h | 4 +- linden/indra/newview/lldrawpoolclouds.cpp | 4 +- linden/indra/newview/lldrawpoolclouds.h | 4 +- linden/indra/newview/lldrawpoolground.cpp | 4 +- linden/indra/newview/lldrawpoolground.h | 4 +- linden/indra/newview/lldrawpoolsimple.cpp | 4 +- linden/indra/newview/lldrawpoolsimple.h | 4 +- linden/indra/newview/lldrawpoolsky.cpp | 4 +- linden/indra/newview/lldrawpoolsky.h | 4 +- linden/indra/newview/lldrawpoolstars.cpp | 4 +- linden/indra/newview/lldrawpoolstars.h | 4 +- linden/indra/newview/lldrawpoolterrain.cpp | 4 +- linden/indra/newview/lldrawpoolterrain.h | 4 +- linden/indra/newview/lldrawpooltree.cpp | 4 +- linden/indra/newview/lldrawpooltree.h | 4 +- linden/indra/newview/lldrawpoolwater.cpp | 14 +- linden/indra/newview/lldrawpoolwater.h | 4 +- linden/indra/newview/lldriverparam.cpp | 4 +- linden/indra/newview/lldriverparam.h | 4 +- linden/indra/newview/lldynamictexture.cpp | 4 +- linden/indra/newview/lldynamictexture.h | 4 +- linden/indra/newview/llemote.cpp | 4 +- linden/indra/newview/llemote.h | 4 +- linden/indra/newview/lleventinfo.cpp | 4 +- linden/indra/newview/lleventinfo.h | 4 +- linden/indra/newview/lleventnotifier.cpp | 4 +- linden/indra/newview/lleventnotifier.h | 4 +- linden/indra/newview/lleventpoll.cpp | 4 +- linden/indra/newview/lleventpoll.h | 4 +- linden/indra/newview/llface.cpp | 4 +- linden/indra/newview/llface.h | 4 +- linden/indra/newview/llface.inl | 4 +- linden/indra/newview/llfasttimerview.cpp | 4 +- linden/indra/newview/llfasttimerview.h | 4 +- linden/indra/newview/llfeaturemanager.cpp | 10 +- linden/indra/newview/llfeaturemanager.h | 4 +- linden/indra/newview/llfilepicker.cpp | 4 +- linden/indra/newview/llfilepicker.h | 4 +- linden/indra/newview/llfirstuse.cpp | 4 +- linden/indra/newview/llfirstuse.h | 4 +- linden/indra/newview/llflexibleobject.cpp | 4 +- linden/indra/newview/llflexibleobject.h | 4 +- linden/indra/newview/llfloaterabout.cpp | 4 +- linden/indra/newview/llfloaterabout.h | 4 +- linden/indra/newview/llfloateractivespeakers.cpp | 563 ++- linden/indra/newview/llfloateractivespeakers.h | 53 +- linden/indra/newview/llfloateranimpreview.cpp | 6 +- linden/indra/newview/llfloateranimpreview.h | 4 +- linden/indra/newview/llfloaterauction.cpp | 4 +- linden/indra/newview/llfloaterauction.h | 4 +- linden/indra/newview/llfloateravatarinfo.cpp | 36 +- linden/indra/newview/llfloateravatarinfo.h | 8 +- linden/indra/newview/llfloateravatarpicker.cpp | 21 +- linden/indra/newview/llfloateravatarpicker.h | 4 +- linden/indra/newview/llfloateravatartextures.cpp | 4 +- linden/indra/newview/llfloateravatartextures.h | 4 +- linden/indra/newview/llfloaterbuildoptions.cpp | 4 +- linden/indra/newview/llfloaterbuildoptions.h | 4 +- linden/indra/newview/llfloaterbump.cpp | 4 +- linden/indra/newview/llfloaterbump.h | 4 +- linden/indra/newview/llfloaterbuy.cpp | 4 +- linden/indra/newview/llfloaterbuy.h | 4 +- linden/indra/newview/llfloaterbuycontents.cpp | 4 +- linden/indra/newview/llfloaterbuycontents.h | 4 +- linden/indra/newview/llfloaterbuycurrency.cpp | 4 +- linden/indra/newview/llfloaterbuycurrency.h | 4 +- linden/indra/newview/llfloaterbuyland.cpp | 4 +- linden/indra/newview/llfloaterbuyland.h | 4 +- linden/indra/newview/llfloaterchat.cpp | 34 +- linden/indra/newview/llfloaterchat.h | 5 +- linden/indra/newview/llfloaterchatterbox.cpp | 107 +- linden/indra/newview/llfloaterchatterbox.h | 8 +- linden/indra/newview/llfloaterclassified.cpp | 55 +- linden/indra/newview/llfloaterclassified.h | 34 +- linden/indra/newview/llfloaterclothing.cpp | 14 +- linden/indra/newview/llfloaterclothing.h | 4 +- linden/indra/newview/llfloatercolorpicker.cpp | 4 +- linden/indra/newview/llfloatercolorpicker.h | 4 +- linden/indra/newview/llfloatercustomize.cpp | 4 +- linden/indra/newview/llfloatercustomize.h | 4 +- linden/indra/newview/llfloaterdirectory.cpp | 10 +- linden/indra/newview/llfloaterdirectory.h | 4 +- linden/indra/newview/llfloatereditui.cpp | 4 +- linden/indra/newview/llfloatereditui.h | 4 +- linden/indra/newview/llfloaterevent.cpp | 35 +- linden/indra/newview/llfloaterevent.h | 35 +- linden/indra/newview/llfloaterfriends.cpp | 447 +- linden/indra/newview/llfloaterfriends.h | 28 +- linden/indra/newview/llfloatergesture.cpp | 4 +- linden/indra/newview/llfloatergesture.h | 4 +- linden/indra/newview/llfloatergodtools.cpp | 4 +- linden/indra/newview/llfloatergodtools.h | 4 +- linden/indra/newview/llfloatergroupinfo.cpp | 7 +- linden/indra/newview/llfloatergroupinfo.h | 4 +- linden/indra/newview/llfloatergroupinvite.cpp | 4 +- linden/indra/newview/llfloatergroupinvite.h | 4 +- linden/indra/newview/llfloatergroups.cpp | 4 +- linden/indra/newview/llfloatergroups.h | 4 +- linden/indra/newview/llfloaterhtml.cpp | 66 +- linden/indra/newview/llfloaterhtml.h | 22 +- linden/indra/newview/llfloaterhtmlhelp.cpp | 328 -- linden/indra/newview/llfloaterhtmlhelp.h | 53 - linden/indra/newview/llfloaterimagepreview.cpp | 4 +- linden/indra/newview/llfloaterimagepreview.h | 4 +- linden/indra/newview/llfloaterimport.cpp | 10 +- linden/indra/newview/llfloaterimport.h | 4 +- linden/indra/newview/llfloaterinspect.cpp | 5 +- linden/indra/newview/llfloaterinspect.h | 4 +- linden/indra/newview/llfloaterlagmeter.cpp | 4 +- linden/indra/newview/llfloaterlagmeter.h | 4 +- linden/indra/newview/llfloaterland.cpp | 196 +- linden/indra/newview/llfloaterland.h | 19 +- linden/indra/newview/llfloaterlandholdings.cpp | 6 +- linden/indra/newview/llfloaterlandholdings.h | 4 +- linden/indra/newview/llfloaterlandmark.cpp | 29 +- linden/indra/newview/llfloaterlandmark.h | 33 +- linden/indra/newview/llfloatermap.cpp | 4 +- linden/indra/newview/llfloatermap.h | 4 +- linden/indra/newview/llfloatermute.cpp | 177 +- linden/indra/newview/llfloatermute.h | 16 +- linden/indra/newview/llfloaternamedesc.cpp | 19 +- linden/indra/newview/llfloaternamedesc.h | 4 +- linden/indra/newview/llfloaternewim.cpp | 6 +- linden/indra/newview/llfloaternewim.h | 4 +- linden/indra/newview/llfloateropenobject.cpp | 4 +- linden/indra/newview/llfloateropenobject.h | 4 +- linden/indra/newview/llfloaterparcel.cpp | 29 +- linden/indra/newview/llfloaterparcel.h | 37 +- linden/indra/newview/llfloaterpermissionsmgr.cpp | 4 +- linden/indra/newview/llfloaterpermissionsmgr.h | 4 +- linden/indra/newview/llfloaterpostcard.cpp | 9 +- linden/indra/newview/llfloaterpostcard.h | 6 +- linden/indra/newview/llfloaterpreference.cpp | 13 +- linden/indra/newview/llfloaterpreference.h | 4 +- linden/indra/newview/llfloaterproperties.cpp | 4 +- linden/indra/newview/llfloaterproperties.h | 4 +- linden/indra/newview/llfloaterregioninfo.cpp | 95 +- linden/indra/newview/llfloaterregioninfo.h | 22 +- linden/indra/newview/llfloaterreleasemsg.cpp | 34 +- linden/indra/newview/llfloaterreleasemsg.h | 7 +- linden/indra/newview/llfloaterreporter.cpp | 14 +- linden/indra/newview/llfloaterreporter.h | 4 +- linden/indra/newview/llfloatersaveavatar.cpp | 4 +- linden/indra/newview/llfloatersaveavatar.h | 4 +- linden/indra/newview/llfloaterscriptdebug.cpp | 8 +- linden/indra/newview/llfloaterscriptdebug.h | 4 +- linden/indra/newview/llfloatersellland.cpp | 13 +- linden/indra/newview/llfloatersellland.h | 4 +- linden/indra/newview/llfloatersnapshot.cpp | 6 +- linden/indra/newview/llfloatersnapshot.h | 4 +- linden/indra/newview/llfloatertelehub.cpp | 6 +- linden/indra/newview/llfloatertelehub.h | 4 +- linden/indra/newview/llfloatertest.cpp | 8 +- linden/indra/newview/llfloatertest.h | 4 +- linden/indra/newview/llfloatertools.cpp | 7 +- linden/indra/newview/llfloatertools.h | 4 +- linden/indra/newview/llfloatertopobjects.cpp | 12 +- linden/indra/newview/llfloatertopobjects.h | 4 +- linden/indra/newview/llfloatertos.cpp | 4 +- linden/indra/newview/llfloatertos.h | 4 +- linden/indra/newview/llfloaterurldisplay.cpp | 43 +- linden/indra/newview/llfloaterurldisplay.h | 4 +- linden/indra/newview/llfloatervoicewizard.cpp | 45 +- linden/indra/newview/llfloatervoicewizard.h | 7 +- linden/indra/newview/llfloaterworldmap.cpp | 106 +- linden/indra/newview/llfloaterworldmap.h | 26 +- linden/indra/newview/llfolderview.cpp | 32 +- linden/indra/newview/llfolderview.h | 6 +- linden/indra/newview/llfollowcam.cpp | 4 +- linden/indra/newview/llfollowcam.h | 4 +- linden/indra/newview/llframestats.cpp | 4 +- linden/indra/newview/llframestats.h | 4 +- linden/indra/newview/llframestatview.cpp | 4 +- linden/indra/newview/llframestatview.h | 4 +- linden/indra/newview/llgenepool.cpp | 4 +- linden/indra/newview/llgenepool.h | 4 +- linden/indra/newview/llgesturemgr.cpp | 14 +- linden/indra/newview/llgesturemgr.h | 4 +- linden/indra/newview/llgivemoney.cpp | 4 +- linden/indra/newview/llgivemoney.h | 4 +- linden/indra/newview/llglsandbox.cpp | 4 +- linden/indra/newview/llglslshader.cpp | 4 +- linden/indra/newview/llglslshader.h | 4 +- linden/indra/newview/llgroupmgr.cpp | 10 +- linden/indra/newview/llgroupmgr.h | 4 +- linden/indra/newview/llgroupnotify.cpp | 6 +- linden/indra/newview/llgroupnotify.h | 4 +- linden/indra/newview/llhippo.cpp | 4 +- linden/indra/newview/llhippo.h | 4 +- linden/indra/newview/llhoverview.cpp | 4 +- linden/indra/newview/llhoverview.h | 4 +- linden/indra/newview/llhudconnector.cpp | 4 +- linden/indra/newview/llhudconnector.h | 4 +- linden/indra/newview/llhudeffect.cpp | 4 +- linden/indra/newview/llhudeffect.h | 4 +- linden/indra/newview/llhudeffectbeam.cpp | 4 +- linden/indra/newview/llhudeffectbeam.h | 4 +- linden/indra/newview/llhudeffectlookat.cpp | 4 +- linden/indra/newview/llhudeffectlookat.h | 4 +- linden/indra/newview/llhudeffectpointat.cpp | 4 +- linden/indra/newview/llhudeffectpointat.h | 4 +- linden/indra/newview/llhudeffecttrail.cpp | 4 +- linden/indra/newview/llhudeffecttrail.h | 4 +- linden/indra/newview/llhudicon.cpp | 4 +- linden/indra/newview/llhudicon.h | 4 +- linden/indra/newview/llhudmanager.cpp | 4 +- linden/indra/newview/llhudmanager.h | 4 +- linden/indra/newview/llhudobject.cpp | 4 +- linden/indra/newview/llhudobject.h | 4 +- linden/indra/newview/llhudrender.cpp | 4 +- linden/indra/newview/llhudrender.h | 4 +- linden/indra/newview/llhudtext.cpp | 4 +- linden/indra/newview/llhudtext.h | 4 +- linden/indra/newview/llhudview.cpp | 8 +- linden/indra/newview/llhudview.h | 10 +- linden/indra/newview/llimpanel.cpp | 530 ++- linden/indra/newview/llimpanel.h | 58 +- linden/indra/newview/llimview.cpp | 503 ++- linden/indra/newview/llimview.h | 36 +- linden/indra/newview/llinventoryactions.cpp | 15 +- linden/indra/newview/llinventorybridge.cpp | 67 +- linden/indra/newview/llinventorybridge.h | 4 +- linden/indra/newview/llinventoryclipboard.cpp | 4 +- linden/indra/newview/llinventoryclipboard.h | 4 +- linden/indra/newview/llinventorymodel.cpp | 6 +- linden/indra/newview/llinventorymodel.h | 4 +- linden/indra/newview/llinventoryview.cpp | 19 +- linden/indra/newview/llinventoryview.h | 4 +- linden/indra/newview/lljoystickbutton.cpp | 16 +- linden/indra/newview/lljoystickbutton.h | 4 +- linden/indra/newview/lllandmarklist.cpp | 4 +- linden/indra/newview/lllandmarklist.h | 4 +- linden/indra/newview/lllcd.cpp | 4 +- linden/indra/newview/lllcd.h | 4 +- linden/indra/newview/lllightconstants.h | 4 +- linden/indra/newview/lllocalanimationobject.cpp | 4 +- linden/indra/newview/lllocalanimationobject.h | 4 +- linden/indra/newview/lllogchat.cpp | 4 +- linden/indra/newview/lllogchat.h | 4 +- linden/indra/newview/llmanip.cpp | 4 +- linden/indra/newview/llmanip.h | 4 +- linden/indra/newview/llmaniprotate.cpp | 4 +- linden/indra/newview/llmaniprotate.h | 4 +- linden/indra/newview/llmanipscale.cpp | 4 +- linden/indra/newview/llmanipscale.h | 4 +- linden/indra/newview/llmaniptranslate.cpp | 19 +- linden/indra/newview/llmaniptranslate.h | 4 +- linden/indra/newview/llmapresponders.cpp | 4 +- linden/indra/newview/llmapresponders.h | 4 +- linden/indra/newview/llmediaremotectrl.cpp | 112 +- linden/indra/newview/llmediaremotectrl.h | 23 +- linden/indra/newview/llmemoryview.cpp | 4 +- linden/indra/newview/llmemoryview.h | 4 +- linden/indra/newview/llmenucommands.cpp | 4 +- linden/indra/newview/llmenucommands.h | 4 +- linden/indra/newview/llmorphview.cpp | 4 +- linden/indra/newview/llmorphview.h | 4 +- linden/indra/newview/llmoveview.cpp | 4 +- linden/indra/newview/llmoveview.h | 4 +- linden/indra/newview/llmutelist.cpp | 75 +- linden/indra/newview/llmutelist.h | 10 +- linden/indra/newview/llnamebox.cpp | 4 +- linden/indra/newview/llnamebox.h | 4 +- linden/indra/newview/llnameeditor.cpp | 6 +- linden/indra/newview/llnameeditor.h | 6 +- linden/indra/newview/llnamelistctrl.cpp | 30 +- linden/indra/newview/llnamelistctrl.h | 4 +- linden/indra/newview/llnetmap.cpp | 4 +- linden/indra/newview/llnetmap.h | 4 +- linden/indra/newview/llnotify.cpp | 33 +- linden/indra/newview/llnotify.h | 4 +- linden/indra/newview/lloverlaybar.cpp | 506 +-- linden/indra/newview/lloverlaybar.h | 25 +- linden/indra/newview/llpanelLCD.cpp | 4 +- linden/indra/newview/llpanelLCD.h | 4 +- linden/indra/newview/llpanelaudioprefs.cpp | 8 +- linden/indra/newview/llpanelaudioprefs.h | 4 +- linden/indra/newview/llpanelaudiovolume.cpp | 85 +- linden/indra/newview/llpanelaudiovolume.h | 18 +- linden/indra/newview/llpanelavatar.cpp | 27 +- linden/indra/newview/llpanelavatar.h | 5 +- linden/indra/newview/llpanelclassified.cpp | 40 +- linden/indra/newview/llpanelclassified.h | 6 +- linden/indra/newview/llpanelcontents.cpp | 4 +- linden/indra/newview/llpanelcontents.h | 4 +- linden/indra/newview/llpaneldebug.cpp | 4 +- linden/indra/newview/llpaneldebug.h | 4 +- linden/indra/newview/llpaneldirbrowser.cpp | 16 +- linden/indra/newview/llpaneldirbrowser.h | 4 +- linden/indra/newview/llpaneldirclassified.cpp | 4 +- linden/indra/newview/llpaneldirclassified.h | 4 +- linden/indra/newview/llpaneldirevents.cpp | 4 +- linden/indra/newview/llpaneldirevents.h | 4 +- linden/indra/newview/llpaneldirfind.cpp | 7 +- linden/indra/newview/llpaneldirfind.h | 4 +- linden/indra/newview/llpaneldirgroups.cpp | 4 +- linden/indra/newview/llpaneldirgroups.h | 4 +- linden/indra/newview/llpaneldirland.cpp | 4 +- linden/indra/newview/llpaneldirland.h | 4 +- linden/indra/newview/llpaneldirpeople.cpp | 4 +- linden/indra/newview/llpaneldirpeople.h | 4 +- linden/indra/newview/llpaneldirplaces.cpp | 4 +- linden/indra/newview/llpaneldirplaces.h | 4 +- linden/indra/newview/llpaneldirpopular.cpp | 4 +- linden/indra/newview/llpaneldirpopular.h | 4 +- linden/indra/newview/llpaneldisplay.cpp | 4 +- linden/indra/newview/llpaneldisplay.h | 4 +- linden/indra/newview/llpanelevent.cpp | 4 +- linden/indra/newview/llpanelevent.h | 4 +- linden/indra/newview/llpanelface.cpp | 6 +- linden/indra/newview/llpanelface.h | 4 +- linden/indra/newview/llpanelgeneral.cpp | 6 +- linden/indra/newview/llpanelgeneral.h | 4 +- linden/indra/newview/llpanelgroup.cpp | 4 +- linden/indra/newview/llpanelgroup.h | 4 +- linden/indra/newview/llpanelgroupgeneral.cpp | 16 +- linden/indra/newview/llpanelgroupgeneral.h | 5 +- linden/indra/newview/llpanelgroupinvite.cpp | 4 +- linden/indra/newview/llpanelgroupinvite.h | 4 +- linden/indra/newview/llpanelgrouplandmoney.cpp | 8 +- linden/indra/newview/llpanelgrouplandmoney.h | 4 +- linden/indra/newview/llpanelgroupnotices.cpp | 6 +- linden/indra/newview/llpanelgroupnotices.h | 4 +- linden/indra/newview/llpanelgrouproles.cpp | 25 +- linden/indra/newview/llpanelgrouproles.h | 5 +- linden/indra/newview/llpanelgroupvoting.cpp | 226 +- linden/indra/newview/llpanelgroupvoting.h | 12 +- linden/indra/newview/llpanelinput.cpp | 4 +- linden/indra/newview/llpanelinput.h | 4 +- linden/indra/newview/llpanelinventory.cpp | 4 +- linden/indra/newview/llpanelinventory.h | 4 +- linden/indra/newview/llpanelland.cpp | 4 +- linden/indra/newview/llpanelland.h | 4 +- linden/indra/newview/llpanellandobjects.cpp | 4 +- linden/indra/newview/llpanellandobjects.h | 4 +- linden/indra/newview/llpanellandoptions.cpp | 4 +- linden/indra/newview/llpanellandoptions.h | 4 +- linden/indra/newview/llpanellogin.cpp | 481 ++- linden/indra/newview/llpanellogin.h | 32 +- linden/indra/newview/llpanelmorph.cpp | 4 +- linden/indra/newview/llpanelmorph.h | 4 +- linden/indra/newview/llpanelmsgs.cpp | 4 +- linden/indra/newview/llpanelmsgs.h | 4 +- linden/indra/newview/llpanelnetwork.cpp | 4 +- linden/indra/newview/llpanelnetwork.h | 4 +- linden/indra/newview/llpanelobject.cpp | 12 +- linden/indra/newview/llpanelobject.h | 4 +- linden/indra/newview/llpanelpermissions.cpp | 4 +- linden/indra/newview/llpanelpermissions.h | 4 +- linden/indra/newview/llpanelpick.cpp | 4 +- linden/indra/newview/llpanelpick.h | 4 +- linden/indra/newview/llpanelplace.cpp | 4 +- linden/indra/newview/llpanelplace.h | 4 +- linden/indra/newview/llpanelvolume.cpp | 6 +- linden/indra/newview/llpanelvolume.h | 4 +- linden/indra/newview/llpanelweb.cpp | 4 +- linden/indra/newview/llpanelweb.h | 4 +- linden/indra/newview/llpatchvertexarray.cpp | 4 +- linden/indra/newview/llpatchvertexarray.h | 4 +- linden/indra/newview/llpolymesh.cpp | 20 +- linden/indra/newview/llpolymesh.h | 13 +- linden/indra/newview/llpolymorph.cpp | 4 +- linden/indra/newview/llpolymorph.h | 4 +- linden/indra/newview/llprefschat.cpp | 4 +- linden/indra/newview/llprefschat.h | 4 +- linden/indra/newview/llprefsim.cpp | 4 +- linden/indra/newview/llprefsim.h | 4 +- linden/indra/newview/llprefsvoice.cpp | 16 +- linden/indra/newview/llprefsvoice.h | 4 +- linden/indra/newview/llpreview.cpp | 43 +- linden/indra/newview/llpreview.h | 17 +- linden/indra/newview/llpreviewanim.cpp | 4 +- linden/indra/newview/llpreviewanim.h | 7 +- linden/indra/newview/llpreviewgesture.cpp | 15 +- linden/indra/newview/llpreviewgesture.h | 6 +- linden/indra/newview/llpreviewlandmark.cpp | 7 +- linden/indra/newview/llpreviewlandmark.h | 6 +- linden/indra/newview/llpreviewnotecard.cpp | 10 +- linden/indra/newview/llpreviewnotecard.h | 9 +- linden/indra/newview/llpreviewscript.cpp | 18 +- linden/indra/newview/llpreviewscript.h | 8 +- linden/indra/newview/llpreviewsound.cpp | 6 +- linden/indra/newview/llpreviewsound.h | 7 +- linden/indra/newview/llpreviewtexture.cpp | 6 +- linden/indra/newview/llpreviewtexture.h | 6 +- linden/indra/newview/llprogressview.cpp | 4 +- linden/indra/newview/llprogressview.h | 4 +- linden/indra/newview/llregionposition.cpp | 4 +- linden/indra/newview/llregionposition.h | 4 +- linden/indra/newview/llremoteparcelrequest.cpp | 34 +- linden/indra/newview/llremoteparcelrequest.h | 32 +- linden/indra/newview/llresourcedata.h | 4 +- linden/indra/newview/llroam.cpp | 4 +- linden/indra/newview/llroam.h | 4 +- linden/indra/newview/llsavedsettingsglue.cpp | 4 +- linden/indra/newview/llsavedsettingsglue.h | 4 +- linden/indra/newview/llselectmgr.cpp | 22 +- linden/indra/newview/llselectmgr.h | 4 +- linden/indra/newview/llsky.cpp | 4 +- linden/indra/newview/llsky.h | 4 +- linden/indra/newview/llspatialpartition.cpp | 4 +- linden/indra/newview/llspatialpartition.h | 4 +- linden/indra/newview/llsphere.cpp | 4 +- linden/indra/newview/llsphere.h | 4 +- linden/indra/newview/llsprite.cpp | 4 +- linden/indra/newview/llsprite.h | 4 +- linden/indra/newview/llsrv.cpp | 4 +- linden/indra/newview/llsrv.h | 4 +- linden/indra/newview/llstartup.cpp | 232 +- linden/indra/newview/llstartup.h | 4 +- linden/indra/newview/llstatbar.cpp | 4 +- linden/indra/newview/llstatbar.h | 4 +- linden/indra/newview/llstatgraph.cpp | 4 +- linden/indra/newview/llstatgraph.h | 4 +- linden/indra/newview/llstatusbar.cpp | 94 +- linden/indra/newview/llstatusbar.h | 4 +- linden/indra/newview/llstatview.cpp | 4 +- linden/indra/newview/llstatview.h | 4 +- linden/indra/newview/llsurface.cpp | 4 +- linden/indra/newview/llsurface.h | 4 +- linden/indra/newview/llsurfacepatch.cpp | 4 +- linden/indra/newview/llsurfacepatch.h | 4 +- linden/indra/newview/lltable.h | 4 +- linden/indra/newview/lltexlayer.cpp | 4 +- linden/indra/newview/lltexlayer.h | 4 +- linden/indra/newview/lltexturecache.cpp | 4 +- linden/indra/newview/lltexturecache.h | 4 +- linden/indra/newview/lltexturectrl.cpp | 4 +- linden/indra/newview/lltexturectrl.h | 4 +- linden/indra/newview/lltexturefetch.cpp | 4 +- linden/indra/newview/lltexturefetch.h | 4 +- linden/indra/newview/lltextureview.cpp | 5 +- linden/indra/newview/lltextureview.h | 4 +- linden/indra/newview/lltool.cpp | 4 +- linden/indra/newview/lltool.h | 4 +- linden/indra/newview/lltoolbar.cpp | 186 +- linden/indra/newview/lltoolbar.h | 13 +- linden/indra/newview/lltoolbrush.cpp | 4 +- linden/indra/newview/lltoolbrush.h | 4 +- linden/indra/newview/lltoolcomp.cpp | 4 +- linden/indra/newview/lltoolcomp.h | 4 +- linden/indra/newview/lltooldraganddrop.cpp | 28 +- linden/indra/newview/lltooldraganddrop.h | 4 +- linden/indra/newview/lltoolface.cpp | 4 +- linden/indra/newview/lltoolface.h | 4 +- linden/indra/newview/lltoolfocus.cpp | 4 +- linden/indra/newview/lltoolfocus.h | 4 +- linden/indra/newview/lltoolgrab.cpp | 4 +- linden/indra/newview/lltoolgrab.h | 4 +- linden/indra/newview/lltoolgun.cpp | 4 +- linden/indra/newview/lltoolgun.h | 4 +- linden/indra/newview/lltoolindividual.cpp | 4 +- linden/indra/newview/lltoolindividual.h | 4 +- linden/indra/newview/lltoolmgr.cpp | 4 +- linden/indra/newview/lltoolmgr.h | 4 +- linden/indra/newview/lltoolmorph.cpp | 4 +- linden/indra/newview/lltoolmorph.h | 4 +- linden/indra/newview/lltoolobjpicker.cpp | 4 +- linden/indra/newview/lltoolobjpicker.h | 4 +- linden/indra/newview/lltoolpie.cpp | 4 +- linden/indra/newview/lltoolpie.h | 4 +- linden/indra/newview/lltoolpipette.cpp | 4 +- linden/indra/newview/lltoolpipette.h | 4 +- linden/indra/newview/lltoolplacer.cpp | 6 +- linden/indra/newview/lltoolplacer.h | 4 +- linden/indra/newview/lltoolselect.cpp | 4 +- linden/indra/newview/lltoolselect.h | 4 +- linden/indra/newview/lltoolselectland.cpp | 4 +- linden/indra/newview/lltoolselectland.h | 4 +- linden/indra/newview/lltoolselectrect.cpp | 4 +- linden/indra/newview/lltoolselectrect.h | 4 +- linden/indra/newview/lltoolview.cpp | 4 +- linden/indra/newview/lltoolview.h | 4 +- linden/indra/newview/lltracker.cpp | 8 +- linden/indra/newview/lltracker.h | 7 +- linden/indra/newview/lluiconstants.h | 4 +- linden/indra/newview/lluploaddialog.cpp | 4 +- linden/indra/newview/lluploaddialog.h | 4 +- linden/indra/newview/llurl.cpp | 4 +- linden/indra/newview/llurl.h | 4 +- linden/indra/newview/llurldispatcher.cpp | 68 +- linden/indra/newview/llurldispatcher.h | 13 +- linden/indra/newview/llurlsimstring.cpp | 4 +- linden/indra/newview/llurlsimstring.h | 4 +- linden/indra/newview/llurlwhitelist.cpp | 4 +- linden/indra/newview/llurlwhitelist.h | 4 +- linden/indra/newview/lluserauth.cpp | 92 +- linden/indra/newview/lluserauth.h | 22 +- linden/indra/newview/llvectorperfoptions.cpp | 30 +- linden/indra/newview/llvectorperfoptions.h | 28 +- linden/indra/newview/llvelocitybar.cpp | 4 +- linden/indra/newview/llvelocitybar.h | 4 +- linden/indra/newview/llviewchildren.cpp | 4 +- linden/indra/newview/llviewchildren.h | 4 +- linden/indra/newview/llviewerassetstorage.cpp | 4 +- linden/indra/newview/llviewerassetstorage.h | 4 +- linden/indra/newview/llvieweraudio.cpp | 44 +- linden/indra/newview/llvieweraudio.h | 28 +- linden/indra/newview/llviewerbuild.h | 4 +- linden/indra/newview/llviewercamera.cpp | 8 +- linden/indra/newview/llviewercamera.h | 4 +- linden/indra/newview/llviewercontrol.cpp | 4 +- linden/indra/newview/llviewercontrol.h | 4 +- linden/indra/newview/llviewerdisplay.cpp | 4 +- linden/indra/newview/llviewerdisplay.h | 4 +- linden/indra/newview/llviewergenericmessage.cpp | 4 +- linden/indra/newview/llviewergenericmessage.h | 4 +- linden/indra/newview/llviewergesture.cpp | 4 +- linden/indra/newview/llviewergesture.h | 4 +- linden/indra/newview/llviewerimage.cpp | 4 +- linden/indra/newview/llviewerimage.h | 4 +- linden/indra/newview/llviewerimagelist.cpp | 902 ++-- linden/indra/newview/llviewerimagelist.h | 13 +- linden/indra/newview/llviewerinventory.cpp | 35 +- linden/indra/newview/llviewerinventory.h | 10 +- linden/indra/newview/llviewerjoint.cpp | 4 +- linden/indra/newview/llviewerjoint.h | 4 +- linden/indra/newview/llviewerjointattachment.cpp | 4 +- linden/indra/newview/llviewerjointattachment.h | 4 +- linden/indra/newview/llviewerjointmesh.cpp | 4 +- linden/indra/newview/llviewerjointmesh.h | 4 +- linden/indra/newview/llviewerjointmesh_sse.cpp | 4 +- linden/indra/newview/llviewerjointmesh_sse2.cpp | 4 +- linden/indra/newview/llviewerjointmesh_vec.cpp | 4 +- linden/indra/newview/llviewerjointshape.cpp | 4 +- linden/indra/newview/llviewerjointshape.h | 4 +- linden/indra/newview/llviewerjoystick.cpp | 4 +- linden/indra/newview/llviewerjoystick.h | 4 +- linden/indra/newview/llviewerkeyboard.cpp | 4 +- linden/indra/newview/llviewerkeyboard.h | 4 +- linden/indra/newview/llviewerlayer.cpp | 4 +- linden/indra/newview/llviewerlayer.h | 4 +- linden/indra/newview/llviewermenu.cpp | 59 +- linden/indra/newview/llviewermenu.h | 4 +- linden/indra/newview/llviewermenufile.cpp | 14 +- linden/indra/newview/llviewermenufile.h | 4 +- linden/indra/newview/llviewermessage.cpp | 125 +- linden/indra/newview/llviewermessage.h | 6 +- linden/indra/newview/llviewernetwork.cpp | 72 +- linden/indra/newview/llviewernetwork.h | 21 +- linden/indra/newview/llviewerobject.cpp | 26 +- linden/indra/newview/llviewerobject.h | 5 +- linden/indra/newview/llviewerobjectlist.cpp | 4 +- linden/indra/newview/llviewerobjectlist.h | 4 +- linden/indra/newview/llviewerparcelmgr.cpp | 62 +- linden/indra/newview/llviewerparcelmgr.h | 6 +- linden/indra/newview/llviewerparceloverlay.cpp | 4 +- linden/indra/newview/llviewerparceloverlay.h | 4 +- linden/indra/newview/llviewerpartsim.cpp | 4 +- linden/indra/newview/llviewerpartsim.h | 4 +- linden/indra/newview/llviewerpartsource.cpp | 4 +- linden/indra/newview/llviewerpartsource.h | 4 +- .../indra/newview/llviewerprecompiledheaders.cpp | 4 +- linden/indra/newview/llviewerprecompiledheaders.h | 5 +- linden/indra/newview/llviewerregion.cpp | 20 +- linden/indra/newview/llviewerregion.h | 6 +- linden/indra/newview/llviewerstats.cpp | 16 +- linden/indra/newview/llviewerstats.h | 6 +- linden/indra/newview/llviewertexteditor.cpp | 96 +- linden/indra/newview/llviewertexteditor.h | 4 +- linden/indra/newview/llviewertextureanim.cpp | 4 +- linden/indra/newview/llviewertextureanim.h | 4 +- linden/indra/newview/llviewerthrottle.cpp | 4 +- linden/indra/newview/llviewerthrottle.h | 4 +- linden/indra/newview/llvieweruictrlfactory.cpp | 4 +- linden/indra/newview/llvieweruictrlfactory.h | 4 +- linden/indra/newview/llviewervisualparam.cpp | 4 +- linden/indra/newview/llviewervisualparam.h | 4 +- linden/indra/newview/llviewerwindow.cpp | 271 +- linden/indra/newview/llviewerwindow.h | 15 +- linden/indra/newview/llvlcomposition.cpp | 4 +- linden/indra/newview/llvlcomposition.h | 4 +- linden/indra/newview/llvlmanager.cpp | 4 +- linden/indra/newview/llvlmanager.h | 4 +- linden/indra/newview/llvoavatar.cpp | 58 +- linden/indra/newview/llvoavatar.h | 4 +- linden/indra/newview/llvocache.cpp | 4 +- linden/indra/newview/llvocache.h | 4 +- linden/indra/newview/llvoclouds.cpp | 4 +- linden/indra/newview/llvoclouds.h | 4 +- linden/indra/newview/llvograss.cpp | 4 +- linden/indra/newview/llvograss.h | 4 +- linden/indra/newview/llvoground.cpp | 4 +- linden/indra/newview/llvoground.h | 4 +- linden/indra/newview/llvoiceclient.cpp | 202 +- linden/indra/newview/llvoiceclient.h | 14 +- linden/indra/newview/llvoiceremotectrl.cpp | 146 +- linden/indra/newview/llvoiceremotectrl.h | 8 +- linden/indra/newview/llvoicevisualizer.cpp | 6 +- linden/indra/newview/llvoicevisualizer.h | 4 +- linden/indra/newview/llvoinventorylistener.cpp | 4 +- linden/indra/newview/llvoinventorylistener.h | 4 +- linden/indra/newview/llvopartgroup.cpp | 4 +- linden/indra/newview/llvopartgroup.h | 4 +- linden/indra/newview/llvosky.cpp | 4 +- linden/indra/newview/llvosky.h | 4 +- linden/indra/newview/llvostars.cpp | 4 +- linden/indra/newview/llvostars.h | 4 +- linden/indra/newview/llvosurfacepatch.cpp | 4 +- linden/indra/newview/llvosurfacepatch.h | 4 +- linden/indra/newview/llvotextbubble.cpp | 4 +- linden/indra/newview/llvotextbubble.h | 4 +- linden/indra/newview/llvotree.cpp | 4 +- linden/indra/newview/llvotree.h | 4 +- linden/indra/newview/llvotreenew.h | 4 +- linden/indra/newview/llvovolume.cpp | 4 +- linden/indra/newview/llvovolume.h | 4 +- linden/indra/newview/llvowater.cpp | 4 +- linden/indra/newview/llvowater.h | 4 +- linden/indra/newview/llwearable.cpp | 4 +- linden/indra/newview/llwearable.h | 4 +- linden/indra/newview/llwearablelist.cpp | 4 +- linden/indra/newview/llwearablelist.h | 4 +- linden/indra/newview/llweb.cpp | 4 +- linden/indra/newview/llweb.h | 4 +- linden/indra/newview/llwebbrowserctrl.cpp | 40 +- linden/indra/newview/llwebbrowserctrl.h | 18 +- linden/indra/newview/llwind.cpp | 4 +- linden/indra/newview/llwind.h | 4 +- linden/indra/newview/llwindebug.cpp | 4 +- linden/indra/newview/llwindebug.h | 4 +- linden/indra/newview/llworld.cpp | 9 +- linden/indra/newview/llworld.h | 4 +- linden/indra/newview/llworldmap.cpp | 4 +- linden/indra/newview/llworldmap.h | 4 +- linden/indra/newview/llworldmapview.cpp | 21 +- linden/indra/newview/llworldmapview.h | 11 +- linden/indra/newview/llxmlrpctransaction.cpp | 4 +- linden/indra/newview/llxmlrpctransaction.h | 4 +- linden/indra/newview/macmain.h | 4 +- linden/indra/newview/macutil_Prefix.h | 4 +- .../newview/macview.xcodeproj/project.pbxproj | 39 +- linden/indra/newview/macview_Prefix.h | 6 +- linden/indra/newview/moviemaker.cpp | 4 +- linden/indra/newview/moviemaker.h | 4 +- linden/indra/newview/newview.vcproj | 44 +- linden/indra/newview/newview_vc8.vcproj | 174 +- linden/indra/newview/newview_vc9.vcproj | 4400 ++++++++++++++++++++ linden/indra/newview/noise.cpp | 4 +- linden/indra/newview/noise.h | 4 +- linden/indra/newview/pipeline.cpp | 9 +- linden/indra/newview/pipeline.h | 4 +- linden/indra/newview/randgauss.h | 4 +- linden/indra/newview/releasenotes.txt | 211 +- linden/indra/newview/res/newViewRes.rc | 8 +- linden/indra/newview/res/resource.h | 30 + linden/indra/newview/skins/textures/textures.xml | 51 +- linden/indra/newview/skins/xui/de/alerts.xml | 112 +- .../newview/skins/xui/de/floater_about_land.xml | 10 +- .../skins/xui/de/floater_active_speakers.xml | 5 +- .../newview/skins/xui/de/floater_chat_history.xml | 6 + .../newview/skins/xui/de/floater_directory.xml | 54 + linden/indra/newview/skins/xui/de/floater_html.xml | 2 +- .../newview/skins/xui/de/floater_html_help.xml | 10 - linden/indra/newview/skins/xui/de/floater_im.xml | 18 + .../skins/xui/de/floater_instant_message.xml | 10 +- .../xui/de/floater_instant_message_ad_hoc.xml | 3 + .../skins/xui/de/floater_instant_message_group.xml | 29 +- .../newview/skins/xui/de/floater_mute_object.xml | 12 + .../skins/xui/de/floater_preview_gesture.xml | 6 + .../newview/skins/xui/de/floater_region_info.xml | 2 + linden/indra/newview/skins/xui/de/menu_login.xml | 1 + .../newview/skins/xui/de/need_to_translate.xml | 553 +-- .../indra/newview/skins/xui/de/need_to_update.xml | 3424 +-------------- linden/indra/newview/skins/xui/de/notify.xml | 41 +- linden/indra/newview/skins/xui/de/panel_avatar.xml | 7 +- .../indra/newview/skins/xui/de/panel_chat_bar.xml | 4 +- .../indra/newview/skins/xui/de/panel_friends.xml | 8 +- .../newview/skins/xui/de/panel_group_voting.xml | 12 +- linden/indra/newview/skins/xui/de/panel_login.xml | 46 +- .../newview/skins/xui/de/panel_media_controls.xml | 8 + .../skins/xui/de/panel_media_remote_expanded.xml | 4 + .../newview/skins/xui/de/panel_overlaybar.xml | 25 +- .../skins/xui/de/panel_preferences_general.xml | 4 +- .../skins/xui/de/panel_preferences_graphics1.xml | 3 + .../skins/xui/de/panel_preferences_voice.xml | 6 +- .../newview/skins/xui/de/panel_preferences_web.xml | 9 + .../skins/xui/de/panel_speaker_controls.xml | 30 + .../newview/skins/xui/de/panel_status_bar.xml | 6 +- .../indra/newview/skins/xui/de/panel_toolbar.xml | 8 +- .../newview/skins/xui/de/panel_voice_controls.xml | 10 + .../newview/skins/xui/de/panel_voice_enable.xml | 2 +- .../skins/xui/de/panel_voice_remote_expanded.xml | 4 + linden/indra/newview/skins/xui/en-us/alerts.xml | 110 +- .../newview/skins/xui/en-us/floater_about_land.xml | 24 +- .../skins/xui/en-us/floater_active_speakers.xml | 23 +- .../skins/xui/en-us/floater_audio_volume.xml | 6 +- .../skins/xui/en-us/floater_chat_history.xml | 69 +- .../skins/xui/en-us/floater_device_settings.xml | 2 +- .../newview/skins/xui/en-us/floater_directory.xml | 36 +- .../newview/skins/xui/en-us/floater_groups.xml | 10 +- .../indra/newview/skins/xui/en-us/floater_html.xml | 12 +- .../newview/skins/xui/en-us/floater_html_help.xml | 25 - .../indra/newview/skins/xui/en-us/floater_im.xml | 25 +- .../skins/xui/en-us/floater_instant_message.xml | 130 +- .../xui/en-us/floater_instant_message_ad_hoc.xml | 81 +- .../xui/en-us/floater_instant_message_group.xml | 236 +- .../en-us/floater_inventory_item_properties.xml | 2 +- .../indra/newview/skins/xui/en-us/floater_mute.xml | 2 +- .../skins/xui/en-us/floater_mute_object.xml | 18 + .../newview/skins/xui/en-us/floater_my_friends.xml | 16 +- .../skins/xui/en-us/floater_preview_url.xml | 4 +- .../skins/xui/en-us/floater_region_info.xml | 5 + .../skins/xui/en-us/floater_report_abuse.xml | 4 +- .../skins/xui/en-us/floater_sound_preview.xml | 25 - .../newview/skins/xui/en-us/floater_world_map.xml | 2 +- .../newview/skins/xui/en-us/menu_inventory.xml | 9 +- .../indra/newview/skins/xui/en-us/menu_viewer.xml | 2 +- linden/indra/newview/skins/xui/en-us/notify.xml | 51 +- .../indra/newview/skins/xui/en-us/panel_audio.xml | 95 +- .../newview/skins/xui/en-us/panel_audio_device.xml | 9 +- .../indra/newview/skins/xui/en-us/panel_avatar.xml | 5 +- .../indra/newview/skins/xui/en-us/panel_bars.xml | 11 + .../indra/newview/skins/xui/en-us/panel_bg_tab.xml | 12 + .../newview/skins/xui/en-us/panel_chat_bar.xml | 43 +- .../newview/skins/xui/en-us/panel_friends.xml | 44 +- .../newview/skins/xui/en-us/panel_group_roles.xml | 10 +- .../newview/skins/xui/en-us/panel_group_voting.xml | 6 + .../indra/newview/skins/xui/en-us/panel_groups.xml | 10 +- .../indra/newview/skins/xui/en-us/panel_login.xml | 91 +- .../skins/xui/en-us/panel_master_volume.xml | 22 +- .../skins/xui/en-us/panel_media_controls.xml | 23 + .../newview/skins/xui/en-us/panel_media_remote.xml | 34 +- .../xui/en-us/panel_media_remote_expanded.xml | 8 + .../newview/skins/xui/en-us/panel_overlaybar.xml | 93 +- .../skins/xui/en-us/panel_preferences_audio.xml | 27 - .../skins/xui/en-us/panel_preferences_voice.xml | 95 +- .../skins/xui/en-us/panel_preferences_web.xml | 2 +- .../skins/xui/en-us/panel_speaker_controls.xml | 67 + .../newview/skins/xui/en-us/panel_status_bar.xml | 77 +- .../newview/skins/xui/en-us/panel_toolbar.xml | 17 +- .../skins/xui/en-us/panel_voice_controls.xml | 18 + .../newview/skins/xui/en-us/panel_voice_enable.xml | 4 +- .../newview/skins/xui/en-us/panel_voice_remote.xml | 16 +- .../xui/en-us/panel_voice_remote_expanded.xml | 18 + .../newview/skins/xui/es/floater_html_help.xml | 10 - .../indra/newview/skins/xui/es/panel_chat_bar.xml | 2 +- linden/indra/newview/skins/xui/es/panel_login.xml | 36 +- .../indra/newview/skins/xui/es/panel_toolbar.xml | 2 +- .../newview/skins/xui/fr/floater_html_help.xml | 10 - .../indra/newview/skins/xui/fr/panel_chat_bar.xml | 2 +- linden/indra/newview/skins/xui/fr/panel_login.xml | 38 +- .../indra/newview/skins/xui/fr/panel_toolbar.xml | 2 +- linden/indra/newview/skins/xui/ja/alerts.xml | 136 +- .../newview/skins/xui/ja/floater_about_land.xml | 11 +- .../skins/xui/ja/floater_active_speakers.xml | 3 +- .../newview/skins/xui/ja/floater_chat_history.xml | 6 + .../newview/skins/xui/ja/floater_directory.xml | 54 + linden/indra/newview/skins/xui/ja/floater_html.xml | 2 +- .../newview/skins/xui/ja/floater_html_help.xml | 10 - linden/indra/newview/skins/xui/ja/floater_im.xml | 18 + .../skins/xui/ja/floater_instant_message.xml | 13 +- .../xui/ja/floater_instant_message_ad_hoc.xml | 3 + .../skins/xui/ja/floater_instant_message_group.xml | 31 +- .../newview/skins/xui/ja/floater_mute_object.xml | 12 + .../skins/xui/ja/floater_preview_gesture.xml | 6 + .../newview/skins/xui/ja/floater_region_info.xml | 2 + linden/indra/newview/skins/xui/ja/menu_login.xml | 1 + linden/indra/newview/skins/xui/ja/need_to_long.xml | 94 - .../newview/skins/xui/ja/need_to_translate.xml | 561 +-- .../indra/newview/skins/xui/ja/need_to_update.xml | 3330 +-------------- linden/indra/newview/skins/xui/ja/notify.xml | 43 +- linden/indra/newview/skins/xui/ja/panel_avatar.xml | 7 +- .../indra/newview/skins/xui/ja/panel_chat_bar.xml | 4 +- .../indra/newview/skins/xui/ja/panel_friends.xml | 11 +- .../newview/skins/xui/ja/panel_group_voting.xml | 8 +- linden/indra/newview/skins/xui/ja/panel_login.xml | 46 +- .../newview/skins/xui/ja/panel_media_controls.xml | 10 + .../skins/xui/ja/panel_media_remote_expanded.xml | 4 + .../newview/skins/xui/ja/panel_overlaybar.xml | 19 + .../skins/xui/ja/panel_preferences_general.xml | 4 +- .../skins/xui/ja/panel_preferences_graphics1.xml | 3 + .../newview/skins/xui/ja/panel_preferences_im.xml | 2 +- .../skins/xui/ja/panel_preferences_voice.xml | 7 +- .../newview/skins/xui/ja/panel_preferences_web.xml | 11 + .../skins/xui/ja/panel_speaker_controls.xml | 31 + .../newview/skins/xui/ja/panel_status_bar.xml | 7 +- .../indra/newview/skins/xui/ja/panel_toolbar.xml | 9 +- .../newview/skins/xui/ja/panel_voice_controls.xml | 10 + .../newview/skins/xui/ja/panel_voice_enable.xml | 2 +- .../newview/skins/xui/ja/panel_voice_options.xml | 2 +- .../skins/xui/ja/panel_voice_remote_expanded.xml | 4 + linden/indra/newview/skins/xui/ko/alerts.xml | 147 +- .../newview/skins/xui/ko/floater_about_land.xml | 10 +- .../skins/xui/ko/floater_active_speakers.xml | 2 +- .../newview/skins/xui/ko/floater_chat_history.xml | 6 + .../newview/skins/xui/ko/floater_directory.xml | 54 + linden/indra/newview/skins/xui/ko/floater_html.xml | 2 +- .../newview/skins/xui/ko/floater_html_help.xml | 10 - linden/indra/newview/skins/xui/ko/floater_im.xml | 18 + .../skins/xui/ko/floater_instant_message.xml | 12 +- .../xui/ko/floater_instant_message_ad_hoc.xml | 3 + .../skins/xui/ko/floater_instant_message_group.xml | 29 +- .../newview/skins/xui/ko/floater_mute_object.xml | 12 + .../skins/xui/ko/floater_preview_gesture.xml | 6 + .../newview/skins/xui/ko/floater_region_info.xml | 2 + linden/indra/newview/skins/xui/ko/menu_login.xml | 1 + linden/indra/newview/skins/xui/ko/need_to_long.xml | 57 +- .../newview/skins/xui/ko/need_to_translate.xml | 561 +-- .../indra/newview/skins/xui/ko/need_to_update.xml | 3413 +-------------- linden/indra/newview/skins/xui/ko/notify.xml | 43 +- linden/indra/newview/skins/xui/ko/panel_avatar.xml | 7 +- .../indra/newview/skins/xui/ko/panel_chat_bar.xml | 4 +- .../indra/newview/skins/xui/ko/panel_friends.xml | 27 +- .../newview/skins/xui/ko/panel_group_voting.xml | 6 + linden/indra/newview/skins/xui/ko/panel_login.xml | 45 +- .../newview/skins/xui/ko/panel_media_controls.xml | 8 + .../skins/xui/ko/panel_media_remote_expanded.xml | 4 + .../newview/skins/xui/ko/panel_overlaybar.xml | 19 + .../skins/xui/ko/panel_preferences_general.xml | 9 +- .../skins/xui/ko/panel_preferences_graphics1.xml | 3 + .../skins/xui/ko/panel_preferences_voice.xml | 6 +- .../newview/skins/xui/ko/panel_preferences_web.xml | 9 + .../skins/xui/ko/panel_speaker_controls.xml | 30 + .../newview/skins/xui/ko/panel_status_bar.xml | 7 +- .../indra/newview/skins/xui/ko/panel_toolbar.xml | 8 +- .../newview/skins/xui/ko/panel_voice_controls.xml | 10 + .../newview/skins/xui/ko/panel_voice_enable.xml | 2 +- .../newview/skins/xui/ko/panel_voice_options.xml | 3 +- .../skins/xui/ko/panel_voice_remote_expanded.xml | 4 + .../newview/skins/xui/pt/floater_html_help.xml | 10 - .../indra/newview/skins/xui/pt/panel_chat_bar.xml | 2 +- linden/indra/newview/skins/xui/pt/panel_login.xml | 27 +- .../indra/newview/skins/xui/pt/panel_toolbar.xml | 2 +- .../newview/skins/xui/zh/floater_html_help.xml | 10 - .../indra/newview/skins/xui/zh/panel_chat_bar.xml | 2 +- linden/indra/newview/skins/xui/zh/panel_login.xml | 36 +- .../indra/newview/skins/xui/zh/panel_toolbar.xml | 2 +- linden/indra/newview/viewer_manifest.py | 15 +- 926 files changed, 15978 insertions(+), 17511 deletions(-) delete mode 100644 linden/indra/newview/app_settings/colors_base.ini delete mode 100644 linden/indra/newview/llfloaterhtmlhelp.cpp delete mode 100644 linden/indra/newview/llfloaterhtmlhelp.h create mode 100644 linden/indra/newview/newview_vc9.vcproj delete mode 100644 linden/indra/newview/skins/xui/de/floater_html_help.xml create mode 100644 linden/indra/newview/skins/xui/de/floater_mute_object.xml create mode 100644 linden/indra/newview/skins/xui/de/floater_region_info.xml create mode 100644 linden/indra/newview/skins/xui/de/panel_media_controls.xml create mode 100644 linden/indra/newview/skins/xui/de/panel_media_remote_expanded.xml create mode 100644 linden/indra/newview/skins/xui/de/panel_speaker_controls.xml create mode 100644 linden/indra/newview/skins/xui/de/panel_voice_controls.xml create mode 100644 linden/indra/newview/skins/xui/de/panel_voice_remote_expanded.xml delete mode 100644 linden/indra/newview/skins/xui/en-us/floater_html_help.xml create mode 100644 linden/indra/newview/skins/xui/en-us/floater_mute_object.xml create mode 100644 linden/indra/newview/skins/xui/en-us/floater_region_info.xml create mode 100644 linden/indra/newview/skins/xui/en-us/panel_bars.xml create mode 100644 linden/indra/newview/skins/xui/en-us/panel_bg_tab.xml create mode 100644 linden/indra/newview/skins/xui/en-us/panel_media_controls.xml create mode 100644 linden/indra/newview/skins/xui/en-us/panel_media_remote_expanded.xml create mode 100644 linden/indra/newview/skins/xui/en-us/panel_speaker_controls.xml create mode 100644 linden/indra/newview/skins/xui/en-us/panel_voice_controls.xml create mode 100644 linden/indra/newview/skins/xui/en-us/panel_voice_remote_expanded.xml delete mode 100644 linden/indra/newview/skins/xui/es/floater_html_help.xml delete mode 100644 linden/indra/newview/skins/xui/fr/floater_html_help.xml delete mode 100644 linden/indra/newview/skins/xui/ja/floater_html_help.xml create mode 100644 linden/indra/newview/skins/xui/ja/floater_mute_object.xml create mode 100644 linden/indra/newview/skins/xui/ja/floater_region_info.xml create mode 100644 linden/indra/newview/skins/xui/ja/panel_media_controls.xml create mode 100644 linden/indra/newview/skins/xui/ja/panel_media_remote_expanded.xml create mode 100644 linden/indra/newview/skins/xui/ja/panel_speaker_controls.xml create mode 100644 linden/indra/newview/skins/xui/ja/panel_voice_controls.xml create mode 100644 linden/indra/newview/skins/xui/ja/panel_voice_remote_expanded.xml delete mode 100644 linden/indra/newview/skins/xui/ko/floater_html_help.xml create mode 100644 linden/indra/newview/skins/xui/ko/floater_mute_object.xml create mode 100644 linden/indra/newview/skins/xui/ko/floater_region_info.xml create mode 100644 linden/indra/newview/skins/xui/ko/panel_media_controls.xml create mode 100644 linden/indra/newview/skins/xui/ko/panel_media_remote_expanded.xml create mode 100644 linden/indra/newview/skins/xui/ko/panel_speaker_controls.xml create mode 100644 linden/indra/newview/skins/xui/ko/panel_voice_controls.xml create mode 100644 linden/indra/newview/skins/xui/ko/panel_voice_remote_expanded.xml delete mode 100644 linden/indra/newview/skins/xui/pt/floater_html_help.xml delete mode 100644 linden/indra/newview/skins/xui/zh/floater_html_help.xml (limited to 'linden/indra/newview') diff --git a/linden/indra/newview/English.lproj/InfoPlist.strings b/linden/indra/newview/English.lproj/InfoPlist.strings index 81d40ac..8944cb8 100644 --- a/linden/indra/newview/English.lproj/InfoPlist.strings +++ b/linden/indra/newview/English.lproj/InfoPlist.strings @@ -1,5 +1,5 @@ /* Localized versions of Info.plist keys */ CFBundleName = "Second Life"; -CFBundleShortVersionString = "Second Life version 1.18.6.4"; -CFBundleGetInfoString = "Second Life version 1.18.6.4, Copyright 2004-2007 Linden Research, Inc."; +CFBundleShortVersionString = "Second Life version 1.19.0.0"; +CFBundleGetInfoString = "Second Life version 1.19.0.0, Copyright 2004-2007 Linden Research, Inc."; diff --git a/linden/indra/newview/Info-SecondLife.plist b/linden/indra/newview/Info-SecondLife.plist index 44e9a47..5956f9b 100644 --- a/linden/indra/newview/Info-SecondLife.plist +++ b/linden/indra/newview/Info-SecondLife.plist @@ -32,7 +32,7 @@ CFBundleVersion - 1.18.6.4 + 1.19.0.0 CSResourcesFileMapped diff --git a/linden/indra/newview/VertexCache.h b/linden/indra/newview/VertexCache.h index 2a00108..d402e28 100644 --- a/linden/indra/newview/VertexCache.h +++ b/linden/indra/newview/VertexCache.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/VorbisFramework.h b/linden/indra/newview/VorbisFramework.h index 6a7358a..146302c 100644 --- a/linden/indra/newview/VorbisFramework.h +++ b/linden/indra/newview/VorbisFramework.h @@ -14,12 +14,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/app_settings/colors_base.ini b/linden/indra/newview/app_settings/colors_base.ini deleted file mode 100644 index 3c928c1..0000000 --- a/linden/indra/newview/app_settings/colors_base.ini +++ /dev/null @@ -1,157 +0,0 @@ -version 101 -// colors_base.ini -// This file specifies colors that are used in the user interface. -// To provide your own custom colors, edit the colors.ini file. -// DO NOT EDIT THIS FILE or Second Life will crash. - -// Color of the names over avatar heads -AvatarNameColor 251 175 93 255 - -BalanceTextColor 0 255 0 255 - -// These are "blended" with the button graphics, and hence should -// usually be left as opaque white. -ButtonColor 255 255 255 255 -ButtonImageColor 255 255 255 255 - -// Text labels for buttons, like the "OK" text -ButtonLabelColor 220 220 220 255 -ButtonLabelSelectedColor 220 220 220 255 -ButtonLabelDisabledColor 147 169 213 200 -ButtonLabelSelectedDisabledColor 164 190 237 200 - -ButtonSelectedBgColor 62 62 62 255 -ButtonSelectedColor 255 255 255 255 -ButtonUnselectedBgColor 62 62 62 255 -ButtonUnselectedFgColor 255 255 255 255 -ButtonBorderColor 255 255 255 255 - -// Chat History dialog -ChatHistoryBgColor 0 0 0 0 -ChatHistoryTextColor 255 255 255 255 - -// The floater buttons (like the close box) are white images that receive this color. -FloaterButtonImageColor 239 156 0 255 - -// The drop shadow behind windows and menus. -// The button one is baked into the graphic. -ColorDropShadow 0 0 0 255 -DefaultBackgroundColor 62 62 62 100 -DefaultHighlightDark 26 26 26 255 -DefaultHighlightLight 115 132 155 255 -DefaultShadowDark 26 26 26 255 -DefaultShadowLight 0 0 0 255 - -// Color of the rectangle around entry fields with keyboard focus. -FocusColor 238 156 0 255 -FocusSecondaryColor 171 212 245 255 - -// Edit mode grid -GridFocusPointColor 255 255 255 128 -GridlineColor 255 255 255 255 -GridlineBGColor 235 235 255 200 -GridlineShadowColor 0 0 0 80 - -HealthTextColor 255 255 255 255 - -HelpBgColor 200 209 204 255 -HelpFgColor 0 0 0 255 - -HelpScrollTrackColor 183 184 188 255 -HelpScrollThumbColor 80 96 124 255 -HelpScrollHighlightColor 115 132 155 255 -HelpScrollShadowColor 0 0 0 255 - - -LabelDisabledColor 147 169 213 77 -LabelSelectedColor 255 255 255 255 -LabelSelectedDisabledColor 164 190 237 128 -LabelTextColor 147 169 213 255 - -MapAutopilotColor 255 128 0 255 - -// Menus on the top of the screen -MenuBarBgColor 62 62 62 255 -MenuBarGodBgColor 62 62 62 255 -MenuNonProductionBgColor 128 0 0 255 -MenuNonProductionGodBgColor 128 0 0 255 -MenuDefaultBgColor 0 0 0 255 -MenuItemDisabledColor 133 133 164 128 -MenuItemEnabledColor 255 255 255 255 -MenuItemHighlightBgColor 183 184 188 80 -MenuItemHighlightFgColor 255 255 255 255 -MenuPopupBgColor 0 0 0 255 - -// Colors for the Mini-Map -NetMapBackgroundColor 0 0 0 77 -NetMapYouOwnAboveWater 0 255 255 255 -NetMapYouOwnBelowWater 0 200 200 255 -NetMapGroupOwnAboveWater 255 0 255 255 -NetMapGroupOwnBelowWater 200 0 200 255 -NetMapOtherOwnAboveWater 60 60 60 255 -NetMapOtherOwnBelowWater 30 30 30 255 - -// Notify boxes are the slide-down notifications at the -// top-right of the screen. -NotifyBoxColor 58 147 242 255 -NotifyTipColor 58 147 242 255 -OpaqueBackgroundColor 62 62 62 255 -GroupNotifyBoxColor 70 170 255 255 - -// Menu that spawns on right-click -PieMenuBgColor 62 62 62 77 -PieMenuLineColor 0 0 0 128 -PieMenuSelectedColor 183 184 188 77 - -// Colors for property lines and land ownership overlay -PropertyColorAvail 0 0 0 0 -PropertyColorGroup 0 184 184 102 -PropertyColorOther 255 0 0 102 -PropertyColorSelf 0 255 0 102 -PropertyColorForSale 255 128 0 102 -// match the color on the world map -PropertyColorAuction 128 0 255 102 - -ScrollBgReadOnlyColor 200 209 204 255 -ScrollBgWriteableColor 200 209 204 255 -ScrollBGStripeColor 100 100 100 40 -ScrollDisabledColor 128 128 128 204 -ScrollSelectedBGColor 100 100 188 150 -ScrollSelectedFGColor 0 0 0 204 -ScrollUnselectedColor 0 0 0 204 -ScrollHighlightedColor 183 184 188 128 -ScrollbarThumbColor 60 76 124 255 -ScrollbarTrackColor 153 154 158 255 - -// Outline for selected objects in world -SilhouetteParentColor 255 255 0 255 -SilhouetteChildColor 32 106 196 255 -HighlightParentColor 255 255 0 255 -HighlightChildColor 171 212 245 255 -// For "context" highlighting, i.e. pie menu -ContextSilhouetteColor 239 156 0 255 - -// Horizontal sliders, as in the audio preferences -SliderDisabledThumbColor 0 0 0 255 -SliderThumbCenterColor 183 184 188 255 -SliderThumbOutlineColor 0 0 0 255 -SliderTrackColor 0 0 0 255 - -TextBgFocusColor 200 209 204 255 -TextBgReadOnlyColor 62 62 62 64 -TextBgWriteableColor 200 209 204 255 -TextCursorColor 0 0 0 255 -TextFgColor 0 0 0 255 -TextFgReadOnlyColor 0 0 0 192 -TextFgTentativeColor 0 0 0 128 - -ScriptBgReadOnlyColor 200 209 204 180 - -// Pop-up tips on UI elements and in-world objects -ToolTipBgColor 183 184 188 200 -ToolTipBorderColor 171 212 245 255 -ToolTipTextColor 0 0 0 255 - - -FilterBackgroundColor 0 0 20 255 -FilterTextColor 255 200 70 255 diff --git a/linden/indra/newview/app_settings/colors_base.xml b/linden/indra/newview/app_settings/colors_base.xml index 5902a7d..c68487b 100644 --- a/linden/indra/newview/app_settings/colors_base.xml +++ b/linden/indra/newview/app_settings/colors_base.xml @@ -105,6 +105,14 @@ + + + + + + + + @@ -141,10 +149,9 @@ - - - - + + + @@ -158,6 +165,7 @@ + diff --git a/linden/indra/newview/audiosettings.h b/linden/indra/newview/audiosettings.h index cd92dff..1d2ccc5 100644 --- a/linden/indra/newview/audiosettings.h +++ b/linden/indra/newview/audiosettings.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/fakevoicesoundsignal.cpp b/linden/indra/newview/fakevoicesoundsignal.cpp index 11818b1..25cb412 100644 --- a/linden/indra/newview/fakevoicesoundsignal.cpp +++ b/linden/indra/newview/fakevoicesoundsignal.cpp @@ -14,12 +14,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/fakevoicesoundsignal.h b/linden/indra/newview/fakevoicesoundsignal.h index 2955a30..bca6306 100644 --- a/linden/indra/newview/fakevoicesoundsignal.h +++ b/linden/indra/newview/fakevoicesoundsignal.h @@ -14,12 +14,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/files.lst b/linden/indra/newview/files.lst index a13abb7..50431fb 100644 --- a/linden/indra/newview/files.lst +++ b/linden/indra/newview/files.lst @@ -83,7 +83,6 @@ newview/llfloatergroupinfo.cpp newview/llfloatergroupinvite.cpp newview/llfloatergroups.cpp newview/llfloaterhtml.cpp -newview/llfloaterhtmlhelp.cpp newview/llfloaterimagepreview.cpp newview/llfloaterimport.cpp newview/llfloaterinspect.cpp diff --git a/linden/indra/newview/fmodwrapper.cpp b/linden/indra/newview/fmodwrapper.cpp index 0bd1cc4..4d8cf22 100644 --- a/linden/indra/newview/fmodwrapper.cpp +++ b/linden/indra/newview/fmodwrapper.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/gpu_table.txt b/linden/indra/newview/gpu_table.txt index 066990b..4b9bf65 100644 --- a/linden/indra/newview/gpu_table.txt +++ b/linden/indra/newview/gpu_table.txt @@ -49,6 +49,9 @@ ATI Radeon X1600 .*ATI.*Radeon X16.* 3 ATI Radeon X1700 .*ATI.*Radeon X17.* 3 ATI Radeon X1800 .*ATI.*Radeon X18.* 3 ATI Radeon X1900 .*ATI.*Radeon X19.* 3 +ATI Radeon X2400 .*ATI.*Radeon X24.* 3 +ATI Radeon X2600 .*ATI.*Radeon X26.* 3 +ATI Radeon X2900 .*ATI.*Radeon X29.* 3 ATI Radeon X300 .*ATI.*Radeon X3.* 2 ATI Radeon X400 .*ATI.*Radeon X4.* 2 ATI Radeon X500 .*ATI.*Radeon X5.* 2 @@ -116,6 +119,7 @@ NVIDIA GeForce Go 6800 .*NVIDIA.*GeForce Go 68.* 2 NVIDIA GeForce Go 7300 .*NVIDIA.*GeForce Go 73.* 3 NVIDIA GeForce Go 7400 .*NVIDIA.*GeForce Go 74.* 3 NVIDIA GeForce Go 7600 .*NVIDIA.*GeForce Go 76.* 3 +NVIDIA GeForce Go 7700 .*NVIDIA.*GeForce Go 77.* 3 NVIDIA GeForce Go 7800 .*NVIDIA.*GeForce Go 78.* 3 NVIDIA GeForce Go 7900 .*NVIDIA.*GeForce Go 79.* 3 NVIDIA GeForce Go 6 .*GeForce Go 6.* 2 diff --git a/linden/indra/newview/head.cpp b/linden/indra/newview/head.cpp index e51713f..54047cb 100644 --- a/linden/indra/newview/head.cpp +++ b/linden/indra/newview/head.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/head.h b/linden/indra/newview/head.h index 55a2345..7bb8fd1 100644 --- a/linden/indra/newview/head.h +++ b/linden/indra/newview/head.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/linux_tools/client-readme.txt b/linden/indra/newview/linux_tools/client-readme.txt index 641705d..89454e2 100644 --- a/linden/indra/newview/linux_tools/client-readme.txt +++ b/linden/indra/newview/linux_tools/client-readme.txt @@ -50,15 +50,18 @@ Please enjoy! Minimum requirements: * Internet Connection: Cable or DSL - * Computer Processor: 800MHz Pentium III or Athlon, or better - * Computer Memory: 256MB or better (strongly recommend more!) + * Computer Processor: 800MHz Pentium III or Athlon or better + (recommended: 1.5GHz or more) + * Computer Memory: 512MB (recommended: 768MB or more) * Linux Operating System: A reasonably modern 32-bit Linux environment is required. If you are running a 64-bit Linux distribution then you will need its 32-bit compatibility environment installed. * Video/Graphics Card: - o nVidia GeForce 2, GeForce 4mx, or better + o nVidia GeForce 2, GeForce 4mx, or better (recommend one of the + following: 6700, 6800, 7600, 7800, 7900, 8400, 8500, 8600, + 8800, Go 7400, Go 7600, Go 7800, Go 7900) o OR ATI Radeon 8500, 9250, or better - (nVidia cards are strongly recommended for the Linux client) + (nVidia cards are recommended for the Linux client) **NOTE**: Second Life absolutely requires you to have recent, correctly- configured OpenGL 3D drivers for your hardware - the graphics drivers @@ -97,8 +100,6 @@ you wish. These are the most commonly-encountered known issues which are specific to the Alpha release of the Linux client. -* VOICE COMMUNICATION - this is not yet available in the Linux client. - * VISUAL EFFECTS AND PERFORMANCE - many Linux graphics drivers are not as robust as their counterparts for other operating systems, so some advanced Second Life graphical features have been DISABLED by default to aid @@ -109,7 +110,6 @@ the Alpha release of the Linux client. Linux client and are therefore known not to work properly: * Movie recording * Full Unicode font rendering - * Auto-updater * UPLOAD / SAVE / COLOR-PICKER DIALOGS - These only appear when the client is in 'windowed' mode, not 'fullscreen' mode. @@ -127,6 +127,9 @@ The client prints a lot of diagnostic information to the console it was run from. Most of this is also replicated in ~/.secondlife/logs/SecondLife.log - this is helpful to read when troubleshooting, especially 'WARNING' lines. +VOICE PROBLEMS? See the separate README-linux-voice.txt file for Voice +troubleshooting information. + PROBLEM 1:- Second Life fails to start up, with a warning on the console like: 'Error creating window.' or 'Unable to create window, be sure screen is set at 32-bit color' or @@ -246,11 +249,14 @@ the 'Search' button at the bottom of the window and then selecting the 'Groups' tab and searching for 'Linux'. This group is useful for discussing Linux issues with fellow Linux client users who are online. +The Second Life Issue Tracker: + +This is the right place for finding known issues and reporting new +bugs in all Second Life releases if you find that the Troubleshooting +section in this file hasn't helped (please note, however, that this is +not a support forum). + Linux Client Alpha Testers forum: -This is a good place for discussing Linux-specific Second Life problems -if you find that the Troubleshooting section in this file hasn't helped. -When reporting problems here, please include information about the -Second Life version you are running, your graphics card, graphics driver, -and Linux distribution. - +This is a forum where Linux Client users can help each other out and +discuss the latest updates. diff --git a/linden/indra/newview/linux_tools/wrapper.sh b/linden/indra/newview/linux_tools/wrapper.sh index 638a0f0..4ed0609 100755 --- a/linden/indra/newview/linux_tools/wrapper.sh +++ b/linden/indra/newview/linux_tools/wrapper.sh @@ -59,7 +59,8 @@ fi ## Nothing worth editing below this line. ##------------------------------------------------------------------- -RUN_PATH=`dirname "$0" || echo .` +SCRIPTSRC=`readlink -f "$0" || echo "$0"` +RUN_PATH=`dirname "${SCRIPTSRC}" || echo .` cd "${RUN_PATH}" # Re-register the secondlife:// protocol handler every launch, for now. @@ -116,7 +117,5 @@ echo echo '*********************************************************' echo 'This is an ALPHA release of the Second Life linux client.' echo 'Thank you for testing!' -echo 'You can visit the Linux Client Alpha Testers forum at:' -echo 'http://forums.secondlife.com/forumdisplay.php?forumid=263' echo 'Please see README-linux.txt before reporting problems.' echo diff --git a/linden/indra/newview/llagent.cpp b/linden/indra/newview/llagent.cpp index 94cbddc..77e743d 100644 --- a/linden/indra/newview/llagent.cpp +++ b/linden/indra/newview/llagent.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -102,6 +102,7 @@ #include "lltoolpie.h" #include "lltoolview.h" #include "llui.h" // for make_ui_sound +#include "llurldispatcher.h" #include "llviewercamera.h" #include "llviewerinventory.h" #include "llviewermenu.h" @@ -304,7 +305,7 @@ LLAgent::LLAgent() mbAlwaysRun(FALSE), mShowAvatar(TRUE), - + mCameraAnimating( FALSE ), mAnimationCameraStartGlobal(), mAnimationFocusStartGlobal(), @@ -409,6 +410,8 @@ LLAgent::LLAgent() mCameraUpVector = LLVector3::z_axis;// default is straight up mFollowCam.setMaxCameraDistantFromSubject( MAX_CAMERA_DISTANCE_FROM_AGENT ); //end ventrella + + mCustomAnim = FALSE ; } // Requires gSavedSettings to be initialized. @@ -904,6 +907,24 @@ const LLHost& LLAgent::getRegionHost() const } } +//----------------------------------------------------------------------------- +// getSLURL() +// returns empty() if getRegion() == NULL +//----------------------------------------------------------------------------- +std::string LLAgent::getSLURL() const +{ + std::string slurl; + LLViewerRegion *regionp = getRegion(); + if (regionp) + { + LLVector3d agentPos = getPositionGlobal(); + S32 x = llround( (F32)fmod( agentPos.mdV[VX], (F64)REGION_WIDTH_METERS ) ); + S32 y = llround( (F32)fmod( agentPos.mdV[VY], (F64)REGION_WIDTH_METERS ) ); + S32 z = llround( (F32)agentPos.mdV[VZ] ); + slurl = LLURLDispatcher::buildSLURL(regionp->getName(), x, y, z); + } + return slurl; +} //----------------------------------------------------------------------------- // inPrelude() @@ -1021,7 +1042,7 @@ void LLAgent::slamLookAt(const LLVector3 &look_at) //----------------------------------------------------------------------------- // getPositionGlobal() //----------------------------------------------------------------------------- -const LLVector3d &LLAgent::getPositionGlobal() +const LLVector3d &LLAgent::getPositionGlobal() const { if (!mAvatarObject.isNull() && !mAvatarObject->mDrawable.isNull()) { @@ -2842,8 +2863,14 @@ void LLAgent::endAnimationUpdateUI() if (mAvatarObject) { - sendAnimationRequest(ANIM_AGENT_CUSTOMIZE, ANIM_REQUEST_STOP); - sendAnimationRequest(ANIM_AGENT_CUSTOMIZE_DONE, ANIM_REQUEST_START); + if(mCustomAnim) + { + sendAnimationRequest(ANIM_AGENT_CUSTOMIZE, ANIM_REQUEST_STOP); + sendAnimationRequest(ANIM_AGENT_CUSTOMIZE_DONE, ANIM_REQUEST_START); + + mCustomAnim = FALSE ; + } + } setLookAt(LOOKAT_TARGET_CLEAR); } @@ -2861,7 +2888,7 @@ void LLAgent::endAnimationUpdateUI() mCameraLag.clearVec(); // JC - Added for always chat in third person option - gFocusMgr.setKeyboardFocus(NULL, NULL); + gFocusMgr.setKeyboardFocus(NULL); gToolMgr->setCurrentToolset(gMouselookToolset); @@ -3985,7 +4012,7 @@ void LLAgent::changeCameraToMouselook(BOOL animate) if( mCameraMode != CAMERA_MODE_MOUSELOOK ) { - gViewerWindow->setKeyboardFocus( NULL, NULL ); + gViewerWindow->setKeyboardFocus( NULL ); mLastCameraMode = mCameraMode; mCameraMode = CAMERA_MODE_MOUSELOOK; @@ -4169,7 +4196,7 @@ void LLAgent::changeCameraToThirdPerson(BOOL animate) //----------------------------------------------------------------------------- // changeCameraToCustomizeAvatar() //----------------------------------------------------------------------------- -void LLAgent::changeCameraToCustomizeAvatar(BOOL animate) +void LLAgent::changeCameraToCustomizeAvatar(BOOL avatar_animate, BOOL camera_animate) { setControlFlags(AGENT_CONTROL_STAND_UP); // force stand up gViewerWindow->getWindow()->resetBusyCount(); @@ -4184,16 +4211,16 @@ void LLAgent::changeCameraToCustomizeAvatar(BOOL animate) gSavedSettings.setBOOL("ThirdPersonBtnState", FALSE); gSavedSettings.setBOOL("BuildBtnState", FALSE); - if (animate) + if (camera_animate) { startCameraAnimation(); } // Remove any pitch from the avatar - LLVector3 at = mFrameAgent.getAtAxis(); - at.mV[VZ] = 0.f; - at.normVec(); - gAgent.resetAxes(at); + //LLVector3 at = mFrameAgent.getAtAxis(); + //at.mV[VZ] = 0.f; + //at.normVec(); + //gAgent.resetAxes(at); if( mCameraMode != CAMERA_MODE_CUSTOMIZE_AVATAR ) { @@ -4206,28 +4233,37 @@ void LLAgent::changeCameraToCustomizeAvatar(BOOL animate) mbFlagsDirty = TRUE; } - gViewerWindow->setKeyboardFocus( NULL, NULL ); + gViewerWindow->setKeyboardFocus( NULL ); gViewerWindow->setMouseCapture( NULL ); LLVOAvatar::onCustomizeStart(); } - if (animate && !mAvatarObject.isNull()) + if (!mAvatarObject.isNull()) { - sendAnimationRequest(ANIM_AGENT_CUSTOMIZE, ANIM_REQUEST_START); - mAvatarObject->startMotion(ANIM_AGENT_CUSTOMIZE); - LLMotion* turn_motion = mAvatarObject->findMotion(ANIM_AGENT_CUSTOMIZE); - - if (turn_motion) + if(avatar_animate) { - mAnimationDuration = turn_motion->getDuration() + CUSTOMIZE_AVATAR_CAMERA_ANIM_SLOP; + // Remove any pitch from the avatar + LLVector3 at = mFrameAgent.getAtAxis(); + at.mV[VZ] = 0.f; + at.normVec(); + gAgent.resetAxes(at); - } - else - { - mAnimationDuration = gSavedSettings.getF32("ZoomTime"); - } + sendAnimationRequest(ANIM_AGENT_CUSTOMIZE, ANIM_REQUEST_START); + mCustomAnim = TRUE ; + mAvatarObject->startMotion(ANIM_AGENT_CUSTOMIZE); + LLMotion* turn_motion = mAvatarObject->findMotion(ANIM_AGENT_CUSTOMIZE); + if (turn_motion) + { + mAnimationDuration = turn_motion->getDuration() + CUSTOMIZE_AVATAR_CAMERA_ANIM_SLOP; + + } + else + { + mAnimationDuration = gSavedSettings.getF32("ZoomTime"); + } + } @@ -5206,6 +5242,102 @@ void LLAgent::processAgentDropGroup(LLMessageSystem *msg, void **) } } +class LLAgentDropGroupViewerNode : public LLHTTPNode +{ + virtual void post( + LLHTTPNode::ResponsePtr response, + const LLSD& context, + const LLSD& input) const + { + + if ( + !input.isMap() || + !input.has("body") ) + { + //what to do with badly formed message? + response->status(400); + response->result(LLSD("Invalid message parameters")); + } + + LLSD body = input["body"]; + if ( body.has("body") ) + { + //stupid message system doubles up the "body"s + body = body["body"]; + } + + if ( + body.has("AgentData") && + body["AgentData"].isArray() && + body["AgentData"][0].isMap() ) + { + llinfos << "VALID DROP GROUP" << llendl; + + //there is only one set of data in the AgentData block + LLSD agent_data = body["AgentData"][0]; + LLUUID agent_id; + LLUUID group_id; + + agent_id = agent_data["AgentID"].asUUID(); + group_id = agent_data["GroupID"].asUUID(); + + if (agent_id != gAgentID) + { + llwarns + << "AgentDropGroup for agent other than me" << llendl; + + response->notFound(); + return; + } + + // Remove the group if it already exists remove it + // and add the new data to pick up changes. + LLGroupData gd; + gd.mID = group_id; + S32 index = gAgent.mGroups.find(gd); + if (index != -1) + { + gAgent.mGroups.remove(index); + if (gAgent.getGroupID() == group_id) + { + gAgent.mGroupID.setNull(); + gAgent.mGroupPowers = 0; + gAgent.mGroupName[0] = '\0'; + gAgent.mGroupTitle[0] = '\0'; + } + + // refresh all group information + gAgent.sendAgentDataUpdateRequest(); + + gGroupMgr->clearGroupData(group_id); + // close the floater for this group, if any. + LLFloaterGroupInfo::closeGroup(group_id); + // refresh the group panel of the search window, + //if necessary. + LLFloaterDirectory::refreshGroup(group_id); + } + else + { + llwarns + << "AgentDropGroup, agent is not part of group " + << group_id << llendl; + } + + response->result(LLSD()); + } + else + { + //what to do with badly formed message? + response->status(400); + response->result(LLSD("Invalid message parameters")); + } + } +}; + +LLHTTPRegistration + gHTTPRegistrationAgentDropGroupViewerNode( + "/message/AgentDropGroup"); + // static void LLAgent::processAgentGroupDataUpdate(LLMessageSystem *msg, void **) { @@ -5783,6 +5915,11 @@ void LLAgent::setTeleportState(ETeleportState state) { LLFloaterSnapshot::hide(0); } + if (mTeleportState == TELEPORT_MOVING) + { + // We're outa here. Save "back" slurl. + mTeleportSourceSLURL = getSLURL(); + } } void LLAgent::fidget() diff --git a/linden/indra/newview/llagent.h b/linden/indra/newview/llagent.h index 1ea580e..f87bb02 100644 --- a/linden/indra/newview/llagent.h +++ b/linden/indra/newview/llagent.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -169,7 +169,8 @@ public: void setRegion(LLViewerRegion *regionp); LLViewerRegion *getRegion() const; const LLHost& getRegionHost() const; - + std::string getSLURL() const; + void updateAgentPosition(const F32 dt, const F32 yaw, const S32 mouse_x, const S32 mouse_y); // call once per frame to update position, angles radians void updateLookAt(const S32 mouse_x, const S32 mouse_y); @@ -182,7 +183,7 @@ public: void changeCameraToDefault(); void changeCameraToMouselook(BOOL animate = TRUE); void changeCameraToThirdPerson(BOOL animate = TRUE); - void changeCameraToCustomizeAvatar(BOOL animate = TRUE); // trigger transition animation + void changeCameraToCustomizeAvatar(BOOL avatar_animate = TRUE, BOOL camera_animate = TRUE); // trigger transition animation // Ventrella void changeCameraToFollow(BOOL animate = TRUE); //end Ventrella @@ -306,7 +307,7 @@ public: LLVector3 getVelocity() const; F32 getVelocityZ() const { return getVelocity().mV[VZ]; } // a hack - const LLVector3d &getPositionGlobal(); + const LLVector3d &getPositionGlobal() const; const LLVector3 &getPositionAgent(); S32 getRegionsVisited() const; F64 getDistanceTraveled() const; @@ -463,6 +464,8 @@ public: void setTargetVelocity(const LLVector3 &vel); const LLVector3 &getTargetVelocity() const; + const std::string getTeleportSourceSLURL() const { return mTeleportSourceSLURL; } + // Setting the ability for this avatar to proxy for another avatar. //static void processAddModifyAbility(LLMessageSystem* msg, void**); @@ -717,6 +720,8 @@ private: LLVector3d mAgentOriginGlobal; // Origin of agent coords from global coords mutable LLVector3d mPositionGlobal; + std::string mTeleportSourceSLURL; // SLURL where last TP began. + std::set mRegionsVisited; // stat - what distinct regions has the avatar been to? F64 mDistanceTraveled; // stat - how far has the avatar moved? LLVector3d mLastPositionGlobal; // Used to calculate travel distance @@ -730,6 +735,7 @@ private: ECameraMode mLastCameraMode; BOOL mViewsPushed; // keep track of whether or not we have pushed views. + BOOL mCustomAnim ; //current animation is ANIM_AGENT_CUSTOMIZE ? BOOL mbAlwaysRun; // should the avatar run rather than walk BOOL mShowAvatar; // should we render the avatar? BOOL mCameraAnimating; // camera is transitioning from one mode to another diff --git a/linden/indra/newview/llagentdata.cpp b/linden/indra/newview/llagentdata.cpp index 2e76c07..031663a 100644 --- a/linden/indra/newview/llagentdata.cpp +++ b/linden/indra/newview/llagentdata.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llagentdata.h b/linden/indra/newview/llagentdata.h index 039eed8..3736bf1 100644 --- a/linden/indra/newview/llagentdata.h +++ b/linden/indra/newview/llagentdata.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llagentpilot.cpp b/linden/indra/newview/llagentpilot.cpp index 0459997..b4a1d86 100644 --- a/linden/indra/newview/llagentpilot.cpp +++ b/linden/indra/newview/llagentpilot.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llagentpilot.h b/linden/indra/newview/llagentpilot.h index 049dacf..97656b4 100644 --- a/linden/indra/newview/llagentpilot.h +++ b/linden/indra/newview/llagentpilot.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llanimalcontrols.cpp b/linden/indra/newview/llanimalcontrols.cpp index caba60d..f3ba729 100644 --- a/linden/indra/newview/llanimalcontrols.cpp +++ b/linden/indra/newview/llanimalcontrols.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llanimalcontrols.h b/linden/indra/newview/llanimalcontrols.h index 75508cf..4235d98 100644 --- a/linden/indra/newview/llanimalcontrols.h +++ b/linden/indra/newview/llanimalcontrols.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llappearance.h b/linden/indra/newview/llappearance.h index ee6feb5..582b559 100644 --- a/linden/indra/newview/llappearance.h +++ b/linden/indra/newview/llappearance.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llappviewer.cpp b/linden/indra/newview/llappviewer.cpp index d9dbaaa..c357b8f 100644 --- a/linden/indra/newview/llappviewer.cpp +++ b/linden/indra/newview/llappviewer.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -198,8 +198,8 @@ static EGridInfo GridDefaultChoice = GRID_INFO_AGNI; static EGridInfo GridDefaultChoice = GRID_INFO_ADITI; #endif #else -// Default userserver for development builds is dmz -static EGridInfo GridDefaultChoice = GRID_INFO_DMZ; +// Default userserver for development builds is none +static EGridInfo GridDefaultChoice = GRID_INFO_NONE; #endif #if LL_WINDOWS @@ -430,7 +430,7 @@ static void ui_audio_callback(const LLUUID& uuid) { if (gAudiop) { - F32 volume = gSavedSettings.getF32("AudioLevelUI"); + F32 volume = gSavedSettings.getBOOL("MuteUI") ? 0.f : gSavedSettings.getF32("AudioLevelUI"); gAudiop->triggerSound(uuid, gAgent.getID(), volume); } } @@ -588,44 +588,24 @@ int parse_args(int argc, char **argv) gGridChoice = GRID_INFO_AGNI; snprintf(gGridName, MAX_STRING, "%s", gGridInfo[gGridChoice].mName); // Flawfinder: ignore } - else if (!strcmp(argv[j], "--dmz")) - { - gGridChoice = GRID_INFO_DMZ; - snprintf(gGridName, MAX_STRING, "%s", gGridInfo[gGridChoice].mName); // Flawfinder: ignore - } - else if (!strcmp(argv[j], "--siva")) - { - gGridChoice = GRID_INFO_SIVA; - snprintf(gGridName, MAX_STRING, "%s", gGridInfo[gGridChoice].mName); // Flawfinder: ignore - } - else if (!strcmp(argv[j], "--shakti")) + else if (!strcmp(argv[j], "--aruna")) { - gGridChoice = GRID_INFO_SHAKTI; - snprintf(gGridName, MAX_STRING, "%s", gGridInfo[gGridChoice].mName); // Flawfinder: ignore + gGridChoice = GRID_INFO_ARUNA; + sprintf(gGridName,"%s", gGridInfo[gGridChoice].mName); } else if (!strcmp(argv[j], "--durga")) { gGridChoice = GRID_INFO_DURGA; snprintf(gGridName, MAX_STRING, "%s", gGridInfo[gGridChoice].mName); // Flawfinder: ignore } - else if (!strcmp(argv[j], "--soma")) - { - gGridChoice = GRID_INFO_SOMA; - snprintf(gGridName, MAX_STRING, "%s", gGridInfo[gGridChoice].mName); // Flawfinder: ignore - } else if (!strcmp(argv[j], "--ganga")) { gGridChoice = GRID_INFO_GANGA; sprintf(gGridName,"%s", gGridInfo[gGridChoice].mName); } - else if (!strcmp(argv[j], "--vaak")) - { - gGridChoice = GRID_INFO_VAAK; - sprintf(gGridName,"%s", gGridInfo[gGridChoice].mName); - } - else if (!strcmp(argv[j], "--uma")) + else if (!strcmp(argv[j], "--mitra")) { - gGridChoice = GRID_INFO_UMA; + gGridChoice = GRID_INFO_MITRA; sprintf(gGridName,"%s", gGridInfo[gGridChoice].mName); } else if (!strcmp(argv[j], "--mohini")) @@ -633,21 +613,11 @@ int parse_args(int argc, char **argv) gGridChoice = GRID_INFO_MOHINI; sprintf(gGridName,"%s", gGridInfo[gGridChoice].mName); } - else if (!strcmp(argv[j], "--yami")) - { - gGridChoice = GRID_INFO_YAMI; - sprintf(gGridName,"%s", gGridInfo[gGridChoice].mName); - } else if (!strcmp(argv[j], "--nandi")) { gGridChoice = GRID_INFO_NANDI; sprintf(gGridName,"%s", gGridInfo[gGridChoice].mName); } - else if (!strcmp(argv[j], "--mitra")) - { - gGridChoice = GRID_INFO_MITRA; - sprintf(gGridName,"%s", gGridInfo[gGridChoice].mName); - } else if (!strcmp(argv[j], "--radha")) { gGridChoice = GRID_INFO_RADHA; @@ -658,9 +628,34 @@ int parse_args(int argc, char **argv) gGridChoice = GRID_INFO_RAVI; sprintf(gGridName,"%s", gGridInfo[gGridChoice].mName); } - else if (!strcmp(argv[j], "--aruna")) + else if (!strcmp(argv[j], "--siva")) { - gGridChoice = GRID_INFO_ARUNA; + gGridChoice = GRID_INFO_SIVA; + snprintf(gGridName, MAX_STRING, "%s", gGridInfo[gGridChoice].mName); // Flawfinder: ignore + } + else if (!strcmp(argv[j], "--shakti")) + { + gGridChoice = GRID_INFO_SHAKTI; + snprintf(gGridName, MAX_STRING, "%s", gGridInfo[gGridChoice].mName); // Flawfinder: ignore + } + else if (!strcmp(argv[j], "--soma")) + { + gGridChoice = GRID_INFO_SOMA; + snprintf(gGridName, MAX_STRING, "%s", gGridInfo[gGridChoice].mName); // Flawfinder: ignore + } + else if (!strcmp(argv[j], "--uma")) + { + gGridChoice = GRID_INFO_UMA; + sprintf(gGridName,"%s", gGridInfo[gGridChoice].mName); + } + else if (!strcmp(argv[j], "--vaak")) + { + gGridChoice = GRID_INFO_VAAK; + sprintf(gGridName,"%s", gGridInfo[gGridChoice].mName); + } + else if (!strcmp(argv[j], "--yami")) + { + gGridChoice = GRID_INFO_YAMI; sprintf(gGridName,"%s", gGridInfo[gGridChoice].mName); } else if (!strcmp(argv[j], "-user") && (++j < argc)) @@ -1574,6 +1569,9 @@ bool LLAppViewer::cleanup() delete gGlobalEconomy; gGlobalEconomy = NULL; + delete gActiveChannelSpeakerMgr; + gActiveChannelSpeakerMgr = NULL; + delete gLocalSpeakerMgr; gLocalSpeakerMgr = NULL; @@ -1873,10 +1871,6 @@ bool LLAppViewer::initEarlyConfiguration() { snprintf(gGridName, MAX_STRING, "%s", gGridInfo[GRID_INFO_AGNI].mName); // Flawfinder: ignore } - else if (!strcmp(argv[j], "--dmz")) - { - snprintf(gGridName, MAX_STRING, "%s", gGridInfo[GRID_INFO_DMZ].mName); // Flawfinder: ignore - } else if (!strcmp(argv[j], "--siva")) { snprintf(gGridName, MAX_STRING, "%s", gGridInfo[GRID_INFO_SIVA].mName); // Flawfinder: ignore @@ -3081,7 +3075,7 @@ const std::vector& LLAppViewer::getLoginURIs() const if (gLoginURIs.empty()) { // not specified on the command line, use value from table - gLoginURIs = LLSRV::rewriteURI(gGridInfo[gGridChoice].mLoginURI); + gLoginURIs.push_back(gGridInfo[gGridChoice].mLoginURI); } return gLoginURIs; } diff --git a/linden/indra/newview/llappviewer.h b/linden/indra/newview/llappviewer.h index 555ceff..1078d71 100644 --- a/linden/indra/newview/llappviewer.h +++ b/linden/indra/newview/llappviewer.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llappviewerlinux.cpp b/linden/indra/newview/llappviewerlinux.cpp index d847a7f..659fbf49 100644 --- a/linden/indra/newview/llappviewerlinux.cpp +++ b/linden/indra/newview/llappviewerlinux.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llappviewerlinux.h b/linden/indra/newview/llappviewerlinux.h index 26ed318..9347f20 100644 --- a/linden/indra/newview/llappviewerlinux.h +++ b/linden/indra/newview/llappviewerlinux.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llappviewermacosx.cpp b/linden/indra/newview/llappviewermacosx.cpp index 65cc658..3e31ad7 100644 --- a/linden/indra/newview/llappviewermacosx.cpp +++ b/linden/indra/newview/llappviewermacosx.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -172,7 +172,8 @@ OSErr AEGURLHandler(const AppleEvent *messagein, AppleEvent *reply, long refIn) if(result == noErr) { std::string url = buffer; - LLURLDispatcher::dispatch(url); + const bool from_external_browser = true; + LLURLDispatcher::dispatch(url, from_external_browser); } return(result); diff --git a/linden/indra/newview/llappviewermacosx.h b/linden/indra/newview/llappviewermacosx.h index e638cf6..9f0b723 100644 --- a/linden/indra/newview/llappviewermacosx.h +++ b/linden/indra/newview/llappviewermacosx.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llappviewerwin32.cpp b/linden/indra/newview/llappviewerwin32.cpp index a25e502..9c416a1 100644 --- a/linden/indra/newview/llappviewerwin32.cpp +++ b/linden/indra/newview/llappviewerwin32.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llappviewerwin32.h b/linden/indra/newview/llappviewerwin32.h index fc42fe2..b015cc9 100644 --- a/linden/indra/newview/llappviewerwin32.h +++ b/linden/indra/newview/llappviewerwin32.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llassetuploadresponders.cpp b/linden/indra/newview/llassetuploadresponders.cpp index c8b469a..b024fc2 100644 --- a/linden/indra/newview/llassetuploadresponders.cpp +++ b/linden/indra/newview/llassetuploadresponders.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -252,7 +252,6 @@ void LLNewAgentInventoryResponder::uploadComplete(const LLSD& content) if(view) { LLUICtrl* focus_ctrl = gFocusMgr.getKeyboardFocus(); - LLFocusMgr::FocusLostCallback callback = gFocusMgr.getFocusCallback(); view->getPanel()->setSelection(content["new_inventory_item"].asUUID(), TAKE_FOCUS_NO); if((LLAssetType::AT_TEXTURE == asset_type) @@ -262,7 +261,7 @@ void LLNewAgentInventoryResponder::uploadComplete(const LLSD& content) } //LLInventoryView::dumpSelectionInformation((void*)view); // restore keyboard focus - gFocusMgr.setKeyboardFocus(focus_ctrl, callback); + gFocusMgr.setKeyboardFocus(focus_ctrl); } } else diff --git a/linden/indra/newview/llassetuploadresponders.h b/linden/indra/newview/llassetuploadresponders.h index c354d09..6f026a1 100644 --- a/linden/indra/newview/llassetuploadresponders.h +++ b/linden/indra/newview/llassetuploadresponders.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llaudiosourcevo.cpp b/linden/indra/newview/llaudiosourcevo.cpp index 7a7ab07..ae8ce5d 100644 --- a/linden/indra/newview/llaudiosourcevo.cpp +++ b/linden/indra/newview/llaudiosourcevo.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llaudiosourcevo.h b/linden/indra/newview/llaudiosourcevo.h index a164049..7e07491 100644 --- a/linden/indra/newview/llaudiosourcevo.h +++ b/linden/indra/newview/llaudiosourcevo.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llbbox.cpp b/linden/indra/newview/llbbox.cpp index cc8fa6e..98db7b7 100644 --- a/linden/indra/newview/llbbox.cpp +++ b/linden/indra/newview/llbbox.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llbbox.h b/linden/indra/newview/llbbox.h index 7159ac9..5242a9b 100644 --- a/linden/indra/newview/llbbox.h +++ b/linden/indra/newview/llbbox.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llbox.cpp b/linden/indra/newview/llbox.cpp index 65b9ba6..bbab7c4 100644 --- a/linden/indra/newview/llbox.cpp +++ b/linden/indra/newview/llbox.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llbox.h b/linden/indra/newview/llbox.h index 25ba5c4..b9fdc35 100644 --- a/linden/indra/newview/llbox.h +++ b/linden/indra/newview/llbox.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcallbacklist.cpp b/linden/indra/newview/llcallbacklist.cpp index 7f87c44..3f6fcce 100644 --- a/linden/indra/newview/llcallbacklist.cpp +++ b/linden/indra/newview/llcallbacklist.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcallbacklist.h b/linden/indra/newview/llcallbacklist.h index a14a2e4..5c03909 100644 --- a/linden/indra/newview/llcallbacklist.h +++ b/linden/indra/newview/llcallbacklist.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcallingcard.cpp b/linden/indra/newview/llcallingcard.cpp index 6dccd88..38d9beb 100644 --- a/linden/indra/newview/llcallingcard.cpp +++ b/linden/indra/newview/llcallingcard.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcallingcard.h b/linden/indra/newview/llcallingcard.h index 226c8c8..664c293 100644 --- a/linden/indra/newview/llcallingcard.h +++ b/linden/indra/newview/llcallingcard.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcameraview.cpp b/linden/indra/newview/llcameraview.cpp index 0651fb9..0c82374 100644 --- a/linden/indra/newview/llcameraview.cpp +++ b/linden/indra/newview/llcameraview.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcameraview.h b/linden/indra/newview/llcameraview.h index 228274e..e64ac56 100644 --- a/linden/indra/newview/llcameraview.h +++ b/linden/indra/newview/llcameraview.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcape.cpp b/linden/indra/newview/llcape.cpp index e2cbb0d..c054ccb 100644 --- a/linden/indra/newview/llcape.cpp +++ b/linden/indra/newview/llcape.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcape.h b/linden/indra/newview/llcape.h index 5dbc0cd..52741f4 100644 --- a/linden/indra/newview/llcape.h +++ b/linden/indra/newview/llcape.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcaphttpsender.cpp b/linden/indra/newview/llcaphttpsender.cpp index dadb98b..c60a342 100644 --- a/linden/indra/newview/llcaphttpsender.cpp +++ b/linden/indra/newview/llcaphttpsender.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcaphttpsender.h b/linden/indra/newview/llcaphttpsender.h index ddc01fa..d396673 100644 --- a/linden/indra/newview/llcaphttpsender.h +++ b/linden/indra/newview/llcaphttpsender.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llchatbar.cpp b/linden/indra/newview/llchatbar.cpp index 5a2ae5f..292ff8f 100644 --- a/linden/indra/newview/llchatbar.cpp +++ b/linden/indra/newview/llchatbar.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -93,51 +93,20 @@ private: // Functions // -//inline constructor -// for chat bars embedded in floaters, etc -LLChatBar::LLChatBar(const std::string& name) -: LLPanel(name, LLRect(), BORDER_NO), +LLChatBar::LLChatBar() +: LLPanel("", LLRect(), BORDER_NO), mInputEditor(NULL), mGestureLabelTimer(), mLastSpecialChatChannel(0), mIsBuilt(FALSE), - mDynamicLayout(FALSE), - mGestureCombo(NULL), - mObserver(NULL) -{ -} - -LLChatBar::LLChatBar(const std::string& name, const LLRect& rect) -: LLPanel(name, rect, BORDER_NO), - mInputEditor(NULL), - mGestureLabelTimer(), - mLastSpecialChatChannel(0), - mIsBuilt(FALSE), - mDynamicLayout(TRUE), mGestureCombo(NULL), mObserver(NULL) { setIsChrome(TRUE); - gUICtrlFactory->buildPanel(this,"panel_chat_bar.xml"); - - mIsFocusRoot = TRUE; - - setRect(rect); // override xml rect - - setBackgroundOpaque(TRUE); - setBackgroundVisible(TRUE); - - // Start visible if we left the app while chatting. - setVisible( gSavedSettings.getBOOL("ChatVisible") ); - - // Apply custom layout. - layout(); - -#if !LL_RELEASE_FOR_DOWNLOAD + #if !LL_RELEASE_FOR_DOWNLOAD childDisplayNotFound(); #endif - } @@ -151,25 +120,18 @@ LLChatBar::~LLChatBar() BOOL LLChatBar::postBuild() { childSetAction("History", toggleChatHistory, this); - childSetAction("Say", onClickSay, this); - childSetAction("Shout", onClickShout, this); + childSetCommitCallback("Say", onClickSay, this); // attempt to bind to an existing combo box named gesture setGestureCombo(LLUICtrlFactory::getComboBoxByName(this, "Gesture")); - LLButton * sayp = static_cast(getChildByName("Say", TRUE)); - if(sayp) - { - setDefaultBtn(sayp); - } - mInputEditor = LLUICtrlFactory::getLineEditorByName(this, "Chat Editor"); if (mInputEditor) { mInputEditor->setCallbackUserData(this); mInputEditor->setKeystrokeCallback(&onInputEditorKeystroke); - mInputEditor->setFocusLostCallback(&onInputEditorFocusLost); - mInputEditor->setFocusReceivedCallback( &onInputEditorGainFocus ); + mInputEditor->setFocusLostCallback(&onInputEditorFocusLost, this); + mInputEditor->setFocusReceivedCallback( &onInputEditorGainFocus, this ); mInputEditor->setCommitOnFocusLost( FALSE ); mInputEditor->setRevertOnEsc( FALSE ); mInputEditor->setIgnoreTab(TRUE); @@ -189,16 +151,6 @@ BOOL LLChatBar::postBuild() //----------------------------------------------------------------------- // virtual -void LLChatBar::reshape(S32 width, S32 height, BOOL called_from_parent) -{ - LLPanel::reshape(width, height, called_from_parent); - if (mIsBuilt) - { - layout(); - } -} - -// virtual BOOL LLChatBar::handleKeyHere( KEY key, MASK mask, BOOL called_from_parent ) { BOOL handled = FALSE; @@ -208,13 +160,6 @@ BOOL LLChatBar::handleKeyHere( KEY key, MASK mask, BOOL called_from_parent ) // ALT-RETURN is reserved for windowed/fullscreen toggle if( KEY_RETURN == key ) { - //if (childGetValue("Chat Editor").asString().empty()) - //{ - // // no text, just close chat bar - // stopChat(); - // return TRUE; - //} - if (mask == MASK_CONTROL) { // shout @@ -239,78 +184,8 @@ BOOL LLChatBar::handleKeyHere( KEY key, MASK mask, BOOL called_from_parent ) return handled; } - -void LLChatBar::layout() -{ - if (!mDynamicLayout) return; - - S32 rect_width = mRect.getWidth(); - S32 count = 9; // number of elements in LLToolBar - S32 pad = 4; - - LLRect gesture_rect; - S32 gesture_width = 0; - if (childGetRect("Gesture", gesture_rect)) - { - gesture_width = gesture_rect.getWidth(); - } - F32 segment_width = (F32)(rect_width - (pad + gesture_width)) / (F32)count; - - S32 btn_width = lltrunc(segment_width-pad); - - S32 x = 0; - S32 y = 1; - LLRect r; - - x = llround(0 * segment_width); - r.setOriginAndSize(x, y, btn_width, BTN_HEIGHT); - childSetRect("History", r); - - x = llround(1 * segment_width); - // Hack this one up so it looks nice. - if (mInputEditor) - { - r.setOriginAndSize(x, y+2, llfloor(6*segment_width-pad), 18); - mInputEditor->reshape(r.getWidth(), r.getHeight(), TRUE); - mInputEditor->setRect(r); - } - - x = llround(7 * segment_width); - r.setOriginAndSize(x, y, btn_width, BTN_HEIGHT); - childSetRect("Say", r); - - x = llround(8 * segment_width); - r.setOriginAndSize(x, y, btn_width, BTN_HEIGHT); - childSetRect("Shout", r); - - x = rect_width - (pad + gesture_width); - r.setOriginAndSize(x, y, gesture_width, BTN_HEIGHT); - childSetRect("Gesture", r); -} - - void LLChatBar::refresh() { - //BOOL chat_mode = gSavedSettings.getBOOL("ChatVisible"); - - //// Grab focus when no one else has it, and we're in chat mode. - //if (!gFocusMgr.getKeyboardFocus() - // && chat_mode) - //{ - // childSetFocus("Chat Editor", TRUE); - //} - - // Only show this view when user wants to be chatting - //setVisible(chat_mode); - - // hide in mouselook, but keep previous visibility state - //BOOL mouselook = gAgent.cameraMouselook(); - // call superclass setVisible so that we don't overwrite the saved setting - if (mDynamicLayout) - { - LLPanel::setVisible(gSavedSettings.getBOOL("ChatVisible")); - } - // HACK: Leave the name of the gesture in place for a few seconds. const F32 SHOW_GESTURE_NAME_TIME = 2.f; if (mGestureLabelTimer.getStarted() && mGestureLabelTimer.getElapsedTimeF32() > SHOW_GESTURE_NAME_TIME) @@ -584,12 +459,7 @@ void LLChatBar::stopChat() // hide chat bar so it doesn't grab focus back gChatBar->setVisible(FALSE); -} - -void LLChatBar::setVisible(BOOL visible) -{ - gSavedSettings.setBOOL("ChatVisible", visible); - LLPanel::setVisible(visible); + gSavedSettings.setBOOL("ChatVisible", FALSE); } // static @@ -663,30 +533,30 @@ void LLChatBar::onInputEditorKeystroke( LLLineEditor* caller, void* userdata ) } // static -void LLChatBar::onInputEditorFocusLost( LLUICtrl* caller, void* userdata) +void LLChatBar::onInputEditorFocusLost( LLFocusableElement* caller, void* userdata) { // stop typing animation gAgent.stopTyping(); } // static -void LLChatBar::onInputEditorGainFocus( LLUICtrl* caller, void* userdata ) +void LLChatBar::onInputEditorGainFocus( LLFocusableElement* caller, void* userdata ) { LLFloaterChat::setHistoryCursorAndScrollToEnd(); } // static -void LLChatBar::onClickSay( void* userdata ) +void LLChatBar::onClickSay( LLUICtrl* ctrl, void* userdata ) { LLChatBar* self = (LLChatBar*) userdata; - self->sendChat( CHAT_TYPE_NORMAL ); -} - -// static -void LLChatBar::onClickShout( void* userdata ) -{ - LLChatBar *self = (LLChatBar *)userdata; - self->sendChat( CHAT_TYPE_SHOUT ); + if (ctrl->getValue().asString() == "shout") + { + self->sendChat( CHAT_TYPE_SHOUT ); + } + else + { + self->sendChat( CHAT_TYPE_NORMAL ); + } } void LLChatBar::sendChatFromViewer(const std::string &utf8text, EChatType type, BOOL animate) @@ -769,7 +639,7 @@ void LLChatBar::onCommitGesture(LLUICtrl* ctrl, void* data) { return; } - const std::string& trigger = gestures->getSimpleSelectedValue().asString(); + const std::string& trigger = gestures->getSelectedValue().asString(); // pretend the user chatted the trigger string, to invoke // substitution and logging. diff --git a/linden/indra/newview/llchatbar.h b/linden/indra/newview/llchatbar.h index 0f83d53..fd3b339 100644 --- a/linden/indra/newview/llchatbar.h +++ b/linden/indra/newview/llchatbar.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -49,17 +49,12 @@ class LLChatBar { public: // constructor for inline chat-bars (e.g. hosted in chat history window) - LLChatBar(const std::string& name); - LLChatBar(const std::string& name, const LLRect& rect); + LLChatBar(); ~LLChatBar(); virtual BOOL postBuild(); - virtual void reshape(S32 width, S32 height, BOOL called_from_parent); virtual BOOL handleKeyHere(KEY key, MASK mask, BOOL called_from_parent); - // Adjust buttons and input field for width - void layout(); - void refresh(); void refreshGestures(); @@ -86,20 +81,18 @@ public: LLWString stripChannelNumber(const LLWString &mesg, S32* channel); // callbacks - static void onClickSay( void* userdata ); - static void onClickShout( void* userdata ); + static void onClickSay( LLUICtrl*, void* userdata ); static void onTabClick( void* userdata ); static void onInputEditorKeystroke(LLLineEditor* caller, void* userdata); - static void onInputEditorFocusLost(LLUICtrl* caller,void* userdata); - static void onInputEditorGainFocus(LLUICtrl* caller,void* userdata); + static void onInputEditorFocusLost(LLFocusableElement* caller,void* userdata); + static void onInputEditorGainFocus(LLFocusableElement* caller,void* userdata); static void onCommitGesture(LLUICtrl* ctrl, void* data); static void startChat(void*); static void stopChat(); - /*virtual*/ void setVisible(BOOL visible); protected: void sendChat(EChatType type); void updateChat(); @@ -113,7 +106,6 @@ protected: S32 mLastSpecialChatChannel; BOOL mIsBuilt; - BOOL mDynamicLayout; LLComboBox* mGestureCombo; LLChatBarGestureObserver* mObserver; diff --git a/linden/indra/newview/llclassifiedinfo.cpp b/linden/indra/newview/llclassifiedinfo.cpp index e920ea2..6a830cf 100644 --- a/linden/indra/newview/llclassifiedinfo.cpp +++ b/linden/indra/newview/llclassifiedinfo.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llclassifiedinfo.h b/linden/indra/newview/llclassifiedinfo.h index 2f4b6d0..ce648f7 100644 --- a/linden/indra/newview/llclassifiedinfo.h +++ b/linden/indra/newview/llclassifiedinfo.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llclassifiedstatsresponder.cpp b/linden/indra/newview/llclassifiedstatsresponder.cpp index 30a1808..37b0c91 100644 --- a/linden/indra/newview/llclassifiedstatsresponder.cpp +++ b/linden/indra/newview/llclassifiedstatsresponder.cpp @@ -1,17 +1,28 @@ -/** - * @file llparcelrequest.cpp - * @brief Implementation of the LLParcelRequest class. +/** + * @file llclassifiedstatsresponder.cpp + * @brief Receives information about classified ad click-through + * counts for display in the classified information UI. * - * $LicenseInfo:firstyear=2006&license=internal$ + * $LicenseInfo:firstyear=2007&license=viewergpl$ * - * Copyright (c) 2006-2008, Linden Research, Inc. + * Copyright (c) 2007-2008, Linden Research, Inc. * - * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of - * this source code is governed by the Linden Lab Source Code Disclosure - * Agreement ("Agreement") previously entered between you and Linden - * Lab. By accessing, using, copying, modifying or distributing this - * software, you acknowledge that you have been informed of your - * obligations under the Agreement and agree to abide by those obligations. + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. * * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, diff --git a/linden/indra/newview/llclassifiedstatsresponder.h b/linden/indra/newview/llclassifiedstatsresponder.h index 1ceb942..ab219b7 100644 --- a/linden/indra/newview/llclassifiedstatsresponder.h +++ b/linden/indra/newview/llclassifiedstatsresponder.h @@ -1,24 +1,34 @@ /** - * @file llclassifiedstatsrequest.h - * @brief Responder class for classified stats request. + * @file llclassifiedstatsresponder.h + * @brief Receives information about classified ad click-through + * counts for display in the classified information UI. * - * $LicenseInfo:firstyear=2006&license=internal$ + * $LicenseInfo:firstyear=2007&license=viewergpl$ * - * Copyright (c) 2006-2008, Linden Research, Inc. + * Copyright (c) 2007-2008, Linden Research, Inc. * - * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of - * this source code is governed by the Linden Lab Source Code Disclosure - * Agreement ("Agreement") previously entered between you and Linden - * Lab. By accessing, using, copying, modifying or distributing this - * software, you acknowledge that you have been informed of your - * obligations under the Agreement and agree to abide by those obligations. + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. * * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ */ - #ifndef LL_LLCLASSIFIEDSTATSRESPONDER_H #define LL_LLCLASSIFIEDSTATSRESPONDER_H diff --git a/linden/indra/newview/llcloud.cpp b/linden/indra/newview/llcloud.cpp index 2cb0952..cf9574a 100644 --- a/linden/indra/newview/llcloud.cpp +++ b/linden/indra/newview/llcloud.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcloud.h b/linden/indra/newview/llcloud.h index f5055ca..89b9615 100644 --- a/linden/indra/newview/llcloud.h +++ b/linden/indra/newview/llcloud.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcolorscheme.cpp b/linden/indra/newview/llcolorscheme.cpp index 5f98fc1..ef8b4a8 100644 --- a/linden/indra/newview/llcolorscheme.cpp +++ b/linden/indra/newview/llcolorscheme.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcolorscheme.h b/linden/indra/newview/llcolorscheme.h index 2f08959..e772b11 100644 --- a/linden/indra/newview/llcolorscheme.h +++ b/linden/indra/newview/llcolorscheme.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcolorswatch.cpp b/linden/indra/newview/llcolorswatch.cpp index a58949f..a36f0fb 100644 --- a/linden/indra/newview/llcolorswatch.cpp +++ b/linden/indra/newview/llcolorswatch.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcolorswatch.h b/linden/indra/newview/llcolorswatch.h index 42d0005..e1bf275 100644 --- a/linden/indra/newview/llcolorswatch.h +++ b/linden/indra/newview/llcolorswatch.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcommandhandler.cpp b/linden/indra/newview/llcommandhandler.cpp index 5c44937..6e7014c 100644 --- a/linden/indra/newview/llcommandhandler.cpp +++ b/linden/indra/newview/llcommandhandler.cpp @@ -14,12 +14,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -40,16 +40,21 @@ //--------------------------------------------------------------------------- // Underlying registry for command handlers, not directly accessible. //--------------------------------------------------------------------------- +struct LLCommandHandlerInfo +{ + bool mAllowFromExternalBrowser; + LLCommandHandler* mHandler; // safe, all of these are static objects +}; class LLCommandHandlerRegistry { public: static LLCommandHandlerRegistry& instance(); - void add(const char* cmd, LLCommandHandler* handler); - bool dispatch(const std::string& cmd, const LLSD& params, const LLSD& queryMap); + void add(const char* cmd, bool allow_from_external_browser, LLCommandHandler* handler); + bool dispatch(const std::string& cmd, bool from_external_browser, const LLSD& params, const LLSD& queryMap); private: - std::map mMap; + std::map mMap; }; // static @@ -62,29 +67,40 @@ LLCommandHandlerRegistry& LLCommandHandlerRegistry::instance() return instance; } -void LLCommandHandlerRegistry::add(const char* cmd, LLCommandHandler* handler) +void LLCommandHandlerRegistry::add(const char* cmd, bool allow_from_external_browser, LLCommandHandler* handler) { - mMap[cmd] = handler; + LLCommandHandlerInfo info; + info.mAllowFromExternalBrowser = allow_from_external_browser; + info.mHandler = handler; + + mMap[cmd] = info; } bool LLCommandHandlerRegistry::dispatch(const std::string& cmd, + bool from_external_browser, const LLSD& params, const LLSD& queryMap) { - std::map::iterator it = mMap.find(cmd); + std::map::iterator it = mMap.find(cmd); if (it == mMap.end()) return false; - LLCommandHandler* handler = it->second; - if (!handler) return false; - return handler->handle(params, queryMap); + const LLCommandHandlerInfo& info = it->second; + if (from_external_browser && !info.mAllowFromExternalBrowser) + { + // block request from external browser, but report as + // "handled" because it was well formatted. + return true; + } + if (!info.mHandler) return false; + return info.mHandler->handle(params, queryMap); } //--------------------------------------------------------------------------- // Automatic registration of commands, runs before main() //--------------------------------------------------------------------------- -LLCommandHandler::LLCommandHandler(const char* cmd) +LLCommandHandler::LLCommandHandler(const char* cmd, bool allow_from_external_browser) { - LLCommandHandlerRegistry::instance().add(cmd, this); + LLCommandHandlerRegistry::instance().add(cmd, allow_from_external_browser, this); } LLCommandHandler::~LLCommandHandler() @@ -98,7 +114,10 @@ LLCommandHandler::~LLCommandHandler() //--------------------------------------------------------------------------- // static -bool LLCommandDispatcher::dispatch(const std::string& cmd, const LLSD& params, const LLSD& queryMap) +bool LLCommandDispatcher::dispatch(const std::string& cmd, + bool from_external_browser, + const LLSD& params, const LLSD& queryMap) { - return LLCommandHandlerRegistry::instance().dispatch(cmd, params, queryMap); + return LLCommandHandlerRegistry::instance().dispatch( + cmd, from_external_browser, params, queryMap); } diff --git a/linden/indra/newview/llcommandhandler.h b/linden/indra/newview/llcommandhandler.h index 9fdee93..8bad6b4 100644 --- a/linden/indra/newview/llcommandhandler.h +++ b/linden/indra/newview/llcommandhandler.h @@ -14,12 +14,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -40,8 +40,9 @@ class LLFooHandler : public LLCommandHandler { public: // Inform the system you handle commands starting - // with "foo" - LLFooHandler() : LLCommandHandler("foo") { } + // with "foo" and they are not allowed from external web + // browser links. + LLFooHandler() : LLCommandHandler("foo", false) { } // Your code here bool handle(const LLSD& tokens, const LLSD& queryMap) @@ -59,9 +60,11 @@ LLFooHandler gFooHandler; class LLCommandHandler { public: - LLCommandHandler(const char* command); + LLCommandHandler(const char* command, bool allow_from_external_browser); // Automatically registers object to get called when - // command is executed. + // command is executed. All commands can be processed + // in links from LLWebBrowserCtrl, but some (like teleport) + // should not be allowed from outside the app. virtual ~LLCommandHandler(); @@ -78,6 +81,7 @@ class LLCommandDispatcher { public: static bool dispatch(const std::string& cmd, + bool from_external_browser, const LLSD& params, const LLSD& queryMap); // Execute a command registered via the above mechanism, diff --git a/linden/indra/newview/llcompass.cpp b/linden/indra/newview/llcompass.cpp index a464596..1f39705 100644 --- a/linden/indra/newview/llcompass.cpp +++ b/linden/indra/newview/llcompass.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcompass.h b/linden/indra/newview/llcompass.h index 4dbb38d..fa16095 100644 --- a/linden/indra/newview/llcompass.h +++ b/linden/indra/newview/llcompass.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcompilequeue.cpp b/linden/indra/newview/llcompilequeue.cpp index d566c20..93c2737 100644 --- a/linden/indra/newview/llcompilequeue.cpp +++ b/linden/indra/newview/llcompilequeue.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -203,7 +203,7 @@ BOOL LLFloaterScriptQueue::start() snprintf(buffer, sizeof(buffer), "Starting %s of %d items.", mStartString, mObjectIDs.count()); /* Flawfinder: ignore */ LLScrollListCtrl* list = LLUICtrlFactory::getScrollListByName(this, "queue output"); - list->addSimpleItem(buffer); + list->addCommentText(buffer); return nextObject(); } @@ -241,7 +241,7 @@ BOOL LLFloaterScriptQueue::nextObject() mDone = TRUE; char buffer[MAX_STRING]; /*Flawfinder: ignore*/ snprintf(buffer, sizeof(buffer), "Done."); /* Flawfinder: ignore */ - list->addSimpleItem(buffer); + list->addCommentText(buffer); childSetEnabled("close",TRUE); } return successful_start; @@ -444,7 +444,7 @@ void LLFloaterCompileQueue::scriptArrived(LLVFS *vfs, const LLUUID& asset_id, if(queue) { LLScrollListCtrl* list = LLUICtrlFactory::getScrollListByName(queue, "queue output"); - list->addSimpleItem(buffer); + list->addCommentText(buffer); } delete data; } @@ -625,7 +625,7 @@ void LLFloaterResetQueue::handleInventory(LLViewerObject* viewer_obj, LLScrollListCtrl* list = LLUICtrlFactory::getScrollListByName(this, "queue output"); char buffer[MAX_STRING]; /*Flawfinder: ignore*/ snprintf(buffer, sizeof(buffer), "Resetting '%s'.", item->getName().c_str()); /* Flawfinder: ignore */ - list->addSimpleItem(buffer); + list->addCommentText(buffer); LLMessageSystem* msg = gMessageSystem; msg->newMessageFast(_PREHASH_ScriptReset); msg->nextBlockFast(_PREHASH_AgentData); @@ -688,7 +688,7 @@ void LLFloaterRunQueue::handleInventory(LLViewerObject* viewer_obj, LLScrollListCtrl* list = LLUICtrlFactory::getScrollListByName(this, "queue output"); char buffer[MAX_STRING]; /*Flawfinder: ignore*/ snprintf(buffer, sizeof(buffer), "Running '%s'.", item->getName().c_str()); /* Flawfinder: ignore */ - list->addSimpleItem(buffer); + list->addCommentText(buffer); LLMessageSystem* msg = gMessageSystem; msg->newMessageFast(_PREHASH_SetScriptRunning); @@ -753,7 +753,7 @@ void LLFloaterNotRunQueue::handleInventory(LLViewerObject* viewer_obj, LLScrollListCtrl* list = LLUICtrlFactory::getScrollListByName(this, "queue output"); char buffer[MAX_STRING]; /*Flawfinder: ignore*/ snprintf(buffer, sizeof(buffer), "Not running '%s'.", item->getName().c_str()); /* Flawfinder: ignore */ - list->addSimpleItem(buffer); + list->addCommentText(buffer); LLMessageSystem* msg = gMessageSystem; msg->newMessageFast(_PREHASH_SetScriptRunning); diff --git a/linden/indra/newview/llcompilequeue.h b/linden/indra/newview/llcompilequeue.h index dec091f..9f83f27 100644 --- a/linden/indra/newview/llcompilequeue.h +++ b/linden/indra/newview/llcompilequeue.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llconfirmationmanager.cpp b/linden/indra/newview/llconfirmationmanager.cpp index aab9db0..01b0a23 100644 --- a/linden/indra/newview/llconfirmationmanager.cpp +++ b/linden/indra/newview/llconfirmationmanager.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llconfirmationmanager.h b/linden/indra/newview/llconfirmationmanager.h index 0dd290b..0b8dedb 100644 --- a/linden/indra/newview/llconfirmationmanager.h +++ b/linden/indra/newview/llconfirmationmanager.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llconsole.cpp b/linden/indra/newview/llconsole.cpp index e98ba57..3a8765c 100644 --- a/linden/indra/newview/llconsole.cpp +++ b/linden/indra/newview/llconsole.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llconsole.h b/linden/indra/newview/llconsole.h index e9e744f..9b50b83 100644 --- a/linden/indra/newview/llconsole.h +++ b/linden/indra/newview/llconsole.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcontainerview.cpp b/linden/indra/newview/llcontainerview.cpp index 9d3f2b9..497b794 100644 --- a/linden/indra/newview/llcontainerview.cpp +++ b/linden/indra/newview/llcontainerview.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcontainerview.h b/linden/indra/newview/llcontainerview.h index 5099a98..f47d685 100644 --- a/linden/indra/newview/llcontainerview.h +++ b/linden/indra/newview/llcontainerview.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcontroldef.cpp b/linden/indra/newview/llcontroldef.cpp index f2c79b7..23a1753 100644 --- a/linden/indra/newview/llcontroldef.cpp +++ b/linden/indra/newview/llcontroldef.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -164,6 +164,8 @@ void declare_settings() gSavedSettings.declareS32("ButtonVPad", 1, "Default vertical spacing between buttons (pixels)"); // space from bottom of button to text gSavedSettings.declareS32("ButtonHeightSmall", 16, "Default height for small buttons (pixels)"); gSavedSettings.declareS32("ButtonHeight", 20, "Default height for normal buttons (pixels)"); + gSavedSettings.declareF32("ButtonFlashRate", 2.f, "Frequency at which buttons flash (hz)"); + gSavedSettings.declareS32("ButtonFlashCount", 3, "Number of flashes after which flashing buttons stay lit up"); //gSavedSettings.declareS32("ButtonHeightToolbar", 32, "[NOT USED]"); //gSavedSettings.declareS32("DefaultButtonWidth", DEFAULT_BUTTON_WIDTH, "[NOT USED]"); @@ -269,9 +271,10 @@ void declare_settings() gSavedSettings.declareBOOL("ChatShowTimestamps", TRUE, "Show timestamps in chat"); - gSavedSettings.declareBOOL("EnableVoiceChat", FALSE, "Enable talking to other residents with a microphone"); + gSavedSettings.declareBOOL("EnableVoiceChat", TRUE, "Enable talking to other residents with a microphone"); gSavedSettings.declareBOOL("VoiceCallsFriendsOnly", FALSE, "Only accept voice calls from residents on your friends list"); gSavedSettings.declareBOOL("PTTCurrentlyEnabled", TRUE, "", NO_PERSIST); + gSavedSettings.declareBOOL("ShowVoiceChannelPopup", FALSE, "Controls visibility of the current voice channel popup above the voice tab"); gSavedSettings.declareBOOL("EnablePushToTalk", TRUE, "Must hold down a key or moouse button when talking into your microphone"); gSavedSettings.declareString("PushToTalkButton", "MiddleMouse", "Which button or keyboard key is used for push-to-talk"); gSavedSettings.declareBOOL("PushToTalkToggle", FALSE, "Should the push-to-talk button behave as a toggle"); @@ -523,6 +526,7 @@ void declare_settings() gSavedSettings.declareBOOL("CloseChatOnReturn", FALSE, "Close chat after hitting return"); // Copy IM messages into chat history + gSavedSettings.declareBOOL("ContactsTornOff", FALSE, "Show contacts window separately from Communicate window."); gSavedSettings.declareBOOL("ChatHistoryTornOff", FALSE, "Show chat history window separately from Communicate window."); gSavedSettings.declareBOOL("IMInChatHistory", FALSE, "Copy IM into chat history"); gSavedSettings.declareBOOL("IMShowTimestamps", TRUE, "Show timestamps in IM"); @@ -950,6 +954,7 @@ void declare_settings() // Rectangle should almost fill the bottom of the screen on 800x600 // Note that the saved rect size is the size with history shown. gSavedSettings.declareRect("FloaterChatRect", LLRect( 0, 10*16 + 12, 500, 0 ), "Rectangle for chat history"); + gSavedSettings.declareRect("FloaterContactsRect", LLRect( 0, 390, 395, 0 ), "Rectangle for chat history"); gSavedSettings.declareRect("FloaterMuteRect3", LLRect( 0, 300, 300, 0), "Rectangle for mute window"); gSavedPerAccountSettings.declareString("BusyModeResponse", "The Resident you messaged is in 'busy mode' which means they have requested not to be disturbed. Your message will still be shown in their IM panel for later viewing.", "Auto response to instant messages while in busy mode."); gSavedPerAccountSettings.declareString("InstantMessageLogPath", "", "Path to your log files."); @@ -1146,6 +1151,7 @@ void declare_settings() gSavedSettings.declareRect("HtmlFindRect", LLRect(16,650,600,128), "Rectangle for HTML find window"); // Audio + gSavedSettings.declareBOOL("ShowVolumeSettingsPopup", FALSE, "Show individual volume slider for voice, sound effects, etc"); gSavedSettings.declareF32("AudioLevelMaster", 1.0f, "Master audio level, or overall volume"); gSavedSettings.declareF32("AudioLevelSFX", 1.0f, "Audio level of in-world sound effects"); gSavedSettings.declareF32("AudioLevelAmbient",0.5f, "Audio level of environment sounds"); @@ -1161,7 +1167,6 @@ void declare_settings() gSavedSettings.declareF32("AudioLevelDoppler", 1.0f, "Scale of doppler effect on moving audio sources (1.0 = normal, <1.0 = diminished doppler effect, >1.0 = enhanced doppler effect)"); gSavedSettings.declareF32("AudioLevelRolloff", 1.0f, "Controls the distance-based dropoff of audio volume (fraction or multiple of default audio rolloff)"); - gSavedSettings.declareS32("AudioDefaultBitrate", 64, "Data streaming rate of uploaded audio samples (thousands of bits per second)"); gSavedSettings.declareBOOL("AudioStreamingMusic", FALSE, "Enable streaming audio"); gSavedSettings.declareBOOL("AudioStreamingVideo", FALSE, "Enable streaming video"); @@ -1293,6 +1298,13 @@ void declare_settings() gSavedSettings.declareBOOL("MuteAudio", FALSE, "All audio plays at 0 volume (streaming audio still takes up bandwidth, for example)"); gSavedSettings.declareBOOL("MuteWhenMinimized", TRUE, "Mute audio when SL window is minimized"); + gSavedSettings.declareBOOL("MuteMusic", FALSE, "Music plays at 0 volume (streaming audio still takes up bandwidth)"); + gSavedSettings.declareBOOL("MuteMedia", FALSE, "Media plays at 0 volume (streaming audio still takes up bandwidth)"); + gSavedSettings.declareBOOL("MuteVoice", FALSE, "Voice plays at 0 volume (streaming audio still takes up bandwidth)"); + gSavedSettings.declareBOOL("MuteSounds", FALSE, "Sound effects play at 0 volume"); + gSavedSettings.declareBOOL("MuteAmbient", FALSE, "Ambient sound effects, such as wind noise, play at 0 volume"); + gSavedSettings.declareBOOL("MuteUI", FALSE, "UI sound effects play at 0 volume"); + gSavedSettings.declareS32("NotifyBoxWidth", 350, "Width of notification messages"); gSavedSettings.declareS32("NotifyBoxHeight", 200, "Height of notification messages"); @@ -1936,8 +1948,8 @@ void settings_setup_listeners() gSavedSettings.getControl("ConsoleMaxLines")->addListener(&console_max_lines_listener); gSavedSettings.getControl("UseOcclusion")->addListener(&use_occlusion_listener); gSavedSettings.getControl("AudioLevelMaster")->addListener(&audio_listener); -// gSavedSettings.getControl("AudioLevelSFX")->addListener(&audio_volume_listener); // no need for listener -// gSavedSettings.getControl("AudioLevelUI")->addListener(&audio_volume_listener); // no need for listener + gSavedSettings.getControl("AudioLevelSFX")->addListener(&audio_listener); + gSavedSettings.getControl("AudioLevelUI")->addListener(&audio_listener); gSavedSettings.getControl("AudioLevelAmbient")->addListener(&audio_listener); gSavedSettings.getControl("AudioLevelMusic")->addListener(&audio_listener); gSavedSettings.getControl("AudioLevelMedia")->addListener(&audio_listener); @@ -1948,6 +1960,11 @@ void settings_setup_listeners() gSavedSettings.getControl("AudioStreamingMusic")->addListener(&audio_stream_music_listener); gSavedSettings.getControl("AudioStreamingVideo")->addListener(&audio_stream_media_listener); gSavedSettings.getControl("MuteAudio")->addListener(&audio_listener); + gSavedSettings.getControl("MuteMusic")->addListener(&audio_listener); + gSavedSettings.getControl("MuteMedia")->addListener(&audio_listener); + gSavedSettings.getControl("MuteVoice")->addListener(&audio_listener); + gSavedSettings.getControl("MuteAmbient")->addListener(&audio_listener); + gSavedSettings.getControl("MuteUI")->addListener(&audio_listener); gSavedSettings.getControl("RenderVBOEnable")->addListener(&render_use_vbo_listener); gSavedSettings.getControl("RenderLightingDetail")->addListener(&render_lighting_detail_listener); gSavedSettings.getControl("NumpadControl")->addListener(&numpad_control_listener); diff --git a/linden/indra/newview/llcubemap.cpp b/linden/indra/newview/llcubemap.cpp index 89dc67e..c8e0d50 100644 --- a/linden/indra/newview/llcubemap.cpp +++ b/linden/indra/newview/llcubemap.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcubemap.h b/linden/indra/newview/llcubemap.h index 3d7ec65..7a59bb3 100644 --- a/linden/indra/newview/llcubemap.h +++ b/linden/indra/newview/llcubemap.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcurrencyuimanager.cpp b/linden/indra/newview/llcurrencyuimanager.cpp index 671fcd8..413adf2 100644 --- a/linden/indra/newview/llcurrencyuimanager.cpp +++ b/linden/indra/newview/llcurrencyuimanager.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcurrencyuimanager.h b/linden/indra/newview/llcurrencyuimanager.h index 8a8dee7..a9fafe1 100644 --- a/linden/indra/newview/llcurrencyuimanager.h +++ b/linden/indra/newview/llcurrencyuimanager.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcylinder.cpp b/linden/indra/newview/llcylinder.cpp index ce95c91..9b146a3 100644 --- a/linden/indra/newview/llcylinder.cpp +++ b/linden/indra/newview/llcylinder.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llcylinder.h b/linden/indra/newview/llcylinder.h index 3a76595..b4ec9c6 100644 --- a/linden/indra/newview/llcylinder.h +++ b/linden/indra/newview/llcylinder.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldebugmessagebox.cpp b/linden/indra/newview/lldebugmessagebox.cpp index 82c98e2..4afbde3 100644 --- a/linden/indra/newview/lldebugmessagebox.cpp +++ b/linden/indra/newview/lldebugmessagebox.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldebugmessagebox.h b/linden/indra/newview/lldebugmessagebox.h index c8c0bd3..ae0b56e 100644 --- a/linden/indra/newview/lldebugmessagebox.h +++ b/linden/indra/newview/lldebugmessagebox.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldebugview.cpp b/linden/indra/newview/lldebugview.cpp index 717a72a..a512d62 100644 --- a/linden/indra/newview/lldebugview.cpp +++ b/linden/indra/newview/lldebugview.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldebugview.h b/linden/indra/newview/lldebugview.h index b0f1e7f..edaf253 100644 --- a/linden/indra/newview/lldebugview.h +++ b/linden/indra/newview/lldebugview.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldirpicker.cpp b/linden/indra/newview/lldirpicker.cpp index 8dd1ddf..532e375 100644 --- a/linden/indra/newview/lldirpicker.cpp +++ b/linden/indra/newview/lldirpicker.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldirpicker.h b/linden/indra/newview/lldirpicker.h index 61ec609..ac03644 100644 --- a/linden/indra/newview/lldirpicker.h +++ b/linden/indra/newview/lldirpicker.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawable.cpp b/linden/indra/newview/lldrawable.cpp index c253105..a86fc07 100644 --- a/linden/indra/newview/lldrawable.cpp +++ b/linden/indra/newview/lldrawable.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -1036,12 +1036,15 @@ F32 LLDrawable::getVisibilityRadius() const } else if (isLight()) { - return llmax(getRadius(), getVOVolume()->getLightRadius()); - } - else - { - return getRadius(); + const LLVOVolume *vov = getVOVolume(); + if (vov) + { + return llmax(getRadius(), vov->getLightRadius()); + } else { + // llwarns ? + } } + return getRadius(); } void LLDrawable::updateUVMinMax() diff --git a/linden/indra/newview/lldrawable.h b/linden/indra/newview/lldrawable.h index 49babad..1903587 100644 --- a/linden/indra/newview/lldrawable.h +++ b/linden/indra/newview/lldrawable.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpool.cpp b/linden/indra/newview/lldrawpool.cpp index c86b887..a3bdfdc 100644 --- a/linden/indra/newview/lldrawpool.cpp +++ b/linden/indra/newview/lldrawpool.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpool.h b/linden/indra/newview/lldrawpool.h index c2c8a16..f283abd 100644 --- a/linden/indra/newview/lldrawpool.h +++ b/linden/indra/newview/lldrawpool.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpoolalpha.cpp b/linden/indra/newview/lldrawpoolalpha.cpp index 4d2c82d..24cf8e7 100644 --- a/linden/indra/newview/lldrawpoolalpha.cpp +++ b/linden/indra/newview/lldrawpoolalpha.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpoolalpha.h b/linden/indra/newview/lldrawpoolalpha.h index 5dfd8a3..c7709f7 100644 --- a/linden/indra/newview/lldrawpoolalpha.h +++ b/linden/indra/newview/lldrawpoolalpha.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpoolavatar.cpp b/linden/indra/newview/lldrawpoolavatar.cpp index b2a7c87..6e22632 100644 --- a/linden/indra/newview/lldrawpoolavatar.cpp +++ b/linden/indra/newview/lldrawpoolavatar.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpoolavatar.h b/linden/indra/newview/lldrawpoolavatar.h index ab0d40d..a521e57 100644 --- a/linden/indra/newview/lldrawpoolavatar.h +++ b/linden/indra/newview/lldrawpoolavatar.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpoolbump.cpp b/linden/indra/newview/lldrawpoolbump.cpp index 967325c..51a7749 100644 --- a/linden/indra/newview/lldrawpoolbump.cpp +++ b/linden/indra/newview/lldrawpoolbump.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpoolbump.h b/linden/indra/newview/lldrawpoolbump.h index ceecaf8..665529e 100644 --- a/linden/indra/newview/lldrawpoolbump.h +++ b/linden/indra/newview/lldrawpoolbump.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpoolclouds.cpp b/linden/indra/newview/lldrawpoolclouds.cpp index 5cf96fa..a7d0b8e 100644 --- a/linden/indra/newview/lldrawpoolclouds.cpp +++ b/linden/indra/newview/lldrawpoolclouds.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpoolclouds.h b/linden/indra/newview/lldrawpoolclouds.h index e68bdb9..b350ad0 100644 --- a/linden/indra/newview/lldrawpoolclouds.h +++ b/linden/indra/newview/lldrawpoolclouds.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpoolground.cpp b/linden/indra/newview/lldrawpoolground.cpp index b3d3969..6ff7f06 100644 --- a/linden/indra/newview/lldrawpoolground.cpp +++ b/linden/indra/newview/lldrawpoolground.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpoolground.h b/linden/indra/newview/lldrawpoolground.h index c285103..5cdce7b 100644 --- a/linden/indra/newview/lldrawpoolground.h +++ b/linden/indra/newview/lldrawpoolground.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpoolsimple.cpp b/linden/indra/newview/lldrawpoolsimple.cpp index 8a7ef72..7e6c3dd 100644 --- a/linden/indra/newview/lldrawpoolsimple.cpp +++ b/linden/indra/newview/lldrawpoolsimple.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpoolsimple.h b/linden/indra/newview/lldrawpoolsimple.h index 60502e9..8eeb8ed 100644 --- a/linden/indra/newview/lldrawpoolsimple.h +++ b/linden/indra/newview/lldrawpoolsimple.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpoolsky.cpp b/linden/indra/newview/lldrawpoolsky.cpp index e4d937b..127c5c5 100644 --- a/linden/indra/newview/lldrawpoolsky.cpp +++ b/linden/indra/newview/lldrawpoolsky.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpoolsky.h b/linden/indra/newview/lldrawpoolsky.h index f529451..fe4cc36 100644 --- a/linden/indra/newview/lldrawpoolsky.h +++ b/linden/indra/newview/lldrawpoolsky.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpoolstars.cpp b/linden/indra/newview/lldrawpoolstars.cpp index f52e58a..3f9c8db 100644 --- a/linden/indra/newview/lldrawpoolstars.cpp +++ b/linden/indra/newview/lldrawpoolstars.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpoolstars.h b/linden/indra/newview/lldrawpoolstars.h index ad39d40..05b7f9e 100644 --- a/linden/indra/newview/lldrawpoolstars.h +++ b/linden/indra/newview/lldrawpoolstars.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpoolterrain.cpp b/linden/indra/newview/lldrawpoolterrain.cpp index 95d669b..e315259 100644 --- a/linden/indra/newview/lldrawpoolterrain.cpp +++ b/linden/indra/newview/lldrawpoolterrain.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpoolterrain.h b/linden/indra/newview/lldrawpoolterrain.h index 40ce508..80a1fcb 100644 --- a/linden/indra/newview/lldrawpoolterrain.h +++ b/linden/indra/newview/lldrawpoolterrain.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpooltree.cpp b/linden/indra/newview/lldrawpooltree.cpp index f4b48c2..f5971be 100644 --- a/linden/indra/newview/lldrawpooltree.cpp +++ b/linden/indra/newview/lldrawpooltree.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpooltree.h b/linden/indra/newview/lldrawpooltree.h index 5e196bc..bf18b65 100644 --- a/linden/indra/newview/lldrawpooltree.h +++ b/linden/indra/newview/lldrawpooltree.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldrawpoolwater.cpp b/linden/indra/newview/lldrawpoolwater.cpp index dde2193..e796d56 100644 --- a/linden/indra/newview/lldrawpoolwater.cpp +++ b/linden/indra/newview/lldrawpoolwater.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -567,7 +567,15 @@ void LLDrawPoolWater::shade() LLCubeMap* skyMap = gSky.mVOSkyp->getCubeMap(); gWaterProgram.enableTexture(LLShaderMgr::ENVIRONMENT_MAP, GL_TEXTURE_CUBE_MAP_ARB); - skyMap->bind(); + + if (skyMap) + { + skyMap->bind(); + } + else + { + llwarns << "NULL gSky.mVOSkyp->getCubeMap(), not binding." << llendl; + } //bind normal map S32 bumpTex = gWaterProgram.enableTexture(LLShaderMgr::BUMP_MAP); diff --git a/linden/indra/newview/lldrawpoolwater.h b/linden/indra/newview/lldrawpoolwater.h index a23ff6b..b6569ee 100644 --- a/linden/indra/newview/lldrawpoolwater.h +++ b/linden/indra/newview/lldrawpoolwater.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldriverparam.cpp b/linden/indra/newview/lldriverparam.cpp index 8c3d7d8..dcae69d 100644 --- a/linden/indra/newview/lldriverparam.cpp +++ b/linden/indra/newview/lldriverparam.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldriverparam.h b/linden/indra/newview/lldriverparam.h index a0aa848..d767d6b 100644 --- a/linden/indra/newview/lldriverparam.h +++ b/linden/indra/newview/lldriverparam.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldynamictexture.cpp b/linden/indra/newview/lldynamictexture.cpp index 11111f4..aba87e2 100644 --- a/linden/indra/newview/lldynamictexture.cpp +++ b/linden/indra/newview/lldynamictexture.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lldynamictexture.h b/linden/indra/newview/lldynamictexture.h index c016ee5..23b3c64 100644 --- a/linden/indra/newview/lldynamictexture.h +++ b/linden/indra/newview/lldynamictexture.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llemote.cpp b/linden/indra/newview/llemote.cpp index 2cd5e4a..0a65e1e 100644 --- a/linden/indra/newview/llemote.cpp +++ b/linden/indra/newview/llemote.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llemote.h b/linden/indra/newview/llemote.h index 4862865..9bc5128 100644 --- a/linden/indra/newview/llemote.h +++ b/linden/indra/newview/llemote.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lleventinfo.cpp b/linden/indra/newview/lleventinfo.cpp index bd550c9..2a7dcde 100644 --- a/linden/indra/newview/lleventinfo.cpp +++ b/linden/indra/newview/lleventinfo.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lleventinfo.h b/linden/indra/newview/lleventinfo.h index 8d3479d..5741478 100644 --- a/linden/indra/newview/lleventinfo.h +++ b/linden/indra/newview/lleventinfo.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lleventnotifier.cpp b/linden/indra/newview/lleventnotifier.cpp index d807237..9451667 100644 --- a/linden/indra/newview/lleventnotifier.cpp +++ b/linden/indra/newview/lleventnotifier.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lleventnotifier.h b/linden/indra/newview/lleventnotifier.h index bbe3e79..773779c 100644 --- a/linden/indra/newview/lleventnotifier.h +++ b/linden/indra/newview/lleventnotifier.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lleventpoll.cpp b/linden/indra/newview/lleventpoll.cpp index b21ca1a..f00c05b 100644 --- a/linden/indra/newview/lleventpoll.cpp +++ b/linden/indra/newview/lleventpoll.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lleventpoll.h b/linden/indra/newview/lleventpoll.h index dbdb759..a726ede 100644 --- a/linden/indra/newview/lleventpoll.h +++ b/linden/indra/newview/lleventpoll.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llface.cpp b/linden/indra/newview/llface.cpp index 875059a..058c506 100644 --- a/linden/indra/newview/llface.cpp +++ b/linden/indra/newview/llface.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llface.h b/linden/indra/newview/llface.h index 3eb6d30..5336d1c 100644 --- a/linden/indra/newview/llface.h +++ b/linden/indra/newview/llface.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llface.inl b/linden/indra/newview/llface.inl index 896cc69..2cb1654 100644 --- a/linden/indra/newview/llface.inl +++ b/linden/indra/newview/llface.inl @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfasttimerview.cpp b/linden/indra/newview/llfasttimerview.cpp index 4181aa1..14dc08c 100644 --- a/linden/indra/newview/llfasttimerview.cpp +++ b/linden/indra/newview/llfasttimerview.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfasttimerview.h b/linden/indra/newview/llfasttimerview.h index 452133d..7c1acff 100644 --- a/linden/indra/newview/llfasttimerview.h +++ b/linden/indra/newview/llfasttimerview.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfeaturemanager.cpp b/linden/indra/newview/llfeaturemanager.cpp index 947e6ad..56e0469 100644 --- a/linden/indra/newview/llfeaturemanager.cpp +++ b/linden/indra/newview/llfeaturemanager.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -372,10 +372,14 @@ void LLFeatureManager::loadGPUClass() char* ex = strtok(expr, ".*"); char* rnd = (char*) renderer.c_str(); - + while (ex != NULL && rnd != NULL) { rnd = strstr(rnd, ex); + if (rnd != NULL) + { + rnd += strlen(ex); + } ex = strtok(NULL, ".*"); } diff --git a/linden/indra/newview/llfeaturemanager.h b/linden/indra/newview/llfeaturemanager.h index 964cce0..1ee62b4 100644 --- a/linden/indra/newview/llfeaturemanager.h +++ b/linden/indra/newview/llfeaturemanager.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfilepicker.cpp b/linden/indra/newview/llfilepicker.cpp index 5f786ef..107c271 100644 --- a/linden/indra/newview/llfilepicker.cpp +++ b/linden/indra/newview/llfilepicker.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfilepicker.h b/linden/indra/newview/llfilepicker.h index f004646..c6a11a4 100644 --- a/linden/indra/newview/llfilepicker.h +++ b/linden/indra/newview/llfilepicker.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfirstuse.cpp b/linden/indra/newview/llfirstuse.cpp index 8392552..b17bbc3 100644 --- a/linden/indra/newview/llfirstuse.cpp +++ b/linden/indra/newview/llfirstuse.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfirstuse.h b/linden/indra/newview/llfirstuse.h index 17757d4..748f4f5 100644 --- a/linden/indra/newview/llfirstuse.h +++ b/linden/indra/newview/llfirstuse.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llflexibleobject.cpp b/linden/indra/newview/llflexibleobject.cpp index 0bf6eba..eb9b927 100644 --- a/linden/indra/newview/llflexibleobject.cpp +++ b/linden/indra/newview/llflexibleobject.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llflexibleobject.h b/linden/indra/newview/llflexibleobject.h index 422f2fc..a14a143 100644 --- a/linden/indra/newview/llflexibleobject.h +++ b/linden/indra/newview/llflexibleobject.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterabout.cpp b/linden/indra/newview/llfloaterabout.cpp index dc5b6f5..47ecdff 100644 --- a/linden/indra/newview/llfloaterabout.cpp +++ b/linden/indra/newview/llfloaterabout.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterabout.h b/linden/indra/newview/llfloaterabout.h index a2d5cf0..b58f8cc 100644 --- a/linden/indra/newview/llfloaterabout.h +++ b/linden/indra/newview/llfloaterabout.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloateractivespeakers.cpp b/linden/indra/newview/llfloateractivespeakers.cpp index fb50717..877ebca 100644 --- a/linden/indra/newview/llfloateractivespeakers.cpp +++ b/linden/indra/newview/llfloateractivespeakers.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -45,6 +45,7 @@ #include "llviewerobjectlist.h" #include "llimpanel.h" // LLVoiceChannel #include "llsdutil.h" +#include "llimview.h" const F32 SPEAKER_TIMEOUT = 10.f; // seconds of not being on voice channel before removed from list of active speakers const LLColor4 INACTIVE_COLOR(0.3f, 0.3f, 0.3f, 0.5f); @@ -65,7 +66,10 @@ LLSpeaker::LLSpeaker(const LLUUID& id, const LLString& name, const ESpeakerType mID(id), mTyping(FALSE), mSortIndex(0), - mType(type) + mType(type), + mIsModerator(FALSE), + mModeratorMutedVoice(FALSE), + mModeratorMutedText(FALSE) { mHandle.init(); sSpeakers.insert(std::make_pair(mHandle, this)); @@ -77,6 +81,9 @@ LLSpeaker::LLSpeaker(const LLUUID& id, const LLString& name, const ESpeakerType { mDisplayName = name; } + + gVoiceClient->setUserVolume(id, gMuteListp->getSavedResidentVolume(id)); + mActivityTimer.resetWithExpiry(SPEAKER_TIMEOUT); } @@ -107,6 +114,27 @@ void LLSpeaker::onAvatarNameLookup(const LLUUID& id, const char* first, const ch } } +LLSpeakerTextModerationEvent::LLSpeakerTextModerationEvent(LLSpeaker* source) +: LLEvent(source, "Speaker text moderation event") +{ +} + +LLSD LLSpeakerTextModerationEvent::getValue() +{ + return LLString("text"); +} + + +LLSpeakerVoiceModerationEvent::LLSpeakerVoiceModerationEvent(LLSpeaker* source) +: LLEvent(source, "Speaker voice moderation event") +{ +} + +LLSD LLSpeakerVoiceModerationEvent::getValue() +{ + return LLString("voice"); +} + // helper sort class struct LLSortRecentSpeakers @@ -132,6 +160,10 @@ bool LLSortRecentSpeakers::operator()(const LLPointer lhs, const LLPo return( lhs->mDisplayName.compare(rhs->mDisplayName) < 0 ); } +// +// LLFloaterActiveSpeakers +// + LLFloaterActiveSpeakers::LLFloaterActiveSpeakers(const LLSD& seed) : mPanel(NULL) { mFactoryMap["active_speakers_panel"] = LLCallbackMap(createSpeakersPanel, NULL); @@ -177,6 +209,26 @@ void* LLFloaterActiveSpeakers::createSpeakersPanel(void* data) return new LLPanelActiveSpeakers(gActiveChannelSpeakerMgr, FALSE); } +// +// LLPanelActiveSpeakers::LLSpeakerListener +// +bool LLPanelActiveSpeakers::LLSpeakerListener::handleEvent(LLPointer event, const LLSD& userdata) +{ + LLPointer speakerp = (LLSpeaker*)event->getSource(); + if (speakerp.isNull()) return false; + + // update UI on confirmation of moderator mutes + if (event->getValue().asString() == "voice") + { + mPanel->childSetValue("moderator_allow_voice", !speakerp->mModeratorMutedVoice); + } + if (event->getValue().asString() == "text") + { + mPanel->childSetValue("moderator_allow_text", !speakerp->mModeratorMutedText); + } + return true; +} + // // LLPanelActiveSpeakers @@ -191,6 +243,7 @@ LLPanelActiveSpeakers::LLPanelActiveSpeakers(LLSpeakerMgr* data_source, BOOL sho mSpeakerMgr(data_source) { setMouseOpaque(FALSE); + mSpeakerListener = new LLSpeakerListener(this); } LLPanelActiveSpeakers::~LLPanelActiveSpeakers() @@ -201,6 +254,10 @@ LLPanelActiveSpeakers::~LLPanelActiveSpeakers() BOOL LLPanelActiveSpeakers::postBuild() { mSpeakerList = LLUICtrlFactory::getScrollListByName(this, "speakers_list"); + mSpeakerList->setDoubleClickCallback(onDoubleClickSpeaker); + mSpeakerList->setCommitOnSelectionChange(TRUE); + mSpeakerList->setCommitCallback(onSelectSpeaker); + mSpeakerList->setCallbackUserData(this); mMuteTextCtrl = (LLUICtrl*)getCtrlByNameAndType("mute_text_btn", WIDGET_TYPE_DONTCARE); childSetCommitCallback("mute_text_btn", onClickMuteTextCommit, this); @@ -215,13 +272,39 @@ BOOL LLPanelActiveSpeakers::postBuild() mProfileBtn = LLUICtrlFactory::getButtonByName(this, "profile_btn"); childSetAction("profile_btn", onClickProfile, this); + + childSetCommitCallback("moderator_allow_voice", onModeratorMuteVoice, this); + childSetCommitCallback("moderator_allow_text", onModeratorMuteText, this); + childSetCommitCallback("moderation_mode", onChangeModerationMode, this); + + // update speaker UI + handleSpeakerSelect(); + return TRUE; } +void LLPanelActiveSpeakers::handleSpeakerSelect() +{ + LLUUID speaker_id = mSpeakerList->getValue().asUUID(); + LLPointer selected_speakerp = mSpeakerMgr->findSpeaker(speaker_id); + + if (selected_speakerp.notNull()) + { + // since setting these values is delayed by a round trip to the Vivox servers + // update them only when selecting a new speaker or + // asynchronously when an update arrives + childSetValue("moderator_allow_voice", selected_speakerp ? !selected_speakerp->mModeratorMutedVoice : TRUE); + childSetValue("moderator_allow_text", selected_speakerp ? !selected_speakerp->mModeratorMutedText : TRUE); + + mSpeakerListener->clearDispatchers(); + selected_speakerp->addListener(mSpeakerListener); + } +} + void LLPanelActiveSpeakers::refreshSpeakers() { // store off current selection and scroll state to preserve across list rebuilds - LLUUID selected_id = mSpeakerList->getSimpleSelectedValue().asUUID(); + LLUUID selected_id = mSpeakerList->getSelectedValue().asUUID(); S32 scroll_pos = mSpeakerList->getScrollInterface()->getScrollPos(); BOOL sort_ascending = mSpeakerList->getSortAscending(); @@ -253,7 +336,6 @@ void LLPanelActiveSpeakers::refreshSpeakers() row["columns"][0]["column"] = "icon_speaking_status"; row["columns"][0]["type"] = "icon"; - row["columns"][0]["color"] = speakerp->mDotColor.getValue(); LLString icon_image_id; S32 icon_image_idx = llmin(2, llfloor((speakerp->mSpeechVolume / LLVoiceClient::OVERDRIVEN_POWER_LEVEL) * 3.f)); @@ -288,8 +370,33 @@ void LLPanelActiveSpeakers::refreshSpeakers() // } //} - row["columns"][0]["value"] = (speakerp->mStatus == LLSpeaker::STATUS_MUTED) ? - gViewerArt.getString("mute_icon.tga") : icon_image_id; + LLColor4 icon_color; + if (speakerp->mStatus == LLSpeaker::STATUS_MUTED) + { + row["columns"][0]["value"] = gViewerArt.getString("mute_icon.tga"); + if(speakerp->mModeratorMutedVoice) + { + icon_color.setVec(0.5f, 0.5f, 0.5f, 1.f); + } + else + { + icon_color.setVec(1.f, 71.f / 255.f, 71.f / 255.f, 1.f); + } + } + else + { + row["columns"][0]["value"] = icon_image_id; + icon_color = speakerp->mDotColor; + + if (speakerp->mStatus > LLSpeaker::STATUS_VOICE_ACTIVE) // if voice is disabled for this speaker + { + // non voice speakers have hidden icons, render as transparent + icon_color.setVec(0.f, 0.f, 0.f, 0.f); + } + } + + row["columns"][0]["color"] = icon_color.getValue(); + if (speakerp->mStatus > LLSpeaker::STATUS_VOICE_ACTIVE && speakerp->mStatus != LLSpeaker::STATUS_MUTED) // if voice is disabled for this speaker { // non voice speakers have hidden icons, render as transparent @@ -303,15 +410,23 @@ void LLPanelActiveSpeakers::refreshSpeakers() row["columns"][1]["color"] = LLColor4::grey4.getValue(); } + LLString speaker_name; if (speakerp->mDisplayName.empty()) { - row["columns"][1]["value"] = LLCacheName::getDefaultName(); + speaker_name = LLCacheName::getDefaultName(); } else { - row["columns"][1]["value"] = speakerp->mDisplayName; + speaker_name = speakerp->mDisplayName; } + if (speakerp->mIsModerator) + { + speaker_name += LLString(" ") + getFormattedUIString("moderator_label"); + } + row["columns"][1]["value"] = speaker_name; + row["columns"][1]["font-style"] = speakerp->mIsModerator ? "BOLD" : "NORMAL"; + row["columns"][2]["column"] = "speaking_status"; row["columns"][2]["type"] = "text"; @@ -323,17 +438,28 @@ void LLPanelActiveSpeakers::refreshSpeakers() //restore sort order, selection, etc mSpeakerList->sortByColumn(sort_column, sort_ascending); + + // temporarily disable commit callback while restoring original selection + mSpeakerList->setCommitCallback(NULL); + // make sure something is selected if (selected_id.isNull()) { mSpeakerList->selectFirstItem(); + handleSpeakerSelect(); } else { + // reselect original speaker but don't call handleSpeakerSelect() + // as that would change the moderation mute checkboxes before they + // have had time to get confirmation from the server mSpeakerList->selectByValue(selected_id); } - LLPointer speakerp = mSpeakerMgr->findSpeaker(selected_id); + mSpeakerList->setCommitCallback(onSelectSpeaker); + + LLPointer selected_speakerp = mSpeakerMgr->findSpeaker(selected_id); + if (gMuteListp) { @@ -341,31 +467,53 @@ void LLPanelActiveSpeakers::refreshSpeakers() if (mMuteVoiceCtrl) { mMuteVoiceCtrl->setValue(gMuteListp->isMuted(selected_id, LLMute::flagVoiceChat)); - mMuteVoiceCtrl->setEnabled(selected_id.notNull() + mMuteVoiceCtrl->setEnabled(LLVoiceClient::voiceEnabled() + && gVoiceClient->getVoiceEnabled(selected_id) + && selected_id.notNull() && selected_id != gAgent.getID() - && (speakerp.notNull() && speakerp->mType == LLSpeaker::SPEAKER_AGENT)); + && (selected_speakerp.notNull() && selected_speakerp->mType == LLSpeaker::SPEAKER_AGENT)); } if (mMuteTextCtrl) { mMuteTextCtrl->setValue(gMuteListp->isMuted(selected_id, LLMute::flagTextChat)); - mMuteTextCtrl->setEnabled(selected_id.notNull() && selected_id != gAgent.getID() && speakerp.notNull() && !gMuteListp->isLinden(speakerp->mDisplayName)); - } - childSetValue("speaker_volume", gVoiceClient->getUserVolume(selected_id)); - childSetEnabled("speaker_volume", selected_id.notNull() - && selected_id != gAgent.getID() - && (speakerp.notNull() && speakerp->mType == LLSpeaker::SPEAKER_AGENT)); - if (mProfileBtn) - { - mProfileBtn->setEnabled(selected_id.notNull()); + mMuteTextCtrl->setEnabled(selected_id.notNull() + && selected_id != gAgent.getID() + && selected_speakerp.notNull() + && !gMuteListp->isLinden(selected_speakerp->mDisplayName)); } } + childSetValue("speaker_volume", gVoiceClient->getUserVolume(selected_id)); + childSetEnabled("speaker_volume", LLVoiceClient::voiceEnabled() + && gVoiceClient->getVoiceEnabled(selected_id) + && selected_id.notNull() + && selected_id != gAgent.getID() + && (selected_speakerp.notNull() && selected_speakerp->mType == LLSpeaker::SPEAKER_AGENT)); + + childSetEnabled( + "moderator_controls_label", + selected_id.notNull()); + + childSetEnabled( + "moderator_allow_voice", + selected_id.notNull() + && mSpeakerMgr->isVoiceActive() + && gVoiceClient->getVoiceEnabled(selected_id)); + + childSetEnabled( + "moderator_allow_text", + selected_id.notNull()); + + if (mProfileBtn) + { + mProfileBtn->setEnabled(selected_id.notNull()); + } // show selected user name in large font if (mNameText) { - if (speakerp) + if (selected_speakerp) { - mNameText->setValue(speakerp->mDisplayName); + mNameText->setValue(selected_speakerp->mDisplayName); } else { @@ -373,6 +521,14 @@ void LLPanelActiveSpeakers::refreshSpeakers() } } + //update moderator capabilities + LLPointer self_speakerp = mSpeakerMgr->findSpeaker(gAgent.getID()); + if(self_speakerp) + { + childSetVisible("moderation_mode_panel", self_speakerp->mIsModerator && mSpeakerMgr->isVoiceActive()); + childSetVisible("moderator_controls", self_speakerp->mIsModerator); + } + // keep scroll value stable mSpeakerList->getScrollInterface()->setScrollPos(scroll_pos); } @@ -382,6 +538,20 @@ void LLPanelActiveSpeakers::setSpeaker(const LLUUID& id, const LLString& name, L mSpeakerMgr->setSpeaker(id, name, status, type); } +void LLPanelActiveSpeakers::setVoiceModerationCtrlMode( + const BOOL& moderated_voice) +{ + LLUICtrl* voice_moderation_ctrl = (LLUICtrl*) getChildByName( + "moderation_mode", TRUE); //recursive lookup + + if ( voice_moderation_ctrl ) + { + std::string value; + + value = moderated_voice ? "moderated" : "unmoderated"; + voice_moderation_ctrl->setValue(value); + } +} //static void LLPanelActiveSpeakers::onClickMuteTextCommit(LLUICtrl* ctrl, void* user_data) @@ -454,7 +624,11 @@ void LLPanelActiveSpeakers::onVolumeChange(LLUICtrl* source, void* user_data) LLPanelActiveSpeakers* panelp = (LLPanelActiveSpeakers*)user_data; LLUUID speaker_id = panelp->mSpeakerList->getValue().asUUID(); - gVoiceClient->setUserVolume(speaker_id, (F32)panelp->childGetValue("speaker_volume").asReal()); + F32 new_volume = (F32)panelp->childGetValue("speaker_volume").asReal(); + gVoiceClient->setUserVolume(speaker_id, new_volume); + + // store this volume setting for future sessions + gMuteListp->setSavedResidentVolume(speaker_id, new_volume); } //static @@ -465,7 +639,190 @@ void LLPanelActiveSpeakers::onClickProfile(void* user_data) LLFloaterAvatarInfo::showFromDirectory(speaker_id); } - + +//static +void LLPanelActiveSpeakers::onDoubleClickSpeaker(void* user_data) +{ + LLPanelActiveSpeakers* panelp = (LLPanelActiveSpeakers*)user_data; + LLUUID speaker_id = panelp->mSpeakerList->getValue().asUUID(); + + LLPointer speakerp = panelp->mSpeakerMgr->findSpeaker(speaker_id); + + if (speaker_id != gAgent.getID() && speakerp.notNull()) + { + gIMMgr->addSession(speakerp->mDisplayName, IM_NOTHING_SPECIAL, speaker_id); + } +} + +//static +void LLPanelActiveSpeakers::onSelectSpeaker(LLUICtrl* source, void* user_data) +{ + LLPanelActiveSpeakers* panelp = (LLPanelActiveSpeakers*)user_data; + panelp->handleSpeakerSelect(); +} + +//static +void LLPanelActiveSpeakers::onModeratorMuteVoice(LLUICtrl* ctrl, void* user_data) +{ + LLPanelActiveSpeakers* self = (LLPanelActiveSpeakers*)user_data; + LLUICtrl* speakers_list = (LLUICtrl*)self->getChildByName("speakers_list", TRUE); + if (!speakers_list || !gAgent.getRegion()) return; + + std::string url = gAgent.getRegion()->getCapability("ChatSessionRequest"); + LLSD data; + data["method"] = "mute update"; + data["session-id"] = self->mSpeakerMgr->getSessionID(); + data["params"] = LLSD::emptyMap(); + data["params"]["agent_id"] = speakers_list->getValue(); + data["params"]["mutes"] = LLSD::emptyMap(); + // ctrl value represents ability to type, so invert + data["params"]["mutes"]["voice"] = !ctrl->getValue(); + + class MuteVoiceResponder : public LLHTTPClient::Responder + { + public: + MuteVoiceResponder(const LLUUID& session_id) + { + mSessionID = session_id; + } + + virtual void error(U32 status, const std::string& reason) + { + llwarns << status << ": " << reason << llendl; + + if ( gIMMgr ) + { + //403 == you're not a mod + //should be disabled if you're not a moderator + LLFloaterIMPanel* floaterp; + + floaterp = gIMMgr->findFloaterBySession(mSessionID); + + if ( floaterp ) + { + if ( 403 == status ) + { + floaterp->showSessionEventError( + "mute", + "not_a_moderator"); + } + else + { + floaterp->showSessionEventError( + "mute", + "generic"); + } + } + } + } + + private: + LLUUID mSessionID; + }; + + LLHTTPClient::post( + url, + data, + new MuteVoiceResponder(self->mSpeakerMgr->getSessionID())); +} + +//static +void LLPanelActiveSpeakers::onModeratorMuteText(LLUICtrl* ctrl, void* user_data) +{ + LLPanelActiveSpeakers* self = (LLPanelActiveSpeakers*)user_data; + LLUICtrl* speakers_list = (LLUICtrl*)self->getChildByName("speakers_list", TRUE); + if (!speakers_list || !gAgent.getRegion()) return; + + std::string url = gAgent.getRegion()->getCapability("ChatSessionRequest"); + LLSD data; + data["method"] = "mute update"; + data["session-id"] = self->mSpeakerMgr->getSessionID(); + data["params"] = LLSD::emptyMap(); + data["params"]["agent_id"] = speakers_list->getValue(); + data["params"]["mutes"] = LLSD::emptyMap(); + // ctrl value represents ability to type, so invert + data["params"]["mutes"]["text"] = !ctrl->getValue(); + + class MuteTextResponder : public LLHTTPClient::Responder + { + public: + MuteTextResponder(const LLUUID& session_id) + { + mSessionID = session_id; + } + + virtual void error(U32 status, const std::string& reason) + { + llwarns << status << ": " << reason << llendl; + + if ( gIMMgr ) + { + //403 == you're not a mod + //should be disabled if you're not a moderator + LLFloaterIMPanel* floaterp; + + floaterp = gIMMgr->findFloaterBySession(mSessionID); + + if ( floaterp ) + { + if ( 403 == status ) + { + floaterp->showSessionEventError( + "mute", + "not_a_moderator"); + } + else + { + floaterp->showSessionEventError( + "mute", + "generic"); + } + } + } + } + + private: + LLUUID mSessionID; + }; + + LLHTTPClient::post( + url, + data, + new MuteTextResponder(self->mSpeakerMgr->getSessionID())); +} + +//static +void LLPanelActiveSpeakers::onChangeModerationMode(LLUICtrl* ctrl, void* user_data) +{ + LLPanelActiveSpeakers* self = (LLPanelActiveSpeakers*)user_data; + if (!gAgent.getRegion()) return; + + std::string url = gAgent.getRegion()->getCapability("ChatSessionRequest"); + LLSD data; + data["method"] = "session update"; + data["session-id"] = self->mSpeakerMgr->getSessionID(); + data["params"] = LLSD::emptyMap(); + data["params"]["moderated_mode"] = LLSD::emptyMap(); + if (ctrl->getValue().asString() == "unmoderated") + { + data["params"]["moderated_mode"]["voice"] = false; + } + else if (ctrl->getValue().asString() == "moderated") + { + data["params"]["moderated_mode"]["voice"] = true; + } + + struct ModerationModeResponder : public LLHTTPClient::Responder + { + virtual void error(U32 status, const std::string& reason) + { + llwarns << status << ": " << reason << llendl; + } + }; + + LLHTTPClient::post(url, data, new ModerationModeResponder()); +} + // // LLSpeakerMgr // @@ -537,11 +894,16 @@ void LLSpeakerMgr::update() if (voice_channel_active && gVoiceClient->getVoiceEnabled(speaker_id)) { speakerp->mSpeechVolume = gVoiceClient->getCurrentPower(speaker_id); + BOOL moderator_muted_voice = gVoiceClient->getIsModeratorMuted(speaker_id); + if (moderator_muted_voice != speakerp->mModeratorMutedVoice) + { + speakerp->mModeratorMutedVoice = moderator_muted_voice; + speakerp->fireEvent(new LLSpeakerVoiceModerationEvent(speakerp)); + } - if (gVoiceClient->getOnMuteList(speaker_id)) + if (gVoiceClient->getOnMuteList(speaker_id) || speakerp->mModeratorMutedVoice) { speakerp->mStatus = LLSpeaker::STATUS_MUTED; - speakerp->mDotColor = LLColor4::white; } else if (gVoiceClient->getIsSpeaking(speaker_id)) { @@ -663,6 +1025,12 @@ void LLSpeakerMgr::getSpeakerList(speaker_list_t* speaker_list, BOOL include_tex } } +const LLUUID LLSpeakerMgr::getSessionID() +{ + return mVoiceChannel->getSessionID(); +} + + void LLSpeakerMgr::setSpeakerTyping(const LLUUID& speaker_id, BOOL typing) { LLPointer speakerp = findSpeaker(speaker_id); @@ -704,57 +1072,134 @@ void LLIMSpeakerMgr::updateSpeakerList() return; } -void LLIMSpeakerMgr::processSpeakerList(LLSD list) +void LLIMSpeakerMgr::setSpeakers(const LLSD& speakers) { - for(LLSD::array_iterator list_it = list.beginArray(); - list_it != list.endArray(); - ++list_it) + if ( !speakers.isMap() ) return; + + if ( speakers.has("agent_info") && speakers["agent_info"].isMap() ) { - LLUUID agent_id(list_it->asUUID()); + LLSD::map_const_iterator speaker_it; + for(speaker_it = speakers["agent_info"].beginMap(); + speaker_it != speakers["agent_info"].endMap(); + ++speaker_it) + { + LLUUID agent_id(speaker_it->first); - setSpeaker(agent_id, "", LLSpeaker::STATUS_TEXT_ONLY); + LLPointer speakerp = setSpeaker( + agent_id, + "", + LLSpeaker::STATUS_TEXT_ONLY); + + if ( speaker_it->second.isMap() ) + { + speakerp->mIsModerator = speaker_it->second["is_moderator"]; + speakerp->mModeratorMutedText = + speaker_it->second["mutes"]["text"]; + } + } + } + else if ( speakers.has("agents" ) && speakers["agents"].isArray() ) + { + //older, more decprecated way. Need here for + //using older version of servers + LLSD::array_const_iterator speaker_it; + for(speaker_it = speakers["agents"].beginArray(); + speaker_it != speakers["agents"].endArray(); + ++speaker_it) + { + const LLUUID agent_id = (*speaker_it).asUUID(); + + LLPointer speakerp = setSpeaker( + agent_id, + "", + LLSpeaker::STATUS_TEXT_ONLY); + } } } -void LLIMSpeakerMgr::processSpeakerMap(LLSD map) +void LLIMSpeakerMgr::updateSpeakers(const LLSD& update) { - for(LLSD::map_iterator map_it = map.beginMap(); - map_it != map.endMap(); - ++map_it) + if ( !update.isMap() ) return; + + if ( update.has("agent_updates") && update["agent_updates"].isMap() ) { - // add as new speaker - setSpeaker(LLUUID(map_it->first)); - } -} + LLSD::map_const_iterator update_it; + for( + update_it = update["agent_updates"].beginMap(); + update_it != update["agent_updates"].endMap(); + ++update_it) + { + LLUUID agent_id(update_it->first); + LLPointer speakerp = findSpeaker(agent_id); + LLSD agent_data = update_it->second; + if (agent_data.isMap() && agent_data.has("transition")) + { + if (agent_data["transition"].asString() == "LEAVE" && speakerp.notNull()) + { + speakerp->mStatus = LLSpeaker::STATUS_NOT_IN_CHANNEL; + speakerp->mDotColor = INACTIVE_COLOR; + speakerp->mActivityTimer.resetWithExpiry(SPEAKER_TIMEOUT); + } + else if (agent_data["transition"].asString() == "ENTER") + { + // add or update speaker + speakerp = setSpeaker(agent_id); + } + else + { + llwarns << "bad membership list update " << ll_print_sd(agent_data["transition"]) << llendl; + } + } -void LLIMSpeakerMgr::processSpeakerListUpdate(LLSD update) -{ - for(LLSD::map_iterator update_it = update.beginMap(); - update_it != update.endMap(); - ++update_it) + if (speakerp.isNull()) continue; + + // should have a valid speaker from this point on + if (agent_data.isMap() && agent_data.has("info")) + { + LLSD agent_info = agent_data["info"]; + + if (agent_info.has("is_moderator")) + { + speakerp->mIsModerator = agent_info["is_moderator"]; + } + + if (agent_info.has("mutes")) + { + speakerp->mModeratorMutedText = agent_info["mutes"]["text"]; + } + } + } + } + else if ( update.has("updates") && update["updates"].isMap() ) { - LLUUID agent_id(update_it->first); - - if (update_it->second.asString() == "LEAVE") + LLSD::map_const_iterator update_it; + for ( + update_it = update["updates"].beginMap(); + update_it != update["updates"].endMap(); + ++update_it) { + LLUUID agent_id(update_it->first); LLPointer speakerp = findSpeaker(agent_id); - if (speakerp) + + std::string agent_transition = update_it->second.asString(); + if (agent_transition == "LEAVE" && speakerp.notNull()) { speakerp->mStatus = LLSpeaker::STATUS_NOT_IN_CHANNEL; speakerp->mDotColor = INACTIVE_COLOR; speakerp->mActivityTimer.resetWithExpiry(SPEAKER_TIMEOUT); } - } - else if (update_it->second.asString() == "ENTER") - { - // add or update speaker - setSpeaker(agent_id); - } - else - { - llwarns << "LLIMSpeakerMgr::processSpeakerListUpdate() : bad membership list update " << ll_print_sd(update_it->second) << llendl; + else if ( agent_transition == "ENTER") + { + // add or update speaker + speakerp = setSpeaker(agent_id); + } + else + { + llwarns << "bad membership list update " + << agent_transition << llendl; + } } } } diff --git a/linden/indra/newview/llfloateractivespeakers.h b/linden/indra/newview/llfloateractivespeakers.h index b8d39ca..cded35d 100644 --- a/linden/indra/newview/llfloateractivespeakers.h +++ b/linden/indra/newview/llfloateractivespeakers.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -36,6 +36,7 @@ #include "llmemory.h" #include "llvoiceclient.h" #include "llframetimer.h" +#include "llevent.h" class LLScrollListCtrl; class LLButton; @@ -45,9 +46,8 @@ class LLVoiceChannel; // data for a given participant in a voice channel -class LLSpeaker : public LLRefCount +struct LLSpeaker : public LLRefCount, public LLObservable { -public: typedef enum e_speaker_type { SPEAKER_AGENT, @@ -72,8 +72,6 @@ public: static void onAvatarNameLookup(const LLUUID& id, const char* first, const char* last, BOOL is_group, void* user_data); -public: - ESpeakerStatus mStatus; // current activity status in speech group F32 mLastSpokeTime; // timestamp when this speaker last spoke F32 mSpeechVolume; // current speech amplitude (timea average rms amplitude?) @@ -86,11 +84,28 @@ public: S32 mSortIndex; LLViewHandle mHandle; ESpeakerType mType; + BOOL mIsModerator; + BOOL mModeratorMutedVoice; + BOOL mModeratorMutedText; typedef std::map speaker_map_t; static speaker_map_t sSpeakers; }; +class LLSpeakerTextModerationEvent : public LLEvent +{ +public: + LLSpeakerTextModerationEvent(LLSpeaker* source); + /*virtual*/ LLSD getValue(); +}; + +class LLSpeakerVoiceModerationEvent : public LLEvent +{ +public: + LLSpeakerVoiceModerationEvent(LLSpeaker* source); + /*virtual*/ LLSD getValue(); +}; + class LLSpeakerMgr { public: @@ -110,6 +125,7 @@ public: typedef std::vector > speaker_list_t; void getSpeakerList(speaker_list_t* speaker_list, BOOL include_text); + const LLUUID getSessionID(); protected: virtual void updateSpeakerList(); @@ -127,9 +143,8 @@ class LLIMSpeakerMgr : public LLSpeakerMgr public: LLIMSpeakerMgr(LLVoiceChannel* channel); - void processSpeakerListUpdate(LLSD update); - void processSpeakerList(LLSD list); - void processSpeakerMap(LLSD list); + void updateSpeakers(const LLSD& update); + void setSpeakers(const LLSD& speakers); protected: virtual void updateSpeakerList(); }; @@ -185,19 +200,38 @@ public: /*virtual*/ BOOL postBuild(); + void handleSpeakerSelect(); void refreshSpeakers(); void setSpeaker(const LLUUID& id, const LLString& name = LLString::null, LLSpeaker::ESpeakerStatus status = LLSpeaker::STATUS_TEXT_ONLY, LLSpeaker::ESpeakerType = LLSpeaker::SPEAKER_AGENT); + + void setVoiceModerationCtrlMode(const BOOL& moderated_voice); static void onClickMuteVoice(void* user_data); static void onClickMuteVoiceCommit(LLUICtrl* ctrl, void* user_data); static void onClickMuteTextCommit(LLUICtrl* ctrl, void* user_data); static void onVolumeChange(LLUICtrl* source, void* user_data); static void onClickProfile(void* user_data); + static void onDoubleClickSpeaker(void* user_data); + static void onSelectSpeaker(LLUICtrl* source, void* user_data); + static void onModeratorMuteVoice(LLUICtrl* ctrl, void* user_data); + static void onModeratorMuteText(LLUICtrl* ctrl, void* user_data); + static void onChangeModerationMode(LLUICtrl* ctrl, void* user_data); + protected: + class LLSpeakerListener : public LLSimpleListener + { + public: + LLSpeakerListener(LLPanelActiveSpeakers* panel) : mPanel(panel) {} + + /*virtual*/ bool handleEvent(LLPointer event, const LLSD& userdata); + + LLPanelActiveSpeakers* mPanel; + }; + LLScrollListCtrl* mSpeakerList; LLUICtrl* mMuteVoiceCtrl; LLUICtrl* mMuteTextCtrl; @@ -206,6 +240,7 @@ protected: BOOL mShowTextChatters; LLSpeakerMgr* mSpeakerMgr; LLFrameTimer mIconAnimationTimer; + LLPointer mSpeakerListener; }; extern LLLocalSpeakerMgr* gLocalSpeakerMgr; diff --git a/linden/indra/newview/llfloateranimpreview.cpp b/linden/indra/newview/llfloateranimpreview.cpp index 0f46de1..0fed525 100644 --- a/linden/indra/newview/llfloateranimpreview.cpp +++ b/linden/indra/newview/llfloateranimpreview.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -155,7 +155,6 @@ BOOL LLFloaterAnimPreview::postBuild() mPlayButton->setDisabledImages("",""); mPlayButton->setScaleImage(TRUE); - mPlayButton->setFixedBorder(0, 0); mStopButton = LLViewerUICtrlFactory::getButtonByName(this, "stop_btn"); if (!mStopButton) @@ -170,7 +169,6 @@ BOOL LLFloaterAnimPreview::postBuild() mStopButton->setDisabledImages("",""); mStopButton->setScaleImage(TRUE); - mStopButton->setFixedBorder(0, 0); r.set(r.mRight + PREVIEW_HPAD, y, getRect().getWidth() - PREVIEW_HPAD, y - BTN_HEIGHT); childSetCommitCallback("playback_slider", onSliderMove, this); diff --git a/linden/indra/newview/llfloateranimpreview.h b/linden/indra/newview/llfloateranimpreview.h index 8f0cee6..b1e1da7 100644 --- a/linden/indra/newview/llfloateranimpreview.h +++ b/linden/indra/newview/llfloateranimpreview.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterauction.cpp b/linden/indra/newview/llfloaterauction.cpp index 345eb09..b2eae43 100644 --- a/linden/indra/newview/llfloaterauction.cpp +++ b/linden/indra/newview/llfloaterauction.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterauction.h b/linden/indra/newview/llfloaterauction.h index fbc103c..50c5aa0 100644 --- a/linden/indra/newview/llfloaterauction.h +++ b/linden/indra/newview/llfloaterauction.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloateravatarinfo.cpp b/linden/indra/newview/llfloateravatarinfo.cpp index b4c23c2..2cd6ee2 100644 --- a/linden/indra/newview/llfloateravatarinfo.cpp +++ b/linden/indra/newview/llfloateravatarinfo.cpp @@ -15,12 +15,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -79,7 +79,9 @@ LLMap< const LLUUID, LLFloaterAvatarInfo* > gAvatarInfoInstances; class LLAgentHandler : public LLCommandHandler { public: - LLAgentHandler() : LLCommandHandler("agent") { } + // don't allow from external browsers + LLAgentHandler() : LLCommandHandler("agent", false) { } + bool handle(const LLSD& params, const LLSD& queryMap) { if (params.size() < 2) return false; @@ -224,6 +226,34 @@ void LLFloaterAvatarInfo::showFromFriend(const LLUUID& agent_id, BOOL online) } +// static +void LLFloaterAvatarInfo::showFromProfile(const LLUUID &avatar_id, LLRect rect) +{ + if (avatar_id.isNull()) + { + return; + } + + LLFloaterAvatarInfo *floater; + if (gAvatarInfoInstances.checkData(avatar_id)) + { + // ...bring that window to front + floater = gAvatarInfoInstances.getData(avatar_id); + } + else + { + floater = new LLFloaterAvatarInfo("avatarinfo", FAI_RECT, + avatar_id); + floater->translate(rect.mLeft - floater->mRect.mLeft + 16, + rect.mTop - floater->mRect.mTop - 16); + floater->mPanelAvatarp->setAvatarID(avatar_id, "", ONLINE_STATUS_NO); + } + if (floater) + { + floater->open(); + } +} + void LLFloaterAvatarInfo::showProfileCallback(S32 option, void *userdata) { if (option == 0) diff --git a/linden/indra/newview/llfloateravatarinfo.h b/linden/indra/newview/llfloateravatarinfo.h index c8c5fe9..67cdb7a 100644 --- a/linden/indra/newview/llfloateravatarinfo.h +++ b/linden/indra/newview/llfloateravatarinfo.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -84,7 +84,9 @@ public: static void showFromDirectory(const LLUUID &avatar_id); - static void showFromFriend(const LLUUID& agent_id, BOOL online); + static void showFromFriend(const LLUUID &agent_id, BOOL online); + + static void showFromProfile(const LLUUID &avatar_id, LLRect rect); static LLFloaterAvatarInfo* getInstance(const LLUUID &id); static void showProfileCallback(S32 option, void *userdata); diff --git a/linden/indra/newview/llfloateravatarpicker.cpp b/linden/indra/newview/llfloateravatarpicker.cpp index efcbb70..e7e8626 100644 --- a/linden/indra/newview/llfloateravatarpicker.cpp +++ b/linden/indra/newview/llfloateravatarpicker.cpp @@ -11,12 +11,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -112,7 +112,7 @@ BOOL LLFloaterAvatarPicker::postBuild() if (mListNames) { - mListNames->addSimpleElement("No results"); + mListNames->addCommentText("No results"); } mInventoryPanel = (LLInventoryPanel*)this->getCtrlByNameAndType("Inventory Panel", WIDGET_TYPE_INVENTORY_PANEL); @@ -189,12 +189,15 @@ void LLFloaterAvatarPicker::onList(LLUICtrl* ctrl, void* userdata) return; } - std::vector items = self->mListNames->getAllSelected(); - for (std::vector::iterator iter = items.begin(); - iter != items.end(); ++iter) + std::vector items = + self->mListNames->getAllSelected(); + for ( + std::vector::iterator iter = items.begin(); + iter != items.end(); + ++iter) { LLScrollListItem* item = *iter; - self->mAvatarNames.push_back(item->getColumn(0)->getText()); + self->mAvatarNames.push_back(item->getColumn(0)->getValue().asString()); self->mAvatarIDs.push_back(item->getUUID()); self->childSetEnabled("Select", TRUE); } @@ -225,8 +228,8 @@ void LLFloaterAvatarPicker::doSelectionChange(const std::deque::const_iterator item_it; for (item_it = items.begin(); item_it != items.end(); ++item_it) { @@ -276,7 +279,7 @@ void LLFloaterAvatarPicker::find() if (mListNames) { mListNames->deleteAllItems(); - mListNames->addSimpleElement("Searching..."); + mListNames->addCommentText("Searching..."); } childSetEnabled("Select", FALSE); diff --git a/linden/indra/newview/llfloateravatarpicker.h b/linden/indra/newview/llfloateravatarpicker.h index 74de116..6b8498c 100644 --- a/linden/indra/newview/llfloateravatarpicker.h +++ b/linden/indra/newview/llfloateravatarpicker.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloateravatartextures.cpp b/linden/indra/newview/llfloateravatartextures.cpp index a9477cc..31e2f11 100644 --- a/linden/indra/newview/llfloateravatartextures.cpp +++ b/linden/indra/newview/llfloateravatartextures.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloateravatartextures.h b/linden/indra/newview/llfloateravatartextures.h index 2c208c1..a4c67c3 100644 --- a/linden/indra/newview/llfloateravatartextures.h +++ b/linden/indra/newview/llfloateravatartextures.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterbuildoptions.cpp b/linden/indra/newview/llfloaterbuildoptions.cpp index 19c486f..fac5ea3 100644 --- a/linden/indra/newview/llfloaterbuildoptions.cpp +++ b/linden/indra/newview/llfloaterbuildoptions.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterbuildoptions.h b/linden/indra/newview/llfloaterbuildoptions.h index 4796157..82386ee 100644 --- a/linden/indra/newview/llfloaterbuildoptions.h +++ b/linden/indra/newview/llfloaterbuildoptions.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterbump.cpp b/linden/indra/newview/llfloaterbump.cpp index 298d514..4508702 100644 --- a/linden/indra/newview/llfloaterbump.cpp +++ b/linden/indra/newview/llfloaterbump.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterbump.h b/linden/indra/newview/llfloaterbump.h index 3c2ed15..ac63bdf 100644 --- a/linden/indra/newview/llfloaterbump.h +++ b/linden/indra/newview/llfloaterbump.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterbuy.cpp b/linden/indra/newview/llfloaterbuy.cpp index 0f06c0c..47d7ab5 100644 --- a/linden/indra/newview/llfloaterbuy.cpp +++ b/linden/indra/newview/llfloaterbuy.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterbuy.h b/linden/indra/newview/llfloaterbuy.h index 2794942..6c5dc79 100644 --- a/linden/indra/newview/llfloaterbuy.h +++ b/linden/indra/newview/llfloaterbuy.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterbuycontents.cpp b/linden/indra/newview/llfloaterbuycontents.cpp index 382c4a4..1afc38f 100644 --- a/linden/indra/newview/llfloaterbuycontents.cpp +++ b/linden/indra/newview/llfloaterbuycontents.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterbuycontents.h b/linden/indra/newview/llfloaterbuycontents.h index db84d1e..3fecc43 100644 --- a/linden/indra/newview/llfloaterbuycontents.h +++ b/linden/indra/newview/llfloaterbuycontents.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterbuycurrency.cpp b/linden/indra/newview/llfloaterbuycurrency.cpp index 93f91cf..c3c7ffa 100644 --- a/linden/indra/newview/llfloaterbuycurrency.cpp +++ b/linden/indra/newview/llfloaterbuycurrency.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterbuycurrency.h b/linden/indra/newview/llfloaterbuycurrency.h index e544b8e..883e67f 100644 --- a/linden/indra/newview/llfloaterbuycurrency.h +++ b/linden/indra/newview/llfloaterbuycurrency.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterbuyland.cpp b/linden/indra/newview/llfloaterbuyland.cpp index e462c4b..7681da5 100644 --- a/linden/indra/newview/llfloaterbuyland.cpp +++ b/linden/indra/newview/llfloaterbuyland.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterbuyland.h b/linden/indra/newview/llfloaterbuyland.h index 26258be..3b4d6fe 100644 --- a/linden/indra/newview/llfloaterbuyland.h +++ b/linden/indra/newview/llfloaterbuyland.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterchat.cpp b/linden/indra/newview/llfloaterchat.cpp index cb74dda..89d60ad 100644 --- a/linden/indra/newview/llfloaterchat.cpp +++ b/linden/indra/newview/llfloaterchat.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -164,10 +164,16 @@ void LLFloaterChat::onVisibilityChange(BOOL new_visibility) { // Hide the chat overlay when our history is visible. gConsole->setVisible( !new_visibility ); + + // stop chat history tab from flashing when it appears + if (new_visibility) + { + LLFloaterChatterBox::getInstance()->setFloaterFlashing(this, FALSE); + } + LLFloater::onVisibilityChange(new_visibility); } - void add_timestamped_line(LLViewerTextEditor* edit, const LLString& line, const LLColor4& color) { bool prepend_newline = true; @@ -238,6 +244,12 @@ void LLFloaterChat::addChatHistory(const LLChat& chat, bool log_to_file) { chat_floater->mPanel->setSpeaker(chat.mFromID, chat.mFromName, LLSpeaker::STATUS_NOT_IN_CHANNEL, LLSpeaker::SPEAKER_OBJECT); } + + // start tab flashing on incoming text from other users (ignoring system text, etc) + if (!chat_floater->isInVisibleChain() && chat.mSourceType == CHAT_SOURCE_AGENT) + { + LLFloaterChatterBox::getInstance()->setFloaterFlashing(chat_floater, TRUE); + } } // static @@ -246,8 +258,14 @@ void LLFloaterChat::setHistoryCursorAndScrollToEnd() LLViewerTextEditor* history_editor = (LLViewerTextEditor*)LLFloaterChat::getInstance(LLSD())->getChildByName("Chat History Editor", TRUE); LLViewerTextEditor* history_editor_with_mute = (LLViewerTextEditor*)LLFloaterChat::getInstance(LLSD())->getChildByName("Chat History Editor with mute", TRUE); - history_editor->setCursorAndScrollToEnd(); - history_editor_with_mute->setCursorAndScrollToEnd(); + if (history_editor) + { + history_editor->setCursorAndScrollToEnd(); + } + if (history_editor_with_mute) + { + history_editor_with_mute->setCursorAndScrollToEnd(); + } } @@ -269,7 +287,7 @@ void LLFloaterChat::onClickMute(void *data) if (gFloaterMute) { - gFloaterMute->show(); + LLFloaterMute::showInstance(); } } @@ -433,7 +451,7 @@ void* LLFloaterChat::createSpeakersPanel(void* data) //static void* LLFloaterChat::createChatPanel(void* data) { - LLChatBar* chatp = new LLChatBar("floating_chat_bar"); + LLChatBar* chatp = new LLChatBar(); return chatp; } @@ -441,7 +459,7 @@ void* LLFloaterChat::createChatPanel(void* data) void LLFloaterChat::hideInstance(const LLSD& id) { LLFloaterChat* floaterp = LLFloaterChat::getInstance(LLSD()); - // don't do anything when hosted in the chatterbox + if(floaterp->getHost()) { LLFloaterChatterBox::hideInstance(LLSD()); diff --git a/linden/indra/newview/llfloaterchat.h b/linden/indra/newview/llfloaterchat.h index b9d7cf6..341e925 100644 --- a/linden/indra/newview/llfloaterchat.h +++ b/linden/indra/newview/llfloaterchat.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -82,6 +82,7 @@ public: protected: LLPanelActiveSpeakers* mPanel; + BOOL mScrolledToEnd; }; #endif diff --git a/linden/indra/newview/llfloaterchatterbox.cpp b/linden/indra/newview/llfloaterchatterbox.cpp index 41acc02..2d6eeb3 100644 --- a/linden/indra/newview/llfloaterchatterbox.cpp +++ b/linden/indra/newview/llfloaterchatterbox.cpp @@ -14,12 +14,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -86,9 +86,15 @@ LLFloaterMyFriends* LLFloaterMyFriends::showInstance(const LLSD& id) //static void LLFloaterMyFriends::hideInstance(const LLSD& id) { - if(instanceVisible(id)) + LLFloaterMyFriends* floaterp = LLFloaterMyFriends::getInstance(); + + if(floaterp->getHost()) { - LLFloaterChatterBox::hideInstance(LLSD()); + LLFloaterChatterBox::hideInstance(); + } + else + { + LLUISingleton::hideInstance(id); } } @@ -124,10 +130,23 @@ LLFloaterChatterBox::LLFloaterChatterBox(const LLSD& seed) : mAutoResize = FALSE; gUICtrlFactory->buildFloater(this, "floater_chatterbox.xml", NULL, FALSE); - addFloater(LLFloaterMyFriends::getInstance(0), TRUE); + if (gSavedSettings.getBOOL("ContactsTornOff")) + { + LLFloaterMyFriends* floater_contacts = LLFloaterMyFriends::getInstance(0); + // add then remove to set up relationship for re-attach + addFloater(floater_contacts, FALSE); + removeFloater(floater_contacts); + // reparent to floater view + gFloaterView->addChild(floater_contacts); + } + else + { + addFloater(LLFloaterMyFriends::getInstance(0), TRUE); + } + if (gSavedSettings.getBOOL("ChatHistoryTornOff")) { - LLFloaterChat* floater_chat = LLFloaterChat::getInstance(LLSD()); + LLFloaterChat* floater_chat = LLFloaterChat::getInstance(); // add then remove to set up relationship for re-attach addFloater(floater_chat, FALSE); removeFloater(floater_chat); @@ -217,7 +236,7 @@ void LLFloaterChatterBox::draw() mActiveVoiceFloater = current_active_floater; - LLFloater::draw(); + LLMultiFloater::draw(); } void LLFloaterChatterBox::onOpen() @@ -236,10 +255,17 @@ void LLFloaterChatterBox::removeFloater(LLFloater* floaterp) if (floaterp->getName() == "chat floater") { // only my friends floater now locked - mTabContainer->lockTabs(1); + mTabContainer->lockTabs(mTabContainer->getNumLockedTabs() - 1); gSavedSettings.setBOOL("ChatHistoryTornOff", TRUE); floaterp->setCanClose(TRUE); } + else if (floaterp->getName() == "floater_my_friends") + { + // only chat floater now locked + mTabContainer->lockTabs(mTabContainer->getNumLockedTabs() - 1); + gSavedSettings.setBOOL("ContactsTornOff", TRUE); + floaterp->setCanClose(TRUE); + } LLMultiFloater::removeFloater(floaterp); } @@ -247,19 +273,43 @@ void LLFloaterChatterBox::addFloater(LLFloater* floaterp, BOOL select_added_floater, LLTabContainerCommon::eInsertionPoint insertion_point) { + S32 num_locked_tabs = mTabContainer->getNumLockedTabs(); + + // already here + if (floaterp->getHost() == this) return; + // make sure my friends and chat history both locked when re-attaching chat history if (floaterp->getName() == "chat floater") { - // select my friends tab - mTabContainer->selectFirstTab(); - // add chat history to the right of the my friends tab - //*TODO: respect select_added_floater so that we don't leave first tab selected - LLMultiFloater::addFloater(floaterp, select_added_floater, LLTabContainer::RIGHT_OF_CURRENT); + mTabContainer->unlockTabs(); + // add chat history as second tab if contact window is present, first tab otherwise + if (getChildByName("floater_my_friends", TRUE)) + { + // assuming contacts window is first tab, select it + mTabContainer->selectFirstTab(); + // and add ourselves after + LLMultiFloater::addFloater(floaterp, select_added_floater, LLTabContainer::RIGHT_OF_CURRENT); + } + else + { + LLMultiFloater::addFloater(floaterp, select_added_floater, LLTabContainer::START); + } + // make sure first two tabs are now locked - mTabContainer->lockTabs(2); + mTabContainer->lockTabs(num_locked_tabs + 1); gSavedSettings.setBOOL("ChatHistoryTornOff", FALSE); floaterp->setCanClose(FALSE); } + else if (floaterp->getName() == "floater_my_friends") + { + mTabContainer->unlockTabs(); + // add contacts window as first tab + LLMultiFloater::addFloater(floaterp, select_added_floater, LLTabContainer::START); + // make sure first two tabs are now locked + mTabContainer->lockTabs(num_locked_tabs + 1); + gSavedSettings.setBOOL("ContactsTornOff", FALSE); + floaterp->setCanClose(FALSE); + } else { LLMultiFloater::addFloater(floaterp, select_added_floater, insertion_point); @@ -276,24 +326,27 @@ void LLFloaterChatterBox::addFloater(LLFloater* floaterp, //static LLFloaterChatterBox* LLFloaterChatterBox::showInstance(const LLSD& seed) { - LLFloaterChatterBox* floater = LLUISingleton::showInstance(seed); + LLFloaterChatterBox* chatterbox_floater = LLUISingleton::showInstance(seed); // if TRUE, show tab for active voice channel, otherwise, just show last tab - if (seed.asBoolean()) + LLFloater* floater_to_show = NULL; + LLUUID session_id = seed.asUUID(); + if (session_id.notNull()) { - LLFloater* floater_to_show = getCurrentVoiceFloater(); - if (floater_to_show) - { - floater_to_show->open(); - } - else - { - // just open chatterbox if there is no active voice window - LLUISingleton::getInstance(seed)->open(); - } + floater_to_show = gIMMgr->findFloaterBySession(session_id); + } + + if (floater_to_show) + { + floater_to_show->open(); + } + else + { + // just open chatterbox to the last selected tab + chatterbox_floater->open(); } - return floater; + return chatterbox_floater; } //static diff --git a/linden/indra/newview/llfloaterchatterbox.h b/linden/indra/newview/llfloaterchatterbox.h index 1d17113..185cea3 100644 --- a/linden/indra/newview/llfloaterchatterbox.h +++ b/linden/indra/newview/llfloaterchatterbox.h @@ -14,12 +14,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -50,7 +50,7 @@ public: void onClose(bool app_quitting); // override LLUISingleton behavior - static LLFloaterMyFriends* showInstance(const LLSD& id); + static LLFloaterMyFriends* showInstance(const LLSD& id = LLSD()); static void hideInstance(const LLSD& id); static BOOL instanceVisible(const LLSD& id); @@ -77,7 +77,7 @@ public: BOOL select_added_floater, LLTabContainerCommon::eInsertionPoint insertion_point = LLTabContainerCommon::END); - static LLFloaterChatterBox* showInstance(const LLSD& seed); + static LLFloaterChatterBox* showInstance(const LLSD& seed = LLSD()); static BOOL instanceVisible(const LLSD& seed); static LLFloater* getCurrentVoiceFloater(); diff --git a/linden/indra/newview/llfloaterclassified.cpp b/linden/indra/newview/llfloaterclassified.cpp index 8a71b6c..811cd3a 100644 --- a/linden/indra/newview/llfloaterclassified.cpp +++ b/linden/indra/newview/llfloaterclassified.cpp @@ -1,26 +1,34 @@ /** -* @file llfloaterclassified.cpp -* @brief LLFloaterClassifiedInfo class implementation -* -* Classified information as shown in a floating window from secondlife:// command -* handler. -* -* $LicenseInfo:firstyear=2002&license=internal$ -* -* Copyright (c) 2002-2008, Linden Research, Inc. -* -* The following source code is PROPRIETARY AND CONFIDENTIAL. Use of -* this source code is governed by the Linden Lab Source Code Disclosure -* Agreement ("Agreement") previously entered between you and Linden -* Lab. By accessing, using, copying, modifying or distributing this -* software, you acknowledge that you have been informed of your -* obligations under the Agreement and agree to abide by those obligations. -* -* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO -* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, -* COMPLETENESS OR PERFORMANCE. -* $/LicenseInfo$ -*/ + * @file llfloaterclassified.cpp + * @brief Classified information as shown in a floating window from + * secondlife:// command handler. + * + * $LicenseInfo:firstyear=2002&license=viewergpl$ + * + * Copyright (c) 2002-2008, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ #include "llviewerprecompiledheaders.h" @@ -45,7 +53,8 @@ LLMap< const LLUUID, LLFloaterClassifiedInfo* > gClassifiedInfoInstances; class LLClassifiedHandler : public LLCommandHandler { public: - LLClassifiedHandler() : LLCommandHandler("classified") { } + // don't allow from external browsers + LLClassifiedHandler() : LLCommandHandler("classified", false) { } bool handle(const LLSD& tokens, const LLSD& queryMap) { if (tokens.size() < 2) diff --git a/linden/indra/newview/llfloaterclassified.h b/linden/indra/newview/llfloaterclassified.h index 79852a4..ccd29ac 100644 --- a/linden/indra/newview/llfloaterclassified.h +++ b/linden/indra/newview/llfloaterclassified.h @@ -1,17 +1,29 @@ /** * @file llfloaterclassified.h - * @brief LLFloaterClassifiedInfo class declaration + * @brief Classified information as shown in a floating window from + * secondlife:// command handler. + * Just a wrapper for LLPanelClassified. * - * $LicenseInfo:firstyear=2002&license=internal$ + * $LicenseInfo:firstyear=2002&license=viewergpl$ * * Copyright (c) 2002-2008, Linden Research, Inc. * - * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of - * this source code is governed by the Linden Lab Source Code Disclosure - * Agreement ("Agreement") previously entered between you and Linden - * Lab. By accessing, using, copying, modifying or distributing this - * software, you acknowledge that you have been informed of your - * obligations under the Agreement and agree to abide by those obligations. + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. * * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, @@ -19,12 +31,6 @@ * $/LicenseInfo$ */ -/** -* Classified information as shown in a floating window from a secondlife:// url. -* Just a wrapper for LLPanelClassified. -*/ - - #ifndef LL_FLOATERCLASSIFIED_H #define LL_FLOATERCLASSIFIED_H diff --git a/linden/indra/newview/llfloaterclothing.cpp b/linden/indra/newview/llfloaterclothing.cpp index b450605..30b5b34 100644 --- a/linden/indra/newview/llfloaterclothing.cpp +++ b/linden/indra/newview/llfloaterclothing.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -87,10 +87,10 @@ LLFloaterClothing::LLFloaterClothing() childSetDoubleClickCallback("clothing_list", onClickWear); childSetCommitCallback("clothing_list", onCommitList, this); - LLCtrlListInterface* list = childGetListInterface("clothing_list"); + LLScrollListCtrl* list = gUICtrlFactory->getScrollListByName(this, "clothing_list"); if (list) { - list->addSimpleElement(LOADING_STRING); + list->addCommentText(LOADING_STRING); } setDefaultBtn("wear_btn"); @@ -244,7 +244,7 @@ void LLFloaterClothing::buildClothingList() { //llinfos << "buildClothingList" << llendl; - LLCtrlListInterface *list = childGetListInterface("clothing_list"); + LLScrollListCtrl* list = gUICtrlFactory->getScrollListByName(this, "clothing_list"); if (!list) return; list->operateOnAll(LLCtrlListInterface::OP_DELETE); @@ -310,13 +310,13 @@ void LLFloaterClothing::buildClothingList() else if (LLInventoryModel::backgroundFetchActive()) { // We're loading - list->addSimpleElement(LOADING_STRING); + list->addCommentText(LOADING_STRING); mAllowSelection = FALSE; } else { // Weird case, we're done loading but have no clothing - list->addSimpleElement("No clothing found."); + list->addCommentText("No clothing found."); mAllowSelection = FALSE; } } diff --git a/linden/indra/newview/llfloaterclothing.h b/linden/indra/newview/llfloaterclothing.h index 4ba310b..b4b8abe 100644 --- a/linden/indra/newview/llfloaterclothing.h +++ b/linden/indra/newview/llfloaterclothing.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatercolorpicker.cpp b/linden/indra/newview/llfloatercolorpicker.cpp index 2be04d0..3787590 100644 --- a/linden/indra/newview/llfloatercolorpicker.cpp +++ b/linden/indra/newview/llfloatercolorpicker.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatercolorpicker.h b/linden/indra/newview/llfloatercolorpicker.h index 4736d31..415f749 100644 --- a/linden/indra/newview/llfloatercolorpicker.h +++ b/linden/indra/newview/llfloatercolorpicker.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatercustomize.cpp b/linden/indra/newview/llfloatercustomize.cpp index 93f3e3a..8da5417 100644 --- a/linden/indra/newview/llfloatercustomize.cpp +++ b/linden/indra/newview/llfloatercustomize.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatercustomize.h b/linden/indra/newview/llfloatercustomize.h index 4b2d07e..bfb4556 100644 --- a/linden/indra/newview/llfloatercustomize.h +++ b/linden/indra/newview/llfloatercustomize.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterdirectory.cpp b/linden/indra/newview/llfloaterdirectory.cpp index 931b4cd..ce5a7e6 100644 --- a/linden/indra/newview/llfloaterdirectory.cpp +++ b/linden/indra/newview/llfloaterdirectory.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -134,6 +134,12 @@ LLFloaterDirectory::LLFloaterDirectory(const std::string& name) LLFloaterDirectory::~LLFloaterDirectory() { sInstance = NULL; + + //Note: this function is defined in the class LLFloater. + //however, it causes crash if this line is postponed to ~LLFloater(). + //because it uses some pointers deleted below. That is, those pointers are used again after deleting. + setMinimized( FALSE ); + delete mPanelAvatarp; mPanelAvatarp = NULL; delete mPanelEventp; mPanelEventp = NULL; delete mPanelGroupp; mPanelGroupp = NULL; diff --git a/linden/indra/newview/llfloaterdirectory.h b/linden/indra/newview/llfloaterdirectory.h index b5acd0c..7aa956a 100644 --- a/linden/indra/newview/llfloaterdirectory.h +++ b/linden/indra/newview/llfloaterdirectory.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatereditui.cpp b/linden/indra/newview/llfloatereditui.cpp index 2751986..8daaf6a 100644 --- a/linden/indra/newview/llfloatereditui.cpp +++ b/linden/indra/newview/llfloatereditui.cpp @@ -14,12 +14,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatereditui.h b/linden/indra/newview/llfloatereditui.h index 8751753..2795e54 100644 --- a/linden/indra/newview/llfloatereditui.h +++ b/linden/indra/newview/llfloatereditui.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterevent.cpp b/linden/indra/newview/llfloaterevent.cpp index a79df33..71767c6 100644 --- a/linden/indra/newview/llfloaterevent.cpp +++ b/linden/indra/newview/llfloaterevent.cpp @@ -1,20 +1,28 @@ /** * @file llfloaterevent.cpp - * @brief LLFloaterEventInfo class implementation + * @brief Event information as shown in a floating window from + * secondlife:// command handler. * - * Event information as shown in a floating window from secondlife:// command - * handler. - * - * $LicenseInfo:firstyear=2002&license=internal$ + * $LicenseInfo:firstyear=2007&license=viewergpl$ + * + * Copyright (c) 2007-2008, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * - * Copyright (c) 2002-2008, Linden Research, Inc. + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * - * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of - * this source code is governed by the Linden Lab Source Code Disclosure - * Agreement ("Agreement") previously entered between you and Linden - * Lab. By accessing, using, copying, modifying or distributing this - * software, you acknowledge that you have been informed of your - * obligations under the Agreement and agree to abide by those obligations. + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. * * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, @@ -46,7 +54,8 @@ LLMap< U32, LLFloaterEventInfo* > gEventInfoInstances; class LLEventHandler : public LLCommandHandler { public: - LLEventHandler() : LLCommandHandler("event") { } + // don't allow from external browsers + LLEventHandler() : LLCommandHandler("event", false) { } bool handle(const LLSD& tokens, const LLSD& queryMap) { if (tokens.size() < 2) diff --git a/linden/indra/newview/llfloaterevent.h b/linden/indra/newview/llfloaterevent.h index ee249a8..1fc2fc6 100644 --- a/linden/indra/newview/llfloaterevent.h +++ b/linden/indra/newview/llfloaterevent.h @@ -1,17 +1,29 @@ /** * @file llfloaterevent.h - * @brief LLFloaterEvent class implementation + * @brief Event information as shown in a floating window from + * secondlife:// command handler. + * Just a wrapper for LLPanelEvent. * - * $LicenseInfo:firstyear=2002&license=internal$ + * $LicenseInfo:firstyear=2007&license=viewergpl$ * - * Copyright (c) 2002-2008, Linden Research, Inc. + * Copyright (c) 2007-2008, Linden Research, Inc. * - * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of - * this source code is governed by the Linden Lab Source Code Disclosure - * Agreement ("Agreement") previously entered between you and Linden - * Lab. By accessing, using, copying, modifying or distributing this - * software, you acknowledge that you have been informed of your - * obligations under the Agreement and agree to abide by those obligations. + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. * * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, @@ -19,11 +31,6 @@ * $/LicenseInfo$ */ -/** -* Event information as shown in a floating window from a secondlife:// url. -* Just a wrapper for LLPanelEvent. -*/ - #ifndef LL_LLFLOATEREVENT_H #define LL_LLFLOATEREVENT_H diff --git a/linden/indra/newview/llfloaterfriends.cpp b/linden/indra/newview/llfloaterfriends.cpp index 99a33d6..e6ff76b 100644 --- a/linden/indra/newview/llfloaterfriends.cpp +++ b/linden/indra/newview/llfloaterfriends.cpp @@ -14,12 +14,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -104,7 +104,6 @@ LLPanelFriends::LLPanelFriends() : LLPanel(), LLEventTimer(1000000), mObserver(NULL), - mMenuState(0), mShowMaxSelectWarning(TRUE), mAllowRightsChange(TRUE), mNumRightsChanged(0) @@ -182,16 +181,13 @@ BOOL LLPanelFriends::postBuild() { mFriendsList = LLUICtrlFactory::getScrollListByName(this, "friend_list"); mFriendsList->setMaxSelectable(MAX_FRIEND_SELECT); - mFriendsList->setMaxiumumSelectCallback(onMaximumSelect); + mFriendsList->setMaximumSelectCallback(onMaximumSelect); mFriendsList->setCommitOnSelectionChange(TRUE); childSetCommitCallback("friend_list", onSelectName, this); childSetDoubleClickCallback("friend_list", onClickIM); refreshNames(); - childSetCommitCallback("online_status_cb", onClickOnlineStatus, this); - childSetCommitCallback("map_status_cb", onClickMapStatus, this); - childSetCommitCallback("modify_status_cb", onClickModifyStatus, this); childSetAction("im_btn", onClickIM, this); childSetAction("profile_btn", onClickProfile, this); childSetAction("offer_teleport_btn", onClickOfferTeleport, this); @@ -204,6 +200,10 @@ BOOL LLPanelFriends::postBuild() updateFriends(LLFriendObserver::ADD); refreshUI(); + // primary sort = online status, secondary sort = name + mFriendsList->sortByColumn("friend_name", TRUE); + mFriendsList->sortByColumn("icon_online_status", TRUE); + return TRUE; } @@ -222,64 +222,63 @@ void LLPanelFriends::addFriend(const std::string& name, const LLUUID& agent_id) element["columns"][LIST_FRIEND_NAME]["font"] = "SANSSERIF"; element["columns"][LIST_FRIEND_NAME]["font-style"] = "NORMAL"; element["columns"][LIST_ONLINE_STATUS]["column"] = "icon_online_status"; - element["columns"][LIST_ONLINE_STATUS]["type"] = "text"; + element["columns"][LIST_ONLINE_STATUS]["type"] = "icon"; if (online) { element["columns"][LIST_FRIEND_NAME]["font-style"] = "BOLD"; - element["columns"][LIST_ONLINE_STATUS]["type"] = "icon"; element["columns"][LIST_ONLINE_STATUS]["value"] = gViewerArt.getString("icon_avatar_online.tga"); } - element["columns"][LIST_VISIBLE_ONLINE]["column"] = "icon_visible_online"; - element["columns"][LIST_VISIBLE_ONLINE]["type"] = "text"; - if(relationInfo->isRightGrantedTo(LLRelationship::GRANT_ONLINE_STATUS)) - { - element["columns"][LIST_VISIBLE_ONLINE]["type"] = "icon"; - element["columns"][LIST_VISIBLE_ONLINE]["value"] = gViewerArt.getString("ff_visible_online.tga"); - } + element["columns"][LIST_VISIBLE_ONLINE]["type"] = "checkbox"; + element["columns"][LIST_VISIBLE_ONLINE]["value"] = relationInfo->isRightGrantedTo(LLRelationship::GRANT_ONLINE_STATUS); + element["columns"][LIST_VISIBLE_MAP]["column"] = "icon_visible_map"; - element["columns"][LIST_VISIBLE_MAP]["type"] = "text"; - if(relationInfo->isRightGrantedTo(LLRelationship::GRANT_MAP_LOCATION)) - { - element["columns"][LIST_VISIBLE_MAP]["type"] = "icon"; - element["columns"][LIST_VISIBLE_MAP]["value"] = gViewerArt.getString("ff_visible_map.tga"); - } + element["columns"][LIST_VISIBLE_MAP]["type"] = "checkbox"; + element["columns"][LIST_VISIBLE_MAP]["value"] = relationInfo->isRightGrantedTo(LLRelationship::GRANT_MAP_LOCATION); + element["columns"][LIST_EDIT_MINE]["column"] = "icon_edit_mine"; - element["columns"][LIST_EDIT_MINE]["type"] = "text"; - if(relationInfo->isRightGrantedTo(LLRelationship::GRANT_MODIFY_OBJECTS)) - { - element["columns"][LIST_EDIT_MINE]["type"] = "icon"; - element["columns"][LIST_EDIT_MINE]["value"] = gViewerArt.getString("ff_edit_mine.tga"); - } + element["columns"][LIST_EDIT_MINE]["type"] = "checkbox"; + element["columns"][LIST_EDIT_MINE]["value"] = relationInfo->isRightGrantedTo(LLRelationship::GRANT_MODIFY_OBJECTS); + element["columns"][LIST_EDIT_THEIRS]["column"] = "icon_edit_theirs"; - element["columns"][LIST_EDIT_THEIRS]["type"] = "text"; - if(relationInfo->isRightGrantedFrom(LLRelationship::GRANT_MODIFY_OBJECTS)) - { - element["columns"][LIST_EDIT_THEIRS]["type"] = "icon"; - element["columns"][LIST_EDIT_THEIRS]["value"] = gViewerArt.getString("ff_edit_theirs.tga"); - } + element["columns"][LIST_EDIT_THEIRS]["type"] = "checkbox"; + element["columns"][LIST_EDIT_THEIRS]["enabled"] = ""; + element["columns"][LIST_EDIT_THEIRS]["value"] = relationInfo->isRightGrantedFrom(LLRelationship::GRANT_MODIFY_OBJECTS); + + element["columns"][LIST_FRIEND_UPDATE_GEN]["column"] = "friend_last_update_generation"; + element["columns"][LIST_FRIEND_UPDATE_GEN]["value"] = relationInfo->getChangeSerialNum(); + mFriendsList->addElement(element, ADD_BOTTOM); } +// propagate actual relationship to UI +void LLPanelFriends::updateFriendItem(LLScrollListItem* itemp, const LLRelationship* info) +{ + if (!itemp) return; + if (!info) return; + + itemp->getColumn(LIST_ONLINE_STATUS)->setValue(info->isOnline() ? gViewerArt.getString("icon_avatar_online.tga") : LLString()); + // render name of online friends in bold text + ((LLScrollListText*)itemp->getColumn(LIST_FRIEND_NAME))->setFontStyle(info->isOnline() ? LLFontGL::BOLD : LLFontGL::NORMAL); + itemp->getColumn(LIST_VISIBLE_ONLINE)->setValue(info->isRightGrantedTo(LLRelationship::GRANT_ONLINE_STATUS)); + itemp->getColumn(LIST_VISIBLE_MAP)->setValue(info->isRightGrantedTo(LLRelationship::GRANT_MAP_LOCATION)); + itemp->getColumn(LIST_EDIT_MINE)->setValue(info->isRightGrantedTo(LLRelationship::GRANT_MODIFY_OBJECTS)); + itemp->getColumn(LIST_FRIEND_UPDATE_GEN)->setValue(info->getChangeSerialNum()); + + // enable this item, in case it was disabled after user input + itemp->setEnabled(TRUE); + + // changed item in place, need to request sort + mFriendsList->sortItems(); +} + void LLPanelFriends::refreshRightsChangeList() { LLDynamicArray friends = getSelectedIDs(); S32 num_selected = friends.size(); - LLSD row; bool can_offer_teleport = num_selected >= 1; - - // aggregate permissions over all selected friends - bool friends_see_online = true; - bool friends_see_on_map = true; - bool friends_modify_objects = true; - - // do at least some of the friends selected have these rights? - bool some_friends_see_online = false; - bool some_friends_see_on_map = false; - bool some_friends_modify_objects = false; - bool selected_friends_online = true; LLTextBox* processing_label = LLUICtrlFactory::getTextBoxByName(this, "process_rights_label"); @@ -294,12 +293,9 @@ void LLPanelFriends::refreshRightsChangeList() num_selected = 0; } } - else + else if(processing_label) { - if(processing_label) - { - processing_label->setVisible(false); - } + processing_label->setVisible(false); } const LLRelationship* friend_status = NULL; @@ -308,20 +304,6 @@ void LLPanelFriends::refreshRightsChangeList() friend_status = LLAvatarTracker::instance().getBuddyInfo(*itr); if (friend_status) { - bool can_see_online = friend_status->isRightGrantedTo(LLRelationship::GRANT_ONLINE_STATUS); - bool can_see_on_map = friend_status->isRightGrantedTo(LLRelationship::GRANT_MAP_LOCATION); - bool can_modify_objects = friend_status->isRightGrantedTo(LLRelationship::GRANT_MODIFY_OBJECTS); - - // aggregate rights of this friend into total selection - friends_see_online &= can_see_online; - friends_see_on_map &= can_see_on_map; - friends_modify_objects &= can_modify_objects; - - // can at least one of your selected friends do any of these? - some_friends_see_online |= can_see_online; - some_friends_see_on_map |= can_see_on_map; - some_friends_modify_objects |= can_modify_objects; - if(!friend_status->isOnline()) { can_offer_teleport = false; @@ -331,44 +313,13 @@ void LLPanelFriends::refreshRightsChangeList() else // missing buddy info, don't allow any operations { can_offer_teleport = false; - - friends_see_online = false; - friends_see_on_map = false; - friends_modify_objects = false; - - some_friends_see_online = false; - some_friends_see_on_map = false; - some_friends_modify_objects = false; } } - - // seeing a friend on the map requires seeing online status as a prerequisite - friends_see_on_map &= friends_see_online; - - mMenuState = 0; - - // make checkboxes visible after we have finished processing rights - childSetVisible("online_status_cb", mAllowRightsChange); - childSetVisible("map_status_cb", mAllowRightsChange); - childSetVisible("modify_status_cb", mAllowRightsChange); - if (num_selected == 0) // nothing selected { childSetEnabled("im_btn", FALSE); childSetEnabled("offer_teleport_btn", FALSE); - - childSetEnabled("online_status_cb", FALSE); - childSetValue("online_status_cb", FALSE); - childSetTentative("online_status_cb", FALSE); - - childSetEnabled("map_status_cb", FALSE); - childSetValue("map_status_cb", FALSE); - childSetTentative("map_status_cb", FALSE); - - childSetEnabled("modify_status_cb", FALSE); - childSetValue("modify_status_cb", FALSE); - childSetTentative("modify_status_cb", FALSE); } else // we have at least one friend selected... { @@ -376,61 +327,76 @@ void LLPanelFriends::refreshRightsChangeList() // to be consistent with context menus in inventory and because otherwise // offline friends would be silently dropped from the session childSetEnabled("im_btn", selected_friends_online || num_selected == 1); - childSetEnabled("offer_teleport_btn", can_offer_teleport); - - childSetEnabled("online_status_cb", TRUE); - childSetValue("online_status_cb", some_friends_see_online); - childSetTentative("online_status_cb", some_friends_see_online != friends_see_online); - if (friends_see_online) - { - mMenuState |= LLRelationship::GRANT_ONLINE_STATUS; - } - - childSetEnabled("map_status_cb", TRUE); - childSetValue("map_status_cb", some_friends_see_on_map); - childSetTentative("map_status_cb", some_friends_see_on_map != friends_see_on_map); - if(friends_see_on_map) - { - mMenuState |= LLRelationship::GRANT_MAP_LOCATION; - } - - // for now, don't allow modify rights change for multiple select - childSetEnabled("modify_status_cb", num_selected == 1); - childSetValue("modify_status_cb", some_friends_modify_objects); - childSetTentative("modify_status_cb", some_friends_modify_objects != friends_modify_objects); - if(friends_modify_objects) - { - mMenuState |= LLRelationship::GRANT_MODIFY_OBJECTS; - } } } +struct SortFriendsByID +{ + bool SortFriendsByID::operator() (const LLScrollListItem* const a, const LLScrollListItem* const b) const + { + return a->getValue().asUUID() < b->getValue().asUUID(); + } +}; + void LLPanelFriends::refreshNames() { LLDynamicArray selected_ids = getSelectedIDs(); S32 pos = mFriendsList->getScrollPos(); - mFriendsList->operateOnAll(LLCtrlListInterface::OP_DELETE); - LLCollectAllBuddies collect; - LLAvatarTracker::instance().applyFunctor(collect); - LLCollectAllBuddies::buddy_map_t::const_iterator it = collect.mOnline.begin(); - LLCollectAllBuddies::buddy_map_t::const_iterator end = collect.mOnline.end(); + // get all buddies we know about + LLAvatarTracker::buddy_map_t all_buddies; + LLAvatarTracker::instance().copyBuddyList(all_buddies); - for ( ; it != end; ++it) - { - const std::string& name = it->first; - const LLUUID& agent_id = it->second; - addFriend(name, agent_id); - } - it = collect.mOffline.begin(); - end = collect.mOffline.end(); - for ( ; it != end; ++it) + // get all friends in list and sort by UUID + std::vector items = mFriendsList->getAllData(); + std::sort(items.begin(), items.end(), SortFriendsByID()); + + std::vector::iterator item_it = items.begin(); + std::vector::iterator item_end = items.end(); + + LLAvatarTracker::buddy_map_t::iterator buddy_it; + for (buddy_it = all_buddies.begin() ; buddy_it != all_buddies.end(); ++buddy_it) { - const std::string& name = it->first; - const LLUUID& agent_id = it->second; - addFriend(name, agent_id); + // erase any items that reflect residents who are no longer buddies + while(item_it != item_end && buddy_it->first > (*item_it)->getValue().asUUID()) + { + mFriendsList->deleteItems((*item_it)->getValue()); + ++item_it; + } + + // update existing friends with new info + if (item_it != item_end && buddy_it->first == (*item_it)->getValue().asUUID()) + { + const LLRelationship* info = buddy_it->second; + if (!info) + { + ++item_it; + continue; + } + + S32 last_change_generation = (*item_it)->getColumn(LIST_FRIEND_UPDATE_GEN)->getValue().asInteger(); + if (last_change_generation < info->getChangeSerialNum()) + { + // update existing item in UI + updateFriendItem(mFriendsList->getItem(buddy_it->first), info); + } + ++item_it; + } + // add new friend to list + else + { + const LLUUID& buddy_id = buddy_it->first; + char first_name[DB_FIRST_NAME_BUF_SIZE]; /*Flawfinder: ignore*/ + char last_name[DB_LAST_NAME_BUF_SIZE]; /*Flawfinder: ignore*/ + + gCacheName->getName(buddy_id, first_name, last_name); + std::ostringstream fullname; + fullname << first_name << " " << last_name; + addFriend(fullname.str(), buddy_id); + } } + mFriendsList->selectMultiple(selected_ids); mFriendsList->setScrollPos(pos); } @@ -451,7 +417,7 @@ void LLPanelFriends::refreshUI() } else { - childSetText("friend_name_label", mFriendsList->getFirstSelected()->getColumn(LIST_FRIEND_NAME)->getText() + "..."); + childSetText("friend_name_label", mFriendsList->getFirstSelected()->getColumn(LIST_FRIEND_NAME)->getValue().asString() + "..."); } } else @@ -493,6 +459,8 @@ void LLPanelFriends::onSelectName(LLUICtrl* ctrl, void* user_data) if(panelp) { panelp->refreshUI(); + // check to see if rights have changed + panelp->applyRightsToFriends(); } } @@ -687,35 +655,22 @@ void LLPanelFriends::onClickPay(void* user_data) } } -void LLPanelFriends::onClickOnlineStatus(LLUICtrl* ctrl, void* user_data) -{ - LLPanelFriends* panelp = (LLPanelFriends*)user_data; - - bool checked = ctrl->getValue(); - panelp->updateMenuState(LLRelationship::GRANT_ONLINE_STATUS, checked); - panelp->applyRightsToFriends(LLRelationship::GRANT_ONLINE_STATUS, checked); -} - -void LLPanelFriends::onClickMapStatus(LLUICtrl* ctrl, void* user_data) -{ - LLPanelFriends* panelp = (LLPanelFriends*)user_data; - bool checked = ctrl->getValue(); - panelp->updateMenuState(LLRelationship::GRANT_MAP_LOCATION, checked); - panelp->applyRightsToFriends(LLRelationship::GRANT_MAP_LOCATION, checked); -} - -void LLPanelFriends::onClickModifyStatus(LLUICtrl* ctrl, void* user_data) +void LLPanelFriends::confirmModifyRights(rights_map_t& ids, EGrantRevoke command) { - LLPanelFriends* panelp = (LLPanelFriends*)user_data; - - bool checked = ctrl->getValue(); - LLDynamicArray ids = panelp->getSelectedIDs(); + if (ids.empty()) return; + LLStringBase::format_map_t args; if(ids.size() > 0) { + // copy map of ids onto heap + rights_map_t* rights = new rights_map_t(ids); + // package with panel pointer + std::pair* user_data = new std::pair(this, rights); + + // for single friend, show their name if(ids.size() == 1) { - LLUUID agent_id = ids[0]; + LLUUID agent_id = ids.begin()->first; char first[DB_FIRST_NAME_BUF_SIZE]; /*Flawfinder: ignore*/ char last[DB_LAST_NAME_BUF_SIZE]; /*Flawfinder: ignore*/ if(gCacheName->getName(agent_id, first, last)) @@ -723,56 +678,174 @@ void LLPanelFriends::onClickModifyStatus(LLUICtrl* ctrl, void* user_data) args["[FIRST_NAME]"] = first; args["[LAST_NAME]"] = last; } - if(checked) gViewerWindow->alertXml("GrantModifyRights", args, handleModifyRights, user_data); - else gViewerWindow->alertXml("RevokeModifyRights", args, handleModifyRights, user_data); + if (command == GRANT) + { + gViewerWindow->alertXml("GrantModifyRights", args, modifyRightsConfirmation, user_data); + } + else + { + gViewerWindow->alertXml("RevokeModifyRights", args, modifyRightsConfirmation, user_data); + } + } + else + { + if (command == GRANT) + { + gViewerWindow->alertXml("GrantModifyRightsMultiple", args, modifyRightsConfirmation, user_data); + } + else + { + gViewerWindow->alertXml("RevokeModifyRightsMultiple", args, modifyRightsConfirmation, user_data); + } } - else return; } } -void LLPanelFriends::handleModifyRights(S32 option, void* user_data) +// static +void LLPanelFriends::modifyRightsConfirmation(S32 option, void* user_data) { - LLPanelFriends* panelp = (LLPanelFriends*)user_data; + std::pair* data = (std::pair*)user_data; + LLPanelFriends* panelp = data->first; if(panelp) { - if(!option) + if(0 == option) { - panelp->updateMenuState(LLRelationship::GRANT_MODIFY_OBJECTS, !((panelp->getMenuState() & LLRelationship::GRANT_MODIFY_OBJECTS) != 0)); - panelp->applyRightsToFriends(LLRelationship::GRANT_MODIFY_OBJECTS, ((panelp->getMenuState() & LLRelationship::GRANT_MODIFY_OBJECTS) != 0)); + panelp->sendRightsGrant(*(data->second)); + } + else + { + // need to resync view with model, since user cancelled operation + rights_map_t* rights = data->second; + rights_map_t::iterator rights_it; + for (rights_it = rights->begin(); rights_it != rights->end(); ++rights_it) + { + LLScrollListItem* itemp = panelp->mFriendsList->getItem(rights_it->first); + const LLRelationship* info = LLAvatarTracker::instance().getBuddyInfo(rights_it->first); + panelp->updateFriendItem(itemp, info); + } } panelp->refreshUI(); } + + delete data->second; + delete data; } -void LLPanelFriends::updateMenuState(S32 flag, BOOL value) +void LLPanelFriends::applyRightsToFriends() { - if(value) mMenuState |= flag; - else mMenuState &= ~flag; + BOOL rights_changed = FALSE; + + // store modify rights separately for confirmation + rights_map_t rights_updates; + + BOOL need_confirmation = FALSE; + EGrantRevoke confirmation_type = GRANT; + + // this assumes that changes only happened to selected items + std::vector selected = mFriendsList->getAllSelected(); + for(std::vector::iterator itr = selected.begin(); itr != selected.end(); ++itr) + { + LLUUID id = (*itr)->getValue(); + const LLRelationship* buddy_relationship = LLAvatarTracker::instance().getBuddyInfo(id); + if (buddy_relationship == NULL) continue; + + bool show_online_staus = (*itr)->getColumn(LIST_VISIBLE_ONLINE)->getValue().asBoolean(); + bool show_map_location = (*itr)->getColumn(LIST_VISIBLE_MAP)->getValue().asBoolean(); + bool allow_modify_objects = (*itr)->getColumn(LIST_EDIT_MINE)->getValue().asBoolean(); + + S32 rights = buddy_relationship->getRightsGrantedTo(); + if(buddy_relationship->isRightGrantedTo(LLRelationship::GRANT_ONLINE_STATUS) != show_online_staus) + { + rights_changed = TRUE; + if(show_online_staus) + { + rights |= LLRelationship::GRANT_ONLINE_STATUS; + } + else + { + // ONLINE_STATUS necessary for MAP_LOCATION + rights &= ~LLRelationship::GRANT_ONLINE_STATUS; + rights &= ~LLRelationship::GRANT_MAP_LOCATION; + // propagate rights constraint to UI + (*itr)->getColumn(LIST_VISIBLE_MAP)->setValue(FALSE); + } + } + if(buddy_relationship->isRightGrantedTo(LLRelationship::GRANT_MAP_LOCATION) != show_map_location) + { + rights_changed = TRUE; + if(show_map_location) + { + // ONLINE_STATUS necessary for MAP_LOCATION + rights |= LLRelationship::GRANT_MAP_LOCATION; + rights |= LLRelationship::GRANT_ONLINE_STATUS; + (*itr)->getColumn(LIST_VISIBLE_ONLINE)->setValue(TRUE); + } + else + { + rights &= ~LLRelationship::GRANT_MAP_LOCATION; + } + } + + // now check for change in modify object rights, which requires confirmation + if(buddy_relationship->isRightGrantedTo(LLRelationship::GRANT_MODIFY_OBJECTS) != allow_modify_objects) + { + rights_changed = TRUE; + need_confirmation = TRUE; + + if(allow_modify_objects) + { + rights |= LLRelationship::GRANT_MODIFY_OBJECTS; + confirmation_type = GRANT; + } + else + { + rights &= ~LLRelationship::GRANT_MODIFY_OBJECTS; + confirmation_type = REVOKE; + } + } + + if (rights_changed) + { + rights_updates.insert(std::make_pair(id, rights)); + // disable these ui elements until response from server + // to avoid race conditions + (*itr)->setEnabled(FALSE); + } + } + + // separately confirm grant and revoke of modify rights + if (need_confirmation) + { + confirmModifyRights(rights_updates, confirmation_type); + } + else + { + sendRightsGrant(rights_updates); + } } -void LLPanelFriends::applyRightsToFriends(S32 flag, BOOL value) +void LLPanelFriends::sendRightsGrant(rights_map_t& ids) { + if (ids.empty()) return; + LLMessageSystem* msg = gMessageSystem; + + // setup message header msg->newMessageFast(_PREHASH_GrantUserRights); msg->nextBlockFast(_PREHASH_AgentData); msg->addUUID(_PREHASH_AgentID, gAgent.getID()); msg->addUUID(_PREHASH_SessionID, gAgent.getSessionID()); - LLDynamicArray ids = getSelectedIDs(); - S32 rights; - for(LLDynamicArray::iterator itr = ids.begin(); itr != ids.end(); ++itr) + rights_map_t::iterator id_it; + rights_map_t::iterator end_it = ids.end(); + for(id_it = ids.begin(); id_it != end_it; ++id_it) { - rights = LLAvatarTracker::instance().getBuddyInfo(*itr)->getRightsGrantedTo(); - if(LLAvatarTracker::instance().getBuddyInfo(*itr)->isRightGrantedTo(flag) != (bool)value) - { - if(value) rights |= flag; - else rights &= ~flag; - msg->nextBlockFast(_PREHASH_Rights); - msg->addUUID(_PREHASH_AgentRelated, *itr); - msg->addS32(_PREHASH_RelatedRights, rights); - } + msg->nextBlockFast(_PREHASH_Rights); + msg->addUUID(_PREHASH_AgentRelated, id_it->first); + msg->addS32(_PREHASH_RelatedRights, id_it->second); } + mNumRightsChanged = ids.size(); gAgent.sendReliableMessage(); } diff --git a/linden/indra/newview/llfloaterfriends.h b/linden/indra/newview/llfloaterfriends.h index b26e6e7..6e0ce78 100644 --- a/linden/indra/newview/llfloaterfriends.h +++ b/linden/indra/newview/llfloaterfriends.h @@ -14,12 +14,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -40,6 +40,7 @@ #include "lltimer.h" class LLFriendObserver; +class LLRelationship; /** @@ -88,19 +89,27 @@ private: LIST_VISIBLE_ONLINE, LIST_VISIBLE_MAP, LIST_EDIT_MINE, - LIST_EDIT_THEIRS + LIST_EDIT_THEIRS, + LIST_FRIEND_UPDATE_GEN }; // protected members - + typedef std::map rights_map_t; void reloadNames(); void refreshNames(); void refreshUI(); void refreshRightsChangeList(); - void applyRightsToFriends(S32 flag, BOOL value); - void updateMenuState(S32 flag, BOOL value); - S32 getMenuState() { return mMenuState; } + void applyRightsToFriends(); void addFriend(const std::string& name, const LLUUID& agent_id); + void updateFriendItem(LLScrollListItem* itemp, const LLRelationship* relationship); + + typedef enum + { + GRANT, + REVOKE + } EGrantRevoke; + void confirmModifyRights(rights_map_t& ids, EGrantRevoke command); + void sendRightsGrant(rights_map_t& ids); // return LLUUID::null if nothing is selected LLDynamicArray getSelectedIDs(); @@ -119,12 +128,10 @@ private: static void onClickOfferTeleport(void* user_data); static void onClickPay(void* user_data); - static void onClickOnlineStatus(LLUICtrl* ctrl, void* user_data); - static void onClickMapStatus(LLUICtrl* ctrl, void* user_data); static void onClickModifyStatus(LLUICtrl* ctrl, void* user_data); static void handleRemove(S32 option, void* user_data); - static void handleModifyRights(S32 option, void* user_data); + static void modifyRightsConfirmation(S32 option, void* user_data); private: // member data @@ -132,7 +139,6 @@ private: LLUUID mAddFriendID; LLString mAddFriendName; LLScrollListCtrl* mFriendsList; - S32 mMenuState; BOOL mShowMaxSelectWarning; BOOL mAllowRightsChange; S32 mNumRightsChanged; diff --git a/linden/indra/newview/llfloatergesture.cpp b/linden/indra/newview/llfloatergesture.cpp index b91ddb4..3ac1e8f 100644 --- a/linden/indra/newview/llfloatergesture.cpp +++ b/linden/indra/newview/llfloatergesture.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatergesture.h b/linden/indra/newview/llfloatergesture.h index ab7288f..82c8c27 100644 --- a/linden/indra/newview/llfloatergesture.h +++ b/linden/indra/newview/llfloatergesture.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatergodtools.cpp b/linden/indra/newview/llfloatergodtools.cpp index 219bd09..bdfa09c 100644 --- a/linden/indra/newview/llfloatergodtools.cpp +++ b/linden/indra/newview/llfloatergodtools.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatergodtools.h b/linden/indra/newview/llfloatergodtools.h index c145619..301c8ec 100644 --- a/linden/indra/newview/llfloatergodtools.h +++ b/linden/indra/newview/llfloatergodtools.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatergroupinfo.cpp b/linden/indra/newview/llfloatergroupinfo.cpp index 7d9c00b..1c303b9 100644 --- a/linden/indra/newview/llfloatergroupinfo.cpp +++ b/linden/indra/newview/llfloatergroupinfo.cpp @@ -14,12 +14,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -55,7 +55,8 @@ std::map LLFloaterGroupInfo::sInstances; class LLGroupHandler : public LLCommandHandler { public: - LLGroupHandler() : LLCommandHandler("group") { } + // don't allow from external browsers + LLGroupHandler() : LLCommandHandler("group", false) { } bool handle(const LLSD& tokens, const LLSD& queryMap) { if (tokens.size() < 2) diff --git a/linden/indra/newview/llfloatergroupinfo.h b/linden/indra/newview/llfloatergroupinfo.h index 648999c..28ff628 100644 --- a/linden/indra/newview/llfloatergroupinfo.h +++ b/linden/indra/newview/llfloatergroupinfo.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatergroupinvite.cpp b/linden/indra/newview/llfloatergroupinvite.cpp index ea3027f..8dd4e24 100644 --- a/linden/indra/newview/llfloatergroupinvite.cpp +++ b/linden/indra/newview/llfloatergroupinvite.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatergroupinvite.h b/linden/indra/newview/llfloatergroupinvite.h index ceb1e2b..621b5dd 100644 --- a/linden/indra/newview/llfloatergroupinvite.h +++ b/linden/indra/newview/llfloatergroupinvite.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatergroups.cpp b/linden/indra/newview/llfloatergroups.cpp index c68442c..4a89fae 100644 --- a/linden/indra/newview/llfloatergroups.cpp +++ b/linden/indra/newview/llfloatergroups.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatergroups.h b/linden/indra/newview/llfloatergroups.h index d4c1f54..8d118e4 100644 --- a/linden/indra/newview/llfloatergroups.h +++ b/linden/indra/newview/llfloatergroups.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterhtml.cpp b/linden/indra/newview/llfloaterhtml.cpp index 0853514..2f7bc14 100644 --- a/linden/indra/newview/llfloaterhtml.cpp +++ b/linden/indra/newview/llfloaterhtml.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -37,10 +37,13 @@ #include "llvieweruictrlfactory.h" #include "llviewercontrol.h" #include "lllineeditor.h" +#include "llviewerwindow.h" +#include "llweb.h" #include "llwebbrowserctrl.h" LLFloaterHtml* LLFloaterHtml::sInstance = 0; +LLViewerHtmlHelp gViewerHtmlHelp; //////////////////////////////////////////////////////////////////////////////// // @@ -83,10 +86,6 @@ LLFloaterHtml::LLFloaterHtml() { // open links in internal browser mWebBrowser->setOpenInExternalBrowser( false ); - - // don't automatically open secondlife links since we want to catch - // special ones that do other stuff (like open F1 Help) - mWebBrowser->setOpenSLURLsInMap( false ); } #endif // LL_LIBXUL_ENABLED } @@ -122,7 +121,7 @@ void LLFloaterHtml::draw() //////////////////////////////////////////////////////////////////////////////// // -void LLFloaterHtml::show( LLString content_id ) +void LLFloaterHtml::show( LLString content_id, bool open_app_slurls ) { // calculate the XML labels we'll need (if only XML folders worked) LLString title_str = content_id + "_title"; @@ -130,12 +129,12 @@ void LLFloaterHtml::show( LLString content_id ) std::string title = childGetValue( title_str ).asString(); std::string url = childGetValue( url_str ).asString(); - show( url, title ); + show( url, title, open_app_slurls ); } //////////////////////////////////////////////////////////////////////////////// // -void LLFloaterHtml::show( std::string start_url, std::string title ) +void LLFloaterHtml::show( std::string start_url, std::string title, bool open_app_slurls ) { // set the title setTitle( title ); @@ -143,7 +142,10 @@ void LLFloaterHtml::show( std::string start_url, std::string title ) #if LL_LIBXUL_ENABLED // navigate to the URL if ( mWebBrowser ) + { + mWebBrowser->setOpenAppSLURLs( open_app_slurls ); mWebBrowser->navigateTo( start_url ); + } #endif // LL_LIBXUL_ENABLED // make floater appear @@ -200,7 +202,7 @@ void LLFloaterHtml::onClickHome( void* data ) else { llwarns << "Invalid home page specified for HTML floater - navigating to default" << llendl; - self->mWebBrowser->navigateTo( "http://google.com" ); + self->mWebBrowser->navigateTo( "http://secondlife.com" ); } }; #endif // LL_LIBXUL_ENABLED @@ -259,3 +261,47 @@ void LLFloaterHtml::onClickGo( void* data ) }; }; } + +//////////////////////////////////////////////////////////////////////////////// +// +static void onClickF1HelpLoadURL(S32 option, void* userdata) +{ + if (option == 0) + { + // choose HELP url based on selected language - default to english language support page + LLString lang = LLUI::sConfigGroup->getString("Language"); + + // *TODO:Translate + // this sucks but there isn't a way to grab an arbitrary string from an XML file + // (using llcontroldef strings causes problems if string don't exist) + LLString help_url( "http://secondlife.com/support" ); + if ( lang == "ja" ) + help_url = "http://help.secondlife.com/jp"; + else + if ( lang == "ko" ) + help_url = "http://help.secondlife.com/kr"; + else + if ( lang == "pt" ) + help_url = "http://help.secondlife.com/pt"; + else + if ( lang == "de" ) + help_url = "http://de.secondlife.com/support"; + + LLWeb::loadURL( help_url ); + } +} + +LLViewerHtmlHelp::LLViewerHtmlHelp() +{ + LLUI::setHtmlHelp(this); +} + +LLViewerHtmlHelp::~LLViewerHtmlHelp() +{ + LLUI::setHtmlHelp(NULL); +} + +void LLViewerHtmlHelp::show(std::string url, std::string title) +{ + gViewerWindow->alertXml("ClickOpenF1Help", onClickF1HelpLoadURL, (void*) NULL); +} diff --git a/linden/indra/newview/llfloaterhtml.h b/linden/indra/newview/llfloaterhtml.h index d254f68..2f6164c 100644 --- a/linden/indra/newview/llfloaterhtml.h +++ b/linden/indra/newview/llfloaterhtml.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -34,6 +34,7 @@ #define LL_LLFLOATERHTML_H #include "llfloater.h" +#include "llhtmlhelp.h" class LLWebBrowserCtrl; @@ -48,10 +49,12 @@ class LLFloaterHtml : virtual void onClose( bool app_quitting ); // Pass string like "in-world_help" or "additional help" - void show( LLString content_id ); + void show( LLString content_id, bool open_app_slurls ); // Pass raw URL and window title - void show( std::string start_url, std::string title ); + // Can be set to handle secondlife:///app/ URLs, but this should + // usually be false. + void show( std::string start_url, std::string title, bool open_app_slurls ); static void onClickClose( void* data ); static void onClickBack( void* data ); @@ -69,4 +72,15 @@ class LLFloaterHtml : LLButton* mCloseButton; }; +class LLViewerHtmlHelp : public LLHtmlHelp +{ +public: + LLViewerHtmlHelp(); + virtual ~LLViewerHtmlHelp(); + + /*virtual*/ void show(std::string start_url = "", std::string title = ""); +}; + +extern LLViewerHtmlHelp gViewerHtmlHelp; + #endif diff --git a/linden/indra/newview/llfloaterhtmlhelp.cpp b/linden/indra/newview/llfloaterhtmlhelp.cpp deleted file mode 100644 index 6cb6c0f..0000000 --- a/linden/indra/newview/llfloaterhtmlhelp.cpp +++ /dev/null @@ -1,328 +0,0 @@ -/** - * @file llfloaterhtmlhelp.cpp - * @brief HTML Help floater - uses embedded web browser control - * - * $LicenseInfo:firstyear=2006&license=viewergpl$ - * - * Copyright (c) 2006-2008, Linden Research, Inc. - * - * Second Life Viewer Source Code - * The source code in this file ("Source Code") is provided by Linden Lab - * to you under the terms of the GNU General Public License, version 2.0 - * ("GPL"), unless you have obtained a separate licensing agreement - * ("Other License"), formally executed by you and Linden Lab. Terms of - * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 - * - * There are special exceptions to the terms and conditions of the GPL as - * it is applied to this Source Code. View the full text of the exception - * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception - * - * By copying, modifying or distributing this software, you acknowledge - * that you have read and understood your obligations described above, - * and agree to abide by those obligations. - * - * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO - * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, - * COMPLETENESS OR PERFORMANCE. - * $/LicenseInfo$ - */ - -#include "llviewerprecompiledheaders.h" - -#include "llfloaterhtmlhelp.h" - -#include "llvieweruictrlfactory.h" -#include "llwebbrowserctrl.h" -#include "llviewerwindow.h" -#include "llviewercontrol.h" -#include "llweb.h" -#include "llui.h" - -#if LL_LIBXUL_ENABLED - -LLViewerHtmlHelp gViewerHtmlHelp; - -class LLFloaterHtmlHelp : - public LLFloater, - public LLWebBrowserCtrlObserver -{ -public: - LLFloaterHtmlHelp(std::string start_url, std::string title); - virtual ~LLFloaterHtmlHelp(); - - virtual void onClose( bool app_quitting ); - virtual void draw(); - - static void show(std::string url, std::string title); - static void onClickBack( void* data ); - static void onClickHome( void* data ); - static void onClickForward( void* data ); - static void onClickClose( void* data ); - - // browser observer impls - virtual void onStatusTextChange( const EventType& eventIn ); - virtual void onLocationChange( const EventType& eventIn ); - - // used for some stats logging - will be removed at some point - static BOOL sFloaterOpened; - - static void onClickF1HelpLoadURL(S32 option, void* userdata); - -protected: - LLWebBrowserCtrl* mWebBrowser; - static LLFloaterHtmlHelp* sInstance; - LLButton* mBackButton; - LLButton* mForwardButton; - LLButton* mCloseButton; - LLTextBox* mStatusText; - LLString mStatusTextContents; - LLString mCurrentUrl; -}; - -LLFloaterHtmlHelp* LLFloaterHtmlHelp::sInstance = 0; - -BOOL LLFloaterHtmlHelp::sFloaterOpened = FALSE; - -//////////////////////////////////////////////////////////////////////////////// -// -LLFloaterHtmlHelp::LLFloaterHtmlHelp(std::string start_url, std::string title) -: LLFloater( "HTML Help" ), - mWebBrowser( 0 ), - mStatusTextContents( "" ), - mCurrentUrl( "" ) -{ - sInstance = this; - - // create floater from its XML definition - gUICtrlFactory->buildFloater( this, "floater_html_help.xml" ); - - childSetAction("back_btn", onClickBack, this); - childSetAction("home_btn", onClickHome, this); - childSetAction("forward_btn", onClickForward, this); - - if (!title.empty()) - { - setTitle(title); - } - - mWebBrowser = LLViewerUICtrlFactory::getWebBrowserByName(this, "html_help_browser" ); - if ( mWebBrowser ) - { - // observe browser control events - mWebBrowser->addObserver( this ); - - if (start_url != "") - { - mWebBrowser->navigateTo( start_url ); - } - else - { - // if the last page we were at before the client was closed is valid, go there and - // override what is in the XML file - // (not when the window was closed - it's only ever hidden - not closed) - LLString lastPageUrl = gSavedSettings.getString( "HtmlHelpLastPage" ); - if ( lastPageUrl != "" ) - { - mWebBrowser->navigateTo( lastPageUrl ); - }; - } - }; -} - -//////////////////////////////////////////////////////////////////////////////// -// -LLFloaterHtmlHelp::~LLFloaterHtmlHelp() -{ - // stop observing browser events - if ( mWebBrowser ) - { - mWebBrowser->remObserver( this ); - }; - - // save position of floater - gSavedSettings.setRect( "HtmlHelpRect", mRect ); - - // save the location we were at when SL closed - gSavedSettings.setString( "HtmlHelpLastPage", mCurrentUrl ); - - sInstance = 0; -} - -//////////////////////////////////////////////////////////////////////////////// -// virtual -void LLFloaterHtmlHelp::draw() -{ - // enable/disable buttons depending on state - if ( mWebBrowser ) - { - bool enable_back = mWebBrowser->canNavigateBack(); - childSetEnabled( "back_btn", enable_back ); - - bool enable_forward = mWebBrowser->canNavigateForward(); - childSetEnabled( "forward_btn", enable_forward ); - }; - - LLFloater::draw(); -} - -//////////////////////////////////////////////////////////////////////////////// -// -void LLFloaterHtmlHelp::show(std::string url, std::string title) -{ - gViewerWindow->alertXml("ClickOpenF1Help", onClickF1HelpLoadURL, (void*) NULL); - - // switching this out for the moment - will come back later - // want it still to be compiled so not using comments of #if 0 - if ( false ) - { - sFloaterOpened = true; - - if ( sInstance ) - { - if (sInstance->mWebBrowser) - { - sInstance->mWebBrowser->navigateTo(url); - } - sInstance->setVisibleAndFrontmost(); - return; - } - - LLFloaterHtmlHelp* self = new LLFloaterHtmlHelp(url, title); - - // reposition floater from saved settings - LLRect rect = gSavedSettings.getRect( "HtmlHelpRect" ); - self->reshape( rect.getWidth(), rect.getHeight(), FALSE ); - self->setRect( rect ); - }; -} - -// static -void LLFloaterHtmlHelp::onClickF1HelpLoadURL(S32 option, void* userdata) -{ - if (option == 0) - { - // choose HELP url based on selected language - default to english language support page - LLString lang = LLUI::sConfigGroup->getString("Language"); - - // this sucks but there isn't a way to grab an arbitrary string from an XML file - // (using llcontroldef strings causes problems if string don't exist) - LLString help_url( "http://secondlife.com/support" ); - if ( lang == "ja" ) - help_url = "http://help.secondlife.com/jp"; - else - if ( lang == "ko" ) - help_url = "http://help.secondlife.com/kr"; - else - if ( lang == "pt" ) - help_url = "http://help.secondlife.com/pt"; - else - if ( lang == "de" ) - help_url = "http://de.secondlife.com/support"; - - LLWeb::loadURL( help_url ); - }; -} - -//////////////////////////////////////////////////////////////////////////////// -// -void LLFloaterHtmlHelp::onClose( bool app_quitting ) -{ - setVisible( false ); -} - -//////////////////////////////////////////////////////////////////////////////// -// -void LLFloaterHtmlHelp::onClickClose( void* data ) -{ - LLFloaterHtmlHelp* self = ( LLFloaterHtmlHelp* )data; - - self->setVisible( false ); -} - -//////////////////////////////////////////////////////////////////////////////// -// -void LLFloaterHtmlHelp::onClickBack( void* data ) -{ - LLFloaterHtmlHelp* self = ( LLFloaterHtmlHelp* )data; - if ( self ) - { - if ( self->mWebBrowser ) - { - self->mWebBrowser->navigateBack(); - }; - }; -} - -//////////////////////////////////////////////////////////////////////////////// -// -void LLFloaterHtmlHelp::onClickHome( void* data ) -{ - LLFloaterHtmlHelp* self = ( LLFloaterHtmlHelp* )data; - if ( self ) - { - // get the home page URL (which can differ from the start URL) from XML and go there - LLWebBrowserCtrl* web_browser = LLUICtrlFactory::getWebBrowserCtrlByName( self, "html_help_browser" ); - if ( web_browser ) - { - web_browser->navigateHome(); - }; - }; -} - -//////////////////////////////////////////////////////////////////////////////// -// -void LLFloaterHtmlHelp::onClickForward( void* data ) -{ - LLFloaterHtmlHelp* self = ( LLFloaterHtmlHelp* )data; - if ( self ) - { - if ( self->mWebBrowser ) - { - self->mWebBrowser->navigateForward(); - }; - }; -} - -//////////////////////////////////////////////////////////////////////////////// -// -void LLFloaterHtmlHelp::onStatusTextChange( const EventType& eventIn ) -{ - mStatusTextContents = LLString( eventIn.getStringValue() ); - - childSetText("status_text", mStatusTextContents); -} - -//////////////////////////////////////////////////////////////////////////////// -// -void LLFloaterHtmlHelp::onLocationChange( const EventType& eventIn ) -{ - llinfos << "MOZ> Location changed to " << eventIn.getStringValue() << llendl; - mCurrentUrl = LLString( eventIn.getStringValue() ); -} - -//////////////////////////////////////////////////////////////////////////////// -// -LLViewerHtmlHelp::LLViewerHtmlHelp() -{ - LLUI::setHtmlHelp(this); -} - -LLViewerHtmlHelp::~LLViewerHtmlHelp() -{ - LLUI::setHtmlHelp(NULL); -} - -void LLViewerHtmlHelp::show(std::string url, std::string title) -{ - LLFloaterHtmlHelp::show(url, title); -} - -BOOL LLViewerHtmlHelp::getFloaterOpened() -{ - return LLFloaterHtmlHelp::sFloaterOpened; -} - -#endif // LL_LIBXUL_ENABLED - diff --git a/linden/indra/newview/llfloaterhtmlhelp.h b/linden/indra/newview/llfloaterhtmlhelp.h deleted file mode 100644 index 06167c2..0000000 --- a/linden/indra/newview/llfloaterhtmlhelp.h +++ /dev/null @@ -1,53 +0,0 @@ -/** - * @file llfloaterhtmlhelp.h - * @brief HTML Help floater - uses embedded web browser control - * - * $LicenseInfo:firstyear=2006&license=viewergpl$ - * - * Copyright (c) 2006-2008, Linden Research, Inc. - * - * Second Life Viewer Source Code - * The source code in this file ("Source Code") is provided by Linden Lab - * to you under the terms of the GNU General Public License, version 2.0 - * ("GPL"), unless you have obtained a separate licensing agreement - * ("Other License"), formally executed by you and Linden Lab. Terms of - * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 - * - * There are special exceptions to the terms and conditions of the GPL as - * it is applied to this Source Code. View the full text of the exception - * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception - * - * By copying, modifying or distributing this software, you acknowledge - * that you have read and understood your obligations described above, - * and agree to abide by those obligations. - * - * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO - * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, - * COMPLETENESS OR PERFORMANCE. - * $/LicenseInfo$ - */ - -#if LL_LIBXUL_ENABLED - -#ifndef LL_LLFLOATERHTMLHELP_H -#define LL_LLFLOATERHTMLHELP_H - -#include "llhtmlhelp.h" - -class LLViewerHtmlHelp : public LLHtmlHelp -{ -public: - LLViewerHtmlHelp(); - virtual ~LLViewerHtmlHelp(); - - /*virtual*/ void show(std::string start_url = "", std::string title = ""); - /*virtual*/ BOOL getFloaterOpened(); -}; - -extern LLViewerHtmlHelp gViewerHtmlHelp; - -#endif // LL_LLFLOATERHTMLHELP_H - -#endif // LL_LIBXUL_ENABLED diff --git a/linden/indra/newview/llfloaterimagepreview.cpp b/linden/indra/newview/llfloaterimagepreview.cpp index 1d15016..4c0b096 100644 --- a/linden/indra/newview/llfloaterimagepreview.cpp +++ b/linden/indra/newview/llfloaterimagepreview.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterimagepreview.h b/linden/indra/newview/llfloaterimagepreview.h index 5f8c279..cd5d80b 100644 --- a/linden/indra/newview/llfloaterimagepreview.h +++ b/linden/indra/newview/llfloaterimagepreview.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterimport.cpp b/linden/indra/newview/llfloaterimport.cpp index 325e29a..77f1206 100644 --- a/linden/indra/newview/llfloaterimport.cpp +++ b/linden/indra/newview/llfloaterimport.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -305,7 +305,7 @@ BOOL LLFloaterImport::postBuild() if (!object_file_read) { - mImportList->addSimpleItem("Error: Invalid object file.", ADD_BOTTOM, FALSE); + mImportList->addCommentText("Error: Invalid object file."); mImportList->setCanSelect(FALSE); mOKBtn->setEnabled(FALSE); } @@ -622,7 +622,7 @@ BOOL LLFloaterImport::handleMouseDown(S32 x, S32 y, MASK mask) if (item) { current_preview_uuid = item->getUUID(); - current_preview_name = item->getColumn(2)->getText(); + current_preview_name = item->getColumn(2)->getValue().asString(); } else { @@ -634,7 +634,7 @@ BOOL LLFloaterImport::handleMouseDown(S32 x, S32 y, MASK mask) if (current_preview_uuid.isNull()) { current_preview_uuid = (*itor)->getUUID(); - current_preview_name = (*itor)->getColumn(2)->getText(); + current_preview_name = (*itor)->getColumn(2)->getValue().asString(); } else { diff --git a/linden/indra/newview/llfloaterimport.h b/linden/indra/newview/llfloaterimport.h index 93f938a..f633196 100644 --- a/linden/indra/newview/llfloaterimport.h +++ b/linden/indra/newview/llfloaterimport.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterinspect.cpp b/linden/indra/newview/llfloaterinspect.cpp index 1434ccc..70b7a29 100644 --- a/linden/indra/newview/llfloaterinspect.cpp +++ b/linden/indra/newview/llfloaterinspect.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -262,6 +262,7 @@ void LLFloaterInspect::refresh() void LLFloaterInspect::onFocusReceived() { gToolMgr->setTransientTool(gToolInspect); + LLFloater::onFocusReceived(); } void LLFloaterInspect::dirty() diff --git a/linden/indra/newview/llfloaterinspect.h b/linden/indra/newview/llfloaterinspect.h index 376ceac..31ca2fc 100644 --- a/linden/indra/newview/llfloaterinspect.h +++ b/linden/indra/newview/llfloaterinspect.h @@ -14,12 +14,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or -* online at http://secondlife.com/developers/opensource/gplv2 +* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or -* online at http://secondlife.com/developers/opensource/flossexception +* online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterlagmeter.cpp b/linden/indra/newview/llfloaterlagmeter.cpp index 6d09f64..2d4f65d 100644 --- a/linden/indra/newview/llfloaterlagmeter.cpp +++ b/linden/indra/newview/llfloaterlagmeter.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterlagmeter.h b/linden/indra/newview/llfloaterlagmeter.h index 933bd5c..dc6d92b 100644 --- a/linden/indra/newview/llfloaterlagmeter.h +++ b/linden/indra/newview/llfloaterlagmeter.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterland.cpp b/linden/indra/newview/llfloaterland.cpp index 5af46f3..447571d 100644 --- a/linden/indra/newview/llfloaterland.cpp +++ b/linden/indra/newview/llfloaterland.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -1045,7 +1045,10 @@ BOOL LLPanelLandObjects::postBuild() mSelectedObjects = LLUICtrlFactory::getTextBoxByName(this, "selected_objects_text"); mCleanOtherObjectsTime = LLUICtrlFactory::getLineEditorByName(this, "clean other time"); - mCleanOtherObjectsTime->setFocusLostCallback(onLostFocus); + + mCleanOtherObjectsTime->setFocusLostCallback(onLostFocus, this); + mCleanOtherObjectsTime->setCommitCallback(onCommitClean); + childSetPrevalidate("clean other time", LLLineEditor::prevalidateNonNegativeS32); childSetUserData("clean other time", this); @@ -1066,44 +1069,8 @@ BOOL LLPanelLandObjects::postBuild() image_id.set( gViewerArt.getString("icon_group.tga") ); mIconGroup = gImageList.getImage(image_id, MIPMAP_FALSE, TRUE); - mCurrentSortColumn = 3; // sort by number of objects by default. - mCurrentSortAscending = FALSE; - - // Column widths for various columns - const S32 SORTER_WIDTH = 308; - const S32 DESC_BTN_WIDTH = 64; - const S32 ICON_WIDTH = 24; - mColWidth[0] = ICON_WIDTH; // type icon - mColWidth[1] = -1; // hidden type code - mColWidth[2] = SORTER_WIDTH - mColWidth[0] - DESC_BTN_WIDTH; - mColWidth[3] = DESC_BTN_WIDTH; // info - mColWidth[4] = -1; // type data 1 - mColWidth[5] = -1; - mColWidth[6] = -1; // type data 3 - mColWidth[7] = -1; // type data 4 - mColWidth[8] = -1; // type data 5 - - // Adjust description for other widths - S32 sum = 0; - for (S32 i = 0; i < 8; i++) - { - if (mColWidth[i] > 0) - { - sum += mColWidth[i]; - } - } - mColWidth[8] = mRect.getWidth() - HPAD - sum - HPAD - HPAD; - - mBtnType = LLUICtrlFactory::getButtonByName(this, "Type"); - mBtnType->setClickedCallback(onClickType, this); - - mBtnName = LLUICtrlFactory::getButtonByName(this, "Name"); - mBtnName->setClickedCallback(onClickName, this); - - mBtnDescription = LLUICtrlFactory::getButtonByName(this, "Count"); - mBtnDescription->setClickedCallback(onClickDesc, this); - mOwnerList = LLUICtrlFactory::getNameListByName(this, "owner list"); + mOwnerList->sortByColumn(3, FALSE); childSetCommitCallback("owner list", onCommitList, this); mOwnerList->setDoubleClickCallback(onDoubleClickOwner); @@ -1134,7 +1101,7 @@ void LLPanelLandObjects::onDoubleClickOwner(void *userdata) return; } // Is this a group? - BOOL is_group = cell->getText() == OWNER_GROUP; + BOOL is_group = cell->getValue().asString() == OWNER_GROUP; if (is_group) { LLFloaterGroupInfo::showFromUUID(owner_id); @@ -1179,19 +1146,16 @@ void LLPanelLandObjects::refresh() } else { - S32 sw_max = 0; - S32 sw_total = 0; - S32 max = 0; - S32 total = 0; - S32 owned = 0; - S32 group = 0; - S32 other = 0; - S32 selected = 0; - F32 parcel_object_bonus = 0.f; - - gParcelMgr->getPrimInfo(sw_max, sw_total, - max, total, owned, group, other, selected, - parcel_object_bonus, mOtherTime); + S32 sw_max = parcel->getSimWideMaxPrimCapacity(); + S32 sw_total = parcel->getSimWidePrimCount(); + S32 max = llround(parcel->getMaxPrimCapacity() * parcel->getParcelPrimBonus()); + S32 total = parcel->getPrimCount(); + S32 owned = parcel->getOwnerPrimCount(); + S32 group = parcel->getGroupPrimCount(); + S32 other = parcel->getOtherPrimCount(); + S32 selected = parcel->getSelectedPrimCount(); + F32 parcel_object_bonus = parcel->getParcelPrimBonus(); + mOtherTime = parcel->getCleanOtherTime(); // Can't have more than region max tasks, regardless of parcel // object bonus factor. @@ -1441,14 +1405,6 @@ void LLPanelLandObjects::onClickReturnOwnerList(void* userdata) { LLPanelLandObjects *self = (LLPanelLandObjects *)userdata; - S32 sw_max, sw_total; - S32 max, total; - S32 owned, group, other, selected; - F32 parcel_object_bonus; - S32 other_time; - - gParcelMgr->getPrimInfo(sw_max, sw_total, max, total, owned, group, other, selected, parcel_object_bonus, other_time); - LLParcel* parcelp = self->mParcel->getParcel(); if (!parcelp) return; @@ -1491,7 +1447,7 @@ void LLPanelLandObjects::onClickRefresh(void* userdata) // ready the list for results self->mOwnerList->deleteAllItems(); - self->mOwnerList->addSimpleItem("Searching..."); + self->mOwnerList->addCommentText("Searching..."); self->mOwnerList->setEnabled(FALSE); self->mFirstReply = TRUE; @@ -1552,24 +1508,24 @@ void LLPanelLandObjects::processParcelObjectOwnersReply(LLMessageSystem *msg, vo LLScrollListItem *row = new LLScrollListItem( TRUE, NULL, owner_id); if (is_group_owned) { - row->addColumn(self->mIconGroup, self->mColWidth[0]); - row->addColumn(OWNER_GROUP, FONT, self->mColWidth[1]); + row->addColumn(self->mIconGroup.notNull() ? self->mIconGroup->getID() : LLUUID::null); + row->addColumn(OWNER_GROUP, FONT); } else if (is_online) { - row->addColumn(self->mIconAvatarOnline, self->mColWidth[0]); - row->addColumn(OWNER_ONLINE, FONT, self->mColWidth[1]); + row->addColumn(self->mIconAvatarOnline.notNull() ? self->mIconAvatarOnline->getID() : LLUUID::null); + row->addColumn(OWNER_ONLINE, FONT); } else // offline { - row->addColumn(self->mIconAvatarOffline, self->mColWidth[0]); - row->addColumn(OWNER_OFFLINE, FONT, self->mColWidth[1]); + row->addColumn(self->mIconAvatarOffline.notNull() ? self->mIconAvatarOffline->getID() : LLUUID::null); + row->addColumn(OWNER_OFFLINE, FONT); } // Placeholder for name. - row->addColumn(LLString::null, FONT, self->mColWidth[2]); + row->addColumn(LLString::null, FONT); snprintf(object_count_str, sizeof(object_count_str), "%d", object_count); /* Flawfinder: ignore */ - row->addColumn(object_count_str, FONT, self->mColWidth[3]); + row->addColumn(object_count_str, FONT); if (is_group_owned) { @@ -1583,12 +1539,10 @@ void LLPanelLandObjects::processParcelObjectOwnersReply(LLMessageSystem *msg, vo lldebugs << "object owner " << owner_id << " (" << (is_group_owned ? "group" : "agent") << ") owns " << object_count << " objects." << llendl; } - self->mOwnerList->sortByColumn(self->mCurrentSortColumn, self->mCurrentSortAscending); - // check for no results if (0 == self->mOwnerList->getItemCount()) { - self->mOwnerList->addSimpleItem("None found."); + self->mOwnerList->addCommentText("None found."); } else { @@ -1596,21 +1550,6 @@ void LLPanelLandObjects::processParcelObjectOwnersReply(LLMessageSystem *msg, vo } } -void LLPanelLandObjects::sortBtnCore(S32 column) -{ - if (column == (S32)mCurrentSortColumn) // is this already our sorted column? - { - mCurrentSortAscending = !mCurrentSortAscending; - } - else // default to ascending first time a column is clicked - { - mCurrentSortColumn = column; - mCurrentSortAscending = TRUE; - } - - mOwnerList->sortByColumn(column, mCurrentSortAscending); -} - // static void LLPanelLandObjects::onCommitList(LLUICtrl* ctrl, void* data) { @@ -1631,11 +1570,11 @@ void LLPanelLandObjects::onCommitList(LLUICtrl* ctrl, void* data) return; } // Is this a group? - self->mSelectedIsGroup = cell->getText() == OWNER_GROUP; + self->mSelectedIsGroup = cell->getValue().asString() == OWNER_GROUP; cell = item->getColumn(2); - self->mSelectedName = cell->getText(); + self->mSelectedName = cell->getValue().asString(); cell = item->getColumn(3); - self->mSelectedCount = atoi(cell->getText().c_str()); + self->mSelectedCount = atoi(cell->getValue().asString().c_str()); // Set the selection, and enable the return button. self->mSelectedOwners.clear(); @@ -1648,28 +1587,6 @@ void LLPanelLandObjects::onCommitList(LLUICtrl* ctrl, void* data) } // static -void LLPanelLandObjects::onClickType(void* userdata) -{ - // Sort on hidden type column - LLPanelLandObjects* self = (LLPanelLandObjects*)userdata; - self->sortBtnCore(1); -} - -// static -void LLPanelLandObjects::onClickDesc(void* userdata) -{ - LLPanelLandObjects* self = (LLPanelLandObjects*)userdata; - self->sortBtnCore(3); -} - -// static -void LLPanelLandObjects::onClickName(void* userdata) -{ - LLPanelLandObjects* self = (LLPanelLandObjects*)userdata; - self->sortBtnCore(2); -} - -// static void LLPanelLandObjects::clickShowCore(LLPanelLandObjects* self, S32 return_type, uuid_list_t* list) { LLParcel* parcel = self->mParcel->getParcel(); @@ -1699,18 +1616,14 @@ void LLPanelLandObjects::onClickShowOtherObjects(void* userdata) // static void LLPanelLandObjects::onClickReturnOwnerObjects(void* userdata) { - S32 sw_max=0, sw_total=0; - S32 max=0, total=0; - S32 owned=0, group=0, other=0, selected=0; - F32 parcel_object_bonus=0; - S32 other_time=0; - - gParcelMgr->getPrimInfo(sw_max, sw_total, max, total, owned, group, other, selected, parcel_object_bonus, other_time); + S32 owned = 0; LLPanelLandObjects* panelp = (LLPanelLandObjects*)userdata; LLParcel* parcel = panelp->mParcel->getParcel(); if (!parcel) return; + owned = parcel->getOwnerPrimCount(); + send_parcel_select_objects(parcel->getLocalID(), RT_OWNER); LLUUID owner_id = parcel->getOwnerID(); @@ -1738,14 +1651,6 @@ void LLPanelLandObjects::onClickReturnOwnerObjects(void* userdata) // static void LLPanelLandObjects::onClickReturnGroupObjects(void* userdata) { - S32 sw_max=0, sw_total=0; - S32 max=0, total=0; - S32 owned=0, group=0, other=0, selected=0; - F32 parcel_object_bonus=0; - S32 other_time=0; - - gParcelMgr->getPrimInfo(sw_max, sw_total, max, total, owned, group, other, selected, parcel_object_bonus, other_time); - LLPanelLandObjects* panelp = (LLPanelLandObjects*)userdata; LLParcel* parcel = panelp->mParcel->getParcel(); if (!parcel) return; @@ -1757,7 +1662,7 @@ void LLPanelLandObjects::onClickReturnGroupObjects(void* userdata) LLStringBase::format_map_t args; args["[NAME]"] = group_name; - args["[N]"] = llformat("%d",group); + args["[N]"] = llformat("%d", parcel->getGroupPrimCount()); // create and show confirmation textbox gViewerWindow->alertXml("ReturnObjectsDeededToGroup", args, callbackReturnGroupObjects, userdata); @@ -1766,17 +1671,13 @@ void LLPanelLandObjects::onClickReturnGroupObjects(void* userdata) // static void LLPanelLandObjects::onClickReturnOtherObjects(void* userdata) { - S32 sw_max=0, sw_total=0; - S32 max=0, total=0; - S32 owned=0, group=0, other=0, selected=0; - F32 parcel_object_bonus=0; - S32 other_time=0; - - gParcelMgr->getPrimInfo(sw_max, sw_total, max, total, owned, group, other, selected, parcel_object_bonus, other_time); + S32 other = 0; LLPanelLandObjects* panelp = (LLPanelLandObjects*)userdata; LLParcel* parcel = panelp->mParcel->getParcel(); if (!parcel) return; + + other = parcel->getOtherPrimCount(); send_parcel_select_objects(parcel->getLocalID(), RT_OTHER); @@ -1816,7 +1717,13 @@ void LLPanelLandObjects::onClickReturnOtherObjects(void* userdata) } // static -void LLPanelLandObjects::onLostFocus(LLUICtrl *caller, void* user_data) +void LLPanelLandObjects::onLostFocus(LLFocusableElement* caller, void* user_data) +{ + onCommitClean((LLUICtrl*)caller, user_data); +} + +// static +void LLPanelLandObjects::onCommitClean(LLUICtrl *caller, void* user_data) { LLPanelLandObjects *lop = (LLPanelLandObjects *)user_data; LLParcel* parcel = lop->mParcel->getParcel(); @@ -2401,6 +2308,13 @@ void LLPanelLandMedia::refresh() mCheckSoundLocal->set( parcel->getSoundLocal() ); mCheckSoundLocal->setEnabled( can_change_media ); + LLViewerRegion* selection_region = gParcelMgr->getSelectionRegion(); + BOOL region_allows_voice = FALSE; + if (selection_region) + { + region_allows_voice = selection_region->isVoiceEnabled(); + } + if(parcel->getVoiceEnabled()) { if(parcel->getVoiceUseEstateChannel()) @@ -2413,7 +2327,7 @@ void LLPanelLandMedia::refresh() mRadioVoiceChat->setSelectedIndex(kRadioVoiceChatDisable); } - mRadioVoiceChat->setEnabled( can_change_media ); + mRadioVoiceChat->setEnabled( can_change_media && region_allows_voice ); // don't display urls if you're not able to change it // much requested change in forums so people can't 'steal' urls @@ -2528,7 +2442,7 @@ void LLPanelLandMedia::onClickStopMedia ( void* data ) void LLPanelLandMedia::onClickStartMedia ( void* data ) { // force a commit - gFocusMgr.setKeyboardFocus ( NULL, NULL ); + gFocusMgr.setKeyboardFocus ( NULL ); // force a reload LLMediaEngine::getInstance ()->convertImageAndLoadUrl ( true, false, std::string()); @@ -2904,7 +2818,7 @@ void LLPanelLandAccess::onCommitAny(LLUICtrl *ctrl, void *userdata) LLCtrlSelectionInterface* passcombo = self->childGetSelectionInterface("pass_combo"); if (passcombo) { - if (passcombo->getSimpleSelectedValue().asString() == "group") + if (passcombo->getSelectedValue().asString() == "group") { use_access_list = FALSE; } diff --git a/linden/indra/newview/llfloaterland.h b/linden/indra/newview/llfloaterland.h index 7bb3ae8..551c7e3 100644 --- a/linden/indra/newview/llfloaterland.h +++ b/linden/indra/newview/llfloaterland.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -250,21 +250,17 @@ public: static void onClickReturnOtherObjects(void*); static void onClickReturnOwnerList(void*); static void onClickRefresh(void*); - static void onClickType(void*); - static void onClickName(void*); - static void onClickDesc(void*); static void onDoubleClickOwner(void*); static void onCommitList(LLUICtrl* ctrl, void* data); - static void onLostFocus(LLUICtrl* caller, void* user_data); - + static void onLostFocus(LLFocusableElement* caller, void* user_data); + static void onCommitClean(LLUICtrl* caller, void* user_data); static void processParcelObjectOwnersReply(LLMessageSystem *msg, void **); virtual BOOL postBuild(); protected: - void sortBtnCore(S32 column); LLTextBox *mParcelObjectBonus; LLTextBox *mSWTotalObjects; @@ -284,19 +280,12 @@ protected: S32 mOtherTime; LLButton *mBtnRefresh; LLButton *mBtnReturnOwnerList; - LLButton *mBtnType; // column 0 - LLButton *mBtnName; // column 2 - LLButton *mBtnDescription; // column 3 LLNameListCtrl *mOwnerList; LLPointer mIconAvatarOnline; LLPointer mIconAvatarOffline; LLPointer mIconGroup; - U32 mCurrentSortColumn; - BOOL mCurrentSortAscending; - S32 mColWidth[12]; - BOOL mFirstReply; uuid_list_t mSelectedOwners; diff --git a/linden/indra/newview/llfloaterlandholdings.cpp b/linden/indra/newview/llfloaterlandholdings.cpp index 75200aa..32d077c 100644 --- a/linden/indra/newview/llfloaterlandholdings.cpp +++ b/linden/indra/newview/llfloaterlandholdings.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -256,7 +256,7 @@ void LLFloaterLandHoldings::buttonCore(S32 which) S32 index = list->getFirstSelectedIndex(); if (index < 0) return; - LLString location = list->getSimpleSelectedItem(3); + LLString location = list->getSelectedItemLabel(3); F32 global_x = 0.f; F32 global_y = 0.f; diff --git a/linden/indra/newview/llfloaterlandholdings.h b/linden/indra/newview/llfloaterlandholdings.h index 8cc5c6f..eb0b2ca 100644 --- a/linden/indra/newview/llfloaterlandholdings.h +++ b/linden/indra/newview/llfloaterlandholdings.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterlandmark.cpp b/linden/indra/newview/llfloaterlandmark.cpp index ecb2277..0011daf 100644 --- a/linden/indra/newview/llfloaterlandmark.cpp +++ b/linden/indra/newview/llfloaterlandmark.cpp @@ -1,18 +1,27 @@ /** - * @file lllandmark.cpp + * @file llfloaterlandmark.cpp * @author Richard Nelson, James Cook, Sam Kolb - * @brief LLLandmarkCtrl class implementation including related functions * - * $LicenseInfo:firstyear=2002&license=internal$ + * $LicenseInfo:firstyear=2007&license=viewergpl$ * - * Copyright (c) 2002-2008, Linden Research, Inc. + * Copyright (c) 2007-2008, Linden Research, Inc. * - * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of - * this source code is governed by the Linden Lab Source Code Disclosure - * Agreement ("Agreement") previously entered between you and Linden - * Lab. By accessing, using, copying, modifying or distributing this - * software, you acknowledge that you have been informed of your - * obligations under the Agreement and agree to abide by those obligations. + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. * * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, diff --git a/linden/indra/newview/llfloaterlandmark.h b/linden/indra/newview/llfloaterlandmark.h index 61a9027..7d710de 100644 --- a/linden/indra/newview/llfloaterlandmark.h +++ b/linden/indra/newview/llfloaterlandmark.h @@ -1,18 +1,27 @@ /** - * @file lltexturectrl.h - * @author Richard Nelson, James Cook - * @brief LLTextureCtrl class header file including related functions + * @file llfloaterlandmark.h + * @author Richard Nelson, James Cook, Sam Kolb * - * $LicenseInfo:firstyear=2002&license=internal$ + * $LicenseInfo:firstyear=2007&license=viewergpl$ * - * Copyright (c) 2002-2008, Linden Research, Inc. + * Copyright (c) 2007-2008, Linden Research, Inc. * - * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of - * this source code is governed by the Linden Lab Source Code Disclosure - * Agreement ("Agreement") previously entered between you and Linden - * Lab. By accessing, using, copying, modifying or distributing this - * software, you acknowledge that you have been informed of your - * obligations under the Agreement and agree to abide by those obligations. + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. * * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, @@ -66,7 +75,7 @@ public: const LLUUID& findItemID(const LLUUID& asset_id, BOOL copyable_only); void setDirty( BOOL b ) { mIsDirty = b; } - BOOL isDirty() { return mIsDirty; } + BOOL isDirty() const { return mIsDirty; } void setActive( BOOL active ); static void onBtnClose( void* userdata ); diff --git a/linden/indra/newview/llfloatermap.cpp b/linden/indra/newview/llfloatermap.cpp index 7c68291..b60515d 100644 --- a/linden/indra/newview/llfloatermap.cpp +++ b/linden/indra/newview/llfloatermap.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatermap.h b/linden/indra/newview/llfloatermap.h index 18684ca..525ce0e 100644 --- a/linden/indra/newview/llfloatermap.h +++ b/linden/indra/newview/llfloatermap.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatermute.cpp b/linden/indra/newview/llfloatermute.cpp index 26e2be3..db88d46 100644 --- a/linden/indra/newview/llfloatermute.cpp +++ b/linden/indra/newview/llfloatermute.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -51,6 +51,7 @@ #include "llviewertexteditor.h" #include "llviewerwindow.h" #include "llvieweruictrlfactory.h" +#include "llfocusmgr.h" // // Constants @@ -69,6 +70,117 @@ const S32 HPAD = 4; // LLFloaterMute* gFloaterMute = NULL; +//----------------------------------------------------------------------------- +// LLFloaterMuteObjectUI() +//----------------------------------------------------------------------------- +// Class for handling mute object by name floater. +class LLFloaterMuteObjectUI : public LLFloater +{ +public: + typedef void(*callback_t)(const LLString&, void*); + + static LLFloaterMuteObjectUI* show(callback_t callback, + void* userdata); + virtual BOOL postBuild(); + +protected: + LLFloaterMuteObjectUI(); + virtual ~LLFloaterMuteObjectUI(); + virtual BOOL handleKeyHere(KEY key, MASK mask, BOOL called_from_parent); + +private: + // UI Callbacks + static void onBtnOk(void *data); + static void onBtnCancel(void *data); + + void (*mCallback)(const LLString& objectName, + void* userdata); + void* mCallbackUserData; + + static LLFloaterMuteObjectUI* sInstance; +}; + +LLFloaterMuteObjectUI* LLFloaterMuteObjectUI::sInstance = NULL; + +LLFloaterMuteObjectUI::LLFloaterMuteObjectUI() + : LLFloater("Mute object by name"), + mCallback(NULL), + mCallbackUserData(NULL) +{ + gUICtrlFactory->buildFloater(this, "floater_mute_object.xml", NULL); +} + +// Destroys the object +LLFloaterMuteObjectUI::~LLFloaterMuteObjectUI() +{ + gFocusMgr.releaseFocusIfNeeded( this ); + sInstance = NULL; +} + +LLFloaterMuteObjectUI* LLFloaterMuteObjectUI::show(callback_t callback, + void* userdata) +{ + const bool firstInstantiation = (sInstance == NULL); + if (firstInstantiation) + { + sInstance = new LLFloaterMuteObjectUI; + } + sInstance->mCallback = callback; + sInstance->mCallbackUserData = userdata; + + sInstance->open(); + if (firstInstantiation) + { + sInstance->center(); + } + + return sInstance; +} + + +BOOL LLFloaterMuteObjectUI::postBuild() +{ + childSetAction("OK", onBtnOk, this); + childSetAction("Cancel", onBtnCancel, this); + return TRUE; +} + +void LLFloaterMuteObjectUI::onBtnOk(void* userdata) +{ + LLFloaterMuteObjectUI* self = (LLFloaterMuteObjectUI*)userdata; + if (!self) return; + + if (self->mCallback) + { + const LLString& text = self->childGetValue("object_name").asString(); + self->mCallback(text,self->mCallbackUserData); + } + self->close(); +} + +void LLFloaterMuteObjectUI::onBtnCancel(void* userdata) +{ + LLFloaterMuteObjectUI* self = (LLFloaterMuteObjectUI*)userdata; + if (!self) return; + + self->close(); +} + +BOOL LLFloaterMuteObjectUI::handleKeyHere(KEY key, MASK mask, BOOL called_from_parent) +{ + if (key == KEY_RETURN && mask == MASK_NONE) + { + onBtnOk(this); + return TRUE; + } + else if (key == KEY_ESCAPE && mask == MASK_NONE) + { + onBtnCancel(this); + return TRUE; + } + + return LLFloater::handleKeyHere(key, mask, called_from_parent); +} // // Member Functions @@ -77,15 +189,16 @@ LLFloaterMute* gFloaterMute = NULL; //----------------------------------------------------------------------------- // LLFloaterMute() //----------------------------------------------------------------------------- -LLFloaterMute::LLFloaterMute() +LLFloaterMute::LLFloaterMute(const LLSD& seed) : LLFloater("mute floater", "FloaterMuteRect3", FLOATER_TITLE, RESIZE_YES, 220, 140, DRAG_ON_TOP, MINIMIZE_YES, CLOSE_YES) { - gUICtrlFactory->buildFloater(this, "floater_mute.xml"); - - setVisible(FALSE); + gUICtrlFactory->buildFloater(this, "floater_mute.xml", NULL, FALSE); +} +BOOL LLFloaterMute::postBuild() +{ childSetCommitCallback("mutes", onSelectName, this); childSetAction("Mute resident...", onClickPick, this); childSetAction("Mute object by name...", onClickMuteByName, this); @@ -95,6 +208,8 @@ LLFloaterMute::LLFloaterMute() mMuteList->setCommitOnSelectionChange(TRUE); refreshMuteList(); + + return TRUE; } //----------------------------------------------------------------------------- @@ -104,39 +219,6 @@ LLFloaterMute::~LLFloaterMute() { } - -//----------------------------------------------------------------------------- -// show() -//----------------------------------------------------------------------------- -void LLFloaterMute::show() -{ - // Make sure we make a noise. - open(); /* Flawfinder: ignore */ -} - -//----------------------------------------------------------------------------- -// toggle() -//----------------------------------------------------------------------------- -void LLFloaterMute::toggle(void*) -{ - if (gFloaterMute->getVisible()) - { - gFloaterMute->close(); - } - else - { - gFloaterMute->show(); - } -} - -//----------------------------------------------------------------------------- -// visible() -//----------------------------------------------------------------------------- -BOOL LLFloaterMute::visible(void*) -{ - return (gFloaterMute && gFloaterMute->getVisible()); -} - //----------------------------------------------------------------------------- // refreshMuteList() //----------------------------------------------------------------------------- @@ -196,7 +278,7 @@ void LLFloaterMute::onClickRemove(void *data) { LLFloaterMute* floater = (LLFloaterMute *)data; - LLString name = floater->mMuteList->getSimpleSelectedItem(); + LLString name = floater->mMuteList->getSelectedItemLabel(); LLUUID id = floater->mMuteList->getStringUUIDSelectedItem(); LLMute mute(id); mute.setFromDisplayName(name); @@ -250,20 +332,15 @@ void LLFloaterMute::onPickUser(const std::vector& names, const std: void LLFloaterMute::onClickMuteByName(void* data) { + LLFloaterMuteObjectUI* picker = LLFloaterMuteObjectUI::show(callbackMuteByName,data); + assert(picker); - - LLString::format_map_t args; - gViewerWindow->alertXmlEditText("MuteByName", args, - NULL, NULL, - callbackMuteByName, data); - - + LLFloaterMute* floaterp = (LLFloaterMute*)data; + floaterp->addDependentFloater(picker); } - -void LLFloaterMute::callbackMuteByName(S32 option, const LLString& text, void* data) +void LLFloaterMute::callbackMuteByName(const LLString& text, void* data) { - if (option != 0) return; if (text.empty()) return; LLMute mute(LLUUID::null, text, LLMute::BY_NAME); diff --git a/linden/indra/newview/llfloatermute.h b/linden/indra/newview/llfloatermute.h index 8a02adc..4d2608a 100644 --- a/linden/indra/newview/llfloatermute.h +++ b/linden/indra/newview/llfloatermute.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -42,21 +42,17 @@ class LLUUID; class LLScrollListCtrl; class LLFloaterMute -: public LLFloater +: public LLFloater, public LLUISingleton { public: - LLFloaterMute(); + LLFloaterMute(const LLSD& seed); ~LLFloaterMute(); - void show(); - // Must have one global floater so chat history can // be kept in the text editor. virtual void onClose(bool app_quitting) { setVisible(FALSE); } + virtual BOOL postBuild(); - static void toggle(void*); - static BOOL visible(void*); - void refreshMuteList(); void selectMute(const LLUUID& id); @@ -69,7 +65,7 @@ private: static void onSelectName(LLUICtrl* caller, void *data); static void onPickUser(const std::vector& names, const std::vector& ids, void* user_data); static void onClickMuteByName(void*); - static void callbackMuteByName(S32 option, const LLString& text, void*); + static void callbackMuteByName(const LLString& text, void*); private: LLScrollListCtrl* mMuteList; diff --git a/linden/indra/newview/llfloaternamedesc.cpp b/linden/indra/newview/llfloaternamedesc.cpp index 54a7261..4c0cefa 100644 --- a/linden/indra/newview/llfloaternamedesc.cpp +++ b/linden/indra/newview/llfloaternamedesc.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -140,13 +140,6 @@ BOOL LLFloaterNameDesc::postBuild() y -= llfloor(PREVIEW_LINE_HEIGHT * 1.2f); - if (mIsAudio) - { - LLSD bitrate = gSavedSettings.getS32("AudioDefaultBitrate"); - - childSetValue("bitrate", bitrate); - } - // Cancel button childSetAction("cancel_btn", onBtnCancel, this); @@ -206,16 +199,10 @@ void LLFloaterNameDesc::onBtnOK( void* userdata ) fp->childDisable("ok_btn"); // don't allow inadvertent extra uploads - S32 bitrate = 0; - - if (fp->mIsAudio) - { - bitrate = fp->childGetValue("bitrate").asInteger(); - } upload_new_resource(fp->mFilenameAndPath, // file fp->childGetValue("name_form").asString(), fp->childGetValue("description_form").asString(), - bitrate, LLAssetType::AT_NONE, LLInventoryType::IT_NONE); + 0, LLAssetType::AT_NONE, LLInventoryType::IT_NONE); fp->close(false); } diff --git a/linden/indra/newview/llfloaternamedesc.h b/linden/indra/newview/llfloaternamedesc.h index a206111..9fee4bf 100644 --- a/linden/indra/newview/llfloaternamedesc.h +++ b/linden/indra/newview/llfloaternamedesc.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaternewim.cpp b/linden/indra/newview/llfloaternewim.cpp index 6685c3e..c4af6a7 100644 --- a/linden/indra/newview/llfloaternewim.cpp +++ b/linden/indra/newview/llfloaternewim.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -202,7 +202,7 @@ void LLFloaterNewIM::onStart(void* userdata) if(item) { const LLScrollListCell* cell = item->getColumn(0); - LLString name(cell->getText()); + LLString name(cell->getValue()); // *NOTE: Do a live detrmination of what type of session it // should be. If we restrict the new im panel to online users, diff --git a/linden/indra/newview/llfloaternewim.h b/linden/indra/newview/llfloaternewim.h index ec6fecd..8636e90 100644 --- a/linden/indra/newview/llfloaternewim.h +++ b/linden/indra/newview/llfloaternewim.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloateropenobject.cpp b/linden/indra/newview/llfloateropenobject.cpp index 377760a..bd7bca8 100644 --- a/linden/indra/newview/llfloateropenobject.cpp +++ b/linden/indra/newview/llfloateropenobject.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloateropenobject.h b/linden/indra/newview/llfloateropenobject.h index 1977729..e32f2f4 100644 --- a/linden/indra/newview/llfloateropenobject.h +++ b/linden/indra/newview/llfloateropenobject.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterparcel.cpp b/linden/indra/newview/llfloaterparcel.cpp index 7123caf..e3189a9 100644 --- a/linden/indra/newview/llfloaterparcel.cpp +++ b/linden/indra/newview/llfloaterparcel.cpp @@ -4,16 +4,26 @@ * Parcel information as shown in a floating window from secondlife:// command * handler. * - * $LicenseInfo:firstyear=2002&license=internal$ + * $LicenseInfo:firstyear=2007&license=viewergpl$ * - * Copyright (c) 2002-2008, Linden Research, Inc. + * Copyright (c) 2007-2008, Linden Research, Inc. * - * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of - * this source code is governed by the Linden Lab Source Code Disclosure - * Agreement ("Agreement") previously entered between you and Linden - * Lab. By accessing, using, copying, modifying or distributing this - * software, you acknowledge that you have been informed of your - * obligations under the Agreement and agree to abide by those obligations. + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. * * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, @@ -41,7 +51,8 @@ LLMap< const LLUUID, LLFloaterParcelInfo* > gPlaceInfoInstances; class LLParcelHandler : public LLCommandHandler { public: - LLParcelHandler() : LLCommandHandler("parcel") { } + // don't allow from external browsers + LLParcelHandler() : LLCommandHandler("parcel", false) { } bool handle(const LLSD& params, const LLSD& queryMap) { if (params.size() < 2) diff --git a/linden/indra/newview/llfloaterparcel.h b/linden/indra/newview/llfloaterparcel.h index 158a556..24a7ee8 100644 --- a/linden/indra/newview/llfloaterparcel.h +++ b/linden/indra/newview/llfloaterparcel.h @@ -1,29 +1,34 @@ /** - * @file llfloaterparcelinfo.h - * @brief LLFloaterParcelInfo class definition + * @file llfloaterparcel.h + * @brief Parcel information as shown in a floating window from a sl-url. + * Just a wrapper for LLPanelPlace, shared with the Find directory. * - * $LicenseInfo:firstyear=2002&license=internal$ + * $LicenseInfo:firstyear=2007&license=viewergpl$ + * + * Copyright (c) 2007-2008, Linden Research, Inc. * - * Copyright (c) 2002-2008, Linden Research, Inc. + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * - * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of - * this source code is governed by the Linden Lab Source Code Disclosure - * Agreement ("Agreement") previously entered between you and Linden - * Lab. By accessing, using, copying, modifying or distributing this - * software, you acknowledge that you have been informed of your - * obligations under the Agreement and agree to abide by those obligations. + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. * * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ */ - -/** - * Parcel information as shown in a floating window from a sl-url. - * Just a wrapper for LLPanelPlace, shared with the Find directory. - */ - #ifndef LL_FLOATERPARCELINFO_H #define LL_FLOATERPARCELINFO_H diff --git a/linden/indra/newview/llfloaterpermissionsmgr.cpp b/linden/indra/newview/llfloaterpermissionsmgr.cpp index a1f79c4..6447d72 100644 --- a/linden/indra/newview/llfloaterpermissionsmgr.cpp +++ b/linden/indra/newview/llfloaterpermissionsmgr.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterpermissionsmgr.h b/linden/indra/newview/llfloaterpermissionsmgr.h index 8090baf..acd4b5e 100644 --- a/linden/indra/newview/llfloaterpermissionsmgr.h +++ b/linden/indra/newview/llfloaterpermissionsmgr.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterpostcard.cpp b/linden/indra/newview/llfloaterpostcard.cpp index 7e21306..f866e49 100644 --- a/linden/indra/newview/llfloaterpostcard.cpp +++ b/linden/indra/newview/llfloaterpostcard.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -137,8 +137,7 @@ BOOL LLFloaterPostcard::postBuild() MsgField->setWordWrap(TRUE); // For the first time a user focusess to .the msg box, all text will be selected. - MsgField->setFocusChangedCallback(onMsgFormFocusRecieved); - MsgField->setCallbackUserData(this); + MsgField->setFocusChangedCallback(onMsgFormFocusRecieved, this); } childSetFocus("to_form", TRUE); @@ -347,7 +346,7 @@ void LLFloaterPostcard::updateUserInfo(const char *email) } } -void LLFloaterPostcard::onMsgFormFocusRecieved(LLUICtrl* receiver, void* data) +void LLFloaterPostcard::onMsgFormFocusRecieved(LLFocusableElement* receiver, void* data) { LLFloaterPostcard* self = (LLFloaterPostcard *)data; if(self) diff --git a/linden/indra/newview/llfloaterpostcard.h b/linden/indra/newview/llfloaterpostcard.h index effc4ad..e04d45f 100644 --- a/linden/indra/newview/llfloaterpostcard.h +++ b/linden/indra/newview/llfloaterpostcard.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -65,7 +65,7 @@ public: static void updateUserInfo(const char *email); - static void onMsgFormFocusRecieved(LLUICtrl* receiver, void* data); + static void onMsgFormFocusRecieved(LLFocusableElement* receiver, void* data); static void missingSubjMsgAlertCallback(S32 option, void* data); void sendPostcard(); diff --git a/linden/indra/newview/llfloaterpreference.cpp b/linden/indra/newview/llfloaterpreference.cpp index 69937a0..09398fd 100644 --- a/linden/indra/newview/llfloaterpreference.cpp +++ b/linden/indra/newview/llfloaterpreference.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -95,7 +95,8 @@ LLFloaterPreference* LLFloaterPreference::sInstance = NULL; class LLPreferencesHandler : public LLCommandHandler { public: - LLPreferencesHandler() : LLCommandHandler("preferences") { } + // don't allow from external browsers + LLPreferencesHandler() : LLCommandHandler("preferences", false) { } bool handle(const LLSD& tokens, const LLSD& queryMap) { LLFloaterPreference::show(NULL); @@ -442,8 +443,7 @@ void LLFloaterPreference::onClickAbout(void*) // static void LLFloaterPreference::onBtnOK( void* userdata ) { - //refresh splash page if we're displaying it - LLPanelLogin::loadLoginPage(); + LLPanelLogin::refreshLocation( false ); LLFloaterPreference *fp =(LLFloaterPreference *)userdata; // commit any outstanding text entry @@ -489,8 +489,7 @@ void LLFloaterPreference::onBtnApply( void* userdata ) } fp->apply(); - //refresh splash page if we're displaying it - LLPanelLogin::loadLoginPage(); + LLPanelLogin::refreshLocation( false ); } diff --git a/linden/indra/newview/llfloaterpreference.h b/linden/indra/newview/llfloaterpreference.h index 299ae8b..bf16d0d 100644 --- a/linden/indra/newview/llfloaterpreference.h +++ b/linden/indra/newview/llfloaterpreference.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterproperties.cpp b/linden/indra/newview/llfloaterproperties.cpp index a1e6565..36f6051 100644 --- a/linden/indra/newview/llfloaterproperties.cpp +++ b/linden/indra/newview/llfloaterproperties.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterproperties.h b/linden/indra/newview/llfloaterproperties.h index 314471b..d4461fd 100644 --- a/linden/indra/newview/llfloaterproperties.h +++ b/linden/indra/newview/llfloaterproperties.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterregioninfo.cpp b/linden/indra/newview/llfloaterregioninfo.cpp index 671e03e..2f01844 100644 --- a/linden/indra/newview/llfloaterregioninfo.cpp +++ b/linden/indra/newview/llfloaterregioninfo.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -161,50 +161,55 @@ bool estate_dispatch_initialized = false; /// LLFloaterRegionInfo ///---------------------------------------------------------------------------- -LLFloaterRegionInfo* LLFloaterRegionInfo::sInstance = NULL; //S32 LLFloaterRegionInfo::sRequestSerial = 0; LLUUID LLFloaterRegionInfo::sRequestInvoice; -LLFloaterRegionInfo::LLFloaterRegionInfo(const LLRect& rect) : - LLFloater("regioninfo", rect, "Region/Estate") +LLFloaterRegionInfo::LLFloaterRegionInfo(const LLSD& seed) { - LLRect tr(0, rect.getHeight() - LLFLOATER_HEADER_SIZE, rect.getWidth(), 0); - mTab = new LLTabContainer("tab", tr, LLTabContainer::TOP, NULL,NULL,""); - mTab->setBorderVisible(FALSE); - addChild(mTab); + gUICtrlFactory->buildFloater(this, "floater_region_info.xml", NULL, FALSE); +} + +BOOL LLFloaterRegionInfo::postBuild() +{ + mTab = gUICtrlFactory->getTabContainerByName(this, "region_panels"); // contruct the panels - LLPanel* panel; + LLPanelRegionInfo* panel; panel = new LLPanelRegionGeneralInfo; - mInfoPanels.push_back((LLPanelRegionInfo*)panel); + mInfoPanels.push_back(panel); gUICtrlFactory->buildPanel(panel, "panel_region_general.xml"); mTab->addTabPanel(panel, panel->getLabel(), TRUE); panel = new LLPanelRegionDebugInfo; - mInfoPanels.push_back((LLPanelRegionInfo*)panel); + mInfoPanels.push_back(panel); gUICtrlFactory->buildPanel(panel, "panel_region_debug.xml"); mTab->addTabPanel(panel, panel->getLabel(), FALSE); panel = new LLPanelRegionTextureInfo; - mInfoPanels.push_back((LLPanelRegionInfo*)panel); + mInfoPanels.push_back(panel); gUICtrlFactory->buildPanel(panel, "panel_region_texture.xml"); mTab->addTabPanel(panel, panel->getLabel(), FALSE); panel = new LLPanelRegionTerrainInfo; - mInfoPanels.push_back((LLPanelRegionInfo*)panel); + mInfoPanels.push_back(panel); gUICtrlFactory->buildPanel(panel, "panel_region_terrain.xml"); mTab->addTabPanel(panel, panel->getLabel(), FALSE); panel = new LLPanelEstateInfo; - mInfoPanels.push_back((LLPanelRegionInfo*)panel); + mInfoPanels.push_back(panel); gUICtrlFactory->buildPanel(panel, "panel_region_estate.xml"); mTab->addTabPanel(panel, panel->getLabel(), FALSE); panel = new LLPanelEstateCovenant; - mInfoPanels.push_back((LLPanelRegionInfo*)panel); + mInfoPanels.push_back(panel); gUICtrlFactory->buildPanel(panel, "panel_region_covenant.xml"); mTab->addTabPanel(panel, panel->getLabel(), FALSE); + gMessageSystem->setHandlerFunc( + "EstateOwnerMessage", + &processEstateOwnerRequest); + + return TRUE; } LLFloaterRegionInfo::~LLFloaterRegionInfo() @@ -212,23 +217,20 @@ LLFloaterRegionInfo::~LLFloaterRegionInfo() sInstance = NULL; } -// static -void LLFloaterRegionInfo::show(LLViewerRegion* region) +void LLFloaterRegionInfo::onOpen() { - if (!sInstance) - { - LLRect rect = gSavedSettings.getRect("FloaterRegionInfo"); - S32 left, top; - gFloaterView->getNewFloaterPosition(&left, &top); - rect.translate(left,top); - sInstance = new LLFloaterRegionInfo(rect); - gMessageSystem->setHandlerFunc( - "EstateOwnerMessage", - &processEstateOwnerRequest); - } - sInstance->open(); /* Flawfinder: ignore*/ - sInstance->refreshFromRegion(region); + LLRect rect = gSavedSettings.getRect("FloaterRegionInfo"); + S32 left, top; + gFloaterView->getNewFloaterPosition(&left, &top); + rect.translate(left,top); + requestRegionInfo(); + refreshFromRegion(gAgent.getRegion()); + LLFloater::onOpen(); +} + +void LLFloaterRegionInfo::requestRegionInfo() +{ // Must allow anyone to request the RegionInfo data // so non-owners/non-gods can see the values. // Therefore can't use an EstateOwnerMessage JC @@ -242,18 +244,6 @@ void LLFloaterRegionInfo::show(LLViewerRegion* region) } // static -void LLFloaterRegionInfo::show(void*) -{ - show(gAgent.getRegion()); -} - -// static -LLFloaterRegionInfo* LLFloaterRegionInfo::getInstance() -{ - return sInstance; -} - -// static void LLFloaterRegionInfo::processEstateOwnerRequest(LLMessageSystem* msg,void**) { static LLDispatcher dispatch; @@ -264,7 +254,7 @@ void LLFloaterRegionInfo::processEstateOwnerRequest(LLMessageSystem* msg,void**) LLPanelEstateInfo::initDispatch(dispatch); } - LLTabContainerCommon* tab = LLUICtrlFactory::getTabContainerByName(sInstance, "tab"); + LLTabContainerCommon* tab = LLUICtrlFactory::getTabContainerByName(sInstance, "region_panels"); if (!tab) return; LLPanelEstateInfo* panel = (LLPanelEstateInfo*)LLUICtrlFactory::getPanelByName(tab, "Estate"); @@ -293,7 +283,7 @@ void LLFloaterRegionInfo::processRegionInfo(LLMessageSystem* msg) llinfos << "LLFloaterRegionInfo::processRegionInfo" << llendl; if(!sInstance) return; - LLTabContainerCommon* tab = LLUICtrlFactory::getTabContainerByName(sInstance, "tab"); + LLTabContainerCommon* tab = LLUICtrlFactory::getTabContainerByName(sInstance, "region_panels"); if(!tab) return; // extract message @@ -376,7 +366,7 @@ LLPanelEstateInfo* LLFloaterRegionInfo::getPanelEstate() { LLFloaterRegionInfo* floater = LLFloaterRegionInfo::getInstance(); if (!floater) return NULL; - LLTabContainerCommon* tab = LLUICtrlFactory::getTabContainerByName(floater, "tab"); + LLTabContainerCommon* tab = LLUICtrlFactory::getTabContainerByName(floater, "region_panels"); if (!tab) return NULL; LLPanelEstateInfo* panel = (LLPanelEstateInfo*)LLUICtrlFactory::getPanelByName(tab,"Estate"); return panel; @@ -387,7 +377,7 @@ LLPanelEstateCovenant* LLFloaterRegionInfo::getPanelCovenant() { LLFloaterRegionInfo* floater = LLFloaterRegionInfo::getInstance(); if (!floater) return NULL; - LLTabContainerCommon* tab = LLUICtrlFactory::getTabContainerByName(floater, "tab"); + LLTabContainerCommon* tab = LLUICtrlFactory::getTabContainerByName(floater, "region_panels"); if (!tab) return NULL; LLPanelEstateCovenant* panel = (LLPanelEstateCovenant*)LLUICtrlFactory::getPanelByName(tab, "Covenant"); return panel; @@ -1241,7 +1231,7 @@ BOOL LLPanelRegionTerrainInfo::sendUpdate() LLFloaterRegionInfo* floater = LLFloaterRegionInfo::getInstance(); if (!floater) return true; - LLTabContainerCommon* tab = LLUICtrlFactory::getTabContainerByName(floater, "tab"); + LLTabContainerCommon* tab = LLUICtrlFactory::getTabContainerByName(floater, "region_panels"); if (!tab) return true; LLPanelEstateInfo* panel = (LLPanelEstateInfo*)LLUICtrlFactory::getPanelByName(tab, "Estate"); @@ -2388,7 +2378,12 @@ BOOL LLPanelEstateInfo::checkRemovalButton(std::string name) } else if (name == "estate_manager_name_list") { - btn_name = "remove_estate_manager_btn"; + //ONLY OWNER CAN ADD /DELET ESTATE MANAGER + LLViewerRegion* region = gAgent.getRegion(); + if (region && (region->getOwner() == gAgent.getID())) + { + btn_name = "remove_estate_manager_btn"; + } } // enable the remove button if something is selected @@ -2803,7 +2798,7 @@ bool LLDispatchSetEstateOwner::operator()( LLFloaterRegionInfo* floater = LLFloaterRegionInfo::getInstance(); if (!floater) return true; - LLTabContainer* tab = (LLTabContainer*)(floater->getChildByName("tab")); + LLTabContainer* tab = (LLTabContainer*)(floater->getChildByName("region_panels")); if (!tab) return true; LLPanelEstateInfo* panel = (LLPanelEstateInfo*)(tab->getChildByName("Estate")); diff --git a/linden/indra/newview/llfloaterregioninfo.h b/linden/indra/newview/llfloaterregioninfo.h index 22e4853..8918430 100644 --- a/linden/indra/newview/llfloaterregioninfo.h +++ b/linden/indra/newview/llfloaterregioninfo.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -58,14 +58,15 @@ class LLPanelRegionTerrainInfo; class LLPanelEstateInfo; class LLPanelEstateCovenant; -class LLFloaterRegionInfo : public LLFloater +class LLFloaterRegionInfo : public LLFloater, public LLUISingleton { + friend class LLUISingleton; public: ~LLFloaterRegionInfo(); - static void show(LLViewerRegion* region); - static void show(void*); - static LLFloaterRegionInfo* getInstance(); + /*virtual*/ void onOpen(); + /*virtual*/ BOOL postBuild(); + static void processEstateOwnerRequest(LLMessageSystem* msg, void**); // get and process region info if necessary. @@ -82,15 +83,14 @@ public: // from LLPanel virtual void refresh(); + void requestRegionInfo(); + protected: - LLFloaterRegionInfo(const LLRect& rect); + LLFloaterRegionInfo(const LLSD& seed); void refreshFromRegion(LLViewerRegion* region); - // static data - static LLFloaterRegionInfo* sInstance; - // member data - LLTabContainer* mTab; + LLTabContainerCommon* mTab; typedef std::vector info_panels_t; info_panels_t mInfoPanels; //static S32 sRequestSerial; // serial # of last EstateOwnerRequest diff --git a/linden/indra/newview/llfloaterreleasemsg.cpp b/linden/indra/newview/llfloaterreleasemsg.cpp index ff34724..b3fb965 100644 --- a/linden/indra/newview/llfloaterreleasemsg.cpp +++ b/linden/indra/newview/llfloaterreleasemsg.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -43,7 +43,7 @@ extern LLAgent gAgent; LLFloaterReleaseMsg* LLFloaterReleaseMsg::sInstance = 0; - +bool LLFloaterReleaseMsg::sDisplayMessage = false; //////////////////////////////////////////////////////////////////////////////// // @@ -154,3 +154,31 @@ void LLFloaterReleaseMsg::onClickClose( void* data ) } +//////////////////////////////////////////////////////////////////////////////// +// + +// return true if it's a new version and we should display a notification +bool LLFloaterReleaseMsg::checkVersion(const LLString& version_channel) +{ + bool res = false; + if (gLastVersionChannel != version_channel) + { + res = !gLastVersionChannel.empty(); // don't show message on initial login + gLastVersionChannel = version_channel; + } + return res; +} + +void LLFloaterReleaseMsg::displayMessage(const LLString& version_channel) +{ + //if we have the capability already, display the url, otherwise wait on it + if (gAgent.getRegion()->getCapability("ServerReleaseNotes").empty()) + { + sDisplayMessage = true; + } + else + { + sDisplayMessage = false; + show(); + } +} diff --git a/linden/indra/newview/llfloaterreleasemsg.h b/linden/indra/newview/llfloaterreleasemsg.h index 6e211b8..e97d803 100644 --- a/linden/indra/newview/llfloaterreleasemsg.h +++ b/linden/indra/newview/llfloaterreleasemsg.h @@ -11,12 +11,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -44,7 +44,10 @@ class LLFloaterReleaseMsg : static void show(); static void onClickClose( void* data ); + static bool checkVersion(const LLString& version_channel); + static void displayMessage(const LLString& version_channel); + static bool sDisplayMessage; static LLFloaterReleaseMsg* sInstance; LLString mTitleBase; private: diff --git a/linden/indra/newview/llfloaterreporter.cpp b/linden/indra/newview/llfloaterreporter.cpp index 7ab0aca..f0af5d0 100644 --- a/linden/indra/newview/llfloaterreporter.cpp +++ b/linden/indra/newview/llfloaterreporter.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -131,12 +131,7 @@ LLFloaterReporter::LLFloaterReporter( gUICtrlFactory->buildFloater(this, "floater_report_abuse.xml"); } - LLViewerRegion *regionp = gAgent.getRegion(); - if (regionp) - { - childSetText("sim_field", regionp->getName() ); - childSetText("abuse_location_edit", regionp->getName() ); - } + childSetText("abuse_location_edit", gAgent.getSLURL() ); LLButton* pick_btn = LLUICtrlFactory::getButtonByName(this, "pick_btn"); if (pick_btn) @@ -163,6 +158,7 @@ LLFloaterReporter::LLFloaterReporter( // convert the position to a string LLVector3d pos = gAgent.getPositionGlobal(); + LLViewerRegion *regionp = gAgent.getRegion(); if (regionp) { pos -= regionp->getOriginGlobal(); @@ -669,7 +665,7 @@ LLSD LLFloaterReporter::gatherReport() LLComboBox* combo = LLUICtrlFactory::getComboBoxByName(this, "category_combo"); if (combo) { - category_name = combo->getSimpleSelectedItem(); // want label, not value + category_name = combo->getSelectedItemLabel(); // want label, not value } #if LL_WINDOWS diff --git a/linden/indra/newview/llfloaterreporter.h b/linden/indra/newview/llfloaterreporter.h index 800ccf3..9696b34 100644 --- a/linden/indra/newview/llfloaterreporter.h +++ b/linden/indra/newview/llfloaterreporter.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatersaveavatar.cpp b/linden/indra/newview/llfloatersaveavatar.cpp index 236ed90..2675212 100644 --- a/linden/indra/newview/llfloatersaveavatar.cpp +++ b/linden/indra/newview/llfloatersaveavatar.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatersaveavatar.h b/linden/indra/newview/llfloatersaveavatar.h index 08c7bb3..5a02fe4 100644 --- a/linden/indra/newview/llfloatersaveavatar.h +++ b/linden/indra/newview/llfloatersaveavatar.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterscriptdebug.cpp b/linden/indra/newview/llfloaterscriptdebug.cpp index b01fb0e..005bc53 100644 --- a/linden/indra/newview/llfloaterscriptdebug.cpp +++ b/linden/indra/newview/llfloaterscriptdebug.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -177,7 +177,7 @@ LLFloaterScriptDebugOutput::LLFloaterScriptDebugOutput(const LLUUID& object_id) mHistoryEditor->setWordWrap( TRUE ); mHistoryEditor->setFollowsAll(); mHistoryEditor->setEnabled( FALSE ); - mHistoryEditor->setTakesFocus( TRUE ); // We want to be able to cut or copy from the history. + mHistoryEditor->setTabStop( TRUE ); // We want to be able to cut or copy from the history. addChild(mHistoryEditor); } @@ -200,7 +200,7 @@ void LLFloaterScriptDebugOutput::init(const LLString& title, BOOL resizable, mHistoryEditor->setWordWrap( TRUE ); mHistoryEditor->setFollowsAll(); mHistoryEditor->setEnabled( FALSE ); - mHistoryEditor->setTakesFocus( TRUE ); // We want to be able to cut or copy from the history. + mHistoryEditor->setTabStop( TRUE ); // We want to be able to cut or copy from the history. addChild(mHistoryEditor); } diff --git a/linden/indra/newview/llfloaterscriptdebug.h b/linden/indra/newview/llfloaterscriptdebug.h index 901ad31..b20a460 100644 --- a/linden/indra/newview/llfloaterscriptdebug.h +++ b/linden/indra/newview/llfloaterscriptdebug.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatersellland.cpp b/linden/indra/newview/llfloatersellland.cpp index 79c024f..f3ae4ec 100644 --- a/linden/indra/newview/llfloatersellland.cpp +++ b/linden/indra/newview/llfloatersellland.cpp @@ -11,12 +11,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -492,7 +492,14 @@ void LLFloaterSellLandUI::doSellLand(void *userdata) args["[SALE_PRICE]"] = llformat("%d",sale_price); args["[NAME]"] = authorizedBuyerName; - gViewerWindow->alertXml("ConfirmLandSaleChange", args, onConfirmSale, self); + if (sell_to_anyone) + { + gViewerWindow->alertXml("ConfirmLandSaleToAnyoneChange", args, onConfirmSale, self); + } + else + { + gViewerWindow->alertXml("ConfirmLandSaleChange", args, onConfirmSale, self); + } } else { diff --git a/linden/indra/newview/llfloatersellland.h b/linden/indra/newview/llfloatersellland.h index d0ef6f1..5109f34 100644 --- a/linden/indra/newview/llfloatersellland.h +++ b/linden/indra/newview/llfloatersellland.h @@ -11,12 +11,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatersnapshot.cpp b/linden/indra/newview/llfloatersnapshot.cpp index 9ef5130..54895d5 100644 --- a/linden/indra/newview/llfloatersnapshot.cpp +++ b/linden/indra/newview/llfloatersnapshot.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -1123,7 +1123,7 @@ void LLFloaterSnapshot::Impl::onCommitResolution(LLUICtrl* ctrl, void* data) combo = LLUICtrlFactory::getComboBoxByName(view, "local_size_combo"); gSavedSettings.setS32("SnapshotLocalLastResolution", combo->getCurrentIndex()); - std::string sdstring = combobox->getSimpleSelectedValue(); + std::string sdstring = combobox->getSelectedValue(); LLSD sdres; std::stringstream sstream(sdstring); LLSDSerialize::fromNotation(sdres, sstream); diff --git a/linden/indra/newview/llfloatersnapshot.h b/linden/indra/newview/llfloatersnapshot.h index 3b3fbff..973cebf 100644 --- a/linden/indra/newview/llfloatersnapshot.h +++ b/linden/indra/newview/llfloatersnapshot.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatertelehub.cpp b/linden/indra/newview/llfloatertelehub.cpp index 885eb99..f36fd0f 100644 --- a/linden/indra/newview/llfloatertelehub.cpp +++ b/linden/indra/newview/llfloatertelehub.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -305,7 +305,7 @@ void LLFloaterTelehub::unpackTelehubInfo(LLMessageSystem* msg) mSpawnPointPos[i].mV[VX], mSpawnPointPos[i].mV[VY], mSpawnPointPos[i].mV[VZ]); - list->addSimpleItem(pos); + list->addSimpleElement(pos); } list->selectNthItem(mNumSpawn - 1); } diff --git a/linden/indra/newview/llfloatertelehub.h b/linden/indra/newview/llfloatertelehub.h index dea6db1..302868b 100644 --- a/linden/indra/newview/llfloatertelehub.h +++ b/linden/indra/newview/llfloatertelehub.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatertest.cpp b/linden/indra/newview/llfloatertest.cpp index 0c71fb2..584622b 100644 --- a/linden/indra/newview/llfloatertest.cpp +++ b/linden/indra/newview/llfloatertest.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -69,7 +69,7 @@ private: static void onCommitCombo(LLUICtrl*, void*); static void onCommitLine(LLUICtrl*, void*); static void onKeyLine(LLLineEditor*, void*); - static void onFocusLostLine(LLUICtrl*, void*); + static void onFocusLostLine(LLFocusableElement*, void*); static void onChangeRadioGroup(LLUICtrl*, void*); LLButton* mBtnSimple; @@ -361,7 +361,7 @@ void LLFloaterTestImpl::onKeyLine(LLLineEditor*, void*) } // static -void LLFloaterTestImpl::onFocusLostLine(LLUICtrl*, void*) +void LLFloaterTestImpl::onFocusLostLine(LLFocusableElement*, void*) { llinfos << "focus lost line editor" << llendl; } diff --git a/linden/indra/newview/llfloatertest.h b/linden/indra/newview/llfloatertest.h index ec6ae28..96af960 100644 --- a/linden/indra/newview/llfloatertest.h +++ b/linden/indra/newview/llfloatertest.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatertools.cpp b/linden/indra/newview/llfloatertools.cpp index 6dc2599..6764ffe 100644 --- a/linden/indra/newview/llfloatertools.cpp +++ b/linden/indra/newview/llfloatertools.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -942,7 +942,7 @@ void commit_select_component(LLUICtrl *ctrl, void *data) //forfeit focus if (gFocusMgr.childHasKeyboardFocus(floaterp)) { - gFocusMgr.setKeyboardFocus(NULL, NULL); + gFocusMgr.setKeyboardFocus(NULL); } BOOL select_individuals = floaterp->mCheckSelectIndividual->get(); @@ -992,4 +992,5 @@ void LLFloaterTools::setEditTool(void* tool_pointer) void LLFloaterTools::onFocusReceived() { gToolMgr->setCurrentToolset(gBasicToolset); + LLFloater::onFocusReceived(); } diff --git a/linden/indra/newview/llfloatertools.h b/linden/indra/newview/llfloatertools.h index 1ae7a6b..38151f4 100644 --- a/linden/indra/newview/llfloatertools.h +++ b/linden/indra/newview/llfloatertools.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatertopobjects.cpp b/linden/indra/newview/llfloatertopobjects.cpp index 7ab17e0..631c92d 100644 --- a/linden/indra/newview/llfloatertopobjects.cpp +++ b/linden/indra/newview/llfloatertopobjects.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -257,8 +257,8 @@ void LLFloaterTopObjects::updateSelectionInfo() std::string object_id_string = object_id.asString(); childSetValue("id_editor", LLSD(object_id_string)); - childSetValue("object_name_editor", list->getFirstSelected()->getColumn(1)->getText()); - childSetValue("owner_name_editor", list->getFirstSelected()->getColumn(2)->getText()); + childSetValue("object_name_editor", list->getFirstSelected()->getColumn(1)->getValue().asString()); + childSetValue("owner_name_editor", list->getFirstSelected()->getColumn(2)->getValue().asString()); } // static @@ -451,8 +451,8 @@ void LLFloaterTopObjects::showBeacon() LLScrollListItem* first_selected = list->getFirstSelected(); if (!first_selected) return; - LLString name = first_selected->getColumn(1)->getText(); - LLString pos_string = first_selected->getColumn(3)->getText(); + LLString name = first_selected->getColumn(1)->getValue().asString(); + LLString pos_string = first_selected->getColumn(3)->getValue().asString(); F32 x, y, z; S32 matched = sscanf(pos_string.c_str(), "<%g,%g,%g>", &x, &y, &z); diff --git a/linden/indra/newview/llfloatertopobjects.h b/linden/indra/newview/llfloatertopobjects.h index cd737b7..18d68cd 100644 --- a/linden/indra/newview/llfloatertopobjects.h +++ b/linden/indra/newview/llfloatertopobjects.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatertos.cpp b/linden/indra/newview/llfloatertos.cpp index 7826dac..fd069c9 100644 --- a/linden/indra/newview/llfloatertos.cpp +++ b/linden/indra/newview/llfloatertos.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatertos.h b/linden/indra/newview/llfloatertos.h index f2441ee..b923406 100644 --- a/linden/indra/newview/llfloatertos.h +++ b/linden/indra/newview/llfloatertos.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloaterurldisplay.cpp b/linden/indra/newview/llfloaterurldisplay.cpp index e5f4d81..8d12729 100644 --- a/linden/indra/newview/llfloaterurldisplay.cpp +++ b/linden/indra/newview/llfloaterurldisplay.cpp @@ -1,17 +1,28 @@ /** - * @file llpreviewlandmark.cpp - * @brief LLFloaterURLDisplayList class implementation + * @file llfloaterurldisplay.h + * @brief Probably should be called LLFloaterTeleport, or LLFloaterLandmark + * as it gives you a preview of a potential teleport location. * - * $LicenseInfo:firstyear=2002&license=internal$ + * $LicenseInfo:firstyear=2007&license=viewergpl$ * - * Copyright (c) 2002-2008, Linden Research, Inc. + * Copyright (c) 2007-2008, Linden Research, Inc. * - * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of - * this source code is governed by the Linden Lab Source Code Disclosure - * Agreement ("Agreement") previously entered between you and Linden - * Lab. By accessing, using, copying, modifying or distributing this - * software, you acknowledge that you have been informed of your - * obligations under the Agreement and agree to abide by those obligations. + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. * * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, @@ -37,6 +48,18 @@ LLFloaterURLDisplay::LLFloaterURLDisplay(const LLSD& sd) mFactoryMap["place_details_panel"] = LLCallbackMap(LLFloaterURLDisplay::createPlaceDetail, this); gUICtrlFactory->buildFloater(this, "floater_preview_url.xml", &getFactoryMap()); this->setVisible(false); + + // If positioned at 0,0 the teleport button is behind the toolbar. + LLRect r = getRect(); + if (r.mBottom == 0 && r.mLeft == 0) + { + // first use, center it + center(); + } + else + { + gFloaterView->adjustToFitScreen(this, FALSE); + } } LLFloaterURLDisplay::~LLFloaterURLDisplay() diff --git a/linden/indra/newview/llfloaterurldisplay.h b/linden/indra/newview/llfloaterurldisplay.h index 115781e..e603c17 100644 --- a/linden/indra/newview/llfloaterurldisplay.h +++ b/linden/indra/newview/llfloaterurldisplay.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfloatervoicewizard.cpp b/linden/indra/newview/llfloatervoicewizard.cpp index 28c8280..65601ff 100644 --- a/linden/indra/newview/llfloatervoicewizard.cpp +++ b/linden/indra/newview/llfloatervoicewizard.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -132,6 +132,8 @@ void LLFloaterVoiceWizard::draw() void LLFloaterVoiceWizard::onOpen() { + LLFloaterDeviceSettings::hideInstance(); + if(mDevicePanel) { mDevicePanel->onOpen(); @@ -246,6 +248,9 @@ BOOL LLPanelDeviceSettings::postBuild() volume_slider->setValue(mMicVolume); } + childSetCommitCallback("voice_input_device", onCommitInputDevice, this); + childSetCommitCallback("voice_output_device", onCommitOutputDevice, this); + return TRUE; } @@ -270,19 +275,19 @@ void LLPanelDeviceSettings::draw() if (gVoiceClient->inTuningMode()) { - const S32 GAP = 5; - S32 cur_x = 100; - S32 cur_y = 15; - for(S32 power_bar_idx = 0; power_bar_idx < 5; power_bar_idx++) { - if (power_bar_idx < discrete_power) + LLString view_name = llformat("%s%d", "bar", power_bar_idx); + LLView* bar_view = getChildByName(view_name, TRUE); + if (bar_view) { - LLColor4 color = (power_bar_idx >= 3) ? gSavedSettings.getColor4("OverdrivenColor") : gSavedSettings.getColor4("SpeakingColor"); - gl_rect_2d(cur_x, cur_y + 20, cur_x + 20, cur_y, color, TRUE); + if (power_bar_idx < discrete_power) + { + LLColor4 color = (power_bar_idx >= 3) ? gSavedSettings.getColor4("OverdrivenColor") : gSavedSettings.getColor4("SpeakingColor"); + gl_rect_2d(bar_view->getRect(), color, TRUE); + } + gl_rect_2d(bar_view->getRect(), LLColor4::grey, FALSE); } - gl_rect_2d(cur_x, cur_y + 20, cur_x + 20, cur_y, LLColor4::grey, FALSE); - cur_x += 20 + GAP; } } } @@ -395,6 +400,9 @@ void LLPanelDeviceSettings::refresh() void LLPanelDeviceSettings::onOpen() { + mInputDevice = gSavedSettings.getString("VoiceInputAudioDevice"); + mOutputDevice = gSavedSettings.getString("VoiceOutputAudioDevice"); + mMicVolume = gSavedSettings.getF32("AudioLevelMic"); mDevicesUpdated = FALSE; // ask for new device enumeration @@ -402,11 +410,25 @@ void LLPanelDeviceSettings::onOpen() // put voice client in "tuning" mode gVoiceClient->tuningStart(); + LLVoiceChannel::suspend(); } void LLPanelDeviceSettings::onClose(bool app_quitting) { gVoiceClient->tuningStop(); + LLVoiceChannel::resume(); +} + +// static +void LLPanelDeviceSettings::onCommitInputDevice(LLUICtrl* ctrl, void* user_data) +{ + gSavedSettings.setString("VoiceInputAudioDevice", ctrl->getValue().asString()); +} + +// static +void LLPanelDeviceSettings::onCommitOutputDevice(LLUICtrl* ctrl, void* user_data) +{ + gSavedSettings.setString("VoiceOutputAudioDevice", ctrl->getValue().asString()); } // @@ -424,6 +446,7 @@ LLFloaterDeviceSettings::LLFloaterDeviceSettings(const LLSD& seed) : LLFloater(" void LLFloaterDeviceSettings::onOpen() { + LLFloaterVoiceWizard::hideInstance(); if(mDevicePanel) { mDevicePanel->onOpen(); diff --git a/linden/indra/newview/llfloatervoicewizard.h b/linden/indra/newview/llfloatervoicewizard.h index 9540fa7..9b1a1a0 100644 --- a/linden/indra/newview/llfloatervoicewizard.h +++ b/linden/indra/newview/llfloatervoicewizard.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -78,6 +78,9 @@ public: void onClose(bool app_quitting); protected: + static void onCommitInputDevice(LLUICtrl* ctrl, void* user_data); + static void onCommitOutputDevice(LLUICtrl* ctrl, void* user_data); + F32 mMicVolume; std::string mInputDevice; std::string mOutputDevice; diff --git a/linden/indra/newview/llfloaterworldmap.cpp b/linden/indra/newview/llfloaterworldmap.cpp index 9da9a5b..ee84537 100644 --- a/linden/indra/newview/llfloaterworldmap.cpp +++ b/linden/indra/newview/llfloaterworldmap.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -76,6 +76,7 @@ #include "lltracker.h" #include "llui.h" #include "lluiconstants.h" +#include "llurldispatcher.h" #include "llviewercamera.h" #include "llviewermenu.h" #include "llviewerregion.h" @@ -125,18 +126,18 @@ class LLMapInventoryObserver : public LLInventoryObserver { public: LLMapInventoryObserver() {} - virtual ~LLMapInventoryObserver() {} - virtual void changed(U32 mask); + virtual ~LLMapInventoryObserver() {} + virtual void changed(U32 mask); }; void LLMapInventoryObserver::changed(U32 mask) { - // if there's a change we're interested in. - if((mask & (LLInventoryObserver::CALLING_CARD | LLInventoryObserver::ADD | - LLInventoryObserver::REMOVE)) != 0) - { - gFloaterWorldMap->inventoryChanged(); - } + // if there's a change we're interested in. + if((mask & (LLInventoryObserver::CALLING_CARD | LLInventoryObserver::ADD | + LLInventoryObserver::REMOVE)) != 0) + { + gFloaterWorldMap->inventoryChanged(); + } } class LLMapFriendObserver : public LLFriendObserver @@ -176,8 +177,8 @@ LLFloaterWorldMap::LLFloaterWorldMap() FALSE, // drag on left TRUE, // minimize TRUE), // close - mInventory(NULL), - mInventoryObserver(NULL), + mInventory(NULL), + mInventoryObserver(NULL), mFriendObserver(NULL), mCompletingRegionName(""), mWaitingForTracker(FALSE), @@ -228,12 +229,18 @@ BOOL LLFloaterWorldMap::postBuild() { avatar_combo->selectFirstItem(); avatar_combo->setPrearrangeCallback( onAvatarComboPrearrange ); + avatar_combo->setTextEntryCallback( onComboTextEntry ); } childSetAction("DoSearch", onLocationCommit, this); - childSetFocusChangedCallback("location", updateSearchEnabled); - childSetKeystrokeCallback("location", (void (*)(LLLineEditor*,void*))updateSearchEnabled, NULL); + childSetFocusChangedCallback("location", onLocationFocusChanged, this); + + LLLineEditor *location_editor = LLUICtrlFactory::getLineEditorByName(this, "location"); + if (location_editor) + { + location_editor->setKeystrokeCallback( onSearchTextEntry ); + } childSetCommitCallback("search_results", onCommitSearchResult, this); childSetDoubleClickCallback("search_results", onClickTeleportBtn); @@ -248,6 +255,7 @@ BOOL LLFloaterWorldMap::postBuild() { landmark_combo->selectFirstItem(); landmark_combo->setPrearrangeCallback( onLandmarkComboPrearrange ); + landmark_combo->setTextEntryCallback( onComboTextEntry ); } childSetAction("Go Home", onGoHome, this); @@ -264,14 +272,6 @@ BOOL LLFloaterWorldMap::postBuild() setDefaultBtn(NULL); - if ( gAgent.isTeen() ) - { - // Hide Mature Events controls - childHide("events_mature_icon"); - childHide("events_mature_label"); - childHide("event_mature_chk"); - } - mZoomTimer.stop(); return TRUE; @@ -283,9 +283,9 @@ LLFloaterWorldMap::~LLFloaterWorldMap() // All cleaned up by LLView destructor mTabs = NULL; - // Inventory deletes all observers on shutdown - mInventory = NULL; - mInventoryObserver = NULL; + // Inventory deletes all observers on shutdown + mInventory = NULL; + mInventoryObserver = NULL; // avatar tracker will delete this for us. mFriendObserver = NULL; @@ -452,6 +452,11 @@ void LLFloaterWorldMap::draw() return; } + // Hide/Show Mature Events controls + childSetVisible("events_mature_icon", !gAgent.isTeen()); + childSetVisible("events_mature_label", !gAgent.isTeen()); + childSetVisible("event_mature_chk", !gAgent.isTeen()); + // On orientation island, users don't have a home location yet, so don't // let them teleport "home". It dumps them in an often-crowed welcome // area (infohub) and they get confused. JC @@ -508,7 +513,7 @@ void LLFloaterWorldMap::draw() } childSetEnabled("Teleport", (BOOL)tracking_status); -// childSetEnabled("Clear", (BOOL)tracking_status); +// childSetEnabled("Clear", (BOOL)tracking_status); childSetEnabled("Show Destination", (BOOL)tracking_status || gWorldMap->mIsTrackingUnknownLocation); childSetEnabled("copy_slurl", (mSLURL.size() > 0) ); @@ -594,7 +599,7 @@ void LLFloaterWorldMap::trackLandmark( const LLUUID& landmark_item_id ) if (combo) name = combo->getSimple(); mTrackedStatus = LLTracker::TRACKING_LANDMARK; LLTracker::trackLandmark(mLandmarkAssetIDList.get( idx ), // assetID - mLandmarkItemIDList.get( idx ), // itemID + mLandmarkItemIDList.get( idx ), // itemID name); // name if( asset_id != sHomeID ) @@ -604,7 +609,7 @@ void LLFloaterWorldMap::trackLandmark( const LLUUID& landmark_item_id ) } // We have to download both region info and landmark data, so set busy. JC -// getWindow()->incBusyCount(); +// getWindow()->incBusyCount(); } else { @@ -712,8 +717,7 @@ void LLFloaterWorldMap::updateLocation() childSetValue("spin z", LLSD(agent_z) ); // Set the current SLURL - mSLURL = LLWeb::escapeURL( llformat("http://slurl.com/secondlife/%s/%d/%d/%d", - agent_sim_name.c_str(), agent_x, agent_y, agent_z) ); + mSLURL = LLURLDispatcher::buildSLURL(agent_sim_name, agent_x, agent_y, agent_z); } } @@ -750,8 +754,7 @@ void LLFloaterWorldMap::updateLocation() // simNameFromPosGlobal can fail, so don't give the user an invalid SLURL if ( gotSimName ) { - mSLURL = LLWeb::escapeURL(llformat("http://slurl.com/secondlife/%s/%d/%d/%d", - sim_name.c_str(), llround(region_x), llround(region_y), llround((F32)pos_global.mdV[VZ]))); + mSLURL = LLURLDispatcher::buildSLURL(sim_name, llround(region_x), llround(region_y), llround((F32)pos_global.mdV[VZ])); } else { // Empty SLURL will disable the "Copy SLURL to clipboard" button @@ -1001,7 +1004,7 @@ void LLFloaterWorldMap::clearAvatarSelection(BOOL clear_ui) void LLFloaterWorldMap::adjustZoomSliderBounds() { // World size in regions - S32 world_width_regions = gWorldMap->getWorldWidth() / REGION_WIDTH_UNITS; + S32 world_width_regions = gWorldMap->getWorldWidth() / REGION_WIDTH_UNITS; S32 world_height_regions = gWorldMap->getWorldHeight() / REGION_WIDTH_UNITS; // Pad the world size a little bit, so we have a nice border on @@ -1045,7 +1048,7 @@ void LLFloaterWorldMap::adjustZoomSliderBounds() // static void LLFloaterWorldMap::onPanBtn( void* userdata ) { - if( !gFloaterWorldMap ) return; + if( !gFloaterWorldMap ) return; EPanDirection direction = (EPanDirection)(intptr_t)userdata; @@ -1056,7 +1059,7 @@ void LLFloaterWorldMap::onPanBtn( void* userdata ) case PAN_UP: pan_y = -1; break; case PAN_DOWN: pan_y = 1; break; case PAN_LEFT: pan_x = 1; break; - case PAN_RIGHT: pan_x = -1; break; + case PAN_RIGHT: pan_x = -1; break; default: llassert(0); return; } @@ -1096,6 +1099,21 @@ void LLFloaterWorldMap::onLandmarkComboPrearrange( LLUICtrl* ctrl, void* userdat } +void LLFloaterWorldMap::onComboTextEntry( LLLineEditor* ctrl, void* userdata ) +{ + // Reset the tracking whenever we start typing into any of the search fields, + // so that hitting does an auto-complete versus teleporting us to the + // previously selected landmark/friend. + LLTracker::clearFocus(); +} + +// static +void LLFloaterWorldMap::onSearchTextEntry( LLLineEditor* ctrl, void* userdata ) +{ + onComboTextEntry(ctrl, userdata); + updateSearchEnabled(ctrl, userdata); +} + // static void LLFloaterWorldMap::onLandmarkComboCommit( LLUICtrl* ctrl, void* userdata ) { @@ -1200,6 +1218,12 @@ void LLFloaterWorldMap::onAvatarComboCommit( LLUICtrl* ctrl, void* userdata ) } } +//static +void LLFloaterWorldMap::onLocationFocusChanged( LLFocusableElement* focus, void* userdata ) +{ + updateSearchEnabled((LLUICtrl*)focus, userdata); +} + // static void LLFloaterWorldMap::updateSearchEnabled( LLUICtrl* ctrl, void* userdata ) { @@ -1261,7 +1285,7 @@ void LLFloaterWorldMap::onClearBtn(void* data) self->mTrackedStatus = LLTracker::TRACKING_NOTHING; LLTracker::stopTracking((void *)(intptr_t)TRUE); gWorldMap->mIsTrackingUnknownLocation = FALSE; - self->mSLURL = ""; // Clear the SLURL since it's invalid + self->mSLURL = ""; // Clear the SLURL since it's invalid self->mSetToUserPosition = TRUE; // Revert back to the current user position } @@ -1330,7 +1354,7 @@ void LLFloaterWorldMap::centerOnTarget(BOOL animate) else { // We've got the position finally, so we're no longer busy. JC -// getWindow()->decBusyCount(); +// getWindow()->decBusyCount(); pos_global = LLTracker::getTrackedPositionGlobal() - gAgent.getCameraPositionGlobal(); } } @@ -1542,11 +1566,11 @@ void LLFloaterWorldMap::updateSims(bool found_null_sim) return; } - LLCtrlListInterface *list = childGetListInterface("search_results"); + LLScrollListCtrl *list = gUICtrlFactory->getScrollListByName(this, "search_results"); if (!list) return; list->operateOnAll(LLCtrlListInterface::OP_DELETE); - LLSD selected_value = list->getSimpleSelectedValue(); + LLSD selected_value = list->getSelectedValue(); S32 name_length = mCompletingRegionName.length(); @@ -1601,7 +1625,7 @@ void LLFloaterWorldMap::updateSims(bool found_null_sim) } else { - list->addSimpleElement("None found."); + list->addCommentText("None found."); list->operateOnAll(LLCtrlListInterface::OP_DESELECT); } } @@ -1632,7 +1656,7 @@ void LLFloaterWorldMap::onCommitSearchResult(LLUICtrl*, void* userdata) LLCtrlListInterface *list = self->childGetListInterface("search_results"); if (!list) return; - LLSD selected_value = list->getSimpleSelectedValue(); + LLSD selected_value = list->getSelectedValue(); LLString sim_name = selected_value.asString(); if (sim_name.empty()) { diff --git a/linden/indra/newview/llfloaterworldmap.h b/linden/indra/newview/llfloaterworldmap.h index 1d3dcd3..7addaa7 100644 --- a/linden/indra/newview/llfloaterworldmap.h +++ b/linden/indra/newview/llfloaterworldmap.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -90,16 +90,16 @@ public: void trackLocation(const LLVector3d& pos); void trackEvent(const LLItemInfo &event_info); void trackGenericItem(const LLItemInfo &item); - void trackURL(const LLString& region_name, S32 x_coord, S32 y_coord, S32 z_coord); + void trackURL(const LLString& region_name, S32 x_coord, S32 y_coord, S32 z_coord); static const LLUUID& getHomeID() { return sHomeID; } // A z_attenuation of 0.0f collapses the distance into the X-Y plane - F32 getDistanceToDestination(const LLVector3d& pos_global, F32 z_attenuation = 0.5f) const; + F32 getDistanceToDestination(const LLVector3d& pos_global, F32 z_attenuation = 0.5f) const; - void clearLocationSelection(BOOL clear_ui = FALSE); - void clearAvatarSelection(BOOL clear_ui = FALSE); - void clearLandmarkSelection(BOOL clear_ui = FALSE); + void clearLocationSelection(BOOL clear_ui = FALSE); + void clearAvatarSelection(BOOL clear_ui = FALSE); + void clearLandmarkSelection(BOOL clear_ui = FALSE); // Adjust the maximally zoomed out limit of the zoom slider so you can // see the whole world, plus a little. @@ -118,12 +118,15 @@ protected: static void onLandmarkComboPrearrange( LLUICtrl* ctrl, void* data ); static void onLandmarkComboCommit( LLUICtrl* ctrl, void* data ); - + static void onAvatarComboPrearrange( LLUICtrl* ctrl, void* data ); static void onAvatarComboCommit( LLUICtrl* ctrl, void* data ); static void onCommitBackground(void* data, bool from_click); + static void onComboTextEntry( LLLineEditor* ctrl, void* data ); + static void onSearchTextEntry( LLLineEditor* ctrl, void* data ); + static void onClearBtn(void*); static void onFlyBtn(void*); static void onClickTeleportBtn(void*); @@ -143,18 +146,19 @@ protected: static void onGoToLandmarkDialog(S32 option,void* userdata); void flyToLandmark(); void teleportToLandmark(); - void setLandmarkVisited(); + void setLandmarkVisited(); void buildAvatarIDList(); void flyToAvatar(); void teleportToAvatar(); static void updateSearchEnabled( LLUICtrl* ctrl, void* userdata ); + static void onLocationFocusChanged( LLFocusableElement* ctrl, void* userdata ); static void onLocationCommit( void* userdata ); static void onCommitLocation( LLUICtrl* ctrl, void* userdata ); static void onCommitSearchResult( LLUICtrl* ctrl, void* userdata ); - void cacheLandmarkPosition(); + void cacheLandmarkPosition(); protected: LLTabContainerCommon* mTabs; @@ -165,7 +169,7 @@ protected: LLDynamicArray mLandmarkAssetIDList; LLDynamicArray mLandmarkItemIDList; - BOOL mHasLandmarkPosition; + BOOL mHasLandmarkPosition; static const LLUUID sHomeID; diff --git a/linden/indra/newview/llfolderview.cpp b/linden/indra/newview/llfolderview.cpp index 7768105..ca3c9c1 100644 --- a/linden/indra/newview/llfolderview.cpp +++ b/linden/indra/newview/llfolderview.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -94,7 +94,7 @@ void copy_selected_item(void* user_data); void open_selected_items(void* user_data); void properties_selected_items(void* user_data); void paste_items(void* user_data); -void renamer_focus_lost( LLUICtrl* handler, void* user_data ); +void renamer_focus_lost( LLFocusableElement* handler, void* user_data ); ///---------------------------------------------------------------------------- /// Class LLFolderViewItem @@ -696,7 +696,7 @@ BOOL LLFolderViewItem::handleHover( S32 x, S32 y, MASK mask ) // Release keyboard focus, so that if stuff is dropped into the // world, pressing the delete key won't blow away the inventory // item. - gViewerWindow->setKeyboardFocus(NULL, NULL); + gViewerWindow->setKeyboardFocus(NULL); return gToolDragAndDrop->handleHover( x, y, mask ); } @@ -3193,7 +3193,7 @@ void LLFolderView::draw() } if(gViewerWindow->hasKeyboardFocus(this) && !getVisible()) { - gViewerWindow->setKeyboardFocus( NULL, NULL ); + gViewerWindow->setKeyboardFocus( NULL ); } // while dragging, update selection rendering to reflect single/multi drag status @@ -3685,7 +3685,7 @@ void LLFolderView::startRenamingSelectedItem( void ) mRenamer->setVisible( TRUE ); // set focus will fail unless item is visible mRenamer->setFocus( TRUE ); - mRenamer->setFocusLostCallback(renamer_focus_lost); + mRenamer->setLostTopCallback(onRenamerLost); gViewerWindow->setTopCtrl( mRenamer ); } } @@ -3710,7 +3710,7 @@ BOOL LLFolderView::handleKeyHere( KEY key, MASK mask, BOOL called_from_parent ) // SL-51858: Key presses are not being passed to the Popup menu. // A proper fix is non-trivial so instead just close the menu. LLMenuGL* menu = (LLMenuGL*)LLView::getViewByHandle(mPopupMenuHandle); - if (menu->isOpen()) + if (menu && menu->isOpen()) { LLMenuGL::sMenuContainer->hideMenus(); } @@ -3759,7 +3759,7 @@ BOOL LLFolderView::handleKeyHere( KEY key, MASK mask, BOOL called_from_parent ) { if( gViewerWindow->childHasKeyboardFocus( this ) ) { - gViewerWindow->setKeyboardFocus( NULL, NULL ); + gViewerWindow->setKeyboardFocus( NULL ); } } mSearchString.clear(); @@ -3950,6 +3950,14 @@ BOOL LLFolderView::handleUnicodeCharHere(llwchar uni_char, BOOL called_from_pare BOOL handled = FALSE; if (gFocusMgr.childHasKeyboardFocus(getRoot())) { + // SL-51858: Key presses are not being passed to the Popup menu. + // A proper fix is non-trivial so instead just close the menu. + LLMenuGL* menu = (LLMenuGL*)LLView::getViewByHandle(mPopupMenuHandle); + if (menu && menu->isOpen()) + { + LLMenuGL::sMenuContainer->hideMenus(); + } + //do text search if (mSearchTimer.getElapsedTimeF32() > gSavedSettings.getF32("TypeAheadTimeout")) { @@ -4459,12 +4467,10 @@ bool LLInventorySort::operator()(LLFolderViewItem* a, LLFolderViewItem* b) } } -void renamer_focus_lost( LLUICtrl* ctrl, void* userdata) +//static +void LLFolderView::onRenamerLost( LLUICtrl* renamer, void* user_data) { - if( ctrl ) - { - ctrl->setVisible( FALSE ); - } + renamer->setVisible(FALSE); } void delete_selected_item(void* user_data) diff --git a/linden/indra/newview/llfolderview.h b/linden/indra/newview/llfolderview.h index 6308eca..062f710 100644 --- a/linden/indra/newview/llfolderview.h +++ b/linden/indra/newview/llfolderview.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -879,6 +879,8 @@ protected: LLScrollableContainerView* mScrollContainer; // NULL if this is not a child of a scroll container. static void commitRename( LLUICtrl* renamer, void* user_data ); + static void onRenamerLost( LLUICtrl* renamer, void* user_data); + void finishRenamingItem( void ); void revertRenamingItem( void ); diff --git a/linden/indra/newview/llfollowcam.cpp b/linden/indra/newview/llfollowcam.cpp index 58bdd95..0fc0661 100644 --- a/linden/indra/newview/llfollowcam.cpp +++ b/linden/indra/newview/llfollowcam.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llfollowcam.h b/linden/indra/newview/llfollowcam.h index 3748efc..390dbb6 100644 --- a/linden/indra/newview/llfollowcam.h +++ b/linden/indra/newview/llfollowcam.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llframestats.cpp b/linden/indra/newview/llframestats.cpp index 728c150..26a1960 100644 --- a/linden/indra/newview/llframestats.cpp +++ b/linden/indra/newview/llframestats.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llframestats.h b/linden/indra/newview/llframestats.h index 10d2323..d54d409 100644 --- a/linden/indra/newview/llframestats.h +++ b/linden/indra/newview/llframestats.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llframestatview.cpp b/linden/indra/newview/llframestatview.cpp index 390c6f6..416bf26 100644 --- a/linden/indra/newview/llframestatview.cpp +++ b/linden/indra/newview/llframestatview.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llframestatview.h b/linden/indra/newview/llframestatview.h index 8e278ee..e72cdc4 100644 --- a/linden/indra/newview/llframestatview.h +++ b/linden/indra/newview/llframestatview.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llgenepool.cpp b/linden/indra/newview/llgenepool.cpp index 2370d1d..9974aa8 100644 --- a/linden/indra/newview/llgenepool.cpp +++ b/linden/indra/newview/llgenepool.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llgenepool.h b/linden/indra/newview/llgenepool.h index 920d395..53d969e 100644 --- a/linden/indra/newview/llgenepool.h +++ b/linden/indra/newview/llgenepool.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llgesturemgr.cpp b/linden/indra/newview/llgesturemgr.cpp index dd79397..3be5d4e 100644 --- a/linden/indra/newview/llgesturemgr.cpp +++ b/linden/indra/newview/llgesturemgr.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -1006,14 +1006,20 @@ void LLGestureManager::onLoadComplete(LLVFS *vfs, gViewerStats->incStat( LLViewerStats::ST_DOWNLOAD_FAILED ); } + // Get missing gesture's name. Use UUID if name can't be found. + LLStringBase::format_map_t args; + LLInventoryItem *item = gInventory.getItem( item_id ); + args["[NAME]"] = item ? item->getName() : LLString( item_id.asString() ); + + if( LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE == status || LL_ERR_FILE_EMPTY == status) { - LLNotifyBox::showXml("GestureMissing"); + LLNotifyBox::showXml("GestureMissing", args); } else { - LLNotifyBox::showXml("UnableToLoadGesture"); + LLNotifyBox::showXml("UnableToLoadGesture", args); } llwarns << "Problem loading gesture: " << status << llendl; diff --git a/linden/indra/newview/llgesturemgr.h b/linden/indra/newview/llgesturemgr.h index 804b98c..b1e6555 100644 --- a/linden/indra/newview/llgesturemgr.h +++ b/linden/indra/newview/llgesturemgr.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llgivemoney.cpp b/linden/indra/newview/llgivemoney.cpp index 0f96549..6b2b5bd 100644 --- a/linden/indra/newview/llgivemoney.cpp +++ b/linden/indra/newview/llgivemoney.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llgivemoney.h b/linden/indra/newview/llgivemoney.h index 8304959..ab4da19 100644 --- a/linden/indra/newview/llgivemoney.h +++ b/linden/indra/newview/llgivemoney.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llglsandbox.cpp b/linden/indra/newview/llglsandbox.cpp index 8c3bde9..6c2d34a 100644 --- a/linden/indra/newview/llglsandbox.cpp +++ b/linden/indra/newview/llglsandbox.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llglslshader.cpp b/linden/indra/newview/llglslshader.cpp index cbc1799..98f33e6 100644 --- a/linden/indra/newview/llglslshader.cpp +++ b/linden/indra/newview/llglslshader.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llglslshader.h b/linden/indra/newview/llglslshader.h index 0a0dece..0bd90c3 100644 --- a/linden/indra/newview/llglslshader.h +++ b/linden/indra/newview/llglslshader.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llgroupmgr.cpp b/linden/indra/newview/llgroupmgr.cpp index 8d2b507..0dd8c6d 100644 --- a/linden/indra/newview/llgroupmgr.cpp +++ b/linden/indra/newview/llgroupmgr.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -867,6 +867,12 @@ void LLGroupMgr::processGroupMembersReply(LLMessageSystem* msg, void** data) llinfos << "Received null group member data." << llendl; } } + + //if group members are loaded while titles are missing, load the titles. + if(group_datap->mTitles.size() < 1) + { + gGroupMgr->sendGroupTitlesRequest(group_id); + } } if (group_datap->mMembers.size() == (U32)group_datap->mMemberCount) diff --git a/linden/indra/newview/llgroupmgr.h b/linden/indra/newview/llgroupmgr.h index 332b619..7cef5ec 100644 --- a/linden/indra/newview/llgroupmgr.h +++ b/linden/indra/newview/llgroupmgr.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llgroupnotify.cpp b/linden/indra/newview/llgroupnotify.cpp index eb45d7b..e6f535f 100644 --- a/linden/indra/newview/llgroupnotify.cpp +++ b/linden/indra/newview/llgroupnotify.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -229,7 +229,7 @@ LLGroupNotifyBox::LLGroupNotifyBox(const char* subject, text->setCursor(0,0); text->setEnabled(FALSE); text->setWordWrap(TRUE); - text->setTakesFocus(TRUE); // Allow focus so text can be copied. Since it's not enabled, it will be read-only + text->setTabStop(FALSE); text->setTabToNextField(TRUE); text->setMouseOpaque(TRUE); text->setBorderVisible(TRUE); diff --git a/linden/indra/newview/llgroupnotify.h b/linden/indra/newview/llgroupnotify.h index 3aadf1a..9bc58f9 100644 --- a/linden/indra/newview/llgroupnotify.h +++ b/linden/indra/newview/llgroupnotify.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhippo.cpp b/linden/indra/newview/llhippo.cpp index 0622b3c..27c27e8 100644 --- a/linden/indra/newview/llhippo.cpp +++ b/linden/indra/newview/llhippo.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhippo.h b/linden/indra/newview/llhippo.h index 4aa57eb..ba39595 100644 --- a/linden/indra/newview/llhippo.h +++ b/linden/indra/newview/llhippo.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhoverview.cpp b/linden/indra/newview/llhoverview.cpp index d1648d1..cadd11a 100644 --- a/linden/indra/newview/llhoverview.cpp +++ b/linden/indra/newview/llhoverview.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhoverview.h b/linden/indra/newview/llhoverview.h index ad6a25e..ee41f88 100644 --- a/linden/indra/newview/llhoverview.h +++ b/linden/indra/newview/llhoverview.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudconnector.cpp b/linden/indra/newview/llhudconnector.cpp index d97c870..2dce48c 100644 --- a/linden/indra/newview/llhudconnector.cpp +++ b/linden/indra/newview/llhudconnector.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudconnector.h b/linden/indra/newview/llhudconnector.h index 1a92d66..3ca4725 100644 --- a/linden/indra/newview/llhudconnector.h +++ b/linden/indra/newview/llhudconnector.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudeffect.cpp b/linden/indra/newview/llhudeffect.cpp index b326422..0a3e6c7 100644 --- a/linden/indra/newview/llhudeffect.cpp +++ b/linden/indra/newview/llhudeffect.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudeffect.h b/linden/indra/newview/llhudeffect.h index 882fcd6..ff857cc 100644 --- a/linden/indra/newview/llhudeffect.h +++ b/linden/indra/newview/llhudeffect.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudeffectbeam.cpp b/linden/indra/newview/llhudeffectbeam.cpp index 0f8a004..4918946 100644 --- a/linden/indra/newview/llhudeffectbeam.cpp +++ b/linden/indra/newview/llhudeffectbeam.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudeffectbeam.h b/linden/indra/newview/llhudeffectbeam.h index 0b8070a..8595439 100644 --- a/linden/indra/newview/llhudeffectbeam.h +++ b/linden/indra/newview/llhudeffectbeam.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudeffectlookat.cpp b/linden/indra/newview/llhudeffectlookat.cpp index a24e333..207946d 100644 --- a/linden/indra/newview/llhudeffectlookat.cpp +++ b/linden/indra/newview/llhudeffectlookat.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudeffectlookat.h b/linden/indra/newview/llhudeffectlookat.h index 263ba6b..4e5e77f 100644 --- a/linden/indra/newview/llhudeffectlookat.h +++ b/linden/indra/newview/llhudeffectlookat.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudeffectpointat.cpp b/linden/indra/newview/llhudeffectpointat.cpp index 6a41fd0..cd3077a 100644 --- a/linden/indra/newview/llhudeffectpointat.cpp +++ b/linden/indra/newview/llhudeffectpointat.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudeffectpointat.h b/linden/indra/newview/llhudeffectpointat.h index 2001ee7..f9d864e 100644 --- a/linden/indra/newview/llhudeffectpointat.h +++ b/linden/indra/newview/llhudeffectpointat.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudeffecttrail.cpp b/linden/indra/newview/llhudeffecttrail.cpp index 04ac130..85b103f 100644 --- a/linden/indra/newview/llhudeffecttrail.cpp +++ b/linden/indra/newview/llhudeffecttrail.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudeffecttrail.h b/linden/indra/newview/llhudeffecttrail.h index 3f48ecd..3bb0f92 100644 --- a/linden/indra/newview/llhudeffecttrail.h +++ b/linden/indra/newview/llhudeffecttrail.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudicon.cpp b/linden/indra/newview/llhudicon.cpp index 078c6ed..2124827 100644 --- a/linden/indra/newview/llhudicon.cpp +++ b/linden/indra/newview/llhudicon.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudicon.h b/linden/indra/newview/llhudicon.h index 2f99367..b879776 100644 --- a/linden/indra/newview/llhudicon.h +++ b/linden/indra/newview/llhudicon.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudmanager.cpp b/linden/indra/newview/llhudmanager.cpp index ddd0e16..5810cd2 100644 --- a/linden/indra/newview/llhudmanager.cpp +++ b/linden/indra/newview/llhudmanager.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudmanager.h b/linden/indra/newview/llhudmanager.h index 18a6375..881e744 100644 --- a/linden/indra/newview/llhudmanager.h +++ b/linden/indra/newview/llhudmanager.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudobject.cpp b/linden/indra/newview/llhudobject.cpp index 7611cc4..4c27211 100644 --- a/linden/indra/newview/llhudobject.cpp +++ b/linden/indra/newview/llhudobject.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudobject.h b/linden/indra/newview/llhudobject.h index 06c8739..277b59a 100644 --- a/linden/indra/newview/llhudobject.h +++ b/linden/indra/newview/llhudobject.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudrender.cpp b/linden/indra/newview/llhudrender.cpp index c5c2f22..a803b0e 100644 --- a/linden/indra/newview/llhudrender.cpp +++ b/linden/indra/newview/llhudrender.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudrender.h b/linden/indra/newview/llhudrender.h index 09eed5f..6e6fae2 100644 --- a/linden/indra/newview/llhudrender.h +++ b/linden/indra/newview/llhudrender.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudtext.cpp b/linden/indra/newview/llhudtext.cpp index fb786d1..7515a1b 100644 --- a/linden/indra/newview/llhudtext.cpp +++ b/linden/indra/newview/llhudtext.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudtext.h b/linden/indra/newview/llhudtext.h index e57f2b5..47dc5a7 100644 --- a/linden/indra/newview/llhudtext.h +++ b/linden/indra/newview/llhudtext.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llhudview.cpp b/linden/indra/newview/llhudview.cpp index 94e46e5..7a54623 100644 --- a/linden/indra/newview/llhudview.cpp +++ b/linden/indra/newview/llhudview.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -52,8 +52,8 @@ LLHUDView *gHUDView = NULL; const S32 HUD_ARROW_SIZE = 32; -LLHUDView::LLHUDView(const std::string& name, const LLRect& rect) -: LLView(name, rect, FALSE) +LLHUDView::LLHUDView() +: LLPanel() { } LLHUDView::~LLHUDView() diff --git a/linden/indra/newview/llhudview.h b/linden/indra/newview/llhudview.h index 2233fb9..cfe8899 100644 --- a/linden/indra/newview/llhudview.h +++ b/linden/indra/newview/llhudview.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -32,16 +32,16 @@ #ifndef LL_LLHUDVIEW_H #define LL_LLHUDVIEW_H -#include "llview.h" +#include "llpanel.h" #include "v4color.h" class LLVector3d; class LLHUDView -: public LLView +: public LLPanel { public: - LLHUDView(const std::string& name, const LLRect& rect); + LLHUDView(); virtual ~LLHUDView(); virtual EWidgetType getWidgetType() const; diff --git a/linden/indra/newview/llimpanel.cpp b/linden/indra/newview/llimpanel.cpp index 2307912..b80b80b 100644 --- a/linden/indra/newview/llimpanel.cpp +++ b/linden/indra/newview/llimpanel.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -63,6 +63,7 @@ #include "llviewerstats.h" #include "llviewercontrol.h" #include "llvieweruictrlfactory.h" +#include "llviewerwindow.h" #include "lllogchat.h" #include "llfloaterhtml.h" #include "llweb.h" @@ -92,10 +93,14 @@ static LLString sSessionStartString = "Starting session with [NAME] please wait. LLVoiceChannel::voice_channel_map_t LLVoiceChannel::sVoiceChannelMap; LLVoiceChannel::voice_channel_map_uri_t LLVoiceChannel::sVoiceChannelURIMap; LLVoiceChannel* LLVoiceChannel::sCurrentVoiceChannel = NULL; +LLVoiceChannel* LLVoiceChannel::sSuspendedVoiceChannel = NULL; -void session_starter_helper(const LLUUID& temp_session_id, - const LLUUID& other_participant_id, - EInstantMessage im_type) +BOOL LLVoiceChannel::sSuspended = FALSE; + +void session_starter_helper( + const LLUUID& temp_session_id, + const LLUUID& other_participant_id, + EInstantMessage im_type) { LLMessageSystem *msg = gMessageSystem; @@ -122,47 +127,111 @@ void session_starter_helper(const LLUUID& temp_session_id, msg->addVector3Fast(_PREHASH_Position, gAgent.getPositionAgent()); } +void start_deprecated_conference_chat( + const LLUUID& temp_session_id, + const LLUUID& creator_id, + const LLUUID& other_participant_id, + const LLSD& agents_to_invite) +{ + U8* bucket; + U8* pos; + S32 count; + S32 bucket_size; + + // *FIX: this could suffer from endian issues + count = agents_to_invite.size(); + bucket_size = UUID_BYTES * count; + bucket = new U8[bucket_size]; + pos = bucket; + + for(S32 i = 0; i < count; ++i) + { + LLUUID agent_id = agents_to_invite[i].asUUID(); + + memcpy(pos, &agent_id, UUID_BYTES); + pos += UUID_BYTES; + } + + session_starter_helper( + temp_session_id, + other_participant_id, + IM_SESSION_CONFERENCE_START); + + gMessageSystem->addBinaryDataFast( + _PREHASH_BinaryBucket, + bucket, + bucket_size); + + gAgent.sendReliableMessage(); + + delete[] bucket; +} + +class LLStartConferenceChatResponder : public LLHTTPClient::Responder +{ +public: + LLStartConferenceChatResponder( + const LLUUID& temp_session_id, + const LLUUID& creator_id, + const LLUUID& other_participant_id, + const LLSD& agents_to_invite) + { + mTempSessionID = temp_session_id; + mCreatorID = creator_id; + mOtherParticipantID = other_participant_id; + mAgents = agents_to_invite; + } + + virtual void error(U32 statusNum, const std::string& reason) + { + //try an "old school" way. + if ( statusNum == 400 ) + { + start_deprecated_conference_chat( + mTempSessionID, + mCreatorID, + mOtherParticipantID, + mAgents); + } + + //else throw an error back to the client? + //in theory we should have just have these error strings + //etc. set up in this file as opposed to the IMMgr, + //but the error string were unneeded here previously + //and it is not worth the effort switching over all + //the possible different language translations + } + +private: + LLUUID mTempSessionID; + LLUUID mCreatorID; + LLUUID mOtherParticipantID; + + LLSD mAgents; +}; + // Returns true if any messages were sent, false otherwise. // Is sort of equivalent to "does the server need to do anything?" -bool send_start_session_messages(const LLUUID& temp_session_id, - const LLUUID& other_participant_id, - const LLDynamicArray& ids, - EInstantMessage dialog) +bool send_start_session_messages( + const LLUUID& temp_session_id, + const LLUUID& other_participant_id, + const LLDynamicArray& ids, + EInstantMessage dialog) { - if ( (dialog == IM_SESSION_GROUP_START) || - (dialog == IM_SESSION_CONFERENCE_START) ) + if ( dialog == IM_SESSION_GROUP_START ) { - S32 count = ids.size(); - S32 bucket_size = UUID_BYTES * count; - U8* bucket; - U8* pos; - - session_starter_helper(temp_session_id, - other_participant_id, - dialog); + session_starter_helper( + temp_session_id, + other_participant_id, + dialog); switch(dialog) { case IM_SESSION_GROUP_START: - gMessageSystem->addBinaryDataFast(_PREHASH_BinaryBucket, - EMPTY_BINARY_BUCKET, - EMPTY_BINARY_BUCKET_SIZE); - break; - case IM_SESSION_CONFERENCE_START: - bucket = new U8[bucket_size]; - pos = bucket; - - // *FIX: this could suffer from endian issues - for(S32 i = 0; i < count; ++i) - { - memcpy(pos, &(ids.get(i)), UUID_BYTES); - pos += UUID_BYTES; - } - gMessageSystem->addBinaryDataFast(_PREHASH_BinaryBucket, - bucket, - bucket_size); - delete[] bucket; - + gMessageSystem->addBinaryDataFast( + _PREHASH_BinaryBucket, + EMPTY_BINARY_BUCKET, + EMPTY_BINARY_BUCKET_SIZE); break; default: break; @@ -171,6 +240,44 @@ bool send_start_session_messages(const LLUUID& temp_session_id, return true; } + else if ( dialog == IM_SESSION_CONFERENCE_START ) + { + LLSD agents; + for (int i = 0; i < (S32) ids.size(); i++) + { + agents.append(ids.get(i)); + } + + //we have a new way of starting conference calls now + LLViewerRegion* region = gAgent.getRegion(); + if (region) + { + std::string url = region->getCapability( + "ChatSessionRequest"); + LLSD data; + data["method"] = "start conference"; + data["session-id"] = temp_session_id; + + data["params"] = agents; + + LLHTTPClient::post( + url, + data, + new LLStartConferenceChatResponder( + temp_session_id, + gAgent.getID(), + other_participant_id, + data["params"])); + } + else + { + start_deprecated_conference_chat( + temp_session_id, + gAgent.getID(), + other_participant_id, + agents); + } + } return false; } @@ -194,8 +301,21 @@ void LLVoiceCallCapResponder::error(U32 status, const std::string& reason) << status << ": " << reason << ")" << llendl; LLVoiceChannel* channelp = LLVoiceChannel::getChannelByID(mSessionID); - if (channelp) + if ( channelp ) { + if ( 403 == status ) + { + //403 == no ability + LLNotifyBox::showXml( + "VoiceNotAllowed", + channelp->getNotifyArgs()); + } + else + { + LLNotifyBox::showXml( + "VoiceCallGenericError", + channelp->getNotifyArgs()); + } channelp->deactivate(); } } @@ -242,10 +362,6 @@ LLVoiceChannel::LLVoiceChannel(const LLUUID& session_id, const LLString& session LLVoiceChannel::~LLVoiceChannel() { - // CANNOT do this here, since it will crash on quit in the LLVoiceChannelProximal singleton destructor. - // Do it in all other subclass destructors instead. - // deactivate(); - // Don't use LLVoiceClient::getInstance() here -- this can get called during atexit() time and that singleton MAY have already been destroyed. if(gVoiceClient) { @@ -266,7 +382,19 @@ void LLVoiceChannel::setChannelInfo( if (mState == STATE_NO_CHANNEL_INFO) { - if(!mURI.empty() && !mCredentials.empty()) + if (mURI.empty()) + { + LLNotifyBox::showXml("VoiceChannelJoinFailed", mNotifyArgs); + llwarns << "Received empty URI for channel " << mSessionName << llendl; + deactivate(); + } + else if (mCredentials.empty()) + { + LLNotifyBox::showXml("VoiceChannelJoinFailed", mNotifyArgs); + llwarns << "Received empty credentials for channel " << mSessionName << llendl; + deactivate(); + } + else { setState(STATE_READY); @@ -279,12 +407,6 @@ void LLVoiceChannel::setChannelInfo( activate(); } } - else - { - //*TODO: notify user - llwarns << "Received invalid credentials for channel " << mSessionName << llendl; - deactivate(); - } } } @@ -325,7 +447,7 @@ void LLVoiceChannel::handleStatusChange(EStatusType type) } break; case STATUS_LEFT_CHANNEL: - if (callStarted() && !mIgnoreNextSessionLeave) + if (callStarted() && !mIgnoreNextSessionLeave && !sSuspended) { // if forceably removed from channel // update the UI and revert to default channel @@ -496,6 +618,38 @@ void LLVoiceChannel::initClass() sCurrentVoiceChannel = LLVoiceChannelProximal::getInstance(); } + +//static +void LLVoiceChannel::suspend() +{ + if (!sSuspended) + { + sSuspendedVoiceChannel = sCurrentVoiceChannel; + sSuspended = TRUE; + } +} + +//static +void LLVoiceChannel::resume() +{ + if (sSuspended) + { + if (gVoiceClient->voiceEnabled()) + { + if (sSuspendedVoiceChannel) + { + sSuspendedVoiceChannel->activate(); + } + else + { + LLVoiceChannelProximal::getInstance()->activate(); + } + } + sSuspended = FALSE; + } +} + + // // LLVoiceChannelGroup // @@ -507,11 +661,6 @@ LLVoiceChannelGroup::LLVoiceChannelGroup(const LLUUID& session_id, const LLStrin mIsRetrying = FALSE; } -LLVoiceChannelGroup::~LLVoiceChannelGroup() -{ - deactivate(); -} - void LLVoiceChannelGroup::deactivate() { if (callStarted()) @@ -635,6 +784,7 @@ void LLVoiceChannelGroup::handleError(EStatusType status) } break; + case ERROR_UNKNOWN: default: break; @@ -677,11 +827,6 @@ LLVoiceChannelProximal::LLVoiceChannelProximal() : activate(); } -LLVoiceChannelProximal::~LLVoiceChannelProximal() -{ - // DO NOT call deactivate() here, since this will only happen at atexit() time. -} - BOOL LLVoiceChannelProximal::isActive() { return callStarted() && LLVoiceClient::getInstance()->inProximalChannel(); @@ -725,6 +870,9 @@ void LLVoiceChannelProximal::handleStatusChange(EStatusType status) case STATUS_LEFT_CHANNEL: // do not notify user when leaving proximal channel return; + case STATUS_VOICE_DISABLED: + gIMMgr->addSystemMessage(LLUUID::null, "unavailable", mNotifyArgs); + return; default: break; } @@ -762,29 +910,26 @@ void LLVoiceChannelProximal::deactivate() } } + // // LLVoiceChannelP2P // LLVoiceChannelP2P::LLVoiceChannelP2P(const LLUUID& session_id, const LLString& session_name, const LLUUID& other_user_id) : LLVoiceChannelGroup(session_id, session_name), - mOtherUserID(other_user_id) + mOtherUserID(other_user_id), + mReceivedCall(FALSE) { // make sure URI reflects encoded version of other user's agent id setURI(LLVoiceClient::getInstance()->sipURIFromID(other_user_id)); } -LLVoiceChannelP2P::~LLVoiceChannelP2P() -{ - deactivate(); -} - void LLVoiceChannelP2P::handleStatusChange(EStatusType type) { // status updates switch(type) { case STATUS_LEFT_CHANNEL: - if (callStarted() && !mIgnoreNextSessionLeave) + if (callStarted() && !mIgnoreNextSessionLeave && !sSuspended) { if (mState == STATE_RINGING) { @@ -832,6 +977,7 @@ void LLVoiceChannelP2P::activate() // no session handle yet, we're starting the call if (mSessionHandle.empty()) { + mReceivedCall = FALSE; LLVoiceClient::getInstance()->callUser(mOtherUserID); } // otherwise answering the call @@ -879,24 +1025,37 @@ void LLVoiceChannelP2P::setSessionHandle(const LLString& handle) mSessionHandle = handle; // The URI of a p2p session should always be the other end's SIP URI. setURI(LLVoiceClient::getInstance()->sipURIFromID(mOtherUserID)); - + mReceivedCall = TRUE; + if (needs_activate) { activate(); } } +void LLVoiceChannelP2P::setState(EState state) +{ + // you only "answer" voice invites in p2p mode + // so provide a special purpose message here + if (mReceivedCall && state == STATE_RINGING) + { + gIMMgr->addSystemMessage(mSessionID, "answering", mNotifyArgs); + mState = state; + return; + } + LLVoiceChannel::setState(state); +} + + // // LLFloaterIMPanel // LLFloaterIMPanel::LLFloaterIMPanel( - const std::string& name, - const LLRect& rect, const std::string& session_label, const LLUUID& session_id, const LLUUID& other_participant_id, EInstantMessage dialog) : - LLFloater(name, rect, session_label), + LLFloater(session_label, LLRect(), session_label), mInputEditor(NULL), mHistoryEditor(NULL), mSessionUUID(session_id), @@ -909,6 +1068,7 @@ LLFloaterIMPanel::LLFloaterIMPanel( mOtherTyping(FALSE), mTypingLineStartIndex(0), mSentTypingState(TRUE), + mNumUnreadMessages(0), mShowSpeakersOnConnect(TRUE), mAutoConnect(FALSE), mSpeakerPanel(NULL), @@ -919,14 +1079,12 @@ LLFloaterIMPanel::LLFloaterIMPanel( } LLFloaterIMPanel::LLFloaterIMPanel( - const std::string& name, - const LLRect& rect, const std::string& session_label, const LLUUID& session_id, const LLUUID& other_participant_id, const LLDynamicArray& ids, EInstantMessage dialog) : - LLFloater(name, rect, session_label), + LLFloater(session_label, LLRect(), session_label), mInputEditor(NULL), mHistoryEditor(NULL), mSessionUUID(session_id), @@ -952,13 +1110,15 @@ LLFloaterIMPanel::LLFloaterIMPanel( void LLFloaterIMPanel::init(const LLString& session_label) { + mSessionLabel = session_label; + LLString xml_filename; switch(mDialog) { case IM_SESSION_GROUP_START: mFactoryMap["active_speakers_panel"] = LLCallbackMap(createSpeakersPanel, this); xml_filename = "floater_instant_message_group.xml"; - mVoiceChannel = new LLVoiceChannelGroup(mSessionUUID, session_label); + mVoiceChannel = new LLVoiceChannelGroup(mSessionUUID, mSessionLabel); break; case IM_SESSION_INVITE: mFactoryMap["active_speakers_panel"] = LLCallbackMap(createSpeakersPanel, this); @@ -970,21 +1130,21 @@ void LLFloaterIMPanel::init(const LLString& session_label) { xml_filename = "floater_instant_message_ad_hoc.xml"; } - mVoiceChannel = new LLVoiceChannelGroup(mSessionUUID, session_label); + mVoiceChannel = new LLVoiceChannelGroup(mSessionUUID, mSessionLabel); break; case IM_SESSION_P2P_INVITE: xml_filename = "floater_instant_message.xml"; - mVoiceChannel = new LLVoiceChannelP2P(mSessionUUID, session_label, mOtherParticipantUUID); + mVoiceChannel = new LLVoiceChannelP2P(mSessionUUID, mSessionLabel, mOtherParticipantUUID); break; case IM_SESSION_CONFERENCE_START: mFactoryMap["active_speakers_panel"] = LLCallbackMap(createSpeakersPanel, this); xml_filename = "floater_instant_message_ad_hoc.xml"; - mVoiceChannel = new LLVoiceChannelGroup(mSessionUUID, session_label); + mVoiceChannel = new LLVoiceChannelGroup(mSessionUUID, mSessionLabel); break; // just received text from another user case IM_NOTHING_SPECIAL: xml_filename = "floater_instant_message.xml"; - mVoiceChannel = new LLVoiceChannelP2P(mSessionUUID, session_label, mOtherParticipantUUID); + mVoiceChannel = new LLVoiceChannelP2P(mSessionUUID, mSessionLabel, mOtherParticipantUUID); break; default: llwarns << "Unknown session type" << llendl; @@ -999,15 +1159,14 @@ void LLFloaterIMPanel::init(const LLString& session_label) &getFactoryMap(), FALSE); - setLabel(session_label); - setTitle(session_label); + setTitle(mSessionLabel); mInputEditor->setMaxTextLength(1023); // enable line history support for instant message bar mInputEditor->setEnableLineHistory(TRUE); if ( gSavedPerAccountSettings.getBOOL("LogShowHistory") ) { - LLLogChat::loadHistory(session_label, + LLLogChat::loadHistory(mSessionLabel, &chatFromLogFile, (void *)this); } @@ -1060,16 +1219,12 @@ BOOL LLFloaterIMPanel::postBuild() { requires("chat_editor", WIDGET_TYPE_LINE_EDITOR); requires("im_history", WIDGET_TYPE_TEXT_EDITOR); - requires("live_help_dialog", WIDGET_TYPE_TEXT_BOX); - requires("title_string", WIDGET_TYPE_TEXT_BOX); - requires("typing_start_string", WIDGET_TYPE_TEXT_BOX); - requires("session_start_string", WIDGET_TYPE_TEXT_BOX); if (checkRequirements()) { mInputEditor = LLUICtrlFactory::getLineEditorByName(this, "chat_editor"); - mInputEditor->setFocusReceivedCallback( onInputEditorFocusReceived ); - mInputEditor->setFocusLostCallback( onInputEditorFocusLost ); + mInputEditor->setFocusReceivedCallback( onInputEditorFocusReceived, this ); + mInputEditor->setFocusLostCallback( onInputEditorFocusLost, this ); mInputEditor->setKeystrokeCallback( onInputEditorKeystroke ); mInputEditor->setCommitCallback( onCommitChat ); mInputEditor->setCallbackUserData(this); @@ -1084,6 +1239,7 @@ BOOL LLFloaterIMPanel::postBuild() childSetAction("send_btn", onClickSend, this); childSetAction("toggle_active_speakers_btn", onClickToggleActiveSpeakers, this); + childSetAction("moderator_kick_speaker", onKickSpeaker, this); //LLButton* close_btn = LLUICtrlFactory::getButtonByName(this, "close_btn"); //close_btn->setClickedCallback(&LLFloaterIMPanel::onClickClose, this); @@ -1094,17 +1250,11 @@ BOOL LLFloaterIMPanel::postBuild() { childSetEnabled("profile_btn", FALSE); } - LLTextBox* title = LLUICtrlFactory::getTextBoxByName(this, "title_string"); - sTitleString = title->getText(); - - LLTextBox* typing_start = LLUICtrlFactory::getTextBoxByName(this, "typing_start_string"); - - sTypingStartString = typing_start->getText(); - - LLTextBox* session_start = LLUICtrlFactory::getTextBoxByName( - this, - "session_start_string"); - sSessionStartString = session_start->getText(); + + sTitleString = getFormattedUIString("title_string"); + sTypingStartString = getFormattedUIString("typing_start_string"); + sSessionStartString = getFormattedUIString("session_start_string"); + if (mSpeakerPanel) { mSpeakerPanel->refreshSpeakers(); @@ -1112,7 +1262,7 @@ BOOL LLFloaterIMPanel::postBuild() if (mDialog == IM_NOTHING_SPECIAL) { - childSetCommitCallback("mute_btn", onClickMuteVoice, this); + childSetAction("mute_btn", onClickMuteVoice, this); childSetCommitCallback("speaker_volume", onVolumeChange, this); } @@ -1131,7 +1281,7 @@ void* LLFloaterIMPanel::createSpeakersPanel(void* data) } //static -void LLFloaterIMPanel::onClickMuteVoice(LLUICtrl* source, void* user_data) +void LLFloaterIMPanel::onClickMuteVoice(void* user_data) { LLFloaterIMPanel* floaterp = (LLFloaterIMPanel*)user_data; if (floaterp) @@ -1171,10 +1321,22 @@ void LLFloaterIMPanel::draw() && LLVoiceClient::voiceEnabled(); // hide/show start call and end call buttons - childSetVisible("end_call_btn", mVoiceChannel->getState() >= LLVoiceChannel::STATE_CALL_STARTED); - childSetVisible("start_call_btn", mVoiceChannel->getState() < LLVoiceChannel::STATE_CALL_STARTED); + childSetVisible("end_call_btn", LLVoiceClient::voiceEnabled() && mVoiceChannel->getState() >= LLVoiceChannel::STATE_CALL_STARTED); + childSetVisible("start_call_btn", LLVoiceClient::voiceEnabled() && mVoiceChannel->getState() < LLVoiceChannel::STATE_CALL_STARTED); childSetEnabled("start_call_btn", enable_connect); childSetEnabled("send_btn", !childGetValue("chat_editor").asString().empty()); + + LLPointer self_speaker = mSpeakers->findSpeaker(gAgent.getID()); + if (self_speaker.notNull() && self_speaker->mModeratorMutedText) + { + mInputEditor->setEnabled(FALSE); + mInputEditor->setLabel(getFormattedUIString("muted_text_label")); + } + else + { + mInputEditor->setEnabled(TRUE); + mInputEditor->setLabel(getFormattedUIString("default_text_label")); + } if (mAutoConnect && enable_connect) { @@ -1215,11 +1377,11 @@ void LLFloaterIMPanel::draw() else { // refresh volume and mute checkbox - childSetEnabled("speaker_volume", mVoiceChannel->isActive()); + childSetVisible("speaker_volume", LLVoiceClient::voiceEnabled() && mVoiceChannel->isActive()); childSetValue("speaker_volume", gVoiceClient->getUserVolume(mOtherParticipantUUID)); childSetValue("mute_btn", gMuteListp->isMuted(mOtherParticipantUUID, LLMute::flagVoiceChat)); - childSetEnabled("mute_btn", mVoiceChannel->isActive()); + childSetVisible("mute_btn", LLVoiceClient::voiceEnabled() && mVoiceChannel->isActive()); } LLFloater::draw(); } @@ -1235,7 +1397,6 @@ public: void error(U32 statusNum, const std::string& reason) { llinfos << "Error inviting all agents to session" << llendl; - //throw something back to the viewer here? } @@ -1272,8 +1433,8 @@ BOOL LLFloaterIMPanel::inviteToSession(const LLDynamicArray& ids) LLHTTPClient::post( url, data, - new LLSessionInviteResponder(mSessionUUID)); - + new LLSessionInviteResponder( + mSessionUUID)); } else { @@ -1289,6 +1450,15 @@ BOOL LLFloaterIMPanel::inviteToSession(const LLDynamicArray& ids) void LLFloaterIMPanel::addHistoryLine(const LLUUID& source, const std::string &utf8msg, const LLColor4& color, bool log_to_file) { + // start tab flashing when receiving im for background session from user + LLMultiFloater* hostp = getHost(); + if( !isInVisibleChain() + && hostp + && source != gAgent.getID()) + { + hostp->setFloaterFlashing(this, TRUE); + } + addHistoryLine(utf8msg, color, log_to_file); mSpeakers->speakerChatted(source); mSpeakers->setSpeakerTyping(source, FALSE); @@ -1296,14 +1466,6 @@ void LLFloaterIMPanel::addHistoryLine(const LLUUID& source, const std::string &u void LLFloaterIMPanel::addHistoryLine(const std::string &utf8msg, const LLColor4& color, bool log_to_file) { - LLMultiFloater* hostp = getHost(); - if( !getVisible() && hostp && log_to_file) - { - // Only flash for logged ("real") messages - LLTabContainer* parent = (LLTabContainer*) getParent(); - parent->setTabPanelFlashing( this, TRUE ); - } - // Now we're adding the actual line of text, so erase the // "Foo is typing..." text segment, and the optional timestamp // if it was present. JC @@ -1330,6 +1492,11 @@ void LLFloaterIMPanel::addHistoryLine(const std::string &utf8msg, const LLColor4 LLLogChat::saveHistory(getTitle(),histstr); } + + if (!isInVisibleChain()) + { + mNumUnreadMessages++; + } } @@ -1340,10 +1507,7 @@ void LLFloaterIMPanel::setVisible(BOOL b) LLMultiFloater* hostp = getHost(); if( b && hostp ) { - LLTabContainer* parent = (LLTabContainer*) getParent(); - - // When this tab is displayed, you can stop flashing. - parent->setTabPanelFlashing( this, FALSE ); + hostp->setFloaterFlashing(this, FALSE); /* Don't change containing floater title - leave it "Instant Message" JC LLUIString title = sTitleString; @@ -1392,7 +1556,7 @@ BOOL LLFloaterIMPanel::handleKeyHere( KEY key, MASK mask, BOOL called_from_paren else if ( KEY_ESCAPE == key ) { handled = TRUE; - gFocusMgr.setKeyboardFocus(NULL, NULL); + gFocusMgr.setKeyboardFocus(NULL); // Close talk panel with escape if( !gSavedSettings.getBOOL("PinTalkViewOpen") ) @@ -1573,14 +1737,14 @@ void LLFloaterIMPanel::onCommitChat(LLUICtrl* caller, void* userdata) } // static -void LLFloaterIMPanel::onInputEditorFocusReceived( LLUICtrl* caller, void* userdata ) +void LLFloaterIMPanel::onInputEditorFocusReceived( LLFocusableElement* caller, void* userdata ) { LLFloaterIMPanel* self= (LLFloaterIMPanel*) userdata; self->mHistoryEditor->setCursorAndScrollToEnd(); } // static -void LLFloaterIMPanel::onInputEditorFocusLost(LLUICtrl* caller, void* userdata) +void LLFloaterIMPanel::onInputEditorFocusLost(LLFocusableElement* caller, void* userdata) { LLFloaterIMPanel* self = (LLFloaterIMPanel*) userdata; self->setTyping(FALSE); @@ -1628,6 +1792,14 @@ void LLFloaterIMPanel::onClose(bool app_quitting) destroy(); } +void LLFloaterIMPanel::onVisibilityChange(BOOL new_visibility) +{ + if (new_visibility) + { + mNumUnreadMessages = 0; + } +} + void deliver_message(const std::string& utf8_text, const LLUUID& im_session_id, const LLUUID& other_participant_id, @@ -1739,19 +1911,37 @@ void LLFloaterIMPanel::sendMsg() mSentTypingState = TRUE; } -void LLFloaterIMPanel::updateSpeakersList(LLSD speaker_updates) -{ - mSpeakers->processSpeakerListUpdate(speaker_updates); +void LLFloaterIMPanel::updateSpeakersList(const LLSD& speaker_updates) +{ + mSpeakers->updateSpeakers(speaker_updates); } -void LLFloaterIMPanel::setSpeakersListFromMap(LLSD speaker_map) +void LLFloaterIMPanel::processSessionUpdate(const LLSD& session_update) { - mSpeakers->processSpeakerMap(speaker_map); + if ( + session_update.has("moderated_mode") && + session_update["moderated_mode"].has("voice") ) + { + BOOL voice_moderated = session_update["moderated_mode"]["voice"]; + + if (voice_moderated) + { + setTitle(mSessionLabel + LLString(" ") + getFormattedUIString("moderated_chat_label")); + } + else + { + setTitle(mSessionLabel); + } + + + //update the speakers dropdown too + mSpeakerPanel->setVoiceModerationCtrlMode(voice_moderated); + } } -void LLFloaterIMPanel::setSpeakersList(LLSD speaker_list) +void LLFloaterIMPanel::setSpeakers(const LLSD& speaker_list) { - mSpeakers->processSpeakerList(speaker_list); + mSpeakers->setSpeakers(speaker_list); } void LLFloaterIMPanel::sessionInitReplyReceived(const LLUUID& session_id) @@ -1897,5 +2087,83 @@ void LLFloaterIMPanel::chatFromLogFile(LLString line, void* userdata) //self->addHistoryLine(line, LLColor4::grey, FALSE); self->mHistoryEditor->appendColoredText(line, false, true, LLColor4::grey); +} + +void LLFloaterIMPanel::showSessionStartError( + const std::string& error_string) +{ + //the error strings etc. should be really be static and local + //to this file instead of in the LLFloaterIM + //but they were in llimview.cpp first and unfortunately + //some translations into non English languages already occurred + //thus making it a tad harder to change over to a + //"correct" solution. The best solution + //would be to store all of the misc. strings into + //their own XML file which would be read in by any LLIMPanel + //post build function instead of repeating the same info + //in the group, adhoc and normal IM xml files. + LLString::format_map_t args; + args["[REASON]"] = + LLFloaterIM::sErrorStringsMap[error_string]; + args["[RECIPIENT]"] = getTitle(); + + gViewerWindow->alertXml( + "ChatterBoxSessionStartError", + args, + onConfirmForceCloseError, + new LLUUID(mSessionUUID)); +} + +void LLFloaterIMPanel::showSessionEventError( + const std::string& event_string, + const std::string& error_string) +{ + LLString::format_map_t args; + args["[REASON]"] = + LLFloaterIM::sErrorStringsMap[error_string]; + args["[EVENT]"] = + LLFloaterIM::sEventStringsMap[event_string]; + args["[RECIPIENT]"] = getTitle(); + + gViewerWindow->alertXml( + "ChatterBoxSessionEventError", + args); +} + +void LLFloaterIMPanel::showSessionForceClose( + const std::string& reason_string) +{ + LLString::format_map_t args; + + args["[NAME]"] = getTitle(); + args["[REASON]"] = LLFloaterIM::sForceCloseSessionMap[reason_string]; + + gViewerWindow->alertXml( + "ForceCloseChatterBoxSession", + args, + LLFloaterIMPanel::onConfirmForceCloseError, + this); } + +//static +void LLFloaterIMPanel::onKickSpeaker(void* user_data) +{ + +} + +void LLFloaterIMPanel::onConfirmForceCloseError(S32 option, void* data) +{ + //only 1 option really + LLUUID session_id = *((LLUUID*) data); + + if ( gIMMgr ) + { + LLFloaterIMPanel* floaterp = gIMMgr->findFloaterBySession( + session_id); + + if ( floaterp ) floaterp->close(FALSE); + } +} + + diff --git a/linden/indra/newview/llimpanel.h b/linden/indra/newview/llimpanel.h index 7779344..daa6820 100644 --- a/linden/indra/newview/llimpanel.h +++ b/linden/indra/newview/llimpanel.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -74,14 +74,20 @@ public: virtual void getChannelInfo(); virtual BOOL isActive(); virtual BOOL callStarted(); + + const LLUUID getSessionID() { return mSessionID; } EState getState() { return mState; } void updateSessionID(const LLUUID& new_session_id); + const LLString::format_map_t& getNotifyArgs() { return mNotifyArgs; } static LLVoiceChannel* getChannelByID(const LLUUID& session_id); static LLVoiceChannel* getChannelByURI(LLString uri); static LLVoiceChannel* getCurrentVoiceChannel() { return sCurrentVoiceChannel; } static void initClass(); + + static void suspend(); + static void resume(); protected: virtual void setState(EState state); @@ -103,13 +109,14 @@ protected: static voice_channel_map_uri_t sVoiceChannelURIMap; static LLVoiceChannel* sCurrentVoiceChannel; + static LLVoiceChannel* sSuspendedVoiceChannel; + static BOOL sSuspended; }; class LLVoiceChannelGroup : public LLVoiceChannel { public: LLVoiceChannelGroup(const LLUUID& session_id, const LLString& session_name); - virtual ~LLVoiceChannelGroup(); /*virtual*/ void handleStatusChange(EStatusType status); /*virtual*/ void handleError(EStatusType status); @@ -132,8 +139,7 @@ class LLVoiceChannelProximal : public LLVoiceChannel, public LLSingleton& ids, @@ -189,8 +194,8 @@ public: // Check typing timeout timer. /*virtual*/ void draw(); - /*virtual*/ void onClose(bool app_quitting = FALSE); + /*virtual*/ void onVisibilityChange(BOOL new_visibility); // add target ids to the session. // Return TRUE if successful, otherwise FALSE. @@ -209,14 +214,16 @@ public: void selectNone(); void setVisible(BOOL b); + S32 getNumUnreadMessages() { return mNumUnreadMessages; } + BOOL handleKeyHere(KEY key, MASK mask, BOOL called_from_parent); BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop, EDragAndDropType cargo_type, void *cargo_data, EAcceptance *accept, LLString& tooltip_msg); - static void onInputEditorFocusReceived( LLUICtrl* caller, void* userdata ); - static void onInputEditorFocusLost(LLUICtrl* caller, void* userdata); + static void onInputEditorFocusReceived( LLFocusableElement* caller, void* userdata ); + static void onInputEditorFocusLost(LLFocusableElement* caller, void* userdata); static void onInputEditorKeystroke(LLLineEditor* caller, void* userdata); static void onCommitChat(LLUICtrl* caller, void* userdata); static void onTabClick( void* userdata ); @@ -229,16 +236,17 @@ public: static void onClickSend( void* userdata ); static void onClickToggleActiveSpeakers( void* userdata ); static void* createSpeakersPanel(void* data); + static void onKickSpeaker(void* user_data); //callbacks for P2P muting and volume control - static void onClickMuteVoice(LLUICtrl* source, void* user_data); + static void onClickMuteVoice(void* user_data); static void onVolumeChange(LLUICtrl* source, void* user_data); const LLUUID& getSessionID() const { return mSessionUUID; } const LLUUID& getOtherParticipantID() const { return mOtherParticipantUUID; } - void updateSpeakersList(LLSD speaker_updates); - void setSpeakersListFromMap(LLSD speaker_list); - void setSpeakersList(LLSD speaker_list); + void updateSpeakersList(const LLSD& speaker_updates); + void processSessionUpdate(const LLSD& update); + void setSpeakers(const LLSD& speaker_list); LLVoiceChannel* getVoiceChannel() { return mVoiceChannel; } EInstantMessage getDialogType() const { return mDialog; } @@ -250,6 +258,15 @@ public: void processIMTyping(const LLIMInfo* im_info, BOOL typing); static void chatFromLogFile(LLString line, void* userdata); + //show error statuses to the user + void showSessionStartError(const std::string& error_string); + void showSessionEventError( + const std::string& event_string, + const std::string& error_string); + void showSessionForceClose(const std::string& reason); + + static void onConfirmForceCloseError(S32 option, void* data); + private: // called by constructors void init(const LLString& session_label); @@ -289,6 +306,7 @@ private: // 911 ==> Gaurdian_Angel_Group_ID ^ gAgent.getID() LLUUID mSessionUUID; + LLString mSessionLabel; LLVoiceChannel* mVoiceChannel; BOOL mSessionInitialized; @@ -318,6 +336,8 @@ private: // Where does the "Starting session..." line start? S32 mSessionStartMsgPos; + S32 mNumUnreadMessages; + BOOL mSentTypingState; BOOL mShowSpeakersOnConnect; diff --git a/linden/indra/newview/llimview.cpp b/linden/indra/newview/llimview.cpp index 468c75e..2f9c1eb 100644 --- a/linden/indra/newview/llimview.cpp +++ b/linden/indra/newview/llimview.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -46,7 +46,6 @@ #include "llagent.h" #include "llcallingcard.h" #include "llchat.h" -#include "llviewerwindow.h" #include "llresmgr.h" #include "llfloaterchat.h" #include "llfloaterchatterbox.h" @@ -65,6 +64,7 @@ #include "llcallingcard.h" #include "lltoolbar.h" #include "llviewermessage.h" +#include "llviewerwindow.h" #include "llnotify.h" #include "llviewerregion.h" @@ -84,11 +84,12 @@ LLIMMgr* gIMMgr = NULL; //*FIXME: make these all either UIStrings or Strings static LLString sOnlyUserMessage; static LLUIString sOfflineMessage; - -static std::map sEventStringsMap; -static std::map sErrorStringsMap; -static std::map sForceCloseSessionMap; static LLUIString sInviteMessage; + +std::map LLFloaterIM::sEventStringsMap; +std::map LLFloaterIM::sErrorStringsMap; +std::map LLFloaterIM::sForceCloseSessionMap; + // // Helper Functions // @@ -160,22 +161,82 @@ BOOL LLFloaterIM::postBuild() sOnlyUserMessage = getFormattedUIString("only_user_message"); sOfflineMessage = getUIString("offline_message"); - sErrorStringsMap["generic"] = - getFormattedUIString("generic_request_error"); - sErrorStringsMap["unverified"] = - getFormattedUIString("insufficient_perms_error"); - sErrorStringsMap["no_user_911"] = - getFormattedUIString("user_no_help"); + sInviteMessage = getUIString("invite_message"); + + if ( sErrorStringsMap.find("generic") == sErrorStringsMap.end() ) + { + sErrorStringsMap["generic"] = + getFormattedUIString("generic_request_error"); + } + + if ( sErrorStringsMap.find("unverified") == + sErrorStringsMap.end() ) + { + sErrorStringsMap["unverified"] = + getFormattedUIString("insufficient_perms_error"); + } + + if ( sErrorStringsMap.end() == + sErrorStringsMap.find("no_ability") ) + { + sErrorStringsMap["no_ability"] = + getFormattedUIString("no_ability_error"); + } - sEventStringsMap["add"] = - getFormattedUIString("add_session_event"); - sEventStringsMap["message"] = - getFormattedUIString("message_session_event"); + if ( sErrorStringsMap.end() == + sErrorStringsMap.find("muted") ) + { + sErrorStringsMap["muted"] = + getFormattedUIString("muted_error"); + } - sForceCloseSessionMap["removed"] = - getFormattedUIString("removed_from_group"); + if ( sErrorStringsMap.end() == + sErrorStringsMap.find("not_a_moderator") ) + { + sErrorStringsMap["not_a_moderator"] = + getFormattedUIString("not_a_mod_error"); + } + + if ( sErrorStringsMap.end() == + sErrorStringsMap.find("does not exist") ) + { + sErrorStringsMap["does not exist"] = + getFormattedUIString("session_does_not_exist_error"); + } + + if ( sEventStringsMap.end() == sEventStringsMap.find("add") ) + { + sEventStringsMap["add"] = + getFormattedUIString("add_session_event"); + } + + if ( sEventStringsMap.end() == sEventStringsMap.find("message") ) + { + sEventStringsMap["message"] = + getFormattedUIString("message_session_event"); + } + + + if ( sEventStringsMap.end() == sEventStringsMap.find("mute") ) + { + sEventStringsMap["mute"] = getFormattedUIString( + "mute_agent_event"); + } + + if ( sForceCloseSessionMap.end() == + sForceCloseSessionMap.find("removed") ) + { + sForceCloseSessionMap["removed"] = + getFormattedUIString("removed_from_group"); + } + + if ( sForceCloseSessionMap.end() == + sForceCloseSessionMap.find("no ability") ) + { + sForceCloseSessionMap["no ability"] = + getFormattedUIString("close_on_no_ability"); + } - sInviteMessage = getUIString("invite_message"); return TRUE; } @@ -205,21 +266,31 @@ protected: class LLIMMgr::LLIMSessionInvite { public: - LLIMSessionInvite(const LLUUID& session_id, const LLString& session_name, const LLUUID& caller_id,const LLString& caller_name, EInstantMessage type, const LLString& session_handle, const LLString& notify_box) : - mSessionID(session_id), - mSessionName(session_name), - mCallerID(caller_id), - mCallerName(caller_name), - mType(type), - mSessionHandle(session_handle), - mNotifyBox(notify_box) - {}; + LLIMSessionInvite( + const LLUUID& session_id, + const LLString& session_name, + const LLUUID& caller_id, + const LLString& caller_name, + EInstantMessage type, + EInvitationType inv_type, + const LLString& session_handle, + const LLString& notify_box) : + mSessionID(session_id), + mSessionName(session_name), + mCallerID(caller_id), + mCallerName(caller_name), + mType(type), + mInvType(inv_type), + mSessionHandle(session_handle), + mNotifyBox(notify_box) + {}; LLUUID mSessionID; LLString mSessionName; LLUUID mCallerID; LLString mCallerName; EInstantMessage mType; + EInvitationType mInvType; LLString mSessionHandle; LLString mNotifyBox; }; @@ -309,7 +380,7 @@ LLIMMgr::LLIMMgr() : LLFloaterIM* dummy_floater = new LLFloaterIM(); delete dummy_floater; - mPendingVoiceInvitations = LLSD::emptyMap(); + mPendingInvitations = LLSD::emptyMap(); mPendingAgentListUpdates = LLSD::emptyMap(); } @@ -413,7 +484,6 @@ void LLIMMgr::addMessage( if ( is_from_system ) // chat came from system { floater->addHistoryLine( - other_participant_id, msg, gSavedSettings.getColor4("SystemChatColor")); } @@ -521,9 +591,10 @@ LLUUID LLIMMgr::addP2PSession(const std::string& name, // the session, dialog specifies the type of session. If the session // exists, it is brought forward. Specifying id = NULL results in an // im session to everyone. Returns the uuid of the session. -LLUUID LLIMMgr::addSession(const std::string& name, - EInstantMessage dialog, - const LLUUID& other_participant_id) +LLUUID LLIMMgr::addSession( + const std::string& name, + EInstantMessage dialog, + const LLUUID& other_participant_id) { LLUUID session_id = computeSessionID(dialog, other_participant_id); @@ -533,15 +604,16 @@ LLUUID LLIMMgr::addSession(const std::string& name, LLDynamicArray ids; ids.put(other_participant_id); - floater = createFloater(session_id, - other_participant_id, - name, - ids, - dialog, - TRUE); + floater = createFloater( + session_id, + other_participant_id, + name, + ids, + dialog, + TRUE); noteOfflineUsers(floater, ids); - LLFloaterChatterBox::getInstance(LLSD())->showFloater(floater); + LLFloaterChatterBox::showInstance(session_id); } else { @@ -554,36 +626,43 @@ LLUUID LLIMMgr::addSession(const std::string& name, // Adds a session using the given session_id. If the session already exists // the dialog type is assumed correct. Returns the uuid of the session. -LLUUID LLIMMgr::addSession(const std::string& name, - EInstantMessage dialog, - const LLUUID& other_participant_id, - const LLDynamicArray& ids) +LLUUID LLIMMgr::addSession( + const std::string& name, + EInstantMessage dialog, + const LLUUID& other_participant_id, + const LLDynamicArray& ids) { if (0 == ids.getLength()) { return LLUUID::null; } - LLUUID session_id = computeSessionID(dialog, - other_participant_id); + LLUUID session_id = computeSessionID( + dialog, + other_participant_id); LLFloaterIMPanel* floater = findFloaterBySession(session_id); if(!floater) { // On creation, use the first element of ids as the // "other_participant_id" - floater = createFloater(session_id, - other_participant_id, - name, - ids, - dialog, - TRUE); + floater = createFloater( + session_id, + other_participant_id, + name, + ids, + dialog, + TRUE); if ( !floater ) return LLUUID::null; noteOfflineUsers(floater, ids); + LLFloaterChatterBox::showInstance(session_id); + } + else + { + floater->open(); } - LLFloaterChatterBox::getInstance(LLSD())->showFloater(floater); //mTabContainer->selectTabPanel(panel); floater->setInputFocus(TRUE); return floater->getSessionID(); @@ -599,6 +678,9 @@ void LLIMMgr::removeSession(const LLUUID& session_id) mFloaters.erase(floater->getHandle()); LLFloaterChatterBox::getInstance(LLSD())->removeFloater(floater); //mTabContainer->removeTabPanel(floater); + + clearPendingInviation(session_id); + clearPendingAgentListUpdates(session_id); } } @@ -608,9 +690,10 @@ void LLIMMgr::inviteToSession( const LLUUID& caller_id, const LLString& caller_name, EInstantMessage type, + EInvitationType inv_type, const LLString& session_handle) { - //ignore voice invites from voice-muted residents + //ignore invites from muted residents if (gMuteListp->isMuted(caller_id)) { return; @@ -621,17 +704,26 @@ void LLIMMgr::inviteToSession( BOOL ad_hoc_invite = FALSE; if(type == IM_SESSION_P2P_INVITE) { + //P2P is different...they only have voice invitations notify_box_type = "VoiceInviteP2P"; } - else if (gAgent.isInGroup(session_id)) + else if ( gAgent.isInGroup(session_id) ) { + //only really old school groups have voice invitations notify_box_type = "VoiceInviteGroup"; } - else + else if ( inv_type == INVITATION_TYPE_VOICE ) { + //else it's an ad-hoc + //and a voice ad-hoc notify_box_type = "VoiceInviteAdHoc"; ad_hoc_invite = TRUE; } + else if ( inv_type == INVITATION_TYPE_IMMEDIATE ) + { + notify_box_type = "InviteAdHoc"; + ad_hoc_invite = TRUE; + } LLIMSessionInvite* invite = new LLIMSessionInvite( session_id, @@ -639,6 +731,7 @@ void LLIMMgr::inviteToSession( caller_id, caller_name, type, + inv_type, session_handle, notify_box_type); @@ -666,7 +759,7 @@ void LLIMMgr::inviteToSession( } } - if ( !mPendingVoiceInvitations.has(session_id.asString()) ) + if ( !mPendingInvitations.has(session_id.asString()) ) { if (caller_name.empty()) { @@ -684,7 +777,7 @@ void LLIMMgr::inviteToSession( (void*)invite); } - mPendingVoiceInvitations[session_id.asString()] = LLSD(); + mPendingInvitations[session_id.asString()] = LLSD(); } } @@ -699,10 +792,11 @@ void LLIMMgr::onInviteNameLookup(const LLUUID& id, const char* first, const char LLString::format_map_t args; args["[NAME]"] = invite->mCallerName; - LLNotifyBox::showXml(invite->mNotifyBox, - args, - inviteUserResponse, - (void*)invite); + LLNotifyBox::showXml( + invite->mNotifyBox, + args, + inviteUserResponse, + (void*)invite); } class LLViewerChatterBoxInvitationAcceptResponder : @@ -711,10 +805,10 @@ class LLViewerChatterBoxInvitationAcceptResponder : public: LLViewerChatterBoxInvitationAcceptResponder( const LLUUID& session_id, - bool is_voice_invitation) + LLIMMgr::EInvitationType invitation_type) { mSessionID = session_id; - mIsVoiceInvitiation = is_voice_invitation; + mInvitiationType = invitation_type; } void result(const LLSD& content) @@ -738,48 +832,66 @@ public: //but unfortunately, our base that we are receiving here //may not be the most up to date. It was accurate at //some point in time though. - floaterp->setSpeakersList(content["agents"]); + floaterp->setSpeakers(content); //we now have our base of users in the session //that was accurate at some point, but maybe not now //so now we apply all of the udpates we've received //in case of race conditions - - //reapplying a user entrance will do nothing - //reapplying a user leaving will not have the user - //in our base. So it's all good floaterp->updateSpeakersList( gIMMgr->getPendingAgentListUpdates(mSessionID)); - if ( mIsVoiceInvitiation ) + if ( mInvitiationType == LLIMMgr::INVITATION_TYPE_VOICE ) { floaterp->requestAutoConnect(); LLFloaterIMPanel::onClickStartCall(floaterp); // always open IM window when connecting to voice LLFloaterChatterBox::showInstance(TRUE); } + else if ( mInvitiationType == LLIMMgr::INVITATION_TYPE_IMMEDIATE ) + { + LLFloaterChatterBox::showInstance(TRUE); + } } gIMMgr->clearPendingAgentListUpdates(mSessionID); - if ( mIsVoiceInvitiation ) - { - gIMMgr->clearPendingVoiceInviation(mSessionID); - } + gIMMgr->clearPendingInviation(mSessionID); } } void error(U32 statusNum, const std::string& reason) - { + { //throw something back to the viewer here? - if ( gIMMgr && mIsVoiceInvitiation ) + if ( gIMMgr ) { - gIMMgr->clearPendingVoiceInviation(mSessionID); + gIMMgr->clearPendingAgentListUpdates(mSessionID); + gIMMgr->clearPendingInviation(mSessionID); + + LLFloaterIMPanel* floaterp = + gIMMgr->findFloaterBySession(mSessionID); + + if ( floaterp ) + { + std::string error_string; + + if ( 404 == statusNum ) + { + error_string = "does not exist"; + } + else + { + error_string = "generic"; + } + + floaterp->showSessionStartError( + error_string); + } } } private: LLUUID mSessionID; - bool mIsVoiceInvitiation; + LLIMMgr::EInvitationType mInvitiationType; }; //static @@ -807,10 +919,11 @@ void LLIMMgr::inviteUserResponse(S32 option, void* user_data) im_floater->requestAutoConnect(); LLFloaterIMPanel::onClickStartCall(im_floater); // always open IM window when connecting to voice - LLFloaterChatterBox::showInstance(TRUE); + LLFloaterChatterBox::showInstance(invitep->mSessionID); } - - gIMMgr->clearPendingVoiceInviation(invitep->mSessionID); + + gIMMgr->clearPendingAgentListUpdates(invitep->mSessionID); + gIMMgr->clearPendingInviation(invitep->mSessionID); } else { @@ -830,34 +943,50 @@ void LLIMMgr::inviteUserResponse(S32 option, void* user_data) data, new LLViewerChatterBoxInvitationAcceptResponder( invitep->mSessionID, - true)); + invitep->mInvType)); } } break; case 2: // mute (also implies ignore, so this falls through to the "ignore" case below) + { + // mute the sender of this invite + if (!gMuteListp->isMuted(invitep->mCallerID)) { - // mute the sender of this invite - if (!gMuteListp->isMuted(invitep->mCallerID)) - { - LLMute mute(invitep->mCallerID, invitep->mCallerName, LLMute::AGENT); - gMuteListp->add(mute); - } + LLMute mute(invitep->mCallerID, invitep->mCallerName, LLMute::AGENT); + gMuteListp->add(mute); } + } /* FALLTHROUGH */ - case 1: // ignore + case 1: // decline + { + if (invitep->mType == IM_SESSION_P2P_INVITE) { - if (invitep->mType == IM_SESSION_P2P_INVITE) + if(gVoiceClient) { - if(gVoiceClient) - { - gVoiceClient->declineInvite(invitep->mSessionHandle); - } + gVoiceClient->declineInvite(invitep->mSessionHandle); } } - break; + else + { + std::string url = gAgent.getRegion()->getCapability( + "ChatSessionRequest"); + + LLSD data; + data["method"] = "decline invitation"; + data["session-id"] = invitep->mSessionID; + LLHTTPClient::post( + url, + data, + NULL); + } } + gIMMgr->clearPendingAgentListUpdates(invitep->mSessionID); + gIMMgr->clearPendingInviation(invitep->mSessionID); + break; + } + delete invitep; } @@ -869,11 +998,11 @@ void LLIMMgr::setFloaterOpen(BOOL set_open) { if (set_open) { - LLFloaterChatterBox::showInstance(LLSD()); + LLFloaterChatterBox::showInstance(); } else { - LLFloaterChatterBox::hideInstance(LLSD()); + LLFloaterChatterBox::hideInstance(); } } @@ -932,11 +1061,11 @@ BOOL LLIMMgr::hasSession(const LLUUID& session_id) return (findFloaterBySession(session_id) != NULL); } -void LLIMMgr::clearPendingVoiceInviation(const LLUUID& session_id) +void LLIMMgr::clearPendingInviation(const LLUUID& session_id) { - if ( mPendingVoiceInvitations.has(session_id.asString()) ) + if ( mPendingInvitations.has(session_id.asString()) ) { - mPendingVoiceInvitations.erase(session_id.asString()); + mPendingInvitations.erase(session_id.asString()); } } @@ -958,13 +1087,57 @@ void LLIMMgr::addPendingAgentListUpdates( { LLSD::map_const_iterator iter; - for ( iter = updates.beginMap(); - iter != updates.endMap(); - iter++) + if ( !mPendingAgentListUpdates.has(session_id.asString()) ) + { + //this is a new agent list update for this session + mPendingAgentListUpdates[session_id.asString()] = LLSD::emptyMap(); + } + + if ( + updates.has("agent_updates") && + updates["agent_updates"].isMap() && + updates.has("updates") && + updates["updates"].isMap() ) + { + //new school update + LLSD update_types = LLSD::emptyArray(); + LLSD::array_iterator array_iter; + + update_types.append("agent_updates"); + update_types.append("updates"); + + for ( + array_iter = update_types.beginArray(); + array_iter != update_types.endArray(); + ++array_iter) + { + //we only want to include the last update for a given agent + for ( + iter = updates[array_iter->asString()].beginMap(); + iter != updates[array_iter->asString()].endMap(); + ++iter) + { + mPendingAgentListUpdates[session_id.asString()][array_iter->asString()][iter->first] = + iter->second; + } + } + } + else if ( + updates.has("updates") && + updates["updates"].isMap() ) { - //we only want to include the last update for a given agent - mPendingAgentListUpdates[session_id.asString()][iter->first] = - iter->second; + //old school update where the SD contained just mappings + //of agent_id -> "LEAVE"/"ENTER" + + //only want to keep last update for each agent + for ( + iter = updates["updates"].beginMap(); + iter != updates["updates"].endMap(); + ++iter) + { + mPendingAgentListUpdates[session_id.asString()]["updates"][iter->first] = + iter->second; + } } } @@ -995,8 +1168,6 @@ LLFloaterIMPanel* LLIMMgr::createFloater( llinfos << "LLIMMgr::createFloater: from " << other_participant_id << " in session " << session_id << llendl; LLFloaterIMPanel* floater = new LLFloaterIMPanel(session_label, - LLRect(), - session_label, session_id, other_participant_id, dialog); @@ -1022,8 +1193,6 @@ LLFloaterIMPanel* LLIMMgr::createFloater( llinfos << "LLIMMgr::createFloater: from " << other_participant_id << " in session " << session_id << llendl; LLFloaterIMPanel* floater = new LLFloaterIMPanel(session_label, - LLRect(), - session_label, session_id, other_participant_id, ids, @@ -1034,8 +1203,9 @@ LLFloaterIMPanel* LLIMMgr::createFloater( return floater; } -void LLIMMgr::noteOfflineUsers(LLFloaterIMPanel* floater, - const LLDynamicArray& ids) +void LLIMMgr::noteOfflineUsers( + LLFloaterIMPanel* floater, + const LLDynamicArray& ids) { S32 count = ids.count(); if(count == 0) @@ -1099,14 +1269,6 @@ LLFloaterChatterBox* LLIMMgr::getFloater() return LLFloaterChatterBox::getInstance(LLSD()); } -void onConfirmForceCloseError(S32 option, void* data) -{ - //only 1 option really - LLFloaterIMPanel* floater = ((LLFloaterIMPanel*) data); - - if ( floater ) floater->close(FALSE); -} - class LLViewerChatterBoxSessionStartReply : public LLHTTPNode { public: @@ -1141,7 +1303,16 @@ public: LLFloaterIMPanel* floaterp = gIMMgr->findFloaterBySession(session_id); if (floaterp) { - floaterp->setSpeakersList(body["agents"]); + floaterp->setSpeakers(body); + + //apply updates we've possibly received previously + floaterp->updateSpeakersList( + gIMMgr->getPendingAgentListUpdates(session_id)); + + if ( body.has("session_info") ) + { + floaterp->processSessionUpdate(body["session_info"]); + } //aply updates we've possibly received previously floaterp->updateSpeakersList( @@ -1155,20 +1326,14 @@ public: //floater LLFloaterIMPanel* floater = gIMMgr->findFloaterBySession(temp_session_id); - if (floater) - { - LLString::format_map_t args; - args["[REASON]"] = - sErrorStringsMap[body["error"].asString()]; - args["[RECIPIENT]"] = floater->getTitle(); - - gViewerWindow->alertXml("ChatterBoxSessionStartError", - args, - onConfirmForceCloseError, - floater); + if ( floater ) + { + floater->showSessionStartError(body["error"].asString()); } } + + gIMMgr->clearPendingAgentListUpdates(session_id); } }; @@ -1200,17 +1365,12 @@ public: //throw an error dialog LLFloaterIMPanel* floater = gIMMgr->findFloaterBySession(session_id); + if (floater) { - LLString::format_map_t args; - args["[REASON]"] = - sErrorStringsMap[body["error"].asString()]; - args["[EVENT]"] = - sEventStringsMap[body["event"].asString()]; - args["[RECIPIENT]"] = floater->getTitle(); - - gViewerWindow->alertXml("ChatterBoxSessionEventError", - args); + floater->showSessionEventError( + body["event"].asString(), + body["error"].asString()); } } } @@ -1234,15 +1394,7 @@ public: if ( floater ) { - LLString::format_map_t args; - - args["[NAME]"] = floater->getTitle(); - args["[REASON]"] = sForceCloseSessionMap[reason]; - - gViewerWindow->alertXml("ForceCloseChatterBoxSession", - args, - onConfirmForceCloseError, - floater); + floater->showSessionForceClose(reason); } } }; @@ -1258,7 +1410,8 @@ public: LLFloaterIMPanel* floaterp = gIMMgr->findFloaterBySession(input["body"]["session_id"].asUUID()); if (floaterp) { - floaterp->updateSpeakersList(input["body"]["updates"]); + floaterp->updateSpeakersList( + input["body"]); } else { @@ -1267,11 +1420,28 @@ public: //a start or an acceptance of an invitation. Race condition. gIMMgr->addPendingAgentListUpdates( input["body"]["session_id"].asUUID(), - input["body"]["updates"]); + input["body"]); } } }; +class LLViewerChatterBoxSessionUpdate : public LLHTTPNode +{ +public: + virtual void post( + ResponsePtr responder, + const LLSD& context, + const LLSD& input) const + { + LLFloaterIMPanel* floaterp = gIMMgr->findFloaterBySession(input["body"]["session_id"].asUUID()); + if (floaterp) + { + floaterp->processSessionUpdate(input["body"]["info"]); + } + } +}; + + class LLViewerChatterBoxInvitation : public LLHTTPNode { public: @@ -1281,10 +1451,10 @@ public: const LLSD& context, const LLSD& input) const { + //for backwards compatiblity reasons...we need to still + //check for 'text' or 'voice' invitations...bleh if ( input["body"].has("instantmessage") ) { - LLString capability = input["body"]["capabilities"]["call"].asString(); - LLSD message_params = input["body"]["instantmessage"]["message_params"]; @@ -1392,13 +1562,13 @@ public: { LLSD data; data["method"] = "accept invitation"; - data["session-id"] = input["body"]["session_id"]; + data["session-id"] = session_id; LLHTTPClient::post( url, data, new LLViewerChatterBoxInvitationAcceptResponder( - input["body"]["session_id"], - false)); + session_id, + LLIMMgr::INVITATION_TYPE_INSTANT_MESSAGE)); } } //end if invitation has instant message else if ( input["body"].has("voice") ) @@ -1419,7 +1589,18 @@ public: input["body"]["session_name"].asString(), input["body"]["from_id"].asUUID(), input["body"]["from_name"].asString(), - IM_SESSION_INVITE); + IM_SESSION_INVITE, + LLIMMgr::INVITATION_TYPE_VOICE); + } + else if ( input["body"].has("immediate") ) + { + gIMMgr->inviteToSession( + input["body"]["session_id"].asUUID(), + input["body"]["session_name"].asString(), + input["body"]["from_id"].asUUID(), + input["body"]["from_name"].asString(), + IM_SESSION_INVITE, + LLIMMgr::INVITATION_TYPE_IMMEDIATE); } } }; @@ -1440,6 +1621,10 @@ LLHTTPRegistration gHTTPRegistrationMessageChatterboxsessionagentlistupdates( "/message/ChatterBoxSessionAgentListUpdates"); +LLHTTPRegistration + gHTTPRegistrationMessageChatterBoxSessionUpdate( + "/message/ChatterBoxSessionUpdate"); + LLHTTPRegistration gHTTPRegistrationMessageChatterBoxInvitation( "/message/ChatterBoxInvitation"); diff --git a/linden/indra/newview/llimview.h b/linden/indra/newview/llimview.h index 80aba24..0774698 100644 --- a/linden/indra/newview/llimview.h +++ b/linden/indra/newview/llimview.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -45,6 +45,13 @@ class LLFloaterIM; class LLIMMgr : public LLSingleton { public: + enum EInvitationType + { + INVITATION_TYPE_INSTANT_MESSAGE = 0, + INVITATION_TYPE_VOICE = 1, + INVITATION_TYPE_IMMEDIATE = 2 + }; + LLIMMgr(); virtual ~LLIMMgr(); @@ -96,12 +103,14 @@ public: // deleted. void removeSession(const LLUUID& session_id); - void inviteToSession(const LLUUID& session_id, - const LLString& session_name, - const LLUUID& caller, - const LLString& caller_name, - EInstantMessage type, - const LLString& session_handle = LLString::null); + void inviteToSession( + const LLUUID& session_id, + const LLString& session_name, + const LLUUID& caller, + const LLString& caller_name, + EInstantMessage type, + EInvitationType inv_type, + const LLString& session_handle = LLString::null); //Updates a given session's session IDs. Does not open, //create or do anything new. If the old session doesn't @@ -147,7 +156,7 @@ public: static LLUUID computeSessionID(EInstantMessage dialog, const LLUUID& other_participant_id); - void clearPendingVoiceInviation(const LLUUID& session_id); + void clearPendingInviation(const LLUUID& session_id); LLSD getPendingAgentListUpdates(const LLUUID& session_id); void addPendingAgentListUpdates( @@ -155,6 +164,9 @@ public: const LLSD& updates); void clearPendingAgentListUpdates(const LLUUID& session_id); + //HACK: need a better way of enumerating existing session, or listening to session create/destroy events + const std::set& getIMFloaterHandles() { return mFloaters; } + private: class LLIMSessionInvite; @@ -193,7 +205,7 @@ private: // An IM has been received that you haven't seen yet. BOOL mIMReceived; - LLSD mPendingVoiceInvitations; + LLSD mPendingInvitations; LLSD mPendingAgentListUpdates; }; @@ -203,6 +215,10 @@ class LLFloaterIM : public LLMultiFloater public: LLFloaterIM(); /*virtual*/ BOOL postBuild(); + + static std::map sEventStringsMap; + static std::map sErrorStringsMap; + static std::map sForceCloseSessionMap; }; // Globals diff --git a/linden/indra/newview/llinventoryactions.cpp b/linden/indra/newview/llinventoryactions.cpp index 4535825..69202cb 100644 --- a/linden/indra/newview/llinventoryactions.cpp +++ b/linden/indra/newview/llinventoryactions.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -620,10 +620,11 @@ class LLBeginIMSession : public inventory_panel_listener_t } - gIMMgr->addSession(name, - type, - members[0], - members); + gIMMgr->addSession( + name, + type, + members[0], + members); return true; } @@ -678,7 +679,7 @@ class LLAttachObject : public inventory_panel_listener_t std::string(), cb); } - gFocusMgr.setKeyboardFocus(NULL, NULL); + gFocusMgr.setKeyboardFocus(NULL); return true; } diff --git a/linden/indra/newview/llinventorybridge.cpp b/linden/indra/newview/llinventorybridge.cpp index b017d57..58b8af2 100644 --- a/linden/indra/newview/llinventorybridge.cpp +++ b/linden/indra/newview/llinventorybridge.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -211,6 +211,45 @@ void LLInvFVBridge::showProperties() void LLInvFVBridge::removeBatch(LLDynamicArray& batch) { + // Deactivate gestures when moving them into Trash + LLInvFVBridge* bridge; + LLInventoryModel* model = mInventoryPanel->getModel(); + LLViewerInventoryItem* item = NULL; + LLViewerInventoryCategory* cat = NULL; + LLInventoryModel::cat_array_t descendent_categories; + LLInventoryModel::item_array_t descendent_items; + S32 count = batch.count(); + S32 i,j; + for(i = 0; i < count; ++i) + { + bridge = (LLInvFVBridge*)(batch.get(i)); + if(!bridge || !bridge->isItemRemovable()) continue; + item = (LLViewerInventoryItem*)model->getItem(bridge->getUUID()); + if (item) + { + if(LLAssetType::AT_GESTURE == item->getType()) + { + gGestureManager.deactivateGesture(item->getUUID()); + } + } + } + for(i = 0; i < count; ++i) + { + bridge = (LLInvFVBridge*)(batch.get(i)); + if(!bridge || !bridge->isItemRemovable()) continue; + cat = (LLViewerInventoryCategory*)model->getCategory(bridge->getUUID()); + if (cat) + { + gInventory.collectDescendents( cat->getUUID(), descendent_categories, descendent_items, FALSE ); + for (j=0; jgetType()) + { + gGestureManager.deactivateGesture(descendent_items[j]->getUUID()); + } + } + } + } removeBatchNoCheck(batch); } @@ -2719,6 +2758,7 @@ void LLCallingCardBridge::buildContextMenu(LLMenuGL& menu, U32 flags) && (LLUUID::null != item->getCreatorUUID()) && (item->getCreatorUUID() != gAgent.getID())); BOOL user_online = (LLAvatarTracker::instance().isBuddyOnline(item->getCreatorUUID())); + items.push_back("Send Instant Message Separator"); items.push_back("Send Instant Message"); items.push_back("Offer Teleport..."); items.push_back("Conference Chat"); @@ -3164,7 +3204,7 @@ void LLObjectBridge::performAction(LLFolderView* folder, LLInventoryModel* model std::string(), cb); } - gFocusMgr.setKeyboardFocus(NULL, NULL); + gFocusMgr.setKeyboardFocus(NULL); } else if ("detach" == action) { @@ -4294,21 +4334,24 @@ void LLWearableBridge::buildContextMenu(LLMenuGL& menu, U32 flags) getClipboardEntries(true, items, disabled_items, flags); items.push_back("Wearable Separator"); + items.push_back("Wearable Wear"); items.push_back("Wearable Edit"); + + if ((flags & FIRST_SELECTED_ITEM) == 0) { disabled_items.push_back("Wearable Edit"); } - /*menu.appendSeparator(); - menu.append(new LLMenuItemCallGL("Wear", - LLWearableBridge::onWearOnAvatar, - LLWearableBridge::canWearOnAvatar, - (void*)this)); - menu.append(new LLMenuItemCallGL("Edit", - LLWearableBridge::onEditOnAvatar, - LLWearableBridge::canEditOnAvatar, - (void*)this));*/ + //menu.appendSeparator(); + //menu.append(new LLMenuItemCallGL("Wear", + // LLWearableBridge::onWearOnAvatar, + // LLWearableBridge::canWearOnAvatar, + // (void*)this)); + //menu.append(new LLMenuItemCallGL("Edit", + // LLWearableBridge::onEditOnAvatar, + // LLWearableBridge::canEditOnAvatar, + // (void*)this)); if( item && (item->getType() == LLAssetType::AT_CLOTHING) ) { diff --git a/linden/indra/newview/llinventorybridge.h b/linden/indra/newview/llinventorybridge.h index 3d1db5a..a008779 100644 --- a/linden/indra/newview/llinventorybridge.h +++ b/linden/indra/newview/llinventorybridge.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llinventoryclipboard.cpp b/linden/indra/newview/llinventoryclipboard.cpp index 9ef4400..ea84fa5 100644 --- a/linden/indra/newview/llinventoryclipboard.cpp +++ b/linden/indra/newview/llinventoryclipboard.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llinventoryclipboard.h b/linden/indra/newview/llinventoryclipboard.h index bd19303..233c84e 100644 --- a/linden/indra/newview/llinventoryclipboard.h +++ b/linden/indra/newview/llinventoryclipboard.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llinventorymodel.cpp b/linden/indra/newview/llinventorymodel.cpp index b4d20a4..9fb5ae9 100644 --- a/linden/indra/newview/llinventorymodel.cpp +++ b/linden/indra/newview/llinventorymodel.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -2606,7 +2606,7 @@ void LLInventoryModel::processBulkUpdateInventory(LLMessageSystem* msg, void**) // } // // // restore keyboard focus - // gFocusMgr.setKeyboardFocus(focus_view, callback); + // gFocusMgr.setKeyboardFocus(focus_view); //} } diff --git a/linden/indra/newview/llinventorymodel.h b/linden/indra/newview/llinventorymodel.h index 8745c6f..7b57787 100644 --- a/linden/indra/newview/llinventorymodel.h +++ b/linden/indra/newview/llinventorymodel.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llinventoryview.cpp b/linden/indra/newview/llinventoryview.cpp index 2f61bc1..c6c8548 100644 --- a/linden/indra/newview/llinventoryview.cpp +++ b/linden/indra/newview/llinventoryview.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -1720,10 +1720,21 @@ void LLInventoryPanel::createNewItem(const char* name, LLAssetType::generateDescriptionFor(asset_type, desc); next_owner_perm = (next_owner_perm) ? next_owner_perm : PERM_MOVE | PERM_TRANSFER; - LLPointer cb = NULL; - create_inventory_item(gAgent.getID(), gAgent.getSessionID(), + + if (inv_type == LLInventoryType::IT_GESTURE) + { + LLPointer cb = new CreateGestureCallback(); + create_inventory_item(gAgent.getID(), gAgent.getSessionID(), + parent_id, LLTransactionID::tnull, name, desc, asset_type, inv_type, + NOT_WEARABLE, next_owner_perm, cb); + } + else + { + LLPointer cb = NULL; + create_inventory_item(gAgent.getID(), gAgent.getSessionID(), parent_id, LLTransactionID::tnull, name, desc, asset_type, inv_type, NOT_WEARABLE, next_owner_perm, cb); + } } diff --git a/linden/indra/newview/llinventoryview.h b/linden/indra/newview/llinventoryview.h index b3cd6fd..e8f3076 100644 --- a/linden/indra/newview/llinventoryview.h +++ b/linden/indra/newview/llinventoryview.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lljoystickbutton.cpp b/linden/indra/newview/lljoystickbutton.cpp index a9f7a9e..dddbea8 100644 --- a/linden/indra/newview/lljoystickbutton.cpp +++ b/linden/indra/newview/lljoystickbutton.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -607,26 +607,26 @@ void LLJoystickCameraRotate::draw() { LLGLSUIDefault gls_ui; - gl_draw_image( 0, 0, mImageUnselected ); + mImageUnselected->draw( 0, 0 ); if( mInTop ) { - drawRotatedImage( mImageSelected, 0 ); + drawRotatedImage( mImageSelected->getImage(), 0 ); } if( mInRight ) { - drawRotatedImage( mImageSelected, 1 ); + drawRotatedImage( mImageSelected->getImage(), 1 ); } if( mInBottom ) { - drawRotatedImage( mImageSelected, 2 ); + drawRotatedImage( mImageSelected->getImage(), 2 ); } if( mInLeft ) { - drawRotatedImage( mImageSelected, 3 ); + drawRotatedImage( mImageSelected->getImage(), 3 ); } if (sDebugRects) @@ -801,7 +801,7 @@ void LLJoystickCameraZoom::draw() } else { - gl_draw_image( 0, 0, mImageUnselected ); + mImageUnselected->draw( 0, 0 ); } if (sDebugRects) diff --git a/linden/indra/newview/lljoystickbutton.h b/linden/indra/newview/lljoystickbutton.h index 27a812a..adba271 100644 --- a/linden/indra/newview/lljoystickbutton.h +++ b/linden/indra/newview/lljoystickbutton.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lllandmarklist.cpp b/linden/indra/newview/lllandmarklist.cpp index 42e05e4..1c0b874 100644 --- a/linden/indra/newview/lllandmarklist.cpp +++ b/linden/indra/newview/lllandmarklist.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lllandmarklist.h b/linden/indra/newview/lllandmarklist.h index 8b8738b..879ffec 100644 --- a/linden/indra/newview/lllandmarklist.h +++ b/linden/indra/newview/lllandmarklist.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lllcd.cpp b/linden/indra/newview/lllcd.cpp index 3563027..3d26824 100644 --- a/linden/indra/newview/lllcd.cpp +++ b/linden/indra/newview/lllcd.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lllcd.h b/linden/indra/newview/lllcd.h index 157ea8d..2e5f7d5 100644 --- a/linden/indra/newview/lllcd.h +++ b/linden/indra/newview/lllcd.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lllightconstants.h b/linden/indra/newview/lllightconstants.h index 44878e6..cce014a 100644 --- a/linden/indra/newview/lllightconstants.h +++ b/linden/indra/newview/lllightconstants.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lllocalanimationobject.cpp b/linden/indra/newview/lllocalanimationobject.cpp index 6b07714..117736b 100644 --- a/linden/indra/newview/lllocalanimationobject.cpp +++ b/linden/indra/newview/lllocalanimationobject.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lllocalanimationobject.h b/linden/indra/newview/lllocalanimationobject.h index ebb6418..6bea2bb 100644 --- a/linden/indra/newview/lllocalanimationobject.h +++ b/linden/indra/newview/lllocalanimationobject.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lllogchat.cpp b/linden/indra/newview/lllogchat.cpp index d690199..b0f3f42 100644 --- a/linden/indra/newview/lllogchat.cpp +++ b/linden/indra/newview/lllogchat.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lllogchat.h b/linden/indra/newview/lllogchat.h index 004b7c6..c2d16dc 100644 --- a/linden/indra/newview/lllogchat.h +++ b/linden/indra/newview/lllogchat.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llmanip.cpp b/linden/indra/newview/llmanip.cpp index 3691e9b..2cf450d 100644 --- a/linden/indra/newview/llmanip.cpp +++ b/linden/indra/newview/llmanip.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llmanip.h b/linden/indra/newview/llmanip.h index e2142f5..2053bc7 100644 --- a/linden/indra/newview/llmanip.h +++ b/linden/indra/newview/llmanip.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llmaniprotate.cpp b/linden/indra/newview/llmaniprotate.cpp index 8892630..66f21d7 100644 --- a/linden/indra/newview/llmaniprotate.cpp +++ b/linden/indra/newview/llmaniprotate.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llmaniprotate.h b/linden/indra/newview/llmaniprotate.h index 7ca1167..5e7aa6d 100644 --- a/linden/indra/newview/llmaniprotate.h +++ b/linden/indra/newview/llmaniprotate.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llmanipscale.cpp b/linden/indra/newview/llmanipscale.cpp index cf0acb7..74137f8 100644 --- a/linden/indra/newview/llmanipscale.cpp +++ b/linden/indra/newview/llmanipscale.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llmanipscale.h b/linden/indra/newview/llmanipscale.h index b916245..ebc8eda 100644 --- a/linden/indra/newview/llmanipscale.h +++ b/linden/indra/newview/llmanipscale.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llmaniptranslate.cpp b/linden/indra/newview/llmaniptranslate.cpp index 8313894..2642f95 100644 --- a/linden/indra/newview/llmaniptranslate.cpp +++ b/linden/indra/newview/llmaniptranslate.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -2132,15 +2132,12 @@ void LLManipTranslate::renderTranslationHandles() LLVector3 arrow_axis; getManipAxis(first_object, which_arrow[face], arrow_axis); - if (fabs(angle_between(camera_axis, arrow_axis) - F_PI_BY_TWO) < F_PI_BY_TWO - HANDLE_HIDE_ANGLE) - { - renderArrow(which_arrow[face], - mManipPart, - (face >= 3) ? -mConeSize : mConeSize, - (face >= 3) ? -mArrowLengthMeters : mArrowLengthMeters, - mConeSize, - FALSE); - } + renderArrow(which_arrow[face], + mManipPart, + (face >= 3) ? -mConeSize : mConeSize, + (face >= 3) ? -mArrowLengthMeters : mArrowLengthMeters, + mConeSize, + FALSE); } } } diff --git a/linden/indra/newview/llmaniptranslate.h b/linden/indra/newview/llmaniptranslate.h index 47a1b01..7f206eb 100644 --- a/linden/indra/newview/llmaniptranslate.h +++ b/linden/indra/newview/llmaniptranslate.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llmapresponders.cpp b/linden/indra/newview/llmapresponders.cpp index 387c4fc..eba890b 100644 --- a/linden/indra/newview/llmapresponders.cpp +++ b/linden/indra/newview/llmapresponders.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llmapresponders.h b/linden/indra/newview/llmapresponders.h index 265d2ff..a9d8dcd 100644 --- a/linden/indra/newview/llmapresponders.h +++ b/linden/indra/newview/llmapresponders.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llmediaremotectrl.cpp b/linden/indra/newview/llmediaremotectrl.cpp index b37e5e8..777cbc4 100644 --- a/linden/indra/newview/llmediaremotectrl.cpp +++ b/linden/indra/newview/llmediaremotectrl.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -36,63 +36,109 @@ #include "lloverlaybar.h" #include "llvieweruictrlfactory.h" #include "llpanelaudiovolume.h" +#include "llviewercontrol.h" +#include "llbutton.h" //////////////////////////////////////////////////////////////////////////////// // // -LLMediaRemoteCtrl::LLMediaRemoteCtrl ( const LLString& name, - const LLString& label, - const LLRect& rect, - const LLString& xml_file ) : - LLPanel ( name, rect, FALSE ) +LLMediaRemoteCtrl::LLMediaRemoteCtrl() { setIsChrome(TRUE); + mIsFocusRoot = TRUE; - gUICtrlFactory->buildPanel(this, xml_file); + mFactoryMap["Volume Panel"] = LLCallbackMap(createVolumePanel, NULL); + build(); +} - mIsFocusRoot = TRUE; +void LLMediaRemoteCtrl::build() +{ + //HACK: only works because we don't have any implicit children (i.e. titlebars, close button, etc) + deleteAllChildren(); + if (gSavedSettings.getBOOL("ShowVolumeSettingsPopup")) + { + gUICtrlFactory->buildPanel(this, "panel_media_remote_expanded.xml", &getFactoryMap()); + } + else + { + gUICtrlFactory->buildPanel(this, "panel_media_remote.xml", &getFactoryMap()); + } } BOOL LLMediaRemoteCtrl::postBuild() { childSetAction("media_play",LLOverlayBar::mediaPlay,this); - childSetAction("media_stop",LLOverlayBar::mediaStop,this); - childSetAction("media_pause",LLOverlayBar::mediaPause,this); - childSetAction("music_play",LLOverlayBar::musicPlay,this); - childSetAction("music_stop",LLOverlayBar::musicStop,this); - childSetAction("music_pause",LLOverlayBar::musicPause,this); - childSetAction("volume",LLOverlayBar::toggleAudioVolumeFloater,this); - + childSetAction("expand", onClickExpandBtn, this); return TRUE; } -LLMediaRemoteCtrl::~LLMediaRemoteCtrl () +void LLMediaRemoteCtrl::draw() { + LLButton* music_play_btn = LLUICtrlFactory::getButtonByName(this, "music_play"); + if (music_play_btn) + { + if (gOverlayBar->musicPlaying()) + { + music_play_btn->setValue(TRUE); + music_play_btn->setImageOverlay("icn_music-pause.tga"); + } + else + { + music_play_btn->setValue(FALSE); + music_play_btn->setImageOverlay("icn_music-play.tga"); + } + } + + LLButton* media_play_btn = LLUICtrlFactory::getButtonByName(this, "media_play"); + if (media_play_btn) + { + if (gOverlayBar->mediaPlaying()) + { + media_play_btn->setValue(TRUE); + media_play_btn->setImageOverlay("icn_media-pause.tga"); + } + else + { + media_play_btn->setValue(FALSE); + media_play_btn->setImageOverlay("icn_media-play.tga"); + } + } + + LLButton* expand_button = LLUICtrlFactory::getButtonByName(this, "expand"); + if (expand_button) + { + if (expand_button->getToggleState()) + { + expand_button->setImageOverlay("arrow_down.tga"); + } + else + { + expand_button->setImageOverlay("arrow_up.tga"); + } + } + + LLPanel::draw(); } -//////////////////////////////////////////////////////////////////////////////// -// -// -EWidgetType LLMediaRemoteCtrl::getWidgetType() const +LLMediaRemoteCtrl::~LLMediaRemoteCtrl () { - return WIDGET_TYPE_MEDIA_REMOTE; } -LLString LLMediaRemoteCtrl::getWidgetTag() const +//static +void LLMediaRemoteCtrl::onClickExpandBtn(void* user_data) { - return LL_MEDIA_REMOTE_CTRL_TAG; + LLMediaRemoteCtrl* remotep = (LLMediaRemoteCtrl*)user_data; + + remotep->build(); + gOverlayBar->layoutButtons(); + } -//////////////////////////////////////////////////////////////////////////////// -// -// -void LLMediaRemoteCtrl::draw() +//static +void* LLMediaRemoteCtrl::createVolumePanel(void* data) { - LLOverlayBar::enableMusicButtons(this); - LLOverlayBar::enableMediaButtons(this); - LLPanel::draw(); - // make volume button reflect of volume floater - childSetValue("volume", LLFloaterAudioVolume::instanceVisible(LLSD())); + LLPanelAudioVolume* panel = new LLPanelAudioVolume(); + return panel; } diff --git a/linden/indra/newview/llmediaremotectrl.h b/linden/indra/newview/llmediaremotectrl.h index f110365..2681681 100644 --- a/linden/indra/newview/llmediaremotectrl.h +++ b/linden/indra/newview/llmediaremotectrl.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -39,18 +39,17 @@ class LLMediaRemoteCtrl : public LLPanel { public: - LLMediaRemoteCtrl ( const LLString& name, - const LLString& label, - const LLRect& rect, - const LLString& xml_file ); + LLMediaRemoteCtrl (); - virtual ~LLMediaRemoteCtrl (); - virtual BOOL postBuild(); + /*virtual*/ ~LLMediaRemoteCtrl (); + /*virtual*/ BOOL postBuild(); + /*virtual*/ void draw(); - virtual void draw(); - - virtual EWidgetType getWidgetType() const; - virtual LLString getWidgetTag() const; + static void onClickExpandBtn(void* user_data); + static void* createVolumePanel(void* data); + +protected: + void build(); }; #endif diff --git a/linden/indra/newview/llmemoryview.cpp b/linden/indra/newview/llmemoryview.cpp index ac0331a..40b5387 100644 --- a/linden/indra/newview/llmemoryview.cpp +++ b/linden/indra/newview/llmemoryview.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llmemoryview.h b/linden/indra/newview/llmemoryview.h index 0fe9c2f..64652ef 100644 --- a/linden/indra/newview/llmemoryview.h +++ b/linden/indra/newview/llmemoryview.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llmenucommands.cpp b/linden/indra/newview/llmenucommands.cpp index c79f22f..b42db0a 100644 --- a/linden/indra/newview/llmenucommands.cpp +++ b/linden/indra/newview/llmenucommands.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llmenucommands.h b/linden/indra/newview/llmenucommands.h index 201f885..c08167d 100644 --- a/linden/indra/newview/llmenucommands.h +++ b/linden/indra/newview/llmenucommands.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llmorphview.cpp b/linden/indra/newview/llmorphview.cpp index 8a203ec..404534b 100644 --- a/linden/indra/newview/llmorphview.cpp +++ b/linden/indra/newview/llmorphview.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llmorphview.h b/linden/indra/newview/llmorphview.h index fb577d8..14645f4 100644 --- a/linden/indra/newview/llmorphview.h +++ b/linden/indra/newview/llmorphview.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llmoveview.cpp b/linden/indra/newview/llmoveview.cpp index f60a38d..422ac0c 100644 --- a/linden/indra/newview/llmoveview.cpp +++ b/linden/indra/newview/llmoveview.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llmoveview.h b/linden/indra/newview/llmoveview.h index 005264e..2683e62 100644 --- a/linden/indra/newview/llmoveview.h +++ b/linden/indra/newview/llmoveview.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llmutelist.cpp b/linden/indra/newview/llmutelist.cpp index 84c3c75..9b645a6 100644 --- a/linden/indra/newview/llmutelist.cpp +++ b/linden/indra/newview/llmutelist.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -52,19 +52,25 @@ #include #include "llcrc.h" +#include "lldir.h" #include "lldispatcher.h" +#include "llsdserialize.h" #include "llxfermanager.h" #include "message.h" -#include "lldir.h" #include "llagent.h" #include "llfloatermute.h" #include "llviewergenericmessage.h" // for gGenericDispatcher #include "llviewerwindow.h" #include "llworld.h" //for particle system banning +#include "llviewerobject.h" +#include "llviewerobjectlist.h" LLMuteList* gMuteListp = NULL; +std::map LLMuteList::sUserVolumeSettings; + + // "emptymutelist" class LLDispatchEmptyMuteList : public LLDispatchHandler { @@ -166,6 +172,24 @@ LLMuteList::LLMuteList() : msg->setHandlerFuncFast(_PREHASH_UseCachedMuteList, processUseCachedMuteList); gGenericDispatcher.addHandler("emptymutelist", &sDispatchEmptyMuteList); + + // load per-resident voice volume information + // conceptually, this is part of the mute list information, although it is only stored locally + std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "volume_settings.xml"); + + LLSD settings_llsd; + llifstream file; + file.open(filename.c_str()); + if (file.is_open()) + { + LLSDSerialize::fromXML(settings_llsd, file); + } + + for (LLSD::map_const_iterator iter = settings_llsd.beginMap(); + iter != settings_llsd.endMap(); ++iter) + { + sUserVolumeSettings.insert(std::make_pair(LLUUID(iter->first), (F32)iter->second.asReal())); + } } //----------------------------------------------------------------------------- @@ -173,6 +197,17 @@ LLMuteList::LLMuteList() : //----------------------------------------------------------------------------- LLMuteList::~LLMuteList() { + std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "volume_settings.xml"); + LLSD settings_llsd; + + for(user_volume_map_t::iterator iter = sUserVolumeSettings.begin(); iter != sUserVolumeSettings.end(); ++iter) + { + settings_llsd[iter->first.asString()] = iter->second; + } + + llofstream file; + file.open(filename.c_str()); + LLSDSerialize::toPrettyXML(settings_llsd, file); } BOOL LLMuteList::isLinden(const LLString& name) const @@ -513,8 +548,21 @@ BOOL LLMuteList::saveToFile(const LLString& filename) BOOL LLMuteList::isMuted(const LLUUID& id, const LLString& name, U32 flags) const { + LLUUID id_to_check = id; + + // for objects, check for muting on their parent prim + LLViewerObject *objectp = gObjectList.findObject(id); + if ((objectp) && (!objectp->isAvatar())) + { + LLViewerObject *parentp = (LLViewerObject *)objectp->getParent(); + if (parentp) + { + id_to_check = parentp->getID(); + } + } + // don't need name or type for lookup - LLMute mute(id); + LLMute mute(id_to_check); mute_set_t::const_iterator mute_it = mMutes.find(mute); if (mute_it != mMutes.end()) { @@ -573,6 +621,25 @@ void LLMuteList::cache(const LLUUID& agent_id) } } +void LLMuteList::setSavedResidentVolume(const LLUUID& id, F32 volume) +{ + // store new value in volume settings file + sUserVolumeSettings[id] = volume; +} + +F32 LLMuteList::getSavedResidentVolume(const LLUUID& id) +{ + const F32 DEFAULT_VOLUME = 0.5f; + + user_volume_map_t::iterator found_it = sUserVolumeSettings.find(id); + if (found_it != sUserVolumeSettings.end()) + { + return found_it->second; + } + //FIXME: assumes default, should get this from somewhere + return DEFAULT_VOLUME; +} + //----------------------------------------------------------------------------- // Static message handlers diff --git a/linden/indra/newview/llmutelist.h b/linden/indra/newview/llmutelist.h index aa3afad..fa85924 100644 --- a/linden/indra/newview/llmutelist.h +++ b/linden/indra/newview/llmutelist.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -112,6 +112,9 @@ public: // call this method on logout to save everything. void cache(const LLUUID& agent_id); + void setSavedResidentVolume(const LLUUID& id, F32 volume); + F32 getSavedResidentVolume(const LLUUID& id); + private: BOOL loadFromFile(const LLString& filename); BOOL saveToFile(const LLString& filename); @@ -155,6 +158,9 @@ private: BOOL mIsLoaded; friend class LLDispatchEmptyMuteList; + + typedef std::map user_volume_map_t; + static user_volume_map_t sUserVolumeSettings; }; class LLMuteListObserver diff --git a/linden/indra/newview/llnamebox.cpp b/linden/indra/newview/llnamebox.cpp index b9af3b9..9f141b8 100644 --- a/linden/indra/newview/llnamebox.cpp +++ b/linden/indra/newview/llnamebox.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llnamebox.h b/linden/indra/newview/llnamebox.h index b1efd84..f0926fe 100644 --- a/linden/indra/newview/llnamebox.h +++ b/linden/indra/newview/llnamebox.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llnameeditor.cpp b/linden/indra/newview/llnameeditor.cpp index 7959867..aeb4a36 100644 --- a/linden/indra/newview/llnameeditor.cpp +++ b/linden/indra/newview/llnameeditor.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -53,7 +53,7 @@ LLNameEditor::LLNameEditor(const std::string& name, const LLRect& rect, S32 max_text_length, void (*commit_callback)(LLUICtrl* caller, void* user_data), void (*keystroke_callback)(LLLineEditor* caller, void* user_data), - void (*focus_lost_callback)(LLUICtrl* caller, void* user_data), + void (*focus_lost_callback)(LLFocusableElement* caller, void* user_data), void* userdata, LLLinePrevalidateFunc prevalidate_func, LLViewBorder::EBevel border_bevel, diff --git a/linden/indra/newview/llnameeditor.h b/linden/indra/newview/llnameeditor.h index 856c175..1b02aa4 100644 --- a/linden/indra/newview/llnameeditor.h +++ b/linden/indra/newview/llnameeditor.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -53,7 +53,7 @@ public: S32 max_text_length = 254, void (*commit_callback)(LLUICtrl* caller, void* user_data) = NULL, void (*keystroke_callback)(LLLineEditor* caller, void* user_data) = NULL, - void (*focus_lost_callback)(LLUICtrl* caller, void* user_data) = NULL, + void (*focus_lost_callback)(LLFocusableElement* caller, void* user_data) = NULL, void* userdata = NULL, LLLinePrevalidateFunc prevalidate_func = NULL, LLViewBorder::EBevel border_bevel = LLViewBorder::BEVEL_IN, diff --git a/linden/indra/newview/llnamelistctrl.cpp b/linden/indra/newview/llnamelistctrl.cpp index 57a9f93..e645cc6 100644 --- a/linden/indra/newview/llnamelistctrl.cpp +++ b/linden/indra/newview/llnamelistctrl.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -224,7 +224,7 @@ LLScrollListItem* LLNameListCtrl::addElement(const LLSD& value, EAddPosition pos LLScrollListCell* cell = (LLScrollListCell*)item->getColumn(mNameColumnIndex); ((LLScrollListText*)cell)->setText( fullname ); - updateMaxContentWidth(item); + calcMaxContentWidth(item); // this column is resizable LLScrollListColumn* columnp = getColumn(mNameColumnIndex); @@ -277,7 +277,7 @@ void LLNameListCtrl::refresh(const LLUUID& id, const char* first, cell = (LLScrollListCell*)item->getColumn(mNameColumnIndex); ((LLScrollListText*)cell)->setText( fullname ); - updateMaxContentWidth(item); + calcMaxContentWidth(item); } } } @@ -332,9 +332,6 @@ LLView* LLNameListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto BOOL draw_heading = FALSE; node->getAttributeBOOL("draw_heading", draw_heading); - BOOL collapse_empty_columns = FALSE; - node->getAttributeBOOL("collapse_empty_columns", collapse_empty_columns); - S32 name_column_index = 0; node->getAttributeS32("name_column_index", name_column_index); @@ -355,7 +352,6 @@ LLView* LLNameListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto node->getAttributeS32("heading_height", heading_height); name_list->setHeadingHeight(heading_height); } - name_list->setCollapseEmptyColumns(collapse_empty_columns); BOOL allow_calling_card_drop = FALSE; if (node->getAttributeBOOL("allow_calling_card_drop", allow_calling_card_drop)) @@ -369,6 +365,7 @@ LLView* LLNameListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto LLSD columns; S32 index = 0; + S32 total_static = 0; LLXMLNodePtr child; for (child = node->getFirstChild(); child.notNull(); child = child->getNextSibling()) { @@ -380,6 +377,13 @@ LLView* LLNameListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto LLString columnname(labelname); child->getAttributeString("name", columnname); + BOOL columndynamicwidth = FALSE; + child->getAttributeBOOL("dynamicwidth", columndynamicwidth); + + LLString sortname(columnname); + child->getAttributeString("sort", sortname); + + S32 columnwidth = -1; if (child->hasAttribute("relwidth")) { F32 columnrelwidth = 0.f; @@ -388,7 +392,6 @@ LLView* LLNameListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto } else { - S32 columnwidth = -1; child->getAttributeS32("width", columnwidth); columns[index]["width"] = columnwidth; } @@ -396,14 +399,21 @@ LLView* LLNameListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto LLFontGL::HAlign h_align = LLFontGL::LEFT; h_align = LLView::selectFontHAlign(child); + if(!columndynamicwidth) total_static += llmax(0, columnwidth); + columns[index]["name"] = columnname; columns[index]["label"] = labelname; columns[index]["halign"] = (S32)h_align; + columns[index]["dynamicwidth"] = columndynamicwidth; + columns[index]["sort"] = sortname; + index++; } } + name_list->setTotalStaticColumnWidth(total_static); name_list->setColumnHeadings(columns); + for (child = node->getFirstChild(); child.notNull(); child = child->getNextSibling()) { if (child->hasName("row")) @@ -453,7 +463,7 @@ LLView* LLNameListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFacto while(token_iter != tokens.end()) { const char* line = token_iter->c_str(); - name_list->addSimpleItem(line); + name_list->addCommentText(line); ++token_iter; } diff --git a/linden/indra/newview/llnamelistctrl.h b/linden/indra/newview/llnamelistctrl.h index 0eeefde..71e336d 100644 --- a/linden/indra/newview/llnamelistctrl.h +++ b/linden/indra/newview/llnamelistctrl.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llnetmap.cpp b/linden/indra/newview/llnetmap.cpp index e8c24d7..ca6161b 100644 --- a/linden/indra/newview/llnetmap.cpp +++ b/linden/indra/newview/llnetmap.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llnetmap.h b/linden/indra/newview/llnetmap.h index e509548..17963a0 100644 --- a/linden/indra/newview/llnetmap.h +++ b/linden/indra/newview/llnetmap.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llnotify.cpp b/linden/indra/newview/llnotify.cpp index be1b378..f486ca5 100644 --- a/linden/indra/newview/llnotify.cpp +++ b/linden/indra/newview/llnotify.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -47,6 +47,7 @@ #include "llxmlnode.h" #include "llalertdialog.h" #include "llviewercontrol.h" +#include "llviewerdisplay.h" #include "llviewerimagelist.h" #include "llfloaterchat.h" // for add_chat_history() #include "lloverlaybar.h" // for gOverlayBar @@ -217,10 +218,9 @@ LLNotifyBox::LLNotifyBox(LLPointer xml_template, const LLSt // call to the c'tor, or it can be set implicitly if the // notify xml template specifies that it is a caution // - // (but a tip-style notification cannot be a caution notification, - // since the rendering of the additional top textbox doesn't - // account for the special layout of a tip notification) - mIsCaution = ((xml_template->mIsCaution | is_caution) && (!mIsTip)); + // tip-style notification handle 'caution' differently - + // they display the tip in a different color + mIsCaution = (xml_template->mIsCaution || is_caution); // Don't animate if behind other windows if( gNotifyBoxView->getChildCount() > 0 ) @@ -269,7 +269,7 @@ LLNotifyBox::LLNotifyBox(LLPointer xml_template, const LLSt // add a caution textbox at the top of a caution notification LLTextBox* caution_box = NULL; - if (mIsCaution) + if (mIsCaution && !mIsTip) { S32 caution_height = ((S32)sFont->getLineHeight() * 2) + VPAD; caution_box = new LLTextBox( @@ -309,7 +309,7 @@ LLNotifyBox::LLNotifyBox(LLPointer xml_template, const LLSt sFont, FALSE); text->setWordWrap(TRUE); - text->setTakesFocus(FALSE); + text->setTabStop(FALSE); text->setMouseOpaque(FALSE); text->setBorderVisible(FALSE); text->setTakesNonScrollClicks(FALSE); @@ -427,6 +427,11 @@ BOOL LLNotifyBox::handleMouseUp(S32 x, S32 y, MASK mask) { if (mIsTip) { + if (mBehavior->mCallback) + { + mBehavior->mCallback(0, mBehavior->mData); + mBehavior->mCallback = NULL; // Notification callbacks only expect to be called once ever + } close(); return TRUE; } @@ -452,6 +457,16 @@ BOOL LLNotifyBox::handleRightMouseDown(S32 x, S32 y, MASK mask) // virtual void LLNotifyBox::draw() { + // If we are teleporting, stop the timer and restart it when the teleporting completes + if (gTeleportDisplay) + { + mEventTimer.stop(); + } + else if (!mEventTimer.getStarted()) + { + mEventTimer.start(); + } + F32 display_time = mAnimateTimer.getElapsedTimeF32(); if (mAnimating && display_time < ANIMATION_TIME) @@ -717,7 +732,7 @@ LLRect LLNotifyBox::getNotifyTipRect(const LLString &utf8message) S32 notify_height = llceil((F32) (line_count+1) * sFont->getLineHeight()); if(gOverlayBar) { - notify_height += gOverlayBar->getRect().getHeight(); + notify_height += gOverlayBar->getBoundingRect().mTop; } else { diff --git a/linden/indra/newview/llnotify.h b/linden/indra/newview/llnotify.h index bba07e2..3084143 100644 --- a/linden/indra/newview/llnotify.h +++ b/linden/indra/newview/llnotify.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lloverlaybar.cpp b/linden/indra/newview/lloverlaybar.cpp index 544fbf5..9ef2eba 100644 --- a/linden/indra/newview/lloverlaybar.cpp +++ b/linden/indra/newview/lloverlaybar.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -39,6 +39,7 @@ #include "audioengine.h" #include "llagent.h" #include "llbutton.h" +#include "llchatbar.h" #include "llfocusmgr.h" #include "llimview.h" #include "llmediaengine.h" @@ -71,37 +72,14 @@ extern S32 MENU_BAR_HEIGHT; // -//static -void* LLOverlayBar::createMasterRemote(void* userdata) -{ - LLOverlayBar *self = (LLOverlayBar*)userdata; - self->mMasterRemote = new LLMediaRemoteCtrl ( "master_volume", - "volume", - LLRect(), - "panel_master_volume.xml"); - return self->mMasterRemote; -} void* LLOverlayBar::createMediaRemote(void* userdata) { LLOverlayBar *self = (LLOverlayBar*)userdata; - self->mMediaRemote = new LLMediaRemoteCtrl ( "media_remote", - "media", - LLRect(), - "panel_media_remote.xml"); + self->mMediaRemote = new LLMediaRemoteCtrl (); return self->mMediaRemote; } -void* LLOverlayBar::createMusicRemote(void* userdata) -{ - LLOverlayBar *self = (LLOverlayBar*)userdata; - self->mMusicRemote = new LLMediaRemoteCtrl ( "music_remote", - "music", - LLRect(), - "panel_music_remote.xml" ); - return self->mMusicRemote; -} - void* LLOverlayBar::createVoiceRemote(void* userdata) { LLOverlayBar *self = (LLOverlayBar*)userdata; @@ -109,13 +87,14 @@ void* LLOverlayBar::createVoiceRemote(void* userdata) return self->mVoiceRemote; } +void* LLOverlayBar::createChatBar(void* userdata) +{ + gChatBar = new LLChatBar(); + return gChatBar; +} - - -LLOverlayBar::LLOverlayBar(const std::string& name, const LLRect& rect) - : LLPanel(name, rect, FALSE), // not bordered - mMasterRemote(NULL), - mMusicRemote(NULL), +LLOverlayBar::LLOverlayBar() + : LLPanel(), mMediaRemote(NULL), mVoiceRemote(NULL), mMediaState(STOPPED), @@ -127,25 +106,27 @@ LLOverlayBar::LLOverlayBar(const std::string& name, const LLRect& rect) mBuilt = false; LLCallbackMap::map_t factory_map; - factory_map["master_volume"] = LLCallbackMap(LLOverlayBar::createMasterRemote, this); factory_map["media_remote"] = LLCallbackMap(LLOverlayBar::createMediaRemote, this); - factory_map["music_remote"] = LLCallbackMap(LLOverlayBar::createMusicRemote, this); factory_map["voice_remote"] = LLCallbackMap(LLOverlayBar::createVoiceRemote, this); + factory_map["chat_bar"] = LLCallbackMap(LLOverlayBar::createChatBar, this); gUICtrlFactory->buildPanel(this, "panel_overlaybar.xml", &factory_map); - +} + +BOOL LLOverlayBar::postBuild() +{ childSetAction("IM Received",onClickIMReceived,this); childSetAction("Set Not Busy",onClickSetNotBusy,this); childSetAction("Release Keys",onClickReleaseKeys,this); childSetAction("Mouselook",onClickMouselook,this); childSetAction("Stand Up",onClickStandUp,this); + childSetVisible("chat_bar", gSavedSettings.getBOOL("ChatVisible")); mIsFocusRoot = TRUE; mBuilt = true; - // make overlay bar conform to window size - setRect(rect); layoutButtons(); + return TRUE; } LLOverlayBar::~LLOverlayBar() @@ -176,236 +157,132 @@ void LLOverlayBar::reshape(S32 width, S32 height, BOOL called_from_parent) void LLOverlayBar::layoutButtons() { - S32 width = mRect.getWidth(); - if (width > 1024) width = 1024; - - S32 count = getChildCount(); - const S32 PAD = gSavedSettings.getS32("StatusBarPad"); - - const S32 num_media_controls = 3; - S32 media_remote_width = mMediaRemote ? mMediaRemote->getRect().getWidth() : 0; - S32 music_remote_width = mMusicRemote ? mMusicRemote->getRect().getWidth() : 0; - S32 voice_remote_width = mVoiceRemote ? mVoiceRemote->getRect().getWidth() : 0; - S32 master_remote_width = mMasterRemote ? mMasterRemote->getRect().getWidth() : 0; - - // total reserved width for all media remotes - const S32 ENDPAD = 20; - S32 remote_total_width = media_remote_width + PAD + music_remote_width + PAD + voice_remote_width + PAD + master_remote_width + ENDPAD; + LLView* state_buttons_panel = getChildByName("state_buttons", TRUE); - // calculate button widths - F32 segment_width = (F32)(width - remote_total_width) / (F32)(count - num_media_controls); - - S32 btn_width = lltrunc(segment_width - PAD); - - // Evenly space all views - LLRect r; - S32 i = 0; - for (child_list_const_iter_t child_iter = getChildList()->begin(); - child_iter != getChildList()->end(); ++child_iter) + if (state_buttons_panel && state_buttons_panel->getVisible()) { - LLView *view = *child_iter; - r = view->getRect(); - r.mLeft = (width) - llround(remote_total_width + (i-num_media_controls+1)*segment_width); - r.mRight = r.mLeft + btn_width; - view->setRect(r); - i++; - } + LLViewQuery query; + LLWidgetTypeFilter widget_filter(WIDGET_TYPE_BUTTON); + query.addPreFilter(LLVisibleFilter::getInstance()); + query.addPreFilter(LLEnabledFilter::getInstance()); + query.addPreFilter(&widget_filter); - // Fix up remotes to have constant width because they can't shrink - S32 right = mRect.getWidth() - remote_total_width - PAD; - if (mMediaRemote) - { - r = mMediaRemote->getRect(); - r.mLeft = right + PAD; - right = r.mLeft + media_remote_width; - r.mRight = right; - mMediaRemote->setRect(r); - } - if (mMusicRemote) - { - r = mMusicRemote->getRect(); - r.mLeft = right + PAD; - right = r.mLeft + music_remote_width; - r.mRight = right; - mMusicRemote->setRect(r); - } - if (mVoiceRemote) - { - r = mVoiceRemote->getRect(); - r.mLeft = right + PAD; - right = r.mLeft + voice_remote_width; - r.mRight = right; - mVoiceRemote->setRect(r); - } - if (mMasterRemote) - { - r = mMasterRemote->getRect(); - r.mLeft = right + PAD; - right = r.mLeft + master_remote_width; - r.mRight = right; - mMasterRemote->setRect(r); - } - - updateRect(); -} - -void LLOverlayBar::draw() -{ - // retrieve rounded rect image - LLUUID image_id; - image_id.set(gViewerArt.getString("rounded_square.tga")); - LLViewerImage* imagep = gImageList.getImage(image_id, MIPMAP_FALSE, TRUE); + child_list_t button_list = query(state_buttons_panel); - if (imagep) - { - LLGLSTexture texture_enabled; - LLViewerImage::bindTexture(imagep); + const S32 MAX_BAR_WIDTH = 600; + S32 bar_width = llclamp(state_buttons_panel->getRect().getWidth(), 0, MAX_BAR_WIDTH); - const S32 PAD = gSavedSettings.getS32("StatusBarPad"); + // calculate button widths + const S32 MAX_BUTTON_WIDTH = 150; + S32 segment_width = llclamp(lltrunc((F32)(bar_width) / (F32)button_list.size()), 0, MAX_BUTTON_WIDTH); + S32 btn_width = segment_width - gSavedSettings.getS32("StatusBarPad"); - // draw rounded rect tabs behind all children - LLRect r; - // focus highlights - LLColor4 color = gColors.getColor("FloaterFocusBorderColor"); - glColor4fv(color.mV); - if(gFocusMgr.childHasKeyboardFocus(gBottomPanel)) - { - for (child_list_const_iter_t child_iter = getChildList()->begin(); - child_iter != getChildList()->end(); ++child_iter) - { - LLView *view = *child_iter; - if(view->getEnabled() && view->getVisible()) - { - r = view->getRect(); - gl_segmented_rect_2d_tex(r.mLeft - PAD/3 - 1, - r.mTop + 3, - r.mRight + PAD/3 + 1, - r.mBottom, - imagep->getWidth(), - imagep->getHeight(), - 16, - ROUNDED_RECT_TOP); - } - } - } + // Evenly space all buttons, starting from left + S32 left = 0; + S32 bottom = 1; - // main tabs - for (child_list_const_iter_t child_iter = getChildList()->begin(); - child_iter != getChildList()->end(); ++child_iter) + for (child_list_reverse_iter_t child_iter = button_list.rbegin(); + child_iter != button_list.rend(); ++child_iter) { LLView *view = *child_iter; - if(view->getEnabled() && view->getVisible()) - { - r = view->getRect(); - // draw a nice little pseudo-3D outline - color = gColors.getColor("DefaultShadowDark"); - glColor4fv(color.mV); - gl_segmented_rect_2d_tex(r.mLeft - PAD/3 + 1, r.mTop + 2, r.mRight + PAD/3, r.mBottom, - imagep->getWidth(), imagep->getHeight(), 16, ROUNDED_RECT_TOP); - color = gColors.getColor("DefaultHighlightLight"); - glColor4fv(color.mV); - gl_segmented_rect_2d_tex(r.mLeft - PAD/3, r.mTop + 2, r.mRight + PAD/3 - 3, r.mBottom, - imagep->getWidth(), imagep->getHeight(), 16, ROUNDED_RECT_TOP); - // here's the main background. Note that it overhangs on the bottom so as to hide the - // focus highlight on the bottom panel, thus producing the illusion that the focus highlight - // continues around the tabs - color = gColors.getColor("FocusBackgroundColor"); - glColor4fv(color.mV); - gl_segmented_rect_2d_tex(r.mLeft - PAD/3 + 1, r.mTop + 1, r.mRight + PAD/3 - 1, r.mBottom - 1, - imagep->getWidth(), imagep->getHeight(), 16, ROUNDED_RECT_TOP); - } + LLRect r = view->getRect(); + r.setOriginAndSize(left, bottom, btn_width, r.getHeight()); + view->setRect(r); + left += segment_width; } } - - // draw children on top - LLPanel::draw(); } - // Per-frame updates of visibility void LLOverlayBar::refresh() { + BOOL buttons_changed = FALSE; + BOOL im_received = gIMMgr->getIMReceived(); - childSetVisible("IM Received", im_received); - childSetEnabled("IM Received", im_received); + LLButton* button = LLUICtrlFactory::getButtonByName(this, "IM Received"); + if (button && button->getVisible() != im_received) + { + button->setVisible(im_received); + sendChildToFront(button); + moveChildToBackOfTabGroup(button); + buttons_changed = TRUE; + } BOOL busy = gAgent.getBusy(); - childSetVisible("Set Not Busy", busy); - childSetEnabled("Set Not Busy", busy); + button = LLUICtrlFactory::getButtonByName(this, "Set Not Busy"); + if (button && button->getVisible() != busy) + { + button->setVisible(busy); + sendChildToFront(button); + moveChildToBackOfTabGroup(button); + buttons_changed = TRUE; + } BOOL controls_grabbed = gAgent.anyControlGrabbed(); + button = LLUICtrlFactory::getButtonByName(this, "Release Keys"); - childSetVisible("Release Keys", controls_grabbed); - childSetEnabled("Release Keys", controls_grabbed); - + if (button && button->getVisible() != controls_grabbed) + { + button->setVisible(controls_grabbed); + sendChildToFront(button); + moveChildToBackOfTabGroup(button); + buttons_changed = TRUE; + } BOOL mouselook_grabbed; mouselook_grabbed = gAgent.isControlGrabbed(CONTROL_ML_LBUTTON_DOWN_INDEX) || gAgent.isControlGrabbed(CONTROL_ML_LBUTTON_UP_INDEX); + button = LLUICtrlFactory::getButtonByName(this, "Mouselook"); - - childSetVisible("Mouselook", mouselook_grabbed); - childSetEnabled("Mouselook", mouselook_grabbed); + if (button && button->getVisible() != mouselook_grabbed) + { + button->setVisible(mouselook_grabbed); + sendChildToFront(button); + moveChildToBackOfTabGroup(button); + buttons_changed = TRUE; + } BOOL sitting = FALSE; if (gAgent.getAvatarObject()) { sitting = gAgent.getAvatarObject()->mIsSitting; - childSetVisible("Stand Up", sitting); - childSetEnabled("Stand Up", sitting); - } + button = LLUICtrlFactory::getButtonByName(this, "Stand Up"); - if ( mMusicRemote && gAudiop ) + if (button && button->getVisible() != sitting) { - LLParcel* parcel = gParcelMgr->getAgentParcel(); - if (!parcel - || parcel->getMusicURL().empty() - || !gSavedSettings.getBOOL("AudioStreamingMusic")) - { - mMusicRemote->setVisible(FALSE); - mMusicRemote->setEnabled(FALSE); - } - else - { - mMusicRemote->setVisible(TRUE); - mMusicRemote->setEnabled(TRUE); - } + button->setVisible(sitting); + sendChildToFront(button); + moveChildToBackOfTabGroup(button); + buttons_changed = TRUE; } - // if there is a url and a texture and media is enabled and available and media streaming is on... (phew!) - if ( mMediaRemote ) - { - if (LLMediaEngine::getInstance () && - LLMediaEngine::getInstance ()->getUrl ().length () && - LLMediaEngine::getInstance ()->getImageUUID ().notNull () && - LLMediaEngine::getInstance ()->isEnabled () && - LLMediaEngine::getInstance ()->isAvailable () && - gSavedSettings.getBOOL ( "AudioStreamingVideo" ) ) - { - // display remote control - mMediaRemote->setVisible ( TRUE ); - mMediaRemote->setEnabled ( TRUE ); - } - else - { - mMediaRemote->setVisible ( FALSE ); - mMediaRemote->setEnabled ( FALSE ); - } - } - if (mVoiceRemote) - { - mVoiceRemote->setVisible(LLVoiceClient::voiceEnabled()); - } - + enableMediaButtons(); + + moveChildToBackOfTabGroup(mMediaRemote); + moveChildToBackOfTabGroup(mVoiceRemote); + // turn off the whole bar in mouselook if (gAgent.cameraMouselook()) { - setVisible(FALSE); + childSetVisible("media_remote_container", FALSE); + childSetVisible("voice_remote_container", FALSE); + childSetVisible("state_buttons", FALSE); } else { - setVisible(TRUE); + // update "remotes" + childSetVisible("media_remote_container", TRUE); + childSetVisible("voice_remote_container", LLVoiceClient::voiceEnabled()); + childSetVisible("state_buttons", TRUE); + } + + // always let user toggle into and out of chatbar + childSetVisible("chat_bar", gSavedSettings.getBOOL("ChatVisible")); + + if (buttons_changed) + { + layoutButtons(); } } @@ -462,33 +339,25 @@ void LLOverlayBar::mediaPlay(void*) { return; } - gOverlayBar->mMediaState = PLAYING; // desired state - LLParcel* parcel = gParcelMgr->getAgentParcel(); - if (parcel) - { - LLString path(""); - LLMediaEngine::getInstance()->convertImageAndLoadUrl( true, false, path ); - } -} -//static -void LLOverlayBar::mediaPause(void*) -{ - if (!gOverlayBar) + + if (gOverlayBar->mMediaState != PLAYING) { - return; + gOverlayBar->mMediaState = PLAYING; // desired state + LLParcel* parcel = gParcelMgr->getAgentParcel(); + if (parcel) + { + LLString path(""); + LLMediaEngine::getInstance()->convertImageAndLoadUrl( true, false, path ); + } } - gOverlayBar->mMediaState = PAUSED; // desired state - LLMediaEngine::getInstance()->pause(); -} -//static -void LLOverlayBar::mediaStop(void*) -{ - if (!gOverlayBar) + else { - return; + gOverlayBar->mMediaState = PAUSED; // desired state + LLMediaEngine::getInstance()->pause(); } - gOverlayBar->mMediaState = STOPPED; // desired state - LLMediaEngine::getInstance()->stop(); + + //gOverlayBar->mMediaState = STOPPED; // desired state + //LLMediaEngine::getInstance()->stop(); } //static @@ -498,116 +367,75 @@ void LLOverlayBar::musicPlay(void*) { return; } - gOverlayBar->mMusicState = PLAYING; // desired state - if (gAudiop) + + if (gOverlayBar->mMusicState != PLAYING) { - LLParcel* parcel = gParcelMgr->getAgentParcel(); - if ( parcel ) + gOverlayBar->mMusicState = PLAYING; // desired state + if (gAudiop) { - // this doesn't work properly when crossing parcel boundaries - even when the - // stream is stopped, it doesn't return the right thing - commenting out for now. -// if ( gAudiop->isInternetStreamPlaying() == 0 ) + LLParcel* parcel = gParcelMgr->getAgentParcel(); + if ( parcel ) { - gAudiop->startInternetStream(parcel->getMusicURL().c_str()); + // this doesn't work properly when crossing parcel boundaries - even when the + // stream is stopped, it doesn't return the right thing - commenting out for now. + // if ( gAudiop->isInternetStreamPlaying() == 0 ) + { + gAudiop->startInternetStream(parcel->getMusicURL().c_str()); + } } } } -} -//static -void LLOverlayBar::musicPause(void*) -{ - if (!gOverlayBar) - { - return; - } - gOverlayBar->mMusicState = PAUSED; // desired state - if (gAudiop) - { - gAudiop->pauseInternetStream(1); - } -} -//static -void LLOverlayBar::musicStop(void*) -{ - if (!gOverlayBar) - { - return; - } - gOverlayBar->mMusicState = STOPPED; // desired state - if (gAudiop) + //else + //{ + // gOverlayBar->mMusicState = PAUSED; // desired state + // if (gAudiop) + // { + // gAudiop->pauseInternetStream(1); + // } + //} + else { - gAudiop->stopInternetStream(); + gOverlayBar->mMusicState = STOPPED; // desired state + if (gAudiop) + { + gAudiop->stopInternetStream(); + } } } -//static -void LLOverlayBar::enableMusicButtons(LLPanel* panel) -{ - BOOL play_enabled = FALSE; - BOOL play_visible = TRUE; - BOOL pause_visible = FALSE; - BOOL stop_enabled = FALSE; - if ( gAudiop && gOverlayBar && gSavedSettings.getBOOL("AudioStreamingMusic")) +void LLOverlayBar::enableMediaButtons() +{ + if (mMediaRemote) { - play_enabled = TRUE; - S32 is_playing = gAudiop->isInternetStreamPlaying(); - if (is_playing == 1) + // Music + LLParcel* parcel = gParcelMgr->getAgentParcel(); + if (parcel + && gAudiop + && !parcel->getMusicURL().empty() + && gSavedSettings.getBOOL("AudioStreamingMusic")) { - play_visible = FALSE; - pause_visible = TRUE; - stop_enabled = TRUE; + mMediaRemote->childSetEnabled("music_play", TRUE); } - else if (is_playing == 2) + else { - play_visible = TRUE; - pause_visible = FALSE; - stop_enabled = TRUE; + mMediaRemote->childSetEnabled("music_play", FALSE); } - } - panel->childSetEnabled("music_play", play_enabled); - panel->childSetEnabled("music_pause", play_enabled); - panel->childSetVisible("music_play", play_visible); - panel->childSetVisible("music_pause", pause_visible); - panel->childSetEnabled("music_stop", stop_enabled); -} -//static -void LLOverlayBar::enableMediaButtons(LLPanel* panel) -{ - // Media - BOOL play_enabled = FALSE; - BOOL play_visible = TRUE; - BOOL pause_visible = FALSE; - BOOL stop_enabled = FALSE; - - if ( LLMediaEngine::getInstance() && gOverlayBar && gSavedSettings.getBOOL("AudioStreamingVideo") ) - { - play_enabled = TRUE; - if (LLMediaEngine::getInstance()->getMediaRenderer()) + // Media + // if there is a url and a texture and media is enabled and available and media streaming is on... (phew!) + if (LLMediaEngine::getInstance() + && LLMediaEngine::getInstance()->getUrl ().length () + && LLMediaEngine::getInstance()->getImageUUID ().notNull () + && LLMediaEngine::getInstance()->isEnabled () + && LLMediaEngine::getInstance()->isAvailable () + && gSavedSettings.getBOOL ( "AudioStreamingVideo" ) ) { - if ( LLMediaEngine::getInstance()->getMediaRenderer()->isPlaying() || - LLMediaEngine::getInstance()->getMediaRenderer()->isLooping() ) - { - play_visible = FALSE; - pause_visible = TRUE; - stop_enabled = TRUE; - } - else if ( LLMediaEngine::getInstance()->getMediaRenderer()->isPaused() ) - { - play_visible = TRUE; - pause_visible = FALSE; - stop_enabled = TRUE; - } + mMediaRemote->childSetEnabled("media_play", TRUE); + } + else + { + mMediaRemote->childSetEnabled("media_play", FALSE); } } - panel->childSetEnabled("media_play", play_enabled); - panel->childSetEnabled("media_pause", play_enabled); - panel->childSetVisible("media_play", play_visible); - panel->childSetVisible("media_pause", pause_visible); - panel->childSetEnabled("media_stop", stop_enabled); } -void LLOverlayBar::toggleAudioVolumeFloater(void* user_data) -{ - LLFloaterAudioVolume::toggleInstance(LLSD()); -} diff --git a/linden/indra/newview/lloverlaybar.h b/linden/indra/newview/lloverlaybar.h index 9475bbb..46dbfef 100644 --- a/linden/indra/newview/lloverlaybar.h +++ b/linden/indra/newview/lloverlaybar.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -54,15 +54,15 @@ class LLOverlayBar : public LLPanel { public: - LLOverlayBar(const std::string& name, const LLRect& rect ); + LLOverlayBar(); ~LLOverlayBar(); virtual EWidgetType getWidgetType() const; virtual LLString getWidgetTag() const; /*virtual*/ void refresh(); - /*virtual*/ void draw(); /*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent); + /*virtual*/ BOOL postBuild(); void layoutButtons(); @@ -79,27 +79,16 @@ public: //static media helper functions static void mediaPlay(void*); - static void mediaPause(void*); - static void mediaStop(void*); - static void musicPlay(void*); - static void musicPause(void*); - static void musicStop(void*); - static void toggleAudioVolumeFloater(void*); - - static void enableMediaButtons(LLPanel* panel); - static void enableMusicButtons(LLPanel* panel); - protected: - static void* createMasterRemote(void* userdata); - static void* createMusicRemote(void* userdata); static void* createMediaRemote(void* userdata); static void* createVoiceRemote(void* userdata); + static void* createChatBar(void* userdata); + + void enableMediaButtons(); protected: - LLMediaRemoteCtrl* mMasterRemote; - LLMediaRemoteCtrl* mMusicRemote; LLMediaRemoteCtrl* mMediaRemote; LLVoiceRemoteCtrl* mVoiceRemote; bool mBuilt; // dialog constructed yet? diff --git a/linden/indra/newview/llpanelLCD.cpp b/linden/indra/newview/llpanelLCD.cpp index f460e2c..b58b21c 100644 --- a/linden/indra/newview/llpanelLCD.cpp +++ b/linden/indra/newview/llpanelLCD.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelLCD.h b/linden/indra/newview/llpanelLCD.h index ff846ed..ede1b38 100644 --- a/linden/indra/newview/llpanelLCD.h +++ b/linden/indra/newview/llpanelLCD.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelaudioprefs.cpp b/linden/indra/newview/llpanelaudioprefs.cpp index 016ab9e..cf1c749 100644 --- a/linden/indra/newview/llpanelaudioprefs.cpp +++ b/linden/indra/newview/llpanelaudioprefs.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -97,8 +97,6 @@ BOOL LLPanelAudioPrefs::postBuild() mPreviousDistance = gSavedSettings.getF32("AudioLevelDistance"); mPreviousRolloff = gSavedSettings.getF32("AudioLevelRolloff"); - mPreviousBitrate = gSavedSettings.getS32("AudioDefaultBitrate"); - mPreviousMoneyThreshold = gSavedSettings.getF32("UISndMoneyChangeThreshold"); mPreviousHealthThreshold = gSavedSettings.getF32("UISndHealthReductionThreshold"); @@ -114,8 +112,6 @@ BOOL LLPanelAudioPrefs::postBuild() void LLPanelAudioPrefs::cancel() { - - gSavedSettings.setS32("AudioDefaultBitrate", mPreviousBitrate); gSavedSettings.setF32("AudioLevelMaster", mPreviousVolume ); gSavedSettings.setF32("AudioLevelUI", mPreviousUI ); gSavedSettings.setF32("AudioLevelSFX", mPreviousSFX ); diff --git a/linden/indra/newview/llpanelaudioprefs.h b/linden/indra/newview/llpanelaudioprefs.h index 60edec7..01483ca 100644 --- a/linden/indra/newview/llpanelaudioprefs.h +++ b/linden/indra/newview/llpanelaudioprefs.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelaudiovolume.cpp b/linden/indra/newview/llpanelaudiovolume.cpp index 6900bad..522f73f 100644 --- a/linden/indra/newview/llpanelaudiovolume.cpp +++ b/linden/indra/newview/llpanelaudiovolume.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -38,35 +38,6 @@ #include "llvieweruictrlfactory.h" //////////////////////////////////////////////////////////////////////////////// -// Floater version of audio panel -// - -//static -void* LLFloaterAudioVolume::createVolumePanel(void* data) -{ - LLPanelAudioVolume* panel = new LLPanelAudioVolume(); - return panel; -} - -LLFloaterAudioVolume::LLFloaterAudioVolume(const LLSD& seed) -{ - mFactoryMap["Volume Panel"] = LLCallbackMap(createVolumePanel, NULL); - gUICtrlFactory->buildFloater(this, "floater_audio_volume.xml", &getFactoryMap()); - - S32 pos_x = mRect.mLeft; - S32 pos_y = mRect.mBottom; - LLView* volume_panel_view = gOverlayBar->getChildByName("master_volume"); - if (volume_panel_view) - { - pos_x = volume_panel_view->getRect().mLeft; - pos_y = volume_panel_view->getRect().mTop; - } - - setOrigin(pos_x, pos_y); - gFloaterView->adjustToFitScreen(this, FALSE); -} - -//////////////////////////////////////////////////////////////////////////////// // // LLPanelAudioVolume::LLPanelAudioVolume() @@ -75,6 +46,13 @@ LLPanelAudioVolume::LLPanelAudioVolume() BOOL LLPanelAudioVolume::postBuild() { + childSetCommitCallback("System Volume", onCommitVolumeChange); + childSetCommitCallback("Music Volume", onCommitVolumeChange); + childSetCommitCallback("Media Volume", onCommitVolumeChange); + childSetCommitCallback("Voice Volume", onCommitVolumeChange); + childSetCommitCallback("SFX Volume", onCommitVolumeChange); + childSetCommitCallback("UI Volume", onCommitVolumeChange); + childSetCommitCallback("Wind Volume", onCommitVolumeChange); return TRUE; } @@ -87,18 +65,57 @@ LLPanelAudioVolume::~LLPanelAudioVolume () // void LLPanelAudioVolume::draw() { -// LLOverlayBar::enableMusicButtons(this); -// LLOverlayBar::enableMediaButtons(this); BOOL mute = gSavedSettings.getBOOL("MuteAudio"); bool enable = mute ? false : true; - childSetEnabled("System Volume", enable); childSetEnabled("Music Volume", enable); childSetEnabled("Media Volume", enable); childSetEnabled("Voice Volume", enable); childSetEnabled("SFX Volume", enable); childSetEnabled("UI Volume", enable); childSetEnabled("Wind Volume", enable); + + childSetEnabled("mute_music", enable); + childSetEnabled("mute_media", enable); + childSetEnabled("mute_voice", enable); + childSetEnabled("mute_sfx", enable); + childSetEnabled("mute_wind", enable); + childSetEnabled("mute_ui", enable); + LLPanel::draw(); } +//static +void LLPanelAudioVolume::onCommitVolumeChange(LLUICtrl* ctrl, void* user_data) +{ + // unmute various audio sources when user changes volume + LLString control_name = ctrl->getControlName(); + if (control_name == "AudioLevelMaster") + { + gSavedSettings.setBOOL("MuteAudio", FALSE); + } + else if (control_name == "AudioLevelSFX") + { + gSavedSettings.setBOOL("MuteSounds", FALSE); + } + else if (control_name == "AudioLevelUI") + { + gSavedSettings.setBOOL("MuteUI", FALSE); + } + else if (control_name == "AudioLevelAmbient") + { + gSavedSettings.setBOOL("MuteAmbient", FALSE); + } + else if (control_name == "AudioLevelMusic") + { + gSavedSettings.setBOOL("MuteMusic", FALSE); + } + else if (control_name == "AudioLevelMedia") + { + gSavedSettings.setBOOL("MuteMedia", FALSE); + } + else if (control_name == "AudioLevelVoice") + { + gSavedSettings.setBOOL("MuteVoice", FALSE); + } +} diff --git a/linden/indra/newview/llpanelaudiovolume.h b/linden/indra/newview/llpanelaudiovolume.h index 48c859f..d7ddb1f 100644 --- a/linden/indra/newview/llpanelaudiovolume.h +++ b/linden/indra/newview/llpanelaudiovolume.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -35,24 +35,18 @@ #include "llpanel.h" #include "llfloater.h" -class LLFloaterAudioVolume : - public LLUISingleton, - public LLFloater -{ - friend class LLUISingleton; -public: - LLFloaterAudioVolume(const LLSD& seed); - static void* createVolumePanel(void* data); -}; class LLPanelAudioVolume : public LLPanel { public: - LLPanelAudioVolume(); + LLPanelAudioVolume(); virtual ~LLPanelAudioVolume(); virtual BOOL postBuild(); virtual void draw(); + +private: + static void onCommitVolumeChange(LLUICtrl* ctrl, void* user_data); }; #endif diff --git a/linden/indra/newview/llpanelavatar.cpp b/linden/indra/newview/llpanelavatar.cpp index cc44455..dd4d6cf 100644 --- a/linden/indra/newview/llpanelavatar.cpp +++ b/linden/indra/newview/llpanelavatar.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -290,6 +290,7 @@ void LLPanelAvatarSecondLife::updatePartnerName() childSetTextArg("partner_edit", "[FIRST]", LLString(first)); childSetTextArg("partner_edit", "[LAST]", LLString(last)); } + childSetEnabled("partner_info", TRUE); } } @@ -365,6 +366,7 @@ void LLPanelAvatarSecondLife::onDoubleClickGroup(void* data) if(group_list) { LLScrollListItem* item = group_list->getFirstSelected(); + if(item && item->getUUID().notNull()) { llinfos << "Show group info " << item->getUUID() << llendl; @@ -393,6 +395,16 @@ void LLPanelAvatarSecondLife::onClickPartnerHelpLoadURL(S32 option, void* userda LLWeb::loadURL("http://secondlife.com/partner"); } +// static +void LLPanelAvatarSecondLife::onClickPartnerInfo(void *data) +{ + LLPanelAvatarSecondLife* self = (LLPanelAvatarSecondLife*) data; + if (self->mPartnerID.notNull()) + { + LLFloaterAvatarInfo::showFromProfile(self->mPartnerID, + self->getScreenRect()); + } +} //----------------------------------------------------------------------------- // LLPanelAvatarFirstLife() @@ -420,6 +432,8 @@ BOOL LLPanelAvatarSecondLife::postBuild(void) childSetEnabled("born", FALSE); childSetEnabled("partner_edit", FALSE); childSetAction("partner_help",onClickPartnerHelp,this); + childSetAction("partner_info", onClickPartnerInfo, this); + childSetEnabled("partner_info", mPartnerID.notNull()); childSetAction("?",onClickPublishHelp,this); BOOL own_avatar = (getPanelAvatar()->getAvatarID() == gAgent.getID() ); @@ -1565,6 +1579,8 @@ void LLPanelAvatar::resetGroupList() group_string += group_data.mName; LLSD row; + + row["id"] = id ; row["columns"][0]["value"] = group_string; row["columns"][0]["font"] = "SANSSERIF_SMALL"; row["columns"][0]["width"] = 0; @@ -1635,7 +1651,7 @@ void LLPanelAvatar::onClickMute(void *userdata) if (name_edit) { std::string agent_name = name_edit->getText(); - gFloaterMute->show(); + LLFloaterMute::showInstance(); if (gMuteListp->isMuted(agent_id)) { @@ -1994,7 +2010,7 @@ void LLPanelAvatar::processAvatarGroupsReply(LLMessageSystem *msg, void**) S32 group_count = msg->getNumberOfBlocksFast(_PREHASH_GroupData); if (0 == group_count) { - if(group_list) group_list->addSimpleItem("None"); + if(group_list) group_list->addCommentText("None"); } else { @@ -2009,8 +2025,7 @@ void LLPanelAvatar::processAvatarGroupsReply(LLMessageSystem *msg, void**) LLString group_string; if (group_id.notNull()) { - group_string.assign("Member of "); - group_string.append(group_name); + group_string.assign(group_name); } else { diff --git a/linden/indra/newview/llpanelavatar.h b/linden/indra/newview/llpanelavatar.h index 17cf652..318b4cf 100644 --- a/linden/indra/newview/llpanelavatar.h +++ b/linden/indra/newview/llpanelavatar.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -119,6 +119,7 @@ public: static void onClickPublishHelp(void *userdata); static void onClickPartnerHelp(void *userdata); static void onClickPartnerHelpLoadURL(S32 option, void* userdata); + static void onClickPartnerInfo(void *userdata); // Clear out the controls anticipating new network data. void clearControls(); diff --git a/linden/indra/newview/llpanelclassified.cpp b/linden/indra/newview/llpanelclassified.cpp index aafe05d..811527e 100644 --- a/linden/indra/newview/llpanelclassified.cpp +++ b/linden/indra/newview/llpanelclassified.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -109,9 +109,8 @@ static LLDispatchClassifiedClickThrough sClassifiedClickThrough; class LLClassifiedTeleportHandler : public LLCommandHandler { public: - // Inform the system you handle commands starting - // with "foo" - LLClassifiedTeleportHandler() : LLCommandHandler("classifiedteleport") { } + // don't allow from external browsers because it moves you immediately + LLClassifiedTeleportHandler() : LLCommandHandler("classifiedteleport", false) { } bool handle(const LLSD& tokens, const LLSD& queryMap) { @@ -134,7 +133,8 @@ public: const bool from_search = true; LLPanelClassified::sendClassifiedClickMessage(classified_id, "teleport", from_search); // Invoke teleport - return LLURLDispatcher::dispatch(url); + const bool from_external_browser = false; + return LLURLDispatcher::dispatch(url, from_external_browser); } }; // Creating the object registers with the dispatcher. @@ -228,14 +228,14 @@ BOOL LLPanelClassified::postBuild() mNameEditor = LLViewerUICtrlFactory::getLineEditorByName(this, "given_name_editor"); mNameEditor->setMaxTextLength(DB_PARCEL_NAME_LEN); mNameEditor->setCommitOnFocusLost(TRUE); - mNameEditor->setFocusReceivedCallback(onFocusReceived); + mNameEditor->setFocusReceivedCallback(onFocusReceived, this); mNameEditor->setCommitCallback(onCommitAny); mNameEditor->setCallbackUserData(this); mNameEditor->setPrevalidate( LLLineEditor::prevalidateASCII ); mDescEditor = LLUICtrlFactory::getTextEditorByName(this, "desc_editor"); mDescEditor->setCommitOnFocusLost(TRUE); - mDescEditor->setFocusReceivedCallback(onFocusReceived); + mDescEditor->setFocusReceivedCallback(onFocusReceived, this); mDescEditor->setCommitCallback(onCommitAny); mDescEditor->setCallbackUserData(this); mDescEditor->setTabToNextField(TRUE); @@ -847,17 +847,21 @@ void LLPanelClassified::confirmPublish(S32 option) } // Tell all the widgets to reset their dirty state since the ad was just saved - mSnapshotCtrl->resetDirty(); - mNameEditor->resetDirty(); - mDescEditor->resetDirty(); - mLocationEditor->resetDirty(); + if (mSnapshotCtrl) + mSnapshotCtrl->resetDirty(); + if (mNameEditor) + mNameEditor->resetDirty(); + if (mDescEditor) + mDescEditor->resetDirty(); + if (mLocationEditor) + mLocationEditor->resetDirty(); mLocationChanged = false; - mCategoryCombo->resetDirty(); - mMatureCheck->resetDirty(); + if (mCategoryCombo) + mCategoryCombo->resetDirty(); + if (mMatureCheck) + mMatureCheck->resetDirty(); if (mAutoRenewCheck) - { mAutoRenewCheck->resetDirty(); - } } // static @@ -964,10 +968,10 @@ void LLPanelClassified::onCommitAny(LLUICtrl* ctrl, void* data) } // static -void LLPanelClassified::onFocusReceived(LLUICtrl* ctrl, void* data) +void LLPanelClassified::onFocusReceived(LLFocusableElement* ctrl, void* data) { // allow the data to be saved - onCommitAny(ctrl, data); + onCommitAny((LLUICtrl*)ctrl, data); } diff --git a/linden/indra/newview/llpanelclassified.h b/linden/indra/newview/llpanelclassified.h index 88f6b52..9c39d1b 100644 --- a/linden/indra/newview/llpanelclassified.h +++ b/linden/indra/newview/llpanelclassified.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -112,7 +112,7 @@ protected: static void onClickProfile(void* data); static void onClickSet(void* data); - static void onFocusReceived(LLUICtrl* ctrl, void* data); + static void onFocusReceived(LLFocusableElement* ctrl, void* data); static void onCommitAny(LLUICtrl* ctrl, void* data); BOOL checkDirty(); // Update and return mDirty diff --git a/linden/indra/newview/llpanelcontents.cpp b/linden/indra/newview/llpanelcontents.cpp index 672cbb5..631f1a7 100644 --- a/linden/indra/newview/llpanelcontents.cpp +++ b/linden/indra/newview/llpanelcontents.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelcontents.h b/linden/indra/newview/llpanelcontents.h index 6484be3..c53db90 100644 --- a/linden/indra/newview/llpanelcontents.h +++ b/linden/indra/newview/llpanelcontents.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpaneldebug.cpp b/linden/indra/newview/llpaneldebug.cpp index 7e5f458..288302b 100644 --- a/linden/indra/newview/llpaneldebug.cpp +++ b/linden/indra/newview/llpaneldebug.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpaneldebug.h b/linden/indra/newview/llpaneldebug.h index ee8f137..c849027 100644 --- a/linden/indra/newview/llpaneldebug.h +++ b/linden/indra/newview/llpaneldebug.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpaneldirbrowser.cpp b/linden/indra/newview/llpaneldirbrowser.cpp index 5b37335..5d3236d 100644 --- a/linden/indra/newview/llpaneldirbrowser.cpp +++ b/linden/indra/newview/llpaneldirbrowser.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -177,7 +177,7 @@ void LLPanelDirBrowser::resetSearchStart() // protected void LLPanelDirBrowser::updateResultCount() { - LLCtrlListInterface *list = childGetListInterface("results"); + LLScrollListCtrl* list = gUICtrlFactory->getScrollListByName(this, "results"); if (!list) return; S32 result_count = list->getItemCount(); @@ -203,7 +203,7 @@ void LLPanelDirBrowser::updateResultCount() // add none found response if (list->getItemCount() == 0) { - list->addSimpleElement("None found."); + list->addCommentText(getFormattedUIString("not_found_text")); list->operateOnAll(LLCtrlListInterface::OP_DESELECT); } } @@ -1159,7 +1159,7 @@ void LLPanelDirBrowser::renameClassified(const LLUUID& classified_id, const char void LLPanelDirBrowser::setupNewSearch() { - LLCtrlListInterface *list = childGetListInterface("results"); + LLScrollListCtrl* list = gUICtrlFactory->getScrollListByName(this, "results"); if (!list) return; gDirBrowserInstances.removeData(mSearchID); @@ -1170,7 +1170,7 @@ void LLPanelDirBrowser::setupNewSearch() // ready the list for results list->operateOnAll(LLCtrlListInterface::OP_DELETE); - list->addSimpleElement("Searching..."); + list->addCommentText(getFormattedUIString("searching_text")); childDisable("results"); mResultsReceived = 0; @@ -1220,10 +1220,10 @@ void LLPanelDirBrowser::sendDirFindQuery( void LLPanelDirBrowser::addHelpText(const char* text) { - LLCtrlListInterface *list = childGetListInterface("results"); + LLScrollListCtrl* list = gUICtrlFactory->getScrollListByName(this, "results"); if (!list) return; - list->addSimpleElement(text); + list->addCommentText(text); childDisable("results"); } diff --git a/linden/indra/newview/llpaneldirbrowser.h b/linden/indra/newview/llpaneldirbrowser.h index fae9dc2..6b8578f 100644 --- a/linden/indra/newview/llpaneldirbrowser.h +++ b/linden/indra/newview/llpaneldirbrowser.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpaneldirclassified.cpp b/linden/indra/newview/llpaneldirclassified.cpp index 9877a71..52b10b2 100644 --- a/linden/indra/newview/llpaneldirclassified.cpp +++ b/linden/indra/newview/llpaneldirclassified.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpaneldirclassified.h b/linden/indra/newview/llpaneldirclassified.h index b5e3fd2..c809dbc 100644 --- a/linden/indra/newview/llpaneldirclassified.h +++ b/linden/indra/newview/llpaneldirclassified.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpaneldirevents.cpp b/linden/indra/newview/llpaneldirevents.cpp index 9ae5f73..0d1e0e3 100644 --- a/linden/indra/newview/llpaneldirevents.cpp +++ b/linden/indra/newview/llpaneldirevents.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpaneldirevents.h b/linden/indra/newview/llpaneldirevents.h index d303f75..ac981d3 100644 --- a/linden/indra/newview/llpaneldirevents.h +++ b/linden/indra/newview/llpaneldirevents.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpaneldirfind.cpp b/linden/indra/newview/llpaneldirfind.cpp index 2e887f9..b3d1580 100644 --- a/linden/indra/newview/llpaneldirfind.cpp +++ b/linden/indra/newview/llpaneldirfind.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -137,6 +137,9 @@ BOOL LLPanelDirFindAll::postBuild() mWebBrowser->setOpenInInternalBrowser( false ); mWebBrowser->setOpenInExternalBrowser( false ); + // need to handle secondlife:///app/ URLs for direct teleports + mWebBrowser->setOpenAppSLURLs( true ); + // redirect 404 pages from S3 somewhere else mWebBrowser->set404RedirectUrl( childGetText("redirect_404_url") ); diff --git a/linden/indra/newview/llpaneldirfind.h b/linden/indra/newview/llpaneldirfind.h index 9ac6b91..fdf95d7 100644 --- a/linden/indra/newview/llpaneldirfind.h +++ b/linden/indra/newview/llpaneldirfind.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpaneldirgroups.cpp b/linden/indra/newview/llpaneldirgroups.cpp index 0818598..777908d 100644 --- a/linden/indra/newview/llpaneldirgroups.cpp +++ b/linden/indra/newview/llpaneldirgroups.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpaneldirgroups.h b/linden/indra/newview/llpaneldirgroups.h index 1e1083a..4d44143 100644 --- a/linden/indra/newview/llpaneldirgroups.h +++ b/linden/indra/newview/llpaneldirgroups.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpaneldirland.cpp b/linden/indra/newview/llpaneldirland.cpp index 715b9ca..d376ccf 100644 --- a/linden/indra/newview/llpaneldirland.cpp +++ b/linden/indra/newview/llpaneldirland.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpaneldirland.h b/linden/indra/newview/llpaneldirland.h index 9e86904..0ccfa51 100644 --- a/linden/indra/newview/llpaneldirland.h +++ b/linden/indra/newview/llpaneldirland.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpaneldirpeople.cpp b/linden/indra/newview/llpaneldirpeople.cpp index 68b5b3c..bca502a 100644 --- a/linden/indra/newview/llpaneldirpeople.cpp +++ b/linden/indra/newview/llpaneldirpeople.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpaneldirpeople.h b/linden/indra/newview/llpaneldirpeople.h index 8bc4320..14c4639 100644 --- a/linden/indra/newview/llpaneldirpeople.h +++ b/linden/indra/newview/llpaneldirpeople.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpaneldirplaces.cpp b/linden/indra/newview/llpaneldirplaces.cpp index 2adb50d..ebeca07 100644 --- a/linden/indra/newview/llpaneldirplaces.cpp +++ b/linden/indra/newview/llpaneldirplaces.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpaneldirplaces.h b/linden/indra/newview/llpaneldirplaces.h index 14cf3b0..7bc2b08 100644 --- a/linden/indra/newview/llpaneldirplaces.h +++ b/linden/indra/newview/llpaneldirplaces.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpaneldirpopular.cpp b/linden/indra/newview/llpaneldirpopular.cpp index 470d4a8..5a94275 100644 --- a/linden/indra/newview/llpaneldirpopular.cpp +++ b/linden/indra/newview/llpaneldirpopular.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpaneldirpopular.h b/linden/indra/newview/llpaneldirpopular.h index b98c79a..c3f5de3 100644 --- a/linden/indra/newview/llpaneldirpopular.h +++ b/linden/indra/newview/llpaneldirpopular.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpaneldisplay.cpp b/linden/indra/newview/llpaneldisplay.cpp index 1647583..81b173a 100644 --- a/linden/indra/newview/llpaneldisplay.cpp +++ b/linden/indra/newview/llpaneldisplay.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpaneldisplay.h b/linden/indra/newview/llpaneldisplay.h index b523c4a..7251ac3 100644 --- a/linden/indra/newview/llpaneldisplay.h +++ b/linden/indra/newview/llpaneldisplay.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelevent.cpp b/linden/indra/newview/llpanelevent.cpp index 4007a2c..403684c 100644 --- a/linden/indra/newview/llpanelevent.cpp +++ b/linden/indra/newview/llpanelevent.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelevent.h b/linden/indra/newview/llpanelevent.h index df8f372..a3d474f 100644 --- a/linden/indra/newview/llpanelevent.h +++ b/linden/indra/newview/llpanelevent.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelface.cpp b/linden/indra/newview/llpanelface.cpp index 70cb7a0..5ae7b55 100644 --- a/linden/indra/newview/llpanelface.cpp +++ b/linden/indra/newview/llpanelface.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -870,7 +870,7 @@ void LLPanelFace::onClickApply(void* userdata) { LLPanelFace* self = (LLPanelFace*) userdata; - gFocusMgr.setKeyboardFocus( NULL, NULL ); + gFocusMgr.setKeyboardFocus( NULL ); //F32 repeats_per_meter = self->mCtrlRepeatsPerMeter->get(); F32 repeats_per_meter = (F32)self->childGetValue( "rptctrl" ).asReal();//self->mCtrlRepeatsPerMeter->get(); diff --git a/linden/indra/newview/llpanelface.h b/linden/indra/newview/llpanelface.h index 4b536d9..9e35003 100644 --- a/linden/indra/newview/llpanelface.h +++ b/linden/indra/newview/llpanelface.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelgeneral.cpp b/linden/indra/newview/llpanelgeneral.cpp index 9da5ffc..5831ed1 100644 --- a/linden/indra/newview/llpanelgeneral.cpp +++ b/linden/indra/newview/llpanelgeneral.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -238,5 +238,5 @@ void LLPanelGeneral::cancel() void LLPanelGeneral::clickShowStartLocation(LLUICtrl*, void* user_data) { - LLPanelLogin::loadLoginPage(); + LLPanelLogin::refreshLocation( false ); // in case LLPanelLogin is visible } diff --git a/linden/indra/newview/llpanelgeneral.h b/linden/indra/newview/llpanelgeneral.h index c51b16f..cd818b9 100644 --- a/linden/indra/newview/llpanelgeneral.h +++ b/linden/indra/newview/llpanelgeneral.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelgroup.cpp b/linden/indra/newview/llpanelgroup.cpp index 2a04db4..e26d1d2 100644 --- a/linden/indra/newview/llpanelgroup.cpp +++ b/linden/indra/newview/llpanelgroup.cpp @@ -11,12 +11,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelgroup.h b/linden/indra/newview/llpanelgroup.h index 3dfcdc2..6e22ebc 100644 --- a/linden/indra/newview/llpanelgroup.h +++ b/linden/indra/newview/llpanelgroup.h @@ -11,12 +11,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelgroupgeneral.cpp b/linden/indra/newview/llpanelgroupgeneral.cpp index e6449fa..16e2ab7 100644 --- a/linden/indra/newview/llpanelgroupgeneral.cpp +++ b/linden/indra/newview/llpanelgroupgeneral.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -114,8 +114,8 @@ BOOL LLPanelGroupGeneral::postBuild() if(mEditCharter) { mEditCharter->setCommitCallback(onCommitAny); - mEditCharter->setFocusReceivedCallback(onCommitAny); - mEditCharter->setFocusChangedCallback(onCommitAny); + mEditCharter->setFocusReceivedCallback(onFocusEdit, this); + mEditCharter->setFocusChangedCallback(onFocusEdit, this); mEditCharter->setCallbackUserData(this); } @@ -259,6 +259,14 @@ BOOL LLPanelGroupGeneral::postBuild() } // static +void LLPanelGroupGeneral::onFocusEdit(LLFocusableElement* ctrl, void* data) +{ + LLPanelGroupGeneral* self = (LLPanelGroupGeneral*)data; + self->mChanged = TRUE; + self->notifyObservers(); +} + +// static void LLPanelGroupGeneral::onCommitAny(LLUICtrl* ctrl, void* data) { LLPanelGroupGeneral* self = (LLPanelGroupGeneral*)data; diff --git a/linden/indra/newview/llpanelgroupgeneral.h b/linden/indra/newview/llpanelgroupgeneral.h index aa9a823..5c8b791 100644 --- a/linden/indra/newview/llpanelgroupgeneral.h +++ b/linden/indra/newview/llpanelgroupgeneral.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -66,6 +66,7 @@ public: virtual void draw(); private: + static void onFocusEdit(LLFocusableElement* ctrl, void* data); static void onCommitAny(LLUICtrl* ctrl, void* data); static void onCommitUserOnly(LLUICtrl* ctrl, void* data); static void onCommitTitle(LLUICtrl* ctrl, void* data); diff --git a/linden/indra/newview/llpanelgroupinvite.cpp b/linden/indra/newview/llpanelgroupinvite.cpp index 5276088..0879ae5 100644 --- a/linden/indra/newview/llpanelgroupinvite.cpp +++ b/linden/indra/newview/llpanelgroupinvite.cpp @@ -11,12 +11,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelgroupinvite.h b/linden/indra/newview/llpanelgroupinvite.h index 81576e0..497f97a 100644 --- a/linden/indra/newview/llpanelgroupinvite.h +++ b/linden/indra/newview/llpanelgroupinvite.h @@ -11,12 +11,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelgrouplandmoney.cpp b/linden/indra/newview/llpanelgrouplandmoney.cpp index 85fd6f6..483aff1 100644 --- a/linden/indra/newview/llpanelgrouplandmoney.cpp +++ b/linden/indra/newview/llpanelgrouplandmoney.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -238,7 +238,7 @@ void LLPanelGroupLandMoney::impl::onMapButton() F32 global_x = 0.f; F32 global_y = 0.f; - sscanf(cellp->getText().c_str(), "%f %f", &global_x, &global_y); + sscanf(cellp->getValue().asString().c_str(), "%f %f", &global_x, &global_y); // Hack: Use the agent's z-height F64 global_z = gAgent.getPositionGlobal().mdV[VZ]; @@ -665,7 +665,7 @@ BOOL LLPanelGroupLandMoney::postBuild() { if ( mImplementationp->mGroupParcelsp ) { - mImplementationp->mGroupParcelsp->addSimpleItem( + mImplementationp->mGroupParcelsp->addCommentText( mImplementationp->mCantViewParcelsText); mImplementationp->mGroupParcelsp->setEnabled(FALSE); } diff --git a/linden/indra/newview/llpanelgrouplandmoney.h b/linden/indra/newview/llpanelgrouplandmoney.h index 9b63fb8..1ee9861 100644 --- a/linden/indra/newview/llpanelgrouplandmoney.h +++ b/linden/indra/newview/llpanelgrouplandmoney.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelgroupnotices.cpp b/linden/indra/newview/llpanelgroupnotices.cpp index 448b4b8..5fdfdba 100644 --- a/linden/indra/newview/llpanelgroupnotices.cpp +++ b/linden/indra/newview/llpanelgroupnotices.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -473,7 +473,7 @@ void LLPanelGroupNotices::processNotices(LLMessageSystem* msg) if (1 == count && id.isNull()) { // Only one entry, the dummy entry. - mNoticesList->addSimpleItem(mNoNoticesStr,ADD_BOTTOM,FALSE); + mNoticesList->addCommentText(mNoNoticesStr); mNoticesList->setEnabled(FALSE); return; } diff --git a/linden/indra/newview/llpanelgroupnotices.h b/linden/indra/newview/llpanelgroupnotices.h index 193828e..b09a201 100644 --- a/linden/indra/newview/llpanelgroupnotices.h +++ b/linden/indra/newview/llpanelgroupnotices.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelgrouproles.cpp b/linden/indra/newview/llpanelgrouproles.cpp index 7ac59a3..3401bee 100644 --- a/linden/indra/newview/llpanelgrouproles.cpp +++ b/linden/indra/newview/llpanelgrouproles.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -790,7 +790,6 @@ void LLPanelGroupSubTab::buildActionCategory(LLScrollListCtrl* ctrl, { row["columns"][column_index]["column"] = "checkbox"; row["columns"][column_index]["type"] = "checkbox"; - row["columns"][column_index]["value"] = (*ra_it)->mName; check_box_index = column_index; ++column_index; } @@ -1058,7 +1057,7 @@ void LLPanelGroupMembersSubTab::handleMemberSelect() if (mi == gdatap->mMembers.end()) continue; LLGroupMemberData* member_data = (*mi).second; // Is the member an owner? - if ( member_data->isInRole(gdatap->mOwnerRole) ) + if ( member_data && member_data->isInRole(gdatap->mOwnerRole) ) { // Can't remove other owners. cb_enable = FALSE; @@ -1682,7 +1681,7 @@ void LLPanelGroupMembersSubTab::update(LLGroupChange gc) retrieved << "Retrieving role member mappings..."; } mMembersList->setEnabled(FALSE); - mMembersList->addSimpleItem(retrieved.str()); + mMembersList->addCommentText(retrieved.str()); } } @@ -1762,7 +1761,7 @@ void LLPanelGroupMembersSubTab::updateMembers() else { mMembersList->setEnabled(FALSE); - mMembersList->addSimpleItem("No match."); + mMembersList->addCommentText("No match."); } } else @@ -1870,7 +1869,7 @@ BOOL LLPanelGroupRolesSubTab::postBuildSubTab(LLView* root) mRoleDescription->setCommitOnFocusLost(TRUE); mRoleDescription->setCallbackUserData(this); mRoleDescription->setCommitCallback(onDescriptionCommit); - mRoleDescription->setFocusReceivedCallback(onDescriptionCommit); + mRoleDescription->setFocusReceivedCallback(onDescriptionFocus, this); setFooterEnabled(FALSE); @@ -2329,6 +2328,16 @@ void LLPanelGroupRolesSubTab::onPropertiesKey(LLLineEditor* ctrl, void* user_dat } // static +void LLPanelGroupRolesSubTab::onDescriptionFocus(LLFocusableElement* ctrl, void* user_data) +{ + LLPanelGroupRolesSubTab* self = static_cast(user_data); + if (!self) return; + + self->mHasRoleChange = TRUE; + self->notifyObservers(); +} + +// static void LLPanelGroupRolesSubTab::onDescriptionCommit(LLUICtrl* ctrl, void* user_data) { LLPanelGroupRolesSubTab* self = static_cast(user_data); @@ -2665,7 +2674,7 @@ void LLPanelGroupActionsSubTab::handleActionSelect() if (!rmd) continue; if ((rmd->getRoleData().mRolePowers & power_mask) == power_mask) { - mActionRoles->addSimpleItem(rmd->getRoleData().mRoleName); + mActionRoles->addSimpleElement(rmd->getRoleData().mRoleName); } } } diff --git a/linden/indra/newview/llpanelgrouproles.h b/linden/indra/newview/llpanelgrouproles.h index 40c2508..a44f1a3 100644 --- a/linden/indra/newview/llpanelgrouproles.h +++ b/linden/indra/newview/llpanelgrouproles.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -256,6 +256,7 @@ public: static void onPropertiesKey(LLLineEditor*, void*); static void onDescriptionCommit(LLUICtrl*, void*); + static void onDescriptionFocus(LLFocusableElement*, void*); static void onMemberVisibilityChange(LLUICtrl*, void*); void handleMemberVisibilityChange(bool value); diff --git a/linden/indra/newview/llpanelgroupvoting.cpp b/linden/indra/newview/llpanelgroupvoting.cpp index 09fa254..b78d5c2 100644 --- a/linden/indra/newview/llpanelgroupvoting.cpp +++ b/linden/indra/newview/llpanelgroupvoting.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -42,11 +42,13 @@ #include "llpanelgroupvoting.h" #include "llnamelistctrl.h" #include "llbutton.h" +#include "llnotify.h" #include "llagent.h" #include "llfocusmgr.h" #include "llviewercontrol.h" #include "llviewerwindow.h" +#include "llviewerregion.h" class LLPanelGroupVoting::impl { @@ -299,7 +301,8 @@ void LLPanelGroupVoting::impl::setEnableVoteProposal() LLScrollListCell * proposal_cell = item->getColumn(1); if ( proposal_cell ) { - mProposalText->setText(proposal_cell->getText()); //proposal text + //proposal text + mProposalText->setText(proposal_cell->getValue().asString()); } else { // Something's wrong... should have some text @@ -309,7 +312,8 @@ void LLPanelGroupVoting::impl::setEnableVoteProposal() proposal_cell = item->getColumn(2); if (proposal_cell) { - mEndDate->setText(proposal_cell->getText()); //end date + //end date + mEndDate->setText(proposal_cell->getValue().asString()); } else { // Something's wrong... should have some text @@ -320,7 +324,8 @@ void LLPanelGroupVoting::impl::setEnableVoteProposal() proposal_cell = item->getColumn(3); if (proposal_cell) { - already_voted = proposal_cell->getText(); //already voted + //already voted + already_voted = proposal_cell->getValue().asString(); } else { // Something's wrong... should have some text @@ -330,7 +335,8 @@ void LLPanelGroupVoting::impl::setEnableVoteProposal() proposal_cell = item->getColumn(5); if (proposal_cell) { - mStartDate->setText(proposal_cell->getText()); //start date + //start date + mStartDate->setText(proposal_cell->getValue().asString()); } else { // Something's wrong... should have some text @@ -340,14 +346,17 @@ void LLPanelGroupVoting::impl::setEnableVoteProposal() proposal_cell = item->getColumn(6); if (proposal_cell) { - vote_cast = proposal_cell->getText(); // Vote Cast + // Vote Cast + vote_cast = proposal_cell->getValue().asString(); } // col 8: Vote Initiator proposal_cell = item->getColumn(8); if (proposal_cell) { - mQuorum->set((F32)atoi(proposal_cell->getText().c_str())); //quorum + //quorum + mQuorum->set( + (F32)atoi(proposal_cell->getValue().asString().c_str())); } else { @@ -358,7 +367,9 @@ void LLPanelGroupVoting::impl::setEnableVoteProposal() proposal_cell = item->getColumn(9); if (proposal_cell) { - majority = (F32)atof(proposal_cell->getText().c_str()); //majority + //majority + majority = + (F32)atof(proposal_cell->getValue().asString().c_str()); } if(majority == 0.0f) @@ -540,7 +551,7 @@ void LLPanelGroupVoting::impl::setEnableHistoryItem() const LLScrollListCell *cell = item->getColumn(5); if (cell) { - mVoteHistoryText->setText(cell->getText()); + mVoteHistoryText->setText(cell->getValue().asString()); } else { // Something's wrong... @@ -593,6 +604,78 @@ void LLPanelGroupVoting::impl::sendGroupProposalsRequest(const LLUUID& group_id) gAgent.sendReliableMessage(); } +void LLPanelGroupVoting::handleResponse(void *userdata, ResponseType response, bool success) +{ + impl* self = (impl*)userdata; + if ( self ) + { + //refresh the proposals now that we've hit no + self->sendGroupProposalsRequest(self->mGroupID); + + if (response == BALLOT) + { + LLString::format_map_t args; + + if (success) + { + args["[MESSAGE]"] = self->mPanel.childGetText("vote_recorded"); + } + else + { + args["[MESSAGE]"] = self->mPanel.childGetText("vote_previously_recorded"); + } + + LLNotifyBox::showXml("SystemMessage", args); + + self->sendGroupVoteHistoryRequest(self->mGroupID); + } + self->setEnableListProposals(); + } +} + +class LLStartGroupVoteResponder : public LLHTTPClient::Responder +{ +public: + LLStartGroupVoteResponder(void *userdata) : mUserData(userdata) {}; + //If we get back a normal response, handle it here + virtual void result(const LLSD& content) + { + //Ack'd the proposal initialization, now let's finish up. + LLPanelGroupVoting::handleResponse(mUserData,LLPanelGroupVoting::START_VOTE); + } + + //If we get back an error (not found, etc...), handle it here + virtual void error(U32 status, const std::string& reason) + { + llinfos << "LLPanelGroupVotingResponder::error " + << status << ": " << reason << llendl; + } +private: + void *mUserData; +}; + +class LLGroupProposalBallotResponder : public LLHTTPClient::Responder +{ +public: + LLGroupProposalBallotResponder(void *userdata) : mUserData(userdata) {}; + //If we get back a normal response, handle it here + virtual void result(const LLSD& content) + { + //Ack'd the proposal initialization, now let's finish up. + + LLPanelGroupVoting::handleResponse(mUserData,LLPanelGroupVoting::BALLOT,content["voted"].asBoolean()); + } + + //If we get back an error (not found, etc...), handle it here + virtual void error(U32 status, const std::string& reason) + { + llinfos << "LLPanelGroupVotingResponder::error " + << status << ": " << reason << llendl; + } +private: + void *mUserData; +}; + void LLPanelGroupVoting::impl::sendStartGroupProposal() { if ( !gAgent.hasPowerInGroup(mGroupID, GP_PROPOSAL_START) ) @@ -616,41 +699,88 @@ void LLPanelGroupVoting::impl::sendStartGroupProposal() S32 quorum = llfloor(mQuorum->get()); - LLMessageSystem *msg = gMessageSystem; + //*************************************Conversion to capability + LLSD body; - msg->newMessageFast(_PREHASH_StartGroupProposal); - msg->nextBlockFast(_PREHASH_AgentData); - msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID() ); - msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID() ); + std::string url = gAgent.getRegion()->getCapability("StartGroupProposal"); - msg->nextBlockFast(_PREHASH_ProposalData); - msg->addUUIDFast(_PREHASH_GroupID, mGroupID); - msg->addF32Fast(_PREHASH_Majority, majority ); - msg->addS32Fast(_PREHASH_Quorum, quorum ); - msg->addS32Fast(_PREHASH_Duration, duration_seconds ); - msg->addStringFast(_PREHASH_ProposalText, mProposalText->getText().c_str()); + if (!url.empty()) + { + body["agent-id"] = gAgent.getID(); + body["session-id"] = gAgent.getSessionID(); - gAgent.sendReliableMessage(); + body["group-id"] = mGroupID; + body["majority"] = majority; + body["quorum"] = quorum; + body["duration"] = duration_seconds; + body["proposal-text"] = mProposalText->getText(); + + LLHTTPClient::post(url, body, new LLStartGroupVoteResponder((void*)this)); + } + else + { //DEPRECATED!!!!!!! This is a fallback just in case our backend cap is not there. Delete this block ASAP! + LLMessageSystem *msg = gMessageSystem; + + msg->newMessageFast(_PREHASH_StartGroupProposal); + msg->nextBlockFast(_PREHASH_AgentData); + msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID() ); + msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID() ); + + msg->nextBlockFast(_PREHASH_ProposalData); + msg->addUUIDFast(_PREHASH_GroupID, mGroupID); + msg->addF32Fast(_PREHASH_Majority, majority ); + msg->addS32Fast(_PREHASH_Quorum, quorum ); + msg->addS32Fast(_PREHASH_Duration, duration_seconds ); + msg->addStringFast(_PREHASH_ProposalText, mProposalText->getText().c_str()); + + gAgent.sendReliableMessage(); + + //This code was moved from the callers to here as part of deprecation. + sendGroupProposalsRequest(mGroupID); + setEnableListProposals(); + } } void LLPanelGroupVoting::impl::sendGroupProposalBallot(const char* vote) { if ( !gAgent.hasPowerInGroup(mGroupID, GP_PROPOSAL_VOTE) ) return; + + LLSD body; - LLMessageSystem *msg = gMessageSystem; + std::string url = gAgent.getRegion()->getCapability("GroupProposalBallot"); - msg->newMessageFast(_PREHASH_GroupProposalBallot); - msg->nextBlockFast(_PREHASH_AgentData); - msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID() ); - msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID() ); + if (!url.empty()) + { + body["agent-id"] = gAgent.getID(); + body["session-id"] = gAgent.getSessionID(); + body["proposal-id"] = mProposalID; + body["group-id"] = mGroupID; + body["vote"] = vote; + + LLHTTPClient::post(url, body, new LLGroupProposalBallotResponder((void*)this)); + } + else + { //DEPRECATED!!!!!!! This is a fallback just in case our backend cap is not there. Delete this block ASAP! + LLMessageSystem *msg = gMessageSystem; - msg->nextBlockFast(_PREHASH_ProposalData); - msg->addUUIDFast(_PREHASH_ProposalID, mProposalID); - msg->addUUIDFast(_PREHASH_GroupID, mGroupID); - msg->addStringFast(_PREHASH_VoteCast, vote); + msg->newMessageFast(_PREHASH_GroupProposalBallot); + msg->nextBlockFast(_PREHASH_AgentData); + msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID() ); + msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID() ); - gAgent.sendReliableMessage(); + msg->nextBlockFast(_PREHASH_ProposalData); + msg->addUUIDFast(_PREHASH_ProposalID, mProposalID); + msg->addUUIDFast(_PREHASH_GroupID, mGroupID); + msg->addStringFast(_PREHASH_VoteCast, vote); + + gAgent.sendReliableMessage(); + + //This code was moved from the callers to here as part of deprecation. + sendGroupProposalsRequest(mGroupID); + sendGroupVoteHistoryRequest(mGroupID); + setEnableListProposals(); + } } void LLPanelGroupVoting::impl::sendGroupVoteHistoryRequest(const LLUUID& group_id) @@ -711,18 +841,12 @@ void LLPanelGroupVoting::impl::addPendingActiveScrollListItem(unsigned int curre void LLPanelGroupVoting::impl::addNoActiveScrollListItem(EAddPosition pos) { - LLSD row; - row["columns"][0]["value"] = "There are currently no active proposals"; - row["columns"][0]["font"] = "SANSSERIF_SMALL"; - mProposals->addElement(row, pos); + mProposals->addCommentText("There are currently no active proposals", pos); } void LLPanelGroupVoting::impl::addNoHistoryScrollListItem(EAddPosition pos) { - LLSD row; - row["columns"][0]["value"] = "There are currently no archived proposals"; - row["columns"][0]["font"] = "SANSSERIF_SMALL"; - mVotesHistory->addElement(row, pos); + mVotesHistory->addCommentText("There are currently no archived proposals", pos); } void LLPanelGroupVoting::impl::addPendingHistoryScrollListItem(unsigned int current, @@ -1102,11 +1226,6 @@ void LLPanelGroupVoting::impl::onClickYes(void *userdata) { self->mPanel.childSetText("proposal_instructions", self->mPanel.childGetText("proposals_submit_yes_txt")); self->sendGroupProposalBallot("Yes"); - - //refresh the proposals now that we've hit yes - self->sendGroupProposalsRequest(self->mGroupID); - self->sendGroupVoteHistoryRequest(self->mGroupID); - self->setEnableListProposals(); } } @@ -1119,11 +1238,6 @@ void LLPanelGroupVoting::impl::onClickNo(void *userdata) { self->mPanel.childSetText("proposal_instructions", self->mPanel.childGetText("proposals_submit_no_txt")); self->sendGroupProposalBallot("No"); - - //refresh the proposals now that we've hit no - self->sendGroupProposalsRequest(self->mGroupID); - self->sendGroupVoteHistoryRequest(self->mGroupID); - self->setEnableListProposals(); } } @@ -1136,18 +1250,14 @@ void LLPanelGroupVoting::impl::onClickAbstain(void *userdata) { self->mPanel.childSetText("proposal_instructions", self->mPanel.childGetText("proposals_submit_abstain_txt")); self->sendGroupProposalBallot("Abstain"); - - //refresh the proposals now that we've hit abstain - self->sendGroupProposalsRequest(self->mGroupID); - self->sendGroupVoteHistoryRequest(self->mGroupID); - self->setEnableListProposals(); } } + //static void LLPanelGroupVoting::impl::onClickSubmitProposal(void *userdata) { - gFocusMgr.setKeyboardFocus(NULL, NULL); + gFocusMgr.setKeyboardFocus(NULL); impl* self = (impl*)userdata; if ( self && self->mProposalText ) @@ -1165,10 +1275,6 @@ void LLPanelGroupVoting::impl::onClickSubmitProposal(void *userdata) self->mPanel.childSetText("proposal_instructions", self->mPanel.childGetText("proposals_submit_new_txt")); self->sendStartGroupProposal(); - - //refresh the proposals now that we've submitted a new one - self->sendGroupProposalsRequest(self->mGroupID); - self->setEnableListProposals(); } } diff --git a/linden/indra/newview/llpanelgroupvoting.h b/linden/indra/newview/llpanelgroupvoting.h index bc9735a..3d56f69 100644 --- a/linden/indra/newview/llpanelgroupvoting.h +++ b/linden/indra/newview/llpanelgroupvoting.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -37,6 +37,12 @@ class LLPanelGroupVoting : public LLPanelGroupTab { public: + enum ResponseType + { + START_VOTE, + BALLOT + }; + LLPanelGroupVoting(const std::string& name, const LLUUID& group_id); virtual ~LLPanelGroupVoting(); @@ -49,7 +55,7 @@ public: virtual bool needsApply(LLString& mesg); virtual bool apply(LLString& mesg); virtual void update(LLGroupChange gc); - + static void handleResponse(void *userdata, ResponseType response, bool succes=true); protected: class impl; impl* mImpl; diff --git a/linden/indra/newview/llpanelinput.cpp b/linden/indra/newview/llpanelinput.cpp index 39d73d1..77ebec9 100644 --- a/linden/indra/newview/llpanelinput.cpp +++ b/linden/indra/newview/llpanelinput.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelinput.h b/linden/indra/newview/llpanelinput.h index 04a375c..0a50462 100644 --- a/linden/indra/newview/llpanelinput.h +++ b/linden/indra/newview/llpanelinput.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelinventory.cpp b/linden/indra/newview/llpanelinventory.cpp index 2162ce9..e39f45f 100644 --- a/linden/indra/newview/llpanelinventory.cpp +++ b/linden/indra/newview/llpanelinventory.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelinventory.h b/linden/indra/newview/llpanelinventory.h index e936679..ddd9c5d 100644 --- a/linden/indra/newview/llpanelinventory.h +++ b/linden/indra/newview/llpanelinventory.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelland.cpp b/linden/indra/newview/llpanelland.cpp index 5b94e34..2dfc911 100644 --- a/linden/indra/newview/llpanelland.cpp +++ b/linden/indra/newview/llpanelland.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelland.h b/linden/indra/newview/llpanelland.h index 7e34ed0..c83bf2c 100644 --- a/linden/indra/newview/llpanelland.h +++ b/linden/indra/newview/llpanelland.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanellandobjects.cpp b/linden/indra/newview/llpanellandobjects.cpp index ebc6419..db7273b 100644 --- a/linden/indra/newview/llpanellandobjects.cpp +++ b/linden/indra/newview/llpanellandobjects.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanellandobjects.h b/linden/indra/newview/llpanellandobjects.h index af4aed0..68f5c17 100644 --- a/linden/indra/newview/llpanellandobjects.h +++ b/linden/indra/newview/llpanellandobjects.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanellandoptions.cpp b/linden/indra/newview/llpanellandoptions.cpp index 5403dd6..bd88a21 100644 --- a/linden/indra/newview/llpanellandoptions.cpp +++ b/linden/indra/newview/llpanellandoptions.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanellandoptions.h b/linden/indra/newview/llpanellandoptions.h index 0762958..1c0d058 100644 --- a/linden/indra/newview/llpanellandoptions.h +++ b/linden/indra/newview/llpanellandoptions.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanellogin.cpp b/linden/indra/newview/llpanellogin.cpp index d0f2041..6029c2f 100644 --- a/linden/indra/newview/llpanellogin.cpp +++ b/linden/indra/newview/llpanellogin.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -38,7 +38,6 @@ #include "llfontgl.h" #include "llmd5.h" #include "llsecondlifeurls.h" -#include "llwindow.h" // shell_open() #include "llversionviewer.h" #include "v4color.h" @@ -71,11 +70,13 @@ #include "llweb.h" #include "llwebbrowserctrl.h" -#include "llfloaterhtmlhelp.h" +#include "llfloaterhtml.h" +//#include "llfloaterhtmlhelp.h" #include "llfloatertos.h" #include "llglheaders.h" +#define USE_VIEWER_AUTH 0 LLString load_password_from_disk(void); void save_password_to_disk(const char* hashed_password); @@ -84,12 +85,14 @@ const S32 BLACK_BORDER_HEIGHT = 160; const S32 MAX_PASSWORD = 16; LLPanelLogin *LLPanelLogin::sInstance = NULL; +BOOL LLPanelLogin::sCapslockDidNotification = FALSE; class LLLoginRefreshHandler : public LLCommandHandler { public: - LLLoginRefreshHandler() : LLCommandHandler("login_refresh") { } + // don't allow from external browsers + LLLoginRefreshHandler() : LLCommandHandler("login_refresh", false) { } bool handle(const LLSD& tokens, const LLSD& queryMap) { #if LL_LIBXUL_ENABLED @@ -351,15 +354,97 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, gUICtrlFactory->buildPanel(this, "panel_login.xml"); +#if USE_VIEWER_AUTH //leave room for the login menu bar setRect(LLRect(0, rect.getHeight()-18, rect.getWidth(), 0)); +#endif reshape(rect.getWidth(), rect.getHeight()); + +#if !USE_VIEWER_AUTH + childSetPrevalidate("first_name_edit", LLLineEditor::prevalidatePrintableNoSpace); + childSetPrevalidate("last_name_edit", LLLineEditor::prevalidatePrintableNoSpace); + + childSetCommitCallback("password_edit", mungePassword); + childSetKeystrokeCallback("password_edit", onPassKey, this); + childSetUserData("password_edit", this); + + LLLineEditor* edit = LLUICtrlFactory::getLineEditorByName(this, "password_edit"); + if (edit) edit->setDrawAsterixes(TRUE); + + LLComboBox* combo = LLUICtrlFactory::getComboBoxByName(this, "start_location_combo"); + if (combo) + { + combo->setAllowTextEntry(TRUE, 128, FALSE); + + // The XML file loads the combo with the following labels: + // 0 - "My Home" + // 1 - "My Last Location" + // 2 - "" + + BOOL login_last = gSavedSettings.getBOOL("LoginLastLocation"); + LLString sim_string = LLURLSimString::sInstance.mSimString; + if (!sim_string.empty()) + { + // Replace "" with this region name + combo->remove(2); + combo->add( sim_string ); + combo->setTextEntry(sim_string); + combo->setCurrentByIndex( 2 ); + } + else if (login_last) + { + combo->setCurrentByIndex( 1 ); + } + else + { + combo->setCurrentByIndex( 0 ); + } + + combo->setCommitCallback( &LLPanelGeneral::set_start_location ); + } + + childSetAction("connect_btn", onClickConnect, this); + + setDefaultBtn("connect_btn"); + + childSetAction("quit_btn", onClickQuit, this); + + LLTextBox* version_text = LLUICtrlFactory::getTextBoxByName(this, "version_text"); + if (version_text) + { + LLString version = llformat("%d.%d.%d (%d)", + LL_VERSION_MAJOR, + LL_VERSION_MINOR, + LL_VERSION_PATCH, + LL_VIEWER_BUILD ); + version_text->setText(version); + version_text->setClickedCallback(onClickVersion); + version_text->setCallbackUserData(this); + } + + LLTextBox* channel_text = LLUICtrlFactory::getTextBoxByName(this, "channel_text"); + if (channel_text) + { + channel_text->setText(gChannelName); + channel_text->setClickedCallback(onClickVersion); + channel_text->setCallbackUserData(this); + } + + LLTextBox* forgot_password_text = LLUICtrlFactory::getTextBoxByName(this, "forgot_password_text"); + if (forgot_password_text) + { + forgot_password_text->setClickedCallback(onClickForgotPassword); + } +#endif // get the web browser control #if LL_LIBXUL_ENABLED LLWebBrowserCtrl* web_browser = LLUICtrlFactory::getWebBrowserCtrlByName(this, "login_html"); if ( web_browser ) { + // Need to handle login secondlife:///app/ URLs + web_browser->setOpenAppSLURLs( true ); + // observe browser events web_browser->addObserver( this ); @@ -372,11 +457,15 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, // force the size to be correct (XML doesn't seem to be sufficient to do this) (with some padding so the other login screen doesn't show through) LLRect htmlRect = mRect; +#if USE_VIEWER_AUTH htmlRect.setCenterAndSize( mRect.getCenterX() - 2, mRect.getCenterY(), mRect.getWidth() + 6, mRect.getHeight()); +#else + htmlRect.setCenterAndSize( mRect.getCenterX() - 2, mRect.getCenterY() + 40, mRect.getWidth() + 6, mRect.getHeight() - 78 ); +#endif web_browser->setRect( htmlRect ); web_browser->reshape( htmlRect.getWidth(), htmlRect.getHeight(), TRUE ); - reshape( mRect.getWidth(), mRect.getHeight(), 1 ); - + reshape( mRect.getWidth(), mRect.getHeight(), 1 ); + // kick off a request to grab the url manually gResponsePtr = LLIamHereLogin::build( this ); std::string login_page = LLAppViewer::instance()->getLoginPage(); @@ -390,7 +479,10 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, mHtmlAvailable = FALSE; #endif +#if !USE_VIEWER_AUTH // Initialize visibility (and don't force visibility - use prefs) + refreshLocation( false ); +#endif } void LLPanelLogin::setSiteIsAlive( bool alive ) @@ -411,6 +503,17 @@ void LLPanelLogin::setSiteIsAlive( bool alive ) else // the site is not available (missing page, server down, other badness) { +#if !USE_VIEWER_AUTH + if ( web_browser ) + { + // hide browser control (revealing default one) + web_browser->setVisible( FALSE ); + + // mark as unavailable + mHtmlAvailable = FALSE; + } +#else + if ( web_browser ) { web_browser->navigateToLocalPage( "loading-error" , "index.html" ); @@ -418,12 +521,29 @@ void LLPanelLogin::setSiteIsAlive( bool alive ) // mark as available mHtmlAvailable = TRUE; } +#endif } + #else mHtmlAvailable = FALSE; #endif } +void LLPanelLogin::mungePassword(LLUICtrl* caller, void* user_data) +{ + LLPanelLogin* self = (LLPanelLogin*)user_data; + LLLineEditor* editor = (LLLineEditor*)caller; + std::string password = editor->getText(); + + // Re-md5 if we've changed at all + if (password != self->mIncomingPassword) + { + LLMD5 pass((unsigned char *)password.c_str()); + char munged_password[MD5HEX_STR_SIZE]; + pass.hex_digest(munged_password); + self->mMungedPassword = munged_password; + } +} LLPanelLogin::~LLPanelLogin() { @@ -458,8 +578,12 @@ void LLPanelLogin::draw() if ( mHtmlAvailable ) { +#if !USE_VIEWER_AUTH // draw a background box in black gl_rect_2d( 0, height - 264, width, 264, LLColor4( 0.0f, 0.0f, 0.0f, 1.f ) ); + // draw the bottom part of the background image - just the blue background to the native client UI + gl_draw_scaled_image(0, -264, width + 8, mLogoImage->getHeight(), mLogoImage); +#endif } else { @@ -527,14 +651,61 @@ BOOL LLPanelLogin::handleKeyHere(KEY key, MASK mask, BOOL called_from_parent) return LLPanel::handleKeyHere(key, mask, called_from_parent); } - + +// virtual +void LLPanelLogin::setFocus(BOOL b) +{ + if(b != hasFocus()) + { + if(b) + { + LLPanelLogin::giveFocus(); + } + else + { + LLPanel::setFocus(b); + } + } +} // static void LLPanelLogin::giveFocus() { - +#if USE_VIEWER_AUTH if (sInstance) + { sInstance->setFocus(TRUE); + } +#else + if( sInstance ) + { + // Grab focus and move cursor to first blank input field + std::string first = sInstance->childGetText("first_name_edit"); + std::string pass = sInstance->childGetText("password_edit"); + + BOOL have_first = !first.empty(); + BOOL have_pass = !pass.empty(); + + LLLineEditor* edit = NULL; + if (have_first && !have_pass) + { + // User saved his name but not his password. Move + // focus to password field. + edit = LLUICtrlFactory::getLineEditorByName(sInstance, "password_edit"); + } + else + { + // User doesn't have a name, so start there. + edit = LLUICtrlFactory::getLineEditorByName(sInstance, "first_name_edit"); + } + + if (edit) + { + edit->setFocus(TRUE); + edit->selectAll(); + } + } +#endif } @@ -546,24 +717,188 @@ void LLPanelLogin::show(const LLRect &rect, { new LLPanelLogin(rect, show_server, callback, callback_data); -#if LL_LIBXUL_ENABLED - LLWebBrowserCtrl* web_browser = LLUICtrlFactory::getWebBrowserCtrlByName(sInstance, "login_html"); - - if (!web_browser) return; - if( !gFocusMgr.getKeyboardFocus() ) { // Grab focus and move cursor to first enabled control - web_browser->setFocus(TRUE); + sInstance->setFocus(TRUE); } // Make sure that focus always goes here (and use the latest sInstance that was just created) - gFocusMgr.setDefaultKeyboardFocus(web_browser); -#endif + gFocusMgr.setDefaultKeyboardFocus(sInstance); +} + +// static +void LLPanelLogin::setFields(const std::string& firstname, const std::string& lastname, const std::string& password, + BOOL remember) +{ + if (!sInstance) + { + llwarns << "Attempted fillFields with no login view shown" << llendl; + return; + } + + sInstance->childSetText("first_name_edit", firstname); + sInstance->childSetText("last_name_edit", lastname); + + // Max "actual" password length is 16 characters. + // Hex digests are always 32 characters. + if (password.length() == 32) + { + // This is a MD5 hex digest of a password. + // We don't actually use the password input field, + // fill it with MAX_PASSWORD characters so we get a + // nice row of asterixes. + const std::string filler("123456789!123456"); + sInstance->childSetText("password_edit", filler); + sInstance->mIncomingPassword = filler; + sInstance->mMungedPassword = password; + } + else + { + // this is a normal text password + sInstance->childSetText("password_edit", password); + sInstance->mIncomingPassword = password; + LLMD5 pass((unsigned char *)password.c_str()); + char munged_password[MD5HEX_STR_SIZE]; + pass.hex_digest(munged_password); + sInstance->mMungedPassword = munged_password; + } + + sInstance->childSetValue("remember_check", remember); } // static +void LLPanelLogin::addServer(const char *server, S32 domain_name) +{ + if (!sInstance) + { + llwarns << "Attempted addServer with no login view shown" << llendl; + return; + } + + LLComboBox* combo = LLUICtrlFactory::getComboBoxByName(sInstance, "server_combo"); + if (combo) + { + combo->add(server, LLSD(domain_name) ); + combo->setCurrentByIndex(0); + } +} + +// static +void LLPanelLogin::getFields(LLString &firstname, LLString &lastname, LLString &password, + BOOL &remember) +{ + if (!sInstance) + { + llwarns << "Attempted getFields with no login view shown" << llendl; + return; + } + + firstname = sInstance->childGetText("first_name_edit"); + LLString::trim(firstname); + + lastname = sInstance->childGetText("last_name_edit"); + LLString::trim(lastname); + + password = sInstance->mMungedPassword; + remember = sInstance->childGetValue("remember_check"); +} + + +// static. Return TRUE if user made a choice from the popup +BOOL LLPanelLogin::getServer(LLString &server, S32 &domain_name) +{ + BOOL user_picked = FALSE; + if (!sInstance) + { + llwarns << "Attempted getServer with no login view shown" << llendl; + } + else + { + LLComboBox* combo = LLUICtrlFactory::getComboBoxByName(sInstance, "server_combo"); + if (combo) + { + LLSD combo_val = combo->getValue(); + if (LLSD::TypeInteger == combo_val.type()) + { + domain_name = combo->getValue().asInteger(); + + if ((S32)GRID_INFO_OTHER == domain_name) + { + server = gGridName; + } + } + else + { + // no valid selection, return other + domain_name = (S32)GRID_INFO_OTHER; + server = combo_val.asString(); + } + user_picked = combo->isDirty(); + } + } + + return user_picked; +} + +// static +void LLPanelLogin::getLocation(LLString &location) +{ + if (!sInstance) + { + llwarns << "Attempted getLocation with no login view shown" << llendl; + return; + } + + LLComboBox* combo = LLUICtrlFactory::getComboBoxByName(sInstance, "start_location_combo"); + if (combo) + { + location = combo->getValue().asString(); + } +} + +// static +void LLPanelLogin::refreshLocation( bool force_visible ) +{ + if (!sInstance) return; + +#if USE_VIEWER_AUTH + loadLoginPage(); +#else + LLComboBox* combo = LLUICtrlFactory::getComboBoxByName(sInstance, "start_location_combo"); + if (!combo) return; + + if (LLURLSimString::parse()) + { + combo->setCurrentByIndex( 3 ); // BUG? Maybe 2? + combo->setTextEntry(LLURLSimString::sInstance.mSimString); + } + else + { + BOOL login_last = gSavedSettings.getBOOL("LoginLastLocation"); + combo->setCurrentByIndex( login_last ? 1 : 0 ); + } + + BOOL show_start = TRUE; + + if ( ! force_visible ) + show_start = gSavedSettings.getBOOL("ShowStartLocation"); + + sInstance->childSetVisible("start_location_combo", show_start); + sInstance->childSetVisible("start_location_text", show_start); + +#if LL_RELEASE_FOR_DOWNLOAD + BOOL show_server = gSavedSettings.getBOOL("ForceShowGrid"); + sInstance->childSetVisible("server_combo", show_server); +#else + sInstance->childSetVisible("server_combo", TRUE); +#endif + +#endif +} + +// static void LLPanelLogin::close() { if (sInstance) @@ -597,11 +932,19 @@ void LLPanelLogin::setAlwaysRefresh(bool refresh) void LLPanelLogin::loadLoginPage() { if (!sInstance) return; + + std::ostringstream oStr; + std::string login_page = LLAppViewer::instance()->getLoginPage(); + if (login_page.empty()) + { + login_page = sInstance->childGetValue( "real_url" ).asString(); + } + oStr << login_page; + +#if USE_VIEWER_AUTH LLURLSimString::sInstance.parse(); - std::ostringstream oStr; - LLString location; LLString region; LLString password; @@ -654,11 +997,6 @@ void LLPanelLogin::loadLoginPage() char* curl_channel = curl_escape(gChannelName.c_str(), 0); char* curl_version = curl_escape(version.c_str(), 0); - std::string login_page = LLAppViewer::instance()->getLoginPage(); - if (login_page.empty()) - { - login_page = sInstance->childGetValue( "real_url" ).asString(); - } // Use the right delimeter depending on how LLURI parses the URL LLURI login_page_uri = LLURI(login_page); @@ -667,7 +1005,7 @@ void LLPanelLogin::loadLoginPage() { first_query_delimiter = "?"; } - oStr << login_page << first_query_delimiter << "firstname=" << firstname << + oStr << first_query_delimiter << "firstname=" << firstname << "&lastname=" << lastname << "&location=" << location << "®ion=" << curl_region << "&grid=" << gGridInfo[gGridChoice].mLabel << "&channel=" << curl_channel << "&version=" << curl_version; @@ -676,7 +1014,7 @@ void LLPanelLogin::loadLoginPage() curl_free(curl_channel); curl_free(curl_version); - LLString language(gSavedSettings.getString("Language")); + LLString language(gSavedSettings.getString("Language")); if(language == "default") { language = gSavedSettings.getString("SystemLanguage"); @@ -710,6 +1048,7 @@ void LLPanelLogin::loadLoginPage() if (gSavedSettings.getBOOL("ForceShowGrid")) oStr << "&show_grid=TRUE"; #endif +#endif #if LL_LIBXUL_ENABLED LLWebBrowserCtrl* web_browser = LLUICtrlFactory::getWebBrowserCtrlByName(sInstance, "login_html"); @@ -742,6 +1081,77 @@ void LLPanelLogin::onNavigateComplete( const EventType& eventIn ) //--------------------------------------------------------------------------- // static +void LLPanelLogin::onClickConnect(void *) +{ + if (sInstance && sInstance->mCallback) + { + // tell the responder we're not here anymore + if ( gResponsePtr ) + gResponsePtr->setParent( 0 ); + + // JC - Make sure the fields all get committed. + sInstance->setFocus(FALSE); + + LLString first = sInstance->childGetText("first_name_edit"); + LLString last = sInstance->childGetText("last_name_edit"); + if (!first.empty() && !last.empty()) + { + // has both first and last name typed + + // store off custom server entry, if currently selected + LLComboBox* combo = LLUICtrlFactory::getComboBoxByName(sInstance, "server_combo"); + if (combo) + { + S32 selected_server = combo->getValue(); + if (selected_server == GRID_INFO_NONE) + { + LLString custom_server = combo->getValue().asString(); + gSavedSettings.setString("CustomServer", custom_server); + } + } + sInstance->mCallback(0, sInstance->mCallbackData); + } + else + { + // empty first or last name + // same as clicking new account + onClickNewAccount(NULL); + } + } +} + + +// static +void LLPanelLogin::newAccountAlertCallback(S32 option, void*) +{ + if (0 == option) + { + llinfos << "Going to account creation URL" << llendl; + LLWeb::loadURL( CREATE_ACCOUNT_URL ); + } + else + { + sInstance->setFocus(TRUE); + } +} + + +// static +void LLPanelLogin::onClickNewAccount(void*) +{ + if (gHideLinks) + { + gViewerWindow->alertXml("MustHaveAccountToLogInNoLinks"); + } + else + { + gViewerWindow->alertXml("MustHaveAccountToLogIn", + LLPanelLogin::newAccountAlertCallback); + } +} + + +// static void LLPanelLogin::onClickQuit(void*) { if (sInstance && sInstance->mCallback) @@ -760,3 +1170,22 @@ void LLPanelLogin::onClickVersion(void*) { LLFloaterAbout::show(NULL); } + +void LLPanelLogin::onClickForgotPassword(void*) +{ + if (sInstance ) + { + LLWeb::loadURL(sInstance->childGetValue( "forgot_password_url" ).asString()); + } +} + + +// static +void LLPanelLogin::onPassKey(LLLineEditor* caller, void* user_data) +{ + if (gKeyboard->getKeyDown(KEY_CAPSLOCK) && sCapslockDidNotification == FALSE) + { + LLNotifyBox::showXml("CapsKeyOn"); + sCapslockDidNotification = TRUE; + } +} diff --git a/linden/indra/newview/llpanellogin.h b/linden/indra/newview/llpanellogin.h index 66215c1..206e700 100644 --- a/linden/indra/newview/llpanellogin.h +++ b/linden/indra/newview/llpanellogin.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -51,7 +51,8 @@ class LLComboBox; class LLLoginHandler : public LLCommandHandler { public: - LLLoginHandler() : LLCommandHandler("login") { } + // allow from external browsers + LLLoginHandler() : LLCommandHandler("login", true) { } bool handle(const LLSD& tokens, const LLSD& queryMap); bool parseDirectLogin(std::string url); void parse(const LLSD& queryMap); @@ -77,11 +78,24 @@ public: virtual BOOL handleKeyHere(KEY key, MASK mask, BOOL called_from_parent); virtual void draw(); + virtual void setFocus( BOOL b ); static void show(const LLRect &rect, BOOL show_server, void (*callback)(S32 option, void* user_data), void* callback_data); + static void setFields(const std::string& firstname, const std::string& lastname, + const std::string& password, BOOL remember); + + static void addServer(const char *server, S32 domain_name); + static void refreshLocation( bool force_visible ); + + static void getFields(LLString &firstname, LLString &lastname, + LLString &password, BOOL &remember); + + static BOOL getServer(LLString &server, S32& domain_name); + static void getLocation(LLString &location); + static void close(); void setSiteIsAlive( bool alive ); @@ -89,8 +103,12 @@ public: static void loadLoginPage(); static void giveFocus(); static void setAlwaysRefresh(bool refresh); - + static void mungePassword(LLUICtrl* caller, void* user_data); + private: + static void onClickConnect(void*); + static void onClickNewAccount(void*); + static void newAccountAlertCallback(S32 option, void*); static void onClickQuit(void*); static void onClickVersion(void*); @@ -98,6 +116,8 @@ private: // browser observer impls virtual void onNavigateComplete( const EventType& eventIn ); #endif + static void onClickForgotPassword(void*); + static void onPassKey(LLLineEditor* caller, void* user_data); private: LLPointer mLogoImage; @@ -105,7 +125,11 @@ private: void (*mCallback)(S32 option, void *userdata); void* mCallbackData; + std::string mIncomingPassword; + std::string mMungedPassword; + static LLPanelLogin* sInstance; + static BOOL sCapslockDidNotification; BOOL mHtmlAvailable; }; diff --git a/linden/indra/newview/llpanelmorph.cpp b/linden/indra/newview/llpanelmorph.cpp index ba0ecdc..817b214 100644 --- a/linden/indra/newview/llpanelmorph.cpp +++ b/linden/indra/newview/llpanelmorph.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelmorph.h b/linden/indra/newview/llpanelmorph.h index a5c050c..d868181 100644 --- a/linden/indra/newview/llpanelmorph.h +++ b/linden/indra/newview/llpanelmorph.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelmsgs.cpp b/linden/indra/newview/llpanelmsgs.cpp index f35e69f..fc21ecb 100644 --- a/linden/indra/newview/llpanelmsgs.cpp +++ b/linden/indra/newview/llpanelmsgs.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelmsgs.h b/linden/indra/newview/llpanelmsgs.h index cee8e91..c9f9ce1 100644 --- a/linden/indra/newview/llpanelmsgs.h +++ b/linden/indra/newview/llpanelmsgs.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelnetwork.cpp b/linden/indra/newview/llpanelnetwork.cpp index 2e24ae1..be797cc 100644 --- a/linden/indra/newview/llpanelnetwork.cpp +++ b/linden/indra/newview/llpanelnetwork.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelnetwork.h b/linden/indra/newview/llpanelnetwork.h index 4b23841..9848461 100644 --- a/linden/indra/newview/llpanelnetwork.h +++ b/linden/indra/newview/llpanelnetwork.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelobject.cpp b/linden/indra/newview/llpanelobject.cpp index bd7f700..e4e28b8 100644 --- a/linden/indra/newview/llpanelobject.cpp +++ b/linden/indra/newview/llpanelobject.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -350,7 +350,7 @@ void LLPanelObject::getState( ) //forfeit focus if (gFocusMgr.childHasKeyboardFocus(this)) { - gFocusMgr.setKeyboardFocus(NULL, NULL); + gFocusMgr.setKeyboardFocus(NULL); } // Disable all text input fields @@ -1095,10 +1095,12 @@ void LLPanelObject::getState( ) { mLabelSculptType->setEnabled(TRUE); } - - } } + else + { + mSculptTextureRevert = LLUUID::null; + } //---------------------------------------------------------------------------- diff --git a/linden/indra/newview/llpanelobject.h b/linden/indra/newview/llpanelobject.h index 1711848..3e7f0bc 100644 --- a/linden/indra/newview/llpanelobject.h +++ b/linden/indra/newview/llpanelobject.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelpermissions.cpp b/linden/indra/newview/llpanelpermissions.cpp index 3c43542..c1899ee 100644 --- a/linden/indra/newview/llpanelpermissions.cpp +++ b/linden/indra/newview/llpanelpermissions.cpp @@ -14,12 +14,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelpermissions.h b/linden/indra/newview/llpanelpermissions.h index 3e06420..283cbc1 100644 --- a/linden/indra/newview/llpanelpermissions.h +++ b/linden/indra/newview/llpanelpermissions.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelpick.cpp b/linden/indra/newview/llpanelpick.cpp index 01e1564..533702a 100644 --- a/linden/indra/newview/llpanelpick.cpp +++ b/linden/indra/newview/llpanelpick.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelpick.h b/linden/indra/newview/llpanelpick.h index 7abf51f..e2aaa6f 100644 --- a/linden/indra/newview/llpanelpick.h +++ b/linden/indra/newview/llpanelpick.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelplace.cpp b/linden/indra/newview/llpanelplace.cpp index 597a311..54f011f 100644 --- a/linden/indra/newview/llpanelplace.cpp +++ b/linden/indra/newview/llpanelplace.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelplace.h b/linden/indra/newview/llpanelplace.h index ee60ece..9ca008a 100644 --- a/linden/indra/newview/llpanelplace.h +++ b/linden/indra/newview/llpanelplace.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelvolume.cpp b/linden/indra/newview/llpanelvolume.cpp index 0ce973a..cad038c 100644 --- a/linden/indra/newview/llpanelvolume.cpp +++ b/linden/indra/newview/llpanelvolume.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -171,7 +171,7 @@ void LLPanelVolume::getState( ) //forfeit focus if (gFocusMgr.childHasKeyboardFocus(this)) { - gFocusMgr.setKeyboardFocus(NULL, NULL); + gFocusMgr.setKeyboardFocus(NULL); } // Disable all text input fields diff --git a/linden/indra/newview/llpanelvolume.h b/linden/indra/newview/llpanelvolume.h index d64a20e..637894c 100644 --- a/linden/indra/newview/llpanelvolume.h +++ b/linden/indra/newview/llpanelvolume.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelweb.cpp b/linden/indra/newview/llpanelweb.cpp index 03e0469..9083e3d 100644 --- a/linden/indra/newview/llpanelweb.cpp +++ b/linden/indra/newview/llpanelweb.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpanelweb.h b/linden/indra/newview/llpanelweb.h index 9241f95..37cc1f3 100644 --- a/linden/indra/newview/llpanelweb.h +++ b/linden/indra/newview/llpanelweb.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpatchvertexarray.cpp b/linden/indra/newview/llpatchvertexarray.cpp index 635ebf9..60e6391 100644 --- a/linden/indra/newview/llpatchvertexarray.cpp +++ b/linden/indra/newview/llpatchvertexarray.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpatchvertexarray.h b/linden/indra/newview/llpatchvertexarray.h index 472f372..2f2057f 100644 --- a/linden/indra/newview/llpatchvertexarray.h +++ b/linden/indra/newview/llpatchvertexarray.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpolymesh.cpp b/linden/indra/newview/llpolymesh.cpp index bbbe3e1..d703129 100644 --- a/linden/indra/newview/llpolymesh.cpp +++ b/linden/indra/newview/llpolymesh.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -862,14 +862,6 @@ void LLPolyMesh::dumpDiagInfo() llinfos << buf << llendl; llinfos << "-----------------------------------------------------" << llendl; } - -//----------------------------------------------------------------------------- -// getCoords() -//----------------------------------------------------------------------------- -const LLVector3 *LLPolyMesh::getCoords() const -{ - return mCoords; -} //----------------------------------------------------------------------------- // getWritableCoords() @@ -985,14 +977,6 @@ void LLPolyMesh::deleteAllMorphData() } //----------------------------------------------------------------------------- -// getWeights() -//----------------------------------------------------------------------------- -const F32* LLPolyMesh::getWeights() const -{ - return mSharedData->mWeights; -} - -//----------------------------------------------------------------------------- // getWritableWeights() //----------------------------------------------------------------------------- F32* LLPolyMesh::getWritableWeights() const diff --git a/linden/indra/newview/llpolymesh.h b/linden/indra/newview/llpolymesh.h index d68fcc8..c7c8054 100644 --- a/linden/indra/newview/llpolymesh.h +++ b/linden/indra/newview/llpolymesh.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -224,7 +224,9 @@ public: } // Get coords - const LLVector3 *getCoords() const; + const LLVector3 *getCoords() const{ + return mCoords; + } // non const version LLVector3 *getWritableCoords(); @@ -273,7 +275,10 @@ public: } // Get weights - const F32 *getWeights() const; + const F32 *getWeights() const { + llassert (mSharedData); + return mSharedData->mWeights; + } F32 *getWritableWeights() const; diff --git a/linden/indra/newview/llpolymorph.cpp b/linden/indra/newview/llpolymorph.cpp index 4e12f52..0a9479f 100644 --- a/linden/indra/newview/llpolymorph.cpp +++ b/linden/indra/newview/llpolymorph.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpolymorph.h b/linden/indra/newview/llpolymorph.h index 1f62757..8dd3bd4 100644 --- a/linden/indra/newview/llpolymorph.h +++ b/linden/indra/newview/llpolymorph.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llprefschat.cpp b/linden/indra/newview/llprefschat.cpp index a475c6d..9d8e910 100644 --- a/linden/indra/newview/llprefschat.cpp +++ b/linden/indra/newview/llprefschat.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llprefschat.h b/linden/indra/newview/llprefschat.h index 2cbf20c..016c433 100644 --- a/linden/indra/newview/llprefschat.h +++ b/linden/indra/newview/llprefschat.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llprefsim.cpp b/linden/indra/newview/llprefsim.cpp index 44db896..40263fc 100644 --- a/linden/indra/newview/llprefsim.cpp +++ b/linden/indra/newview/llprefsim.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llprefsim.h b/linden/indra/newview/llprefsim.h index 9b6f25c..11851f7 100644 --- a/linden/indra/newview/llprefsim.h +++ b/linden/indra/newview/llprefsim.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llprefsvoice.cpp b/linden/indra/newview/llprefsvoice.cpp index a0d5ed3..33a3cec 100644 --- a/linden/indra/newview/llprefsvoice.cpp +++ b/linden/indra/newview/llprefsvoice.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -102,7 +102,7 @@ void LLPrefsVoiceLogic::init() mCtrlEarLocation->selectByValue(LLSD(gSavedSettings.getS32("VoiceEarLocation"))); mPanel->childSetCommitCallback("ear_location", onEarLocationCommit, this ); - mPanel->childSetAction("launch_voice_wizard_button", onClickLaunchWizard, this); + mPanel->childSetAction("launch_voice_wizard_button", onClickLaunchWizard, mPanel); mPanel->childSetAction("set_voice_hotkey_button", onClickSetKey, this); mPanel->childSetAction("set_voice_middlemouse_button", onClickSetMiddleMouse, this); @@ -147,14 +147,20 @@ void LLPrefsVoiceLogic::onEarLocationCommit(LLUICtrl* ctrl, void* user_data) LLCtrlSelectionInterface* interfacep = ctrl->getSelectionInterface(); if (interfacep) { - gSavedSettings.setS32("VoiceEarLocation", interfacep->getSimpleSelectedValue().asInteger()); + gSavedSettings.setS32("VoiceEarLocation", interfacep->getSelectedValue().asInteger()); } } //static void LLPrefsVoiceLogic::onClickLaunchWizard(void* user_data) { - LLFloaterVoiceWizard::showInstance(); + LLPrefsVoice* prefs = (LLPrefsVoice*)user_data; + LLFloaterVoiceWizard* floaterp = LLFloaterVoiceWizard::showInstance(); + LLFloater* parent_floater = gFloaterView->getParentFloater(prefs); + if (parent_floater) + { + parent_floater->addDependentFloater(floaterp, FALSE); + } } // static diff --git a/linden/indra/newview/llprefsvoice.h b/linden/indra/newview/llprefsvoice.h index db5d862..bb47b85 100644 --- a/linden/indra/newview/llprefsvoice.h +++ b/linden/indra/newview/llprefsvoice.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpreview.cpp b/linden/indra/newview/llpreview.cpp index 0dea2ca..0549b16 100644 --- a/linden/indra/newview/llpreview.cpp +++ b/linden/indra/newview/llpreview.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -66,12 +66,14 @@ LLPreview::LLPreview(const std::string& name) : mUserResized(FALSE), mCloseAfterSave(FALSE), mAssetStatus(PREVIEW_ASSET_UNLOADED), - mItem(NULL) + mItem(NULL), + mDirty(TRUE) { // don't add to instance list, since ItemID is null mAuxItem = new LLInventoryItem; // (LLPointer is auto-deleted) // don't necessarily steal focus on creation -- sometimes these guys pop up without user action mAutoFocus = FALSE; + gInventory.addObserver(this); } LLPreview::LLPreview(const std::string& name, const LLRect& rect, const std::string& title, const LLUUID& item_uuid, const LLUUID& object_uuid, BOOL allow_resize, S32 min_width, S32 min_height, LLPointer inv_item ) @@ -84,7 +86,8 @@ LLPreview::LLPreview(const std::string& name, const LLRect& rect, const std::str mUserResized(FALSE), mCloseAfterSave(FALSE), mAssetStatus(PREVIEW_ASSET_UNLOADED), - mItem(inv_item) + mItem(inv_item), + mDirty(TRUE) { mAuxItem = new LLInventoryItem; // don't necessarily steal focus on creation -- sometimes these guys pop up without user action @@ -94,7 +97,7 @@ LLPreview::LLPreview(const std::string& name, const LLRect& rect, const std::str { sInstances[mItemUUID] = this; } - + gInventory.addObserver(this); } LLPreview::~LLPreview() @@ -118,6 +121,7 @@ LLPreview::~LLPreview() } } } + gInventory.removeObserver(this); } void LLPreview::setItemID(const LLUUID& item_id) @@ -215,6 +219,7 @@ void LLPreview::onCommit() { new_item->updateServer(FALSE); gInventory.updateItem(new_item); + gInventory.notifyObservers(); // If the item is an attachment that is currently being worn, // update the object itself. @@ -238,6 +243,34 @@ void LLPreview::onCommit() } } +void LLPreview::changed(U32 mask) +{ + mDirty = TRUE; +} + +void LLPreview::draw() +{ + LLFloater::draw(); + if (mDirty) + { + mDirty = FALSE; + const LLViewerInventoryItem *item = getItem(); + if (item) + { + refreshFromItem(item); + } + } +} + +void LLPreview::refreshFromItem(const LLInventoryItem* item) +{ + setTitle(llformat("%s: %s",getTitleName(),item->getName().c_str())); + childSetText("desc",item->getDescription()); + + BOOL can_agent_manipulate = item->getPermissions().allowModifyBy(gAgent.getID()); + childSetEnabled("desc",can_agent_manipulate); +} + // static void LLPreview::onText(LLUICtrl*, void* userdata) { diff --git a/linden/indra/newview/llpreview.h b/linden/indra/newview/llpreview.h index d32a1b8..8a4a434 100644 --- a/linden/indra/newview/llpreview.h +++ b/linden/indra/newview/llpreview.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -38,6 +38,7 @@ #include "lluuid.h" #include "llviewerinventory.h" #include "lltabcontainer.h" +#include "llinventorymodel.h" #include class LLLineEditor; @@ -61,7 +62,7 @@ protected: static std::map sAutoOpenPreviewHandles; }; -class LLPreview : public LLFloater +class LLPreview : public LLFloater, LLInventoryObserver { public: typedef enum e_asset_status @@ -116,6 +117,10 @@ public: void setNotecardInfo(const LLUUID& notecard_inv_id, const LLUUID& object_id) { mNotecardInventoryID = notecard_inv_id; mObjectID = object_id; } + // llview + virtual void draw(); + void refreshFromItem(const LLInventoryItem* item); + protected: virtual void onCommit(); @@ -124,7 +129,11 @@ protected: static void onText(LLUICtrl*, void* userdata); static void onRadio(LLUICtrl*, void* userdata); - + // for LLInventoryObserver + virtual void changed(U32 mask); + BOOL mDirty; + virtual const char *getTitleName() const { return "Preview"; } + protected: LLUUID mItemUUID; LLUUID mSourceID; diff --git a/linden/indra/newview/llpreviewanim.cpp b/linden/indra/newview/llpreviewanim.cpp index 572d6b4..58478c8 100644 --- a/linden/indra/newview/llpreviewanim.cpp +++ b/linden/indra/newview/llpreviewanim.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llpreviewanim.h b/linden/indra/newview/llpreviewanim.h index 5e2145d..430bc62 100644 --- a/linden/indra/newview/llpreviewanim.h +++ b/linden/indra/newview/llpreviewanim.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -50,7 +50,8 @@ public: protected: virtual void onClose(bool app_quitting); - + virtual const char *getTitleName() const { return "Animation"; } + LLAnimPauseRequest mPauseRequest; LLUUID mItemID; LLString mTitle; diff --git a/linden/indra/newview/llpreviewgesture.cpp b/linden/indra/newview/llpreviewgesture.cpp index 0d2c97a..1bd86fc 100644 --- a/linden/indra/newview/llpreviewgesture.cpp +++ b/linden/indra/newview/llpreviewgesture.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -955,6 +955,11 @@ void LLPreviewGesture::onLoadComplete(LLVFS *vfs, } else { + // Get missing gesture's name. Use UUID if name can't be found. + LLStringBase::format_map_t args; + LLInventoryItem *item = gInventory.getItem( *item_idp ); + args["[NAME]"] = item ? item->getName() : LLString( item_idp->asString() ); + if( gViewerStats ) { gViewerStats->incStat( LLViewerStats::ST_DOWNLOAD_FAILED ); @@ -963,11 +968,11 @@ void LLPreviewGesture::onLoadComplete(LLVFS *vfs, if( LL_ERR_ASSET_REQUEST_NOT_IN_DATABASE == status || LL_ERR_FILE_EMPTY == status) { - LLNotifyBox::showXml("GestureMissing"); + LLNotifyBox::showXml("GestureMissing", args); } else { - LLNotifyBox::showXml("UnableToLoadGesture"); + LLNotifyBox::showXml("UnableToLoadGesture", args); } llwarns << "Problem loading gesture: " << status << llendl; @@ -1602,7 +1607,7 @@ void LLPreviewGesture::onClickAdd(void* data) if (!library_item) return; const LLScrollListCell* library_cell = library_item->getColumn(0); - const std::string& library_text = library_cell->getText(); + const std::string& library_text = library_cell->getValue().asString(); self->addStep(library_text); diff --git a/linden/indra/newview/llpreviewgesture.h b/linden/indra/newview/llpreviewgesture.h index b607899..ea26769 100644 --- a/linden/indra/newview/llpreviewgesture.h +++ b/linden/indra/newview/llpreviewgesture.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -137,6 +137,8 @@ protected: static void onDonePreview(LLMultiGesture* gesture, void* data); + virtual const char *getTitleName() const { return "Gesture"; } + protected: // LLPreview contains mDescEditor LLLineEditor* mTriggerEditor; diff --git a/linden/indra/newview/llpreviewlandmark.cpp b/linden/indra/newview/llpreviewlandmark.cpp index 6f47137..0d9a298 100644 --- a/linden/indra/newview/llpreviewlandmark.cpp +++ b/linden/indra/newview/llpreviewlandmark.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -109,7 +109,6 @@ LLPreviewLandmark::LLPreviewLandmark(const std::string& name, LLPreviewLandmark::sOrderedInstances.push_back( this ); } - LLPreviewLandmark::~LLPreviewLandmark() { LLPreviewLandmarkList::iterator this_itr; @@ -186,7 +185,7 @@ void LLPreviewLandmark::draw() } } - LLFloater::draw(); + LLPreview::draw(); } } diff --git a/linden/indra/newview/llpreviewlandmark.h b/linden/indra/newview/llpreviewlandmark.h index ee21d5e..5ec2b5a 100644 --- a/linden/indra/newview/llpreviewlandmark.h +++ b/linden/indra/newview/llpreviewlandmark.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -86,6 +86,8 @@ public: protected: void getDegreesAndDist(F32* degrees, F64* horiz_dist, F64* vert_dist) const; + virtual const char *getTitleName() const { return "Landmark"; } + private: // void renderBeacon(); // LLPointer mBeaconText; diff --git a/linden/indra/newview/llpreviewnotecard.cpp b/linden/indra/newview/llpreviewnotecard.cpp index cc5af06..1f0c9dc 100644 --- a/linden/indra/newview/llpreviewnotecard.cpp +++ b/linden/indra/newview/llpreviewnotecard.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -148,6 +148,10 @@ LLPreviewNotecard::LLPreviewNotecard(const std::string& name, gAgent.changeCameraToDefault(); } +LLPreviewNotecard::~LLPreviewNotecard() +{ +} + BOOL LLPreviewNotecard::postBuild() { LLViewerTextEditor *ed = (LLViewerTextEditor *)gUICtrlFactory->getTextEditorByName(this, "Notecard Editor"); @@ -213,7 +217,7 @@ BOOL LLPreviewNotecard::handleKeyHere(KEY key, MASK mask, return TRUE; } } - return FALSE; + return LLPreview::handleKeyHere(key, mask, called_from_parent); } // virtual diff --git a/linden/indra/newview/llpreviewnotecard.h b/linden/indra/newview/llpreviewnotecard.h index 5d4648a..6977da4 100644 --- a/linden/indra/newview/llpreviewnotecard.h +++ b/linden/indra/newview/llpreviewnotecard.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -54,7 +54,8 @@ public: const LLUUID& asset_id = LLUUID::null, BOOL show_keep_discard = FALSE, LLPointer inv_item = NULL); - + virtual ~LLPreviewNotecard(); + // llpreview virtual bool saveItem(LLPointer* itemptr); @@ -102,6 +103,8 @@ protected: static void handleSaveChangesDialog(S32 option, void* userdata); + virtual const char *getTitleName() const { return "Note"; } + protected: LLViewerTextEditor* mEditor; LLButton* mSaveBtn; diff --git a/linden/indra/newview/llpreviewscript.cpp b/linden/indra/newview/llpreviewscript.cpp index 68af0ce..3e2a476 100644 --- a/linden/indra/newview/llpreviewscript.cpp +++ b/linden/indra/newview/llpreviewscript.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -960,7 +960,7 @@ void LLScriptEdCore::onErrorList(LLUICtrl*, void* user_data) S32 row = 0; S32 column = 0; const LLScrollListCell* cell = item->getColumn(0); - LLString line(cell->getText()); + LLString line(cell->getValue().asString()); line.erase(0, 1); LLString::replaceChar(line, ',',' '); LLString::replaceChar(line, ')',' '); @@ -1134,8 +1134,8 @@ LLPreviewLSL::LLPreviewLSL(const std::string& name, const LLRect& rect, void LLPreviewLSL::callbackLSLCompileSucceeded() { llinfos << "LSL Bytecode saved" << llendl; - mScriptEd->mErrorList->addSimpleItem("Compile successful!"); - mScriptEd->mErrorList->addSimpleItem("Save complete."); + mScriptEd->mErrorList->addCommentText("Compile successful!"); + mScriptEd->mErrorList->addCommentText("Save complete."); closeIfNeeded(); } @@ -1681,8 +1681,8 @@ void LLLiveLSLEditor::callbackLSLCompileSucceeded(const LLUUID& task_id, bool is_script_running) { lldebugs << "LSL Bytecode saved" << llendl; - mScriptEd->mErrorList->addSimpleItem("Compile successful!"); - mScriptEd->mErrorList->addSimpleItem("Save complete."); + mScriptEd->mErrorList->addCommentText("Compile successful!"); + mScriptEd->mErrorList->addCommentText("Save complete."); closeIfNeeded(); } @@ -2207,7 +2207,7 @@ void LLLiveLSLEditor::uploadAssetLegacy(const std::string& filename, else { llinfos << "Compile worked!" << llendl; - mScriptEd->mErrorList->addSimpleItem("Compile successful, saving..."); + mScriptEd->mErrorList->addCommentText("Compile successful, saving..."); if(gAssetStorage) { llinfos << "LLLiveLSLEditor::saveAsset " @@ -2281,7 +2281,7 @@ void LLLiveLSLEditor::onSaveBytecodeComplete(const LLUUID& asset_uuid, void* use if(self) { // Tell the user that the compile worked. - self->mScriptEd->mErrorList->addSimpleItem("Save complete."); + self->mScriptEd->mErrorList->addCommentText("Save complete."); // close the window if this completes both uploads self->getWindow()->decBusyCount(); self->mPendingUploads--; diff --git a/linden/indra/newview/llpreviewscript.h b/linden/indra/newview/llpreviewscript.h index ac7b5f8..92d56f8 100644 --- a/linden/indra/newview/llpreviewscript.h +++ b/linden/indra/newview/llpreviewscript.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -128,6 +128,8 @@ protected: static void onErrorList(LLUICtrl*, void* user_data); + virtual const char *getTitleName() const { return "Script"; } + private: LLString mSampleText; std::string mHelpFile; @@ -189,6 +191,8 @@ protected: protected: + + virtual const char *getTitleName() const { return "Script"; } LLScriptEdCore* mScriptEd; // Can safely close only after both text and bytecode are uploaded S32 mPendingUploads; diff --git a/linden/indra/newview/llpreviewsound.cpp b/linden/indra/newview/llpreviewsound.cpp index 766cfb7..212ceb9 100644 --- a/linden/indra/newview/llpreviewsound.cpp +++ b/linden/indra/newview/llpreviewsound.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -106,7 +106,7 @@ void LLPreviewSound::auditionSound( void *userdata ) if(item && gAudiop) { LLVector3d lpos_global = gAgent.getPositionGlobal(); - F32 volume = SOUND_GAIN * gSavedSettings.getF32("AudioLevelSFX"); + F32 volume = gSavedSettings.getBOOL("MuteSounds") ? 0.f : SOUND_GAIN * gSavedSettings.getF32("AudioLevelSFX"); gAudiop->triggerSound(item->getAssetUUID(), gAgent.getID(), volume, lpos_global); } } diff --git a/linden/indra/newview/llpreviewsound.h b/linden/indra/newview/llpreviewsound.h index 9c75ddb..8557b5e 100644 --- a/linden/indra/newview/llpreviewsound.h +++ b/linden/indra/newview/llpreviewsound.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -44,6 +44,9 @@ public: static void playSound( void* userdata ); static void auditionSound( void* userdata ); +protected: + virtual const char *getTitleName() const { return "Sound"; } + }; #endif // LL_LLPREVIEWSOUND_H diff --git a/linden/indra/newview/llpreviewtexture.cpp b/linden/indra/newview/llpreviewtexture.cpp index 245085e..d309d4a 100644 --- a/linden/indra/newview/llpreviewtexture.cpp +++ b/linden/indra/newview/llpreviewtexture.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -286,7 +286,7 @@ void LLPreviewTexture::draw() LLFontGL::DROP_SHADOW); } } - } + } } } diff --git a/linden/indra/newview/llpreviewtexture.h b/linden/indra/newview/llpreviewtexture.h index 20f56b1..4930368 100644 --- a/linden/indra/newview/llpreviewtexture.h +++ b/linden/indra/newview/llpreviewtexture.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -80,6 +80,8 @@ protected: void init(); void updateAspectRatio(); + virtual const char *getTitleName() const { return "Texture"; } + protected: LLUUID mImageID; LLPointer mImage; diff --git a/linden/indra/newview/llprogressview.cpp b/linden/indra/newview/llprogressview.cpp index 142740d..c319e59 100644 --- a/linden/indra/newview/llprogressview.cpp +++ b/linden/indra/newview/llprogressview.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llprogressview.h b/linden/indra/newview/llprogressview.h index 39b4328..2573bd1 100644 --- a/linden/indra/newview/llprogressview.h +++ b/linden/indra/newview/llprogressview.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llregionposition.cpp b/linden/indra/newview/llregionposition.cpp index 155b899..49a747e 100644 --- a/linden/indra/newview/llregionposition.cpp +++ b/linden/indra/newview/llregionposition.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llregionposition.h b/linden/indra/newview/llregionposition.h index f9a3743..bccf1a8 100644 --- a/linden/indra/newview/llregionposition.h +++ b/linden/indra/newview/llregionposition.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llremoteparcelrequest.cpp b/linden/indra/newview/llremoteparcelrequest.cpp index 658fa11..abc6569 100644 --- a/linden/indra/newview/llremoteparcelrequest.cpp +++ b/linden/indra/newview/llremoteparcelrequest.cpp @@ -1,17 +1,29 @@ -/** - * @file llparcelrequest.cpp - * @brief Implementation of the LLParcelRequest class. +/** + * @file llremoteparcelrequest.cpp + * @author Sam Kolb + * @brief Get information about a parcel you aren't standing in to display + * landmark/teleport information. * - * $LicenseInfo:firstyear=2006&license=internal$ + * $LicenseInfo:firstyear=2007&license=viewergpl$ * - * Copyright (c) 2006-2008, Linden Research, Inc. + * Copyright (c) 2007-2008, Linden Research, Inc. * - * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of - * this source code is governed by the Linden Lab Source Code Disclosure - * Agreement ("Agreement") previously entered between you and Linden - * Lab. By accessing, using, copying, modifying or distributing this - * software, you acknowledge that you have been informed of your - * obligations under the Agreement and agree to abide by those obligations. + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. * * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, diff --git a/linden/indra/newview/llremoteparcelrequest.h b/linden/indra/newview/llremoteparcelrequest.h index 1fc3781..fe48021 100644 --- a/linden/indra/newview/llremoteparcelrequest.h +++ b/linden/indra/newview/llremoteparcelrequest.h @@ -1,17 +1,29 @@ /** - * @file lleventpoll.h - * @brief LLEvDescription of the LLEventPoll class. + * @file llremoteparcelrequest.h + * @author Sam Kolb + * @brief Get information about a parcel you aren't standing in to display + * landmark/teleport information. * - * $LicenseInfo:firstyear=2006&license=internal$ + * $LicenseInfo:firstyear=2007&license=viewergpl$ * - * Copyright (c) 2006-2008, Linden Research, Inc. + * Copyright (c) 2007-2008, Linden Research, Inc. * - * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of - * this source code is governed by the Linden Lab Source Code Disclosure - * Agreement ("Agreement") previously entered between you and Linden - * Lab. By accessing, using, copying, modifying or distributing this - * software, you acknowledge that you have been informed of your - * obligations under the Agreement and agree to abide by those obligations. + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. * * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, diff --git a/linden/indra/newview/llresourcedata.h b/linden/indra/newview/llresourcedata.h index adc5a37..d6c6ee1 100644 --- a/linden/indra/newview/llresourcedata.h +++ b/linden/indra/newview/llresourcedata.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llroam.cpp b/linden/indra/newview/llroam.cpp index 3ee1f5e..90c92d0 100644 --- a/linden/indra/newview/llroam.cpp +++ b/linden/indra/newview/llroam.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llroam.h b/linden/indra/newview/llroam.h index 4e71585..32eedb8 100644 --- a/linden/indra/newview/llroam.h +++ b/linden/indra/newview/llroam.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llsavedsettingsglue.cpp b/linden/indra/newview/llsavedsettingsglue.cpp index 3f22911..e6f3044 100644 --- a/linden/indra/newview/llsavedsettingsglue.cpp +++ b/linden/indra/newview/llsavedsettingsglue.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llsavedsettingsglue.h b/linden/indra/newview/llsavedsettingsglue.h index f628b8f..e3a53dc 100644 --- a/linden/indra/newview/llsavedsettingsglue.h +++ b/linden/indra/newview/llsavedsettingsglue.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llselectmgr.cpp b/linden/indra/newview/llselectmgr.cpp index 7d7ae79..6ddae78 100644 --- a/linden/indra/newview/llselectmgr.cpp +++ b/linden/indra/newview/llselectmgr.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -3994,7 +3994,11 @@ void LLSelectMgr::sendListToRegions(const LLString& message_name, switch(send_type) { case SEND_ONLY_ROOTS: - getSelection()->applyToRootNodes(&pusheditable); + if(message_name == "ObjectBuy") + getSelection()->applyToRootNodes(&pushroots); + else + getSelection()->applyToRootNodes(&pusheditable); + break; case SEND_INDIVIDUALS: getSelection()->applyToNodes(&pushall); @@ -6063,23 +6067,19 @@ LLViewerObject* LLObjectSelection::getFirstDeleteableObject() bool apply(LLSelectNode* node) { LLViewerObject* obj = node->getObject(); - // you can delete an object if permissions allow it, you are - // the owner, you are an officer in the group that owns the - // object, or you are not the owner but it is on land you own - // or land owned by your group. (whew!) + // you can delete an object if you are the owner + // or you have permission to modify it. if( (obj->permModify()) || (obj->permYouOwner()) || (!obj->permAnyOwner()) // public - || (obj->isOverAgentOwnedLand()) - || (obj->isOverGroupOwnedLand()) ) { if( !obj->isAttachment() ) { - return TRUE; + return true; } } - return true; + return false; } } func; LLSelectNode* node = getFirstNode(&func); diff --git a/linden/indra/newview/llselectmgr.h b/linden/indra/newview/llselectmgr.h index 98e1009..9cb107c 100644 --- a/linden/indra/newview/llselectmgr.h +++ b/linden/indra/newview/llselectmgr.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llsky.cpp b/linden/indra/newview/llsky.cpp index fcb8d39..3f4189f 100644 --- a/linden/indra/newview/llsky.cpp +++ b/linden/indra/newview/llsky.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llsky.h b/linden/indra/newview/llsky.h index 472dcbb..dab9c09 100644 --- a/linden/indra/newview/llsky.h +++ b/linden/indra/newview/llsky.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llspatialpartition.cpp b/linden/indra/newview/llspatialpartition.cpp index d326f79..656b236 100644 --- a/linden/indra/newview/llspatialpartition.cpp +++ b/linden/indra/newview/llspatialpartition.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llspatialpartition.h b/linden/indra/newview/llspatialpartition.h index 5f31ec3..1936423 100644 --- a/linden/indra/newview/llspatialpartition.h +++ b/linden/indra/newview/llspatialpartition.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llsphere.cpp b/linden/indra/newview/llsphere.cpp index 71c21f2..663537c 100644 --- a/linden/indra/newview/llsphere.cpp +++ b/linden/indra/newview/llsphere.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llsphere.h b/linden/indra/newview/llsphere.h index 1db95c2..3a827c9 100644 --- a/linden/indra/newview/llsphere.h +++ b/linden/indra/newview/llsphere.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llsprite.cpp b/linden/indra/newview/llsprite.cpp index 370f5fb..bb78f1a 100644 --- a/linden/indra/newview/llsprite.cpp +++ b/linden/indra/newview/llsprite.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llsprite.h b/linden/indra/newview/llsprite.h index dce69ee..f6e392a 100644 --- a/linden/indra/newview/llsprite.h +++ b/linden/indra/newview/llsprite.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llsrv.cpp b/linden/indra/newview/llsrv.cpp index 125c090..275bb9f 100644 --- a/linden/indra/newview/llsrv.cpp +++ b/linden/indra/newview/llsrv.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llsrv.h b/linden/indra/newview/llsrv.h index 8f450d3..980aef7 100644 --- a/linden/indra/newview/llsrv.h +++ b/linden/indra/newview/llsrv.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp index 98f1658..07aefad 100644 --- a/linden/indra/newview/llstartup.cpp +++ b/linden/indra/newview/llstartup.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -72,7 +72,6 @@ #include "lluserrelations.h" #include "llversionviewer.h" #include "llvfs.h" -#include "llwindow.h" // for shell_open #include "llxorcipher.h" // saved password, MAC address #include "message.h" #include "v3math.h" @@ -123,6 +122,7 @@ #include "llpanelgroupnotices.h" #include "llpreview.h" #include "llpreviewscript.h" +#include "llsecondlifeurls.h" #include "llselectmgr.h" #include "llsky.h" #include "llsrv.h" @@ -154,6 +154,7 @@ #include "llviewerwindow.h" #include "llvoavatar.h" #include "llvoclouds.h" +#include "llweb.h" #include "llworld.h" #include "llworldmap.h" #include "llxfermanager.h" @@ -167,7 +168,6 @@ #include "llnamelistctrl.h" #include "llnamebox.h" #include "llnameeditor.h" -#include "llurlsimstring.h" #if LL_LIBXUL_ENABLED #include "llmozlib.h" @@ -351,6 +351,7 @@ BOOL idle_startup() static S32 location_which = START_LOCATION_ID_LAST; static BOOL show_connect_box = TRUE; + static BOOL remember_password = TRUE; static BOOL stipend_since_login = FALSE; @@ -583,7 +584,28 @@ BOOL idle_startup() #endif // LL_LINUX // initialize Mozilla - pass in executable dir, location of extra dirs (chrome/, greprefs/, plugins/ etc.) and path to profile dir) - LLMozLib::getInstance()->init( gDirUtilp->getExecutableDir(), componentDir, gDirUtilp->getExpandedFilename( LL_PATH_MOZILLA_PROFILE, "" ) ); + + std::string application_dir; + std::string component_dir; + std::string profile_dir; + +#if LL_WINDOWS + // Fix strings passed into Mozilla; it expects local-codepage mbcs paths rather than UTF8 + llutf16string temp_16str = utf8str_to_utf16str( gDirUtilp->getExecutableDir() ); + application_dir = ll_convert_wide_to_string( (const wchar_t*) temp_16str.c_str() ); + + temp_16str = utf8str_to_utf16str( componentDir ); + component_dir = ll_convert_wide_to_string( (const wchar_t*) temp_16str.c_str() ); + + temp_16str = utf8str_to_utf16str( gDirUtilp->getExpandedFilename( LL_PATH_MOZILLA_PROFILE, "" ).c_str() ); + profile_dir = ll_convert_wide_to_string( (const wchar_t*) temp_16str.c_str() ); +#else + application_dir = gDirUtilp->getExecutableDir().c_str(); + component_dir = componentDir.c_str(); + profile_dir = gDirUtilp->getExpandedFilename( LL_PATH_MOZILLA_PROFILE, "" ).c_str(); +#endif + + LLMozLib::getInstance()->init( application_dir, componentDir, profile_dir ); #if LL_LINUX setlocale(LC_ALL, saved_locale.c_str() ); @@ -655,7 +677,17 @@ BOOL idle_startup() firstname = gCmdLineFirstName; lastname = gCmdLineLastName; + LLMD5 pass((unsigned char*)gCmdLinePassword.c_str()); + char md5pass[33]; /* Flawfinder: ignore */ + pass.hex_digest(md5pass); + password = md5pass; + remember_password = gSavedSettings.getBOOL("RememberPassword"); + +#ifdef USE_VIEWER_AUTH show_connect_box = TRUE; +#else + show_connect_box = FALSE; +#endif gAutoLogin = TRUE; } else if (gAutoLogin || gSavedSettings.getBOOL("AutoLogin")) @@ -664,7 +696,13 @@ BOOL idle_startup() lastname = gSavedSettings.getString("LastName"); password = load_password_from_disk(); gSavedSettings.setBOOL("RememberPassword", TRUE); + remember_password = TRUE; + +#ifdef USE_VIEWER_AUTH show_connect_box = TRUE; +#else + show_connect_box = FALSE; +#endif } else { @@ -673,6 +711,7 @@ BOOL idle_startup() firstname = gSavedSettings.getString("FirstName"); lastname = gSavedSettings.getString("LastName"); password = load_password_from_disk(); + remember_password = gSavedSettings.getBOOL("RememberPassword"); show_connect_box = TRUE; } @@ -694,6 +733,9 @@ BOOL idle_startup() if (show_connect_box) { + // Load all the name information out of the login view + LLPanelLogin::getFields(firstname, lastname, password, remember_password); + if (gNoRender) { llerrs << "Need to autologin or use command line with norender!" << llendl; @@ -703,6 +745,8 @@ BOOL idle_startup() // Show the login dialog login_show(); + // connect dialog is already shown, so fill in the names + LLPanelLogin::setFields( firstname, lastname, password, remember_password ); LLPanelLogin::giveFocus(); @@ -768,6 +812,11 @@ BOOL idle_startup() if (show_connect_box) { + // TODO if not use viewer auth + // Load all the name information out of the login view + LLPanelLogin::getFields(firstname, lastname, password, remember_password); + // end TODO + // HACK: Try to make not jump on login gKeyboard->resetKeys(); } @@ -777,6 +826,16 @@ BOOL idle_startup() gSavedSettings.setString("FirstName", firstname); gSavedSettings.setString("LastName", lastname); + if (remember_password) + { + save_password_to_disk(password.c_str()); + } + else + { + save_password_to_disk(NULL); + } + gSavedSettings.setBOOL("RememberPassword", remember_password); + llinfos << "Attempting login as: " << firstname << " " << lastname << llendl; gDebugInfo["LoginName"] = firstname + " " + lastname; } @@ -823,13 +882,36 @@ BOOL idle_startup() if (show_connect_box) { + // TODO only set loginuri based on server choice if ! USE_VIEWER_AUTH + LLString server_label; + S32 domain_name_index; + BOOL user_picked_server = LLPanelLogin::getServer( server_label, domain_name_index ); + gGridChoice = (EGridInfo) domain_name_index; + gSavedSettings.setS32("ServerChoice", gGridChoice); + if (gGridChoice == GRID_INFO_OTHER) + { + snprintf(gGridName, MAX_STRING, "%s", server_label.c_str());/* Flawfinder: ignore */ + } + + if ( user_picked_server ) + { // User picked a grid from the popup, so clear the stored urls and they will be re-generated from gGridChoice + sAuthUris.clear(); + LLAppViewer::instance()->resetURIs(); + } + + LLString location; + LLPanelLogin::getLocation( location ); + LLURLSimString::setString( location ); + // END TODO LLPanelLogin::close(); } //For HTML parsing in text boxes. LLTextEditor::setLinkColor( gSavedSettings.getColor4("HTMLLinkColor") ); - LLTextEditor::setURLCallbacks ( &LLWeb::loadURL, &LLURLDispatcher::dispatch, &LLURLDispatcher::dispatch ); + LLTextEditor::setURLCallbacks ( &LLWeb::loadURL, + &LLURLDispatcher::dispatchFromTextEditor, + &LLURLDispatcher::dispatchFromTextEditor ); //------------------------------------------------- // Handle startup progress screen @@ -933,9 +1015,15 @@ BOOL idle_startup() gSavedSettings.setBOOL("UseDebugMenus", TRUE); requested_options.push_back("god-connect"); } - LLAppViewer::instance()->getLoginURIs(); - sAuthUris = LLAppViewer::instance()->getLoginURIs(); - + const std::vector& uris = LLAppViewer::instance()->getLoginURIs(); + std::vector::const_iterator iter, end; + for (iter = uris.begin(), end = uris.end(); iter != end; ++iter) + { + std::vector rewritten; + rewritten = LLSRV::rewriteURI(*iter); + sAuthUris.insert(sAuthUris.end(), + rewritten.begin(), rewritten.end()); + } sAuthUriNum = 0; auth_method = "login_to_simulator"; auth_desc = "Logging in. "; @@ -979,12 +1067,14 @@ BOOL idle_startup() hashed_mac.finalize(); hashed_mac.hex_digest(hashed_mac_string); + // TODO if statement here to use web_login_key gUserAuthp->authenticate( sAuthUris[sAuthUriNum].c_str(), auth_method.c_str(), firstname.c_str(), lastname.c_str(), - web_login_key, + // web_login_key, + password.c_str(), start.str().c_str(), gSkipOptionalUpdate, gAcceptTOS, @@ -1256,7 +1346,16 @@ BOOL idle_startup() if(text) lastname.assign(text); gSavedSettings.setString("FirstName", firstname); gSavedSettings.setString("LastName", lastname); - + + if (remember_password) + { + save_password_to_disk(password.c_str()); + } + else + { + save_password_to_disk(NULL); + } + gSavedSettings.setBOOL("RememberPassword", remember_password); gSavedSettings.setBOOL("LoginLastLocation", gSavedSettings.getBOOL("LoginLastLocation")); text = gUserAuthp->getResponse("agent_access"); @@ -1461,6 +1560,8 @@ BOOL idle_startup() reset_login(); gAutoLogin = FALSE; show_connect_box = TRUE; + // Don't save an incorrect password to disk. + save_password_to_disk(NULL); } return do_normal_idle; } @@ -1747,8 +1848,8 @@ BOOL idle_startup() } else { - //llinfos << "######### QuickTime version (hex) is " << std::hex << LLMediaEngine::getInstance()->getQuickTimeVersion() << llendl; - //llinfos << "######### QuickTime version is " << std::dec << LLMediaEngine::getInstance()->getQuickTimeVersion() << llendl; + llinfos << "QUICKTIME> QuickTime version (hex) is " << std::hex << LLMediaEngine::getInstance()->getQuickTimeVersion() << llendl; + llinfos << "QUICKTIME> QuickTime version is " << std::dec << LLMediaEngine::getInstance()->getQuickTimeVersion() << llendl; if ( LLMediaEngine::getInstance()->getQuickTimeVersion() < LL_MIN_QUICKTIME_VERSION ) { // turn off QuickTime if version is less than required @@ -1764,6 +1865,8 @@ BOOL idle_startup() }; }; #elif LL_DARWIN + llinfos << "QUICKTIME> QuickTime version (hex) is " << std::hex << LLMediaEngine::getInstance()->getQuickTimeVersion() << llendl; + llinfos << "QUICKTIME> QuickTime version is " << std::dec << LLMediaEngine::getInstance()->getQuickTimeVersion() << llendl; if ( LLMediaEngine::getInstance()->getQuickTimeVersion() < LL_MIN_QUICKTIME_VERSION ) { // turn off QuickTime if version is less than required @@ -2156,7 +2259,6 @@ BOOL idle_startup() msg->setHandlerFuncFast(_PREHASH_PreloadSound, process_preload_sound); msg->setHandlerFuncFast(_PREHASH_AttachedSound, process_attached_sound); msg->setHandlerFuncFast(_PREHASH_AttachedSoundGainChange, process_attached_sound_gain_change); - //msg->setHandlerFuncFast(_PREHASH_AttachedSoundCutoffRadius, process_attached_sound_cutoff_radius); llinfos << "Initialization complete" << llendl; @@ -2201,7 +2303,7 @@ BOOL idle_startup() else { args["[TYPE]"] = "home"; - args["[HELP]"] = "\nYou may want to set a new home location."; + args["[HELP]"] = "You may want to set a new home location."; } gViewerWindow->alertXml("AvatarMoved", args); } @@ -2339,7 +2441,7 @@ BOOL idle_startup() audio_update_volume(); // reset keyboard focus to sane state of pointing at world - gFocusMgr.setKeyboardFocus(NULL, NULL); + gFocusMgr.setKeyboardFocus(NULL); #if 0 // sjb: enable for auto-enabling timer display gDebugView->mFastTimerView->setVisible(TRUE); @@ -2373,12 +2475,76 @@ void login_show() // UI textures have been previously loaded in doPreloadImages() llinfos << "Setting Servers" << llendl; + + if( GRID_INFO_OTHER == gGridChoice ) + { + LLPanelLogin::addServer( gGridName, GRID_INFO_OTHER ); + } + else + { + LLPanelLogin::addServer( gGridInfo[gGridChoice].mLabel, gGridChoice ); + } + + // Arg! We hate loops! + LLPanelLogin::addServer( gGridInfo[GRID_INFO_ADITI].mLabel, GRID_INFO_ADITI ); + LLPanelLogin::addServer( gGridInfo[GRID_INFO_AGNI].mLabel, GRID_INFO_AGNI ); + LLPanelLogin::addServer( gGridInfo[GRID_INFO_ARUNA].mLabel, GRID_INFO_ARUNA ); + LLPanelLogin::addServer( gGridInfo[GRID_INFO_DURGA].mLabel, GRID_INFO_DURGA ); + LLPanelLogin::addServer( gGridInfo[GRID_INFO_GANGA].mLabel, GRID_INFO_GANGA ); + LLPanelLogin::addServer( gGridInfo[GRID_INFO_MITRA].mLabel, GRID_INFO_MITRA ); + LLPanelLogin::addServer( gGridInfo[GRID_INFO_MOHINI].mLabel, GRID_INFO_MOHINI ); + LLPanelLogin::addServer( gGridInfo[GRID_INFO_NANDI].mLabel, GRID_INFO_NANDI ); + LLPanelLogin::addServer( gGridInfo[GRID_INFO_RADHA].mLabel, GRID_INFO_RADHA ); + LLPanelLogin::addServer( gGridInfo[GRID_INFO_RAVI].mLabel, GRID_INFO_RAVI ); + LLPanelLogin::addServer( gGridInfo[GRID_INFO_SIVA].mLabel, GRID_INFO_SIVA ); + LLPanelLogin::addServer( gGridInfo[GRID_INFO_SHAKTI].mLabel, GRID_INFO_SHAKTI ); + LLPanelLogin::addServer( gGridInfo[GRID_INFO_SOMA].mLabel, GRID_INFO_SOMA ); + LLPanelLogin::addServer( gGridInfo[GRID_INFO_UMA].mLabel, GRID_INFO_UMA ); + LLPanelLogin::addServer( gGridInfo[GRID_INFO_VAAK].mLabel, GRID_INFO_VAAK ); + LLPanelLogin::addServer( gGridInfo[GRID_INFO_YAMI].mLabel, GRID_INFO_YAMI ); + LLPanelLogin::addServer( gGridInfo[GRID_INFO_LOCAL].mLabel, GRID_INFO_LOCAL ); } // Callback for when login screen is closed. Option 0 = connect, option 1 = quit. void login_callback(S32 option, void *userdata) { + const S32 CONNECT_OPTION = 0; + const S32 QUIT_OPTION = 1; + if (CONNECT_OPTION == option) + { + LLStartUp::setStartupState( STATE_LOGIN_CLEANUP ); + return; + } + else if (QUIT_OPTION == option) + { + // Make sure we don't save the password if the user is trying to clear it. + LLString first, last, password; + BOOL remember = TRUE; + LLPanelLogin::getFields(first, last, password, remember); + if (!remember) + { + // turn off the setting and write out to disk + gSavedSettings.setBOOL("RememberPassword", FALSE); + gSavedSettings.saveToFile(gSettingsFileName, TRUE); + + // stomp the saved password on disk + save_password_to_disk(NULL); + } + + // Next iteration through main loop should shut down the app cleanly. + LLAppViewer::instance()->userQuit(); + + if (LLAppViewer::instance()->quitRequested()) + { + LLPanelLogin::close(); + } + return; + } + else + { + llwarns << "Unknown login button clicked" << llendl; + } } LLString load_password_from_disk() @@ -2531,17 +2697,22 @@ void set_startup_status(const F32 frac, const char *string, const char* msg) void login_alert_status(S32 option, void* user_data) { - if (0 == option) - { - // OK button - } - else if (1 == option) - { - // Help button - std::string help_path; - help_path = gDirUtilp->getExpandedFilename(LL_PATH_HELP, "unable_to_connect.html"); - load_url_local_file(help_path.c_str() ); - } + // Buttons + switch( option ) + { + case 0: // OK + break; + case 1: // Help + LLWeb::loadURL( SUPPORT_URL ); + break; + case 2: // Teleport + // Restart the login process, starting at our home locaton + LLURLSimString::setString(LLURLSimString::sLocationStringHome); + LLStartUp::setStartupState( STATE_LOGIN_CLEANUP ); + break; + default: + llwarns << "Missing case in login_alert_status switch" << llendl; + } LLPanelLogin::giveFocus(); } @@ -2810,7 +2981,6 @@ void register_viewer_callbacks(LLMessageSystem* msg) msg->setHandlerFuncFast(_PREHASH_MeanCollisionAlert, process_mean_collision_alert_message, NULL); msg->setHandlerFunc("ViewerFrozenMessage", process_frozen_message); - //msg->setHandlerFuncFast(_PREHASH_RequestAvatarInfo, process_avatar_info_request); msg->setHandlerFuncFast(_PREHASH_NameValuePair, process_name_value); msg->setHandlerFuncFast(_PREHASH_RemoveNameValuePair, process_remove_name_value); msg->setHandlerFuncFast(_PREHASH_AvatarAnimation, process_avatar_animation); @@ -3641,7 +3811,8 @@ bool LLStartUp::dispatchURL() // ok, if we've gotten this far and have a startup URL if (!sSLURLCommand.empty()) { - LLURLDispatcher::dispatch(sSLURLCommand); + const bool from_external_browser = true; + LLURLDispatcher::dispatch(sSLURLCommand, from_external_browser); } else if (LLURLSimString::parse()) { @@ -3657,7 +3828,8 @@ bool LLStartUp::dispatchURL() || (dy*dy > SLOP*SLOP) ) { std::string url = LLURLSimString::getURL(); - LLURLDispatcher::dispatch(url); + const bool from_external_browser = true; + LLURLDispatcher::dispatch(url, from_external_browser); } return true; } diff --git a/linden/indra/newview/llstartup.h b/linden/indra/newview/llstartup.h index 80f470a..872efba 100644 --- a/linden/indra/newview/llstartup.h +++ b/linden/indra/newview/llstartup.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llstatbar.cpp b/linden/indra/newview/llstatbar.cpp index 8d24127..ceb9659 100644 --- a/linden/indra/newview/llstatbar.cpp +++ b/linden/indra/newview/llstatbar.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llstatbar.h b/linden/indra/newview/llstatbar.h index 2a2ffb5..7969454 100644 --- a/linden/indra/newview/llstatbar.h +++ b/linden/indra/newview/llstatbar.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llstatgraph.cpp b/linden/indra/newview/llstatgraph.cpp index b7497ce..910f85b 100644 --- a/linden/indra/newview/llstatgraph.cpp +++ b/linden/indra/newview/llstatgraph.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llstatgraph.h b/linden/indra/newview/llstatgraph.h index 914b205..2c71e4d 100644 --- a/linden/indra/newview/llstatgraph.h +++ b/linden/indra/newview/llstatgraph.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llstatusbar.cpp b/linden/indra/newview/llstatusbar.cpp index d7b60d9..29335d9 100644 --- a/linden/indra/newview/llstatusbar.cpp +++ b/linden/indra/newview/llstatusbar.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -100,7 +100,6 @@ const LLColor4 SIM_WARN_COLOR(1.f, 1.f, 0.f, 1.f); const LLColor4 SIM_FULL_COLOR(1.f, 0.f, 0.f, 1.f); const F32 ICON_TIMER_EXPIRY = 3.f; // How long the balance and health icons should flash after a change. const F32 ICON_FLASH_FREQUENCY = 2.f; -const S32 GRAPHIC_FUDGE = 4; const S32 TEXT_HEIGHT = 18; static void onClickParcelInfo(void*); @@ -153,13 +152,13 @@ LLStatusBar::LLStatusBar(const std::string& name, const LLRect& rect) childSetAction("scriptout", onClickScriptDebug, this); childSetAction("health", onClickHealth, this); - childSetAction("fly", onClickFly, this); + childSetAction("no_fly", onClickFly, this); childSetAction("buyland", onClickBuyLand, this ); childSetAction("buycurrency", onClickBuyCurrency, this ); - childSetAction("build", onClickBuild, this ); - childSetAction("scripts", onClickScripts, this ); + childSetAction("no_build", onClickBuild, this ); + childSetAction("no_scripts", onClickScripts, this ); childSetAction("restrictpush", onClickPush, this ); - childSetAction("status_voice", onClickVoice, this ); + childSetAction("status_no_voice", onClickVoice, this ); childSetCommitCallback("search_editor", onCommitSearch, this); childSetAction("search_btn", onClickSearch, this); @@ -304,7 +303,7 @@ void LLStatusBar::refresh() // Health childGetRect( "health", buttonRect ); - r.setOriginAndSize( x, y-GRAPHIC_FUDGE, buttonRect.getWidth(), buttonRect.getHeight()); + r.setOriginAndSize( x, y, buttonRect.getWidth(), buttonRect.getHeight()); childSetRect("health", r); x += buttonRect.getWidth(); @@ -324,27 +323,32 @@ void LLStatusBar::refresh() (parcel && !parcel->getAllowFly()) ) { // No Fly Zone - childGetRect( "fly", buttonRect ); - childSetVisible( "fly", true ); - r.setOriginAndSize( x, y-GRAPHIC_FUDGE, buttonRect.getWidth(), buttonRect.getHeight()); - childSetRect( "fly", r ); + childGetRect( "no_fly", buttonRect ); + childSetVisible( "no_fly", true ); + r.setOriginAndSize( x, y, buttonRect.getWidth(), buttonRect.getHeight()); + childSetRect( "no_fly", r ); x += buttonRect.getWidth(); } else { - childSetVisible("fly", false); + // Fly Zone + childSetVisible("no_fly", false); } BOOL no_build = parcel && !parcel->getAllowModify(); - childSetVisible("build", no_build); if (no_build) { - childGetRect( "build", buttonRect ); + childSetVisible("no_build", TRUE); + childGetRect( "no_build", buttonRect ); // No Build Zone - r.setOriginAndSize( x, y-GRAPHIC_FUDGE, buttonRect.getWidth(), buttonRect.getHeight()); - childSetRect( "build", r ); + r.setOriginAndSize( x, y, buttonRect.getWidth(), buttonRect.getHeight()); + childSetRect( "no_build", r ); x += buttonRect.getWidth(); } + else + { + childSetVisible("no_build", FALSE); + } BOOL no_scripts = FALSE; if((region @@ -354,35 +358,56 @@ void LLStatusBar::refresh() { no_scripts = TRUE; } - childSetVisible("scripts", no_scripts); if (no_scripts) { // No scripts - childGetRect( "scripts", buttonRect ); - r.setOriginAndSize( x, y-GRAPHIC_FUDGE, buttonRect.getWidth(), buttonRect.getHeight()); - childSetRect( "scripts", r ); + childSetVisible("no_scripts", TRUE); + childGetRect( "no_scripts", buttonRect ); + r.setOriginAndSize( x, y, buttonRect.getWidth(), buttonRect.getHeight()); + childSetRect( "no_scripts", r ); x += buttonRect.getWidth(); } + else + { + // Yes scripts + childSetVisible("no_scripts", FALSE); + } BOOL no_region_push = (region && region->getRestrictPushObject()); BOOL no_push = no_region_push || (parcel && parcel->getRestrictPushObject()); - childSetVisible("restrictpush", no_push); if (no_push) { + childSetVisible("restrictpush", TRUE); childGetRect( "restrictpush", buttonRect ); - r.setOriginAndSize( x, y-GRAPHIC_FUDGE, buttonRect.getWidth(), buttonRect.getHeight()); + r.setOriginAndSize( x, y, buttonRect.getWidth(), buttonRect.getHeight()); childSetRect( "restrictpush", r ); x += buttonRect.getWidth(); } + else + { + childSetVisible("restrictpush", FALSE); + } - BOOL have_voice = gVoiceClient->getAreaVoiceDisabled() ? FALSE : TRUE; - childSetVisible("status_voice", have_voice); - if (have_voice) + BOOL voice_enabled = gVoiceClient->voiceEnabled(); + BOOL have_voice = parcel && parcel->getVoiceEnabled(); + if (!voice_enabled) { - childGetRect( "status_voice", buttonRect ); - r.setOriginAndSize( x, y-GRAPHIC_FUDGE, buttonRect.getWidth(), buttonRect.getHeight()); - childSetRect( "status_voice", r ); - x += buttonRect.getWidth(); + childSetVisible("status_no_voice", FALSE); + } + else + { + if (have_voice) + { + childSetVisible("status_no_voice", FALSE); + } + else if (!have_voice) + { + childSetVisible("status_no_voice", TRUE); + childGetRect( "status_no_voice", buttonRect ); + r.setOriginAndSize( x, y, buttonRect.getWidth(), buttonRect.getHeight()); + childSetRect( "status_no_voice", r ); + x += buttonRect.getWidth(); + } } BOOL canBuyLand = parcel @@ -512,7 +537,7 @@ void LLStatusBar::refresh() mTextParcelName->setText(location_name); // Adjust region name and parcel name - x += 4; + x += 8; const S32 PARCEL_RIGHT = llmin(mTextTime->getRect().mLeft, mTextParcelName->getTextPixelWidth() + x + 5); r.set(x+4, mRect.getHeight() - 2, PARCEL_RIGHT, 0); @@ -672,8 +697,7 @@ static void onClickPush(void* ) static void onClickVoice(void* ) { - LLNotifyBox::showXml("VoiceAvailablity"); - //LLFirstUse::useVoice(); + LLNotifyBox::showXml("NoVoice"); } static void onClickBuild(void*) @@ -708,7 +732,7 @@ static void onClickBuyLand(void*) void LLStatusBar::setupDate() { // fill the day array with what's in the xui - LLString day_list = childGetText("StatBarDaysOfWeek"); + LLString day_list = getFormattedUIString("StatBarDaysOfWeek"); size_t length = day_list.size(); // quick input check @@ -732,7 +756,7 @@ void LLStatusBar::setupDate() } // fill the day array with what's in the xui - LLString month_list = childGetText( "StatBarMonthsOfYear" ); + LLString month_list = getFormattedUIString( "StatBarMonthsOfYear" ); length = month_list.size(); // quick input check diff --git a/linden/indra/newview/llstatusbar.h b/linden/indra/newview/llstatusbar.h index 03c8ad0..72b0751 100644 --- a/linden/indra/newview/llstatusbar.h +++ b/linden/indra/newview/llstatusbar.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llstatview.cpp b/linden/indra/newview/llstatview.cpp index ee9fa0c..20e9503 100644 --- a/linden/indra/newview/llstatview.cpp +++ b/linden/indra/newview/llstatview.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llstatview.h b/linden/indra/newview/llstatview.h index 9f78a20..0db0850 100644 --- a/linden/indra/newview/llstatview.h +++ b/linden/indra/newview/llstatview.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llsurface.cpp b/linden/indra/newview/llsurface.cpp index 9171e22..9e23713 100644 --- a/linden/indra/newview/llsurface.cpp +++ b/linden/indra/newview/llsurface.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llsurface.h b/linden/indra/newview/llsurface.h index 7416a54..2ecfd81 100644 --- a/linden/indra/newview/llsurface.h +++ b/linden/indra/newview/llsurface.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llsurfacepatch.cpp b/linden/indra/newview/llsurfacepatch.cpp index 0b255a6..f076508 100644 --- a/linden/indra/newview/llsurfacepatch.cpp +++ b/linden/indra/newview/llsurfacepatch.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llsurfacepatch.h b/linden/indra/newview/llsurfacepatch.h index 977a9a1..174743e 100644 --- a/linden/indra/newview/llsurfacepatch.h +++ b/linden/indra/newview/llsurfacepatch.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltable.h b/linden/indra/newview/lltable.h index 13acd5c..325497a 100644 --- a/linden/indra/newview/lltable.h +++ b/linden/indra/newview/lltable.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltexlayer.cpp b/linden/indra/newview/lltexlayer.cpp index 88e4b33..8958516 100644 --- a/linden/indra/newview/lltexlayer.cpp +++ b/linden/indra/newview/lltexlayer.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltexlayer.h b/linden/indra/newview/lltexlayer.h index 32d4635..8306071 100644 --- a/linden/indra/newview/lltexlayer.h +++ b/linden/indra/newview/lltexlayer.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltexturecache.cpp b/linden/indra/newview/lltexturecache.cpp index e490352..59d50d2 100644 --- a/linden/indra/newview/lltexturecache.cpp +++ b/linden/indra/newview/lltexturecache.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltexturecache.h b/linden/indra/newview/lltexturecache.h index 10a3e8b..c03576b 100644 --- a/linden/indra/newview/lltexturecache.h +++ b/linden/indra/newview/lltexturecache.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltexturectrl.cpp b/linden/indra/newview/lltexturectrl.cpp index ea01105..0314f7c 100644 --- a/linden/indra/newview/lltexturectrl.cpp +++ b/linden/indra/newview/lltexturectrl.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltexturectrl.h b/linden/indra/newview/lltexturectrl.h index 476c026..80fcac2 100644 --- a/linden/indra/newview/lltexturectrl.h +++ b/linden/indra/newview/lltexturectrl.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltexturefetch.cpp b/linden/indra/newview/lltexturefetch.cpp index ef369e7..1cc28d2 100644 --- a/linden/indra/newview/lltexturefetch.cpp +++ b/linden/indra/newview/lltexturefetch.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltexturefetch.h b/linden/indra/newview/lltexturefetch.h index 8bb5e9b..d196978 100644 --- a/linden/indra/newview/lltexturefetch.h +++ b/linden/indra/newview/lltexturefetch.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltextureview.cpp b/linden/indra/newview/lltextureview.cpp index 8f09f79..96a6127 100644 --- a/linden/indra/newview/lltextureview.cpp +++ b/linden/indra/newview/lltextureview.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -373,7 +373,6 @@ public: { S32 line_height = (S32)(LLFontGL::sMonospace->getLineHeight() + .5f); setRect(LLRect(0,0,100,line_height * 4)); - updateRect(); } virtual EWidgetType getWidgetType() const { return WIDGET_TYPE_TEX_MEM_BAR; }; diff --git a/linden/indra/newview/lltextureview.h b/linden/indra/newview/lltextureview.h index 772876c..2bf9461 100644 --- a/linden/indra/newview/lltextureview.h +++ b/linden/indra/newview/lltextureview.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltool.cpp b/linden/indra/newview/lltool.cpp index d36e9a5..2be76a0 100644 --- a/linden/indra/newview/lltool.cpp +++ b/linden/indra/newview/lltool.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltool.h b/linden/indra/newview/lltool.h index 9b7831e..50e4da0 100644 --- a/linden/indra/newview/lltool.h +++ b/linden/indra/newview/lltool.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolbar.cpp b/linden/indra/newview/lltoolbar.cpp index 5cddc59..e3aa9a3 100644 --- a/linden/indra/newview/lltoolbar.cpp +++ b/linden/indra/newview/lltoolbar.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -60,6 +60,11 @@ #include "llvieweruictrlfactory.h" #include "llviewerwindow.h" #include "lltoolgrab.h" +#include "llcombobox.h" +#include "llfloaterchat.h" +#include "llfloatermute.h" +#include "llimpanel.h" +#include "llscrolllistctrl.h" #if LL_DARWIN @@ -100,24 +105,20 @@ F32 LLToolBar::sInventoryAutoOpenTime = 1.f; // Functions // -LLToolBar::LLToolBar(const std::string& name, const LLRect& r) -: LLPanel(name, r, BORDER_NO) +LLToolBar::LLToolBar() +: LLPanel() #if LL_DARWIN , mResizeHandle(NULL) #endif // LL_DARWIN { setIsChrome(TRUE); - setFollows( FOLLOWS_LEFT | FOLLOWS_RIGHT | FOLLOWS_BOTTOM ); - - gUICtrlFactory->buildPanel(this, "panel_toolbar.xml"); - mIsFocusRoot = TRUE; - + setFocusRoot(TRUE); } BOOL LLToolBar::postBuild() { - childSetAction("communicate_btn", onClickCommunicate, this); + childSetCommitCallback("communicate_btn", onClickCommunicate, this); childSetControlName("communicate_btn", "ShowCommunicate"); childSetAction("chat_btn", onClickChat, this); @@ -270,29 +271,47 @@ void LLToolBar::layoutButtons() } #endif // LL_DARWIN + LLButton* chat_button = LLUICtrlFactory::getButtonByName(this, "chat_btn"); + if (chat_button) + { + width -= chat_button->getRect().getWidth() + pad; + } + // We actually want to extend "pad" pixels off the right edge of the // screen, such that the rightmost button is aligned. - F32 segment_width = (F32)(width + pad) / (F32)count; - S32 btn_width = lltrunc(segment_width - pad); + S32 segment_width = llround((F32)(width) / ((F32)count - 1.f)); + S32 btn_width = segment_width - pad; // Evenly space all views S32 height = -1; S32 i = count - 1; - for (child_list_const_iter_t child_iter = getChildList()->begin(); - child_iter != getChildList()->end(); ++child_iter) + S32 x = pad; + for (child_list_const_reverse_iter_t child_iter = getChildList()->rbegin(); + child_iter != getChildList()->rend(); ++child_iter) { LLView *btn_view = *child_iter; - if(btn_view->getWidgetType() == WIDGET_TYPE_BUTTON) + if(btn_view->getWidgetType() == WIDGET_TYPE_BUTTON || btn_view->getWidgetType() == WIDGET_TYPE_FLYOUT_BUTTON) { if (height < 0) { height = btn_view->getRect().getHeight(); } - S32 x = llround(i*segment_width); - S32 y = 0; - LLRect r; - r.setOriginAndSize(x, y, btn_width, height); - btn_view->setRect(r); + + LLRect r; + + if (btn_view->getName() == "chat_btn") + { + r.setOriginAndSize(x, 0, btn_view->getRect().getWidth(), height); + x += btn_view->getRect().getWidth() + pad; + } + else + { + r.setOriginAndSize(x, 0, btn_width, height); + x += segment_width; + } + + btn_view->setOrigin(r.mLeft, r.mBottom); + btn_view->reshape(r.getWidth(), r.getHeight()); i--; } } @@ -321,6 +340,7 @@ void LLToolBar::refresh() childSetEnabled("build_btn", gParcelMgr->agentCanBuild() ); + // Check to see if we're in build mode BOOL build_mode = gToolMgr->inEdit(); // And not just clicking on a scripted object @@ -329,13 +349,135 @@ void LLToolBar::refresh() build_mode = FALSE; } gSavedSettings.setBOOL("BuildBtnState", build_mode); + + updateCommunicateList(); +} + +void LLToolBar::updateCommunicateList() +{ + LLFlyoutButton* communicate_button = (LLFlyoutButton*)getChildByName("communicate_btn", TRUE); + if (communicate_button) + { + LLSD selected = communicate_button->getValue(); + + communicate_button->removeall(); + + LLFloater* frontmost_floater = LLFloaterChatterBox::getInstance()->getActiveFloater(); + LLScrollListItem* itemp = NULL; + + itemp = communicate_button->add(LLFloaterMyFriends::getInstance()->getShortTitle(), LLSD("contacts"), ADD_TOP); + if (LLFloaterMyFriends::getInstance() == frontmost_floater) + { + ((LLScrollListText*)itemp->getColumn(0))->setFontStyle(LLFontGL::BOLD); + // make sure current tab is selected in list + if (selected.isUndefined()) + { + selected = itemp->getValue(); + } + } + itemp = communicate_button->add(LLFloaterChat::getInstance()->getShortTitle(), LLSD("local chat"), ADD_TOP); + if (LLFloaterChat::getInstance() == frontmost_floater) + { + ((LLScrollListText*)itemp->getColumn(0))->setFontStyle(LLFontGL::BOLD); + if (selected.isUndefined()) + { + selected = itemp->getValue(); + } + } + communicate_button->addSeparator(ADD_TOP); + communicate_button->add(getUIString("Redock Windows"), LLSD("redock"), ADD_TOP); + communicate_button->addSeparator(ADD_TOP); + communicate_button->add(LLFloaterMute::getInstance()->getShortTitle(), LLSD("mute list"), ADD_TOP); + + std::set::const_iterator floater_handle_it; + + if (gIMMgr->getIMFloaterHandles().size() > 0) + { + communicate_button->addSeparator(ADD_TOP); + } + + for(floater_handle_it = gIMMgr->getIMFloaterHandles().begin(); floater_handle_it != gIMMgr->getIMFloaterHandles().end(); ++floater_handle_it) + { + LLFloaterIMPanel* im_floaterp = (LLFloaterIMPanel*)LLFloater::getFloaterByHandle(*floater_handle_it); + if (im_floaterp) + { + LLString floater_title = im_floaterp->getNumUnreadMessages() > 0 ? "*" : ""; + floater_title.append(im_floaterp->getShortTitle()); + itemp = communicate_button->add(floater_title, im_floaterp->getSessionID(), ADD_TOP); + if (im_floaterp == frontmost_floater) + { + ((LLScrollListText*)itemp->getColumn(0))->setFontStyle(LLFontGL::BOLD); + if (selected.isUndefined()) + { + selected = itemp->getValue(); + } + } + } + } + + communicate_button->setToggleState(gSavedSettings.getBOOL("ShowCommunicate")); + communicate_button->setValue(selected); + } } // static -void LLToolBar::onClickCommunicate(void* user_data) +void LLToolBar::onClickCommunicate(LLUICtrl* ctrl, void* user_data) { - LLFloaterChatterBox::toggleInstance(LLSD()); + LLToolBar* toolbar = (LLToolBar*)user_data; + LLFlyoutButton* communicate_button = (LLFlyoutButton*)toolbar->getChildByName("communicate_btn", TRUE); + + LLSD selected_option = communicate_button->getValue(); + + if (selected_option.asString() == "contacts") + { + LLFloaterMyFriends::showInstance(); + } + else if (selected_option.asString() == "local chat") + { + LLFloaterChat::showInstance(); + } + else if (selected_option.asString() == "redock") + { + LLFloaterChatterBox::getInstance()->addFloater(LLFloaterMyFriends::getInstance(), FALSE); + LLFloaterChatterBox::getInstance()->addFloater(LLFloaterChat::getInstance(), FALSE); + LLUUID session_to_show; + + std::set::const_iterator floater_handle_it; + for(floater_handle_it = gIMMgr->getIMFloaterHandles().begin(); floater_handle_it != gIMMgr->getIMFloaterHandles().end(); ++floater_handle_it) + { + LLFloater* im_floaterp = LLFloater::getFloaterByHandle(*floater_handle_it); + if (im_floaterp) + { + if (im_floaterp->isFrontmost()) + { + session_to_show = ((LLFloaterIMPanel*)im_floaterp)->getSessionID(); + } + LLFloaterChatterBox::getInstance()->addFloater(im_floaterp, FALSE); + } + } + + LLFloaterChatterBox::showInstance(session_to_show); + } + else if (selected_option.asString() == "mute list") + { + LLFloaterMute::showInstance(); + } + else if (selected_option.isUndefined()) // user just clicked the communicate button, treat as toggle + { + if (LLFloaterChatterBox::getInstance()->getFloaterCount() == 0) + { + LLFloaterMyFriends::toggleInstance(); + } + else + { + LLFloaterChatterBox::toggleInstance(); + } + } + else // otherwise selection_option is a specific IM session id + { + LLFloaterChatterBox::showInstance(selected_option); + } } diff --git a/linden/indra/newview/lltoolbar.h b/linden/indra/newview/lltoolbar.h index c033240..d42d7bb 100644 --- a/linden/indra/newview/lltoolbar.h +++ b/linden/indra/newview/lltoolbar.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -47,7 +47,7 @@ class LLToolBar : public LLPanel { public: - LLToolBar(const std::string& name, const LLRect& rect ); + LLToolBar(); ~LLToolBar(); /*virtual*/ BOOL postBuild(); @@ -70,7 +70,7 @@ public: void refresh(); // callbacks - static void onClickCommunicate(void*); + static void onClickCommunicate(LLUICtrl*, void*); static void onClickChat(void* data); static void onClickAppearance(void* data); static void onClickClothing(void* data); @@ -86,8 +86,13 @@ public: static F32 sInventoryAutoOpenTime; private: + void updateCommunicateList(); + + +private: BOOL mInventoryAutoOpen; LLFrameTimer mInventoryAutoOpenTimer; + S32 mNumUnreadIMs; #if LL_DARWIN LLFakeResizeHandle *mResizeHandle; #endif // LL_DARWIN diff --git a/linden/indra/newview/lltoolbrush.cpp b/linden/indra/newview/lltoolbrush.cpp index f1e0cac..5f402a8 100644 --- a/linden/indra/newview/lltoolbrush.cpp +++ b/linden/indra/newview/lltoolbrush.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolbrush.h b/linden/indra/newview/lltoolbrush.h index 041e2ea..129a08c 100644 --- a/linden/indra/newview/lltoolbrush.h +++ b/linden/indra/newview/lltoolbrush.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolcomp.cpp b/linden/indra/newview/lltoolcomp.cpp index 44a8f8d..2882b6f 100644 --- a/linden/indra/newview/lltoolcomp.cpp +++ b/linden/indra/newview/lltoolcomp.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolcomp.h b/linden/indra/newview/lltoolcomp.h index ff01512..ce4aec9 100644 --- a/linden/indra/newview/lltoolcomp.h +++ b/linden/indra/newview/lltoolcomp.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltooldraganddrop.cpp b/linden/indra/newview/lltooldraganddrop.cpp index 6f53f79..fb430d7 100644 --- a/linden/indra/newview/lltooldraganddrop.cpp +++ b/linden/indra/newview/lltooldraganddrop.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -1199,11 +1199,22 @@ BOOL LLToolDragAndDrop::handleDropTextureProtections(LLViewerObject* hit_obj, return TRUE; } + // In case the inventory has not been updated (e.g. due to some recent operation + // causing a dirty inventory), stall the user while fetching the inventory. + if (hit_obj->isInventoryDirty()) + { + hit_obj->fetchInventoryFromServer(); + LLString::format_map_t args; + args["[ERROR_MESSAGE]"] = "Unable to add texture.\nPlease wait a few seconds and try again."; + gViewerWindow->alertXml("ErrorMessage", args); + return FALSE; + } if (hit_obj->getInventoryItemByAsset(item->getAssetUUID())) { // if the asset is already in the object's inventory // then it can always be added to a side. // This saves some work if the task's inventory is already loaded + // and ensures that the texture item is only added once. return TRUE; } @@ -1241,7 +1252,10 @@ BOOL LLToolDragAndDrop::handleDropTextureProtections(LLViewerObject* hit_obj, return FALSE; } } - hit_obj->updateInventory(new_item, TASK_INVENTORY_ASSET_KEY, true); + // Add the texture item to the target object's inventory. + hit_obj->updateInventory(new_item, TASK_INVENTORY_ITEM_KEY, true); + // TODO: Check to see if adding the item was successful; if not, then + // we should return false here. } else if(!item->getPermissions().allowOperationBy(PERM_TRANSFER, gAgent.getID())) @@ -1253,8 +1267,12 @@ BOOL LLToolDragAndDrop::handleDropTextureProtections(LLViewerObject* hit_obj, } // *FIX: may want to make sure agent can paint hit_obj. - // make sure the object has the texture in it's inventory. - hit_obj->updateInventory(new_item, TASK_INVENTORY_ASSET_KEY, true); + // Add the texture item to the target object's inventory. + hit_obj->updateInventory(new_item, TASK_INVENTORY_ITEM_KEY, true); + // Force the object to update its refetch its inventory so it has this texture. + hit_obj->fetchInventoryFromServer(); + // TODO: Check to see if adding the item was successful; if not, then + // we should return false here. } return TRUE; } diff --git a/linden/indra/newview/lltooldraganddrop.h b/linden/indra/newview/lltooldraganddrop.h index 66499bd..1d97c8f 100644 --- a/linden/indra/newview/lltooldraganddrop.h +++ b/linden/indra/newview/lltooldraganddrop.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolface.cpp b/linden/indra/newview/lltoolface.cpp index 783fbfc..bb2fc04 100644 --- a/linden/indra/newview/lltoolface.cpp +++ b/linden/indra/newview/lltoolface.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolface.h b/linden/indra/newview/lltoolface.h index 106bd20..600d2a6 100644 --- a/linden/indra/newview/lltoolface.h +++ b/linden/indra/newview/lltoolface.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolfocus.cpp b/linden/indra/newview/lltoolfocus.cpp index efa78f7..fc64bd0 100644 --- a/linden/indra/newview/lltoolfocus.cpp +++ b/linden/indra/newview/lltoolfocus.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolfocus.h b/linden/indra/newview/lltoolfocus.h index 8fa3693..2881a10 100644 --- a/linden/indra/newview/lltoolfocus.h +++ b/linden/indra/newview/lltoolfocus.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolgrab.cpp b/linden/indra/newview/lltoolgrab.cpp index d84b37b..a60046b 100644 --- a/linden/indra/newview/lltoolgrab.cpp +++ b/linden/indra/newview/lltoolgrab.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolgrab.h b/linden/indra/newview/lltoolgrab.h index d546513..7b3114b 100644 --- a/linden/indra/newview/lltoolgrab.h +++ b/linden/indra/newview/lltoolgrab.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolgun.cpp b/linden/indra/newview/lltoolgun.cpp index befa854..ded0d52 100644 --- a/linden/indra/newview/lltoolgun.cpp +++ b/linden/indra/newview/lltoolgun.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolgun.h b/linden/indra/newview/lltoolgun.h index a1c0573..2a8ad1b 100644 --- a/linden/indra/newview/lltoolgun.h +++ b/linden/indra/newview/lltoolgun.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolindividual.cpp b/linden/indra/newview/lltoolindividual.cpp index 4bdf199..946a546 100644 --- a/linden/indra/newview/lltoolindividual.cpp +++ b/linden/indra/newview/lltoolindividual.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolindividual.h b/linden/indra/newview/lltoolindividual.h index 38e2b3f..31c1235 100644 --- a/linden/indra/newview/lltoolindividual.h +++ b/linden/indra/newview/lltoolindividual.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolmgr.cpp b/linden/indra/newview/lltoolmgr.cpp index 9f7f22c..99cb54c 100644 --- a/linden/indra/newview/lltoolmgr.cpp +++ b/linden/indra/newview/lltoolmgr.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolmgr.h b/linden/indra/newview/lltoolmgr.h index 47e5958..bdd24a7 100644 --- a/linden/indra/newview/lltoolmgr.h +++ b/linden/indra/newview/lltoolmgr.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolmorph.cpp b/linden/indra/newview/lltoolmorph.cpp index a4ed0fe..37f3216 100644 --- a/linden/indra/newview/lltoolmorph.cpp +++ b/linden/indra/newview/lltoolmorph.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolmorph.h b/linden/indra/newview/lltoolmorph.h index 33079fd..9f9a88b 100644 --- a/linden/indra/newview/lltoolmorph.h +++ b/linden/indra/newview/lltoolmorph.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolobjpicker.cpp b/linden/indra/newview/lltoolobjpicker.cpp index 1ca30d8..52469b7 100644 --- a/linden/indra/newview/lltoolobjpicker.cpp +++ b/linden/indra/newview/lltoolobjpicker.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolobjpicker.h b/linden/indra/newview/lltoolobjpicker.h index d622315..3a3c628 100644 --- a/linden/indra/newview/lltoolobjpicker.h +++ b/linden/indra/newview/lltoolobjpicker.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolpie.cpp b/linden/indra/newview/lltoolpie.cpp index 76c514a..f41fa8f 100644 --- a/linden/indra/newview/lltoolpie.cpp +++ b/linden/indra/newview/lltoolpie.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolpie.h b/linden/indra/newview/lltoolpie.h index 385bfb9..c2d41a0 100644 --- a/linden/indra/newview/lltoolpie.h +++ b/linden/indra/newview/lltoolpie.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolpipette.cpp b/linden/indra/newview/lltoolpipette.cpp index 348008e..67499cc 100644 --- a/linden/indra/newview/lltoolpipette.cpp +++ b/linden/indra/newview/lltoolpipette.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolpipette.h b/linden/indra/newview/lltoolpipette.h index 93e4107..db46769 100644 --- a/linden/indra/newview/lltoolpipette.h +++ b/linden/indra/newview/lltoolpipette.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolplacer.cpp b/linden/indra/newview/lltoolplacer.cpp index efce690..bf8a400 100644 --- a/linden/indra/newview/lltoolplacer.cpp +++ b/linden/indra/newview/lltoolplacer.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -216,7 +216,7 @@ BOOL LLToolPlacer::addObject( LLPCode pcode, S32 x, S32 y, U8 use_physics ) // Play creation sound if (gAudiop) { - F32 volume = gSavedSettings.getF32("AudioLevelUI"); + F32 volume = gSavedSettings.getBOOL("MuteUI") ? 0.f : gSavedSettings.getF32("AudioLevelUI"); gAudiop->triggerSound( LLUUID(gSavedSettings.getString("UISndObjectCreate")), gAgent.getID(), volume); } diff --git a/linden/indra/newview/lltoolplacer.h b/linden/indra/newview/lltoolplacer.h index d9f01f7..3e4cad7 100644 --- a/linden/indra/newview/lltoolplacer.h +++ b/linden/indra/newview/lltoolplacer.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolselect.cpp b/linden/indra/newview/lltoolselect.cpp index 5df16b3..33eb776 100644 --- a/linden/indra/newview/lltoolselect.cpp +++ b/linden/indra/newview/lltoolselect.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolselect.h b/linden/indra/newview/lltoolselect.h index 663cd16..3ae0274 100644 --- a/linden/indra/newview/lltoolselect.h +++ b/linden/indra/newview/lltoolselect.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolselectland.cpp b/linden/indra/newview/lltoolselectland.cpp index e83b43b..11943cc 100644 --- a/linden/indra/newview/lltoolselectland.cpp +++ b/linden/indra/newview/lltoolselectland.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolselectland.h b/linden/indra/newview/lltoolselectland.h index 033db64..a5b0b11 100644 --- a/linden/indra/newview/lltoolselectland.h +++ b/linden/indra/newview/lltoolselectland.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolselectrect.cpp b/linden/indra/newview/lltoolselectrect.cpp index cfde9e1..3b74770 100644 --- a/linden/indra/newview/lltoolselectrect.cpp +++ b/linden/indra/newview/lltoolselectrect.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolselectrect.h b/linden/indra/newview/lltoolselectrect.h index f763fe3..e4bb384 100644 --- a/linden/indra/newview/lltoolselectrect.h +++ b/linden/indra/newview/lltoolselectrect.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolview.cpp b/linden/indra/newview/lltoolview.cpp index f61d8ba..8aed5f8 100644 --- a/linden/indra/newview/lltoolview.cpp +++ b/linden/indra/newview/lltoolview.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltoolview.h b/linden/indra/newview/lltoolview.h index 0ec84a4..22d6807 100644 --- a/linden/indra/newview/lltoolview.h +++ b/linden/indra/newview/lltoolview.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lltracker.cpp b/linden/indra/newview/lltracker.cpp index 6851faf..6dfc700 100644 --- a/linden/indra/newview/lltracker.cpp +++ b/linden/indra/newview/lltracker.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -639,6 +639,10 @@ void LLTracker::stopTrackingLocation(BOOL clear_ui) mTrackingLocationType = LOCATION_NOTHING; } +void LLTracker::clearFocus() +{ + instance()->mTrackingStatus = TRACKING_NOTHING; +} void LLTracker::drawMarker(const LLVector3d& pos_global, const LLColor4& color) { diff --git a/linden/indra/newview/lltracker.h b/linden/indra/newview/lltracker.h index 858b501..6d45a8d 100644 --- a/linden/indra/newview/lltracker.h +++ b/linden/indra/newview/lltracker.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -82,7 +82,8 @@ public: static ETrackingLocationType getTrackedLocationType() { return instance()->mTrackingLocationType; } static BOOL isTracking(void*) { return (BOOL) instance()->mTrackingStatus; } static void stopTracking(void*); - + static void clearFocus(); + static const LLUUID& getTrackedLandmarkAssetID() { return instance()->mTrackedLandmarkAssetID; } static const LLUUID& getTrackedLandmarkItemID() { return instance()->mTrackedLandmarkItemID; } diff --git a/linden/indra/newview/lluiconstants.h b/linden/indra/newview/lluiconstants.h index bd75d27..b3b9297 100644 --- a/linden/indra/newview/lluiconstants.h +++ b/linden/indra/newview/lluiconstants.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lluploaddialog.cpp b/linden/indra/newview/lluploaddialog.cpp index fa2baf0..fc58721 100644 --- a/linden/indra/newview/lluploaddialog.cpp +++ b/linden/indra/newview/lluploaddialog.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lluploaddialog.h b/linden/indra/newview/lluploaddialog.h index edbe8d7..02cb0be 100644 --- a/linden/indra/newview/lluploaddialog.h +++ b/linden/indra/newview/lluploaddialog.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llurl.cpp b/linden/indra/newview/llurl.cpp index 65511f5..3226eb8 100644 --- a/linden/indra/newview/llurl.cpp +++ b/linden/indra/newview/llurl.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llurl.h b/linden/indra/newview/llurl.h index c37b3d0..62ec437 100644 --- a/linden/indra/newview/llurl.h +++ b/linden/indra/newview/llurl.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llurldispatcher.cpp b/linden/indra/newview/llurldispatcher.cpp index c2c704d..78b305c 100644 --- a/linden/indra/newview/llurldispatcher.cpp +++ b/linden/indra/newview/llurldispatcher.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -37,13 +37,13 @@ #include "llcommandhandler.h" #include "llfloaterurldisplay.h" #include "llfloaterdirectory.h" -#include "llfloaterhtmlhelp.h" -//#include "llfloaterworldmap.h" +#include "llfloaterhtml.h" #include "llfloaterworldmap.h" #include "llpanellogin.h" #include "llstartup.h" // gStartupState #include "llurlsimstring.h" #include "llviewerwindow.h" // alertXml() +#include "llweb.h" #include "llworldmap.h" // library includes @@ -63,23 +63,24 @@ public: static bool isSLURLCommand(const std::string& url); - static bool dispatch(const std::string& url); - // returns true if handled + static bool dispatch(const std::string& url, bool from_external_browser); + // returns true if handled or explicitly blocked. static bool dispatchRightClick(const std::string& url); private: - static bool dispatchCore(const std::string& url, bool right_mouse); + static bool dispatchCore(const std::string& url, + bool from_external_browser, bool right_mouse); // handles both left and right click static bool dispatchHelp(const std::string& url, BOOL right_mouse); // Handles sl://app.floater.html.help by showing Help floater. // Returns true if handled. - static bool dispatchApp(const std::string& url, BOOL right_mouse); - // Handles secondlife://app/agent//about and similar + static bool dispatchApp(const std::string& url, bool from_external_browser, BOOL right_mouse); + // Handles secondlife:///app/agent//about and similar // by showing panel in Search floater. - // Returns true if handled. + // Returns true if handled or explicitly blocked. static bool dispatchRegion(const std::string& url, BOOL right_mouse); // handles secondlife://Ahern/123/45/67/ @@ -120,11 +121,11 @@ bool LLURLDispatcherImpl::isSLURLCommand(const std::string& url) } // static -bool LLURLDispatcherImpl::dispatchCore(const std::string& url, bool right_mouse) +bool LLURLDispatcherImpl::dispatchCore(const std::string& url, bool from_external_browser, bool right_mouse) { if (url.empty()) return false; if (dispatchHelp(url, right_mouse)) return true; - if (dispatchApp(url, right_mouse)) return true; + if (dispatchApp(url, from_external_browser, right_mouse)) return true; if (dispatchRegion(url, right_mouse)) return true; /* @@ -138,17 +139,20 @@ bool LLURLDispatcherImpl::dispatchCore(const std::string& url, bool right_mouse) } // static -bool LLURLDispatcherImpl::dispatch(const std::string& url) +bool LLURLDispatcherImpl::dispatch(const std::string& url, bool from_external_browser) { llinfos << "url: " << url << llendl; - return dispatchCore(url, false); // not right click + const bool right_click = false; + return dispatchCore(url, from_external_browser, right_click); } // static bool LLURLDispatcherImpl::dispatchRightClick(const std::string& url) { llinfos << "url: " << url << llendl; - return dispatchCore(url, true); // yes right click + const bool from_external_browser = false; + const bool right_click = true; + return dispatchCore(url, from_external_browser, right_click); } // static bool LLURLDispatcherImpl::dispatchHelp(const std::string& url, BOOL right_mouse) @@ -164,7 +168,9 @@ bool LLURLDispatcherImpl::dispatchHelp(const std::string& url, BOOL right_mouse) } // static -bool LLURLDispatcherImpl::dispatchApp(const std::string& url, BOOL right_mouse) +bool LLURLDispatcherImpl::dispatchApp(const std::string& url, + bool from_external_browser, + BOOL right_mouse) { if (!isSLURL(url)) { @@ -176,7 +182,8 @@ bool LLURLDispatcherImpl::dispatchApp(const std::string& url, BOOL right_mouse) pathArray.erase(0); // erase "app" std::string cmd = pathArray.get(0); pathArray.erase(0); // erase "cmd" - bool handled = LLCommandDispatcher::dispatch(cmd, pathArray, uri.queryMap()); + bool handled = LLCommandDispatcher::dispatch( + cmd, from_external_browser, pathArray, uri.queryMap()); return handled; } @@ -197,7 +204,8 @@ bool LLURLDispatcherImpl::dispatchRegion(const std::string& url, BOOL right_mous LLURLSimString::setString(url); // We're at the login screen, so make sure user can see // the login location box to know where they are going. - LLPanelLogin::loadLoginPage(); + + LLPanelLogin::refreshLocation( true ); return true; } @@ -297,7 +305,9 @@ std::string LLURLDispatcherImpl::stripProtocol(const std::string& url) class LLTeleportHandler : public LLCommandHandler { public: - LLTeleportHandler() : LLCommandHandler("teleport") { } + // not allowed from outside the app + LLTeleportHandler() : LLCommandHandler("teleport", false) { } + bool handle(const LLSD& tokens, const LLSD& queryMap) { // construct a "normal" SLURL, resolve the region to @@ -337,12 +347,28 @@ bool LLURLDispatcher::isSLURLCommand(const std::string& url) } // static -bool LLURLDispatcher::dispatch(const std::string& url) +bool LLURLDispatcher::dispatch(const std::string& url, bool from_external_browser) { - return LLURLDispatcherImpl::dispatch(url); + return LLURLDispatcherImpl::dispatch(url, from_external_browser); } // static bool LLURLDispatcher::dispatchRightClick(const std::string& url) { return LLURLDispatcherImpl::dispatchRightClick(url); } + +// static +bool LLURLDispatcher::dispatchFromTextEditor(const std::string& url) +{ + // text editors are by definition internal to our code + const bool from_external_browser = false; + return LLURLDispatcherImpl::dispatch(url, from_external_browser); +} + +// static +std::string LLURLDispatcher::buildSLURL(const std::string& regionname, S32 x, S32 y, S32 z) +{ + std::string slurl = SLURL_SLURL_PREFIX + regionname + llformat("/%d/%d/%d",x,y,z); + slurl = LLWeb::escapeURL( slurl ); + return slurl; +} diff --git a/linden/indra/newview/llurldispatcher.h b/linden/indra/newview/llurldispatcher.h index b18cd66..dd6ffb4 100644 --- a/linden/indra/newview/llurldispatcher.h +++ b/linden/indra/newview/llurldispatcher.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -40,16 +40,21 @@ public: static bool isSLURLCommand(const std::string& url); // Is this a special secondlife://app/ URL? - static bool dispatch(const std::string& url); + static bool dispatch(const std::string& url, bool from_external_browser); // At startup time and on clicks in internal web browsers, // teleport, open map, or run requested command. // Handles: // secondlife://RegionName/123/45/67/ - // secondlife://app/agent/3d6181b0-6a4b-97ef-18d8-722652995cf1/show + // secondlife:///app/agent/3d6181b0-6a4b-97ef-18d8-722652995cf1/show // sl://app/foo/bar // Returns true if someone handled the URL. + static bool dispatchRightClick(const std::string& url); + static bool dispatchFromTextEditor(const std::string& url); + + static std::string buildSLURL(const std::string& regionname, S32 x, S32 y, S32 z); + // builds: http://slurl.com/secondlife/RegionName/x/y/z/ }; #endif diff --git a/linden/indra/newview/llurlsimstring.cpp b/linden/indra/newview/llurlsimstring.cpp index 6abc6ff..8113326 100644 --- a/linden/indra/newview/llurlsimstring.cpp +++ b/linden/indra/newview/llurlsimstring.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llurlsimstring.h b/linden/indra/newview/llurlsimstring.h index 001b532..4d3c1ec 100644 --- a/linden/indra/newview/llurlsimstring.h +++ b/linden/indra/newview/llurlsimstring.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llurlwhitelist.cpp b/linden/indra/newview/llurlwhitelist.cpp index cd778d4..ebd6ccd 100644 --- a/linden/indra/newview/llurlwhitelist.cpp +++ b/linden/indra/newview/llurlwhitelist.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llurlwhitelist.h b/linden/indra/newview/llurlwhitelist.h index f4bbe2b..2b980b2 100644 --- a/linden/indra/newview/llurlwhitelist.h +++ b/linden/indra/newview/llurlwhitelist.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/lluserauth.cpp b/linden/indra/newview/lluserauth.cpp index 3c630b4..44df12c 100644 --- a/linden/indra/newview/lluserauth.cpp +++ b/linden/indra/newview/lluserauth.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -163,6 +163,94 @@ void LLUserAuth::authenticate( llinfos << "LLUserAuth::authenticate: uri=" << auth_uri << llendl; } + + +// Legacy version of constructor + +// passwd is already MD5 hashed by the time we get to it. +void LLUserAuth::authenticate( + const char* auth_uri, + const char* method, + const char* firstname, + const char* lastname, + const char* passwd, + const char* start, + BOOL skip_optional, + BOOL accept_tos, + BOOL accept_critical_message, + const LLUUID& viewer_digest, + BOOL last_exec_froze, + const std::vector& requested_options, + const std::string& hashed_mac, + const std::string& hashed_volume_serial) +{ + std::string dpasswd("$1$"); + dpasswd.append(passwd); + llinfos << "Authenticating: " << firstname << " " << lastname << ", " + << /*dpasswd.c_str() <<*/ llendl; + std::ostringstream option_str; + option_str << "Options: "; + std::ostream_iterator appender(option_str, ", "); + std::copy(requested_options.begin(), requested_options.end(), appender); + option_str << "END"; + llinfos << option_str.str().c_str() << llendl; + + mAuthResponse = E_NO_RESPONSE_YET; + //mDownloadTimer.reset(); + + // create the request + XMLRPC_REQUEST request = XMLRPC_RequestNew(); + XMLRPC_RequestSetMethodName(request, method); + XMLRPC_RequestSetRequestType(request, xmlrpc_request_call); + + // stuff the parameters + XMLRPC_VALUE params = XMLRPC_CreateVector(NULL, xmlrpc_vector_struct); + XMLRPC_VectorAppendString(params, "first", firstname, 0); + XMLRPC_VectorAppendString(params, "last", lastname, 0); + XMLRPC_VectorAppendString(params, "passwd", dpasswd.c_str(), 0); + XMLRPC_VectorAppendString(params, "start", start, 0); + XMLRPC_VectorAppendString(params, "version", gCurrentVersion.c_str(), 0); // Includes channel name + XMLRPC_VectorAppendString(params, "channel", gChannelName.c_str(), 0); + XMLRPC_VectorAppendString(params, "platform", PLATFORM_STRING, 0); + XMLRPC_VectorAppendString(params, "mac", hashed_mac.c_str(), 0); + // A bit of security through obscurity: id0 is volume_serial + XMLRPC_VectorAppendString(params, "id0", hashed_volume_serial.c_str(), 0); + if (skip_optional) + { + XMLRPC_VectorAppendString(params, "skipoptional", "true", 0); + } + if (accept_tos) + { + XMLRPC_VectorAppendString(params, "agree_to_tos", "true", 0); + } + if (accept_critical_message) + { + XMLRPC_VectorAppendString(params, "read_critical", "true", 0); + } + XMLRPC_VectorAppendString(params, "viewer_digest", viewer_digest.asString().c_str(), 0); + XMLRPC_VectorAppendInt(params, "last_exec_event", (int) last_exec_froze); + + // append optional requests in an array + XMLRPC_VALUE options = XMLRPC_CreateVector("options", xmlrpc_vector_array); + std::vector::const_iterator it = requested_options.begin(); + std::vector::const_iterator end = requested_options.end(); + for( ; it < end; ++it) + { + XMLRPC_VectorAppendString(options, NULL, (*it), 0); + } + XMLRPC_AddValueToVector(params, options); + + // put the parameters on the request + XMLRPC_RequestSetData(request, params); + + mTransaction = new LLXMLRPCTransaction(auth_uri, request); + + XMLRPC_RequestFree(request, 1); + + llinfos << "LLUserAuth::authenticate: uri=" << auth_uri << llendl; +} + + LLUserAuth::UserAuthcode LLUserAuth::authResponse() { if (!mTransaction) diff --git a/linden/indra/newview/lluserauth.h b/linden/indra/newview/lluserauth.h index 9494593..869b235 100644 --- a/linden/indra/newview/lluserauth.h +++ b/linden/indra/newview/lluserauth.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -93,6 +93,7 @@ public: typedef std::map response_t; typedef std::vector options_t; + // viewer auth version void authenticate( const char* auth_uri, const char* auth_method, @@ -109,6 +110,23 @@ public: const std::string& hashed_mac, const std::string& hashed_volume_serial); + // legacy version + void authenticate( + const char* auth_uri, + const char* auth_method, + const char* firstname, + const char* lastname, + const char* password, + const char* start, + BOOL skip_optional_update, + BOOL accept_tos, + BOOL accept_critical_message, + const LLUUID& viewer_digest, + BOOL last_exec_froze, + const std::vector& requested_options, + const std::string& hashed_mac, + const std::string& hashed_volume_serial); + UserAuthcode authResponse(); std::string errorMessage() const { return mErrorMessage; } diff --git a/linden/indra/newview/llvectorperfoptions.cpp b/linden/indra/newview/llvectorperfoptions.cpp index 1349cf3..b228ed5 100644 --- a/linden/indra/newview/llvectorperfoptions.cpp +++ b/linden/indra/newview/llvectorperfoptions.cpp @@ -1,17 +1,27 @@ /** - * @file llvectorperfoptions.cpp - * @brief Control of vector perfomance options. + * @file llvectorperfoptions.h + * @brief SSE/SSE2 vector math performance options. * - * $LicenseInfo:firstyear=2001&license=internal$ + * $LicenseInfo:firstyear=2007&license=viewergpl$ * - * Copyright (c) 2001-2008, Linden Research, Inc. + * Copyright (c) 2007-2008, Linden Research, Inc. * - * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of - * this source code is governed by the Linden Lab Source Code Disclosure - * Agreement ("Agreement") previously entered between you and Linden - * Lab. By accessing, using, copying, modifying or distributing this - * software, you acknowledge that you have been informed of your - * obligations under the Agreement and agree to abide by those obligations. + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. * * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, diff --git a/linden/indra/newview/llvectorperfoptions.h b/linden/indra/newview/llvectorperfoptions.h index 70a7749..da168ef 100644 --- a/linden/indra/newview/llvectorperfoptions.h +++ b/linden/indra/newview/llvectorperfoptions.h @@ -1,17 +1,27 @@ /** * @file llvectorperfoptions.h - * @brief Control of vector performance options + * @brief SSE/SSE2 vector math performance options. * - * $LicenseInfo:firstyear=2001&license=internal$ + * $LicenseInfo:firstyear=2007&license=viewergpl$ * - * Copyright (c) 2001-2008, Linden Research, Inc. + * Copyright (c) 2007-2008, Linden Research, Inc. * - * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of - * this source code is governed by the Linden Lab Source Code Disclosure - * Agreement ("Agreement") previously entered between you and Linden - * Lab. By accessing, using, copying, modifying or distributing this - * software, you acknowledge that you have been informed of your - * obligations under the Agreement and agree to abide by those obligations. + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. * * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, diff --git a/linden/indra/newview/llvelocitybar.cpp b/linden/indra/newview/llvelocitybar.cpp index 779e894..c5c4b5c 100644 --- a/linden/indra/newview/llvelocitybar.cpp +++ b/linden/indra/newview/llvelocitybar.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llvelocitybar.h b/linden/indra/newview/llvelocitybar.h index 06dcafa..ab73d51 100644 --- a/linden/indra/newview/llvelocitybar.h +++ b/linden/indra/newview/llvelocitybar.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewchildren.cpp b/linden/indra/newview/llviewchildren.cpp index 67184ea..5f579f9 100644 --- a/linden/indra/newview/llviewchildren.cpp +++ b/linden/indra/newview/llviewchildren.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewchildren.h b/linden/indra/newview/llviewchildren.h index c489c8d..75c550b 100644 --- a/linden/indra/newview/llviewchildren.h +++ b/linden/indra/newview/llviewchildren.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerassetstorage.cpp b/linden/indra/newview/llviewerassetstorage.cpp index e117433..00d9db2 100644 --- a/linden/indra/newview/llviewerassetstorage.cpp +++ b/linden/indra/newview/llviewerassetstorage.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerassetstorage.h b/linden/indra/newview/llviewerassetstorage.h index 3b859d9..7b57e99 100644 --- a/linden/indra/newview/llviewerassetstorage.h +++ b/linden/indra/newview/llviewerassetstorage.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llvieweraudio.cpp b/linden/indra/newview/llvieweraudio.cpp index 1e6c2ca..58ce7a7 100644 --- a/linden/indra/newview/llvieweraudio.cpp +++ b/linden/indra/newview/llvieweraudio.cpp @@ -1,17 +1,27 @@ /** * @file llvieweraudio.cpp - * @brief Audio functions moved from viewer.cpp + * @brief Audio functions that used to be in viewer.cpp * - * $LicenseInfo:firstyear=2000&license=internal$ + * $LicenseInfo:firstyear=2002&license=viewergpl$ * - * Copyright (c) 2000-2008, Linden Research, Inc. + * Copyright (c) 2002-2008, Linden Research, Inc. * - * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of - * this source code is governed by the Linden Lab Source Code Disclosure - * Agreement ("Agreement") previously entered between you and Linden - * Lab. By accessing, using, copying, modifying or distributing this - * software, you acknowledge that you have been informed of your - * obligations under the Agreement and agree to abide by those obligations. + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. * * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, @@ -136,8 +146,10 @@ void audio_update_volume(bool force_update) if (gAudiop) { F32 music_volume = gSavedSettings.getF32("AudioLevelMusic"); + BOOL music_muted = gSavedSettings.getBOOL("MuteMusic"); music_volume = mute_volume * master_volume * (music_volume*music_volume); - gAudiop->setInternetStreamGain ( music_volume ); + gAudiop->setInternetStreamGain ( music_muted ? 0.f : music_volume ); + } // Streaming Media @@ -145,7 +157,8 @@ void audio_update_volume(bool force_update) { F32 media_volume = gSavedSettings.getF32("AudioLevelMedia"); media_volume = mute_volume * master_volume * (media_volume*media_volume); - LLMediaEngine::getInstance()->setVolume(media_volume); + BOOL media_muted = gSavedSettings.getBOOL("MuteMedia"); + LLMediaEngine::getInstance()->setVolume(media_muted ? 0.f : media_volume); } // Voice @@ -153,8 +166,9 @@ void audio_update_volume(bool force_update) { F32 voice_volume = gSavedSettings.getF32("AudioLevelVoice"); voice_volume = mute_volume * master_volume * voice_volume; - gVoiceClient->setVoiceVolume(voice_volume); - gVoiceClient->setMicGain(gSavedSettings.getF32("AudioLevelMic")); + BOOL voice_mute = gSavedSettings.getBOOL("MuteVoice"); + gVoiceClient->setVoiceVolume(voice_mute ? 0.f : voice_volume); + gVoiceClient->setMicGain(voice_mute ? 0.f : gSavedSettings.getF32("AudioLevelMic")); if (!gViewerWindow->getActive() && (gSavedSettings.getBOOL("MuteWhenMinimized"))) { @@ -221,7 +235,9 @@ void audio_update_wind(bool force_update) // want to screw up the fade-in on startup by setting actual source gain // outside the fade-in. F32 ambient_volume = gSavedSettings.getF32("AudioLevelAmbient"); - gAudiop->mMaxWindGain = ambient_volume * ambient_volume; + gAudiop->mMaxWindGain = gSavedSettings.getBOOL("MuteAmbient") + ? 0.f + : ambient_volume * ambient_volume; last_camera_water_height = camera_water_height; gAudiop->updateWind(gRelativeWindVec, camera_water_height); diff --git a/linden/indra/newview/llvieweraudio.h b/linden/indra/newview/llvieweraudio.h index d473607..9b81058 100644 --- a/linden/indra/newview/llvieweraudio.h +++ b/linden/indra/newview/llvieweraudio.h @@ -1,17 +1,27 @@ /** * @file llvieweraudio.h - * @brief Audio functions originally in viewer.cpp + * @brief Audio functions that used to be in viewer.cpp * - * $LicenseInfo:firstyear=2000&license=internal$ + * $LicenseInfo:firstyear=2002&license=viewergpl$ * - * Copyright (c) 2000-2008, Linden Research, Inc. + * Copyright (c) 2002-2008, Linden Research, Inc. * - * The following source code is PROPRIETARY AND CONFIDENTIAL. Use of - * this source code is governed by the Linden Lab Source Code Disclosure - * Agreement ("Agreement") previously entered between you and Linden - * Lab. By accessing, using, copying, modifying or distributing this - * software, you acknowledge that you have been informed of your - * obligations under the Agreement and agree to abide by those obligations. + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. * * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, diff --git a/linden/indra/newview/llviewerbuild.h b/linden/indra/newview/llviewerbuild.h index 4581aae..0d6a6dc 100644 --- a/linden/indra/newview/llviewerbuild.h +++ b/linden/indra/newview/llviewerbuild.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewercamera.cpp b/linden/indra/newview/llviewercamera.cpp index 00b4be6..0a8e8c2 100644 --- a/linden/indra/newview/llviewercamera.cpp +++ b/linden/indra/newview/llviewercamera.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -29,11 +29,11 @@ * $/LicenseInfo$ */ -#include // for setprecision #include "llviewerprecompiledheaders.h" - #include "llviewercamera.h" +#include // for setprecision + #include "llquaternion.h" #include "llagent.h" diff --git a/linden/indra/newview/llviewercamera.h b/linden/indra/newview/llviewercamera.h index 8d4b24a..2fed21a 100644 --- a/linden/indra/newview/llviewercamera.h +++ b/linden/indra/newview/llviewercamera.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewercontrol.cpp b/linden/indra/newview/llviewercontrol.cpp index 4933c4b..81f5cc1 100644 --- a/linden/indra/newview/llviewercontrol.cpp +++ b/linden/indra/newview/llviewercontrol.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewercontrol.h b/linden/indra/newview/llviewercontrol.h index c5b9eb3..e031053 100644 --- a/linden/indra/newview/llviewercontrol.h +++ b/linden/indra/newview/llviewercontrol.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerdisplay.cpp b/linden/indra/newview/llviewerdisplay.cpp index dccf02f..e85b275 100644 --- a/linden/indra/newview/llviewerdisplay.cpp +++ b/linden/indra/newview/llviewerdisplay.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerdisplay.h b/linden/indra/newview/llviewerdisplay.h index 7b5a5c8..16ad023 100644 --- a/linden/indra/newview/llviewerdisplay.h +++ b/linden/indra/newview/llviewerdisplay.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewergenericmessage.cpp b/linden/indra/newview/llviewergenericmessage.cpp index b04f692..9480574 100644 --- a/linden/indra/newview/llviewergenericmessage.cpp +++ b/linden/indra/newview/llviewergenericmessage.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewergenericmessage.h b/linden/indra/newview/llviewergenericmessage.h index 36d5089..a5f2920 100644 --- a/linden/indra/newview/llviewergenericmessage.h +++ b/linden/indra/newview/llviewergenericmessage.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewergesture.cpp b/linden/indra/newview/llviewergesture.cpp index fb8e352..5c739b7 100644 --- a/linden/indra/newview/llviewergesture.cpp +++ b/linden/indra/newview/llviewergesture.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewergesture.h b/linden/indra/newview/llviewergesture.h index d04bb82..eccfc2a 100644 --- a/linden/indra/newview/llviewergesture.h +++ b/linden/indra/newview/llviewergesture.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerimage.cpp b/linden/indra/newview/llviewerimage.cpp index 06ffda5..c771791 100644 --- a/linden/indra/newview/llviewerimage.cpp +++ b/linden/indra/newview/llviewerimage.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerimage.h b/linden/indra/newview/llviewerimage.h index c757cc9..6a0e32f 100644 --- a/linden/indra/newview/llviewerimage.h +++ b/linden/indra/newview/llviewerimage.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerimagelist.cpp b/linden/indra/newview/llviewerimagelist.cpp index ff3faae..9c74b4a 100644 --- a/linden/indra/newview/llviewerimagelist.cpp +++ b/linden/indra/newview/llviewerimagelist.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -85,12 +85,12 @@ LLStat LLViewerImageList::sFormattedMemStat(32, TRUE); /////////////////////////////////////////////////////////////////////////////// LLViewerImageList::LLViewerImageList() - : LLImageProviderInterface(), - mForceResetTextureStats(FALSE), - mUpdateStats(FALSE), - mMaxResidentTexMem(0), - mVideoMemorySetting(0), - mMovieImageHasMips(FALSE) +: LLImageProviderInterface(), +mForceResetTextureStats(FALSE), +mUpdateStats(FALSE), +mMaxResidentTexMem(0), +mVideoMemorySetting(0), +mMovieImageHasMips(FALSE) { } @@ -99,20 +99,20 @@ void LLViewerImageList::init() sNumImages = 0; mMaxResidentTexMem = 0; mVideoMemorySetting = 0; - + if (gNoRender) { // Don't initialize GL stuff if we're not rendering. return; } - + mUpdateStats = TRUE; - + // Update how much texture RAM we're allowed to use. updateMaxResidentTexMem(); - + mMovieImageHasMips = FALSE; - + doPreloadImages(); } @@ -120,203 +120,228 @@ void LLViewerImageList::init() void LLViewerImageList::doPreloadImages() { llinfos << "Preloading images..." << llendl; - + // Set the "missing asset" image - LLViewerImage::sMissingAssetImagep = preloadImage("missing_asset.tga" , LLUUID::null, TRUE); - + LLViewerImage::sMissingAssetImagep = preloadUIImage("missing_asset.tga" , LLUUID::null, TRUE); + // Set the "white" image - LLViewerImage::sWhiteImagep = preloadImage("white.tga", LLUUID::null, TRUE); - + LLViewerImage::sWhiteImagep = preloadUIImage("white.tga", LLUUID::null, TRUE);; + // Speeds up startup by 4-5 seconds. JC if (!gPreloadImages) return; - + // Images listed here are immediately decoded, before the login screen. // Since this slows down perceived viewer startup time, only include // images here for buttons/checkboxes/etc. that are immediately visible. - preloadImage("button_disabled_32x128.tga", LLUUID::null, FALSE); - preloadImage("button_enabled_32x128.tga", LLUUID::null, FALSE); - preloadImage("button_enabled_selected_32x128.tga", LLUUID::null, FALSE); - preloadImage("checkbox_disabled_false.tga", LLUUID::null, FALSE); - preloadImage("checkbox_disabled_true.tga", LLUUID::null, FALSE); - preloadImage("checkbox_enabled_false.tga", LLUUID::null, FALSE); - preloadImage("checkbox_enabled_true.tga", LLUUID::null, FALSE); - preloadImage("close_in_blue.tga", LLUUID::null, FALSE); - preloadImage("combobox_arrow.tga", LLUUID::null, FALSE); - preloadImage("minimize.tga", LLUUID::null, FALSE); - preloadImage("minimize_pressed.tga", LLUUID::null, FALSE); - preloadImage("radio_active_false.tga", LLUUID::null, FALSE); - preloadImage("radio_active_true.tga", LLUUID::null, FALSE); - preloadImage("radio_inactive_false.tga", LLUUID::null, FALSE); - preloadImage("radio_inactive_true.tga", LLUUID::null, FALSE); - preloadImage("resize_handle_bottom_right_blue.tga", LLUUID::null, FALSE); - preloadImage("rounded_square.tga", LLUUID::null, FALSE); - preloadImage("rounded_square_soft.tga", LLUUID::null, FALSE); - preloadImage("scrollbutton_down_in_blue.tga", LLUUID::null, FALSE); - preloadImage("scrollbutton_down_out_blue.tga", LLUUID::null, FALSE); - preloadImage("scrollbutton_left_in_blue.tga", LLUUID::null, FALSE); - preloadImage("scrollbutton_left_out_blue.tga", LLUUID::null, FALSE); - preloadImage("scrollbutton_right_in_blue.tga", LLUUID::null, FALSE); - preloadImage("scrollbutton_right_out_blue.tga", LLUUID::null, FALSE); - preloadImage("scrollbutton_up_in_blue.tga", LLUUID::null, FALSE); - preloadImage("scrollbutton_up_out_blue.tga", LLUUID::null, FALSE); - preloadImage("spin_down_in_blue.tga", LLUUID::null, FALSE); - preloadImage("spin_down_out_blue.tga", LLUUID::null, FALSE); - preloadImage("spin_up_in_blue.tga", LLUUID::null, FALSE); - preloadImage("spin_up_out_blue.tga", LLUUID::null, FALSE); - preloadImage("square_btn_32x128.tga", LLUUID::null, FALSE); - preloadImage("square_btn_selected_32x128.tga", LLUUID::null, FALSE); - preloadImage("startup_logo.tga", LLUUID::null, FALSE); // <<<<<<< --- needed? - preloadImage("tab_bottom_blue.tga", LLUUID::null, FALSE); - preloadImage("tab_bottom_selected_blue.tga", LLUUID::null, FALSE); - preloadImage("tab_left.tga", LLUUID::null, FALSE); - preloadImage("tab_left_selected.tga", LLUUID::null, FALSE); - preloadImage("tab_top_blue.tga", LLUUID::null, FALSE); - preloadImage("tab_top_selected_blue.tga", LLUUID::null, FALSE); + preloadUIImage("button_disabled_32x128.tga", LLUUID::null, FALSE, LLRectf(.125f, 0.5f, .875f, 0.5f )); + preloadUIImage("button_enabled_32x128.tga", LLUUID::null, FALSE, LLRectf(.125f, 0.5f, .875f, 0.5f )); + preloadUIImage("button_enabled_selected_32x128.tga", LLUUID::null, FALSE, LLRectf(.125f, 0.5f, .875f, 0.5f )); + preloadUIImage("checkbox_disabled_false.tga", LLUUID::null, FALSE); + preloadUIImage("checkbox_disabled_true.tga", LLUUID::null, FALSE); + preloadUIImage("checkbox_enabled_false.tga", LLUUID::null, FALSE); + preloadUIImage("checkbox_enabled_true.tga", LLUUID::null, FALSE); + preloadUIImage("close_in_blue.tga", LLUUID::null, FALSE); + preloadUIImage("combobox_arrow.tga", LLUUID::null, FALSE); + preloadUIImage("minimize.tga", LLUUID::null, FALSE); + preloadUIImage("minimize_pressed.tga", LLUUID::null, FALSE); + preloadUIImage("radio_active_false.tga", LLUUID::null, FALSE); + preloadUIImage("radio_active_true.tga", LLUUID::null, FALSE); + preloadUIImage("radio_inactive_false.tga", LLUUID::null, FALSE); + preloadUIImage("radio_inactive_true.tga", LLUUID::null, FALSE); + preloadUIImage("resize_handle_bottom_right_blue.tga", LLUUID::null, FALSE); + preloadUIImage("rounded_square.tga", LLUUID::null, FALSE, LLRectf(.125f, 0.5f, .875f, 0.5f )); + preloadUIImage("rounded_square_soft.tga", LLUUID::null, FALSE, LLRectf(.125f, 0.5f, .875f, 0.5f )); + preloadUIImage("scrollbutton_down_in_blue.tga", LLUUID::null, FALSE); + preloadUIImage("scrollbutton_down_out_blue.tga", LLUUID::null, FALSE); + preloadUIImage("scrollbutton_left_in_blue.tga", LLUUID::null, FALSE); + preloadUIImage("scrollbutton_left_out_blue.tga", LLUUID::null, FALSE); + preloadUIImage("scrollbutton_right_in_blue.tga", LLUUID::null, FALSE); + preloadUIImage("scrollbutton_right_out_blue.tga", LLUUID::null, FALSE); + preloadUIImage("scrollbutton_up_in_blue.tga", LLUUID::null, FALSE); + preloadUIImage("scrollbutton_up_out_blue.tga", LLUUID::null, FALSE); + preloadUIImage("spin_down_in_blue.tga", LLUUID::null, FALSE); + preloadUIImage("spin_down_out_blue.tga", LLUUID::null, FALSE); + preloadUIImage("spin_up_in_blue.tga", LLUUID::null, FALSE); + preloadUIImage("spin_up_out_blue.tga", LLUUID::null, FALSE); + preloadUIImage("square_btn_32x128.tga", LLUUID::null, FALSE, LLRectf(.125f, 0.5f, .875f, 0.5f )); + preloadUIImage("square_btn_selected_32x128.tga", LLUUID::null, FALSE, LLRectf(.125f, 0.5f, .875f, 0.5f )); + preloadUIImage("startup_logo.tga", LLUUID::null, FALSE); // <<<<<<< --- needed? + preloadUIImage("tab_bottom_blue.tga", LLUUID::null, FALSE, LLRectf(0.109375f, 1.f - 0.4375f, 1.f - 0.109375f, 0.4375f)); + preloadUIImage("tab_bottom_selected_blue.tga", LLUUID::null, FALSE, LLRectf(0.109375f, 1.f - 0.4375f, 1.f - 0.109375f, 0.4375f)); + preloadUIImage("tab_left.tga", LLUUID::null, FALSE, LLRectf(.125f, 0.5f, .875f, 0.5f )); + preloadUIImage("tab_left_selected.tga", LLUUID::null, FALSE, LLRectf(.125f, 0.5f, .875f, 0.5f )); + preloadUIImage("tab_top_blue.tga", LLUUID::null, FALSE, LLRectf(0.109375f, 1.f - 0.4375f, 1.f - 0.109375f, 0.4375f)); + preloadUIImage("tab_top_selected_blue.tga", LLUUID::null, FALSE, LLRectf(0.109375f, 1.f - 0.4375f, 1.f - 0.109375f, 0.4375f)); decodeAllImages(2.f); // decode preloaded images // These images are queued for decode during the login sequence, when // we have a progress bar. - preloadImage("active_voice_tab.tga", LLUUID::null, FALSE); - preloadImage("button_anim_pause.tga", LLUUID::null, FALSE); - preloadImage("button_anim_pause_selected.tga", LLUUID::null, FALSE); - preloadImage("button_anim_play.tga", LLUUID::null, FALSE); - preloadImage("button_anim_play_selected.tga", LLUUID::null, FALSE); - preloadImage("button_anim_stop.tga", LLUUID::null, FALSE); - preloadImage("button_anim_stop_selected.tga", LLUUID::null, FALSE); - preloadImage("crosshairs.tga", LLUUID::null, FALSE); - preloadImage("direction_arrow.tga", LLUUID::null, FALSE); - preloadImage("eyes.tga", LLUUID::null, TRUE); - preloadImage("foot_shadow.tga", LLUUID::null, TRUE); - preloadImage("hair.tga", LLUUID::null, TRUE); - preloadImage("icon_for_sale.tga", LLUUID::null, FALSE); - preloadImage("icon_popular.tga", LLUUID::null, FALSE); - preloadImage("icon_top_pick.tga", LLUUID::null, FALSE); - preloadImage("img_shot.tga", IMG_SHOT, TRUE); - preloadImage("img_smoke_poof.tga", IMG_SMOKE_POOF, TRUE); - preloadImage("inv_folder_animation.tga", LLUUID::null, FALSE); - preloadImage("inv_folder_bodypart.tga", LLUUID::null, FALSE); - preloadImage("inv_folder_callingcard.tga", LLUUID::null, FALSE); - preloadImage("inv_folder_clothing.tga", LLUUID::null, FALSE); - preloadImage("inv_folder_gesture.tga", LLUUID::null, FALSE); - preloadImage("inv_folder_landmark.tga", LLUUID::null, FALSE); - preloadImage("inv_folder_lostandfound.tga", LLUUID::null, FALSE); - preloadImage("inv_folder_notecard.tga", LLUUID::null, FALSE); - preloadImage("inv_folder_object.tga", LLUUID::null, FALSE); - preloadImage("inv_folder_plain_closed.tga", LLUUID::null, FALSE); - preloadImage("inv_folder_script.tga", LLUUID::null, FALSE); - preloadImage("inv_folder_snapshot.tga", LLUUID::null, FALSE); - preloadImage("inv_folder_sound.tga", LLUUID::null, FALSE); - preloadImage("inv_folder_texture.tga", LLUUID::null, FALSE); - preloadImage("inv_folder_trash.tga", LLUUID::null, FALSE); - preloadImage("inv_item_animation.tga", LLUUID::null, FALSE); - preloadImage("inv_item_bodypart.tga", LLUUID::null, FALSE); - preloadImage("inv_item_callingcard_offline.tga", LLUUID::null, FALSE); - preloadImage("inv_item_callingcard_online.tga", LLUUID::null, FALSE); - preloadImage("inv_item_eyes.tga", LLUUID::null, FALSE); - preloadImage("inv_item_gesture.tga", LLUUID::null, FALSE); - preloadImage("inv_item_gloves.tga", LLUUID::null, FALSE); - preloadImage("inv_item_hair.tga", LLUUID::null, FALSE); - preloadImage("inv_item_jacket.tga", LLUUID::null, FALSE); - preloadImage("inv_item_landmark.tga", LLUUID::null, FALSE); - preloadImage("inv_item_landmark_visited.tga", LLUUID::null, FALSE); - preloadImage("inv_item_notecard.tga", LLUUID::null, FALSE); - preloadImage("inv_item_object.tga", LLUUID::null, FALSE); - preloadImage("inv_item_object_multi.tga", LLUUID::null, FALSE); - preloadImage("inv_item_pants.tga", LLUUID::null, FALSE); - preloadImage("inv_item_script.tga", LLUUID::null, FALSE); - preloadImage("inv_item_shape.tga", LLUUID::null, FALSE); - preloadImage("inv_item_shirt.tga", LLUUID::null, FALSE); - preloadImage("inv_item_shoes.tga", LLUUID::null, FALSE); - preloadImage("inv_item_skirt.tga", LLUUID::null, FALSE); - preloadImage("inv_item_snapshot.tga", LLUUID::null, FALSE); - preloadImage("inv_item_socks.tga", LLUUID::null, FALSE); - preloadImage("inv_item_sound.tga", LLUUID::null, FALSE); - preloadImage("inv_item_texture.tga", LLUUID::null, FALSE); - preloadImage("inv_item_underpants.tga", LLUUID::null, FALSE); - preloadImage("inv_item_undershirt.tga", LLUUID::null, FALSE); - preloadImage("lag_status_critical.tga", LLUUID::null, FALSE); - preloadImage("lag_status_good.tga", LLUUID::null, FALSE); - preloadImage("lag_status_warning.tga", LLUUID::null, FALSE); - preloadImage("legend.tga", LLUUID::null, FALSE); - preloadImage("map_avatar_16.tga", LLUUID::null, FALSE); - preloadImage("map_avatar_8.tga", LLUUID::null, FALSE); - preloadImage("map_avatar_above_8.tga", LLUUID::null, FALSE); - preloadImage("map_avatar_below_8.tga", LLUUID::null, FALSE); - preloadImage("map_avatar_you_8.tga", LLUUID::null, FALSE); - preloadImage("map_event.tga", LLUUID::null, FALSE); - preloadImage("map_event_mature.tga", LLUUID::null, FALSE); - preloadImage("map_home.tga", LLUUID::null, FALSE); - preloadImage("map_infohub.tga", LLUUID::null, FALSE); - preloadImage("map_telehub.tga", LLUUID::null, FALSE); - preloadImage("map_track_16.tga", LLUUID::null, FALSE); - preloadImage("media_icon.tga", LLUUID::null, FALSE); - preloadImage("music_icon.tga", LLUUID::null, FALSE); - preloadImage("noentrylines.tga", LLUUID::null, TRUE); - preloadImage("noentrypasslines.tga", LLUUID::null, TRUE); - preloadImage("notify_tip_icon.tga", LLUUID::null, FALSE); - preloadImage("notify_caution_icon.tga", LLUUID::null, FALSE); - preloadImage("notify_box_icon.tga", LLUUID::null, FALSE); - preloadImage("object_cone.tga", LLUUID::null, FALSE); - preloadImage("object_cone_active.tga", LLUUID::null, FALSE); - preloadImage("object_cube.tga", LLUUID::null, FALSE); - preloadImage("object_cube_active.tga", LLUUID::null, FALSE); - preloadImage("object_cylinder.tga", LLUUID::null, FALSE); - preloadImage("object_cylinder_active.tga", LLUUID::null, FALSE); - preloadImage("object_grass.tga", LLUUID::null, FALSE); - preloadImage("object_grass_active.tga", LLUUID::null, FALSE); - preloadImage("object_hemi_cone.tga", LLUUID::null, FALSE); - preloadImage("object_hemi_cone_active.tga", LLUUID::null, FALSE); - preloadImage("object_hemi_cylinder.tga", LLUUID::null, FALSE); - preloadImage("object_hemi_cylinder_active.tga", LLUUID::null, FALSE); - preloadImage("object_hemi_sphere.tga", LLUUID::null, FALSE); - preloadImage("object_hemi_sphere_active.tga", LLUUID::null, FALSE); - preloadImage("object_prism.tga", LLUUID::null, FALSE); - preloadImage("object_prism_active.tga", LLUUID::null, FALSE); - preloadImage("object_pyramid.tga", LLUUID::null, FALSE); - preloadImage("object_pyramid_active.tga", LLUUID::null, FALSE); - preloadImage("object_ring.tga", LLUUID::null, FALSE); - preloadImage("object_ring_active.tga", LLUUID::null, FALSE); - preloadImage("object_sphere.tga", LLUUID::null, FALSE); - preloadImage("object_sphere_active.tga", LLUUID::null, FALSE); - preloadImage("object_tetrahedron.tga", LLUUID::null, FALSE); - preloadImage("object_tetrahedron_active.tga", LLUUID::null, FALSE); - preloadImage("object_torus.tga", LLUUID::null, FALSE); - preloadImage("object_torus_active.tga", LLUUID::null, FALSE); - preloadImage("object_tree.tga", LLUUID::null, FALSE); - preloadImage("object_tree_active.tga", LLUUID::null, FALSE); - preloadImage("object_tube.tga", LLUUID::null, FALSE); - preloadImage("object_tube_active.tga", LLUUID::null, FALSE); - preloadImage("pixiesmall.tga", LLUUID::null, TRUE); // particle systems - preloadImage("script_error.tga", LLUUID::null, TRUE); - preloadImage("silhouette.tga", LLUUID::null, TRUE); - preloadImage("status_build.tga", LLUUID::null, FALSE); - preloadImage("status_buy_currency.tga", LLUUID::null, FALSE); - preloadImage("status_buy_currency_pressed.tga", LLUUID::null, FALSE); - preloadImage("status_buy_land.tga", LLUUID::null, FALSE); - preloadImage("status_buy_land_pressed.tga", LLUUID::null, FALSE); - preloadImage("status_fly.tga", LLUUID::null, FALSE); - preloadImage("status_health.tga", LLUUID::null, FALSE); - preloadImage("status_scripts.tga", LLUUID::null, FALSE); - preloadImage("tool_dozer.tga", LLUUID::null, FALSE); - preloadImage("tool_dozer_active.tga", LLUUID::null, FALSE); - preloadImage("tool_zoom.tga", LLUUID::null, FALSE); - preloadImage("tool_zoom_active.tga", LLUUID::null, FALSE); - preloadImage("volume_icon.tga", LLUUID::null, FALSE); - preloadImage("icn_active-speakers-dot-lvl0.tga", LLUUID::null, FALSE); - preloadImage("icn_active-speakers-dot-lvl1.tga", LLUUID::null, FALSE); - preloadImage("icn_active-speakers-dot-lvl2.tga", LLUUID::null, FALSE); - preloadImage("icn_active-speakers-typing1.tga", LLUUID::null, FALSE); - preloadImage("icn_active-speakers-typing2.tga", LLUUID::null, FALSE); - preloadImage("icn_active-speakers-typing3.tga", LLUUID::null, FALSE); - preloadImage("icn_voice_ptt-off.tga", LLUUID::null, FALSE); - preloadImage("icn_voice_ptt-on.tga", LLUUID::null, FALSE); - preloadImage("icn_voice_ptt-on-lvl1.tga", LLUUID::null, FALSE); - preloadImage("icn_voice_ptt-on-lvl2.tga", LLUUID::null, FALSE); - preloadImage("icn_voice_ptt-on-lvl3.tga", LLUUID::null, FALSE); - preloadImage("lag_status_good.tga", LLUUID::null, FALSE); - preloadImage("lag_status_warning.tga", LLUUID::null, FALSE); - preloadImage("lag_status_critical.tga", LLUUID::null, FALSE); + preloadUIImage("active_voice_tab.tga", LLUUID::null, FALSE); + preloadUIImage("button_anim_pause.tga", LLUUID::null, FALSE); + preloadUIImage("button_anim_pause_selected.tga", LLUUID::null, FALSE); + preloadUIImage("button_anim_play.tga", LLUUID::null, FALSE); + preloadUIImage("button_anim_play_selected.tga", LLUUID::null, FALSE); + preloadUIImage("button_anim_stop.tga", LLUUID::null, FALSE); + preloadUIImage("button_anim_stop_selected.tga", LLUUID::null, FALSE); + preloadUIImage("crosshairs.tga", LLUUID::null, FALSE); + preloadUIImage("direction_arrow.tga", LLUUID::null, FALSE); + preloadUIImage("eyes.tga", LLUUID::null, TRUE); + preloadUIImage("foot_shadow.tga", LLUUID::null, TRUE); + preloadUIImage("hair.tga", LLUUID::null, TRUE); + preloadUIImage("icon_for_sale.tga", LLUUID::null, FALSE); + preloadUIImage("icon_popular.tga", LLUUID::null, FALSE); + preloadUIImage("icon_top_pick.tga", LLUUID::null, FALSE); + preloadUIImage("icon_group.tga", LLUUID::null, FALSE); + preloadUIImage("icon_lock.tga", LLUUID::null, FALSE); + preloadUIImage("img_shot.tga", IMG_SHOT, TRUE); + preloadUIImage("img_smoke_poof.tga", IMG_SMOKE_POOF, TRUE); + preloadUIImage("inv_folder_animation.tga", LLUUID::null, FALSE); + preloadUIImage("inv_folder_bodypart.tga", LLUUID::null, FALSE); + preloadUIImage("inv_folder_callingcard.tga", LLUUID::null, FALSE); + preloadUIImage("inv_folder_clothing.tga", LLUUID::null, FALSE); + preloadUIImage("inv_folder_gesture.tga", LLUUID::null, FALSE); + preloadUIImage("inv_folder_landmark.tga", LLUUID::null, FALSE); + preloadUIImage("inv_folder_lostandfound.tga", LLUUID::null, FALSE); + preloadUIImage("inv_folder_notecard.tga", LLUUID::null, FALSE); + preloadUIImage("inv_folder_object.tga", LLUUID::null, FALSE); + preloadUIImage("inv_folder_plain_closed.tga", LLUUID::null, FALSE); + preloadUIImage("inv_folder_script.tga", LLUUID::null, FALSE); + preloadUIImage("inv_folder_snapshot.tga", LLUUID::null, FALSE); + preloadUIImage("inv_folder_sound.tga", LLUUID::null, FALSE); + preloadUIImage("inv_folder_texture.tga", LLUUID::null, FALSE); + preloadUIImage("inv_folder_trash.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_animation.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_bodypart.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_callingcard_offline.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_callingcard_online.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_eyes.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_gesture.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_gloves.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_hair.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_jacket.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_landmark.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_landmark_visited.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_notecard.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_object.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_object_multi.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_pants.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_script.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_shape.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_shirt.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_shoes.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_skirt.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_snapshot.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_socks.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_sound.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_texture.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_underpants.tga", LLUUID::null, FALSE); + preloadUIImage("inv_item_undershirt.tga", LLUUID::null, FALSE); + preloadUIImage("lag_status_critical.tga", LLUUID::null, FALSE); + preloadUIImage("lag_status_good.tga", LLUUID::null, FALSE); + preloadUIImage("lag_status_warning.tga", LLUUID::null, FALSE); + preloadUIImage("legend.tga", LLUUID::null, FALSE); + preloadUIImage("map_avatar_16.tga", LLUUID::null, FALSE); + preloadUIImage("map_avatar_8.tga", LLUUID::null, FALSE); + preloadUIImage("map_avatar_you_8.tga", LLUUID::null, FALSE); + preloadUIImage("map_event.tga", LLUUID::null, FALSE); + preloadUIImage("map_event_mature.tga", LLUUID::null, FALSE); + preloadUIImage("map_home.tga", LLUUID::null, FALSE); + preloadUIImage("map_infohub.tga", LLUUID::null, FALSE); + preloadUIImage("map_telehub.tga", LLUUID::null, FALSE); + preloadUIImage("map_track_16.tga", LLUUID::null, FALSE); + preloadUIImage("media_icon.tga", LLUUID::null, FALSE); + preloadUIImage("music_icon.tga", LLUUID::null, FALSE); + preloadUIImage("noentrylines.tga", LLUUID::null, TRUE); + preloadUIImage("noentrypasslines.tga", LLUUID::null, TRUE); + preloadUIImage("notify_tip_icon.tga", LLUUID::null, FALSE); + preloadUIImage("notify_caution_icon.tga", LLUUID::null, FALSE); + preloadUIImage("notify_box_icon.tga", LLUUID::null, FALSE); + preloadUIImage("object_cone.tga", LLUUID::null, FALSE); + preloadUIImage("object_cone_active.tga", LLUUID::null, FALSE); + preloadUIImage("object_cube.tga", LLUUID::null, FALSE); + preloadUIImage("object_cube_active.tga", LLUUID::null, FALSE); + preloadUIImage("object_cylinder.tga", LLUUID::null, FALSE); + preloadUIImage("object_cylinder_active.tga", LLUUID::null, FALSE); + preloadUIImage("object_grass.tga", LLUUID::null, FALSE); + preloadUIImage("object_grass_active.tga", LLUUID::null, FALSE); + preloadUIImage("object_hemi_cone.tga", LLUUID::null, FALSE); + preloadUIImage("object_hemi_cone_active.tga", LLUUID::null, FALSE); + preloadUIImage("object_hemi_cylinder.tga", LLUUID::null, FALSE); + preloadUIImage("object_hemi_cylinder_active.tga", LLUUID::null, FALSE); + preloadUIImage("object_hemi_sphere.tga", LLUUID::null, FALSE); + preloadUIImage("object_hemi_sphere_active.tga", LLUUID::null, FALSE); + preloadUIImage("object_prism.tga", LLUUID::null, FALSE); + preloadUIImage("object_prism_active.tga", LLUUID::null, FALSE); + preloadUIImage("object_pyramid.tga", LLUUID::null, FALSE); + preloadUIImage("object_pyramid_active.tga", LLUUID::null, FALSE); + preloadUIImage("object_ring.tga", LLUUID::null, FALSE); + preloadUIImage("object_ring_active.tga", LLUUID::null, FALSE); + preloadUIImage("object_sphere.tga", LLUUID::null, FALSE); + preloadUIImage("object_sphere_active.tga", LLUUID::null, FALSE); + preloadUIImage("object_tetrahedron.tga", LLUUID::null, FALSE); + preloadUIImage("object_tetrahedron_active.tga", LLUUID::null, FALSE); + preloadUIImage("object_torus.tga", LLUUID::null, FALSE); + preloadUIImage("object_torus_active.tga", LLUUID::null, FALSE); + preloadUIImage("object_tree.tga", LLUUID::null, FALSE); + preloadUIImage("object_tree_active.tga", LLUUID::null, FALSE); + preloadUIImage("object_tube.tga", LLUUID::null, FALSE); + preloadUIImage("object_tube_active.tga", LLUUID::null, FALSE); + preloadUIImage("pixiesmall.tga", LLUUID::null, TRUE); + preloadUIImage("script_error.tga", LLUUID::null, TRUE); + preloadUIImage("silhouette.tga", LLUUID::null, TRUE); + preloadUIImage("status_no_build.tga", LLUUID::null, FALSE); + preloadUIImage("status_buy_currency.tga", LLUUID::null, FALSE); + preloadUIImage("status_buy_currency_pressed.tga", LLUUID::null, FALSE); + preloadUIImage("status_buy_land.tga", LLUUID::null, FALSE); + preloadUIImage("status_buy_land_pressed.tga", LLUUID::null, FALSE); + preloadUIImage("status_no_fly.tga", LLUUID::null, FALSE); + preloadUIImage("status_health.tga", LLUUID::null, FALSE); + preloadUIImage("status_no_push.tga", LLUUID::null, FALSE); + preloadUIImage("status_no_scripts.tga", LLUUID::null, FALSE); + preloadUIImage("tool_dozer.tga", LLUUID::null, FALSE); + preloadUIImage("tool_dozer_active.tga", LLUUID::null, FALSE); + preloadUIImage("tool_zoom.tga", LLUUID::null, FALSE); + preloadUIImage("tool_zoom_active.tga", LLUUID::null, FALSE); + preloadUIImage("icn-overlay_volume-panel.tga", LLUUID::null, FALSE); + preloadUIImage("icn_active-speakers-dot-lvl0.tga", LLUUID::null, FALSE); + preloadUIImage("icn_active-speakers-dot-lvl1.tga", LLUUID::null, FALSE); + preloadUIImage("icn_active-speakers-dot-lvl2.tga", LLUUID::null, FALSE); + preloadUIImage("icn_active-speakers-typing1.tga", LLUUID::null, FALSE); + preloadUIImage("icn_active-speakers-typing2.tga", LLUUID::null, FALSE); + preloadUIImage("icn_active-speakers-typing3.tga", LLUUID::null, FALSE); + preloadUIImage("icn_voice_ptt-off.tga", LLUUID::null, FALSE); + preloadUIImage("icn_voice_ptt-on.tga", LLUUID::null, FALSE); + preloadUIImage("icn_voice_ptt-on-lvl1.tga", LLUUID::null, FALSE); + preloadUIImage("icn_voice_ptt-on-lvl2.tga", LLUUID::null, FALSE); + preloadUIImage("icn_voice_ptt-on-lvl3.tga", LLUUID::null, FALSE); + preloadUIImage("lag_status_good.tga", LLUUID::null, FALSE); + preloadUIImage("lag_status_warning.tga", LLUUID::null, FALSE); + preloadUIImage("lag_status_critical.tga", LLUUID::null, FALSE); + preloadUIImage("icn_voice-call-end.tga", LLUUID::null, FALSE); + preloadUIImage("icn_voice-call-start.tga", LLUUID::null, FALSE); + preloadUIImage("mute_icon.tga", LLUUID::null, FALSE); + preloadUIImage("icn-overlay_volume-panel.tga", LLUUID::null, FALSE); + preloadUIImage("icn_slide-groove_dark.tga", LLUUID::null, FALSE); + preloadUIImage("icn_slide-highlight.tga", LLUUID::null, FALSE); + preloadUIImage("icn_slide-thumb_dark.tga", LLUUID::null, FALSE); + preloadUIImage("icn_speaker-muted_dark.tga", LLUUID::null, FALSE); + preloadUIImage("icn_speaker_dark.tga", LLUUID::null, FALSE); + preloadUIImage("icn_voice-localchat.tga", LLUUID::null, FALSE); + preloadUIImage("icn_voice-groupfocus.tga", LLUUID::null, FALSE); + preloadUIImage("icn_voice-pvtfocus.tga", LLUUID::null, FALSE); + preloadUIImage("icn_media-pause.tga", LLUUID::null, FALSE); + preloadUIImage("icn_media-play.tga", LLUUID::null, FALSE); + preloadUIImage("icn_music-play.tga", LLUUID::null, FALSE); + preloadUIImage("icn_music-pause.tga", LLUUID::null, FALSE); + preloadUIImage("icn_chatbar.tga", LLUUID::null, FALSE); + preloadUIImage("btn_chatbar.tga", LLUUID::null, FALSE, LLRectf(0.5f, 0.5f, 0.5f, 0.5f)); + preloadUIImage("btn_chatbar_selected.tga", LLUUID::null, FALSE, LLRectf(0.5f, 0.5f, 0.5f, 0.5f)); + preloadUIImage("icn_rounded-text-field.tga", LLUUID::null, FALSE); + preloadUIImage("flyout_btn_right_selected.tga", LLUUID::null, FALSE, LLRectf(0.125f, 0.5f, 0.2f, 0.5f)); + preloadUIImage("flyout_btn_right.tga", LLUUID::null, FALSE, LLRectf(0.125f, 0.5f, 0.2f, 0.5f)); + preloadUIImage("flyout_btn_left_selected.tga", LLUUID::null, FALSE, LLRectf(0.8f, 0.5f, 0.875f, 0.5f)); + preloadUIImage("flyout_btn_left.tga", LLUUID::null, FALSE, LLRectf(0.8f, 0.5f, 0.875f, 0.5f)); } static std::string get_texture_list_name() @@ -354,7 +379,7 @@ void LLViewerImageList::doPrefetchImages() image->addTextureStats((F32)pixel_area); } } - + } @@ -400,7 +425,7 @@ void LLViewerImageList::shutdown() if (++count >= max_count) break; } - + if (count > 0 && !gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "").empty()) { std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, get_texture_list_name()); @@ -416,14 +441,14 @@ void LLViewerImageList::shutdown() mIRCallbackData.clear(); // Clean up preloaded images - mPreloadedImages.clear(); + mUIImages.clear(); // Flush all of the references mLoadingStreamList.clear(); mCreateTextureList.clear(); - + mUUIDMap.clear(); - + mImageList.clear(); } @@ -433,14 +458,14 @@ void LLViewerImageList::dump() for (image_priority_list_t::iterator it = mImageList.begin(); it != mImageList.end(); ++it) { LLViewerImage* image = *it; - + llinfos << "priority " << image->getDecodePriority() - << " boost " << image->getBoostLevel() - << " size " << image->getWidth() << "x" << image->getHeight() - << " discard " << image->getDiscardLevel() - << " desired " << image->getDesiredDiscardLevel() - << " http://asset.siva.lindenlab.com/" << image->getID() << ".texture" - << llendl; + << " boost " << image->getBoostLevel() + << " size " << image->getWidth() << "x" << image->getHeight() + << " discard " << image->getDiscardLevel() + << " desired " << image->getDesiredDiscardLevel() + << " http://asset.siva.lindenlab.com/" << image->getID() << ".texture" + << llendl; } } @@ -455,13 +480,13 @@ void LLViewerImageList::restoreGL() } /* Vertical tab container button image IDs -Seem to not decode when running app in debug. - -const LLUUID BAD_IMG_ONE("1097dcb3-aef9-8152-f471-431d840ea89e"); -const LLUUID BAD_IMG_TWO("bea77041-5835-1661-f298-47e2d32b7a70"); -*/ + Seem to not decode when running app in debug. + + const LLUUID BAD_IMG_ONE("1097dcb3-aef9-8152-f471-431d840ea89e"); + const LLUUID BAD_IMG_TWO("bea77041-5835-1661-f298-47e2d32b7a70"); + */ -LLImageGL* LLViewerImageList::getUIImageByID(const LLUUID& image_id, BOOL clamped) +LLImageGL* LLViewerImageList::getImageByID(const LLUUID& image_id, BOOL clamped) { LLViewerImage* imagep = getImage(image_id, MIPMAP_FALSE, TRUE); // force a high resolution decode for all UI images (pulled this from LLTextEditor) @@ -470,17 +495,38 @@ LLImageGL* LLViewerImageList::getUIImageByID(const LLUUID& image_id, BOOL clampe LLViewerImage::bindTexture(imagep); imagep->setClamp(clamped, clamped); imagep->unbindTexture(0, GL_TEXTURE_2D); - + return (LLImageGL*)imagep; } +LLUIImage* LLViewerImageList::getUIImageByID(const LLUUID& image_id, BOOL clamped) +{ + uuid_ui_image_map_t::iterator found_it = mUIImages.find(image_id); + if (found_it != mUIImages.end()) + { + return found_it->second; + } + + // otherwise create new ui image wrapper + LLImageGL* image = getImageByID(image_id, clamped); + image->dontDiscard(); + LLPointer new_imagep = new LLUIImage(image); + mUIImages.insert(std::make_pair(image_id, new_imagep)); + + return new_imagep; +} + + /////////////////////////////////////////////////////////////////////////////// -LLViewerImage* LLViewerImageList::preloadImage(const LLString& filename, const LLUUID &image_set_id, BOOL use_mips) +LLViewerImage* LLViewerImageList::preloadUIImage(const LLString& filename, const LLUUID &image_set_id, BOOL use_mips, const LLRectf& scale_rect) { LLViewerImage* image = getImage(filename, image_set_id, use_mips, TRUE); image->dontDiscard(); - mPreloadedImages.push_back(image); + image->setClamp(TRUE, TRUE); + LLUIImage* ui_imagep = new LLUIImage(image); + ui_imagep->setScaleRegion(scale_rect); + mUIImages.insert(std::make_pair(image->getID(), LLPointer(ui_imagep))); return image; } @@ -510,7 +556,7 @@ LLViewerImage* LLViewerImageList::getImageFromFile(const LLString& filename, // Try to load an image from the skins directory. // Fall back to loading from the VFS if not found. - + // First verify that the image exists in gViewerArt LLUUID image_id = LLUUID( gViewerArt.getString(filename.c_str()) ); if (image_id.isNull()) @@ -534,7 +580,7 @@ LLViewerImage* LLViewerImageList::getImageFromFile(const LLString& filename, return (getImage(IMG_DEFAULT, TRUE, TRUE)); } } - + // Now that we have verified that filename exists, load it and assign it to // the filename's UUID, or image_set_id if non null. if (image_set_id.notNull()) @@ -545,7 +591,7 @@ LLViewerImage* LLViewerImageList::getImageFromFile(const LLString& filename, // Load the image LLViewerImage* imagep = getImageFromUUID(image_id, usemipmaps, level_immediate, internal_format, primary_format, LLHost()); - + return imagep; } @@ -566,27 +612,27 @@ LLViewerImage* LLViewerImageList::getImageFromUUID(const LLUUID &image_id, // Return the image with ID image_id // If the image is not found, creates new image and // enqueues a request for transmission - + if ((&image_id == NULL) || image_id.isNull()) { return (getImage(IMG_DEFAULT, TRUE, TRUE)); } - + LLPointer imagep = hasImage(image_id); - + if (imagep.isNull()) { imagep = new LLViewerImage(image_id, usemipmaps); // Might want to request from host other than where the agent is. JC imagep->setTargetHost(request_from_host); - + if (internal_format && primary_format) { imagep->setExplicitFormat(internal_format, primary_format); } - + addImage(imagep); - + if (level_immediate) { imagep->dontDiscard(); @@ -635,7 +681,7 @@ void LLViewerImageList::addImage(LLViewerImage *new_image) return; } LLUUID image_id = new_image->getID(); - + LLViewerImage *image = hasImage(image_id); if (image) { @@ -714,20 +760,20 @@ void LLViewerImageList::updateImages(F32 max_time) sGLBoundMemStat.addValue(LLImageGL::sBoundTextureMemory/(1024.f*1024.f)); sRawMemStat.addValue(LLImageRaw::sGlobalRawMemory/(1024.f*1024.f)); sFormattedMemStat.addValue(LLImageFormatted::sGlobalFormattedMemory/(1024.f*1024.f)); - + updateImagesDecodePriorities(); max_time -= updateImagesFetchTextures(max_time); max_time = llmax(max_time, 0.001f); max_time -= updateImagesCreateTextures(max_time); max_time = llmax(max_time, 0.001f); - + if (!mDirtyTextureList.empty()) { LLFastTimer t(LLFastTimer::FTM_IMAGE_MARK_DIRTY); gPipeline.dirtyPoolObjectTextures(mDirtyTextureList); mDirtyTextureList.clear(); } - + for (image_list_t::iterator iter = mCallbackList.begin(); iter != mCallbackList.end(); ) { @@ -760,7 +806,7 @@ void LLViewerImageList::updateImagesDecodePriorities() mLastUpdateUUID = iter->first; LLPointer imagep = iter->second; ++iter; // safe to incrament now - + // // Flush formatted images using a lazy flush // @@ -802,31 +848,31 @@ void LLViewerImageList::updateImagesDecodePriorities() } /* -static U8 get_image_type(LLViewerImage* imagep, LLHost target_host) -{ - // Having a target host implies this is a baked image. I don't - // believe that boost level has been set at this point. JC - U8 type_from_host = (target_host.isOk() - ? LLImageBase::TYPE_AVATAR_BAKE - : LLImageBase::TYPE_NORMAL); - S32 boost_level = imagep->getBoostLevel(); - U8 type_from_boost = ( (boost_level == LLViewerImage::BOOST_AVATAR_BAKED - || boost_level == LLViewerImage::BOOST_AVATAR_BAKED_SELF) - ? LLImageBase::TYPE_AVATAR_BAKE - : LLImageBase::TYPE_NORMAL); - if (type_from_host == LLImageBase::TYPE_NORMAL - && type_from_boost == LLImageBase::TYPE_AVATAR_BAKE) - { - llwarns << "TAT: get_image_type() type_from_host doesn't match type_from_boost" - << " host " << target_host - << " boost " << imagep->getBoostLevel() - << " imageid " << imagep->getID() - << llendl; - imagep->dump(); - } - return type_from_host; -} -*/ + static U8 get_image_type(LLViewerImage* imagep, LLHost target_host) + { + // Having a target host implies this is a baked image. I don't + // believe that boost level has been set at this point. JC + U8 type_from_host = (target_host.isOk() + ? LLImageBase::TYPE_AVATAR_BAKE + : LLImageBase::TYPE_NORMAL); + S32 boost_level = imagep->getBoostLevel(); + U8 type_from_boost = ( (boost_level == LLViewerImage::BOOST_AVATAR_BAKED + || boost_level == LLViewerImage::BOOST_AVATAR_BAKED_SELF) + ? LLImageBase::TYPE_AVATAR_BAKE + : LLImageBase::TYPE_NORMAL); + if (type_from_host == LLImageBase::TYPE_NORMAL + && type_from_boost == LLImageBase::TYPE_AVATAR_BAKE) + { + llwarns << "TAT: get_image_type() type_from_host doesn't match type_from_boost" + << " host " << target_host + << " boost " << imagep->getBoostLevel() + << " imageid " << imagep->getID() + << llendl; + imagep->dump(); + } + return type_from_host; + } + */ F32 LLViewerImageList::updateImagesCreateTextures(F32 max_time) { @@ -837,7 +883,7 @@ F32 LLViewerImageList::updateImagesCreateTextures(F32 max_time) // decoded, but haven't been pushed into GL). // LLFastTimer t(LLFastTimer::FTM_IMAGE_CREATE); - + LLTimer create_timer; image_list_t::iterator enditer = mCreateTextureList.begin(); for (image_list_t::iterator iter = mCreateTextureList.begin(); @@ -864,7 +910,7 @@ F32 LLViewerImageList::updateImagesFetchTextures(F32 max_time) // Make a list with 32 high priority entries + 256 cycled entries const size_t max_priority_count = 32; const size_t max_update_count = 256; - + // 32 high priority entries std::set entries; size_t update_counter = llmin(max_priority_count, mImageList.size()); @@ -890,13 +936,13 @@ F32 LLViewerImageList::updateImagesFetchTextures(F32 max_time) ++iter2; update_counter--; } - + S32 min_count = max_priority_count + max_update_count/4; for (std::set::iterator iter3 = entries.begin(); iter3 != entries.end(); ) { LLPointer imagep = *iter3++; - + imagep->updateFetch(); if (min_count <= 0 && image_op_timer.getElapsedTimeF32() > max_time) { @@ -911,68 +957,68 @@ void LLViewerImageList::updateImagesMediaStreams() { if (gNoRender || gGLManager.mIsDisabled) return; - // update media stream if required - LLMediaEngine* media_engine = LLMediaEngine::getInstance(); - if (media_engine) + // update media stream if required + LLMediaEngine* media_engine = LLMediaEngine::getInstance(); + if (media_engine) + { + if ( media_engine->update() ) { - if ( media_engine->update() ) + LLUUID media_uuid = media_engine->getImageUUID(); + updateMovieImage(media_uuid, TRUE); + if (!media_uuid.isNull()) { - LLUUID media_uuid = media_engine->getImageUUID(); - updateMovieImage(media_uuid, TRUE); - if (!media_uuid.isNull()) + LLViewerImage* viewerImage = getImage( media_uuid ); + if( viewerImage ) { - LLViewerImage* viewerImage = getImage( media_uuid ); - if( viewerImage ) + LLMediaBase* renderer = media_engine->getMediaRenderer(); + if ((renderer->getTextureWidth() != viewerImage->getWidth()) || + (renderer->getTextureHeight() != viewerImage->getHeight()) || + (renderer->getTextureDepth() != viewerImage->getComponents()) || + (viewerImage->getHasGLTexture() == FALSE)) { - LLMediaBase* renderer = media_engine->getMediaRenderer(); - if ((renderer->getTextureWidth() != viewerImage->getWidth()) || - (renderer->getTextureHeight() != viewerImage->getHeight()) || - (renderer->getTextureDepth() != viewerImage->getComponents()) || - (viewerImage->getHasGLTexture() == FALSE)) - { - // destroy existing GL image - viewerImage->destroyGLTexture(); - - // set new size - viewerImage->setSize( renderer->getTextureWidth(), - renderer->getTextureHeight(), - renderer->getTextureDepth() ); - - LLPointer raw = new LLImageRaw(renderer->getTextureWidth(), - renderer->getTextureHeight(), - renderer->getTextureDepth()); - raw->clear(0x7f,0x7f,0x7f,0xff); - viewerImage->createGLTexture(0, raw); - } - - // Set the explicit format the instance wants - viewerImage->setExplicitFormat(renderer->getTextureFormatInternal(), - renderer->getTextureFormatPrimary(), - renderer->getTextureFormatType(), - renderer->getTextureFormatSwapBytes()); - // This should be redundant, but just in case: - viewerImage->setUseMipMaps(FALSE); - - LLImageRaw* rawImage = media_engine->getImageRaw(); - if ( rawImage ) - { - viewerImage->setSubImage(rawImage, 0, 0, - renderer->getMediaWidth(), - renderer->getMediaHeight()); - } + // destroy existing GL image + viewerImage->destroyGLTexture(); + + // set new size + viewerImage->setSize( renderer->getTextureWidth(), + renderer->getTextureHeight(), + renderer->getTextureDepth() ); + + LLPointer raw = new LLImageRaw(renderer->getTextureWidth(), + renderer->getTextureHeight(), + renderer->getTextureDepth()); + raw->clear(0x7f,0x7f,0x7f,0xff); + viewerImage->createGLTexture(0, raw); } - else + + // Set the explicit format the instance wants + viewerImage->setExplicitFormat(renderer->getTextureFormatInternal(), + renderer->getTextureFormatPrimary(), + renderer->getTextureFormatType(), + renderer->getTextureFormatSwapBytes()); + // This should be redundant, but just in case: + viewerImage->setUseMipMaps(FALSE); + + LLImageRaw* rawImage = media_engine->getImageRaw(); + if ( rawImage ) { - llwarns << "MediaEngine update unable to get viewer image for GL texture" << llendl; + viewerImage->setSubImage(rawImage, 0, 0, + renderer->getMediaWidth(), + renderer->getMediaHeight()); } } - } - else - { - LLUUID media_uuid = media_engine->getImageUUID(); - updateMovieImage(media_uuid, FALSE); + else + { + llwarns << "MediaEngine update unable to get viewer image for GL texture" << llendl; + } } } + else + { + LLUUID media_uuid = media_engine->getImageUUID(); + updateMovieImage(media_uuid, FALSE); + } + } } void LLViewerImageList::updateImagesUpdateStats() @@ -994,7 +1040,7 @@ void LLViewerImageList::decodeAllImages(F32 max_time) { LLTimer timer; if(gNoRender) return; - + // Update texture stats and priorities std::vector > image_list; for (image_priority_list_t::iterator iter = mImageList.begin(); @@ -1046,11 +1092,11 @@ void LLViewerImageList::decodeAllImages(F32 max_time) max_time -= timer.getElapsedTimeF32(); max_time = llmax(max_time, .01f); F32 create_time = updateImagesCreateTextures(max_time); - + llinfos << "decodeAllImages() took " << timer.getElapsedTimeF32() << " seconds. " - << " fetch_pending " << fetch_pending - << " create_time " << create_time - << llendl; + << " fetch_pending " << fetch_pending + << " create_time " << create_time + << llendl; } @@ -1060,88 +1106,88 @@ BOOL LLViewerImageList::createUploadFile(const LLString& filename, { // First, load the image. LLPointer raw_image = new LLImageRaw; - + switch (codec) { - case IMG_CODEC_BMP: - { - LLPointer bmp_image = new LLImageBMP; - - if (!bmp_image->load(filename)) - { - return FALSE; - } - - if (!bmp_image->decode(raw_image)) - { - return FALSE; - } - } - break; - case IMG_CODEC_TGA: - { - LLPointer tga_image = new LLImageTGA; - - if (!tga_image->load(filename)) - { - return FALSE; - } - - if (!tga_image->decode(raw_image)) - { - return FALSE; - } - - if( (tga_image->getComponents() != 3) && - (tga_image->getComponents() != 4) ) - { - tga_image->setLastError( "Image files with less than 3 or more than 4 components are not supported." ); - return FALSE; - } - } - break; - case IMG_CODEC_JPEG: - { - LLPointer jpeg_image = new LLImageJPEG; - - if (!jpeg_image->load(filename)) - { - return FALSE; - } - - if (!jpeg_image->decode(raw_image)) - { - return FALSE; - } - } - break; - case IMG_CODEC_PNG: - { - LLPointer png_image = new LLImagePNG; - - if (!png_image->load(filename)) - { - return FALSE; - } - - if (!png_image->decode(raw_image)) - { - return FALSE; - } - } - break; - default: - return FALSE; + case IMG_CODEC_BMP: + { + LLPointer bmp_image = new LLImageBMP; + + if (!bmp_image->load(filename)) + { + return FALSE; + } + + if (!bmp_image->decode(raw_image)) + { + return FALSE; + } + } + break; + case IMG_CODEC_TGA: + { + LLPointer tga_image = new LLImageTGA; + + if (!tga_image->load(filename)) + { + return FALSE; + } + + if (!tga_image->decode(raw_image)) + { + return FALSE; + } + + if( (tga_image->getComponents() != 3) && + (tga_image->getComponents() != 4) ) + { + tga_image->setLastError( "Image files with less than 3 or more than 4 components are not supported." ); + return FALSE; + } + } + break; + case IMG_CODEC_JPEG: + { + LLPointer jpeg_image = new LLImageJPEG; + + if (!jpeg_image->load(filename)) + { + return FALSE; + } + + if (!jpeg_image->decode(raw_image)) + { + return FALSE; + } + } + break; + case IMG_CODEC_PNG: + { + LLPointer png_image = new LLImagePNG; + + if (!png_image->load(filename)) + { + return FALSE; + } + + if (!png_image->decode(raw_image)) + { + return FALSE; + } + } + break; + default: + return FALSE; } - + LLPointer compressedImage = convertToUploadFile(raw_image); - + if( !compressedImage->save(out_filename) ) { llinfos << "Couldn't create output file " << out_filename << llendl; return FALSE; } - + // test to see if the encode and save worked. LLPointer integrity_test = new LLImageJ2C; if( !integrity_test->loadAndValidate( out_filename ) ) @@ -1149,7 +1195,7 @@ BOOL LLViewerImageList::createUploadFile(const LLString& filename, llinfos << "Image: " << out_filename << " is corrupt." << llendl; return FALSE; } - + return TRUE; } @@ -1166,7 +1212,7 @@ LLPointer LLViewerImageList::convertToUploadFile(LLPointersetReversible(TRUE); compressedImage->encode(raw_image); - + return compressedImage; } @@ -1175,7 +1221,7 @@ S32 LLViewerImageList::getMaxVideoRamSetting(S32 max) { const U32 vram_settings[] = { 16, 32, 64, 128, 256, 512 }; const S32 num_vram_settings = sizeof(vram_settings) / sizeof(vram_settings[0]); - + U32 max_vram; if (gGLManager.mVRAM != 0) { @@ -1203,7 +1249,7 @@ S32 LLViewerImageList::getMaxVideoRamSetting(S32 max) { max_vram = llmin(max_vram, (U32)((F32)system_ram/1.5f)); } - + S32 idx; for (idx=0; idx < num_vram_settings; idx++) { @@ -1215,22 +1261,22 @@ S32 LLViewerImageList::getMaxVideoRamSetting(S32 max) break; } } - + if( idx == num_vram_settings ) { idx = num_vram_settings - 1; } - + return idx; } const S32 VIDEO_CARD_MEM_SIZES[6] = { 0x1000000, // 16MB - 0x2000000, // 32MB - 0x4000000, // 64MB - 0x8000000, // 128MB - 0x10000000, // 256MB - 0x20000000, // 512MB - }; + 0x2000000, // 32MB + 0x4000000, // 64MB + 0x8000000, // 128MB + 0x10000000, // 256MB + 0x20000000, // 512MB +}; const S32 VIDEO_CARD_FRAMEBUFFER_MEM = 0xC00000; // 12MB @@ -1257,13 +1303,13 @@ void LLViewerImageList::updateMaxResidentTexMem(S32 max, U32 fudge) mVideoMemorySetting = cur_setting; // TODO: set available resident texture mem based on use by other subsystems // currently max(12MB, VRAM/4) assumed... - + S32 vram_amt = VIDEO_CARD_MEM_SIZES[cur_setting]; S32 fb_mem = llmax(VIDEO_CARD_FRAMEBUFFER_MEM, vram_amt/4); mMaxResidentTexMem = vram_amt - fb_mem - fudge; -// llinfos << "Graphics Card memory set to " << (VIDEO_CARD_MEM_SIZES[cur_setting]>>20) -// << " MB" << llendl; + // llinfos << "Graphics Card memory set to " << (VIDEO_CARD_MEM_SIZES[cur_setting]>>20) + // << " MB" << llendl; } /////////////////////////////////////////////////////////////////////////////// @@ -1272,15 +1318,15 @@ void LLViewerImageList::updateMaxResidentTexMem(S32 max, U32 fudge) void LLViewerImageList::receiveImageHeader(LLMessageSystem *msg, void **user_data) { LLFastTimer t(LLFastTimer::FTM_PROCESS_IMAGES); - + // Receive image header, copy into image object and decompresses // if this is a one-packet image. - + LLUUID id; - + char ip_string[256]; u32_to_ip_string(msg->getSenderIP(),ip_string); - + if (msg->getReceiveCompressedSize()) { gImageList.sTextureBits += msg->getReceiveCompressedSize() * 8; @@ -1290,7 +1336,7 @@ void LLViewerImageList::receiveImageHeader(LLMessageSystem *msg, void **user_dat gImageList.sTextureBits += msg->getReceiveSize() * 8; } gImageList.sTexturePackets++; - + U8 codec; U16 packets; U32 totalbytes; @@ -1298,7 +1344,7 @@ void LLViewerImageList::receiveImageHeader(LLMessageSystem *msg, void **user_dat msg->getU8Fast(_PREHASH_ImageID, _PREHASH_Codec, codec); msg->getU16Fast(_PREHASH_ImageID, _PREHASH_Packets, packets); msg->getU32Fast(_PREHASH_ImageID, _PREHASH_Size, totalbytes); - + S32 data_size = msg->getSizeFast(_PREHASH_ImageData, _PREHASH_Data); if (!data_size) { @@ -1309,14 +1355,14 @@ void LLViewerImageList::receiveImageHeader(LLMessageSystem *msg, void **user_dat // msg->getSizeFast() is probably trying to tell us there // was an error. llerrs << "image header chunk size was negative: " - << data_size << llendl; + << data_size << llendl; return; } - + // this buffer gets saved off in the packet list U8 *data = new U8[data_size]; msg->getBinaryDataFast(_PREHASH_ImageData, _PREHASH_Data, data, data_size); - + LLViewerImage *image = gImageList.getImage(id); if (!image) { @@ -1339,13 +1385,13 @@ void LLViewerImageList::receiveImagePacket(LLMessageSystem *msg, void **user_dat // Receives image packet, copy into image object, // checks if all packets received, decompresses if so. - + LLUUID id; U16 packet_num; - + char ip_string[256]; u32_to_ip_string(msg->getSenderIP(),ip_string); - + if (msg->getReceiveCompressedSize()) { gImageList.sTextureBits += msg->getReceiveCompressedSize() * 8; @@ -1355,12 +1401,12 @@ void LLViewerImageList::receiveImagePacket(LLMessageSystem *msg, void **user_dat gImageList.sTextureBits += msg->getReceiveSize() * 8; } gImageList.sTexturePackets++; - + //llprintline("Start decode, image header..."); msg->getUUIDFast(_PREHASH_ImageID, _PREHASH_ID, id); msg->getU16Fast(_PREHASH_ImageID, _PREHASH_Packet, packet_num); S32 data_size = msg->getSizeFast(_PREHASH_ImageData, _PREHASH_Data); - + if (!data_size) { return; @@ -1370,7 +1416,7 @@ void LLViewerImageList::receiveImagePacket(LLMessageSystem *msg, void **user_dat // msg->getSizeFast() is probably trying to tell us there // was an error. llerrs << "image data chunk size was negative: " - << data_size << llendl; + << data_size << llendl; return; } if (data_size > MTUBYTES) @@ -1380,7 +1426,7 @@ void LLViewerImageList::receiveImagePacket(LLMessageSystem *msg, void **user_dat } U8 *data = new U8[data_size]; msg->getBinaryDataFast(_PREHASH_ImageData, _PREHASH_Data, data, data_size); - + LLViewerImage *image = gImageList.getImage(id); if (!image) { @@ -1403,7 +1449,7 @@ void LLViewerImageList::processImageNotInDatabase(LLMessageSystem *msg,void **us LLFastTimer t(LLFastTimer::FTM_PROCESS_IMAGES); LLUUID image_id; msg->getUUIDFast(_PREHASH_ImageID, _PREHASH_ID, image_id); - + LLViewerImage* image = gImageList.hasImage( image_id ); if( image ) { @@ -1422,10 +1468,10 @@ S32 LLViewerImageList::calcMaxTextureRAM() U32 available_memory = memory_info.getPhysicalMemoryClamped(); clamp_rescale((F32)available_memory, - (F32)(SIXTEEN_MEG * 16), - (F32)U32_MAX, - (F32)(SIXTEEN_MEG * 4), - (F32)(U32_MAX >> 1)); + (F32)(SIXTEEN_MEG * 16), + (F32)U32_MAX, + (F32)(SIXTEEN_MEG * 4), + (F32)(U32_MAX >> 1)); return available_memory; } diff --git a/linden/indra/newview/llviewerimagelist.h b/linden/indra/newview/llviewerimagelist.h index 8ee2731..306dd5b 100644 --- a/linden/indra/newview/llviewerimagelist.h +++ b/linden/indra/newview/llviewerimagelist.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -37,6 +37,7 @@ #include "llgl.h" #include "llstat.h" #include "llviewerimage.h" +#include "llui.h" #include #include @@ -81,7 +82,8 @@ public: ~LLViewerImageList(); // LLImageProviderInterface - LLImageGL* getUIImageByID(const LLUUID& id, BOOL clamped = TRUE); + LLImageGL* getImageByID(const LLUUID& id, BOOL clamped = TRUE); + LLUIImage* getUIImageByID(const LLUUID& id, BOOL clamped = TRUE); void init(); void shutdown(); @@ -151,7 +153,7 @@ public: void doPrefetchImages(); private: - LLViewerImage* preloadImage(const LLString& filename, const LLUUID &image_set_id, BOOL use_mips); + LLViewerImage* preloadUIImage(const LLString& filename, const LLUUID &image_set_id, BOOL use_mips, const LLRectf& scale_rect = LLRectf(0.f, 1.f, 1.f, 0.f)); void updateImagesDecodePriorities(); F32 updateImagesCreateTextures(F32 max_time); F32 updateImagesFetchTextures(F32 max_time); @@ -190,7 +192,8 @@ private: LLUUID mMovieImageUUID; U8 mMovieImageHasMips; - std::vector > mPreloadedImages; + typedef std::map< LLUUID, LLPointer > uuid_ui_image_map_t; + uuid_ui_image_map_t mUIImages; public: static U32 sTextureBits; diff --git a/linden/indra/newview/llviewerinventory.cpp b/linden/indra/newview/llviewerinventory.cpp index 3e8938b..add9f27 100644 --- a/linden/indra/newview/llviewerinventory.cpp +++ b/linden/indra/newview/llviewerinventory.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -47,7 +47,7 @@ #include "llviewerregion.h" #include "llviewerobjectlist.h" - +#include "llpreviewgesture.h" ///---------------------------------------------------------------------------- /// Local function declarations, constants, enums, and typedefs ///---------------------------------------------------------------------------- @@ -104,14 +104,9 @@ LLViewerInventoryItem::LLViewerInventoryItem(const LLViewerInventoryItem* other) } LLViewerInventoryItem::LLViewerInventoryItem(const LLInventoryItem *other) : - LLInventoryItem(other) + LLInventoryItem(other), + mIsComplete(TRUE) { - LLInventoryItem::copy(other); - if (!mIsComplete) - { - llwarns << "LLViewerInventoryItem copy constructor for incomplete item" - << mUUID << llendl; - } } @@ -648,6 +643,26 @@ void ActivateGestureCallback::fire(const LLUUID& inv_item) gGestureManager.activateGesture(inv_item); } +void CreateGestureCallback::fire(const LLUUID& inv_item) +{ + if (inv_item.isNull()) + return; + + gGestureManager.activateGesture(inv_item); + + LLViewerInventoryItem* item = gInventory.getItem(inv_item); + if (!item) return; + gInventory.updateItem(item); + gInventory.notifyObservers(); + + if(!LLPreview::show(inv_item,FALSE)) + { + LLPreviewGesture* preview = LLPreviewGesture::show(LLString("Gesture: ") + item->getName(), inv_item, LLUUID::null); + // Force to be entirely onscreen. + gFloaterView->adjustToFitScreen(preview, FALSE); + } +} + LLInventoryCallbackManager gInventoryCallbacks; void create_inventory_item(const LLUUID& agent_id, const LLUUID& session_id, diff --git a/linden/indra/newview/llviewerinventory.h b/linden/indra/newview/llviewerinventory.h index 5db0ec7..fcedcc1 100644 --- a/linden/indra/newview/llviewerinventory.h +++ b/linden/indra/newview/llviewerinventory.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -223,6 +223,12 @@ public: void fire(const LLUUID& inv_item); }; +class CreateGestureCallback : public LLInventoryCallback +{ +public: + void fire(const LLUUID& inv_item); +}; + // misc functions //void inventory_reliable_callback(void**, S32 status); diff --git a/linden/indra/newview/llviewerjoint.cpp b/linden/indra/newview/llviewerjoint.cpp index 3a3f7d2..9645dfe 100644 --- a/linden/indra/newview/llviewerjoint.cpp +++ b/linden/indra/newview/llviewerjoint.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerjoint.h b/linden/indra/newview/llviewerjoint.h index 76f139b..0433ba9 100644 --- a/linden/indra/newview/llviewerjoint.h +++ b/linden/indra/newview/llviewerjoint.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerjointattachment.cpp b/linden/indra/newview/llviewerjointattachment.cpp index 06660c2..1348ad0 100644 --- a/linden/indra/newview/llviewerjointattachment.cpp +++ b/linden/indra/newview/llviewerjointattachment.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerjointattachment.h b/linden/indra/newview/llviewerjointattachment.h index 86373cb..275fce5 100644 --- a/linden/indra/newview/llviewerjointattachment.h +++ b/linden/indra/newview/llviewerjointattachment.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerjointmesh.cpp b/linden/indra/newview/llviewerjointmesh.cpp index 006636f..d90db4a 100644 --- a/linden/indra/newview/llviewerjointmesh.cpp +++ b/linden/indra/newview/llviewerjointmesh.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerjointmesh.h b/linden/indra/newview/llviewerjointmesh.h index afca815..e1b5e58 100644 --- a/linden/indra/newview/llviewerjointmesh.h +++ b/linden/indra/newview/llviewerjointmesh.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerjointmesh_sse.cpp b/linden/indra/newview/llviewerjointmesh_sse.cpp index eec7a2e..79fda0b 100644 --- a/linden/indra/newview/llviewerjointmesh_sse.cpp +++ b/linden/indra/newview/llviewerjointmesh_sse.cpp @@ -15,12 +15,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerjointmesh_sse2.cpp b/linden/indra/newview/llviewerjointmesh_sse2.cpp index 3026762..d1f858d 100644 --- a/linden/indra/newview/llviewerjointmesh_sse2.cpp +++ b/linden/indra/newview/llviewerjointmesh_sse2.cpp @@ -15,12 +15,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerjointmesh_vec.cpp b/linden/indra/newview/llviewerjointmesh_vec.cpp index 27ab5a6..65bff2c 100644 --- a/linden/indra/newview/llviewerjointmesh_vec.cpp +++ b/linden/indra/newview/llviewerjointmesh_vec.cpp @@ -15,12 +15,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerjointshape.cpp b/linden/indra/newview/llviewerjointshape.cpp index d904af8..279115b 100644 --- a/linden/indra/newview/llviewerjointshape.cpp +++ b/linden/indra/newview/llviewerjointshape.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerjointshape.h b/linden/indra/newview/llviewerjointshape.h index 2f7571e..91131c7 100644 --- a/linden/indra/newview/llviewerjointshape.h +++ b/linden/indra/newview/llviewerjointshape.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerjoystick.cpp b/linden/indra/newview/llviewerjoystick.cpp index 12b851f..e3db0f2 100644 --- a/linden/indra/newview/llviewerjoystick.cpp +++ b/linden/indra/newview/llviewerjoystick.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerjoystick.h b/linden/indra/newview/llviewerjoystick.h index 4a8e9af..b4107bb 100644 --- a/linden/indra/newview/llviewerjoystick.h +++ b/linden/indra/newview/llviewerjoystick.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerkeyboard.cpp b/linden/indra/newview/llviewerkeyboard.cpp index a39f367..bca447f 100644 --- a/linden/indra/newview/llviewerkeyboard.cpp +++ b/linden/indra/newview/llviewerkeyboard.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerkeyboard.h b/linden/indra/newview/llviewerkeyboard.h index af671cf..97f0f67 100644 --- a/linden/indra/newview/llviewerkeyboard.h +++ b/linden/indra/newview/llviewerkeyboard.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerlayer.cpp b/linden/indra/newview/llviewerlayer.cpp index 282e90e..0402a22 100644 --- a/linden/indra/newview/llviewerlayer.cpp +++ b/linden/indra/newview/llviewerlayer.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerlayer.h b/linden/indra/newview/llviewerlayer.h index 9a3d4c8..c0fbde5 100644 --- a/linden/indra/newview/llviewerlayer.h +++ b/linden/indra/newview/llviewerlayer.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp index d48d5ed..18bdaad 100644 --- a/linden/indra/newview/llviewermenu.cpp +++ b/linden/indra/newview/llviewermenu.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -60,7 +60,6 @@ #include "lltimer.h" #include "llvfile.h" #include "llvolumemgr.h" -#include "llwindow.h" // for shell_open() // newview includes #include "llagent.h" @@ -105,7 +104,6 @@ #include "llfloatergroupinvite.h" #include "llfloatergroups.h" #include "llfloaterhtml.h" -#include "llfloaterhtmlhelp.h" #include "llfloaterinspect.h" #include "llfloaterlagmeter.h" #include "llfloaterland.h" @@ -2113,7 +2111,7 @@ class LLObjectMute : public view_listener_t else { gMuteListp->add(mute); - gFloaterMute->show(); + LLFloaterMute::showInstance(); } return true; @@ -5279,7 +5277,7 @@ class LLShowFloater : public view_listener_t { if (gAgent.getWearablesLoaded()) { - gAgent.changeCameraToCustomizeAvatar(); + gAgent.changeCameraToCustomizeAvatar(gSavedSettings.getBOOL("AppearanceCameraMovement")); } } else if (floater_name == "friends") @@ -5308,7 +5306,7 @@ class LLShowFloater : public view_listener_t } else if (floater_name == "mute list") { - LLFloaterMute::toggle(NULL); + LLFloaterMute::toggleInstance(); } else if (floater_name == "camera controls") { @@ -5354,7 +5352,7 @@ class LLShowFloater : public view_listener_t } else if (floater_name == "about region") { - LLFloaterRegionInfo::show((void *)NULL); + LLFloaterRegionInfo::showInstance(); } else if (floater_name == "grid options") { @@ -5373,13 +5371,17 @@ class LLShowFloater : public view_listener_t else if (floater_name == "help in-world") { #if LL_LIBXUL_ENABLED - LLFloaterHtml::getInstance()->show( "in-world_help" ); + const bool open_app_slurls = true; + LLFloaterHtml::getInstance()->show( + "in-world_help", open_app_slurls ); #endif } else if (floater_name == "help additional") { #if LL_LIBXUL_ENABLED - LLFloaterHtml::getInstance()->show( "additional_help" ); + const bool open_app_slurls = true; + LLFloaterHtml::getInstance()->show( + "additional_help", open_app_slurls ); #endif } else if (floater_name == "complaint reporter") @@ -5446,7 +5448,7 @@ class LLFloaterVisible : public view_listener_t } else if (floater_name == "mute list") { - new_value = LLFloaterMute::visible(NULL); + new_value = LLFloaterMute::instanceVisible(); } else if (floater_name == "camera controls") { @@ -6051,12 +6053,39 @@ BOOL object_selected_and_point_valid(void *user_data) (selection->getFirstRootObject()->getNVPair("AssetContainer") == NULL); } + +BOOL object_is_wearable() +{ + if (!object_selected_and_point_valid(NULL)) + { + return FALSE; + } + if (sitting_on_selection()) + { + return FALSE; + } + LLObjectSelectionHandle selection = gSelectMgr->getSelection(); + for (LLObjectSelection::valid_root_iterator iter = gSelectMgr->getSelection()->valid_root_begin(); + iter != gSelectMgr->getSelection()->valid_root_end(); iter++) + { + LLSelectNode* node = *iter; + if (node->mPermissions->getOwner() == gAgent.getID()) + { + return TRUE; + } + } + return FALSE; +} + + // Also for seeing if object can be attached. See above. class LLObjectEnableWear : public view_listener_t { bool handleEvent(LLPointer event, const LLSD& userdata) { - return object_selected_and_point_valid(NULL); + bool is_wearable = object_selected_and_point_valid(NULL); + gMenuHolder->findControl(userdata["control"].asString())->setValue(is_wearable); + return TRUE; } }; @@ -6931,13 +6960,12 @@ void handle_grab_texture(void* data) if(view) { LLUICtrl* focus_ctrl = gFocusMgr.getKeyboardFocus(); - LLFocusMgr::FocusLostCallback callback = gFocusMgr.getFocusCallback(); view->getPanel()->setSelection(item_id, TAKE_FOCUS_NO); view->getPanel()->openSelected(); //LLInventoryView::dumpSelectionInformation((void*)view); // restore keyboard focus - gFocusMgr.setKeyboardFocus(focus_ctrl, callback); + gFocusMgr.setKeyboardFocus(focus_ctrl); } } else @@ -7135,7 +7163,8 @@ void handle_load_from_xml(void*) void handle_slurl_test(void*) { - LLFloaterHtml::getInstance()->show("http://secondlife.com/app/search/slurls.html", "SLURL Test"); + LLFloaterHtml::getInstance()->show( + "http://secondlife.com/app/search/slurls.html", "SLURL Test", true); } void handle_rebake_textures(void*) diff --git a/linden/indra/newview/llviewermenu.h b/linden/indra/newview/llviewermenu.h index 0cef3df..f548182 100644 --- a/linden/indra/newview/llviewermenu.h +++ b/linden/indra/newview/llviewermenu.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewermenufile.cpp b/linden/indra/newview/llviewermenufile.cpp index 5068736..231da59 100644 --- a/linden/indra/newview/llviewermenufile.cpp +++ b/linden/indra/newview/llviewermenufile.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -596,15 +596,9 @@ void upload_new_resource(const LLString& src_filename, std::string name, asset_type = LLAssetType::AT_SOUND; // tag it as audio S32 encode_result = 0; - S32 bitrate = 128; + llinfos << "Attempting to encode wav as an ogg file" << llendl; - if (compression_info) - { - bitrate = compression_info; - } - llinfos << "Attempting to encode wav as an ogg file at " << bitrate << "kbps" << llendl; - - encode_result = encode_vorbis_file_at(src_filename.c_str(), filename.c_str(), bitrate*1000); + encode_result = encode_vorbis_file(src_filename.c_str(), filename.c_str()); if (LLVORBISENC_NOERR != encode_result) { diff --git a/linden/indra/newview/llviewermenufile.h b/linden/indra/newview/llviewermenufile.h index 5dc56d5..94c18c4 100644 --- a/linden/indra/newview/llviewermenufile.h +++ b/linden/indra/newview/llviewermenufile.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewermessage.cpp b/linden/indra/newview/llviewermessage.cpp index c624ab9..bad2f1c 100644 --- a/linden/indra/newview/llviewermessage.cpp +++ b/linden/indra/newview/llviewermessage.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -50,6 +50,7 @@ #include "llfloaterimport.h" #include "llfocusmgr.h" #include "llfollowcamparams.h" +#include "llfloaterreleasemsg.h" #include "llinstantmessage.h" #include "llquantize.h" #include "llregionflags.h" @@ -59,7 +60,6 @@ #include "llteleportflags.h" #include "lltracker.h" #include "lltransactionflags.h" -#include "llwindow.h" // shell_open() #include "llxfermanager.h" #include "message.h" #include "sound_ids.h" @@ -131,6 +131,7 @@ #include "pipeline.h" #include "llappviewer.h" #include "llfloaterworldmap.h" +#include "llkeythrottle.h" #include "llviewerdisplay.h" #include "llkeythrottle.h" @@ -284,6 +285,7 @@ void process_logout_reply(LLMessageSystem* msg, void**) void process_layer_data(LLMessageSystem *mesgsys, void **user_data) { + if(!gWorldp) return; LLViewerRegion *regionp = gWorldp->getRegion(mesgsys->getSender()); if (!regionp || gNoRender) @@ -883,10 +885,8 @@ void open_offer(const std::vector& items, const std::string& from_name) //highlight item LLUICtrl* focus_ctrl = gFocusMgr.getKeyboardFocus(); - LLFocusMgr::FocusLostCallback callback; - callback = gFocusMgr.getFocusCallback(); view->getPanel()->setSelection(item->getUUID(), TAKE_FOCUS_NO); - gFocusMgr.setKeyboardFocus(focus_ctrl, callback); + gFocusMgr.setKeyboardFocus(focus_ctrl); } } @@ -915,7 +915,7 @@ void inventory_offer_mute_callback(const LLUUID& blocked_id, LLMute mute(blocked_id, from_name, type); if (gMuteListp->add(mute)) { - gFloaterMute->show(); + LLFloaterMute::showInstance(); gFloaterMute->selectMute(blocked_id); } @@ -1193,7 +1193,22 @@ void inventory_offer_handler(LLOfferInfo* info, BOOL from_task) LLString::format_map_t args; args["[OBJECTNAME]"] = info->mDesc; - args["[OBJECTTYPE]"] = LLAssetType::lookupHumanReadable(info->mType); + // must protect against a NULL return from lookupHumanReadable() + const char* typestr = LLAssetType::lookupHumanReadable(info->mType); + if (typestr) + { + args["[OBJECTTYPE]"] = typestr; + } + else + { + llwarns << "LLAssetType::lookupHumanReadable() returned NULL - probably bad asset type: " << info->mType << llendl; + args["[OBJECTTYPE]"] = ""; + + // This seems safest, rather than propagating bogosity + llwarns << "Forcing an inventory-decline for probably-bad asset type." << llendl; + inventory_offer_callback(IOR_DECLINE, info); + return; + } // Name cache callbacks don't store userdata, so can't save // off the LLOfferInfo. Argh. JC @@ -2174,9 +2189,13 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data) BOOL is_linden = FALSE; if (gMuteListp) { - is_muted = gMuteListp->isMuted(from_id, from_name, LLMute::flagTextChat) - || gMuteListp->isMuted(owner_id, LLMute::flagTextChat); - is_linden = chat.mSourceType != CHAT_SOURCE_OBJECT && gMuteListp->isLinden(from_name); + is_muted = gMuteListp->isMuted( + from_id, + from_name, + LLMute::flagTextChat) + || gMuteListp->isMuted(owner_id, LLMute::flagTextChat); + is_linden = chat.mSourceType != CHAT_SOURCE_OBJECT && + gMuteListp->isLinden(from_name); } BOOL is_audible = (CHAT_AUDIBLE_FULLY == chat.mAudible); @@ -2217,7 +2236,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data) BOOL visible_in_chat_bubble = FALSE; std::string verb; - color.setVec(1,1,1,1); + color.setVec(1.f,1.f,1.f,1.f); msg->getStringFast(_PREHASH_ChatData, _PREHASH_Message, DB_CHAT_MSG_BUF_SIZE, mesg); BOOL ircstyle = FALSE; @@ -2592,6 +2611,7 @@ void process_teleport_finish(LLMessageSystem* msg, void**) // Viewer trusts the simulator. gMessageSystem->enableCircuit(sim_host, TRUE); + if(!gWorldp) return; LLViewerRegion* regionp = gWorldp->addRegion(region_handle, sim_host); /* @@ -2660,6 +2680,13 @@ void process_avatar_init_complete(LLMessageSystem* msg, void**) } */ +static void display_release_message(S32, void* data) +{ + std::string* msg = (std::string*)data; + LLFloaterReleaseMsg::displayMessage(msg->c_str()); + delete msg; +} + void process_agent_movement_complete(LLMessageSystem* msg, void**) { gAgentMovementCompleted = TRUE; @@ -2699,6 +2726,7 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**) F32 x, y; from_region_handle(region_handle, &x, &y); + if(!gWorldp) return; LLViewerRegion* regionp = gWorldp->getRegionFromHandle(region_handle); if (!regionp) { @@ -2729,9 +2757,9 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**) gViewerThrottle.sendToSim(); gViewerWindow->sendShapeToSim(); - bool is_teleport = false; + bool is_teleport = gAgent.getTeleportState() == LLAgent::TELEPORT_MOVING; - if( gAgent.getTeleportState() == LLAgent::TELEPORT_MOVING ) + if( is_teleport ) { // Force the camera back onto the agent, don't animate. JC gAgent.setFocusOnAvatar(TRUE, FALSE); @@ -2746,15 +2774,20 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**) if (avatarp) { + // Chat the "back" SLURL. (DEV-4907) + LLChat chat("Teleport completed from " + gAgent.getTeleportSourceSLURL()); + chat.mSourceType = CHAT_SOURCE_SYSTEM; + LLFloaterChat::addChatHistory(chat); + + // Set the new position avatarp->setPositionAgent(agent_pos); avatarp->clearChat(); avatarp->slamPosition(); } - - is_teleport = true; } else { + // This is likely just the initial logging in phase. gAgent.setTeleportState( LLAgent::TELEPORT_NONE ); } @@ -2822,22 +2855,10 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**) msg->addBOOLFast(_PREHASH_AlwaysRun, gAgent.getAlwaysRun()); gAgent.sendReliableMessage(); - - LLString version_channel = LLString(version_channel_char); - - if (gLastVersionChannel != version_channel) + if (LLFloaterReleaseMsg::checkVersion(version_channel_char)) { - //show release message if not on initial login - if (!gLastVersionChannel.empty()) - { - gLastVersionChannel = version_channel; - LLFloaterReleaseMsg::show(); - } - else { - gLastVersionChannel = version_channel; - } + LLNotifyBox::showXml("ServerVersionChanged", display_release_message, new std::string(version_channel_char) ); } - } void process_crossed_region(LLMessageSystem* msg, void**) @@ -2867,6 +2888,7 @@ void process_crossed_region(LLMessageSystem* msg, void**) send_complete_agent_movement(sim_host); + if(!gWorldp) return; LLViewerRegion* regionp = gWorldp->addRegion(region_handle, sim_host); regionp->setSeedCapability(std::string(seedCap)); } @@ -3251,6 +3273,7 @@ void process_time_synch(LLMessageSystem *mesgsys, void **user_data) mesgsys->getVector3Fast(_PREHASH_TimeInfo, _PREHASH_SunDirection, sun_direction); mesgsys->getVector3Fast(_PREHASH_TimeInfo, _PREHASH_SunAngVelocity, sun_ang_velocity); + if(!gWorldp) return; gWorldp->setSpaceTimeUSec(space_time_usec); //lldebugs << "time_synch() - " << sun_direction << ", " << sun_ang_velocity @@ -3309,7 +3332,7 @@ void process_sound_trigger(LLMessageSystem *msg, void **) return; } - F32 volume = gain * gSavedSettings.getF32("AudioLevelSFX"); + F32 volume = gSavedSettings.getBOOL("MuteSounds") ? 0.f : (gain * gSavedSettings.getF32("AudioLevelSFX")); gAudiop->triggerSound(sound_id, owner_id, volume, pos_global); } @@ -3395,29 +3418,6 @@ void process_attached_sound_gain_change(LLMessageSystem *mesgsys, void **user_da objectp->adjustAudioGain(gain); } -/* Unused July 2006 -void process_attached_sound_cutoff_radius(LLMessageSystem *mesgsys, void **user_data) -{ - F32 radius = 0; - LLUUID object_guid; - LLViewerObject *objectp = NULL; - - mesgsys->getUUIDFast(_PREHASH_DataBlock, _PREHASH_ObjectID, object_guid); - - if (!((objectp = gObjectList.findObject(object_guid)))) - { - // we don't know about this object, just bail - return; - } - - mesgsys->getF32Fast(_PREHASH_DataBlock, _PREHASH_Radius, radius); - - if (gAudiop) - { -// gAudiop->attachToObject(sound_guid, object_guid, gain, priority, flags); - } -} -*/ void process_health_message(LLMessageSystem *mesgsys, void **user_data) { @@ -3563,19 +3563,6 @@ void process_sim_stats(LLMessageSystem *msg, void **user_data) } -// This info is requested by the simulator when the agent first logs in -// or when it moves into a simulator in which it did not already have -// a child agent. -/* -void process_avatar_info_request(LLMessageSystem *mesgsys, void **user_data) -{ - llinfos << "process_avatar_info_request()" << llendl; - - // Send the avatar appearance (parameters and texture entry UUIDs) - gAgent.sendAgentSetAppearance(); - send_agent_update(TRUE, TRUE); -}*/ - void process_avatar_animation(LLMessageSystem *mesgsys, void **user_data) { @@ -4435,6 +4422,10 @@ void script_question_cb(S32 option, void* user_data) notify_cautioned_script_question(cbdata, orig, allowed); } + if ( option == 2 ) + { + gMuteListp->add(LLMute(cbdata->mItemID, cbdata->mObjectName, LLMute::OBJECT)); + } delete cbdata; } diff --git a/linden/indra/newview/llviewermessage.h b/linden/indra/newview/llviewermessage.h index 535d6cb..c271de7 100644 --- a/linden/indra/newview/llviewermessage.h +++ b/linden/indra/newview/llviewermessage.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -87,12 +87,10 @@ void process_sound_trigger(LLMessageSystem *mesgsys, void **user_data); void process_preload_sound( LLMessageSystem *mesgsys, void **user_data); void process_attached_sound( LLMessageSystem *mesgsys, void **user_data); void process_attached_sound_gain_change( LLMessageSystem *mesgsys, void **user_data); -//void process_attached_sound_cutoff_radius( LLMessageSystem *mesgsys, void **user_data); void process_energy_statistics(LLMessageSystem *mesgsys, void **user_data); void process_health_message(LLMessageSystem *mesgsys, void **user_data); void process_sim_stats(LLMessageSystem *mesgsys, void **user_data); void process_shooter_agent_hit(LLMessageSystem* msg, void** user_data); -void process_avatar_info_request(LLMessageSystem *mesgsys, void **user_data); void process_avatar_animation(LLMessageSystem *mesgsys, void **user_data); void process_avatar_appearance(LLMessageSystem *mesgsys, void **user_data); void process_camera_constraint(LLMessageSystem *mesgsys, void **user_data); diff --git a/linden/indra/newview/llviewernetwork.cpp b/linden/indra/newview/llviewernetwork.cpp index 3652ebb..bca7415 100644 --- a/linden/indra/newview/llviewernetwork.cpp +++ b/linden/indra/newview/llviewernetwork.cpp @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -45,54 +45,30 @@ LLGridData gGridInfo[GRID_INFO_COUNT] = "util.agni.lindenlab.com", "https://login.agni.lindenlab.com/cgi-bin/login.cgi", "https://secondlife.com/helpers/" }, - { "DMZ", - "util.dmz.lindenlab.com", - "https://login.dmz.lindenlab.com/cgi-bin/login.cgi", - "http://dmz-secondlife.webdev.lindenlab.com/helpers/" }, - { "Siva", - "util.siva.lindenlab.com", - "https://login.siva.lindenlab.com/cgi-bin/login.cgi", - "http://siva-secondlife.webdev.lindenlab.com/helpers/" }, + { "Aruna", + "util.aruna.lindenlab.com", + "https://login.aruna.lindenlab.com/cgi-bin/login.cgi", + "http://aruna-secondlife.webdev.lindenlab.com/helpers/" }, { "Durga", "util.durga.lindenlab.com", "https://login.durga.lindenlab.com/cgi-bin/login.cgi", "http://durga-secondlife.webdev.lindenlab.com/helpers/" }, - { "Shakti", - "util.shakti.lindenlab.com", - "https://login.shakti.lindenlab.com/cgi-bin/login.cgi", - "http://shakti-secondlife.webdev.lindenlab.com/helpers/" }, - { "Soma", - "util.soma.lindenlab.com", - "https://login.soma.lindenlab.com/cgi-bin/login.cgi", - "http://soma-secondlife.webdev.lindenlab.com/helpers/" }, { "Ganga", "util.ganga.lindenlab.com", "https://login.ganga.lindenlab.com/cgi-bin/login.cgi", "http://ganga-secondlife.webdev.lindenlab.com/helpers/" }, - { "Vaak", - "util.vaak.lindenlab.com", - "https://login.vaak.lindenlab.com/cgi-bin/login.cgi", - "http://vaak-secondlife.webdev.lindenlab.com/helpers/" }, - { "Uma", - "util.uma.lindenlab.com", - "https://login.uma.lindenlab.com/cgi-bin/login.cgi", - "http://uma-secondlife.webdev.lindenlab.com/helpers/" }, + { "Mitra", + "util.mitra.lindenlab.com", + "https://login.mitra.lindenlab.com/cgi-bin/login.cgi", + "http://mitra-secondlife.webdev.lindenlab.com/helpers/" }, { "Mohini", "util.mohini.lindenlab.com", "https://login.mohini.lindenlab.com/cgi-bin/login.cgi", "http://mohini-secondlife.webdev.lindenlab.com/helpers/" }, - { "Yami", - "util.yami.lindenlab.com", - "https://login.yami.lindenlab.com/cgi-bin/login.cgi", - "http://yami-secondlife.webdev.lindenlab.com/helpers/" }, { "Nandi", "util.nandi.lindenlab.com", "https://login.nandi.lindenlab.com/cgi-bin/login.cgi", "http://nandi-secondlife.webdev.lindenlab.com/helpers/" }, - { "Mitra", - "util.mitra.lindenlab.com", - "https://login.mitra.lindenlab.com/cgi-bin/login.cgi", - "http://mitra-secondlife.webdev.lindenlab.com/helpers/" }, { "Radha", "util.radha.lindenlab.com", "https://login.radha.lindenlab.com/cgi-bin/login.cgi", @@ -101,10 +77,30 @@ LLGridData gGridInfo[GRID_INFO_COUNT] = "util.ravi.lindenlab.com", "https://login.ravi.lindenlab.com/cgi-bin/login.cgi", "http://ravi-secondlife.webdev.lindenlab.com/helpers/" }, - { "Aruna", - "util.aruna.lindenlab.com", - "https://login.aruna.lindenlab.com/cgi-bin/login.cgi", - "http://aruna-secondlife.webdev.lindenlab.com/helpers/" }, + { "Siva", + "util.siva.lindenlab.com", + "https://login.siva.lindenlab.com/cgi-bin/login.cgi", + "http://siva-secondlife.webdev.lindenlab.com/helpers/" }, + { "Shakti", + "util.shakti.lindenlab.com", + "https://login.shakti.lindenlab.com/cgi-bin/login.cgi", + "http://shakti-secondlife.webdev.lindenlab.com/helpers/" }, + { "Soma", + "util.soma.lindenlab.com", + "https://login.soma.lindenlab.com/cgi-bin/login.cgi", + "http://soma-secondlife.webdev.lindenlab.com/helpers/" }, + { "Uma", + "util.uma.lindenlab.com", + "https://login.uma.lindenlab.com/cgi-bin/login.cgi", + "http://uma-secondlife.webdev.lindenlab.com/helpers/" }, + { "Vaak", + "util.vaak.lindenlab.com", + "https://login.vaak.lindenlab.com/cgi-bin/login.cgi", + "http://vaak-secondlife.webdev.lindenlab.com/helpers/" }, + { "Yami", + "util.yami.lindenlab.com", + "https://login.yami.lindenlab.com/cgi-bin/login.cgi", + "http://yami-secondlife.webdev.lindenlab.com/helpers/" }, { "Local", "localhost", "https://login.dmz.lindenlab.com/cgi-bin/login.cgi", diff --git a/linden/indra/newview/llviewernetwork.h b/linden/indra/newview/llviewernetwork.h index 034e4c6..87678f6 100644 --- a/linden/indra/newview/llviewernetwork.h +++ b/linden/indra/newview/llviewernetwork.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -40,21 +40,20 @@ enum EGridInfo GRID_INFO_NONE, GRID_INFO_ADITI, GRID_INFO_AGNI, - GRID_INFO_DMZ, - GRID_INFO_SIVA, + GRID_INFO_ARUNA, GRID_INFO_DURGA, - GRID_INFO_SHAKTI, - GRID_INFO_SOMA, GRID_INFO_GANGA, - GRID_INFO_VAAK, - GRID_INFO_UMA, + GRID_INFO_MITRA, GRID_INFO_MOHINI, - GRID_INFO_YAMI, GRID_INFO_NANDI, - GRID_INFO_MITRA, GRID_INFO_RADHA, GRID_INFO_RAVI, - GRID_INFO_ARUNA, + GRID_INFO_SIVA, + GRID_INFO_SHAKTI, + GRID_INFO_SOMA, + GRID_INFO_UMA, + GRID_INFO_VAAK, + GRID_INFO_YAMI, GRID_INFO_LOCAL, GRID_INFO_OTHER, // IP address set via -user or other command line option GRID_INFO_COUNT diff --git a/linden/indra/newview/llviewerobject.cpp b/linden/indra/newview/llviewerobject.cpp index 8dcf29b..50ab57c 100644 --- a/linden/indra/newview/llviewerobject.cpp +++ b/linden/indra/newview/llviewerobject.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -2343,8 +2343,19 @@ void LLViewerObject::requestInventory() doInventoryCallback(); } // throw away duplicate requests - else if (! mInventoryPending) + else { + fetchInventoryFromServer(); + } +} + +void LLViewerObject::fetchInventoryFromServer() +{ + if (!mInventoryPending) + { + delete mInventory; + mInventory = NULL; + mInventoryDirty = FALSE; LLMessageSystem* msg = gMessageSystem; msg->newMessageFast(_PREHASH_RequestTaskInventory); msg->nextBlockFast(_PREHASH_AgentData); @@ -2631,6 +2642,9 @@ LLInventoryObject* LLViewerObject::getInventoryRoot() LLViewerInventoryItem* LLViewerObject::getInventoryItemByAsset(const LLUUID& asset_id) { + if (mInventoryDirty) + llwarns << "Peforming inventory lookup for object " << mID << " that has dirty inventory!" << llendl; + LLViewerInventoryItem* rv = NULL; if(mInventory) { @@ -2717,7 +2731,7 @@ BOOL LLViewerObject::updateLOD() // Update volume of looping sounds if (mAudioSourcep && mAudioSourcep->isLoop()) { - F32 volume = mAudioGain * gSavedSettings.getF32("AudioLevelSFX"); + F32 volume = gSavedSettings.getBOOL("MuteSounds") ? 0.f : (mAudioGain * gSavedSettings.getF32("AudioLevelSFX")); mAudioSourcep->setGain(volume); } return FALSE; @@ -4228,7 +4242,7 @@ void LLViewerObject::setAttachedSound(const LLUUID &audio_uuid, const LLUUID& ow { BOOL queue = flags & LL_SOUND_FLAG_QUEUE; mAudioGain = gain; - F32 volume = gain * gSavedSettings.getF32("AudioLevelSFX"); + F32 volume = gSavedSettings.getBOOL("MuteSounds") ? 0.f : gain * gSavedSettings.getF32("AudioLevelSFX"); mAudioSourcep->setGain(volume); mAudioSourcep->setLoop(flags & LL_SOUND_FLAG_LOOP); mAudioSourcep->setSyncMaster(flags & LL_SOUND_FLAG_SYNC_MASTER); @@ -4267,7 +4281,7 @@ void LLViewerObject::adjustAudioGain(const F32 gain) if (mAudioSourcep) { mAudioGain = gain; - F32 volume = mAudioGain * gSavedSettings.getF32("AudioLevelSFX"); + F32 volume = gSavedSettings.getBOOL("MuteSounds") ? 0.f : mAudioGain * gSavedSettings.getF32("AudioLevelSFX"); mAudioSourcep->setGain(volume); } } diff --git a/linden/indra/newview/llviewerobject.h b/linden/indra/newview/llviewerobject.h index 4e2cee0..36c6a21 100644 --- a/linden/indra/newview/llviewerobject.h +++ b/linden/indra/newview/llviewerobject.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -373,6 +373,7 @@ public: BOOL isInventoryPending() { return mInventoryPending; } void clearInventoryListeners(); void requestInventory(); + void fetchInventoryFromServer(); static void processTaskInv(LLMessageSystem* msg, void** user_data); void removeInventory(const LLUUID& item_id); diff --git a/linden/indra/newview/llviewerobjectlist.cpp b/linden/indra/newview/llviewerobjectlist.cpp index 548b098..df90954 100644 --- a/linden/indra/newview/llviewerobjectlist.cpp +++ b/linden/indra/newview/llviewerobjectlist.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerobjectlist.h b/linden/indra/newview/llviewerobjectlist.h index 7edde8b..d08dc9c 100644 --- a/linden/indra/newview/llviewerobjectlist.h +++ b/linden/indra/newview/llviewerobjectlist.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerparcelmgr.cpp b/linden/indra/newview/llviewerparcelmgr.cpp index a62af15..6ec29ae 100644 --- a/linden/indra/newview/llviewerparcelmgr.cpp +++ b/linden/indra/newview/llviewerparcelmgr.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -66,6 +66,7 @@ #include "llworld.h" #include "lloverlaybar.h" #include "roles_constants.h" +#include "llweb.h" const F32 PARCEL_COLLISION_DRAW_SECS = 1.f; @@ -265,23 +266,6 @@ void LLViewerParcelMgr::getDisplayInfo(S32* area_out, S32* claim_out, *dwell_out = dwell; } -void LLViewerParcelMgr::getPrimInfo(S32 &sw_max, S32 &sw_total, S32 &max, S32 &total, S32 &owner, S32 &group, S32 &other, S32& selected, F32 &parcel_object_bonus, S32 &other_clean) -{ - if (mSelected && mCurrentParcel) - { - sw_max = mCurrentParcel->getSimWideMaxPrimCapacity(); - sw_total = mCurrentParcel->getSimWidePrimCount(); - max = llround(mCurrentParcel->getMaxPrimCapacity()*mCurrentParcel->getParcelPrimBonus()); - total = mCurrentParcel->getPrimCount(); - owner = mCurrentParcel->getOwnerPrimCount(); - group = mCurrentParcel->getGroupPrimCount(); - other = mCurrentParcel->getOtherPrimCount(); - selected = mCurrentParcel->getSelectedPrimCount(); - parcel_object_bonus = mCurrentParcel->getParcelPrimBonus(); - other_clean = mCurrentParcel->getCleanOtherTime(); - } -} - S32 LLViewerParcelMgr::getSelectedArea() const { S32 rv = 0; @@ -703,6 +687,7 @@ F32 LLViewerParcelMgr::agentDrawDistance() const BOOL LLViewerParcelMgr::isOwnedAt(const LLVector3d& pos_global) const { + if (!gWorldp) return FALSE; LLViewerRegion* region = gWorldp->getRegionFromPosGlobal( pos_global ); if (!region) return FALSE; @@ -716,6 +701,7 @@ BOOL LLViewerParcelMgr::isOwnedAt(const LLVector3d& pos_global) const BOOL LLViewerParcelMgr::isOwnedSelfAt(const LLVector3d& pos_global) const { + if (!gWorldp) return FALSE; LLViewerRegion* region = gWorldp->getRegionFromPosGlobal( pos_global ); if (!region) return FALSE; @@ -729,6 +715,7 @@ BOOL LLViewerParcelMgr::isOwnedSelfAt(const LLVector3d& pos_global) const BOOL LLViewerParcelMgr::isOwnedOtherAt(const LLVector3d& pos_global) const { + if (!gWorldp) return FALSE; LLViewerRegion* region = gWorldp->getRegionFromPosGlobal( pos_global ); if (!region) return FALSE; @@ -742,6 +729,7 @@ BOOL LLViewerParcelMgr::isOwnedOtherAt(const LLVector3d& pos_global) const BOOL LLViewerParcelMgr::isSoundLocal(const LLVector3d& pos_global) const { + if (!gWorldp) return FALSE; LLViewerRegion* region = gWorldp->getRegionFromPosGlobal( pos_global ); if (!region) return FALSE; @@ -785,6 +773,7 @@ BOOL LLViewerParcelMgr::canHearSound(const LLVector3d &pos_global) const BOOL LLViewerParcelMgr::inAgentParcel(const LLVector3d &pos_global) const { + if (!gWorldp) return FALSE; LLViewerRegion* region = gWorldp->getRegionFromPosGlobal(pos_global); if (region != gAgent.getRegion()) { @@ -842,7 +831,8 @@ void LLViewerParcelMgr::render() { // Rendering is done in agent-coordinates, so need to supply // an appropriate offset to the render code. - LLViewerRegion *regionp = gWorldp->getRegionFromPosGlobal( mWestSouth ); + if (!gWorldp) return; + LLViewerRegion* regionp = gWorldp->getRegionFromPosGlobal(mWestSouth); if (!regionp) return; renderHighlightSegments(mHighlightSegments, regionp); @@ -874,6 +864,7 @@ void LLViewerParcelMgr::sendParcelAccessListRequest(U32 flags) return; } + if(!gWorldp) return; LLViewerRegion *region = gWorldp->getRegionFromPosGlobal( mWestSouth ); if (!region) return; @@ -909,6 +900,7 @@ void LLViewerParcelMgr::sendParcelDwellRequest() return; } + if(!gWorldp) return; LLViewerRegion *region = gWorldp->getRegionFromPosGlobal( mWestSouth ); if (!region) return; @@ -941,6 +933,7 @@ void LLViewerParcelMgr::sendParcelGodForceOwner(const LLUUID& owner_id) east_north_region_check.mdV[VX] -= 0.5; east_north_region_check.mdV[VY] -= 0.5; + if(!gWorldp) return; LLViewerRegion *region = gWorldp->getRegionFromPosGlobal( mWestSouth ); if (!region) { @@ -997,7 +990,8 @@ void LLViewerParcelMgr::sendParcelGodForceToContent() gViewerWindow->alertXml("CannotContentifyNothingSelected"); return; } - LLViewerRegion *region = gWorldp->getRegionFromPosGlobal( mWestSouth ); + if(!gWorldp) return; + LLViewerRegion* region = gWorldp->getRegionFromPosGlobal( mWestSouth ); if (!region) { gViewerWindow->alertXml("CannotContentifyNoRegion"); @@ -1022,6 +1016,7 @@ void LLViewerParcelMgr::sendParcelRelease() return; } + if(!gWorldp) return; LLViewerRegion *region = gWorldp->getRegionFromPosGlobal( mWestSouth ); if (!region) { @@ -1084,6 +1079,7 @@ LLViewerParcelMgr::ParcelBuyInfo* LLViewerParcelMgr::setupParcelBuy( return NULL; } + if(!gWorldp) return NULL; LLViewerRegion *region = gWorldp->getRegionFromPosGlobal( mWestSouth ); if (!region) { @@ -1194,6 +1190,7 @@ void LLViewerParcelMgr::sendParcelDeed(const LLUUID& group_id) gViewerWindow->alertXml("CannotDeedLandNoGroup"); return; } + if(!gWorldp) return; LLViewerRegion *region = gWorldp->getRegionFromPosGlobal( mWestSouth ); if (!region) { @@ -1261,7 +1258,7 @@ const LLString& LLViewerParcelMgr::getAgentParcelName() const void LLViewerParcelMgr::sendParcelPropertiesUpdate(LLParcel* parcel) { if (!parcel) return; - + if(!gWorldp) return; LLViewerRegion *region = gWorldp->getRegionFromPosGlobal( mWestSouth ); if (!region) return; @@ -1287,7 +1284,8 @@ void LLViewerParcelMgr::sendParcelPropertiesUpdate(LLParcel* parcel) void LLViewerParcelMgr::requestHoverParcelProperties(const LLVector3d& pos) { - LLViewerRegion *region = gWorldp->getRegionFromPosGlobal( pos ); + if(!gWorldp) return; + LLViewerRegion* region = gWorldp->getRegionFromPosGlobal( pos ); if (!region) { return; @@ -1539,7 +1537,8 @@ void LLViewerParcelMgr::processParcelProperties(LLMessageSystem *msg, void **use (request_result == PARCEL_RESULT_MULTIPLE); // Select the whole parcel - LLViewerRegion *region = gWorldp->getRegion( msg->getSender() ); + if(!gWorldp) return; + LLViewerRegion* region = gWorldp->getRegion( msg->getSender() ); if (region) { if (!snap_selection) @@ -1724,6 +1723,10 @@ void LLViewerParcelMgr::processParcelProperties(LLMessageSystem *msg, void **use std::string mediaUrl = std::string ( parcel->getMediaURL () ); LLString::trim(mediaUrl); + // clean spaces and whatnot + mediaUrl = LLWeb::escapeURL(mediaUrl); + + // something changed LLMediaEngine* me = LLMediaEngine::getInstance(); if ( ( me->getUrl () != mediaUrl ) @@ -1841,6 +1844,10 @@ void prepare_video(const LLParcel *parcel) { mediaUrl = std::string ( parcel->getMediaURL () ); } + + // clean spaces and whatnot + mediaUrl = LLWeb::escapeURL(mediaUrl); + LLMediaEngine::getInstance ()->setUrl ( mediaUrl ); LLMediaEngine::getInstance ()->setImageUUID ( parcel->getMediaID () ); LLMediaEngine::getInstance ()->setAutoScaled ( parcel->getMediaAutoScale () ? TRUE : FALSE ); // (U8 instead of BOOL for future expansion) @@ -1987,7 +1994,8 @@ void LLViewerParcelMgr::sendParcelAccessListUpdate(U32 which) return; } - LLViewerRegion *region = gWorldp->getRegionFromPosGlobal( mWestSouth ); + if(!gWorldp) return; + LLViewerRegion* region = gWorldp->getRegionFromPosGlobal( mWestSouth ); if (!region) return; LLMessageSystem* msg = gMessageSystem; @@ -2178,6 +2186,7 @@ void LLViewerParcelMgr::startReleaseLand() } LLVector3d parcel_center = (mWestSouth + mEastNorth) / 2.0; + if(!gWorldp) return; LLViewerRegion* region = gWorldp->getRegionFromPosGlobal(parcel_center); if (!region) { @@ -2282,6 +2291,7 @@ void LLViewerParcelMgr::callbackDivideLand(S32 option, void* data) LLViewerParcelMgr* self = (LLViewerParcelMgr*)data; LLVector3d parcel_center = (self->mWestSouth + self->mEastNorth) / 2.0; + if(!gWorldp) return; LLViewerRegion* region = gWorldp->getRegionFromPosGlobal(parcel_center); if (!region) { @@ -2340,6 +2350,7 @@ void LLViewerParcelMgr::callbackJoinLand(S32 option, void* data) LLViewerParcelMgr* self = (LLViewerParcelMgr*)data; LLVector3d parcel_center = (self->mWestSouth + self->mEastNorth) / 2.0; + if(!gWorldp) return; LLViewerRegion* region = gWorldp->getRegionFromPosGlobal(parcel_center); if (!region) { @@ -2388,6 +2399,7 @@ void LLViewerParcelMgr::startDeedLandToGroup() } LLVector3d parcel_center = (mWestSouth + mEastNorth) / 2.0; + if(!gWorldp) return; LLViewerRegion* region = gWorldp->getRegionFromPosGlobal(parcel_center); if (!region) { diff --git a/linden/indra/newview/llviewerparcelmgr.h b/linden/indra/newview/llviewerparcelmgr.h index ddf758e..88652d6 100644 --- a/linden/indra/newview/llviewerparcelmgr.h +++ b/linden/indra/newview/llviewerparcelmgr.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -134,8 +134,6 @@ public: void getDisplayInfo(S32* area, S32* claim, S32* rent, BOOL* for_sale, F32* dwell); - void getPrimInfo(S32 &sw_max, S32 &sw_total, S32 &max, S32 &total, S32 &owner, S32 &group, S32 &other, S32& selected, F32 &parcel_object_bonus, S32 &other_clean); - // Returns selected area S32 getSelectedArea() const; diff --git a/linden/indra/newview/llviewerparceloverlay.cpp b/linden/indra/newview/llviewerparceloverlay.cpp index a447680..e1373d0 100644 --- a/linden/indra/newview/llviewerparceloverlay.cpp +++ b/linden/indra/newview/llviewerparceloverlay.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerparceloverlay.h b/linden/indra/newview/llviewerparceloverlay.h index 7c1440e..40e488f 100644 --- a/linden/indra/newview/llviewerparceloverlay.h +++ b/linden/indra/newview/llviewerparceloverlay.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerpartsim.cpp b/linden/indra/newview/llviewerpartsim.cpp index 2c0202e..571e0b4 100644 --- a/linden/indra/newview/llviewerpartsim.cpp +++ b/linden/indra/newview/llviewerpartsim.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerpartsim.h b/linden/indra/newview/llviewerpartsim.h index 8baeb85..dbc0fce 100644 --- a/linden/indra/newview/llviewerpartsim.h +++ b/linden/indra/newview/llviewerpartsim.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerpartsource.cpp b/linden/indra/newview/llviewerpartsource.cpp index 1f1eadf..6c93e75 100644 --- a/linden/indra/newview/llviewerpartsource.cpp +++ b/linden/indra/newview/llviewerpartsource.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerpartsource.h b/linden/indra/newview/llviewerpartsource.h index 9dc4ac3..cb12517 100644 --- a/linden/indra/newview/llviewerpartsource.h +++ b/linden/indra/newview/llviewerpartsource.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerprecompiledheaders.cpp b/linden/indra/newview/llviewerprecompiledheaders.cpp index 6cd3a9e..f7d84a5 100644 --- a/linden/indra/newview/llviewerprecompiledheaders.cpp +++ b/linden/indra/newview/llviewerprecompiledheaders.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerprecompiledheaders.h b/linden/indra/newview/llviewerprecompiledheaders.h index a6fe9f7..db7baaa 100644 --- a/linden/indra/newview/llviewerprecompiledheaders.h +++ b/linden/indra/newview/llviewerprecompiledheaders.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -173,7 +173,6 @@ #include "llinstantmessage.h" #include "llinvite.h" //#include "llloginflags.h" -#include "lllogtextmessage.h" #include "llmail.h" #include "llmessagethrottle.h" #include "llnamevalue.h" diff --git a/linden/indra/newview/llviewerregion.cpp b/linden/indra/newview/llviewerregion.cpp index 54e7db7..f8b8f76 100644 --- a/linden/indra/newview/llviewerregion.cpp +++ b/linden/indra/newview/llviewerregion.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -50,6 +50,7 @@ #include "lldir.h" #include "lleventpoll.h" #include "llfloatergodtools.h" +#include "llfloaterreleasemsg.h" #include "llfloaterreporter.h" #include "llfloaterregioninfo.h" #include "llhttpnode.h" @@ -366,6 +367,11 @@ F32 LLViewerRegion::getWaterHeight() const return mLandp->getWaterHeight(); } +BOOL LLViewerRegion::isVoiceEnabled() const +{ + return (getRegionFlags() & REGION_FLAGS_ALLOW_VOICE); +} + void LLViewerRegion::setRegionFlags(U32 flags) { mRegionFlags = flags; @@ -841,6 +847,7 @@ public: const LLSD& context, const LLSD& input) const { + if(!gWorldp) return; LLHost host(input["sender"].asString()); LLViewerRegion* region = gWorldp->getRegion(host); if( !region ) @@ -1302,6 +1309,13 @@ public: mRegion->setCapability(iter->first, iter->second); llinfos << "BaseCapabilitiesComplete::result got capability for " << iter->first << llendl; + + /* HACK we're waiting for the ServerReleaseNotes */ + if ((iter->first == "ServerReleaseNotes") && (LLFloaterReleaseMsg::sDisplayMessage)) + { + LLFloaterReleaseMsg::show(); + LLFloaterReleaseMsg::sDisplayMessage = false; + } } if (STATE_SEED_GRANTED_WAIT == LLStartUp::getStartupState()) @@ -1340,6 +1354,7 @@ void LLViewerRegion::setSeedCapability(const std::string& url) capabilityNames.append("CopyInventoryFromNotecard"); capabilityNames.append("DispatchRegionInfo"); capabilityNames.append("EventQueueGet"); + capabilityNames.append("GroupProposalBallot"); capabilityNames.append("MapLayer"); capabilityNames.append("MapLayerGod"); capabilityNames.append("NewFileAgentInventory"); @@ -1354,6 +1369,7 @@ void LLViewerRegion::setSeedCapability(const std::string& url) capabilityNames.append("SendUserReport"); capabilityNames.append("SendUserReportWithScreenshot"); capabilityNames.append("ServerReleaseNotes"); + capabilityNames.append("StartGroupProposal"); capabilityNames.append("UpdateGestureAgentInventory"); capabilityNames.append("UpdateNotecardAgentInventory"); capabilityNames.append("UpdateScriptAgentInventory"); diff --git a/linden/indra/newview/llviewerregion.h b/linden/indra/newview/llviewerregion.h index 9f59197..b8e19cc 100644 --- a/linden/indra/newview/llviewerregion.h +++ b/linden/indra/newview/llviewerregion.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -109,6 +109,8 @@ public: void setWaterHeight(F32 water_level); F32 getWaterHeight() const; + BOOL isVoiceEnabled() const; + void setBillableFactor(F32 billable_factor) { mBillableFactor = billable_factor; } F32 getBillableFactor() const { return mBillableFactor; } diff --git a/linden/indra/newview/llviewerstats.cpp b/linden/indra/newview/llviewerstats.cpp index 2d2f951..ea24d9e 100644 --- a/linden/indra/newview/llviewerstats.cpp +++ b/linden/indra/newview/llviewerstats.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -52,7 +52,7 @@ #include "lldebugview.h" #include "llfasttimerview.h" #include "llviewerregion.h" -#include "llfloaterhtmlhelp.h" +#include "llfloaterhtml.h" #include "llworld.h" #include "llfeaturemanager.h" #if LL_WINDOWS && LL_LCD_COMPILE @@ -187,7 +187,7 @@ const StatAttributes STAT_INFO[LLViewerStats::ST_COUNT] = // ST_CROSSING_MAX StatAttributes("CROSSING_MAX", FALSE, FALSE), // ST_LIBXUL_WIDGET_USED - StatAttributes("LibXUL Widget used", FALSE, FALSE), + StatAttributes("LibXUL Widget used", FALSE, FALSE), // Unused // ST_WINDOW_WIDTH StatAttributes("Window width", FALSE, FALSE), // ST_WINDOW_HEIGHT @@ -575,14 +575,6 @@ void update_statistics(U32 frame_count) gViewerStats->mTexturePacketsStat.addValue(LLViewerImageList::sTexturePackets); - // log when the LibXUL (aka Mozilla) widget is used and opened so we can monitor framerate changes - #if LL_LIBXUL_ENABLED - { - BOOL result = gViewerHtmlHelp.getFloaterOpened(); - gViewerStats->setStat(LLViewerStats::ST_LIBXUL_WIDGET_USED, (F64)result); - } - #endif - { static F32 visible_avatar_frames = 0.f; static F32 avg_visible_avatars = 0; diff --git a/linden/indra/newview/llviewerstats.h b/linden/indra/newview/llviewerstats.h index 7b47521..7d3698c 100644 --- a/linden/indra/newview/llviewerstats.h +++ b/linden/indra/newview/llviewerstats.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -154,7 +154,7 @@ public: ST_RENDER_SECS = 50, ST_CROSSING_AVG = 51, ST_CROSSING_MAX = 52, - ST_LIBXUL_WIDGET_USED = 53, + ST_LIBXUL_WIDGET_USED = 53, // Unused ST_WINDOW_WIDTH = 54, ST_WINDOW_HEIGHT = 55, ST_TEX_BAKES = 56, diff --git a/linden/indra/newview/llviewertexteditor.cpp b/linden/indra/newview/llviewertexteditor.cpp index b421c73..fcc73b4 100644 --- a/linden/indra/newview/llviewertexteditor.cpp +++ b/linden/indra/newview/llviewertexteditor.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -606,54 +606,50 @@ void LLViewerTextEditor::makePristine() BOOL LLViewerTextEditor::handleToolTip(S32 x, S32 y, LLString& msg, LLRect* sticky_rect_screen) { - if (pointInView(x, y) && getVisible()) + for (child_list_const_iter_t child_iter = getChildList()->begin(); + child_iter != getChildList()->end(); ++child_iter) { - for (child_list_const_iter_t child_iter = getChildList()->begin(); - child_iter != getChildList()->end(); ++child_iter) + LLView *viewp = *child_iter; + S32 local_x = x - viewp->getRect().mLeft; + S32 local_y = y - viewp->getRect().mBottom; + if( viewp->handleToolTip(local_x, local_y, msg, sticky_rect_screen ) ) { - LLView *viewp = *child_iter; - S32 local_x = x - viewp->getRect().mLeft; - S32 local_y = y - viewp->getRect().mBottom; - if( viewp->handleToolTip(local_x, local_y, msg, sticky_rect_screen ) ) - { - return TRUE; - } + return TRUE; } + } + + if( mSegments.empty() ) + { + return TRUE; + } - if( mSegments.empty() ) + LLTextSegment* cur_segment = getSegmentAtLocalPos( x, y ); + if( cur_segment ) + { + BOOL has_tool_tip = FALSE; + if( cur_segment->getStyle().getIsEmbeddedItem() ) { - return TRUE; + LLWString wtip; + has_tool_tip = getEmbeddedItemToolTipAtPos(cur_segment->getStart(), wtip); + msg = wstring_to_utf8str(wtip); } - - LLTextSegment* cur_segment = getSegmentAtLocalPos( x, y ); - if( cur_segment ) + else { - BOOL has_tool_tip = FALSE; - if( cur_segment->getStyle().getIsEmbeddedItem() ) - { - LLWString wtip; - has_tool_tip = getEmbeddedItemToolTipAtPos(cur_segment->getStart(), wtip); - msg = wstring_to_utf8str(wtip); - } - else - { - has_tool_tip = cur_segment->getToolTip( msg ); - } - if( has_tool_tip ) - { - // Just use a slop area around the cursor - // Convert rect local to screen coordinates - S32 SLOP = 8; - localPointToScreen( - x - SLOP, y - SLOP, - &(sticky_rect_screen->mLeft), &(sticky_rect_screen->mBottom) ); - sticky_rect_screen->mRight = sticky_rect_screen->mLeft + 2 * SLOP; - sticky_rect_screen->mTop = sticky_rect_screen->mBottom + 2 * SLOP; - } + has_tool_tip = cur_segment->getToolTip( msg ); + } + if( has_tool_tip ) + { + // Just use a slop area around the cursor + // Convert rect local to screen coordinates + S32 SLOP = 8; + localPointToScreen( + x - SLOP, y - SLOP, + &(sticky_rect_screen->mLeft), &(sticky_rect_screen->mBottom) ); + sticky_rect_screen->mRight = sticky_rect_screen->mLeft + 2 * SLOP; + sticky_rect_screen->mTop = sticky_rect_screen->mBottom + 2 * SLOP; } - return TRUE; } - return FALSE; + return TRUE; } BOOL LLViewerTextEditor::handleMouseDown(S32 x, S32 y, MASK mask) @@ -760,9 +756,9 @@ BOOL LLViewerTextEditor::handleMouseDown(S32 x, S32 y, MASK mask) handled = TRUE; } - if (mTakesFocus) + if (hasTabStop()) { - setFocus( TRUE ); + setFocus(TRUE); handled = TRUE; } @@ -1017,11 +1013,7 @@ BOOL LLViewerTextEditor::handleDoubleClick(S32 x, S32 y, MASK mask) } } - if (mTakesFocus) - { - setFocus( TRUE ); - } - + setCursorAtLocalPos( x, y, FALSE ); deselect(); @@ -1363,7 +1355,11 @@ BOOL LLViewerTextEditor::openEmbeddedItem(LLInventoryItem* item, BOOL saved) void LLViewerTextEditor::openEmbeddedTexture( LLInventoryItem* item ) { // See if we can bring an existing preview to the front - if( !LLPreview::show( item->getUUID() ) ) + // *NOTE: Just for embedded Texture , we should use getAssetUUID(), + // not getUUID(), because LLPreviewTexture pass in AssetUUID into + // LLPreview constructor ItemUUID parameter. + + if( !LLPreview::show( item->getAssetUUID() ) ) { // There isn't one, so make a new preview if(item) @@ -1391,7 +1387,7 @@ void LLViewerTextEditor::openEmbeddedSound( LLInventoryItem* item ) const F32 SOUND_GAIN = 1.0f; if(gAudiop) { - F32 volume = SOUND_GAIN * gSavedSettings.getF32("AudioLevelSFX"); + F32 volume = gSavedSettings.getBOOL("MuteSounds") ? 0.f : (SOUND_GAIN * gSavedSettings.getF32("AudioLevelSFX")); gAudiop->triggerSound(item->getAssetUUID(), gAgentID, volume, lpos_global); } showCopyToInvDialog( item ); diff --git a/linden/indra/newview/llviewertexteditor.h b/linden/indra/newview/llviewertexteditor.h index f7abfc9..b09e92e 100644 --- a/linden/indra/newview/llviewertexteditor.h +++ b/linden/indra/newview/llviewertexteditor.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewertextureanim.cpp b/linden/indra/newview/llviewertextureanim.cpp index aca354f..bfa999c 100644 --- a/linden/indra/newview/llviewertextureanim.cpp +++ b/linden/indra/newview/llviewertextureanim.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewertextureanim.h b/linden/indra/newview/llviewertextureanim.h index cdf5b18..a12c241 100644 --- a/linden/indra/newview/llviewertextureanim.h +++ b/linden/indra/newview/llviewertextureanim.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerthrottle.cpp b/linden/indra/newview/llviewerthrottle.cpp index 1763cdd..75357ba 100644 --- a/linden/indra/newview/llviewerthrottle.cpp +++ b/linden/indra/newview/llviewerthrottle.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerthrottle.h b/linden/indra/newview/llviewerthrottle.h index 84a9a63..07ecf85 100644 --- a/linden/indra/newview/llviewerthrottle.h +++ b/linden/indra/newview/llviewerthrottle.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llvieweruictrlfactory.cpp b/linden/indra/newview/llvieweruictrlfactory.cpp index 663b4bf..e3162b1 100644 --- a/linden/indra/newview/llvieweruictrlfactory.cpp +++ b/linden/indra/newview/llvieweruictrlfactory.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llvieweruictrlfactory.h b/linden/indra/newview/llvieweruictrlfactory.h index 843e54d..abfb701 100644 --- a/linden/indra/newview/llvieweruictrlfactory.h +++ b/linden/indra/newview/llvieweruictrlfactory.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewervisualparam.cpp b/linden/indra/newview/llviewervisualparam.cpp index 62c5169..1eac683 100644 --- a/linden/indra/newview/llviewervisualparam.cpp +++ b/linden/indra/newview/llviewervisualparam.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewervisualparam.h b/linden/indra/newview/llviewervisualparam.h index a77a874..aced826 100644 --- a/linden/indra/newview/llviewervisualparam.h +++ b/linden/indra/newview/llviewervisualparam.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llviewerwindow.cpp b/linden/indra/newview/llviewerwindow.cpp index 86c43bf..a8ff246 100644 --- a/linden/indra/newview/llviewerwindow.cpp +++ b/linden/indra/newview/llviewerwindow.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -266,6 +266,8 @@ const S32 PICK_DIAMETER = 2 * PICK_HALF_WIDTH+1; const F32 MIN_DISPLAY_SCALE = 0.85f; +const S32 CONSOLE_BOTTOM_PAD = 40; + #ifdef SABINRIG /// ALL RIG STUFF bool rigControl = false; @@ -663,18 +665,17 @@ BOOL LLViewerWindow::handleMouseDown(LLWindow *window, LLCoordGL pos, MASK mask // Topmost view gets a chance before the hierarchy LLUICtrl* top_ctrl = gFocusMgr.getTopCtrl(); - BOOL mouse_over_top_ctrl = FALSE; if (top_ctrl) { S32 local_x, local_y; top_ctrl->screenPointToLocal( x, y, &local_x, &local_y ); if (top_ctrl->pointInView(local_x, local_y)) { - mouse_over_top_ctrl = TRUE; - if(top_ctrl->handleMouseDown(local_x, local_y, mask)) - { - return TRUE; - } + return top_ctrl->handleMouseDown(local_x, local_y, mask); + } + else + { + setTopCtrl(NULL); } } @@ -686,11 +687,6 @@ BOOL LLViewerWindow::handleMouseDown(LLWindow *window, LLCoordGL pos, MASK mask llinfos << "Left Mouse Down" << LLView::sMouseHandlerMessage << llendl; LLView::sMouseHandlerMessage = ""; } - if (top_ctrl && top_ctrl->hasFocus() && !mouse_over_top_ctrl) - { - // always defocus top view if we click off of it - top_ctrl->setFocus(FALSE); - } return TRUE; } else if (LLView::sDebugMouseHandling) @@ -698,12 +694,6 @@ BOOL LLViewerWindow::handleMouseDown(LLWindow *window, LLCoordGL pos, MASK mask llinfos << "Left Mouse Down not handled by view" << llendl; } - if (top_ctrl && top_ctrl->hasFocus() && !mouse_over_top_ctrl) - { - // always defocus top view if we click off of it - top_ctrl->setFocus(FALSE); - } - if (gDisconnected) { return FALSE; @@ -716,7 +706,7 @@ BOOL LLViewerWindow::handleMouseDown(LLWindow *window, LLCoordGL pos, MASK mask // This is necessary to force clicks in the world to cause edit // boxes that might have keyboard focus to relinquish it, and hence // cause a commit to update their value. JC - gFocusMgr.setKeyboardFocus(NULL, NULL); + gFocusMgr.setKeyboardFocus(NULL); return TRUE; } } @@ -760,18 +750,17 @@ BOOL LLViewerWindow::handleDoubleClick(LLWindow *window, LLCoordGL pos, MASK ma // Check for hit on UI. LLUICtrl* top_ctrl = gFocusMgr.getTopCtrl(); - BOOL mouse_over_top_ctrl = FALSE; if (top_ctrl) { S32 local_x, local_y; top_ctrl->screenPointToLocal( x, y, &local_x, &local_y ); if (top_ctrl->pointInView(local_x, local_y)) { - mouse_over_top_ctrl = TRUE; - if(top_ctrl->handleDoubleClick(local_x, local_y, mask)) - { - return TRUE; - } + return top_ctrl->handleDoubleClick(local_x, local_y, mask); + } + else + { + setTopCtrl(NULL); } } @@ -782,11 +771,6 @@ BOOL LLViewerWindow::handleDoubleClick(LLWindow *window, LLCoordGL pos, MASK ma llinfos << "Left Mouse Down" << LLView::sMouseHandlerMessage << llendl; LLView::sMouseHandlerMessage = ""; } - if (top_ctrl && top_ctrl->hasFocus() && !mouse_over_top_ctrl) - { - // always defocus top view if we click off of it - top_ctrl->setFocus(FALSE); - } return TRUE; } else if (LLView::sDebugMouseHandling) @@ -794,12 +778,6 @@ BOOL LLViewerWindow::handleDoubleClick(LLWindow *window, LLCoordGL pos, MASK ma llinfos << "Left Mouse Down not handled by view" << llendl; } - if (top_ctrl && top_ctrl->hasFocus() && !mouse_over_top_ctrl) - { - // always defocus top view if we click off of it - top_ctrl->setFocus(FALSE); - } - // Why is this here? JC 9/3/2002 if (gNoRender) { @@ -970,18 +948,17 @@ BOOL LLViewerWindow::handleRightMouseDown(LLWindow *window, LLCoordGL pos, MASK } LLUICtrl* top_ctrl = gFocusMgr.getTopCtrl(); - BOOL mouse_over_top_ctrl = FALSE; if (top_ctrl) { S32 local_x, local_y; top_ctrl->screenPointToLocal( x, y, &local_x, &local_y ); if (top_ctrl->pointInView(local_x, local_y)) { - mouse_over_top_ctrl = TRUE; - if(top_ctrl->handleRightMouseDown(local_x, local_y, mask)) - { - return TRUE; - } + return top_ctrl->handleRightMouseDown(local_x, local_y, mask); + } + else + { + setTopCtrl(NULL); } } @@ -992,11 +969,6 @@ BOOL LLViewerWindow::handleRightMouseDown(LLWindow *window, LLCoordGL pos, MASK llinfos << "Right Mouse Down" << LLView::sMouseHandlerMessage << llendl; LLView::sMouseHandlerMessage = ""; } - if (top_ctrl && top_ctrl->hasFocus() && !mouse_over_top_ctrl) - { - // always defocus top view if we click off of it - top_ctrl->setFocus(FALSE); - } return TRUE; } else if (LLView::sDebugMouseHandling) @@ -1004,12 +976,6 @@ BOOL LLViewerWindow::handleRightMouseDown(LLWindow *window, LLCoordGL pos, MASK llinfos << "Right Mouse Down not handled by view" << llendl; } - if (top_ctrl && top_ctrl->hasFocus() && !mouse_over_top_ctrl) - { - // always defocus top view if we click off of it - top_ctrl->setFocus(FALSE); - } - if (gToolMgr) { if(gToolMgr->getCurrentTool()->handleRightMouseDown( x, y, mask ) ) @@ -1017,7 +983,7 @@ BOOL LLViewerWindow::handleRightMouseDown(LLWindow *window, LLCoordGL pos, MASK // This is necessary to force clicks in the world to cause edit // boxes that might have keyboard focus to relinquish it, and hence // cause a commit to update their value. JC - gFocusMgr.setKeyboardFocus(NULL, NULL); + gFocusMgr.setKeyboardFocus(NULL); return TRUE; } } @@ -1266,7 +1232,7 @@ void LLViewerWindow::handleFocusLost(LLWindow *window) // JC - Leave keyboard focus, so if you're popping in and out editing // a script, you don't have to click in the editor again and again. - // gFocusMgr.setKeyboardFocus( NULL, NULL ); + // gFocusMgr.setKeyboardFocus( NULL ); gShowTextEditCursor = FALSE; // If losing focus while keys are down, reset them. @@ -1451,7 +1417,8 @@ void LLViewerWindow::handleDataCopy(LLWindow *window, S32 data_type, void *data) case SLURL_MESSAGE_TYPE: // received URL std::string url = (const char*)data; - if (LLURLDispatcher::dispatch(url)) + const bool from_external_browser = true; + if (LLURLDispatcher::dispatch(url, from_external_browser)) { // bring window to foreground, as it has just been "launched" from a URL mWindow->bringToFront(); @@ -1746,14 +1713,6 @@ void LLViewerWindow::initBase() gDebugView->setVisible(TRUE); mRootView->addChild(gDebugView); - // HUD elements just below floaters - LLRect hud_rect = full_window; - hud_rect.mTop -= 24; - hud_rect.mBottom += STATUS_BAR_HEIGHT; - gHUDView = new LLHUDView("hud_view", hud_rect); - gHUDView->setFollowsAll(); - mRootView->addChild(gHUDView); - // Add floater view at the end so it will be on top, and give it tab priority over others mRootView->addChild(gFloaterView, -1); mRootView->addChild(gSnapshotFloaterView); @@ -1823,6 +1782,22 @@ void adjust_rect_bottom_center(const LLString& control, const LLRect& window) } } + +void update_saved_window_size(const LLString& control,S32 delta_width, S32 delta_height) +{ + if (delta_width || delta_height ) + { + LLRect mXMLRect = gSavedSettings.getRect(control); + //hard code it all follows the right and top + mXMLRect.mRight += delta_width; + mXMLRect.mTop += delta_height; + mXMLRect.mLeft = llmax (0, mXMLRect.mLeft+delta_width); + mXMLRect.mBottom = llmax(0,mXMLRect.mBottom+delta_height); + gSavedSettings.setRect(control,mXMLRect); + } +} + + // Many rectangles can't be placed until we know the screen size. // These rectangles have their bottom-left corner as 0,0 void LLViewerWindow::adjustRectanglesForFirstUse(const LLRect& window) @@ -1871,27 +1846,10 @@ void LLViewerWindow::initWorldUI() S32 width = mRootView->getRect().getWidth(); LLRect full_window(0, height, width, 0); - if ( gToolBar == NULL ) // Don't re-enter if objects are alreay created + if ( gBottomPanel == NULL ) // Don't re-enter if objects are alreay created { - LLRect bar_rect(-1, STATUS_BAR_HEIGHT, width+1, -1); - gToolBar = new LLToolBar("toolbar", bar_rect); - - LLRect chat_bar_rect(-1,CHAT_BAR_HEIGHT, width+1, -1); - chat_bar_rect.translate(0, STATUS_BAR_HEIGHT-1); - gChatBar = new LLChatBar("chat", chat_bar_rect); - - bar_rect.translate(0, STATUS_BAR_HEIGHT-1); - bar_rect.translate(0, CHAT_BAR_HEIGHT-1); - gOverlayBar = new LLOverlayBar("overlay", bar_rect); - // panel containing chatbar, toolbar, and overlay, over floaters - LLRect bottom_rect(-1, 2*STATUS_BAR_HEIGHT + CHAT_BAR_HEIGHT, width+1, -1); - gBottomPanel = new LLBottomPanel("bottom panel", bottom_rect); - - // the order here is important - gBottomPanel->addChild(gChatBar); - gBottomPanel->addChild(gToolBar); - gBottomPanel->addChild(gOverlayBar); + gBottomPanel = new LLBottomPanel(mRootView->getRect()); mRootView->addChild(gBottomPanel); // View for hover information @@ -1923,8 +1881,7 @@ void LLViewerWindow::initWorldUI() mRootView->addChild(gMorphView); gMorphView->setVisible(FALSE); - gFloaterMute = new LLFloaterMute(); - gFloaterMute->setVisible(FALSE); + gFloaterMute = LLFloaterMute::getInstance(); LLWorldMapView::initClass(); @@ -2119,7 +2076,7 @@ void LLViewerWindow::reshape(S32 width, S32 height) glViewport(0, 0, width, height ); if (height > 0 && gCamera) - { + { gCamera->setViewHeightInPixels( height ); if (mWindow->getFullscreen()) { @@ -2132,6 +2089,9 @@ void LLViewerWindow::reshape(S32 width, S32 height) } } + // changes in window's width and hight + S32 delta_width = width - mWindowRect.getWidth(); + S32 delta_height = height - mWindowRect.getHeight(); // update our window rectangle mWindowRect.mRight = mWindowRect.mLeft + width; mWindowRect.mTop = mWindowRect.mBottom + height; @@ -2182,6 +2142,12 @@ void LLViewerWindow::reshape(S32 width, S32 height) { gSavedSettings.setS32("WindowWidth", window_size.mX); gSavedSettings.setS32("WindowHeight", window_size.mY); + if (!gFloaterMap) + { + update_saved_window_size("FloaterWorldMapRect",delta_width, delta_height); + update_saved_window_size("FloaterMapRect",delta_width, delta_height); + } + } } @@ -2205,11 +2171,11 @@ void LLViewerWindow::setNormalControlsVisible( BOOL visible ) gMenuBarView->setVisible( visible ); gMenuBarView->setEnabled( visible ); - // ...and set the menu color appropriately. - setMenuBackgroundColor(gAgent.getGodLevel() > GOD_NOT, - LLAppViewer::instance()->isInProductionGrid()); + // ...and set the menu color appropriately. + setMenuBackgroundColor(gAgent.getGodLevel() > GOD_NOT, + LLAppViewer::instance()->isInProductionGrid()); } - + if ( gStatusBar ) { gStatusBar->setVisible( visible ); @@ -2461,7 +2427,9 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask) { BOOL visible = ! gSavedSettings.getBOOL("ForceShowGrid"); gSavedSettings.setBOOL("ForceShowGrid", visible); - LLPanelLogin::loadLoginPage(); + + // Initialize visibility (and don't force visibility - use prefs) + LLPanelLogin::refreshLocation( false ); } } @@ -2482,6 +2450,16 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask) return TRUE; } + //if quit from menu, turn off the Keyboardmode for the menu. + if(LLMenuGL::getKeyboardMode()) + LLMenuGL::setKeyboardMode(FALSE); + + if (gFocusMgr.getTopCtrl()) + { + gFocusMgr.setTopCtrl(NULL); + return TRUE; + } + // *TODO: get this to play well with mouselook and hidden // cursor modes, etc, and re-enable. //if (gFocusMgr.getMouseCapture()) @@ -3022,23 +3000,9 @@ BOOL LLViewerWindow::handlePerFrameHover() } // Update rectangles for the various toolbars - if (gToolBar && gChatBar && gOverlayBar && gNotifyBoxView && gConsole) + if (gOverlayBar && gNotifyBoxView && gConsole) { LLRect bar_rect(-1, STATUS_BAR_HEIGHT, getWindowWidth()+1, -1); - if (gToolBar->getVisible()) - { - gToolBar->setRect(bar_rect); - bar_rect.translate(0, STATUS_BAR_HEIGHT-1); - } - - if (gChatBar->getVisible()) - { - // fix up the height - LLRect chat_bar_rect = bar_rect; - chat_bar_rect.mTop = chat_bar_rect.mBottom + CHAT_BAR_HEIGHT + 1; - gChatBar->setRect(chat_bar_rect); - bar_rect.translate(0, CHAT_BAR_HEIGHT-1); - } LLRect notify_box_rect = gNotifyBoxView->getRect(); notify_box_rect.mBottom = bar_rect.mBottom; @@ -3056,44 +3020,28 @@ BOOL LLViewerWindow::handlePerFrameHover() gFloaterView->setRect(floater_rect); } - if (gOverlayBar->getVisible()) + // snap floaters to top of chat bar/button strip + LLView* chatbar_and_buttons = gOverlayBar->getChildByName("chatbar_and_buttons", TRUE); + if (chatbar_and_buttons) { - LLRect overlay_rect = bar_rect; - overlay_rect.mTop = overlay_rect.mBottom + OVERLAY_BAR_HEIGHT; - - // Fitt's Law: Push buttons flush with bottom of screen if - // nothing else visible. - if (!gToolBar->getVisible() - && !gChatBar->getVisible()) - { - // *NOTE: this is highly depenent on the XML - // describing the position of the buttons - overlay_rect.translate(0, 0); - } - - gOverlayBar->setRect(overlay_rect); - gOverlayBar->updateRect(); - bar_rect.translate(0, gOverlayBar->getRect().getHeight()); - - gFloaterView->setSnapOffsetBottom(OVERLAY_BAR_HEIGHT); + // convert top/left corner of chatbar/buttons container to gFloaterView-relative coordinates + S32 top, left; + chatbar_and_buttons->localPointToOtherView( + chatbar_and_buttons->getLocalBoundingRect().mLeft, + chatbar_and_buttons->getLocalBoundingRect().mTop, + &left, + &top, + gFloaterView); + gFloaterView->setSnapOffsetBottom(top); } else { gFloaterView->setSnapOffsetBottom(0); } - // fix rectangle of bottom panel focus indicator - if(gBottomPanel && gBottomPanel->getFocusIndicator()) - { - LLRect focus_rect = gBottomPanel->getFocusIndicator()->getRect(); - focus_rect.mTop = (gToolBar->getVisible() ? STATUS_BAR_HEIGHT : 0) + - (gChatBar->getVisible() ? CHAT_BAR_HEIGHT : 0) - 2; - gBottomPanel->getFocusIndicator()->setRect(focus_rect); - } - // Always update console LLRect console_rect = gConsole->getRect(); - console_rect.mBottom = bar_rect.mBottom + 8; + console_rect.mBottom = gHUDView->getRect().mBottom + CONSOLE_BOTTOM_PAD; gConsole->reshape(console_rect.getWidth(), console_rect.getHeight()); gConsole->setRect(console_rect); } @@ -3671,13 +3619,6 @@ void LLViewerWindow::performPick() // if you are the parent parent = objectp; } - std::vector,std::allocator > > children = parent->getChildren(); - for( std::vector,std::allocator > >::iterator i= children.begin(); i!= children.end(); ++i ) - { - //go through - LLViewerObject* foo = *i; - foo->getRotation(); - } if (objectp->mbCanSelect) { te_offset = (te_offset == 16) ? NO_FACE : te_offset; @@ -4604,9 +4545,9 @@ void LLViewerWindow::drawMouselookInstructions() // These functions are here only because LLViewerWindow used to do the work that gFocusMgr does now. // They let other objects continue to work without change. -void LLViewerWindow::setKeyboardFocus(LLUICtrl* new_focus,void (*on_focus_lost)(LLUICtrl* old_focus)) +void LLViewerWindow::setKeyboardFocus(LLUICtrl* new_focus) { - gFocusMgr.setKeyboardFocus( new_focus, on_focus_lost ); + gFocusMgr.setKeyboardFocus( new_focus ); } LLUICtrl* LLViewerWindow::getKeyboardFocus() @@ -5076,7 +5017,7 @@ BOOL LLViewerWindow::changeDisplaySettings(BOOL fullscreen, LLCoordScreen size, } mIgnoreActivate = FALSE; - gFocusMgr.setKeyboardFocus(keyboard_focus, NULL); + gFocusMgr.setKeyboardFocus(keyboard_focus); mWantFullscreen = mWindow->getFullscreen(); mShowFullscreenProgress = FALSE; @@ -5276,16 +5217,22 @@ LLAlertDialog* LLViewerWindow::alertXmlEditText(const std::string& xml_filename, //////////////////////////////////////////////////////////////////////////// -LLBottomPanel::LLBottomPanel(const LLString &name, const LLRect &rect) : - LLPanel(name, rect, FALSE), +LLBottomPanel::LLBottomPanel(const LLRect &rect) : + LLPanel("", rect, FALSE), mIndicator(NULL) { // bottom panel is focus root, so Tab moves through the toolbar and button bar, and overlay setFocusRoot(TRUE); - // don't capture mouse clicks that don't hit a child - setMouseOpaque(FALSE); - setFollows(FOLLOWS_LEFT | FOLLOWS_RIGHT | FOLLOWS_BOTTOM); + // flag this panel as chrome so buttons don't grab keyboard focus setIsChrome(TRUE); + + mFactoryMap["toolbar"] = LLCallbackMap(createToolBar, NULL); + mFactoryMap["overlay"] = LLCallbackMap(createOverlayBar, NULL); + mFactoryMap["hud"] = LLCallbackMap(createHUD, NULL); + gUICtrlFactory->buildPanel(this, "panel_bars.xml", &getFactoryMap()); + + setOrigin(rect.mLeft, rect.mBottom); + reshape(rect.getWidth(), rect.getHeight()); } void LLBottomPanel::setFocusIndicator(LLView * indicator) @@ -5303,3 +5250,25 @@ void LLBottomPanel::draw() } LLPanel::draw(); } + +void* LLBottomPanel::createHUD(void* data) +{ + delete gHUDView; + gHUDView = new LLHUDView(); + return gHUDView; +} + + +void* LLBottomPanel::createOverlayBar(void* data) +{ + delete gOverlayBar; + gOverlayBar = new LLOverlayBar(); + return gOverlayBar; +} + +void* LLBottomPanel::createToolBar(void* data) +{ + delete gToolBar; + gToolBar = new LLToolBar(); + return gToolBar; +} diff --git a/linden/indra/newview/llviewerwindow.h b/linden/indra/newview/llviewerwindow.h index f792e3f..d27e74b 100644 --- a/linden/indra/newview/llviewerwindow.h +++ b/linden/indra/newview/llviewerwindow.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -186,7 +186,7 @@ public: // Handle the application becoming active (frontmost) or inactive //BOOL handleActivate(BOOL activate); - void setKeyboardFocus(LLUICtrl* new_focus,void (*on_focus_lost)(LLUICtrl* old_focus)); // new_focus = NULL to release the focus. + void setKeyboardFocus(LLUICtrl* new_focus); // new_focus = NULL to release the focus. LLUICtrl* getKeyboardFocus(); BOOL hasKeyboardFocus( const LLUICtrl* possible_focus ) const; BOOL childHasKeyboardFocus( const LLView* parent ) const; @@ -364,10 +364,15 @@ protected: class LLBottomPanel : public LLPanel { public: - LLBottomPanel(const LLString& name, const LLRect& rect); + LLBottomPanel(const LLRect& rect); void setFocusIndicator(LLView * indicator); LLView * getFocusIndicator() { return mIndicator; } /*virtual*/ void draw(); + + static void* createHUD(void* data); + static void* createOverlayBar(void* data); + static void* createToolBar(void* data); + protected: LLView * mIndicator; }; @@ -377,7 +382,7 @@ void toggle_flying(void*); void toggle_first_person(); void toggle_build(void*); void reset_viewer_state_on_sim(void); - +void update_saved_window_size(const LLString& control,S32 delta_width, S32 delta_height); // // Constants // diff --git a/linden/indra/newview/llvlcomposition.cpp b/linden/indra/newview/llvlcomposition.cpp index 2ab6a65..904c2b9 100644 --- a/linden/indra/newview/llvlcomposition.cpp +++ b/linden/indra/newview/llvlcomposition.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llvlcomposition.h b/linden/indra/newview/llvlcomposition.h index 30b5b37..0ff9df4 100644 --- a/linden/indra/newview/llvlcomposition.h +++ b/linden/indra/newview/llvlcomposition.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llvlmanager.cpp b/linden/indra/newview/llvlmanager.cpp index 8bfa7bf..f4dade5 100644 --- a/linden/indra/newview/llvlmanager.cpp +++ b/linden/indra/newview/llvlmanager.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llvlmanager.h b/linden/indra/newview/llvlmanager.h index dc09de5..f6c138c 100644 --- a/linden/indra/newview/llvlmanager.h +++ b/linden/indra/newview/llvlmanager.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp index 53aae14..6798b4d 100644 --- a/linden/indra/newview/llvoavatar.cpp +++ b/linden/indra/newview/llvoavatar.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -311,7 +311,13 @@ class LLBodyNoiseMotion : { public: // Constructor - LLBodyNoiseMotion(const LLUUID &id) : LLMotion(id) {mName = "body_noise";} + LLBodyNoiseMotion(const LLUUID &id) + : LLMotion(id) + { + mName = "body_noise"; + + mTorsoState = new LLJointState; + } // Destructor virtual ~LLBodyNoiseMotion() { } @@ -354,14 +360,14 @@ public: // must return true to indicate success and be available for activation virtual LLMotionInitStatus onInitialize(LLCharacter *character) { - if( !mTorsoState.setJoint( character->getJoint("mTorso") )) + if( !mTorsoState->setJoint( character->getJoint("mTorso") )) { return STATUS_FAILURE; } - mTorsoState.setUsage(LLJointState::ROT); + mTorsoState->setUsage(LLJointState::ROT); - addJointState( &mTorsoState ); + addJointState( mTorsoState ); return STATUS_SUCCESS; } @@ -388,7 +394,7 @@ public: F32 ry = TORSO_NOISE_AMOUNT * DEG_TO_RAD * noiseY / 0.42f; LLQuaternion tQn; tQn.setQuat( rx, ry, 0.0f ); - mTorsoState.setRotation( tQn ); + mTorsoState->setRotation( tQn ); return TRUE; } @@ -400,7 +406,7 @@ public: //------------------------------------------------------------------------- // joint states to be animated //------------------------------------------------------------------------- - LLJointState mTorsoState; + LLPointer mTorsoState; }; //----------------------------------------------------------------------------- @@ -417,6 +423,8 @@ public: mCharacter(NULL) { mName = "breathe_rot"; + + mChestState = new LLJointState; } // Destructor @@ -463,12 +471,12 @@ public: mCharacter = character; bool success = true; - if ( !mChestState.setJoint( character->getJoint( "mChest" ) ) ) { success = false; } + if ( !mChestState->setJoint( character->getJoint( "mChest" ) ) ) { success = false; } if ( success ) { - mChestState.setUsage(LLJointState::ROT); - addJointState( &mChestState ); + mChestState->setUsage(LLJointState::ROT); + addJointState( mChestState ); } if ( success ) @@ -495,7 +503,7 @@ public: F32 breathe_amt = (sinf(mBreatheRate * time) * BREATHE_ROT_MOTION_STRENGTH); - mChestState.setRotation(LLQuaternion(breathe_amt, LLVector3(0.f, 1.f, 0.f))); + mChestState->setRotation(LLQuaternion(breathe_amt, LLVector3(0.f, 1.f, 0.f))); return TRUE; } @@ -507,7 +515,7 @@ public: //------------------------------------------------------------------------- // joint states to be animated //------------------------------------------------------------------------- - LLJointState mChestState; + LLPointer mChestState; F32 mBreatheRate; LLCharacter* mCharacter; }; @@ -520,7 +528,13 @@ class LLPelvisFixMotion : { public: // Constructor - LLPelvisFixMotion(const LLUUID &id) : LLMotion(id), mCharacter(NULL) {mName = "pelvis_fix";} + LLPelvisFixMotion(const LLUUID &id) + : LLMotion(id), mCharacter(NULL) + { + mName = "pelvis_fix"; + + mPelvisState = new LLJointState; + } // Destructor virtual ~LLPelvisFixMotion() { } @@ -565,14 +579,14 @@ public: { mCharacter = character; - if (!mPelvisState.setJoint( character->getJoint("mPelvis"))) + if (!mPelvisState->setJoint( character->getJoint("mPelvis"))) { return STATUS_FAILURE; } - mPelvisState.setUsage(LLJointState::POS); + mPelvisState->setUsage(LLJointState::POS); - addJointState( &mPelvisState ); + addJointState( mPelvisState ); return STATUS_SUCCESS; } @@ -586,7 +600,7 @@ public: // must return FALSE when the motion is completed. virtual BOOL onUpdate(F32 time, U8* joint_mask) { - mPelvisState.setPosition(LLVector3::zero); + mPelvisState->setPosition(LLVector3::zero); return TRUE; } @@ -598,7 +612,7 @@ public: //------------------------------------------------------------------------- // joint states to be animated //------------------------------------------------------------------------- - LLJointState mPelvisState; + LLPointer mPelvisState; LLCharacter* mCharacter; }; @@ -3413,7 +3427,9 @@ void LLVOAvatar::updateCharacter(LLAgent &agent) // AUDIO_STEP_LO_GAIN, AUDIO_STEP_HI_GAIN ); F32 ambient_volume = gSavedSettings.getF32("AudioLevelAmbient"); - F32 gain = .50f * ambient_volume * ambient_volume; + F32 gain = gSavedSettings.getBOOL("MuteAmbient") + ? 0.f + : (.50f * ambient_volume * ambient_volume); LLUUID& step_sound_id = getStepSound(); LLVector3d foot_pos_global = gAgent.getPosGlobalFromAgent(foot_pos_agent); @@ -4388,7 +4404,7 @@ BOOL LLVOAvatar::processSingleAnimationStateChange( const LLUUID& anim_id, BOOL //else { LLUUID sound_id = LLUUID(gSavedSettings.getString("UISndTyping")); - F32 volume = gSavedSettings.getF32("AudioLevelSFX"); + F32 volume = gSavedSettings.getBOOL("MuteSounds") ? 0.f : gSavedSettings.getF32("AudioLevelSFX"); gAudiop->triggerSound(sound_id, getID(), volume, char_pos_global); } } diff --git a/linden/indra/newview/llvoavatar.h b/linden/indra/newview/llvoavatar.h index cb1c796..a8b8486 100644 --- a/linden/indra/newview/llvoavatar.h +++ b/linden/indra/newview/llvoavatar.h @@ -13,12 +13,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llvocache.cpp b/linden/indra/newview/llvocache.cpp index b7f4ce7..39ee63f 100644 --- a/linden/indra/newview/llvocache.cpp +++ b/linden/indra/newview/llvocache.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llvocache.h b/linden/indra/newview/llvocache.h index 8afbd70..c994d4b 100644 --- a/linden/indra/newview/llvocache.h +++ b/linden/indra/newview/llvocache.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llvoclouds.cpp b/linden/indra/newview/llvoclouds.cpp index 6c98b37..56f7be9 100644 --- a/linden/indra/newview/llvoclouds.cpp +++ b/linden/indra/newview/llvoclouds.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llvoclouds.h b/linden/indra/newview/llvoclouds.h index 7c62fe0..71e8c40 100644 --- a/linden/indra/newview/llvoclouds.h +++ b/linden/indra/newview/llvoclouds.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llvograss.cpp b/linden/indra/newview/llvograss.cpp index 593b1d6..3b6b837 100644 --- a/linden/indra/newview/llvograss.cpp +++ b/linden/indra/newview/llvograss.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llvograss.h b/linden/indra/newview/llvograss.h index 0f9dcdb..36a0e9f 100644 --- a/linden/indra/newview/llvograss.h +++ b/linden/indra/newview/llvograss.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llvoground.cpp b/linden/indra/newview/llvoground.cpp index a0e9a82..ad627e6 100644 --- a/linden/indra/newview/llvoground.cpp +++ b/linden/indra/newview/llvoground.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llvoground.h b/linden/indra/newview/llvoground.h index 417312a..25e6fa6 100644 --- a/linden/indra/newview/llvoground.h +++ b/linden/indra/newview/llvoground.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llvoiceclient.cpp b/linden/indra/newview/llvoiceclient.cpp index 891ea73..6079447 100644 --- a/linden/indra/newview/llvoiceclient.cpp +++ b/linden/indra/newview/llvoiceclient.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -29,11 +29,11 @@ * $/LicenseInfo$ */ -#include - #include "llviewerprecompiledheaders.h" #include "llvoiceclient.h" +#include + #include "llsdutil.h" #include "llvoavatar.h" @@ -43,7 +43,6 @@ #include "llcallbacklist.h" #include "llviewerregion.h" #include "llviewernetwork.h" // for gGridChoice -#include "llfloateractivespeakers.h" // for LLSpeakerMgr #include "llbase64.h" #include "llviewercontrol.h" #include "llkeyboard.h" @@ -532,7 +531,7 @@ void LLVivoxProtocolParser::CharData(const char *buffer, int length) void LLVivoxProtocolParser::processResponse(std::string tag) { -// llinfos << tag << llendl; + //llinfos << tag << llendl; if (isEvent) { @@ -768,7 +767,7 @@ static HANDLE sGatewayHandle = 0; static bool isGatewayRunning() { bool result = false; - if(sGatewayHandle != 0) + if(sGatewayHandle != 0) { DWORD waitresult = WaitForSingleObject(sGatewayHandle, 0); if(waitresult != WAIT_OBJECT_0) @@ -854,7 +853,7 @@ LLVoiceClient::LLVoiceClient() setPTTKey(keyString); mPTTIsToggle = gSavedSettings.getBOOL("PushToTalkToggle"); mEarLocation = gSavedSettings.getS32("VoiceEarLocation"); - setVoiceVolume(gSavedSettings.getF32("AudioLevelVoice")); + setVoiceVolume(gSavedSettings.getBOOL("MuteVoice") ? 0.f : gSavedSettings.getF32("AudioLevelVoice")); std::string captureDevice = gSavedSettings.getString("VoiceInputAudioDevice"); setCaptureDevice(captureDevice); std::string renderDevice = gSavedSettings.getString("VoiceOutputAudioDevice"); @@ -876,7 +875,6 @@ LLVoiceClient::LLVoiceClient() mTuningMicVolumeDirty = true; mTuningSpeakerVolume = 0; mTuningSpeakerVolumeDirty = true; - mTuningCaptureRunning = false; // gMuteListp isn't set up at this point, so we defer this until later. // gMuteListp->addObserver(&mutelist_listener); @@ -1138,14 +1136,15 @@ const char *LLVoiceClient::state2string(LLVoiceClient::state inState) CASE(stateConnectorStart); CASE(stateConnectorStarting); CASE(stateConnectorStarted); - CASE(stateMicTuningNoLogin); CASE(stateLoginRetry); CASE(stateLoginRetryWait); CASE(stateNeedsLogin); CASE(stateLoggingIn); CASE(stateLoggedIn); CASE(stateNoChannel); - CASE(stateMicTuningLoggedIn); + CASE(stateMicTuningStart); + CASE(stateMicTuningRunning); + CASE(stateMicTuningStop); CASE(stateSessionCreate); CASE(stateSessionConnect); CASE(stateJoiningSession); @@ -1164,6 +1163,7 @@ const char *LLVoiceClient::state2string(LLVoiceClient::state inState) CASE(stateJoinSessionFailed); CASE(stateJoinSessionFailedWaiting); CASE(stateJail); + CASE(stateMicTuningNoLogin); } #undef CASE @@ -1483,7 +1483,8 @@ void LLVoiceClient::stateMachine() } else if(mTuningMode) { - setState(stateMicTuningNoLogin); + mTuningExitState = stateConnectorStart; + setState(stateMicTuningStart); } break; @@ -1515,24 +1516,63 @@ void LLVoiceClient::stateMachine() } break; - case stateMicTuningNoLogin: - case stateMicTuningLoggedIn: - { - // Both of these behave essentially the same. The only difference is where the exit transition goes to. - if(mTuningMode && mVoiceEnabled && !mSessionTerminateRequested) - { - if(!mTuningCaptureRunning) + case stateMicTuningStart: + if(mUpdateTimer.hasExpired()) + { + if(mCaptureDeviceDirty || mRenderDeviceDirty) + { + // These can't be changed while in tuning mode. Set them before starting. + std::ostringstream stream; + + if(mCaptureDeviceDirty) + { + buildSetCaptureDevice(stream); + } + + if(mRenderDeviceDirty) + { + buildSetRenderDevice(stream); + } + + mCaptureDeviceDirty = false; + mRenderDeviceDirty = false; + + if(!stream.str().empty()) + { + writeString(stream.str()); + } + + // This will come around again in the same state and start the capture, after the timer expires. + mUpdateTimer.start(); + mUpdateTimer.setTimerExpirySec(UPDATE_THROTTLE_SECONDS); + } + else { // duration parameter is currently unused, per Mike S. tuningCaptureStartSendMessage(10000); + + setState(stateMicTuningRunning); } - - if(mTuningMicVolumeDirty || mTuningSpeakerVolumeDirty || mCaptureDeviceDirty || mRenderDeviceDirty) + } + + break; + + case stateMicTuningRunning: + if(!mTuningMode || !mVoiceEnabled || mSessionTerminateRequested || mCaptureDeviceDirty || mRenderDeviceDirty) + { + // All of these conditions make us leave tuning mode. + setState(stateMicTuningStop); + } + else + { + // process mic/speaker volume changes + if(mTuningMicVolumeDirty || mTuningSpeakerVolumeDirty) { std::ostringstream stream; if(mTuningMicVolumeDirty) { + llinfos << "setting tuning mic level to " << mTuningMicVolume << llendl; stream << "" << "" << mTuningMicVolume << "" @@ -1547,20 +1587,8 @@ void LLVoiceClient::stateMachine() << "\n\n\n"; } - if(mCaptureDeviceDirty) - { - buildSetCaptureDevice(stream); - } - - if(mRenderDeviceDirty) - { - buildSetRenderDevice(stream); - } - mTuningMicVolumeDirty = false; mTuningSpeakerVolumeDirty = false; - mCaptureDeviceDirty = false; - mRenderDeviceDirty = false; if(!stream.str().empty()) { @@ -1568,23 +1596,19 @@ void LLVoiceClient::stateMachine() } } } - else - { - // transition out of mic tuning - if(mTuningCaptureRunning) - { - tuningCaptureStopSendMessage(); - } - - if(getState() == stateMicTuningNoLogin) - { - setState(stateConnectorStart); - } - else - { - setState(stateNoChannel); - } - } + break; + + case stateMicTuningStop: + { + // transition out of mic tuning + tuningCaptureStopSendMessage(); + + setState(mTuningExitState); + + // if we exited just to change devices, this will keep us from re-entering too fast. + mUpdateTimer.start(); + mUpdateTimer.setTimerExpirySec(UPDATE_THROTTLE_SECONDS); + } break; @@ -1654,7 +1678,8 @@ void LLVoiceClient::stateMachine() } else if(mTuningMode) { - setState(stateMicTuningLoggedIn); + mTuningExitState = stateNoChannel; + setState(stateMicTuningStart); } else if(!mNextSessionHandle.empty()) { @@ -1880,6 +1905,12 @@ void LLVoiceClient::stateMachine() case stateJail: // We have given up. Do nothing. break; + + case stateMicTuningNoLogin: + // *TODO: Implement me. + llwarns << "stateMicTuningNoLogin not handled" + << llendl; + break; } if(mParticipantMapChanged) @@ -2183,9 +2214,9 @@ bool LLVoiceClient::inTuningMode() bool result = false; switch(getState()) { - case stateMicTuningNoLogin: - case stateMicTuningLoggedIn: + case stateMicTuningRunning: result = true; + break; default: break; } @@ -2193,10 +2224,7 @@ bool LLVoiceClient::inTuningMode() } void LLVoiceClient::tuningRenderStartSendMessage(const std::string& name, bool loop) -{ - if(!inTuningMode()) - return; - +{ mTuningAudioFile = name; std::ostringstream stream; stream @@ -2210,9 +2238,6 @@ void LLVoiceClient::tuningRenderStartSendMessage(const std::string& name, bool l void LLVoiceClient::tuningRenderStopSendMessage() { - if(!inTuningMode()) - return; - std::ostringstream stream; stream << "" @@ -2224,9 +2249,8 @@ void LLVoiceClient::tuningRenderStopSendMessage() void LLVoiceClient::tuningCaptureStartSendMessage(int duration) { - if(!inTuningMode()) - return; - + llinfos << "sending CaptureAudioStart" << llendl; + std::ostringstream stream; stream << "" @@ -2234,15 +2258,12 @@ void LLVoiceClient::tuningCaptureStartSendMessage(int duration) << "\n\n\n"; writeString(stream.str()); - - mTuningCaptureRunning = true; } void LLVoiceClient::tuningCaptureStopSendMessage() { - if(!inTuningMode()) - return; - + llinfos << "sending CaptureAudioStop" << llendl; + std::ostringstream stream; stream << "" @@ -2250,7 +2271,7 @@ void LLVoiceClient::tuningCaptureStopSendMessage() writeString(stream.str()); - mTuningCaptureRunning = false; + mTuningEnergy = 0.0f; } void LLVoiceClient::tuningSetMicVolume(float volume) @@ -2914,12 +2935,16 @@ void LLVoiceClient::sessionNewEvent( LLUUID caller_id; if(IDFromName(nameString, caller_id)) { - gIMMgr->inviteToSession(LLIMMgr::computeSessionID(IM_SESSION_P2P_INVITE, caller_id), - LLString::null, - caller_id, - LLString::null, - IM_SESSION_P2P_INVITE, - eventSessionHandle); + gIMMgr->inviteToSession( + LLIMMgr::computeSessionID( + IM_SESSION_P2P_INVITE, + caller_id), + LLString::null, + caller_id, + LLString::null, + IM_SESSION_P2P_INVITE, + LLIMMgr::INVITATION_TYPE_VOICE, + eventSessionHandle); } else { @@ -2985,6 +3010,7 @@ void LLVoiceClient::participantPropertiesEvent( { participant->mPTT = !isLocallyMuted; participant->mIsSpeaking = isSpeaking; + participant->mIsModeratorMuted = isModeratorMuted; if (isSpeaking) { participant->mSpeakingTimeout.reset(); @@ -3022,7 +3048,7 @@ void LLVoiceClient::muteListChanged() ///////////////////////////// // Managing list of participants LLVoiceClient::participantState::participantState(const std::string &uri) : - mURI(uri), mPTT(false), mIsSpeaking(false), mPower(0.0), mServiceType(serviceTypeUnknown), + mURI(uri), mPTT(false), mIsSpeaking(false), mIsModeratorMuted(false), mPower(0.0), mServiceType(serviceTypeUnknown), mOnMuteList(false), mUserVolume(100), mVolumeDirty(false), mAvatarIDValid(false) { } @@ -3204,7 +3230,6 @@ void LLVoiceClient::parcelChanged() std::string url = gAgent.getRegion()->getCapability("ParcelVoiceInfoRequest"); LLSD data; - data["method"] = "call"; LLHTTPClient::post( url, data, @@ -3265,6 +3290,7 @@ void LLVoiceClient::switchChannel( { // Leave any channel we may be in llinfos << "leaving channel" << llendl; + notifyStatusObservers(LLVoiceClientStatusObserver::STATUS_VOICE_DISABLED); } else { @@ -3786,6 +3812,19 @@ BOOL LLVoiceClient::getIsSpeaking(const LLUUID& id) return result; } +BOOL LLVoiceClient::getIsModeratorMuted(const LLUUID& id) +{ + BOOL result = FALSE; + + participantState *participant = findParticipantByID(id); + if(participant) + { + result = participant->mIsModeratorMuted; + } + + return result; +} + F32 LLVoiceClient::getCurrentPower(const LLUUID& id) { F32 result = 0; @@ -3956,7 +3995,14 @@ void LLVoiceClient::notifyStatusObservers(LLVoiceClientStatusObserver::EStatusTy { case 20713: status = LLVoiceClientStatusObserver::ERROR_CHANNEL_FULL; break; case 20714: status = LLVoiceClientStatusObserver::ERROR_CHANNEL_LOCKED; break; - case 20715: status = LLVoiceClientStatusObserver::ERROR_NOT_AVAILABLE; + case 20715: + //invalid channel, we may be using a set of poorly cached + //info + status = LLVoiceClientStatusObserver::ERROR_NOT_AVAILABLE; + break; + case 1009: + //invalid username and password + status = LLVoiceClientStatusObserver::ERROR_NOT_AVAILABLE; break; } diff --git a/linden/indra/newview/llvoiceclient.h b/linden/indra/newview/llvoiceclient.h index 71044a8..d12bfa8 100644 --- a/linden/indra/newview/llvoiceclient.h +++ b/linden/indra/newview/llvoiceclient.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -63,6 +63,7 @@ public: STATUS_JOINING, STATUS_JOINED, STATUS_LEFT_CHANNEL, + STATUS_VOICE_DISABLED, BEGIN_ERROR_STATUS, ERROR_CHANNEL_FULL, ERROR_CHANNEL_LOCKED, @@ -139,6 +140,7 @@ class LLVoiceClient: public LLSingleton void tuningStart(); void tuningStop(); bool inTuningMode(); + bool inTuningStates(); void tuningRenderStartSendMessage(const std::string& name, bool loop); void tuningRenderStopSendMessage(); @@ -218,6 +220,7 @@ class LLVoiceClient: public LLSingleton // Accessors for data related to nearby speakers BOOL getVoiceEnabled(const LLUUID& id); // true if we've received data for this avatar BOOL getIsSpeaking(const LLUUID& id); + BOOL getIsModeratorMuted(const LLUUID& id); F32 getCurrentPower(const LLUUID& id); // "power" is related to "amplitude" in a defined way. I'm just not sure what the formula is... BOOL getPTTPressed(const LLUUID& id); // This is the inverse of the "locally muted" property. BOOL getOnMuteList(const LLUUID& id); @@ -242,6 +245,7 @@ class LLVoiceClient: public LLSingleton std::string mDisplayName; bool mPTT; bool mIsSpeaking; + bool mIsModeratorMuted; LLFrameTimer mSpeakingTimeout; F32 mLastSpokeTimestamp; F32 mPower; @@ -316,7 +320,9 @@ class LLVoiceClient: public LLSingleton stateLoggingIn, // waiting for account handle stateLoggedIn, // account handle received stateNoChannel, // - stateMicTuningLoggedIn, // mic tuning for a logged in user + stateMicTuningStart, + stateMicTuningRunning, + stateMicTuningStop, stateSessionCreate, // need to send Session.Create command stateSessionConnect, // need to send Session.Connect command stateJoiningSession, // waiting for session handle @@ -387,7 +393,7 @@ class LLVoiceClient: public LLSingleton bool mTuningMicVolumeDirty; int mTuningSpeakerVolume; bool mTuningSpeakerVolumeDirty; - bool mTuningCaptureRunning; + state mTuningExitState; // state to return to when we leave tuning mode. std::string mSpatialSessionURI; diff --git a/linden/indra/newview/llvoiceremotectrl.cpp b/linden/indra/newview/llvoiceremotectrl.cpp index 6b3db08..099e528 100644 --- a/linden/indra/newview/llvoiceremotectrl.cpp +++ b/linden/indra/newview/llvoiceremotectrl.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -41,14 +41,33 @@ #include "llvoiceclient.h" #include "llimpanel.h" #include "llfloateractivespeakers.h" +#include "llfloaterchatterbox.h" #include "lliconctrl.h" +#include "lloverlaybar.h" +#include "lltextbox.h" LLVoiceRemoteCtrl::LLVoiceRemoteCtrl (const LLString& name) : LLPanel(name) { setIsChrome(TRUE); - gUICtrlFactory->buildPanel(this, "panel_voice_remote.xml"); + if (gSavedSettings.getBOOL("ShowVoiceChannelPopup")) + { + gUICtrlFactory->buildPanel(this, "panel_voice_remote_expanded.xml"); + } + else + { + gUICtrlFactory->buildPanel(this, "panel_voice_remote.xml"); + } + + mIsFocusRoot = TRUE; +} + +LLVoiceRemoteCtrl::~LLVoiceRemoteCtrl() +{ +} +BOOL LLVoiceRemoteCtrl::postBuild() +{ mTalkBtn = LLUICtrlFactory::getButtonByName(this, "push_to_talk"); mTalkBtn->setClickedCallback(onBtnTalkClicked); mTalkBtn->setHeldDownCallback(onBtnTalkHeld); @@ -56,15 +75,25 @@ LLVoiceRemoteCtrl::LLVoiceRemoteCtrl (const LLString& name) : LLPanel(name) mTalkLockBtn = LLUICtrlFactory::getButtonByName(this, "ptt_lock"); mTalkLockBtn->setClickedCallback(onBtnLock); + mTalkLockBtn->setCallbackUserData(this); mSpeakersBtn = LLUICtrlFactory::getButtonByName(this, "speakers_btn"); mSpeakersBtn->setClickedCallback(onClickSpeakers); + mSpeakersBtn->setCallbackUserData(this); - mIsFocusRoot = TRUE; -} + childSetAction("show_channel", onClickPopupBtn, this); + childSetAction("end_call_btn", onClickEndCall, this); -LLVoiceRemoteCtrl::~LLVoiceRemoteCtrl() -{ + LLTextBox* text = LLUICtrlFactory::getTextBoxByName(this, "channel_label"); + if (text) + { + text->setUseEllipses(TRUE); + } + + childSetAction("voice_channel_bg", onClickVoiceChannel, this); + + + return TRUE; } void LLVoiceRemoteCtrl::draw() @@ -79,17 +108,6 @@ void LLVoiceRemoteCtrl::draw() mTalkBtn->setEnabled(voice_active); mTalkLockBtn->setEnabled(voice_active); -// if (voice_active) -// { -// mTalkBtn->setToolTip(""); -// mTalkLockBtn->setToolTip(""); -// } -// else -// { -// mTalkBtn->setToolTip(""); -// mTalkLockBtn->setToolTip(""); -// } - // propagate ptt state to button display, if (!mTalkBtn->hasMouseCapture()) { @@ -138,6 +156,63 @@ void LLVoiceRemoteCtrl::draw() icon->setImage(talk_blip_image_id); } + LLFloater* voice_floater = LLFloaterChatterBox::getInstance()->getCurrentVoiceFloater(); + LLString active_channel_name; + if (voice_floater) + { + active_channel_name = voice_floater->getShortTitle(); + } + + LLVoiceChannel* current_channel = LLVoiceChannel::getCurrentVoiceChannel(); + childSetEnabled("end_call_btn", LLVoiceClient::voiceEnabled() + && current_channel + && current_channel->isActive() + && current_channel != LLVoiceChannelProximal::getInstance()); + + childSetValue("channel_label", active_channel_name); + childSetToolTip("voice_channel_bg", active_channel_name); + + if (current_channel) + { + LLIconCtrl* voice_channel_icon = LLUICtrlFactory::getIconByName(this, "voice_channel_icon"); + if (voice_channel_icon && voice_floater) + { + voice_channel_icon->setImage(LLUUID(gViewerArt.getString(voice_floater->getUIString("voice_icon")))); + } + + LLButton* voice_channel_bg = LLUICtrlFactory::getButtonByName(this, "voice_channel_bg"); + if (voice_channel_bg) + { + LLColor4 bg_color; + if (current_channel->isActive()) + { + bg_color = lerp(LLColor4::green, LLColor4::white, 0.7f); + } + else if (current_channel->getState() == LLVoiceChannel::STATE_ERROR) + { + bg_color = lerp(LLColor4::red, LLColor4::white, 0.7f); + } + else // active, but not connected + { + bg_color = lerp(LLColor4::yellow, LLColor4::white, 0.7f); + } + voice_channel_bg->setImageColor(bg_color); + } + } + + LLButton* expand_button = LLUICtrlFactory::getButtonByName(this, "show_channel"); + if (expand_button) + { + if (expand_button->getToggleState()) + { + expand_button->setImageOverlay("arrow_down.tga"); + } + else + { + expand_button->setImageOverlay("arrow_up.tga"); + } + } + LLPanel::draw(); } @@ -172,12 +247,45 @@ void LLVoiceRemoteCtrl::onBtnLock(void* user_data) { LLVoiceRemoteCtrl* remotep = (LLVoiceRemoteCtrl*)user_data; - remotep->mTalkLockBtn->toggleState(); gSavedSettings.setBOOL("PTTCurrentlyEnabled", !remotep->mTalkLockBtn->getToggleState()); } +//static +void LLVoiceRemoteCtrl::onClickPopupBtn(void* user_data) +{ + LLVoiceRemoteCtrl* remotep = (LLVoiceRemoteCtrl*)user_data; + + remotep->deleteAllChildren(); + if (gSavedSettings.getBOOL("ShowVoiceChannelPopup")) + { + gUICtrlFactory->buildPanel(remotep, "panel_voice_remote_expanded.xml"); + } + else + { + gUICtrlFactory->buildPanel(remotep, "panel_voice_remote.xml"); + } + gOverlayBar->layoutButtons(); +} + +//static +void LLVoiceRemoteCtrl::onClickEndCall(void* user_data) +{ + LLVoiceChannel* current_channel = LLVoiceChannel::getCurrentVoiceChannel(); + + if (current_channel && current_channel != LLVoiceChannelProximal::getInstance()) + { + current_channel->deactivate(); + } +} + + void LLVoiceRemoteCtrl::onClickSpeakers(void *user_data) { LLFloaterActiveSpeakers::toggleInstance(LLSD()); } +//static +void LLVoiceRemoteCtrl::onClickVoiceChannel(void* user_data) +{ + LLFloaterChatterBox::showInstance(); +} diff --git a/linden/indra/newview/llvoiceremotectrl.h b/linden/indra/newview/llvoiceremotectrl.h index 8c88fb6..17f55fb 100644 --- a/linden/indra/newview/llvoiceremotectrl.h +++ b/linden/indra/newview/llvoiceremotectrl.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -42,6 +42,7 @@ public: LLVoiceRemoteCtrl (const LLString& name); virtual ~LLVoiceRemoteCtrl(); + /*virtual*/ BOOL postBuild(); /*virtual*/ void draw(); static void onBtnLock(void* user_data); @@ -49,6 +50,9 @@ public: static void onBtnTalkReleased(void* user_data); static void onBtnTalkClicked(void* user_data); static void onClickSpeakers(void *user_data); + static void onClickPopupBtn(void* user_data); + static void onClickVoiceChannel(void* user_data); + static void onClickEndCall(void* user_data); protected: LLButton* mTalkBtn; diff --git a/linden/indra/newview/llvoicevisualizer.cpp b/linden/indra/newview/llvoicevisualizer.cpp index fa7b2fb..c931734 100644 --- a/linden/indra/newview/llvoicevisualizer.cpp +++ b/linden/indra/newview/llvoicevisualizer.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -111,7 +111,7 @@ LLVoiceVisualizer::LLVoiceVisualizer( const U8 type ) for (int i=0; ishow( eventIn.getStringValue(), "Second Life Browser"); + // If we spawn a new LLFloaterHTML, assume we want it to + // follow this LLWebBrowserCtrl's setting for whether or + // not to open secondlife:///app/ links. JC. + LLFloaterHtml::getInstance()->show( + eventIn.getStringValue(), + "Second Life Browser", + mOpenAppSLURLs); }; }; }; @@ -649,7 +647,15 @@ void LLWebBrowserCtrl::onClickLinkHref( const EventType& eventIn ) void LLWebBrowserCtrl::onClickLinkSecondLife( const EventType& eventIn ) { std::string url = eventIn.getStringValue(); - LLURLDispatcher::dispatch(url); + if (LLURLDispatcher::isSLURLCommand(url) + && !mOpenAppSLURLs) + { + // block handling of this secondlife:///app/ URL + return; + } + + const bool from_external_browser = false; + LLURLDispatcher::dispatch(url, from_external_browser); // chain this event on to observers of an instance of LLWebBrowserCtrl LLWebBrowserCtrlEvent event( eventIn.getStringValue() ); diff --git a/linden/indra/newview/llwebbrowserctrl.h b/linden/indra/newview/llwebbrowserctrl.h index 006df70..20dfbd7 100644 --- a/linden/indra/newview/llwebbrowserctrl.h +++ b/linden/indra/newview/llwebbrowserctrl.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -194,8 +194,15 @@ class LLWebBrowserCtrl : bool canNavigateForward(); void setOpenInExternalBrowser( bool valIn ); void setOpenInInternalBrowser( bool valIn ); - void setOpenSLURLsInMap( bool valIn ); - void setOpenSLURLsViaTeleport( bool valIn ); + + // By default, we do not handle "secondlife:///app/" SLURLs, because + // those can cause teleports, open windows, etc. We cannot be sure + // that each "click" is actually due to a user action, versus + // Javascript or some other mechanism. However, we need the search + // floater and login page to handle these URLs. Those are safe + // because we control the page content. See DEV-9530. JC. + void setOpenAppSLURLs( bool valIn ); + void setHomePageUrl( const std::string urlIn ); std::string getHomePageUrl(); @@ -249,8 +256,7 @@ class LLWebBrowserCtrl : bool mFrequentUpdates; bool mOpenLinksInExternalBrowser; bool mOpenLinksInInternalBrowser; - bool mOpenSLURLsInMap; - bool mOpenSLURLsViaTeleport; + bool mOpenAppSLURLs; std::string mHomePageUrl; bool mIgnoreUIScale; bool mAlwaysRefresh; diff --git a/linden/indra/newview/llwind.cpp b/linden/indra/newview/llwind.cpp index adc6a61..5d20112 100644 --- a/linden/indra/newview/llwind.cpp +++ b/linden/indra/newview/llwind.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llwind.h b/linden/indra/newview/llwind.h index 2210fc9..5481fdc 100644 --- a/linden/indra/newview/llwind.h +++ b/linden/indra/newview/llwind.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llwindebug.cpp b/linden/indra/newview/llwindebug.cpp index 52b2c0a..cf30f34 100644 --- a/linden/indra/newview/llwindebug.cpp +++ b/linden/indra/newview/llwindebug.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llwindebug.h b/linden/indra/newview/llwindebug.h index 782204c..fdc9a52 100644 --- a/linden/indra/newview/llwindebug.h +++ b/linden/indra/newview/llwindebug.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llworld.cpp b/linden/indra/newview/llworld.cpp index 621ab1d..c03ef6e 100644 --- a/linden/indra/newview/llworld.cpp +++ b/linden/indra/newview/llworld.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -770,6 +770,7 @@ void LLWorld::printPacketsLost() void LLWorld::processCoarseUpdate(LLMessageSystem* msg, void** user_data) { + if(!gWorldp) return; LLViewerRegion* region = gWorldp->getRegion(msg->getSender()); if( region ) { @@ -1026,6 +1027,7 @@ void process_enable_simulator(LLMessageSystem *msg, void **user_data) // Viewer trusts the simulator. msg->enableCircuit(sim, TRUE); + if(!gWorldp) return; gWorldp->addRegion(handle, sim); // give the simulator a message it can use to get ip and port @@ -1063,6 +1065,7 @@ public: LLHost sim(input["body"]["sim-ip-and-port"].asString()); + if(!gWorldp) return; LLViewerRegion* regionp = gWorldp->getRegion(sim); if (!regionp) { @@ -1081,6 +1084,7 @@ void process_disable_simulator(LLMessageSystem *mesgsys, void **user_data) LLHost host = mesgsys->getSender(); //llinfos << "Disabling simulator with message from " << host << llendl; + if(!gWorldp) return; gWorldp->removeRegion(host); mesgsys->disableCircuit(host); @@ -1090,6 +1094,7 @@ void process_disable_simulator(LLMessageSystem *mesgsys, void **user_data) void process_region_handshake(LLMessageSystem* msg, void** user_data) { LLHost host = msg->getSender(); + if(!gWorldp) return; LLViewerRegion* regionp = gWorldp->getRegion(host); if (!regionp) { diff --git a/linden/indra/newview/llworld.h b/linden/indra/newview/llworld.h index 6323a61..cad24da 100644 --- a/linden/indra/newview/llworld.h +++ b/linden/indra/newview/llworld.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llworldmap.cpp b/linden/indra/newview/llworldmap.cpp index 0a92aa0..0a2b33e 100644 --- a/linden/indra/newview/llworldmap.cpp +++ b/linden/indra/newview/llworldmap.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llworldmap.h b/linden/indra/newview/llworldmap.h index 90298a8..bc8d653 100644 --- a/linden/indra/newview/llworldmap.h +++ b/linden/indra/newview/llworldmap.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llworldmapview.cpp b/linden/indra/newview/llworldmapview.cpp index 84845f9..266ffbc 100644 --- a/linden/indra/newview/llworldmapview.cpp +++ b/linden/indra/newview/llworldmapview.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -100,6 +100,16 @@ S32 LLWorldMapView::sTrackingArrowY = 0; F32 LLWorldMapView::sPixelsPerMeter = 1.f; F32 CONE_SIZE = 0.6f; + +#define SIM_NULL_MAP_SCALE 1 // width in pixels, where we start drawing "null" sims +#define SIM_MAP_AGENT_SCALE 2 // width in pixels, where we start drawing agents +#define SIM_MAP_SCALE 1 // width in pixels, where we start drawing sim tiles + +// Updates for agent locations. +#define AGENTS_UPDATE_TIME 60.0 // in seconds + + + void LLWorldMapView::initClass() { LLUUID image_id; @@ -458,7 +468,7 @@ void LLWorldMapView::draw() LLViewerImage* simimage = info->mCurrentImage; LLViewerImage* overlayimage = info->mOverlayImage; - if (gMapScale < 8.f) + if (gMapScale < SIM_MAP_SCALE) { simimage->setBoostLevel(0); if (overlayimage) overlayimage->setBoostLevel(0); @@ -1117,11 +1127,6 @@ LLVector3d LLWorldMapView::viewPosToGlobal( S32 x, S32 y ) BOOL LLWorldMapView::handleToolTip( S32 x, S32 y, LLString& msg, LLRect* sticky_rect_screen ) { - if( !getVisible() || !pointInView( x, y ) ) - { - return FALSE; - } - LLVector3d pos_global = viewPosToGlobal(x, y); LLSimInfo* info = gWorldMap->simInfoFromPosGlobal(pos_global); diff --git a/linden/indra/newview/llworldmapview.h b/linden/indra/newview/llworldmapview.h index 9d7ce2b..32f2d6e 100644 --- a/linden/indra/newview/llworldmapview.h +++ b/linden/indra/newview/llworldmapview.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -52,13 +52,6 @@ class LLCoordGL; class LLViewerImage; class LLTextBox; -#define SIM_NULL_MAP_SCALE 2 // width in pixels, where we start drawing "null" sims -#define SIM_MAP_AGENT_SCALE 20 // width in pixels, where we start drawing agents -#define SIM_MAP_SCALE 90 // width in pixels, where we start drawing sim tiles - -// Updates for agent locations. -#define AGENTS_UPDATE_TIME 60.0 // in seconds - class LLWorldMapView : public LLPanel { diff --git a/linden/indra/newview/llxmlrpctransaction.cpp b/linden/indra/newview/llxmlrpctransaction.cpp index 3096e85..96f3326 100644 --- a/linden/indra/newview/llxmlrpctransaction.cpp +++ b/linden/indra/newview/llxmlrpctransaction.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/llxmlrpctransaction.h b/linden/indra/newview/llxmlrpctransaction.h index 69297b7..878ff7c 100644 --- a/linden/indra/newview/llxmlrpctransaction.h +++ b/linden/indra/newview/llxmlrpctransaction.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/macmain.h b/linden/indra/newview/macmain.h index 9a28d8b..941766e 100644 --- a/linden/indra/newview/macmain.h +++ b/linden/indra/newview/macmain.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/macutil_Prefix.h b/linden/indra/newview/macutil_Prefix.h index e6feb99..81918f3 100644 --- a/linden/indra/newview/macutil_Prefix.h +++ b/linden/indra/newview/macutil_Prefix.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/macview.xcodeproj/project.pbxproj b/linden/indra/newview/macview.xcodeproj/project.pbxproj index 598abb5..c1cb556 100644 --- a/linden/indra/newview/macview.xcodeproj/project.pbxproj +++ b/linden/indra/newview/macview.xcodeproj/project.pbxproj @@ -557,12 +557,10 @@ 9CD49D5709D0BAC100192434 /* llflexibleobject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9CD49D5609D0BAC100192434 /* llflexibleobject.cpp */; }; 9CD49D5B09D0BB1500192434 /* lllocalanimationobject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9CD49D5909D0BB1500192434 /* lllocalanimationobject.cpp */; }; A241CB7D07B3DE0D001A39E3 /* llviewerprecompiledheaders.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A241CB7B07B3DE0D001A39E3 /* llviewerprecompiledheaders.cpp */; }; - A241CB9007B3E383001A39E3 /* lllogtextmessage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A241CB8C07B3E383001A39E3 /* lllogtextmessage.cpp */; }; A241CB9207B3E383001A39E3 /* llmessagethrottle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A241CB8E07B3E383001A39E3 /* llmessagethrottle.cpp */; }; A241CB9507B3E3A7001A39E3 /* llperlin.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A241CB9407B3E3A7001A39E3 /* llperlin.cpp */; }; A30273570B3A13D800704420 /* llvertexbuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A30273550B3A13D800704420 /* llvertexbuffer.cpp */; }; A3077C0709DCB8140059ED75 /* lldrawpoolstars.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A3077BFB09DCB8140059ED75 /* lldrawpoolstars.cpp */; }; - A3077C0909DCB8140059ED75 /* llfloaterhtmlhelp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A3077BFF09DCB8140059ED75 /* llfloaterhtmlhelp.cpp */; }; A3077C0B09DCB8140059ED75 /* llpanelvolume.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A3077C0309DCB8140059ED75 /* llpanelvolume.cpp */; }; A3077C0C09DCB8140059ED75 /* llvostars.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A3077C0509DCB8140059ED75 /* llvostars.cpp */; }; A32748BF0B5F38A00099BE18 /* llfontgl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D628315D0B4F3FA100F8830F /* llfontgl.cpp */; }; @@ -674,7 +672,6 @@ C1E4A5D00CC0216F005FB0A6 /* net.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6192220D074A9B59005E1F34 /* net.cpp */; }; C1E4A5D10CC0216F005FB0A6 /* llxfer_mem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 619221FF074A9B59005E1F34 /* llxfer_mem.cpp */; }; C1E4A5D20CC0216F005FB0A6 /* llthrottle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 619221EC074A9B59005E1F34 /* llthrottle.cpp */; }; - C1E4A5D30CC0216F005FB0A6 /* lllogtextmessage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A241CB8C07B3E383001A39E3 /* lllogtextmessage.cpp */; }; C1E4A5D40CC0216F005FB0A6 /* llinstantmessage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93AE41CF08F4845400141675 /* llinstantmessage.cpp */; }; C1E4A5D50CC0216F005FB0A6 /* llmessagebuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 38D0FA6B0B4BF898003323BA /* llmessagebuilder.cpp */; }; C1E4A5D60CC0216F005FB0A6 /* lldatapacker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 619221C5074A9B59005E1F34 /* lldatapacker.cpp */; }; @@ -843,7 +840,7 @@ "$(DERIVED_FILES_DIR)/${CURRENT_ARCH}/$(INPUT_FILE_BASE).y.cpp", "$(DERIVED_FILES_DIR)/${CURRENT_ARCH}/$(INPUT_FILE_BASE).y.h", ); - script = "mkdir -p \"${DERIVED_FILES_DIR}/${CURRENT_ARCH}\"\n/usr/bin/yacc -d -o \"${DERIVED_FILES_DIR}/${CURRENT_ARCH}/${INPUT_FILE_BASE}.y.cpp\" \"${INPUT_FILE_PATH}\"\n\nif [ -f \"${DERIVED_FILES_DIR}/${CURRENT_ARCH}/${INPUT_FILE_BASE}.y.hpp\" ];\nthen\n\tmv \"${DERIVED_FILES_DIR}/${CURRENT_ARCH}/${INPUT_FILE_BASE}.y.hpp\" \"${DERIVED_FILES_DIR}/${CURRENT_ARCH}/${INPUT_FILE_BASE}.y.h\" ;\nfi\n"; + script = "mkdir -p \"${DERIVED_FILES_DIR}/${CURRENT_ARCH}\"\n/usr/bin/yacc -d -o \"${DERIVED_FILES_DIR}/${CURRENT_ARCH}/${INPUT_FILE_BASE}.y.cpp\" \"${INPUT_FILE_PATH}\"\n\nif [ -f \"${DERIVED_FILES_DIR}/${CURRENT_ARCH}/${INPUT_FILE_BASE}.y.hpp\" ] ; then\n\tif [ \"${DERIVED_FILES_DIR}/${CURRENT_ARCH}/${INPUT_FILE_BASE}.y.hpp\" -nt \"${DERIVED_FILES_DIR}/${CURRENT_ARCH}/${INPUT_FILE_BASE}.y.h\" ] ; then\n\t\tcp \"${DERIVED_FILES_DIR}/${CURRENT_ARCH}/${INPUT_FILE_BASE}.y.hpp\" \"${DERIVED_FILES_DIR}/${CURRENT_ARCH}/${INPUT_FILE_BASE}.y.h\"\n\tfi\nfi\n"; }; 99AB96D808833FCD00AA3C8C /* PBXBuildRule */ = { isa = PBXBuildRule; @@ -1031,7 +1028,7 @@ 1AA2EEA30CBBE2BF0017E185 /* llfloaterurldisplay.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llfloaterurldisplay.cpp; sourceTree = ""; }; 1AA2EEA50CBBE2D40017E185 /* llremoteparcelrequest.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llremoteparcelrequest.h; sourceTree = ""; }; 1AA2EEA60CBBE2D40017E185 /* llremoteparcelrequest.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llremoteparcelrequest.cpp; sourceTree = ""; }; - 1AB0DADC0A52E8A0001CACEB /* message_template.msg */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = message_template.msg; path = ../../scripts/messages/message_template.msg; sourceTree = SOURCE_ROOT; }; + 1AB0DADC0A52E8A0001CACEB /* message_template.msg */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text; name = message_template.msg; path = ../../scripts/messages/message_template.msg; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.simpleColoring; }; 1AD3940C0CAB0003004BA76A /* llurlsimstring.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llurlsimstring.h; sourceTree = ""; }; 1AD3940D0CAB0003004BA76A /* llurldispatcher.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llurldispatcher.h; sourceTree = ""; }; 1AD3940E0CAB000F004BA76A /* llurlsimstring.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llurlsimstring.cpp; sourceTree = ""; }; @@ -1538,7 +1535,7 @@ 6192227F074A9B5A005E1F34 /* lscript_byteconvert.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lscript_byteconvert.h; sourceTree = ""; }; 61922280074A9B5B005E1F34 /* lscript_byteformat.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lscript_byteformat.h; sourceTree = ""; }; 61922286074A9B5B005E1F34 /* indra.l */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.lex; path = indra.l; sourceTree = ""; }; - 61922287074A9B5B005E1F34 /* indra.y */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.yacc; path = indra.y; sourceTree = ""; }; + 61922287074A9B5B005E1F34 /* indra.y */ = {isa = PBXFileReference; explicitFileType = sourcecode.yacc; fileEncoding = 30; path = indra.y; sourceTree = ""; }; 61922289074A9B5B005E1F34 /* lscript_bytecode.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lscript_bytecode.cpp; sourceTree = ""; }; 6192228A074A9B5B005E1F34 /* lscript_bytecode.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lscript_bytecode.h; sourceTree = ""; }; 6192228B074A9B5B005E1F34 /* lscript_error.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lscript_error.cpp; sourceTree = ""; }; @@ -2085,8 +2082,6 @@ A241CB7C07B3DE0D001A39E3 /* llviewerprecompiledheaders.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llviewerprecompiledheaders.h; sourceTree = ""; }; A241CB8807B3E324001A39E3 /* llperlin.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llperlin.h; sourceTree = ""; }; A241CB8907B3E324001A39E3 /* llplane.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llplane.h; sourceTree = ""; }; - A241CB8C07B3E383001A39E3 /* lllogtextmessage.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lllogtextmessage.cpp; sourceTree = ""; }; - A241CB8D07B3E383001A39E3 /* lllogtextmessage.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lllogtextmessage.h; sourceTree = ""; }; A241CB8E07B3E383001A39E3 /* llmessagethrottle.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llmessagethrottle.cpp; sourceTree = ""; }; A241CB8F07B3E383001A39E3 /* llmessagethrottle.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llmessagethrottle.h; sourceTree = ""; }; A241CB9407B3E3A7001A39E3 /* llperlin.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llperlin.cpp; sourceTree = ""; }; @@ -2096,8 +2091,6 @@ A30273560B3A13D800704420 /* llvertexbuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llvertexbuffer.h; sourceTree = ""; }; A3077BFB09DCB8140059ED75 /* lldrawpoolstars.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lldrawpoolstars.cpp; sourceTree = ""; }; A3077BFC09DCB8140059ED75 /* lldrawpoolstars.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = lldrawpoolstars.h; sourceTree = ""; }; - A3077BFF09DCB8140059ED75 /* llfloaterhtmlhelp.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llfloaterhtmlhelp.cpp; sourceTree = ""; }; - A3077C0009DCB8140059ED75 /* llfloaterhtmlhelp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llfloaterhtmlhelp.h; sourceTree = ""; }; A3077C0309DCB8140059ED75 /* llpanelvolume.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llpanelvolume.cpp; sourceTree = ""; }; A3077C0409DCB8140059ED75 /* llpanelvolume.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llpanelvolume.h; sourceTree = ""; }; A3077C0509DCB8140059ED75 /* llvostars.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llvostars.cpp; sourceTree = ""; }; @@ -2274,6 +2267,7 @@ EB9E831E082AEEF3007B4479 /* llview.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llview.h; sourceTree = ""; }; EBAAFE160858EBA400B9269A /* llxmlnode.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llxmlnode.cpp; sourceTree = ""; }; EBAAFE170858EBA400B9269A /* llxmlnode.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llxmlnode.h; sourceTree = ""; }; + F4DE841C0CC5567300BD4636 /* llpreeditor.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llpreeditor.h; sourceTree = ""; }; F62641080B1F757D00E5BBAD /* llwindowheadless.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = llwindowheadless.cpp; sourceTree = ""; }; F62641090B1F757D00E5BBAD /* llwindowheadless.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = llwindowheadless.h; sourceTree = ""; }; FD1558220A06BB5F00DE9AE5 /* lldate.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = lldate.cpp; sourceTree = ""; }; @@ -2688,8 +2682,6 @@ 26F52A7E051F61DF00A80050 /* llfloatergroups.cpp */, 91A155FE081EE7F70089988C /* llfloaterhtml.cpp */, 91A15600081EE8060089988C /* llfloaterhtml.h */, - A3077BFF09DCB8140059ED75 /* llfloaterhtmlhelp.cpp */, - A3077C0009DCB8140059ED75 /* llfloaterhtmlhelp.h */, 91B9EC4C06370E4D007B3F3E /* llfloaterimagepreview.cpp */, EB3EE70B083AC23D002BF676 /* llfloaterimagepreview.h */, E224ACBC0874D6150039C1A6 /* llfloaterimport.cpp */, @@ -3276,8 +3268,6 @@ 9190431308327117002396D4 /* llpumpio.h */, 9190431408327117002396D4 /* llservice.cpp */, 9190431508327117002396D4 /* llservice.h */, - A241CB8C07B3E383001A39E3 /* lllogtextmessage.cpp */, - A241CB8D07B3E383001A39E3 /* lllogtextmessage.h */, A241CB8E07B3E383001A39E3 /* llmessagethrottle.cpp */, A241CB8F07B3E383001A39E3 /* llmessagethrottle.h */, 616C4E2C07550E97006C2C65 /* sound_ids.h */, @@ -3524,6 +3514,7 @@ 6192226F074A9B5A005E1F34 /* llmousehandler.h */, 61922274074A9B5A005E1F34 /* llwindow.cpp */, 61922275074A9B5A005E1F34 /* llwindow.h */, + F4DE841C0CC5567300BD4636 /* llpreeditor.h */, ); name = llwindow; path = ../llwindow; @@ -4639,7 +4630,6 @@ 91287B4C078DE4B300E958B2 /* llviewerkeyboard.cpp in Sources */, 913AA1FD079855E900D111CE /* llfloaterfriends.cpp in Sources */, A241CB7D07B3DE0D001A39E3 /* llviewerprecompiledheaders.cpp in Sources */, - A241CB9007B3E383001A39E3 /* lllogtextmessage.cpp in Sources */, A241CB9207B3E383001A39E3 /* llmessagethrottle.cpp in Sources */, A241CB9507B3E3A7001A39E3 /* llperlin.cpp in Sources */, 91E86A1907BBFA5D00F56E75 /* llmediaengine.cpp in Sources */, @@ -4728,7 +4718,6 @@ 9CD49D5709D0BAC100192434 /* llflexibleobject.cpp in Sources */, 9CD49D5B09D0BB1500192434 /* lllocalanimationobject.cpp in Sources */, A3077C0709DCB8140059ED75 /* lldrawpoolstars.cpp in Sources */, - A3077C0909DCB8140059ED75 /* llfloaterhtmlhelp.cpp in Sources */, A3077C0B09DCB8140059ED75 /* llpanelvolume.cpp in Sources */, A3077C0C09DCB8140059ED75 /* llvostars.cpp in Sources */, 1AFA409C0A2DFC7F00C13F70 /* llviewernetwork.cpp in Sources */, @@ -4929,7 +4918,6 @@ C1E4A5D00CC0216F005FB0A6 /* net.cpp in Sources */, C1E4A5D10CC0216F005FB0A6 /* llxfer_mem.cpp in Sources */, C1E4A5D20CC0216F005FB0A6 /* llthrottle.cpp in Sources */, - C1E4A5D30CC0216F005FB0A6 /* lllogtextmessage.cpp in Sources */, C1E4A5920CC02160005FB0A6 /* llevent.cpp in Sources */, C1E4A5D40CC0216F005FB0A6 /* llinstantmessage.cpp in Sources */, C1E4A5D50CC0216F005FB0A6 /* llmessagebuilder.cpp in Sources */, @@ -5236,6 +5224,7 @@ isa = XCBuildConfiguration; buildSettings = { LIBRARY_SEARCH_PATHS = "$(inherited)"; + OTHER_LDFLAGS = ""; PRODUCT_NAME = llcommon; }; name = Universal; @@ -5362,6 +5351,7 @@ "-ffor-scope", "-Wno-reorder", ); + OTHER_LDFLAGS = "-Wl,-search_paths_first"; PREBINDING = NO; PRESERVE_DEAD_CODE_INITS_AND_TERMS = YES; SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; @@ -5385,6 +5375,7 @@ GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_MODEL_TUNING = G5; GCC_OPTIMIZATION_LEVEL = 0; GENERATE_MASTER_OBJECT_FILE = NO; @@ -5410,6 +5401,7 @@ EXPORTED_SYMBOLS_FILE = ""; GCC_ENABLE_FIX_AND_CONTINUE = NO; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_MODEL_TUNING = G5; GENERATE_MASTER_OBJECT_FILE = NO; INSTALL_PATH = "@executable_path/../Resources/"; @@ -5432,6 +5424,7 @@ EXECUTABLE_PREFIX = lib; EXPORTED_SYMBOLS_FILE = ""; GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_INLINES_ARE_PRIVATE_EXTERN = NO; GCC_MODEL_TUNING = G5; GENERATE_MASTER_OBJECT_FILE = NO; INSTALL_PATH = "@executable_path/../Resources/"; @@ -5451,6 +5444,7 @@ isa = XCBuildConfiguration; buildSettings = { LIBRARY_SEARCH_PATHS = "$(inherited)"; + OTHER_LDFLAGS = ""; PRODUCT_NAME = llcommon; }; name = Development; @@ -5459,6 +5453,7 @@ isa = XCBuildConfiguration; buildSettings = { LIBRARY_SEARCH_PATHS = "$(inherited)"; + OTHER_LDFLAGS = ""; PRODUCT_NAME = llcommon; }; name = Deployment; @@ -5635,6 +5630,7 @@ "-ffor-scope", "-Wno-reorder", ); + OTHER_LDFLAGS = "-Wl,-search_paths_first"; PREBINDING = NO; PRESERVE_DEAD_CODE_INITS_AND_TERMS = YES; SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; @@ -5689,12 +5685,15 @@ "-DLL_RELEASE_FOR_DOWNLOAD=1", "-DNDEBUG", "-fconstant-cfstrings", + "-gfull", + "-mlong-branch", ); OTHER_CPLUSPLUSFLAGS = ( "$(OTHER_CFLAGS)", "-ffor-scope", "-Wno-reorder", ); + OTHER_LDFLAGS = "-Wl,-search_paths_first"; PREBINDING = NO; PRESERVE_DEAD_CODE_INITS_AND_TERMS = YES; SDKROOT = /Developer/SDKs/MacOSX10.4u.sdk; @@ -5712,6 +5711,7 @@ isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = NO; + DEAD_CODE_STRIPPING = NO; EXECUTABLE_PREFIX = lib; GCC_DYNAMIC_NO_PIC = NO; GCC_ENABLE_FIX_AND_CONTINUE = YES; @@ -5723,6 +5723,7 @@ LIBRARY_SEARCH_PATHS = "$(inherited)"; OTHER_LDFLAGS = "-Wl,-search_paths_first"; PREBINDING = NO; + PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO; PRODUCT_NAME = llkdu; ZERO_LINK = YES; }; @@ -5732,6 +5733,7 @@ isa = XCBuildConfiguration; buildSettings = { COPY_PHASE_STRIP = YES; + DEAD_CODE_STRIPPING = NO; EXECUTABLE_PREFIX = lib; GCC_ENABLE_FIX_AND_CONTINUE = NO; GCC_GENERATE_DEBUGGING_SYMBOLS = NO; @@ -5743,6 +5745,7 @@ LIBRARY_SEARCH_PATHS_QUOTED_2 = "\"$(SRCROOT)/../../libraries/powerpc-darwin/lib_release\""; OTHER_LDFLAGS = "-Wl,-search_paths_first"; PREBINDING = NO; + PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO; PRODUCT_NAME = llkdu; ZERO_LINK = NO; }; @@ -5751,6 +5754,7 @@ D645935C0B3B4DA300FAB68F /* Universal */ = { isa = XCBuildConfiguration; buildSettings = { + DEAD_CODE_STRIPPING = NO; EXECUTABLE_PREFIX = lib; GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_INLINES_ARE_PRIVATE_EXTERN = NO; @@ -5761,6 +5765,7 @@ LIBRARY_SEARCH_PATHS_QUOTED_2 = "\"$(SRCROOT)/../../libraries/powerpc-darwin/lib_release\""; OTHER_LDFLAGS = "-Wl,-search_paths_first"; PREBINDING = NO; + PRESERVE_DEAD_CODE_INITS_AND_TERMS = NO; PRODUCT_NAME = llkdu; ZERO_LINK = YES; }; diff --git a/linden/indra/newview/macview_Prefix.h b/linden/indra/newview/macview_Prefix.h index d4b388c..acb31d9 100644 --- a/linden/indra/newview/macview_Prefix.h +++ b/linden/indra/newview/macview_Prefix.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -221,7 +221,7 @@ #include "indra_constants.h" // for key and mask constants #include "llfontgl.h" #include "v4color.h" -#include "llwindow_impl.h" // shell_open() +#include "llwindow_impl.h" #include "llbutton.h" #include "llcheckboxctrl.h" diff --git a/linden/indra/newview/moviemaker.cpp b/linden/indra/newview/moviemaker.cpp index 6c6707e..369637a 100644 --- a/linden/indra/newview/moviemaker.cpp +++ b/linden/indra/newview/moviemaker.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/moviemaker.h b/linden/indra/newview/moviemaker.h index 0ff3a4b..f18ce3e 100644 --- a/linden/indra/newview/moviemaker.h +++ b/linden/indra/newview/moviemaker.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/newview.vcproj b/linden/indra/newview/newview.vcproj index 069446a..952ea09 100644 --- a/linden/indra/newview/newview.vcproj +++ b/linden/indra/newview/newview.vcproj @@ -37,7 +37,7 @@ Name="VCCustomBuildTool"/> - - - - + + + + + + + + + + + + + + + + + + + + + + + + - - @@ -2263,10 +2259,6 @@ > - - @@ -3357,7 +3349,7 @@ + + @@ -3449,6 +3445,10 @@ > + + @@ -3469,6 +3469,10 @@ > + + @@ -3521,6 +3525,14 @@ > + + + + @@ -3533,6 +3545,10 @@ > + + @@ -3541,10 +3557,18 @@ > + + + + @@ -3553,6 +3577,10 @@ > + + @@ -3589,10 +3617,18 @@ > + + + + @@ -3625,6 +3661,10 @@ > + + @@ -3637,6 +3677,10 @@ > + + @@ -3669,6 +3713,10 @@ > + + @@ -3677,6 +3725,10 @@ > + + @@ -3689,6 +3741,10 @@ > + + @@ -3705,6 +3761,10 @@ > + + @@ -3825,6 +3885,10 @@ > + + @@ -3845,10 +3909,18 @@ > + + + + @@ -3857,6 +3929,10 @@ > + + @@ -3869,6 +3945,14 @@ > + + + + @@ -3885,6 +3969,14 @@ > + + + + @@ -3897,6 +3989,10 @@ > + + @@ -3929,6 +4025,10 @@ > + + @@ -3937,10 +4037,22 @@ > + + + + + + @@ -4001,6 +4113,14 @@ > + + + + @@ -4053,6 +4173,10 @@ > + + @@ -4065,6 +4189,26 @@ > + + + + + + + + + + @@ -4089,6 +4233,10 @@ > + + @@ -4116,6 +4264,10 @@ RelativePath=".\app_settings\trees.xml" > + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/linden/indra/newview/noise.cpp b/linden/indra/newview/noise.cpp index a9ce757..6b8a9b4 100644 --- a/linden/indra/newview/noise.cpp +++ b/linden/indra/newview/noise.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/noise.h b/linden/indra/newview/noise.h index fc449ee..dad239c 100644 --- a/linden/indra/newview/noise.h +++ b/linden/indra/newview/noise.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/pipeline.cpp b/linden/indra/newview/pipeline.cpp index 919560c..a5b7d34 100644 --- a/linden/indra/newview/pipeline.cpp +++ b/linden/indra/newview/pipeline.cpp @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, @@ -3667,6 +3667,11 @@ void LLPipeline::clearRenderMap() void LLPipeline::resetVertexBuffers(LLDrawable* drawable) { + if (!drawable) + { + return; + } + for (S32 i = 0; i < drawable->getNumFaces(); i++) { LLFace* facep = drawable->getFace(i); diff --git a/linden/indra/newview/pipeline.h b/linden/indra/newview/pipeline.h index f28ca41..9b0706f 100644 --- a/linden/indra/newview/pipeline.h +++ b/linden/indra/newview/pipeline.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/randgauss.h b/linden/indra/newview/randgauss.h index ac9bf7f..ab2b07c 100644 --- a/linden/indra/newview/randgauss.h +++ b/linden/indra/newview/randgauss.h @@ -12,12 +12,12 @@ * ("GPL"), unless you have obtained a separate licensing agreement * ("Other License"), formally executed by you and Linden Lab. Terms of * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlife.com/developers/opensource/gplv2 + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 * * There are special exceptions to the terms and conditions of the GPL as * it is applied to this Source Code. View the full text of the exception * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at http://secondlife.com/developers/opensource/flossexception + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception * * By copying, modifying or distributing this software, you acknowledge * that you have read and understood your obligations described above, diff --git a/linden/indra/newview/releasenotes.txt b/linden/indra/newview/releasenotes.txt index ae96b9a..f88987d 100644 --- a/linden/indra/newview/releasenotes.txt +++ b/linden/indra/newview/releasenotes.txt @@ -1,105 +1,132 @@ -Release Notes for Second Life 1.18.6(4) January 14, 2007 +Release Notes for Second Life 1.19.0(0) February 1st, 2008 ===================================== -Known issue: -* VWR-2574: Non-default sound devices for voice can't be used in Vista -** This appears to be a Vista issue not a Second Life issue. - -Fixes: -* Fix German translation of the "Release Keys" tab -* Crash on login page when using Logitech LCD Keyboard -* Connect button doesn't enable -* Language names need to have a consistent format in preferences drop-down -* QuickTime disabled message cannot be ignored -* Linux client doesn't recognise that a viewer is already running -* Display HTML error page in selected language when viewer is unable to connect to second life URL -* SVC-1125: New Search: Beacons aren't shown when teleporting to regions with "Allow Direct Teleport" disabled -* VWR-3948: Underlayers no longer removable by pie menu in Windlight, release candidates -* VWR-3667;About Land > Access: On group owned land, group owner gets eject message when "Public Access" is unchecked -* VWR-3829: Cursor in Logon edit boxes difficult to see -* VWR-3501: Create/Edit Gesture window preview button blanks after pressing -* VWR-4010: New search does not accept non ASCII characters - -Source changes: -* VWR-3748: Builds fail on 1.18.6 RC if not using MOZLIB due to miss -* Fix for viewer_manifest.py for 64-bit builds - - -Release Notes for Second Life 1.18.6(3) December 29, 2007 -===================================== -Fixes: -* Corrected login page URL for German language +New features and changes: +* Age Verification: +** The user interface for parcel and estate access has been clarified and improved. +** Added the ability to restrict access to parcels and estates to age verified adults. +** Removed the ability to *ban* access to Residents who have provided payment info or who have used payment info. We continue to support the ability to *allow* access to only those who have provided payment info. +* Crash Reporter +** The crash reporting mechanism has been improved. Following a crash, more useful information will be sent and reports should now take less than 10 seconds. -Release Notes for Second Life 1.18.6(2) December 20, 2007 -===================================== -New features: -* VWR-1115: Added preference settings for web browser proxy -* VWR-3741: Added -loginpage option to client to specify the login page +* VWR-210: Voice Support on Linux (EXPERIMENTAL) - see README-linux-voice.txt -Changes: -* Reverted bad fix for: -** Connect button does not have focus in HTML login screen +* Other changes: +** Change alert message that pops up when you set Busy +** Add "Teleporting from SLURL to SLURL" to the chat history to provide quick and dirty "back" links +** Print the name of the missing gesture in the error message +** Remove "New Account..." and "Preferences" buttons from login screen for 1.19.0 Fixes: -* VWR-3815: Double-click on login name/password doesn't select name/password -* VWR-3814: Fix tracking of click-throughs for Classifieds -* Menubar doesn't turn red when connecting to a beta grid -* VWR-3703: No wind sound -* VWR-3659: Log in screen in 1.18.6 RC(0) displays UI elements that should be viewable only after login -* SVC-1032: Age Verification status shows in profile -* XML resizing files to accommodate translated strings -* New translated strings for the UI -* Disable QuickTime when the installed version is less than version with RTSP exploit +* SVC-750: Avatar sitting on a prim no longer able to be manipulated with llSetLinkPrimitiveParams +* SVC-930: Prims set for sale - prices are incorrectly set when multiple prims taken to inventory and rezzed +* SVC-1125: New Search: Beacons aren't shown when teleporting to regions with "Allow Direct Teleport" disabled +* VWR-1125: Clicking Title Bar While Mouselook'd Repositions SL Window +* VWR-1137: Inventory names out of sync after renaming via Properties window +* VWR-1145: Unable To Connect help not available +* VWR-1162: Land for sale includes L$1 parcels that are not actually for sale +* VWR-1350: Color settings do not appear to be applied to LSL default text +* VWR-1475: OpenJPEG always uploads single layer lossless images +* VWR-1590: Keyboard changes inventory selection after right-click +* VWR-1627: Classified metrics are reset to 0 when the ad is updated +* VWR-1651: Add ability to open a partners profile whilst viewing an avatar's profile +* VWR-1774: Some avatar positions result in no Z-axis arrow when editing attachments +* VWR-1873: Typos in en-us locale file * VWR-1919: Remove texture UUID information from UI unless full-perm -* Fixed crash in Crash Logger - -Source changes: -* Add support for setting proxy innformation to LLMozLib -* Add support for changing caret color in embedded browser - - -Release Notes for Second Life 1.18.6(1) December 12, 2007 -===================================== -Changes: +* VWR-2030: Avatar only turns half-way in Appearance Mode +* VWR-2142: Parcel voice icon doesn't reflect disabled status if voice isn't used +* VWR-2256: Mac updater directory permission issues +* VWR-2367: Wrong handling of maximum length of Group Notice message +* VWR-2404: lossless texture compression on small textures not lossless +* VWR-2410: noise dot appear in chat window when clien running long with chatting. +* VWR-2411: Possible crash in pipeline.cpp +* VWR-2412: Possible crash drawpoolwater +* VWR-2421: ATI Radeon HD 2900 XT + Second Life = "Couldn't match GPU to a class","Setting GPU Class to Class0" +* VWR-2483: the macviewer.xcodeprj file doesn't create stripped binaries on Deployment or Universal +* VWR-250: Preedit (composition) strings are shown poorly when typing Japanese text on Windows +* VWR-2550: Scuplty vertex coordinates are size/256 meters too small on the positive faces +* VWR-2614: gActiveChannelSpeakerMgr not deleted at end of program in viewer.cpp +* VWR-2617: Adds LLSD support to flex/light/sculpt params for primitives +* VWR-2652: Changes needed to compile viewer against lastest libopenjpeg2000 +* VWR-2684: Minor leak in floaters using layoutstacks +* VWR-2722: Muting an object with pie menu only mutes the prim you select, not entire linkset +* VWR-2847: Wrong hover text in Japanese UI +* VWR-2854: Some sculpted prims render as balls on close zoom, which look fine in older clients +* VWR-2867: Eyes rotate unnaturally around their X axis. Clockwise/Counter-Clockwise +* VWR-289: URLs for video media streaming need to be URL-encoded or stream doesn't work +* VWR-2959: Windows (Visual Studio) solution file refers to a non-existing project "build_all" +* VWR-3088: Unchecking "Automatic Appearance Camera Movement" no longer has any effect +* VWR-3206: OpenJPEG svn478 causes slviewer to crash +* VWR-3428: Checking a users profile while editing a linked set causes viewer crash +* VWR-3458: Mouse cursor background is opaque white instead of transparent on big endian systems +* VWR-3558: llLoadURL cannot be muted +* VWR-356: Move delete to the bottom of context menus, separated by spacer +* VWR-3748: Builds fail on 1.18.6 RC if not using MOZLIB due to missing #if LL_LIBXUL_ENABLED in 3 places in indra/newview/llpanellogin.cpp +* VWR-3948: Underlayers no longer removable by pie menu in Windlight, release candidates +* VWR-412: Object editing arrows hidden but clickable on objects you can't edit. +* dialogs have extra vertical space +* Photo Album: name in Properties cut off some Japanese characters +* New gestures do not appear active in inventory +* Make parcel name in menu "look" active +* "Wear" pie option shows up for many objects even if resident does not own and cannot wear them. +* Textures on no-transfer objects can be transferred +* Deleted gestures still work +* Inventory description out of sync after renaming via Properties window +* Show private estate tiles when World Map is zoomed out +* Properties description not updated when preview description updated +* Buying object contents broken +* Improve window opening behavior, ensuring it is mostly on screen +* No-modify objects can be modified through Open pane +* Inventory names out of sync after renaming via Properties +* Japanese IME mode should be set and postiion of any input windows fixed for non-Japanese fields +* ctrl-shift-w doesn't work if no windows have focus +* Avatar falling in place - Alliez Mysterio +* Linux crash reporter does not run on next execution after forcing an infinite loop and forcefully exiting +* hitting enter should immediately set the value of a field +* Inventory Folder Loading state not clearly indicated +* Add warning dialog to the Land Sale process to warn against selling land to Anyone +* Legacy flossexception link needs to be fixed in source +* make link from client log in window to "Forgot Password" page +* Remove button under estate managers list enables after estate manager clicks in the list +* Changing search field should cancel current selection +* Estate tab within Tools / Region Estate has wrong settings for enable of Restrict Access upon initialization +* llEscapeURL and llUnescapeURL caps output to 255 characters +* XUI LoadFromXML function doesn't work +* Sanitize floater sizing behavior when SL window is made very small +* Animation won't stop if avatar teleports while animated +* Can't paste name of object into View > Mute List > Mute object by name +* pressing ctrl-F10 then Escape causes keyboard to be unresponsive +* Make SL viewer updater show a progress bar so that people know how long to wait +* Can't double-click on groups in profile after changing your active title +* Getting multiple copies of texture dragged onto prim +* blue dialog's 'next' widget steals focus +* Audio should be encoded for upload at a 'good enough' quality rather than a user-selected bitrate +* multiple preview windows open for a single texture/snapshot saved inside a note card +* Enhance Viewer to support new Age Verification feature +* Rename crash setting to cause crash logger to come up for all residents * Change crash logger "Remember this choice" function to default to on -* Connect button now has focus on login screen -* Inventory folder loading state now more clearly indicated +* Rework Ban tab of floater_about_land +* Windows IME positioning fixed +* Viewer crashes in assert when playing Sword Strike animation +* Unable to set 'Group Access' for land that is also 'Public Access' (Was VWR-3667) +* Disable QuickTime when the installed version is less than version with RTSP exploit +* Move fullscreen message from login screen to viewer prefs +* linux client doesn't recognise that a viewer is already running (slurl crapout) +* Search results window displays "s..." and "n..." instead of "searching..." and "none found" +* QuickTime disabled message can not be ignored +* Crash on login page when using Logitech LCD Keyboard +* SEC-17 Ability to Access Sculpted Prim Textures from Database without owning actual sculpt texture, allowing for people to "steal" sculpts. +* info window does not pop up when transitioning from a Havok1 to Havok4 region +* Repoint Report Bug... Viewer link to Pjira -Fixes: -* VWR-3558: llLoadURL cannot be muted -* VWR-3428: Checking a users profile while editing a linked set causes viewer crash -* Viewer channel and version numbers reported incorrectly during login -* Inventory cache version number incorrectly incremented, leading to perceved loss -* Age verification status hard to read in the profile field +Source changes: +* Upgrade Win32 libvorbis to v1.2 +* VWR-2881: Bundled Mesa libs are not GPL compatible +* upgrade in-tree Linux GL headers to Mesa 7.x +* upgrade in-tree Win32 GL headers to version without SGI Free B license +* Rebuild and/or update libraries to use statically linked libs. +* Remove llfloaterhtmlhelp.cpp / h and floater_html_help.xml -Release Notes for Second Life 1.18.6(0) December 5, 2007 -===================================== -Changes: -* Age Verification: -** The user interface for parcel and estate access has been clarified and improved. -** Added the ability to restrict access to parcels and estates to age verified adults. See an upcoming blog post for more details -** Removed the ability to *ban* access to Residents who have provided payment info or who have used payment info. We continue to support the ability to *allow* access to only those who have provided payment info. -* Login/Authentication -** We changed the way viewers login to Second Life to support future anti-fraud efforts -** The changes are largely internal -** Apart from some minor cosmetic differences, the behavior of the login screen is unchanged -** For more information, read our public Wiki article found here: http://wiki.secondlife.com/wiki/Viewer_Authentication -* Crash Reporter -** The crash reporting mechanism has been improved. Following a crash, more useful information will be sent and reports should now take less than 10 seconds. - -Fixes: -* VWR-1627: Classified metrics are reset to 0 when the ad is updated -* VWR-1162: Land for sale includes L$1 parcels that are not actually for sale -* VWR-1125: Clicking Title Bar While Mouselook'd Repositions SL -* VWR-2483: the macviewer.xcodeprj file doesn't create stripped binaries on Deployment or Universal -* VWR-2404: lossless texture compression on small textures not lossless -* VWR-2046: Focus is sent to menu/money/notification window -* Land owners can no longer delete objects belonging to others (but can still return objects) -* Positioning fixes for Japanese IME for fields where only ASCII is allowed -* Ctrl-Shift-W now works even if no windows have focus -* Fixed issue where avatar is stuck falling in place after login -* HTML login screen now functional again on Linux -* Floater sizing behavior corrected when viewer window is made very small Release Notes for Second Life 1.18.5(3) November 29, 2007 ===================================== diff --git a/linden/indra/newview/res/newViewRes.rc b/linden/indra/newview/res/newViewRes.rc index ba25ec0..7ae5595 100644 --- a/linden/indra/newview/res/newViewRes.rc +++ b/linden/indra/newview/res/newViewRes.rc @@ -228,8 +228,8 @@ TOOLPIPETTE CURSOR "toolpipette.cur" // VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,18,6,4 - PRODUCTVERSION 1,18,6,4 + FILEVERSION 1,19,0,0 + PRODUCTVERSION 1,19,0,0 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L @@ -246,12 +246,12 @@ BEGIN BEGIN VALUE "CompanyName", "Linden Lab" VALUE "FileDescription", "Second Life" - VALUE "FileVersion", "1.18.6.3" + VALUE "FileVersion", "1.19.0.0" VALUE "InternalName", "Second Life" VALUE "LegalCopyright", "Copyright 2001-2007, Linden Research, Inc." VALUE "OriginalFilename", "SecondLife.exe" VALUE "ProductName", "Second Life" - VALUE "ProductVersion", "1.18.6.3" + VALUE "ProductVersion", "1.19.0.0" END END BLOCK "VarFileInfo" diff --git a/linden/indra/newview/res/resource.h b/linden/indra/newview/res/resource.h index e4d01b1..32eceb7 100644 --- a/linden/indra/newview/res/resource.h +++ b/linden/indra/newview/res/resource.h @@ -1,3 +1,33 @@ +/** + * @file resource.h + * + * $LicenseInfo:firstyear=2001&license=viewergpl$ + * + * Copyright (c) 2001-2008, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ + //{{NO_DEPENDENCIES}} // Microsoft Visual C++ generated include file. // Used by newViewRes.rc diff --git a/linden/indra/newview/skins/textures/textures.xml b/linden/indra/newview/skins/textures/textures.xml index cc9f61c..b2586fb 100644 --- a/linden/indra/newview/skins/textures/textures.xml +++ b/linden/indra/newview/skins/textures/textures.xml @@ -86,17 +86,24 @@ - + + - - - - - + + + + 1 - + + + + + + + + @@ -290,7 +297,6 @@ - @@ -305,9 +311,6 @@ - - - @@ -404,7 +407,6 @@ - @@ -419,4 +421,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/linden/indra/newview/skins/xui/de/alerts.xml b/linden/indra/newview/skins/xui/de/alerts.xml index b98dd58..f09d0f6 100644 --- a/linden/indra/newview/skins/xui/de/alerts.xml +++ b/linden/indra/newview/skins/xui/de/alerts.xml @@ -150,6 +150,20 @@ Möchten Sie [FIRST_NAME] [LAST_NAME] Änderungsrechte gewähren? Nein + + + Die Gewährung von Änderungsrechten an andere Einwohner ermöglicht es diesen, +JEDES BELIEBIGE Objekt zu ändern, das Sie in der Second Life-Welt besitzen. Seien Sie SEHR vorsichtig beim Erteilen +dieser Erlaubnis. +Möchten Sie den ausgewählten Einwohnern Änderungsrechte gewähren? + + + + Möchten Sie [FIRST_NAME] [LAST_NAME] die Änderungsrechte entziehen? @@ -161,6 +175,17 @@ Möchten Sie [FIRST_NAME] [LAST_NAME] Änderungsrechte gewähren? Nein + + + Möchten Sie den ausgewählten Einwohnern die Änderungsrechte entziehen? + + + + Möchten Sie [FIRST] [LAST] aus Ihrer Freundesliste entfernen? @@ -470,6 +495,20 @@ Der Verkaufspreis beträgt [SALE_PRICE] L$ und wird automatisch für den Verkauf Abbrechen + + + ACHTUNG: Wenn Sie auf 'An jeden verkaufen' klicken, kann jeder in Second Life Ihr Land kaufen, auch Einwohner in anderen Regionen. + +Die ausgewählten [LAND_SIZE] qm Land werden zum Verkauf freigegeben. +Der Verkaufspreis beträgt [SALE_PRICE] L$ und wird automatisch für den Verkauf an [NAME] autorisiert. + + + + Möchten Sie alle Ihre Objekte auf dieser Parzelle, @@ -688,9 +727,20 @@ Möchten Sie auf www.secondlife.com ein Konto anlegen? Abbrechen + + + QuickTime wurde deaktiviert, weil Sie eine alte Version verwenden + + + Streaming-Video wurde deaktiviert, weil die QuickTime-Version +auf Ihrem Computer nicht mehr aktuell ist. + +Laden Sie ein Update von http://www.apple.com/quicktime/ herunter. + + - Anzeigen erscheinen für eine Woche auf der Registerkarte 'Anzeigen' + Anzeigen erscheinen für eine Woche unter 'Anzeigen' im Suchverzeichnis. Füllen Sie Ihre Anzeige aus und klicken Sie auf 'Veröffentlichen...', um sie zum Verzeichnis hinzuzufügen. @@ -1365,7 +1415,7 @@ Region. - Mindestens ein Objekt ist gesperrt oder gehört nicht Ihnen. + Mindestens ein Objekt ist gesperrt oder gehört Ihnen nicht. Wenn Ihnen ein Objekt nicht gehört und Sie es nehmen, werden die Rechte für den nächsten Eigentümer angewandt und Sie können es möglicherweise nicht bearbeiten oder kopieren. @@ -2499,11 +2549,9 @@ Bitte überprüfen Sie Ihre Netzwerkverbindung. - Verbindung nicht möglich. Anmeldeserver hat das Anmeldepaket -nie erhalten. + Die Verbindung kann nicht hergestellt werden. Möglicherweise besteht ein Problem mit Ihrer Internetverbindung oder den Second Life-Servern. -Bitte versuchen Sie es in einigen Minuten erneut oder klicken Sie -für Unterstützung und einen Link auf die Systemstatus-Webseite auf 'Hilfe'. +Überprüfen Sie Ihre Internetverbindung und versuchen Sie es dann erneut, oder klicken Sie auf 'Hilfe', um zu unserer Supportseite zu gelangen, oder klicken Sie auf 'Teleportieren', um nach Hause zu teleportieren. + @@ -3129,7 +3180,8 @@ Inhalten wird das Objekt beschädigt. Möchten Sie dieses Element löschen? Beschäftigt-Modus aktiviert. Chat und Instant Messages werden ausgeblendet. Instant Messages erhalten Ihre Beschäftigt-Antwort. Alle Teleport- -und Inventarangebote werden abgelehnt. +Angebote werden ausgeschlagen. Alle Inventar-Angebote werden in den +Papierkorb verschoben. Beim Aktivieren des Beschäftigt-Modus @@ -3665,10 +3717,24 @@ Wenn der Wert unter 45 liegt, öffnen Sie den Bereich 'Time' (Zeit) ga - Schlechte Sim-Performance ist oftmals auf physische Objekte zurückzuführen. Öffnen Sie die Statistikleiste (Strg-Umschalt-1). Sehen Sie sich den Wert für 'Simulator Physics FPS' (Simulator Physik-FPS) an. Wenn der Wert unter 45 liegt, öffnen Sie den Bereich 'Time' (Zeit) ganz unten in der Statistikleiste. Wenn der Wert für 'Sim Time (Physics) ' [Sim Time (Physik)] 20 ms oder höher ist, klicken Sie auf 'Top-Kollisionsobjekte'. Der Name und die Position der physikalischen Objekte, die für die schlechte Performance verantwortlich sind, werden angezeigt. - Wenn Sie das Kontrollkästchen 'Kollisionen deaktivieren' aktivieren und auf -'Übernehmen' klicken, werden alle Objekt-Objekt-Kollisionen in der Region zeitweilig deaktiviert. Dieser Schritt ist eventuell notwendig, damit Sie an die Position des gemeldeten 'Top-Kollisionsobjekts' reisen können. Sobald Sie dort angekommen sind, sollten Sie das Objekt untersuchen – kollidiert es ständig mit anderen Objekten? Möglicherweise müssen Sie sich an den Objekt-Eigentümer wenden oder das Objekt löschen bzw. zurückgeben. Um Kollisionen in der Region wieder zu aktivieren, deaktivieren Sie 'Kollisionen deaktivieren' und klicken Sie auf 'Übernehmen'. - Standard: aus + Schlechte Sim-Performance ist oftmals auf physische Objekte zurückzuführen. +Öffnen Sie die Statistikleiste (Strg-Umschalt-1). Sehen Sie sich den Wert 'Simulator +Physics FPS' an. Liegt dieser unter 45, öffnen Sie unten in der +Statistikleiste den 'Time'-Bereich. Liegt die 'Sim Time (Physics)' +bei 20 ms oder darüber, klicken Sie auf 'Top-Kollisionsobjekte'. +Der Name und der Standort der physischen Objekte, die das +Problem verursachen, werden angezeigt. + +Wenn Sie das Kontrollkästchen 'Kollisionen deaktivieren' aktivieren und auf +'Übernehmen' klicken, werden alle Objekt-Objekt-Kollisionen in der Region zeitweilig deaktiviert. Dieser Schritt +ist eventuell notwendig, damit Sie an die Position des gemeldeten +'Top-Kollisionsobjekts' reisen können. Überprüfen Sie das Objekt an der angegebenen Position. +Kollidiert es ständig mit anderen Objekten? Wenden Sie sich +eventuell an den Eigentümer des Objekts, löschen Sie es oder geben Sie es zurück. +Deaktivieren Sie die Option 'Kollisionen deaktivieren' und klicken Sie auf 'Übernehmen', +um Kollisionen in dieser Region wieder zu aktivieren. + +Standard: aus @@ -4101,13 +4167,17 @@ funktioniert aber nur, wenn ein Skript mit einem money() Ereignis hinzugefügt w - Verwenden Sie dieses Tool, um Verletzungen der Servicebedingungen und Community-Standards zu melden. Siehe: + Verwenden Sie dieses Tool, um Verletzungen der Servicebedingungen +und Community-Standards zu melden. Siehe: http://secondlife.com/corporate/tos.php http://secondlife.com/corporate/cs.php Alle gemeldeten Verletzungen der Servicebedingungen und Community-Standards -werden geprüft und geklärt. Sie werden per E-Mail über die Klärung informiert. Sie können den Prozess auch im Police Blotter verfolgen: http://secondlife.com/community/blotter.php +werden geprüft und geklärt. Sie können den Prozess im +Police Blotter verfolgen: + +http://secondlife.com/community/blotter.php @@ -4299,10 +4369,10 @@ wirklich permanent löschen? Die folgende SLURL wurde in die Zwischenablage kopiert: - [SLURL] + [SLURL] - Veröffentlichen Sie sie auf einer Website, um anderen den Zugang zu diesem Ort - zu erleichtern, oder testen Sie sie, indem Sie sie in die Adressleiste Ihres Browsers kopieren. +Veröffentlichen Sie sie auf einer Website, um anderen den Zugang zu diesem Ort +zu erleichtern, oder testen Sie sie, indem Sie sie in die Adressleiste Ihres Browsers kopieren. Beim Kopieren einer SLURL in die Zwischenablage @@ -4347,7 +4417,7 @@ wirklich permanent löschen? Fehler beim Starten einer neuen Chat-Sitzung mit [RECIPIENT]. - [REASON] +[REASON]