Merged in chui beta code.
commit
ef6242d729
|
|
@ -1215,9 +1215,11 @@ void LLTabContainer::removeTabPanel(LLPanel* child)
|
|||
removeChild( tuple->mButton );
|
||||
}
|
||||
delete tuple->mButton;
|
||||
tuple->mButton = NULL;
|
||||
|
||||
removeChild( tuple->mTabPanel );
|
||||
// delete tuple->mTabPanel;
|
||||
tuple->mTabPanel = NULL;
|
||||
|
||||
mTabList.erase( iter );
|
||||
delete tuple;
|
||||
|
|
@ -1279,9 +1281,11 @@ void LLTabContainer::deleteAllTabs()
|
|||
|
||||
removeChild( tuple->mButton );
|
||||
delete tuple->mButton;
|
||||
tuple->mButton = NULL;
|
||||
|
||||
removeChild( tuple->mTabPanel );
|
||||
// delete tuple->mTabPanel;
|
||||
tuple->mTabPanel = NULL;
|
||||
}
|
||||
|
||||
// Actually delete the tuples themselves
|
||||
|
|
@ -1484,9 +1488,8 @@ BOOL LLTabContainer::setTab(S32 which)
|
|||
{
|
||||
LLTabTuple* tuple = *iter;
|
||||
BOOL is_selected = ( tuple == selected_tuple );
|
||||
|
||||
// Although the selected tab must be complete, we may have hollow LLTabTuple tucked in the list
|
||||
if (tuple->mButton)
|
||||
if (tuple && tuple->mButton)
|
||||
{
|
||||
tuple->mButton->setUseEllipses(mUseTabEllipses);
|
||||
tuple->mButton->setHAlign(mFontHalign);
|
||||
|
|
@ -1494,7 +1497,7 @@ BOOL LLTabContainer::setTab(S32 which)
|
|||
// RN: this limits tab-stops to active button only, which would require arrow keys to switch tabs
|
||||
tuple->mButton->setTabStop( is_selected );
|
||||
}
|
||||
if (tuple->mTabPanel)
|
||||
if (tuple && tuple->mTabPanel)
|
||||
{
|
||||
tuple->mTabPanel->setVisible( is_selected );
|
||||
//tuple->mTabPanel->setFocus(is_selected); // not clear that we want to do this here.
|
||||
|
|
@ -1525,7 +1528,7 @@ BOOL LLTabContainer::setTab(S32 which)
|
|||
else
|
||||
{
|
||||
S32 available_width_with_arrows = getRect().getWidth() - mRightTabBtnOffset - 2 * (LLPANEL_BORDER_WIDTH + tabcntr_arrow_btn_size + tabcntr_arrow_btn_size + 1);
|
||||
S32 running_tab_width = tuple->mButton->getRect().getWidth();
|
||||
S32 running_tab_width = (tuple && tuple->mButton ? tuple->mButton->getRect().getWidth() : 0);
|
||||
S32 j = i - 1;
|
||||
S32 min_scroll_pos = i;
|
||||
if (running_tab_width < available_width_with_arrows)
|
||||
|
|
@ -1533,7 +1536,7 @@ BOOL LLTabContainer::setTab(S32 which)
|
|||
while (j >= 0)
|
||||
{
|
||||
LLTabTuple* other_tuple = getTab(j);
|
||||
running_tab_width += other_tuple->mButton->getRect().getWidth();
|
||||
running_tab_width += (other_tuple && other_tuple->mButton ? other_tuple->mButton->getRect().getWidth() : 0);
|
||||
if (running_tab_width > available_width_with_arrows)
|
||||
{
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -408,16 +408,7 @@ public:
|
|||
S32 user_name_width = user_name_rect.getWidth();
|
||||
S32 time_box_width = time_box->getRect().getWidth();
|
||||
|
||||
if (time_box->getVisible() && user_name_width <= mMinUserNameWidth)
|
||||
{
|
||||
time_box->setVisible(FALSE);
|
||||
|
||||
user_name_rect.mRight += time_box_width;
|
||||
user_name->reshape(user_name_rect.getWidth(), user_name_rect.getHeight());
|
||||
user_name->setRect(user_name_rect);
|
||||
}
|
||||
|
||||
if (!time_box->getVisible() && user_name_width > mMinUserNameWidth + time_box_width)
|
||||
if (!time_box->getVisible() && user_name_width > mMinUserNameWidth)
|
||||
{
|
||||
user_name_rect.mRight -= time_box_width;
|
||||
user_name->reshape(user_name_rect.getWidth(), user_name_rect.getHeight());
|
||||
|
|
|
|||
|
|
@ -585,6 +585,28 @@ void LLFloaterIMContainer::returnFloaterToHost()
|
|||
floater->onTearOffClicked();
|
||||
}
|
||||
|
||||
void LLFloaterIMContainer::setMinimized(BOOL b)
|
||||
{
|
||||
bool was_minimized = isMinimized();
|
||||
LLMultiFloater::setMinimized(b);
|
||||
|
||||
//Switching from minimized to un-minimized
|
||||
if(was_minimized && !b)
|
||||
{
|
||||
LLFloaterIMSessionTab* session_floater = LLFloaterIMSessionTab::findConversation(mSelectedSession);
|
||||
|
||||
if(session_floater && !session_floater->isTornOff())
|
||||
{
|
||||
//When in DND mode, remove stored IM notifications
|
||||
//Nearby chat (Null) IMs are not stored while in DND mode, so can ignore removal
|
||||
if(gAgent.isDoNotDisturb() && mSelectedSession.notNull())
|
||||
{
|
||||
LLDoNotDisturbNotificationStorage::getInstance()->removeNotification(LLDoNotDisturbNotificationStorage::toastName, mSelectedSession);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterIMContainer::setVisible(BOOL visible)
|
||||
{ LLFloaterIMNearbyChat* nearby_chat;
|
||||
if (visible)
|
||||
|
|
@ -597,10 +619,21 @@ void LLFloaterIMContainer::setVisible(BOOL visible)
|
|||
// *TODO: find a way to move this to XML as a default panel or something like that
|
||||
LLSD name("nearby_chat");
|
||||
LLFloaterReg::toggleInstanceOrBringToFront(name);
|
||||
setSelectedSession(LLUUID(NULL));
|
||||
selectConversationPair(LLUUID(NULL), false, false);
|
||||
}
|
||||
openNearbyChat();
|
||||
selectConversationPair(getSelectedSession(), false, false);
|
||||
flashConversationItemWidget(mSelectedSession,false);
|
||||
|
||||
LLFloaterIMSessionTab* session_floater = LLFloaterIMSessionTab::findConversation(mSelectedSession);
|
||||
if(session_floater && !session_floater->isMinimized())
|
||||
{
|
||||
//When in DND mode, remove stored IM notifications
|
||||
//Nearby chat (Null) IMs are not stored while in DND mode, so can ignore removal
|
||||
if(gAgent.isDoNotDisturb() && mSelectedSession.notNull())
|
||||
{
|
||||
LLDoNotDisturbNotificationStorage::getInstance()->removeNotification(LLDoNotDisturbNotificationStorage::toastName, mSelectedSession);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
nearby_chat = LLFloaterReg::findTypedInstance<LLFloaterIMNearbyChat>("nearby_chat");
|
||||
|
|
@ -1389,13 +1422,6 @@ BOOL LLFloaterIMContainer::selectConversationPair(const LLUUID& session_id, bool
|
|||
widget->getParentFolder()->setSelection(widget, FALSE, FALSE);
|
||||
mConversationsRoot->scrollToShowSelection();
|
||||
}
|
||||
|
||||
//When in DND mode, remove stored IM notifications
|
||||
//Nearby chat (Null) IMs are not stored while in DND mode, so can ignore removal
|
||||
if(gAgent.isDoNotDisturb() && session_id.notNull())
|
||||
{
|
||||
LLDoNotDisturbNotificationStorage::getInstance()->removeNotification(LLDoNotDisturbNotificationStorage::toastName, session_id);
|
||||
}
|
||||
}
|
||||
|
||||
/* floater processing */
|
||||
|
|
@ -1420,14 +1446,19 @@ BOOL LLFloaterIMContainer::selectConversationPair(const LLUUID& session_id, bool
|
|||
{
|
||||
showStub(true);
|
||||
}
|
||||
|
||||
//When in DND mode, remove stored IM notifications
|
||||
//Nearby chat (Null) IMs are not stored while in DND mode, so can ignore removal
|
||||
if(gAgent.isDoNotDisturb() && session_id.notNull())
|
||||
{
|
||||
LLDoNotDisturbNotificationStorage::getInstance()->removeNotification(LLDoNotDisturbNotificationStorage::toastName, session_id);
|
||||
}
|
||||
}
|
||||
|
||||
// Set the focus on the selected floater
|
||||
if (!session_floater->hasFocus())
|
||||
if (!session_floater->hasFocus() && !session_floater->isMinimized())
|
||||
{
|
||||
BOOL is_minimized = session_floater->isMinimized();
|
||||
session_floater->setFocus(focus_floater);
|
||||
session_floater->setMinimized(is_minimized);
|
||||
}
|
||||
}
|
||||
flashConversationItemWidget(session_id,false);
|
||||
|
|
@ -1986,8 +2017,11 @@ void LLFloaterIMContainer::closeFloater(bool app_quitting/* = false*/)
|
|||
{
|
||||
// Always unminimize before trying to close.
|
||||
// Most of the time the user will never see this state.
|
||||
setMinimized(FALSE);
|
||||
|
||||
if(isMinimized())
|
||||
{
|
||||
LLMultiFloater::setMinimized(FALSE);
|
||||
}
|
||||
|
||||
LLFloater::closeFloater(app_quitting);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ public:
|
|||
/*virtual*/ BOOL postBuild();
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
/*virtual*/ void draw();
|
||||
/*virtual*/ void setMinimized(BOOL b);
|
||||
/*virtual*/ void setVisible(BOOL visible);
|
||||
/*virtual*/ void setVisibleAndFrontmost(BOOL take_focus=TRUE, const LLSD& key = LLSD());
|
||||
/*virtual*/ void updateResizeLimits();
|
||||
|
|
|
|||
|
|
@ -264,7 +264,7 @@ void LLFloaterIMNearbyChat::setVisibleAndFrontmost(BOOL take_focus, const LLSD&
|
|||
|
||||
if(!isTornOff() && matchesKey(key))
|
||||
{
|
||||
LLFloaterIMContainer::getInstance()->selectConversationPair(mSessionID, true, false);
|
||||
LLFloaterIMContainer::getInstance()->selectConversationPair(mSessionID, true, take_focus);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -328,7 +328,7 @@ void LLFloaterIMNearbyChat::onChatFontChange(LLFontGL* fontp)
|
|||
void LLFloaterIMNearbyChat::show()
|
||||
{
|
||||
openFloater(getKey());
|
||||
}
|
||||
}
|
||||
|
||||
bool LLFloaterIMNearbyChat::isChatVisible() const
|
||||
{
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@
|
|||
#include "llchannelmanager.h"
|
||||
#include "llchiclet.h"
|
||||
#include "llchicletbar.h"
|
||||
#include "lldonotdisturbnotificationstorage.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llfloateravatarpicker.h"
|
||||
#include "llfloaterimcontainer.h" // to replace separate IM Floaters with multifloater container
|
||||
|
|
@ -645,6 +646,23 @@ void LLFloaterIMSession::setDocked(bool docked, bool pop_on_undock)
|
|||
}
|
||||
}
|
||||
|
||||
void LLFloaterIMSession::setMinimized(BOOL b)
|
||||
{
|
||||
bool wasMinimized = isMinimized();
|
||||
LLFloaterIMSessionTab::setMinimized(b);
|
||||
|
||||
//Switching from minimized state to un-minimized state
|
||||
if(wasMinimized && !b)
|
||||
{
|
||||
//When in DND mode, remove stored IM notifications
|
||||
//Nearby chat (Null) IMs are not stored while in DND mode, so can ignore removal
|
||||
if(gAgent.isDoNotDisturb())
|
||||
{
|
||||
LLDoNotDisturbNotificationStorage::getInstance()->removeNotification(LLDoNotDisturbNotificationStorage::toastName, mSessionID);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void LLFloaterIMSession::setVisible(BOOL visible)
|
||||
{
|
||||
LLNotificationsUI::LLScreenChannel* channel = static_cast<LLNotificationsUI::LLScreenChannel*>
|
||||
|
|
@ -713,6 +731,18 @@ BOOL LLFloaterIMSession::getVisible()
|
|||
return visible;
|
||||
}
|
||||
|
||||
void LLFloaterIMSession::setFocus(BOOL focus)
|
||||
{
|
||||
LLFloaterIMSessionTab::setFocus(focus);
|
||||
|
||||
//When in DND mode, remove stored IM notifications
|
||||
//Nearby chat (Null) IMs are not stored while in DND mode, so can ignore removal
|
||||
if(focus && gAgent.isDoNotDisturb())
|
||||
{
|
||||
LLDoNotDisturbNotificationStorage::getInstance()->removeNotification(LLDoNotDisturbNotificationStorage::toastName, mSessionID);
|
||||
}
|
||||
}
|
||||
|
||||
//static
|
||||
bool LLFloaterIMSession::toggle(const LLUUID& session_id)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -65,8 +65,10 @@ public:
|
|||
|
||||
// LLView overrides
|
||||
/*virtual*/ BOOL postBuild();
|
||||
/*virtual*/ void setMinimized(BOOL b);
|
||||
/*virtual*/ void setVisible(BOOL visible);
|
||||
/*virtual*/ BOOL getVisible();
|
||||
/*virtual*/ void setFocus(BOOL focus);
|
||||
// Check typing timeout timer.
|
||||
|
||||
/*virtual*/ void draw();
|
||||
|
|
|
|||
|
|
@ -183,18 +183,19 @@ void on_new_message(const LLSD& msg)
|
|||
{
|
||||
conversations_floater_status = CLOSED;
|
||||
}
|
||||
else if (!session_floater || !LLFloater::isVisible(session_floater)
|
||||
|| session_floater->isMinimized() || !session_floater->hasFocus())
|
||||
else if (!im_box->hasFocus() &&
|
||||
!(session_floater && LLFloater::isVisible(session_floater)
|
||||
&& !session_floater->isMinimized() && session_floater->hasFocus()))
|
||||
{
|
||||
conversations_floater_status = NOT_ON_TOP;
|
||||
}
|
||||
else if ((session_floater->hasFocus()) && (im_box->getSelectedSession() == session_id))
|
||||
else if (im_box->getSelectedSession() != session_id)
|
||||
{
|
||||
conversations_floater_status = ON_TOP_AND_ITEM_IS_SELECTED;
|
||||
conversations_floater_status = ON_TOP;
|
||||
}
|
||||
else
|
||||
{
|
||||
conversations_floater_status = ON_TOP;
|
||||
conversations_floater_status = ON_TOP_AND_ITEM_IS_SELECTED;
|
||||
}
|
||||
|
||||
// determine user prefs for this session
|
||||
|
|
@ -227,7 +228,7 @@ void on_new_message(const LLSD& msg)
|
|||
// 0. nothing - exit
|
||||
if (("none" == user_preferences ||
|
||||
ON_TOP_AND_ITEM_IS_SELECTED == conversations_floater_status)
|
||||
&& session_floater->isMessagePaneExpanded())
|
||||
&& session_floater->isMessagePaneExpanded())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -2850,6 +2851,8 @@ LLUUID LLIMMgr::addSession(
|
|||
//we don't need to show notes about online/offline, mute/unmute users' statuses for existing sessions
|
||||
if (!new_session) return session_id;
|
||||
|
||||
llinfos << "LLIMMgr::addSession, new session added, name = " << name << ", session id = " << session_id << llendl;
|
||||
|
||||
//Per Plan's suggestion commented "explicit offline status warning" out to make Dessie happier (see EXT-3609)
|
||||
//*TODO After February 2010 remove this commented out line if no one will be missing that warning
|
||||
//noteOfflineUsers(session_id, floater, ids);
|
||||
|
|
@ -2885,6 +2888,8 @@ void LLIMMgr::removeSession(const LLUUID& session_id)
|
|||
|
||||
LLIMModel::getInstance()->clearSession(session_id);
|
||||
|
||||
llinfos << "LLIMMgr::removeSession, session removed, session id = " << session_id << llendl;
|
||||
|
||||
notifyObserverSessionRemoved(session_id);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8291,8 +8291,6 @@ void initialize_menus()
|
|||
|
||||
view_listener_t::addEnable(new LLUploadCostCalculator(), "Upload.CalculateCosts");
|
||||
|
||||
|
||||
commit.add("Inventory.NewWindow", boost::bind(&LLFloaterInventory::showAgentInventory));
|
||||
enable.add("Conversation.IsConversationLoggingAllowed", boost::bind(&LLFloaterIMContainer::isConversationLoggingAllowed));
|
||||
|
||||
// Agent
|
||||
|
|
|
|||
|
|
@ -70,23 +70,26 @@
|
|||
top="0"
|
||||
left="0"
|
||||
right="-1"
|
||||
bottom="-1">
|
||||
bottom="-3">
|
||||
<layout_stack
|
||||
animate="false"
|
||||
default_tab_group="2"
|
||||
follows="all"
|
||||
right="-5"
|
||||
bottom="-1"
|
||||
top="0"
|
||||
left="5"
|
||||
border_size="0"
|
||||
layout="topleft"
|
||||
orientation="vertical"
|
||||
name="main_stack"
|
||||
tab_group="1"
|
||||
top="0"
|
||||
left="5">
|
||||
tab_group="1">
|
||||
<layout_panel
|
||||
auto_resize="false"
|
||||
name="toolbar_panel"
|
||||
height="35">
|
||||
height="35"
|
||||
right="-1"
|
||||
left="1">
|
||||
<menu_button
|
||||
menu_filename="menu_im_session_showmodes.xml"
|
||||
follows="top|left"
|
||||
|
|
@ -164,7 +167,7 @@
|
|||
image_unselected="Toolbar_Middle_Off"
|
||||
layout="topleft"
|
||||
top="5"
|
||||
right="-70"
|
||||
right="-67"
|
||||
name="close_btn"
|
||||
tool_tip="End this conversation"
|
||||
width="31" />
|
||||
|
|
@ -196,7 +199,8 @@
|
|||
</layout_panel>
|
||||
<layout_panel
|
||||
name="body_panel"
|
||||
height="235">
|
||||
top="1"
|
||||
bottom="-1">
|
||||
<layout_stack
|
||||
default_tab_group="2"
|
||||
follows="all"
|
||||
|
|
@ -213,12 +217,14 @@
|
|||
min_dim="0"
|
||||
width="150"
|
||||
user_resize="true"
|
||||
auto_resize="false" />
|
||||
auto_resize="false"
|
||||
bottom="-1" />
|
||||
<layout_panel
|
||||
default_tab_group="3"
|
||||
tab_group="2"
|
||||
name="right_part_holder"
|
||||
min_width="221">
|
||||
min_width="221"
|
||||
bottom="-1">
|
||||
<layout_stack
|
||||
animate="true"
|
||||
default_tab_group="2"
|
||||
|
|
@ -262,21 +268,28 @@
|
|||
</layout_stack>
|
||||
</layout_panel>
|
||||
<layout_panel
|
||||
height="35"
|
||||
top_delta="0"
|
||||
top="0"
|
||||
height="26"
|
||||
bottom="-1"
|
||||
auto_resize="false"
|
||||
name="chat_layout_panel">
|
||||
<layout_stack
|
||||
animate="false"
|
||||
default_tab_group="2"
|
||||
follows="all"
|
||||
right="-1"
|
||||
orientation="horizontal"
|
||||
name="input_panels"
|
||||
top="0"
|
||||
bottom="-1"
|
||||
left="0">
|
||||
bottom="-2"
|
||||
left="0"
|
||||
right="-1">
|
||||
<layout_panel
|
||||
name="input_editor_layout_panel">
|
||||
name="input_editor_layout_panel"
|
||||
auto_resize="true"
|
||||
user_resize="false"
|
||||
top="0"
|
||||
bottom="-1">
|
||||
<chat_editor
|
||||
layout="topleft"
|
||||
expand_lines_count="5"
|
||||
|
|
@ -289,27 +302,32 @@
|
|||
max_length="1023"
|
||||
spellcheck="true"
|
||||
tab_group="3"
|
||||
bottom="-8"
|
||||
left="5"
|
||||
right="-5"
|
||||
top="1"
|
||||
bottom="-2"
|
||||
left="4"
|
||||
right="-4"
|
||||
wrap="true" />
|
||||
</layout_panel>
|
||||
<layout_panel
|
||||
auto_resize="false"
|
||||
user_resize="false"
|
||||
name="input_button_layout_panel"
|
||||
width="32">
|
||||
width="30"
|
||||
top="0"
|
||||
bottom="-1">
|
||||
<button
|
||||
layout="topleft"
|
||||
left="1"
|
||||
top="4"
|
||||
right="-1"
|
||||
top="1"
|
||||
height="22"
|
||||
follows="left|right|top"
|
||||
height="25"
|
||||
image_hover_unselected="Toolbar_Middle_Over"
|
||||
image_overlay="Conv_expand_one_line"
|
||||
image_selected="Toolbar_Middle_Selected"
|
||||
image_unselected="Toolbar_Middle_Off"
|
||||
name="minz_btn"
|
||||
tool_tip="Shows/hides message panel"
|
||||
width="28" />
|
||||
tool_tip="Shows/hides message panel" />
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</layout_panel>
|
||||
|
|
|
|||
|
|
@ -180,7 +180,8 @@
|
|||
name="Set Logging Level"
|
||||
tear_off="true">
|
||||
<menu_item_check
|
||||
label="Debug">
|
||||
name="Debug"
|
||||
label="Debug">
|
||||
<menu_item_check.on_check
|
||||
function="Develop.CheckLoggingLevel"
|
||||
parameter="0" />
|
||||
|
|
@ -189,7 +190,8 @@
|
|||
parameter="0" />
|
||||
</menu_item_check>
|
||||
<menu_item_check
|
||||
label="Info">
|
||||
name="Info"
|
||||
label="Info">
|
||||
<menu_item_check.on_check
|
||||
function="Develop.CheckLoggingLevel"
|
||||
parameter="1" />
|
||||
|
|
@ -198,7 +200,8 @@
|
|||
parameter="1" />
|
||||
</menu_item_check>
|
||||
<menu_item_check
|
||||
label="Warning">
|
||||
name="Warning"
|
||||
label="Warning">
|
||||
<menu_item_check.on_check
|
||||
function="Develop.CheckLoggingLevel"
|
||||
parameter="2" />
|
||||
|
|
@ -207,7 +210,8 @@
|
|||
parameter="2" />
|
||||
</menu_item_check>
|
||||
<menu_item_check
|
||||
label="Error">
|
||||
name="Error"
|
||||
label="Error">
|
||||
<menu_item_check.on_check
|
||||
function="Develop.CheckLoggingLevel"
|
||||
parameter="3" />
|
||||
|
|
@ -216,7 +220,8 @@
|
|||
parameter="3" />
|
||||
</menu_item_check>
|
||||
<menu_item_check
|
||||
label="None">
|
||||
name="None"
|
||||
label="None">
|
||||
<menu_item_check.on_check
|
||||
function="Develop.CheckLoggingLevel"
|
||||
parameter="4" />
|
||||
|
|
|
|||
|
|
@ -131,6 +131,7 @@
|
|||
name="Status"
|
||||
tear_off="true">
|
||||
<menu_item_check
|
||||
name="Away"
|
||||
label="Away">
|
||||
<menu_item_check.on_check
|
||||
function="View.Status.CheckAway" />
|
||||
|
|
@ -138,6 +139,7 @@
|
|||
function="World.SetAway" />
|
||||
</menu_item_check>
|
||||
<menu_item_check
|
||||
name="Do Not Disturb"
|
||||
label="Do Not Disturb">
|
||||
<menu_item_check.on_check
|
||||
function="View.Status.CheckDoNotDisturb" />
|
||||
|
|
@ -257,6 +259,7 @@
|
|||
parameter="speak" />
|
||||
</menu_item_check>
|
||||
<menu_item_check
|
||||
name="Conversation Log..."
|
||||
label="Conversation Log...">
|
||||
<menu_item_check.on_check
|
||||
function="Floater.Visible"
|
||||
|
|
@ -352,6 +355,7 @@
|
|||
</menu_item_call>
|
||||
<menu_item_separator/>
|
||||
<menu_item_check
|
||||
name="Do Not Disturb"
|
||||
label="Do Not Disturb">
|
||||
<menu_item_check.on_check
|
||||
function="View.Status.CheckDoNotDisturb" />
|
||||
|
|
@ -3051,13 +3055,6 @@
|
|||
<menu_item_call.on_click
|
||||
function="Advanced.PrintAgentInfo" />
|
||||
</menu_item_call>
|
||||
<menu_item_call
|
||||
label="Memory Stats"
|
||||
name="Memory Stats"
|
||||
shortcut="control|alt|shift|M">
|
||||
<menu_item_call.on_click
|
||||
function="Advanced.PrintTextureMemoryStats" />
|
||||
</menu_item_call>
|
||||
<menu_item_check
|
||||
label="Region Debug Console"
|
||||
name="Region Debug Console"
|
||||
|
|
|
|||
Loading…
Reference in New Issue