diff options
| author | Vadim ProductEngine <vsavchuk@productengine.com> | 2011-12-06 20:06:44 +0200 |
|---|---|---|
| committer | Vadim ProductEngine <vsavchuk@productengine.com> | 2011-12-06 20:06:44 +0200 |
| commit | 2be10e866056d19f01568fe6f569af7ab9ad7686 (patch) | |
| tree | 5e8f9ad85e32d08cd3683f4929317686ea2993d1 /indra/newview/llfloaterwebprofile.cpp | |
| parent | 37ff2f2282a7b9dbac6fb8d33bf65c110347cd24 (diff) | |
EXP-1577 FOLLOWUP Implemented new requirements on size of profile floaters.
Implemented new requirements from XD: "Profile window should keep last size,
regardless of whether it was own profile or another users'.
If multiple windows open, last one touched is the size we store."
Diffstat (limited to 'indra/newview/llfloaterwebprofile.cpp')
| -rw-r--r-- | indra/newview/llfloaterwebprofile.cpp | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/indra/newview/llfloaterwebprofile.cpp b/indra/newview/llfloaterwebprofile.cpp new file mode 100644 index 0000000000..7ee7b5172c --- /dev/null +++ b/indra/newview/llfloaterwebprofile.cpp @@ -0,0 +1,79 @@ +/** + * @file llfloaterwebprofile.cpp + * @brief Avatar profile floater. + * + * $LicenseInfo:firstyear=2009&license=viewerlgpl$ + * Second Life Viewer Source Code + * Copyright (C) 2010, Linden Research, Inc. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; + * version 2.1 of the License only. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA + * $/LicenseInfo$ + */ + +#include "llviewerprecompiledheaders.h" + +#include "llfloaterwebprofile.h" + +#include "llviewercontrol.h" + +LLFloaterWebProfile::LLFloaterWebProfile(const Params& key) : + LLFloaterWebContent(key) +{ +} + +void LLFloaterWebProfile::onOpen(const LLSD& key) +{ + Params p(key); + LLFloaterWebContent::onOpen(p); + applyPreferredRect(); +} + +// virtual +void LLFloaterWebProfile::handleReshape(const LLRect& new_rect, bool by_user) +{ + lldebugs << "handleReshape: " << new_rect << llendl; + + if (by_user && !isMinimized()) + { + lldebugs << "Storing new rect" << llendl; + gSavedSettings.setRect("WebProfileFloaterRect", new_rect); + } + + LLFloaterWebContent::handleReshape(new_rect, by_user); +} + +LLFloater* LLFloaterWebProfile::create(const LLSD& key) +{ + LLFloaterWebContent::Params p(key); + preCreate(p); + p.show_chrome(false). + window_class("profile"); + return new LLFloaterWebProfile(p); +} + +void LLFloaterWebProfile::applyPreferredRect() +{ + const LLRect preferred_rect = gSavedSettings.getRect("WebProfileFloaterRect"); + lldebugs << "Applying preferred rect: " << preferred_rect << llendl; + + // Don't override position that may have been set by floater stacking code. + LLRect new_rect = getRect(); + new_rect.setLeftTopAndSize( + new_rect.mLeft, new_rect.mTop, + preferred_rect.getWidth(), preferred_rect.getHeight()); + setShape(new_rect); +} |
