Age | Commit message (Collapse) | Author |
|
https://megapahit.com/show_bug.cgi?id=9
At first I was trying to implement it without any peeking, but I got
stuck at making the group IM blocking state synced across logins and
user accounts, and found that there wasn't any data block reserved for
it in SL group-related message protocols.
I took a peek at Kokua's code, and the feature seemed to have been
imported from Exodus viewer. There were exogroupmutelist files, which
had some implementation of saving to a list named muted_groups.xml,
which was also how I thought the information was stored at first,
locally, meaning would have to be synced manually across user accounts.
I tested the feature on Kokua, and found it didn't generate any file
that lists the muted groups locally, instead it was indeed synced across
devices, which meant that there must have been a way to store such
information in SL servers.
After looking carefully at the logs, only then I noticed a call from
llmutelist, which I then realised it was wrapped by exogroupmutelist.
So, this implementation forwards Exodus' way of using llmutelist to
llpanelgroupgeneral, for saving and loading the states to and from SL
server without using the exogroupmutelist files which contained more,
but unused, code. Exodus' way is to use legacy mute, and construct the
name by prepending "Group:" to the group ID (I had tried setting
LLMute's enum to GROUP, instead of BY_NAME, and it didn't work).
This implementation also differs in how the chat gets blocked in
llimview.cpp, I just tried some few lines and it worked, though I don't
know yet whether this implementation is good/better or not, so I leave
it to others to improve it if they want.
|
|
|
|
# Conflicts:
# autobuild.xml
# indra/cmake/CMakeLists.txt
# indra/cmake/GoogleMock.cmake
# indra/llaudio/llaudioengine_fmodstudio.cpp
# indra/llaudio/llaudioengine_fmodstudio.h
# indra/llaudio/lllistener_fmodstudio.cpp
# indra/llaudio/lllistener_fmodstudio.h
# indra/llaudio/llstreamingaudio_fmodstudio.cpp
# indra/llaudio/llstreamingaudio_fmodstudio.h
# indra/llcharacter/llmultigesture.cpp
# indra/llcharacter/llmultigesture.h
# indra/llimage/llimage.cpp
# indra/llimage/llimagepng.cpp
# indra/llimage/llimageworker.cpp
# indra/llimage/tests/llimageworker_test.cpp
# indra/llmessage/tests/llmockhttpclient.h
# indra/llprimitive/llgltfmaterial.h
# indra/llrender/llfontfreetype.cpp
# indra/llui/llcombobox.cpp
# indra/llui/llfolderview.cpp
# indra/llui/llfolderviewmodel.h
# indra/llui/lllineeditor.cpp
# indra/llui/lllineeditor.h
# indra/llui/lltextbase.cpp
# indra/llui/lltextbase.h
# indra/llui/lltexteditor.cpp
# indra/llui/lltextvalidate.cpp
# indra/llui/lltextvalidate.h
# indra/llui/lluictrl.h
# indra/llui/llview.cpp
# indra/llwindow/llwindowmacosx.cpp
# indra/newview/app_settings/settings.xml
# indra/newview/llappearancemgr.cpp
# indra/newview/llappearancemgr.h
# indra/newview/llavatarpropertiesprocessor.cpp
# indra/newview/llavatarpropertiesprocessor.h
# indra/newview/llbreadcrumbview.cpp
# indra/newview/llbreadcrumbview.h
# indra/newview/llbreastmotion.cpp
# indra/newview/llbreastmotion.h
# indra/newview/llconversationmodel.h
# indra/newview/lldensityctrl.cpp
# indra/newview/lldensityctrl.h
# indra/newview/llface.inl
# indra/newview/llfloatereditsky.cpp
# indra/newview/llfloatereditwater.cpp
# indra/newview/llfloateremojipicker.h
# indra/newview/llfloaterimsessiontab.cpp
# indra/newview/llfloaterprofiletexture.cpp
# indra/newview/llfloaterprofiletexture.h
# indra/newview/llgesturemgr.cpp
# indra/newview/llgesturemgr.h
# indra/newview/llimpanel.cpp
# indra/newview/llimpanel.h
# indra/newview/llinventorybridge.cpp
# indra/newview/llinventorybridge.h
# indra/newview/llinventoryclipboard.cpp
# indra/newview/llinventoryclipboard.h
# indra/newview/llinventoryfunctions.cpp
# indra/newview/llinventoryfunctions.h
# indra/newview/llinventorygallery.cpp
# indra/newview/lllistbrowser.cpp
# indra/newview/lllistbrowser.h
# indra/newview/llpanelobjectinventory.cpp
# indra/newview/llpanelprofile.cpp
# indra/newview/llpanelprofile.h
# indra/newview/llpreviewgesture.cpp
# indra/newview/llsavedsettingsglue.cpp
# indra/newview/llsavedsettingsglue.h
# indra/newview/lltooldraganddrop.cpp
# indra/newview/llurllineeditorctrl.cpp
# indra/newview/llvectorperfoptions.cpp
# indra/newview/llvectorperfoptions.h
# indra/newview/llviewerparceloverlay.cpp
# indra/newview/llviewertexlayer.cpp
# indra/newview/llviewertexturelist.cpp
# indra/newview/macmain.h
# indra/test/test.cpp
|
|
LF, and trim trailing whitespaces as needed
|
|
|
|
|
|
|
|
|
|
|
|
Group-related costs and limits via benefits.
|
|
Profile floaters after creating new group
|
|
|
|
the group name
|
|
|
|
|
|
|
|
- memory leaks fixing;
|
|
is added to the list in Members tab. Roles tab is renamed to Roles & Members and Roles sub-tab is default now.
|
|
replace llinfos, lldebugs, etc with new LL_INFOS(), LL_DEBUGS(), etc.
|
|
|
|
prevent filling up the callback queue
|
|
|
|
LLAvatarNameCache::get() where necessary
|
|
loading group members
* Fix one race condition that could dereference a dangling pointer.
reviewed with Simon and Baker.
|
|
* Remove debug spam
|
|
* Use LLAvatarNameCache in group UI to match what namelists use and prevent double lookups
* Remove LLSD -> Prams legacy pattern which is super slow.
* Member list on general tab only adds to the list after names are known
|
|
- Reduced the timeout to 5 minutes, down from 10 minutes.
- Provided output for GroupMemberResponder error
- Removed commented calls to sendGroupMembersRequest
- Reordered calls to sendCapGroupMembersRequest so it's called last
|
|
- Changed level of output logs
- Cleaned up comments
|
|
|
|
|
|
a bunch of unnecesary header dependencies.
|
|
Dropdown
- After role member data was changed in Roles->Members, role titles need to be updated too.
|
|
Crash happened when trying to create new group while other group was still updating. It was caused by invalid iterator mMemberProgress in LLPanelGroupGeneral::updateMembers().
Its usage shouldn't have been reached when member list is cleared and empty thanking to gdatap->isMemberDataComplete() check at the beginning of the function. But when the new group was created while members of other group were still updating this
protection failed: in LLGroupMgr::processGroupMembersReply() for the group being created mMemberDataComplete was set TRUE when group size was zero(because this new group still
had no members). So the check for completness in LLPanelGroupGeneral::updateMembers() was succesfully passed, and further in this method viewer crashed.
- Added check for emptiness of member list into LLPanelGroupGeneral::updateMembers().
|
|
|
|
/Users/Aimee/Documents/Work/Linden-Lab/Development/viewer/convert/viewer-identity-evolution
|
|
|
|
|
|
back-out the back-out for this branch. yay.
|
|
Backing out this merge that I pushed (prematurely) to the wrong place.
|
|
|
|
|
|
list instead
|
|
Bug was caused by multiobject's icon name index substitution with ordinary object's one. It happened because index was set depending on asset type in switch that followed "if" which set index for multiobject regardless of its result.
- Added returning index icon name inside of "if" block to avoid change of the index by switch for multiobject.
Reviewed by Mike Antipov at https://codereview.productengine.com/secondlife/r/804/
--HG--
branch : product-engine
|
|
|
|
reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/663/
--HG--
branch : product-engine
|
|
|
|
Also remove redundant variable and do some refactoring.
Reviwed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/391/
--HG--
branch : product-engine
|
|
add placeholder art, add code to convert texture name to ID since LLTextureCtrl can't accept textures by name...
Reviwed V.Savchuk at https://codereview.productengine.com/secondlife/r/378
--HG--
branch : product-engine
|
|
set prior to creation).
Submitting on behalf of Yuri Cheborarev.
Reviewed by Leyla: https://codereview.productengine.com/secondlife/r/81/
--HG--
branch : product-engine
|
|
of date
--HG--
branch : product-engine
|