STORM-301 : merge to viewer-beta

meow-7.2.2
Merov Linden 2010-10-11 14:29:49 -07:00
commit ae90fd93c8
5 changed files with 45 additions and 1 deletions

View File

@ -231,7 +231,8 @@ LLFloater::LLFloater(const LLSD& key, const LLFloater::Params& p)
mTornOff(false),
mHasBeenDraggedWhileMinimized(FALSE),
mPreviousMinimizedBottom(0),
mPreviousMinimizedLeft(0)
mPreviousMinimizedLeft(0),
mMinimizeSignal(NULL)
// mNotificationContext(NULL)
{
mHandle.bind(this);
@ -493,6 +494,8 @@ LLFloater::~LLFloater()
setVisible(false); // We're not visible if we're destroyed
storeVisibilityControl();
storeDockStateControl();
delete mMinimizeSignal;
}
void LLFloater::storeRectControl()
@ -997,6 +1000,11 @@ void LLFloater::setMinimized(BOOL minimize)
if (minimize == mMinimized) return;
if(mMinimizeSignal)
{
(*mMinimizeSignal)(this, LLSD(minimize));
}
if (minimize)
{
// minimized flag should be turned on before release focus
@ -2810,6 +2818,12 @@ void LLFloater::initFromParams(const LLFloater::Params& p)
}
}
boost::signals2::connection LLFloater::setMinimizeCallback( const commit_signal_t::slot_type& cb )
{
if (!mMinimizeSignal) mMinimizeSignal = new commit_signal_t();
return mMinimizeSignal->connect(cb);
}
LLFastTimer::DeclareTimer POST_BUILD("Floater Post Build");
bool LLFloater::initFloaterXML(LLXMLNodePtr node, LLView *parent, const std::string& filename, LLXMLNodePtr output_node)

View File

@ -142,6 +142,8 @@ public:
// Don't export top/left for rect, only height/width
static void setupParamsForExport(Params& p, LLView* parent);
boost::signals2::connection setMinimizeCallback( const commit_signal_t::slot_type& cb );
void initFromParams(const LLFloater::Params& p);
bool initFloaterXML(LLXMLNodePtr node, LLView *parent, const std::string& filename, LLXMLNodePtr output_node = NULL);
@ -347,6 +349,8 @@ public:
// Public so external views or floaters can watch for this floater closing
commit_signal_t mCloseSignal;
commit_signal_t* mMinimizeSignal;
protected:
std::string mRectControl;
std::string mVisibilityControl;

View File

@ -182,6 +182,11 @@ void LLSidepanelAppearance::onOpen(const LLSD& key)
}
void LLSidepanelAppearance::onVisibilityChange(const LLSD &new_visibility)
{
updateToVisibility(new_visibility);
}
void LLSidepanelAppearance::updateToVisibility(const LLSD &new_visibility)
{
if (new_visibility.asBoolean())
{

View File

@ -63,6 +63,7 @@ public:
void setWearablesLoading(bool val);
void showDefaultSubpart();
void updateScrollingPanelList();
void updateToVisibility( const LLSD& new_visibility );
private:
void onFilterEdit(const std::string& search_string);

View File

@ -49,6 +49,8 @@
#include "llwindow.h"//for SetCursor
#include "lltransientfloatermgr.h"
#include "llsidepanelappearance.h"
//#include "llscrollcontainer.h"
using namespace std;
@ -290,6 +292,13 @@ void LLSideTrayTab::dock()
}
}
static void on_minimize(LLSidepanelAppearance* panel, LLSD minimized)
{
if (!panel) return;
bool visible = !minimized.asBoolean();
panel->updateToVisibility(LLSD(visible));
}
void LLSideTrayTab::undock(LLFloater* floater_tab)
{
LLSideTray* side_tray = getSideTray();
@ -351,6 +360,17 @@ void LLSideTrayTab::undock(LLFloater* floater_tab)
// Set FOLLOWS_ALL flag for the tab to follow floater dimensions upon resizing.
setFollowsAll();
// Camera view may need to be changed for appearance panel(STORM-301) on minimize of floater,
// so setting callback here.
if (getName() == "sidebar_appearance")
{
LLSidepanelAppearance* panel_appearance = dynamic_cast<LLSidepanelAppearance*>(getPanel());
if(panel_appearance)
{
floater_tab->setMinimizeCallback(boost::bind(&on_minimize, panel_appearance, _2));
}
}
if (!side_tray->getCollapsed())
{
side_tray->collapseSideBar();