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.0CSResourcesFileMapped
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