Work on normal task EXT-2640 (Create a tabbed IM multifloater)
- disabled Transient & Dockable functionality of IM Floaters to do not have collisions with multifloater - remove debug attributes in xml --HG-- branch : product-enginemeow-7.2.2
parent
3c4a98ff3c
commit
11ef9f3d41
|
|
@ -53,6 +53,10 @@
|
|||
#include "lltransientfloatermgr.h"
|
||||
#include "llinventorymodel.h"
|
||||
|
||||
#ifdef USE_IM_CONTAINER
|
||||
#include "llimfloatercontainer.h" // to replace separate IM Floaters with multifloater container
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
LLIMFloater::LLIMFloater(const LLUUID& session_id)
|
||||
|
|
@ -257,7 +261,11 @@ BOOL LLIMFloater::postBuild()
|
|||
//*TODO if session is not initialized yet, add some sort of a warning message like "starting session...blablabla"
|
||||
//see LLFloaterIMPanel for how it is done (IB)
|
||||
|
||||
#ifdef USE_IM_CONTAINER
|
||||
return LLFloater::postBuild();
|
||||
#else
|
||||
return LLDockableFloater::postBuild();
|
||||
#endif
|
||||
}
|
||||
|
||||
// virtual
|
||||
|
|
@ -318,6 +326,7 @@ void LLIMFloater::onSlide()
|
|||
//static
|
||||
LLIMFloater* LLIMFloater::show(const LLUUID& session_id)
|
||||
{
|
||||
#ifndef USE_IM_CONTAINER
|
||||
//hide all
|
||||
LLFloaterReg::const_instance_list_t& inst_list = LLFloaterReg::getFloaterList("impanel");
|
||||
for (LLFloaterReg::const_instance_list_t::const_iterator iter = inst_list.begin();
|
||||
|
|
@ -329,12 +338,23 @@ LLIMFloater* LLIMFloater::show(const LLUUID& session_id)
|
|||
floater->setVisible(false);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
LLIMFloater* floater = LLFloaterReg::showTypedInstance<LLIMFloater>("impanel", session_id);
|
||||
|
||||
floater->updateMessages();
|
||||
floater->mInputEditor->setFocus(TRUE);
|
||||
|
||||
#ifdef USE_IM_CONTAINER
|
||||
|
||||
// LLTabContainer::eInsertionPoint i_pt = user_initiated ? LLTabContainer::RIGHT_OF_CURRENT : LLTabContainer::END;
|
||||
// TODO: mantipov: use LLTabContainer::RIGHT_OF_CURRENT if it exists
|
||||
LLTabContainer::eInsertionPoint i_pt = LLTabContainer::END;
|
||||
|
||||
// *TODO: mantipov: validate if floater was torn off. In this case it's no necessary to show container
|
||||
LLIMFloaterContainer* floater_container = LLFloaterReg::showTypedInstance<LLIMFloaterContainer>("im_container");
|
||||
floater_container->addFloater(floater, TRUE, i_pt);
|
||||
#else
|
||||
if (floater->getDockControl() == NULL)
|
||||
{
|
||||
LLChiclet* chiclet =
|
||||
|
|
@ -352,6 +372,7 @@ LLIMFloater* LLIMFloater::show(const LLUUID& session_id)
|
|||
floater->setDockControl(new LLDockControl(chiclet, floater, floater->getDockTongue(),
|
||||
LLDockControl::TOP, boost::bind(&LLIMFloater::getAllowedRect, floater, _1)));
|
||||
}
|
||||
#endif
|
||||
|
||||
return floater;
|
||||
}
|
||||
|
|
@ -368,7 +389,9 @@ void LLIMFloater::setDocked(bool docked, bool pop_on_undock)
|
|||
(LLNotificationsUI::LLChannelManager::getInstance()->
|
||||
findChannelByID(LLUUID(gSavedSettings.getString("NotificationChannelUUID"))));
|
||||
|
||||
#ifndef USE_IM_CONTAINER
|
||||
LLTransientDockableFloater::setDocked(docked, pop_on_undock);
|
||||
#endif
|
||||
|
||||
// update notification channel state
|
||||
if(channel)
|
||||
|
|
@ -394,6 +417,7 @@ void LLIMFloater::setVisible(BOOL visible)
|
|||
//static
|
||||
bool LLIMFloater::toggle(const LLUUID& session_id)
|
||||
{
|
||||
#ifndef USE_IM_CONTAINER
|
||||
LLIMFloater* floater = LLFloaterReg::findTypedInstance<LLIMFloater>("impanel", session_id);
|
||||
if (floater && floater->getVisible() && floater->isDocked())
|
||||
{
|
||||
|
|
@ -409,6 +433,7 @@ bool LLIMFloater::toggle(const LLUUID& session_id)
|
|||
return true;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
// ensure the list of messages is updated when floater is made visible
|
||||
show(session_id);
|
||||
|
|
|
|||
|
|
@ -33,6 +33,11 @@
|
|||
#ifndef LL_IMFLOATER_H
|
||||
#define LL_IMFLOATER_H
|
||||
|
||||
// This variable is used to show floaters related to chiclets in a Multi Floater Container
|
||||
// So, this functionality does not require to have IM Floaters as Dockable & Transient
|
||||
// See EXT-2640.
|
||||
#define USE_IM_CONTAINER
|
||||
|
||||
#include "lltransientdockablefloater.h"
|
||||
#include "lllogchat.h"
|
||||
#include "lltooldraganddrop.h"
|
||||
|
|
|
|||
|
|
@ -35,9 +35,6 @@
|
|||
|
||||
#include "llimfloatercontainer.h"
|
||||
|
||||
// TODO: mantipov: replace with floater_im_session
|
||||
#include "llimpanel.h"
|
||||
|
||||
//
|
||||
// LLIMFloaterContainer
|
||||
//
|
||||
|
|
@ -54,22 +51,24 @@ LLIMFloaterContainer::~LLIMFloaterContainer()
|
|||
|
||||
BOOL LLIMFloaterContainer::postBuild()
|
||||
{
|
||||
// TODO: mantipov: verify if it is needed
|
||||
mTabContainer->lockTabs();
|
||||
// Do not call base postBuild to not connect to mCloseSignal to not close all floaters via Close button
|
||||
// mTabContainer will be initialized in LLMultiFloater::addChild()
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void LLIMFloaterContainer::onOpen(const LLSD& key)
|
||||
{
|
||||
// TODO: mantipov: verify if it is needed
|
||||
LLMultiFloater::onOpen(key);
|
||||
/*
|
||||
if (key.isDefined())
|
||||
{
|
||||
LLFloaterIMPanel* impanel = gIMMgr->findFloaterBySession(key.asUUID());
|
||||
if (impanel)
|
||||
LLIMFloater* im_floater = LLIMFloater::findInstance(key.asUUID());
|
||||
if (im_floater)
|
||||
{
|
||||
impanel->openFloater();
|
||||
im_floater->openFloater();
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
void LLIMFloaterContainer::addFloater(LLFloater* floaterp,
|
||||
|
|
|
|||
|
|
@ -13,8 +13,6 @@ bg_color="yellow"
|
|||
title="Instant Messages"
|
||||
width="392">
|
||||
<tab_container
|
||||
background_visible="true"
|
||||
bg_alpha_color="green"
|
||||
follows="left|right|top|bottom"
|
||||
height="390"
|
||||
layout="topleft"
|
||||
|
|
@ -25,7 +23,7 @@ bg_alpha_color="green"
|
|||
top="0"
|
||||
width="390" />
|
||||
<icon
|
||||
color="red"
|
||||
color="DefaultShadowLight"
|
||||
enabled="false"
|
||||
follows="left|right|bottom"
|
||||
height="17"
|
||||
|
|
@ -33,6 +31,6 @@ bg_alpha_color="green"
|
|||
layout="bottomleft"
|
||||
left="1"
|
||||
name="im_box_tab_container_icon"
|
||||
bottom="0"
|
||||
bottom="10"
|
||||
width="390" />
|
||||
</multi_floater>
|
||||
|
|
|
|||
Loading…
Reference in New Issue