summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--indra/llui/llurlentry.cpp26
-rw-r--r--indra/llui/llurlregistry.cpp4
-rw-r--r--indra/newview/llchathistory.cpp4
-rw-r--r--indra/newview/llimview.cpp217
-rw-r--r--indra/newview/llimview.h52
-rw-r--r--indra/newview/llmoveview.cpp2
-rw-r--r--indra/newview/lltoastimpanel.cpp16
-rw-r--r--indra/newview/lltoastimpanel.h3
-rw-r--r--indra/newview/llvoicechannel.cpp59
-rw-r--r--indra/newview/skins/default/textures/textures.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_instant_message.xml11
11 files changed, 234 insertions, 161 deletions
diff --git a/indra/llui/llurlentry.cpp b/indra/llui/llurlentry.cpp
index b51709e208..9ad86a29f6 100644
--- a/indra/llui/llurlentry.cpp
+++ b/indra/llui/llurlentry.cpp
@@ -386,36 +386,24 @@ std::string LLUrlEntryGroup::getLabel(const std::string &url, const LLUrlLabelCa
//
// LLUrlEntryInventory Describes a Second Life inventory Url, e.g.,
-// secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/select
+// secondlife:///app/inventory/0e346d8b-4433-4d66-a6b0-fd37083abc4c/select
//
LLUrlEntryInventory::LLUrlEntryInventory()
{
- mPattern = boost::regex("secondlife:///app/inventory/[\\da-f-]+/\\w+",
+ //*TODO: add supporting of inventory item names with whitespaces
+ //this pattern cann't parse for example
+ //secondlife:///app/inventory/0e346d8b-4433-4d66-a6b0-fd37083abc4c/select?name=name with spaces&param2=value
+ mPattern = boost::regex("secondlife:///app/inventory/[\\da-f-]+/\\w+\\S*",
boost::regex::perl|boost::regex::icase);
mMenuName = "menu_url_inventory.xml";
}
std::string LLUrlEntryInventory::getLabel(const std::string &url, const LLUrlLabelCallback &cb)
{
- return unescapeUrl(url);
- // TODO: Figure out if we can somehow access the inventory from here to get the actual item name
- /*
- std::string inventory_id_string = getIDStringFromUrl(url);
- if (inventory_id_string.empty())
- {
- // something went wrong, give raw url
- return unescapeUrl(url);
- }
- LLUUID inventory_id(inventory_id_string);
- LLInventoryItem* item = gInventory.getItem(inventory_id);
- if(!item)
- {
- return unescapeUrl(url);
- }
- return item->getName(); */
+ std::string label = getStringAfterToken(url, "name=");
+ return label.empty() ? url : label;
}
-
///
/// LLUrlEntryParcel Describes a Second Life parcel Url, e.g.,
/// secondlife:///app/parcel/0000060e-4b39-e00b-d0c3-d98b1934e3a8/about
diff --git a/indra/llui/llurlregistry.cpp b/indra/llui/llurlregistry.cpp
index b2f084e5ac..f47db2db1a 100644
--- a/indra/llui/llurlregistry.cpp
+++ b/indra/llui/llurlregistry.cpp
@@ -53,9 +53,11 @@ LLUrlRegistry::LLUrlRegistry()
registerUrl(new LLUrlEntryTeleport());
registerUrl(new LLUrlEntryWorldMap());
registerUrl(new LLUrlEntryPlace());
+ registerUrl(new LLUrlEntryInventory());
+ //LLUrlEntrySL and LLUrlEntrySLLabel have more common pattern,
+ //so it should be registered in the end of list
registerUrl(new LLUrlEntrySL());
registerUrl(new LLUrlEntrySLLabel());
- registerUrl(new LLUrlEntryInventory());
}
LLUrlRegistry::~LLUrlRegistry()
diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp
index 96b5ae5908..efe9ea4c35 100644
--- a/indra/newview/llchathistory.cpp
+++ b/indra/newview/llchathistory.cpp
@@ -211,6 +211,10 @@ public:
{
icon->setValue(chat.mFromID);
}
+ else if (userName->getValue().asString()==LLTrans::getString("SECOND_LIFE"))
+ {
+ icon->setValue(LLSD("SL_Logo"));
+ }
}
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index d3058e67af..f1efc11b07 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -88,6 +88,10 @@ const static std::string IM_TEXT("message");
const static std::string IM_FROM("from");
const static std::string IM_FROM_ID("from_id");
+std::string LLCallDialogManager::sPreviousSessionlName = "";
+std::string LLCallDialogManager::sCurrentSessionlName = "";
+LLIMModel::LLIMSession* LLCallDialogManager::sSession = NULL;
+
//
// Globals
//
@@ -149,6 +153,7 @@ LLIMModel::LLIMSession::LLIMSession(const LLUUID& session_id, const std::string&
mInitialTargetIDs(ids),
mVoiceChannel(NULL),
mSpeakers(NULL),
+ mCallDialogManager(NULL),
mSessionInitialized(false),
mCallBackEnabled(true),
mTextIMPossible(true),
@@ -167,6 +172,9 @@ LLIMModel::LLIMSession::LLIMSession(const LLUUID& session_id, const std::string&
{
mVoiceChannelStateChangeConnection = mVoiceChannel->setStateChangedCallback(boost::bind(&LLIMSession::onVoiceChannelStateChanged, this, _1, _2));
}
+ // define what type of session was opened
+ setSessionType();
+
mSpeakers = new LLIMSpeakerMgr(mVoiceChannel);
// All participants will be added to the list of people we've recently interacted with.
@@ -199,8 +207,35 @@ LLIMModel::LLIMSession::LLIMSession(const LLUUID& session_id, const std::string&
}
}
+void LLIMModel::LLIMSession::setSessionType()
+{
+ // set P2P type by default
+ mSessionType = P2P_SESSION;
+
+ if (dynamic_cast<LLVoiceChannelP2P*>(mVoiceChannel) && !mOtherParticipantIsAvatar) // P2P AVALINE channel was opened
+ {
+ mSessionType = AVALINE_SESSION;
+ return;
+ }
+ else if(dynamic_cast<LLVoiceChannelGroup*>(mVoiceChannel)) // GROUP channel was opened
+ {
+ if (mType == IM_SESSION_CONFERENCE_START)
+ {
+ mSessionType = ADHOC_SESSION;
+ return;
+ }
+ else if(mType == IM_SESSION_GROUP_START)
+ {
+ mSessionType = GROUP_SESSION;
+ return;
+ }
+ }
+}
+
void LLIMModel::LLIMSession::onVoiceChannelStateChanged(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state)
{
+ // *TODO: remove hardcoded string!!!!!!!!!!!
+
bool is_p2p_session = dynamic_cast<LLVoiceChannelP2P*>(mVoiceChannel);
bool is_incoming_call = false;
std::string other_avatar_name;
@@ -251,6 +286,9 @@ void LLIMModel::LLIMSession::onVoiceChannelStateChanged(const LLVoiceChannel::ES
LLIMModel::LLIMSession::~LLIMSession()
{
+ delete mCallDialogManager;
+ mCallDialogManager = NULL;
+
delete mSpeakers;
mSpeakers = NULL;
@@ -1184,21 +1222,141 @@ LLIMMgr::onConfirmForceCloseError(
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-// Class LLOutgoingCallDialog
+// Class LLCallDialogManager
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-LLOutgoingCallDialog::LLOutgoingCallDialog(const LLSD& payload) :
- LLDockableFloater(NULL, false, payload),
- mPayload(payload)
+
+LLCallDialogManager::LLCallDialogManager()
+{
+}
+
+LLCallDialogManager::~LLCallDialogManager()
+{
+}
+
+void LLCallDialogManager::initClass()
+{
+ LLVoiceChannel::setCurrentVoiceChannelChangedCallback(LLCallDialogManager::onVoiceChannelChanged);
+}
+
+void LLCallDialogManager::onVoiceChannelChanged(const LLUUID &session_id)
{
+ LLIMModel::LLIMSession* session = LLIMModel::getInstance()->findIMSession(session_id);
+ if(!session)
+ {
+ sPreviousSessionlName = sCurrentSessionlName;
+ sCurrentSessionlName = ""; // Empty string results in "Nearby Voice Chat" after substitution
+ return;
+ }
+ sSession = session;
+ sSession->mVoiceChannel->setStateChangedCallback(LLCallDialogManager::onVoiceChannelStateChanged);
+ sPreviousSessionlName = sCurrentSessionlName;
+ sCurrentSessionlName = session->mName;
}
-void LLOutgoingCallDialog::getAllowedRect(LLRect& rect)
+void LLCallDialogManager::onVoiceChannelStateChanged(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state)
+{
+ LLSD mCallDialogPayload;
+ LLOutgoingCallDialog* ocd;
+
+ mCallDialogPayload["session_id"] = sSession->mSessionID;
+ mCallDialogPayload["session_name"] = sSession->mName;
+ mCallDialogPayload["other_user_id"] = sSession->mOtherParticipantID;
+ mCallDialogPayload["old_channel_name"] = sPreviousSessionlName;
+
+ switch(new_state)
+ {
+ case LLVoiceChannel::STATE_CALL_STARTED :
+ // do not show "Calling to..." if it is incoming P2P call
+ if(sSession->mSessionType == LLIMModel::LLIMSession::P2P_SESSION && static_cast<LLVoiceChannelP2P*>(sSession->mVoiceChannel)->isIncomingCall())
+ {
+ return;
+ }
+
+ ocd = dynamic_cast<LLOutgoingCallDialog*>(LLFloaterReg::showInstance("outgoing_call", mCallDialogPayload, TRUE));
+ if (ocd)
+ {
+ ocd->getChild<LLTextBox>("calling")->setVisible(true);
+ ocd->getChild<LLTextBox>("leaving")->setVisible(true);
+ ocd->getChild<LLTextBox>("connecting")->setVisible(false);
+ ocd->getChild<LLTextBox>("noanswer")->setVisible(false);
+ }
+ return;
+
+ case LLVoiceChannel::STATE_RINGING :
+ ocd = dynamic_cast<LLOutgoingCallDialog*>(LLFloaterReg::showInstance("outgoing_call", mCallDialogPayload, TRUE));
+ if (ocd)
+ {
+ ocd->getChild<LLTextBox>("calling")->setVisible(false);
+ ocd->getChild<LLTextBox>("leaving")->setVisible(true);
+ ocd->getChild<LLTextBox>("connecting")->setVisible(true);
+ ocd->getChild<LLTextBox>("noanswer")->setVisible(false);
+ }
+ return;
+
+ case LLVoiceChannel::STATE_ERROR :
+ ocd = dynamic_cast<LLOutgoingCallDialog*>(LLFloaterReg::showInstance("outgoing_call", mCallDialogPayload, TRUE));
+ if (ocd)
+ {
+ ocd->getChild<LLTextBox>("calling")->setVisible(false);
+ ocd->getChild<LLTextBox>("leaving")->setVisible(false);
+ ocd->getChild<LLTextBox>("connecting")->setVisible(false);
+ ocd->getChild<LLTextBox>("noanswer")->setVisible(true);
+ }
+ return;
+
+ case LLVoiceChannel::STATE_CONNECTED :
+ case LLVoiceChannel::STATE_HUNG_UP :
+ ocd = dynamic_cast<LLOutgoingCallDialog*>(LLFloaterReg::showInstance("outgoing_call", mCallDialogPayload, TRUE));
+ if (ocd)
+ {
+ ocd->closeFloater();
+ }
+ return;
+
+ default:
+ break;
+ }
+
+}
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// Class LLCallDialog
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LLCallDialog::LLCallDialog(const LLSD& payload) :
+LLDockableFloater(NULL, false, payload),
+mPayload(payload)
+{
+}
+
+void LLCallDialog::getAllowedRect(LLRect& rect)
{
rect = gViewerWindow->getWorldViewRectScaled();
}
+void LLCallDialog::onOpen(const LLSD& key)
+{
+ // dock the dialog to the Speak Button, where other sys messages appear
+ setDockControl(new LLDockControl(LLBottomTray::getInstance()->getChild<LLPanel>("speak_panel"),
+ this, getDockTongue(), LLDockControl::TOP, boost::bind(&LLCallDialog::getAllowedRect, this, _1)));
+}
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// Class LLOutgoingCallDialog
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+LLOutgoingCallDialog::LLOutgoingCallDialog(const LLSD& payload) :
+LLCallDialog(payload)
+{
+ LLOutgoingCallDialog* instance = LLFloaterReg::findTypedInstance<LLOutgoingCallDialog>("outgoing_call", payload);
+ if(instance && instance->getVisible())
+ {
+ instance->onCancel(instance);
+ }
+}
+
void LLOutgoingCallDialog::onOpen(const LLSD& key)
{
+ LLCallDialog::onOpen(key);
+
// tell the user which voice channel they are leaving
if (!mPayload["old_channel_name"].asString().empty())
{
@@ -1246,22 +1404,15 @@ BOOL LLOutgoingCallDialog::postBuild()
childSetAction("Cancel", onCancel, this);
- // dock the dialog to the sys well, where other sys messages appear
- setDockControl(new LLDockControl(LLBottomTray::getInstance()->getChild<LLPanel>("speak_panel"),
- this, getDockTongue(), LLDockControl::TOP,
- boost::bind(&LLOutgoingCallDialog::getAllowedRect, this, _1)));
-
return success;
}
-
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Class LLIncomingCallDialog
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
LLIncomingCallDialog::LLIncomingCallDialog(const LLSD& payload) :
- LLDockableFloater(NULL, false, payload),
- mPayload(payload)
+LLCallDialog(payload)
{
}
@@ -1305,13 +1456,11 @@ BOOL LLIncomingCallDialog::postBuild()
return TRUE;
}
-void LLIncomingCallDialog::getAllowedRect(LLRect& rect)
-{
- rect = gViewerWindow->getWorldViewRectScaled();
-}
void LLIncomingCallDialog::onOpen(const LLSD& key)
{
+ LLCallDialog::onOpen(key);
+
// tell the user which voice channel they would be leaving
LLVoiceChannel *voice = LLVoiceChannel::getCurrentVoiceChannel();
if (voice && !voice->getSessionName().empty())
@@ -1322,11 +1471,6 @@ void LLIncomingCallDialog::onOpen(const LLSD& key)
{
childSetTextArg("question", "[CURRENT_CHAT]", getString("localchat"));
}
-
- // dock the dialog to the sys well, where other sys messages appear
- setDockControl(new LLDockControl(LLBottomTray::getInstance()->getChild<LLPanel>("speak_panel"),
- this, getDockTongue(), LLDockControl::TOP,
- boost::bind(&LLIncomingCallDialog::getAllowedRect, this, _1)));
}
//static
@@ -1966,18 +2110,7 @@ void LLIMMgr::inviteToSession(
}
else
{
- if (notify_box_type == "VoiceInviteP2P" || notify_box_type == "VoiceInviteAdHoc")
- {
- LLFloaterReg::showInstance("incoming_call", payload, TRUE);
- }
- else
- {
- LLSD args;
- args["NAME"] = caller_name;
- args["GROUP"] = session_name;
-
- LLNotificationsUtil::add(notify_box_type, args, payload, &inviteUserResponse);
- }
+ LLFloaterReg::showInstance("incoming_call", payload, TRUE);
}
mPendingInvitations[session_id.asString()] = LLSD();
}
@@ -1990,21 +2123,7 @@ void LLIMMgr::onInviteNameLookup(LLSD payload, const LLUUID& id, const std::stri
std::string notify_box_type = payload["notify_box_type"].asString();
- if (notify_box_type == "VoiceInviteP2P" || notify_box_type == "VoiceInviteAdHoc")
- {
- LLFloaterReg::showInstance("incoming_call", payload, TRUE);
- }
- else
- {
- LLSD args;
- args["NAME"] = payload["caller_name"].asString();
-
- LLNotificationsUtil::add(
- payload["notify_box_type"].asString(),
- args,
- payload,
- &inviteUserResponse);
- }
+ LLFloaterReg::showInstance("incoming_call", payload, TRUE);
}
void LLIMMgr::disconnectAllSessions()
diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h
index 8a0f57deb0..4561d760d4 100644
--- a/indra/newview/llimview.h
+++ b/indra/newview/llimview.h
@@ -48,6 +48,7 @@ class LLFloaterChatterBox;
class LLUUID;
class LLFloaterIMPanel;
class LLFriendObserver;
+class LLCallDialogManager;
class LLIMModel : public LLSingleton<LLIMModel>
{
@@ -55,12 +56,20 @@ public:
struct LLIMSession
{
+ typedef enum e_session_type
+ { // for now we have 4 predefined types for a session
+ P2P_SESSION,
+ GROUP_SESSION,
+ ADHOC_SESSION,
+ AVALINE_SESSION,
+ } SType;
+
LLIMSession(const LLUUID& session_id, const std::string& name,
const EInstantMessage& type, const LLUUID& other_participant_id, const std::vector<LLUUID>& ids);
virtual ~LLIMSession();
void sessionInitReplyReceived(const LLUUID& new_session_id);
-
+ void setSessionType(); //define what type of session was opened
void addMessagesFromHistory(const std::list<LLSD>& history);
void addMessage(const std::string& from, const LLUUID& from_id, const std::string& utf8_text, const std::string& time);
void onVoiceChannelStateChanged(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state);
@@ -69,8 +78,10 @@ public:
LLUUID mSessionID;
std::string mName;
EInstantMessage mType;
+ SType mSessionType;
LLUUID mOtherParticipantID;
std::vector<LLUUID> mInitialTargetIDs;
+ LLCallDialogManager* mCallDialogManager;
// connection to voice channel state change signal
boost::signals2::connection mVoiceChannelStateChangeConnection;
@@ -419,7 +430,36 @@ private:
LLSD mPendingAgentListUpdates;
};
-class LLIncomingCallDialog : public LLDockableFloater
+class LLCallDialogManager : public LLInitClass<LLCallDialogManager>
+{
+public:
+ LLCallDialogManager();
+ ~LLCallDialogManager();
+
+ static void initClass();
+ static void onVoiceChannelChanged(const LLUUID &session_id);
+ static void onVoiceChannelStateChanged(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state);
+
+protected:
+ static std::string sPreviousSessionlName;
+ static std::string sCurrentSessionlName;
+ static LLIMModel::LLIMSession* sSession;
+};
+
+class LLCallDialog : public LLDockableFloater
+{
+public:
+ LLCallDialog(const LLSD& payload);
+ ~LLCallDialog() {}
+
+ virtual void onOpen(const LLSD& key);
+
+protected:
+ virtual void getAllowedRect(LLRect& rect);
+ LLSD mPayload;
+};
+
+class LLIncomingCallDialog : public LLCallDialog
{
public:
LLIncomingCallDialog(const LLSD& payload);
@@ -433,12 +473,9 @@ public:
private:
void processCallResponse(S32 response);
- void getAllowedRect(LLRect& rect);
-
- LLSD mPayload;
};
-class LLOutgoingCallDialog : public LLDockableFloater
+class LLOutgoingCallDialog : public LLCallDialog
{
public:
LLOutgoingCallDialog(const LLSD& payload);
@@ -449,9 +486,6 @@ public:
static void onCancel(void* user_data);
private:
- void getAllowedRect(LLRect& rect);
-
- LLSD mPayload;
};
// Globals
diff --git a/indra/newview/llmoveview.cpp b/indra/newview/llmoveview.cpp
index 9e46a4422a..c17427bec1 100644
--- a/indra/newview/llmoveview.cpp
+++ b/indra/newview/llmoveview.cpp
@@ -603,7 +603,7 @@ BOOL LLPanelStandStopFlying::handleToolTip(S32 x, S32 y, MASK mask)
LLToolTipMgr::instance().show(mStopFlyingButton->getToolTip());
}
- return TRUE;
+ return LLPanel::handleToolTip(x, y, mask);
}
void LLPanelStandStopFlying::reparent(LLFloaterMove* move_view)
diff --git a/indra/newview/lltoastimpanel.cpp b/indra/newview/lltoastimpanel.cpp
index f928b5f243..7beba59c83 100644
--- a/indra/newview/lltoastimpanel.cpp
+++ b/indra/newview/lltoastimpanel.cpp
@@ -40,8 +40,7 @@ const S32 LLToastIMPanel::DEFAULT_MESSAGE_MAX_LINE_COUNT = 6;
//--------------------------------------------------------------------------
LLToastIMPanel::LLToastIMPanel(LLToastIMPanel::Params &p) : LLToastPanel(p.notification),
mAvatar(NULL), mUserName(NULL),
- mTime(NULL), mMessage(NULL),
- mReplyBtn(NULL)
+ mTime(NULL), mMessage(NULL)
{
LLUICtrlFactory::getInstance()->buildPanel(this, "panel_instant_message.xml");
@@ -50,7 +49,6 @@ LLToastIMPanel::LLToastIMPanel(LLToastIMPanel::Params &p) : LLToastPanel(p.notif
mUserName = getChild<LLTextBox>("user_name");
mTime = getChild<LLTextBox>("time_box");
mMessage = getChild<LLTextBox>("message");
- mReplyBtn = getChild<LLButton>("reply");
LLStyle::Params style_params;
style_params.font.name(LLFontGL::nameFromFont(style_params.font));
@@ -76,18 +74,10 @@ LLToastIMPanel::LLToastIMPanel(LLToastIMPanel::Params &p) : LLToastPanel(p.notif
mSessionID = p.session_id;
mNotification = p.notification;
- // if message comes from the system - there shouldn't be a reply btn
if(p.from == SYSTEM_FROM)
{
mAvatar->setVisible(FALSE);
sys_msg_icon->setVisible(TRUE);
-
- mReplyBtn->setVisible(FALSE);
- S32 btn_height = mReplyBtn->getRect().getHeight();
- LLRect msg_rect = mMessage->getRect();
- mMessage->reshape(msg_rect.getWidth(), msg_rect.getHeight() + btn_height);
- msg_rect.setLeftTopAndSize(msg_rect.mLeft, msg_rect.mTop, msg_rect.getWidth(), msg_rect.getHeight() + btn_height);
- mMessage->setRect(msg_rect);
}
else
{
@@ -95,7 +85,7 @@ LLToastIMPanel::LLToastIMPanel(LLToastIMPanel::Params &p) : LLToastPanel(p.notif
sys_msg_icon->setVisible(FALSE);
mAvatar->setValue(p.avatar_id);
- mReplyBtn->setClickedCallback(boost::bind(&LLToastIMPanel::onClickReplyBtn, this));
+ setMouseDownCallback(boost::bind(&LLToastIMPanel::onClickToastIM, this));
}
S32 maxLinesCount;
@@ -113,7 +103,7 @@ LLToastIMPanel::~LLToastIMPanel()
}
//--------------------------------------------------------------------------
-void LLToastIMPanel::onClickReplyBtn()
+void LLToastIMPanel::onClickToastIM()
{
mNotification->respond(mNotification->getResponseTemplate());
}
diff --git a/indra/newview/lltoastimpanel.h b/indra/newview/lltoastimpanel.h
index af21b07a3d..23f08ef610 100644
--- a/indra/newview/lltoastimpanel.h
+++ b/indra/newview/lltoastimpanel.h
@@ -61,7 +61,7 @@ public:
private:
static const S32 DEFAULT_MESSAGE_MAX_LINE_COUNT;
- void onClickReplyBtn();
+ void onClickToastIM();
LLNotificationPtr mNotification;
LLUUID mSessionID;
@@ -69,7 +69,6 @@ private:
LLTextBox* mUserName;
LLTextBox* mTime;
LLTextBox* mMessage;
- LLButton* mReplyBtn;
};
#endif // LLTOASTIMPANEL_H_
diff --git a/indra/newview/llvoicechannel.cpp b/indra/newview/llvoicechannel.cpp
index 608060174a..175b6f1d10 100644
--- a/indra/newview/llvoicechannel.cpp
+++ b/indra/newview/llvoicechannel.cpp
@@ -316,6 +316,8 @@ void LLVoiceChannel::activate()
}
}
+ sCurrentVoiceChannelChangedSignal(this->mSessionID);
+
if (mState == STATE_NO_CHANNEL_INFO)
{
// responsible for setting status to active
@@ -325,8 +327,6 @@ void LLVoiceChannel::activate()
{
setState(STATE_CALL_STARTED);
}
-
- sCurrentVoiceChannelChangedSignal(this->mSessionID);
}
void LLVoiceChannel::getChannelInfo()
@@ -874,61 +874,6 @@ void LLVoiceChannelP2P::setState(EState state)
return;
}
}
- else // outgoing call
- {
- mCallDialogPayload["session_id"] = mSessionID;
- mCallDialogPayload["session_name"] = mSessionName;
- mCallDialogPayload["other_user_id"] = mOtherUserID;
- if (state == STATE_RINGING ||
- state == STATE_CALL_STARTED)
- {
- // *HACK: open outgoing call floater if needed, might be better done elsewhere.
- // *TODO: should move this squirrelly ui-fudging crap into LLOutgoingCallDialog itself
- if (!mSessionName.empty())
- {
- LLOutgoingCallDialog *ocd = dynamic_cast<LLOutgoingCallDialog*>(LLFloaterReg::showInstance("outgoing_call", mCallDialogPayload, TRUE));
- if (ocd)
- {
- ocd->getChild<LLTextBox>("calling")->setVisible(true);
- ocd->getChild<LLTextBox>("leaving")->setVisible(true);
- ocd->getChild<LLTextBox>("connecting")->setVisible(false);
- ocd->getChild<LLTextBox>("noanswer")->setVisible(false);
- }
- }
- }
- /*else if (state == STATE_CONNECTED)
- {
- LLOutgoingCallDialog *ocd = dynamic_cast<LLOutgoingCallDialog*>(LLFloaterReg::showInstance("outgoing_call", mCallDialogPayload, TRUE));
- if (ocd)
- {
- ocd->getChild<LLTextBox>("calling")->setVisible(false);
- ocd->getChild<LLTextBox>("leaving")->setVisible(false);
- ocd->getChild<LLTextBox>("connecting")->setVisible(true);
- ocd->getChild<LLTextBox>("noanswer")->setVisible(false);
- }
- }*/
- else if (state == STATE_ERROR)
- {
- LLOutgoingCallDialog *ocd = dynamic_cast<LLOutgoingCallDialog*>(LLFloaterReg::showInstance("outgoing_call", mCallDialogPayload, TRUE));
- if (ocd)
- {
- ocd->getChild<LLTextBox>("calling")->setVisible(false);
- ocd->getChild<LLTextBox>("leaving")->setVisible(false);
- ocd->getChild<LLTextBox>("connecting")->setVisible(false);
- ocd->getChild<LLTextBox>("noanswer")->setVisible(true);
- }
- }
- else if (state == STATE_HUNG_UP ||
- state == STATE_CONNECTED)
- {
- // hide popup
- LLOutgoingCallDialog *ocd = dynamic_cast<LLOutgoingCallDialog*>(LLFloaterReg::showInstance("outgoing_call", mCallDialogPayload, TRUE));
- if (ocd)
- {
- ocd->closeFloater();
- }
- }
- }
LLVoiceChannel::setState(state);
}
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index 3e0820544a..fbb910b847 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -483,6 +483,7 @@ with the same filename but different name
<texture name="SliderThumb_Off" file_name="widgets/SliderThumb_Off.png" />
<texture name="SliderThumb_Disabled" file_name="widgets/SliderThumb_Disabled.png" />
<texture name="SliderThumb_Press" file_name="widgets/SliderThumb_Press.png" />
+ <texture name="SL_Logo" file_name="map_infohub.tga" />
<texture name="Snapshot_Off" file_name="bottomtray/Snapshot_Off.png" preload="true" scale.left="4" scale.top="19" scale.right="22" scale.bottom="4" />
<texture name="Snapshot_Over" file_name="bottomtray/Snapshot_Over.png" preload="false" />
diff --git a/indra/newview/skins/default/xui/en/panel_instant_message.xml b/indra/newview/skins/default/xui/en/panel_instant_message.xml
index 1e570bf207..ccd754ac5e 100644
--- a/indra/newview/skins/default/xui/en/panel_instant_message.xml
+++ b/indra/newview/skins/default/xui/en/panel_instant_message.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
background_visible="true"
- height="175"
+ height="152"
label="im_panel"
layout="topleft"
left="0"
@@ -83,13 +83,4 @@
width="285"
word_wrap="true"
max_length="350" />
- <button
- follows="bottom"
- height="23"
- label="Reply"
- layout="topleft"
- left="100"
- name="reply"
- top="144"
- width="100" />
</panel>