- internal : reviewed @startim for CHUI (SL-3.5)
-> fixed : "Start Conference Chat" on a selection of multiple calling cards opens an IM session
-> fixed : actions that would result in an IM window opening shouldn't be blocked if the session is already open
-> added : RlvActions class to mimick LLAvatarActions and lowering the rlvhandler.h include dependency
52 lines
2.0 KiB
C++
52 lines
2.0 KiB
C++
/**
|
|
*
|
|
* Copyright (c) 2009-2013, Kitty Barnett
|
|
*
|
|
* The source code in this file is provided to you under the terms of the
|
|
* GNU Lesser General Public License, version 2.1, but WITHOUT ANY WARRANTY;
|
|
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
|
* PARTICULAR PURPOSE. Terms of the LGPL can be found in doc/LGPL-licence.txt
|
|
* in this distribution, or online at http://www.gnu.org/licenses/lgpl-2.1.txt
|
|
*
|
|
* 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.
|
|
*
|
|
*/
|
|
|
|
#include "llviewerprecompiledheaders.h"
|
|
#include "llimview.h"
|
|
#include "rlvactions.h"
|
|
#include "rlvhandler.h"
|
|
|
|
// ============================================================================
|
|
// RlvActions member functions
|
|
//
|
|
|
|
// Checked: 2011-04-12 (RLVa-1.3.0)
|
|
bool RlvActions::canStartIM(const LLUUID& idRecipient)
|
|
{
|
|
// User can start an IM session with "recipient" (could be an agent or a group) if:
|
|
// - not generally restricted from starting IM sessions (or the recipient is an exception)
|
|
// - not specifically restricted from starting an IM session with the recipient
|
|
return
|
|
(!rlv_handler_t::isEnabled()) ||
|
|
( ( (!gRlvHandler.hasBehaviour(RLV_BHVR_STARTIM)) || (gRlvHandler.isException(RLV_BHVR_STARTIM, idRecipient)) ) &&
|
|
( (!gRlvHandler.hasBehaviour(RLV_BHVR_STARTIMTO)) || (!gRlvHandler.isException(RLV_BHVR_STARTIMTO, idRecipient)) ) );
|
|
}
|
|
|
|
// Checked: 2013-05-09 (RLVa-1.4.9)
|
|
bool RlvActions::hasOpenP2PSession(const LLUUID& idAgent)
|
|
{
|
|
const LLUUID idSession = LLIMMgr::computeSessionID(IM_NOTHING_SPECIAL, idAgent);
|
|
return (idSession.notNull()) && (LLIMMgr::instance().hasSession(idSession));
|
|
}
|
|
|
|
// Checked: 2013-05-09 (RLVa-1.4.9)
|
|
bool RlvActions::hasOpenGroupSession(const LLUUID& idGroup)
|
|
{
|
|
return (idGroup.notNull()) && (LLIMMgr::instance().hasSession(idGroup));
|
|
}
|
|
|
|
// ============================================================================
|