Merge branch 'master' of https://github.com/Lirusaito/SingularityViewer.git
This commit is contained in:
@@ -150,7 +150,7 @@ LLDir_Mac::LLDir_Mac()
|
||||
CFURLRef resourcesURLRef = CFBundleCopyResourcesDirectoryURL(mainBundleRef);
|
||||
CFURLRefToLLString(resourcesURLRef, mAppRODataDir, true);
|
||||
|
||||
U32 build_dir_pos = mExecutableDir.rfind("/indra/build-darwin-");
|
||||
size_t build_dir_pos = mExecutableDir.rfind("/indra/build-darwin-");
|
||||
if (build_dir_pos != std::string::npos)
|
||||
{
|
||||
// ...we're in a dev checkout
|
||||
|
||||
@@ -216,31 +216,18 @@
|
||||
</array>
|
||||
</map>
|
||||
|
||||
<key>AscentInstantMessageResponseRepeat</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Whether to keep on resending the autoresponse every line they send</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
|
||||
<key>AscentInstantMessageShowOnTyping</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Whether to perform the autorespond the moment they begin to type instead of waiting for an actual message</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
|
||||
<!-- Autoresponse Section -->
|
||||
<key>AscentInstantMessageResponseRepeat</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Whether to keep on resending the autoresponse every line they send</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>AutoresponseAnyone</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
@@ -438,7 +425,7 @@
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
</map>
|
||||
<key>BusyModeResponseItemID</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
||||
@@ -812,6 +812,8 @@ void LLAgent::toggleFlying()
|
||||
bool LLAgent::enableFlying()
|
||||
{
|
||||
BOOL sitting = FALSE;
|
||||
static LLCachedControl<bool> continue_flying_on_unsit(gSavedSettings, "LiruContinueFlyingOnUnsit", false);
|
||||
if (!continue_flying_on_unsit)
|
||||
if (isAgentAvatarValid())
|
||||
{
|
||||
sitting = gAgentAvatarp->isSitting();
|
||||
|
||||
@@ -687,13 +687,18 @@ bool LLAvatarActions::canOfferTeleport(const uuid_vec_t& ids)
|
||||
|
||||
void LLAvatarActions::inviteToGroup(const LLUUID& id)
|
||||
{
|
||||
LLFloaterGroupPicker* widget = LLFloaterGroupPicker::showInstance(LLSD(id));
|
||||
inviteToGroup(uuid_vec_t(1, id));
|
||||
}
|
||||
|
||||
void LLAvatarActions::inviteToGroup(const uuid_vec_t& ids)
|
||||
{
|
||||
LLFloaterGroupPicker* widget = LLFloaterGroupPicker::showInstance(LLSD(ids.front()));
|
||||
if (widget)
|
||||
{
|
||||
widget->center();
|
||||
widget->setPowersMask(GP_MEMBER_INVITE);
|
||||
widget->removeNoneOption();
|
||||
widget->setSelectGroupCallback(boost::bind(callback_invite_to_group, _1, id));
|
||||
widget->setSelectGroupCallback(boost::bind(callback_invite_to_group, _1, ids));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -767,11 +772,8 @@ void ban_from_group(const uuid_vec_t& ids)
|
||||
// </singu>
|
||||
|
||||
// static
|
||||
void LLAvatarActions::callback_invite_to_group(LLUUID group_id, LLUUID id)
|
||||
void LLAvatarActions::callback_invite_to_group(LLUUID group_id, uuid_vec_t& agent_ids)
|
||||
{
|
||||
uuid_vec_t agent_ids;
|
||||
agent_ids.push_back(id);
|
||||
|
||||
LLFloaterGroupInvite::showForGroup(group_id, &agent_ids);
|
||||
}
|
||||
|
||||
|
||||
@@ -155,6 +155,7 @@ public:
|
||||
* Invite avatar to a group.
|
||||
*/
|
||||
static void inviteToGroup(const LLUUID& id);
|
||||
static void inviteToGroup(const uuid_vec_t& ids);
|
||||
|
||||
/**
|
||||
* Kick avatar off grid
|
||||
@@ -217,7 +218,7 @@ private:
|
||||
static bool handleKick(const LLSD& notification, const LLSD& response);
|
||||
static bool handleFreeze(const LLSD& notification, const LLSD& response);
|
||||
static bool handleUnfreeze(const LLSD& notification, const LLSD& response);
|
||||
static void callback_invite_to_group(LLUUID group_id, LLUUID id);
|
||||
static void callback_invite_to_group(LLUUID group_id, uuid_vec_t& ids);
|
||||
static void on_avatar_name_cache_teleport_request(const LLUUID& id, const LLAvatarName& av_name);
|
||||
|
||||
public:
|
||||
|
||||
@@ -128,36 +128,31 @@ bool LLGiveInventory::isInventoryGiveAcceptable(const LLInventoryItem* item)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
bool acceptable = true;
|
||||
switch(item->getType())
|
||||
{
|
||||
case LLAssetType::AT_CALLINGCARD:
|
||||
acceptable = false;
|
||||
break;
|
||||
case LLAssetType::AT_OBJECT:
|
||||
// <edit>
|
||||
/*if(my_avatar->isWearingAttachment(item->getUUID()))
|
||||
/* <edit>
|
||||
if (get_is_item_worn(item->getUUID()))
|
||||
{
|
||||
acceptable = false;
|
||||
}*/
|
||||
// </edit>
|
||||
}
|
||||
</edit> */
|
||||
break;
|
||||
case LLAssetType::AT_BODYPART:
|
||||
case LLAssetType::AT_CLOTHING:
|
||||
{
|
||||
// <edit>
|
||||
/*bool copyable = false;
|
||||
if(item->getPermissions().allowCopyBy(gAgent.getID())) copyable = true;
|
||||
if(item->getPermissions().allowCopyBy(gAgentID)) copyable = true;
|
||||
|
||||
if(!copyable && gAgentWearables.isWearingItem(item->getUUID()))
|
||||
if (!copyable || get_is_item_worn(item->getUUID()))
|
||||
{
|
||||
acceptable = false;
|
||||
}*/
|
||||
// </edit>
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -185,20 +180,16 @@ bool LLGiveInventory::isInventoryGroupGiveAcceptable(const LLInventoryItem* item
|
||||
|
||||
|
||||
bool acceptable = true;
|
||||
|
||||
switch(item->getType())
|
||||
{
|
||||
case LLAssetType::AT_CALLINGCARD:
|
||||
acceptable = false;
|
||||
break;
|
||||
// <edit>
|
||||
/*case LLAssetType::AT_OBJECT:
|
||||
case LLAssetType::AT_OBJECT:
|
||||
/* <edit>
|
||||
if(gAgentAvatarp->isWearingAttachment(item->getUUID()))
|
||||
{
|
||||
acceptable = false;
|
||||
}*
|
||||
break;*/
|
||||
// </edit>
|
||||
}
|
||||
</edit> */
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -245,11 +236,17 @@ void LLGiveInventory::doGiveInventoryCategory(const LLUUID& to_agent,
|
||||
const LLUUID& im_session_id)
|
||||
|
||||
{
|
||||
if (!cat) return;
|
||||
if (!cat)
|
||||
{
|
||||
return;
|
||||
}
|
||||
llinfos << "LLGiveInventory::giveInventoryCategory() - "
|
||||
<< cat->getUUID() << llendl;
|
||||
|
||||
if (!isAgentAvatarValid()) return;
|
||||
if (!isAgentAvatarValid())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Test out how many items are being given.
|
||||
LLViewerInventoryCategory::cat_array_t cats;
|
||||
@@ -275,17 +272,17 @@ void LLGiveInventory::doGiveInventoryCategory(const LLUUID& to_agent,
|
||||
LLNotificationsUtil::add("IncompleteInventory");
|
||||
return;
|
||||
}
|
||||
count = items.count() + cats.count();
|
||||
if(count > MAX_ITEMS)
|
||||
{
|
||||
count = items.count() + cats.count();
|
||||
if(count > MAX_ITEMS)
|
||||
{
|
||||
LLNotificationsUtil::add("TooManyItems");
|
||||
return;
|
||||
}
|
||||
else if(count == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
else if(count == 0)
|
||||
{
|
||||
LLNotificationsUtil::add("NoItems");
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(0 == giveable.countNoCopy())
|
||||
@@ -358,6 +355,7 @@ bool LLGiveInventory::handleCopyProtectedItem(const LLSD& notification, const LL
|
||||
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
|
||||
LLSD itmes = notification["payload"]["items"];
|
||||
LLInventoryItem* item = NULL;
|
||||
bool give_successful = true;
|
||||
switch(option)
|
||||
{
|
||||
case 0: // "Yes"
|
||||
@@ -376,15 +374,17 @@ bool LLGiveInventory::handleCopyProtectedItem(const LLSD& notification, const LL
|
||||
else
|
||||
{
|
||||
LLNotificationsUtil::add("CannotGiveItem");
|
||||
give_successful = false;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
default: // no, cancel, whatever, who cares, not yes.
|
||||
LLNotificationsUtil::add("TransactionCancelled");
|
||||
give_successful = false;
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
return give_successful;
|
||||
}
|
||||
|
||||
// static
|
||||
@@ -419,6 +419,7 @@ void LLGiveInventory::commitGiveInventoryItem(const LLUUID& to_agent,
|
||||
bucket,
|
||||
BUCKET_SIZE);
|
||||
gAgent.sendReliableMessage();
|
||||
|
||||
// <edit>
|
||||
if (gSavedSettings.getBOOL("BroadcastViewerEffects"))
|
||||
{
|
||||
@@ -486,7 +487,10 @@ void LLGiveInventory::commitGiveInventoryCategory(const LLUUID& to_agent,
|
||||
const LLUUID& im_session_id)
|
||||
|
||||
{
|
||||
if(!cat) return;
|
||||
if(!cat)
|
||||
{
|
||||
return;
|
||||
}
|
||||
llinfos << "LLGiveInventory::commitGiveInventoryCategory() - "
|
||||
<< cat->getUUID() << llendl;
|
||||
|
||||
@@ -565,6 +569,7 @@ if(!cat) return;
|
||||
bucket_size);
|
||||
gAgent.sendReliableMessage();
|
||||
delete[] bucket;
|
||||
|
||||
// <edit>
|
||||
if (gSavedSettings.getBOOL("BroadcastViewerEffects"))
|
||||
{
|
||||
@@ -585,4 +590,5 @@ if(!cat) return;
|
||||
logInventoryOffer(to_agent, im_session_id);
|
||||
}
|
||||
}
|
||||
|
||||
// EOF
|
||||
|
||||
@@ -101,7 +101,6 @@ void LLMediaFilter::filterAudioUrl(const std::string& url)
|
||||
{
|
||||
if (url.empty())
|
||||
{
|
||||
gAudiop->startInternetStream(url);
|
||||
return;
|
||||
}
|
||||
if (url == mCurrentAudioURL) return;
|
||||
|
||||
@@ -473,7 +473,7 @@ BOOL LLPanelAvatarSecondLife::postBuild(void)
|
||||
|
||||
getChild<LLUICtrl>("Find on Map")->setCommitCallback(boost::bind(LLAvatarActions::showOnMap, boost::bind(&LLPanelAvatar::getAvatarID, pa)));
|
||||
getChild<LLUICtrl>("Instant Message...")->setCommitCallback(boost::bind(LLAvatarActions::startIM, boost::bind(&LLPanelAvatar::getAvatarID, pa)));
|
||||
getChild<LLUICtrl>("GroupInvite_Button")->setCommitCallback(boost::bind(LLAvatarActions::inviteToGroup, boost::bind(&LLPanelAvatar::getAvatarID, pa)));
|
||||
getChild<LLUICtrl>("GroupInvite_Button")->setCommitCallback(boost::bind(static_cast<void(*)(const LLUUID&)>(LLAvatarActions::inviteToGroup), boost::bind(&LLPanelAvatar::getAvatarID, pa)));
|
||||
|
||||
getChild<LLUICtrl>("Add Friend...")->setCommitCallback(boost::bind(LLAvatarActions::requestFriendshipDialog, boost::bind(&LLPanelAvatar::getAvatarID, pa)));
|
||||
getChild<LLUICtrl>("Pay...")->setCommitCallback(boost::bind(LLAvatarActions::pay, boost::bind(&LLPanelAvatar::getAvatarID, pa)));
|
||||
|
||||
@@ -243,12 +243,11 @@ void audio_update_wind(bool fade)
|
||||
volume_delta = (LLFrameTimer::getFrameDeltaTimeF32() / WIND_SOUND_TRANSITION_TIME) * max_wind_volume;
|
||||
}
|
||||
|
||||
static LLCachedControl<bool> MuteWind("MuteWind");
|
||||
static LLCachedControl<bool> ContinueFlying("LiruContinueFlyingOnUnsit");
|
||||
static LLCachedControl<bool> MuteWind(gSavedSettings, "MuteWind", false);
|
||||
static LLCachedControl<bool> ContinueFlying(gSavedSettings, "LiruContinueFlyingOnUnsit", false);
|
||||
// mute wind entirely when the user asked or when the user is seated, but flying
|
||||
if (MuteWind || (ContinueFlying && gAgentAvatarp&& gAgentAvatarp->isSitting()))
|
||||
if (MuteWind || (ContinueFlying && gAgentAvatarp && gAgentAvatarp->isSitting()))
|
||||
{
|
||||
// volume decreases by itself
|
||||
gAudiop->mMaxWindGain = 0.f;
|
||||
}
|
||||
// mute wind when not /*flying*/ in air
|
||||
|
||||
@@ -3981,17 +3981,7 @@ class LLWorldEnableFly : public view_listener_t
|
||||
{
|
||||
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
|
||||
{
|
||||
BOOL sitting = FALSE;
|
||||
static LLCachedControl<bool> continue_flying_on_unsit("LiruContinueFlyingOnUnsit");
|
||||
if (continue_flying_on_unsit)
|
||||
{
|
||||
sitting = false;
|
||||
}
|
||||
else if (gAgentAvatarp)
|
||||
{
|
||||
sitting = gAgentAvatarp->isSitting();
|
||||
}
|
||||
gMenuHolder->findControl(userdata["control"].asString())->setValue(!sitting);
|
||||
gMenuHolder->findControl(userdata["control"].asString())->setValue(gAgent.enableFlying());
|
||||
return true;
|
||||
}
|
||||
};
|
||||
@@ -9062,7 +9052,7 @@ class ListInviteToGroup : public view_listener_t
|
||||
{
|
||||
bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata)
|
||||
{
|
||||
LLAvatarActions::inviteToGroup(get_focused_list_id_selected());
|
||||
LLAvatarActions::inviteToGroup(get_focused_list_ids_selected());
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -2464,8 +2464,8 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
|
||||
LLGiveInventory::doGiveInventoryItem(from_id, item, computed_session_id);
|
||||
if (show_autoresponded)
|
||||
{
|
||||
gIMMgr->addMessage(computed_session_id, from_id, name,
|
||||
llformat("%s %s \"%s\"", pns_name.c_str(), LLTrans::getString("IM_autoresponse_sent_item").c_str(), item->getName().c_str()));
|
||||
gIMMgr->addMessage(computed_session_id, from_id, name,
|
||||
llformat("%s %s \"%s\"", pns_name.c_str(), LLTrans::getString("IM_autoresponse_sent_item").c_str(), item->getName().c_str()));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2636,7 +2636,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
|
||||
if (show_autoresponded)
|
||||
{
|
||||
gIMMgr->addMessage(computed_session_id, from_id, name,
|
||||
llformat("%s %s \"%s\"", pns_name.c_str(), LLTrans::getString("IM_autoresponse_sent_item").c_str(), item->getName().c_str()));
|
||||
llformat("%s %s \"%s\"", pns_name.c_str(), LLTrans::getString("IM_autoresponse_sent_item").c_str(), item->getName().c_str()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
</menu_item_call>
|
||||
<menu_item_call label="Invite To Group" name="Invite To Group">
|
||||
<on_click function="List.InviteToGroup"/>
|
||||
<on_visible function="List.EnableSingleSelected"/>
|
||||
<on_visible function="List.EnableAnySelected"/>
|
||||
</menu_item_call>
|
||||
<menu_item_call label="Ban From Group" name="Ban From Group">
|
||||
<on_click function="List.BanFromGroup"/>
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
</menu_item_call>
|
||||
<menu_item_call label="Invite To Group" name="Invite To Group">
|
||||
<on_click function="List.InviteToGroup"/>
|
||||
<on_visible function="List.EnableSingleSelected"/>
|
||||
<on_visible function="List.EnableAnySelected"/>
|
||||
</menu_item_call>
|
||||
<menu_item_call label="Offer Teleport" name="Offer Teleport">
|
||||
<on_click function="List.OfferTeleport"/>
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
<check_box bottom_delta="-18" left="10" control_name="AlchemyLookAtLines" follows="top" label="Show a line from look at beacon to avatar" tool_tip="See a line connecting the camera focus point to the avatar. Useful to find where they are." name="lineslookat"/>
|
||||
<check_box bottom_delta="-20" control_name="AnnounceBumps" follows="top" label="Announce in chat when people bump you" name="announce_bumps"/>
|
||||
<check_box bottom_delta="-20" control_name="SGDetachBridge" follows="top" initial_value="false" label="Auto detach LSL Bridge" tool_tip="Automatically detach LSL Bridge of Phoenix or Firestorm viewer." name="detach_bridge"/>
|
||||
<check_box bottom_delta="-20" follows="top" label="Render muted avatars" control_name="LiruLegacyDisplayMuteds"/>
|
||||
<check_box bottom_delta="-20" follows="top" label="Render muted avatars" name="render_muted" control_name="LiruLegacyDisplayMuteds"/>
|
||||
<check_box bottom_delta="-20" control_name="QuietSnapshotsToDisk" follows="top" initial_value="false" label="Quiet Snapshots to Disk" tool_tip="Doesn't make a camera sound nor alert everyone when you take a snapshot to your computer." name="quiet_snapshots_check"/>
|
||||
<check_box bottom_delta="-20" control_name="RevokePermsOnStandUp" follows="top" initial_value="false" label="On standing up, revoke perms for the object your avatar was sitting on" tool_tip="Objects generally retain Take Control and Trigger Animation permissions until reset or given permission by another user. Enabling this will make sure you revoke these permissions immediately." name="revoke_perms_on_stand_up_check"/>
|
||||
<check_box bottom_delta="-20" control_name="DisableClickSit" follows="top" initial_value="false" label="Disable click-to-sit on objects" tool_tip="Some griefer tools rely on forcing or tricking you to click on an object that will make you sit, giving the object automatic permissions to trigger animations amongst other things. This will disable llSitTarget - It does mean that you will need to select 'Sit' on poseballs and furniture." name="disable_click_sit_check"/>
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
<check_box label="Montre une ligne de la cible du 'look at' à l'avatar et inversement" name="lineslookat"/>
|
||||
<check_box label="Annonce dans le chat quand on vous bouscule" name="announce_bumps"/>
|
||||
<check_box label="Détache automatiquement ce rodjudju de LSL Bridge" tool_tip="détache le LSL Bridge de Phoenix et/ou Firestorm viewer." name="detach_bridge"/>
|
||||
<check_box label="Rendre visibles les avatars muted" name="render_muted"/>
|
||||
<check_box label="Prendre discrètement un photo, sur votre disque dur" tool_tip="Permet de prendre une photo en mode "espionnage", sans bruit d'appareil, ni mouvement de caméra, ni gesture. (Uniquement vers le disque dur)." name="quiet_snapshots_check"/>
|
||||
<check_box label="En vous levant, annule les permissions que l'objet a sur votre avatar" tool_tip="Evite que l'objet garde le contrôle de votre avatar, comme par exemple les animations." name="revoke_perms_on_stand_up_check"/>
|
||||
<check_box label="Désactive le "Click to sit" automatique" tool_tip="Désactive llSitTarget. Vous devrez sélectionner vous même la fonction "sit" sur l'objet." name="disable_click_sit_check"/>
|
||||
|
||||
Reference in New Issue
Block a user