From 0bf77e227553eee4221cda5ddbe937399f6f61bb Mon Sep 17 00:00:00 2001 From: Mike Antipov Date: Mon, 28 Dec 2009 17:21:13 +0200 Subject: Work on low task EXT-3682 (Dedicated icon is required for AvaLine callers in the VCP) -- refactored processing of voice participants in the "Voice control panel". Now list is filled only when voice channel is in CONNECTED state and is cleared otherwise. --HG-- branch : product-engine --- indra/newview/llcallfloater.h | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'indra/newview/llcallfloater.h') diff --git a/indra/newview/llcallfloater.h b/indra/newview/llcallfloater.h index 3df9e333c5..2b856b9c32 100644 --- a/indra/newview/llcallfloater.h +++ b/indra/newview/llcallfloater.h @@ -35,6 +35,7 @@ #define LL_LLCALLFLOATER_H #include "lldockablefloater.h" +#include "llvoicechannel.h" #include "llvoiceclient.h" class LLAvatarList; @@ -192,6 +193,28 @@ private: */ bool validateSpeaker(const LLUUID& speaker_id); + /** + * Connects to passed channel to be updated according to channel's voice states. + */ + void connectToChannel(LLVoiceChannel* channel); + + /** + * Callback to process changing of voice channel's states. + */ + void onVoiceChannelStateChanged(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state); + + /** + * Updates floater according to passed channel's voice state. + */ + void updateState(const LLVoiceChannel::EState& new_state); + + /** + * Resets floater to be ready to show voice participants. + * + * Clears all data from the latest voice session. + */ + void reset(); + private: speaker_state_map_t mSpeakerStateMap; LLSpeakerMgr* mSpeakerManager; @@ -242,6 +265,16 @@ private: timers_map mVoiceLeftTimersMap; S32 mVoiceLeftRemoveDelay; + + /** + * Stores reference to current voice channel. + * + * Is used to ignore voice channel changed callback for the same channel. + * + * @see sOnCurrentChannelChanged() + */ + static LLVoiceChannel* sCurrentVoiceCanel; + boost::signals2::connection mVoiceChannelStateChangeConnection; }; -- cgit v1.2.3 From b798a63d120dcfe4751d0bb56f6a2fcaafdd9966 Mon Sep 17 00:00:00 2001 From: Dmitry Zaporozhan Date: Tue, 29 Dec 2009 17:49:35 +0200 Subject: Fixed nice-to-have bug EXT-3706 - Redundant spacing in the voice controls panel. --HG-- branch : product-engine --- indra/newview/llcallfloater.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'indra/newview/llcallfloater.h') diff --git a/indra/newview/llcallfloater.h b/indra/newview/llcallfloater.h index 2b856b9c32..8646300dd7 100644 --- a/indra/newview/llcallfloater.h +++ b/indra/newview/llcallfloater.h @@ -75,6 +75,11 @@ public: */ /*virtual*/ void onChange(); + /** + * Will reshape floater when participant list size changes + */ + /*virtual*/ S32 notifyParent(const LLSD& info); + static void sOnCurrentChannelChanged(const LLUUID& session_id); private: @@ -215,6 +220,21 @@ private: */ void reset(); + /** + * Reshapes floater to fit participant list height + */ + void reshapeToFitContent(); + + /** + * Returns height of participant list item + */ + S32 getParticipantItemHeight(); + + /** + * Returns predefined max visible participants. + */ + S32 getMaxVisibleItems(); + private: speaker_state_map_t mSpeakerStateMap; LLSpeakerMgr* mSpeakerManager; -- cgit v1.2.3 From 6a4ec2873fb3e518a2428071a37d9116ba5dccc4 Mon Sep 17 00:00:00 2001 From: Alexei Arabadji Date: Tue, 29 Dec 2009 17:55:20 +0200 Subject: =?UTF-8?q?fixed=20EXT-3742=20=E2=80=9CVoice=20Control=20Panel=20s?= =?UTF-8?q?hould=20auto-hide=E2=80=9D,=20made=20VCP=20as=20transient=20doc?= =?UTF-8?q?kable=20floater;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --HG-- branch : product-engine --- indra/newview/llcallfloater.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'indra/newview/llcallfloater.h') diff --git a/indra/newview/llcallfloater.h b/indra/newview/llcallfloater.h index 2b856b9c32..7bba244acf 100644 --- a/indra/newview/llcallfloater.h +++ b/indra/newview/llcallfloater.h @@ -34,7 +34,7 @@ #ifndef LL_LLCALLFLOATER_H #define LL_LLCALLFLOATER_H -#include "lldockablefloater.h" +#include "lltransientdockablefloater.h" #include "llvoicechannel.h" #include "llvoiceclient.h" @@ -55,7 +55,7 @@ class LLSpeakerMgr; * When the Resident is engaged in any chat except Nearby Chat, the Voice Control Panel also provides an * 'Leave Call' button to allow the Resident to leave that voice channel. */ -class LLCallFloater : public LLDockableFloater, LLVoiceClientParticipantObserver +class LLCallFloater : public LLTransientDockableFloater, LLVoiceClientParticipantObserver { public: -- cgit v1.2.3