Merge remote-tracking branch 'singu/master'
This commit is contained in:
@@ -43,6 +43,8 @@ static LLRegisterWidget<LLUICtrl> r("ui_ctrl");
|
||||
|
||||
LLUICtrl::LLUICtrl() :
|
||||
mViewModel(LLViewModelPtr(new LLViewModel)),
|
||||
mMakeVisibleControlVariable(NULL),
|
||||
mMakeInvisibleControlVariable(NULL),
|
||||
mCommitSignal(NULL),
|
||||
mValidateSignal(NULL),
|
||||
mMouseEnterSignal(NULL),
|
||||
@@ -144,6 +146,56 @@ LLViewModel* LLUICtrl::getViewModel() const
|
||||
{
|
||||
return mViewModel;
|
||||
}
|
||||
|
||||
void LLUICtrl::setMakeVisibleControlVariable(LLControlVariable* control)
|
||||
{
|
||||
if (mMakeVisibleControlVariable)
|
||||
{
|
||||
mMakeVisibleControlConnection.disconnect(); // disconnect current signal
|
||||
mMakeVisibleControlVariable = NULL;
|
||||
}
|
||||
if (control)
|
||||
{
|
||||
mMakeVisibleControlVariable = control;
|
||||
mMakeVisibleControlConnection = mMakeVisibleControlVariable->getSignal()->connect(boost::bind(&controlListener, _2, getHandle(), std::string("visible")));
|
||||
setVisible(mMakeVisibleControlVariable->getValue().asBoolean());
|
||||
}
|
||||
}
|
||||
|
||||
void LLUICtrl::setMakeInvisibleControlVariable(LLControlVariable* control)
|
||||
{
|
||||
if (mMakeInvisibleControlVariable)
|
||||
{
|
||||
mMakeInvisibleControlConnection.disconnect(); // disconnect current signal
|
||||
mMakeInvisibleControlVariable = NULL;
|
||||
}
|
||||
if (control)
|
||||
{
|
||||
mMakeInvisibleControlVariable = control;
|
||||
mMakeInvisibleControlConnection = mMakeInvisibleControlVariable->getSignal()->connect(boost::bind(&controlListener, _2, getHandle(), std::string("invisible")));
|
||||
setVisible(!(mMakeInvisibleControlVariable->getValue().asBoolean()));
|
||||
}
|
||||
}
|
||||
// static
|
||||
bool LLUICtrl::controlListener(const LLSD& newvalue, LLHandle<LLUICtrl> handle, std::string type)
|
||||
{
|
||||
LLUICtrl* ctrl = handle.get();
|
||||
if (ctrl)
|
||||
{
|
||||
if (type == "visible")
|
||||
{
|
||||
ctrl->setVisible(newvalue.asBoolean());
|
||||
return true;
|
||||
}
|
||||
else if (type == "invisible")
|
||||
{
|
||||
ctrl->setVisible(!newvalue.asBoolean());
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
// virtual
|
||||
BOOL LLUICtrl::setTextArg( const std::string& key, const LLStringExplicit& text )
|
||||
{
|
||||
@@ -532,6 +584,19 @@ void LLUICtrl::initFromXML(LLXMLNodePtr node, LLView* parent)
|
||||
}
|
||||
}
|
||||
LLView::initFromXML(node, parent);
|
||||
|
||||
if(node->getAttributeString("visibility_control",attrib_str) || node->getAttributeString("visiblity_control",attrib_str))
|
||||
{
|
||||
LLControlVariable* control = findControl(attrib_str);
|
||||
if (control)
|
||||
setMakeVisibleControlVariable(control);
|
||||
}
|
||||
if(node->getAttributeString("invisibility_control",attrib_str) || node->getAttributeString("invisiblity_control",attrib_str))
|
||||
{
|
||||
LLControlVariable* control = findControl(attrib_str);
|
||||
if (control)
|
||||
setMakeInvisibleControlVariable(control);
|
||||
}
|
||||
}
|
||||
|
||||
LLXMLNodePtr LLUICtrl::getXML(bool save_children) const
|
||||
|
||||
@@ -80,6 +80,8 @@ public:
|
||||
virtual class LLCtrlSelectionInterface* getSelectionInterface();
|
||||
virtual class LLCtrlListInterface* getListInterface();
|
||||
virtual class LLCtrlScrollInterface* getScrollInterface();
|
||||
void setMakeVisibleControlVariable(LLControlVariable* control);
|
||||
void setMakeInvisibleControlVariable(LLControlVariable* control);
|
||||
|
||||
virtual void setTentative(BOOL b);
|
||||
virtual BOOL getTentative() const;
|
||||
@@ -116,6 +118,7 @@ public:
|
||||
BOOL focusLastItem(BOOL prefer_text_fields = FALSE);
|
||||
|
||||
// Non Virtuals
|
||||
LLHandle<LLUICtrl> getHandle() const { return getDerivedHandle<LLUICtrl>(); }
|
||||
BOOL getIsChrome() const;
|
||||
|
||||
void setTabStop( BOOL b );
|
||||
@@ -151,9 +154,11 @@ public:
|
||||
class CommitCallbackRegistry : public CallbackRegistry<commit_callback_t, CommitCallbackRegistry>{};
|
||||
// the enable callback registry is also used for visiblity callbacks
|
||||
class EnableCallbackRegistry : public CallbackRegistry<enable_callback_t, EnableCallbackRegistry>{};
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
static bool controlListener(const LLSD& newvalue, LLHandle<LLUICtrl> handle, std::string type);
|
||||
|
||||
commit_signal_t* mCommitSignal;
|
||||
enable_signal_t* mValidateSignal;
|
||||
|
||||
@@ -162,6 +167,10 @@ protected:
|
||||
|
||||
LLViewModelPtr mViewModel;
|
||||
|
||||
LLControlVariable* mMakeVisibleControlVariable;
|
||||
boost::signals2::connection mMakeVisibleControlConnection;
|
||||
LLControlVariable* mMakeInvisibleControlVariable;
|
||||
boost::signals2::connection mMakeInvisibleControlConnection;
|
||||
private:
|
||||
|
||||
BOOL mTabStop;
|
||||
|
||||
@@ -262,6 +262,7 @@ set(viewer_SOURCE_FILES
|
||||
llfloatervoiceeffect.cpp
|
||||
llfloaterwater.cpp
|
||||
llfloaterwebcontent.cpp
|
||||
llfloaterwebprofile.cpp
|
||||
llfloaterwhitelistentry.cpp
|
||||
llfloaterwindlight.cpp
|
||||
llfloaterworldmap.cpp
|
||||
@@ -772,6 +773,7 @@ set(viewer_HEADER_FILES
|
||||
llfloatervoiceeffect.h
|
||||
llfloaterwater.h
|
||||
llfloaterwebcontent.h
|
||||
llfloaterwebprofile.h
|
||||
llfloaterwhitelistentry.h
|
||||
llfloaterwindlight.h
|
||||
llfloaterworldmap.h
|
||||
|
||||
@@ -17025,6 +17025,22 @@ This should be as low as possible, but too low may break functionality</string>
|
||||
<key>Value</key>
|
||||
<integer>0</integer>
|
||||
</map>
|
||||
<key>WebProfileFloaterRect</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Web profile floater dimensions</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Rect</string>
|
||||
<key>Value</key>
|
||||
<array>
|
||||
<integer>0</integer>
|
||||
<integer>680</integer>
|
||||
<integer>485</integer>
|
||||
<integer>0</integer>
|
||||
</array>
|
||||
</map>
|
||||
<key>SimulateFBOFailure</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
|
||||
@@ -609,5 +609,16 @@
|
||||
<key>Value</key>
|
||||
<boolean>0</boolean>
|
||||
</map>
|
||||
<key>UseWebProfiles</key>
|
||||
<map>
|
||||
<key>Comment</key>
|
||||
<string>Always use web profiles floaters instead of legacy profile floaters.</string>
|
||||
<key>Persist</key>
|
||||
<integer>1</integer>
|
||||
<key>Type</key>
|
||||
<string>Boolean</string>
|
||||
<key>Value</key>
|
||||
<boolean>0</boolean>
|
||||
</map>
|
||||
</map>
|
||||
</llsd>
|
||||
|
||||
@@ -224,6 +224,7 @@ void LLPrefsAscentSys::refreshValues()
|
||||
mEnableClassicClouds = gSavedSettings.getBOOL("SkyUseClassicClouds");
|
||||
mSpeedRez = gSavedSettings.getBOOL("SpeedRez");
|
||||
mSpeedRezInterval = gSavedSettings.getU32("SpeedRezInterval");
|
||||
mUseWebProfiles = gSavedSettings.getBOOL("UseWebProfiles");
|
||||
|
||||
//Command Line ------------------------------------------------------------------------
|
||||
mCmdLine = gSavedSettings.getBOOL("AscentCmdLine");
|
||||
@@ -374,6 +375,7 @@ void LLPrefsAscentSys::cancel()
|
||||
gSavedSettings.setBOOL("SkyUseClassicClouds", mEnableClassicClouds);
|
||||
gSavedSettings.setBOOL("SpeedRez", mSpeedRez);
|
||||
gSavedSettings.setU32("SpeedRezInterval", mSpeedRezInterval);
|
||||
gSavedSettings.setBOOL("UseWebProfiles", mUseWebProfiles);
|
||||
|
||||
//Command Line ------------------------------------------------------------------------
|
||||
gSavedSettings.setBOOL("AscentCmdLine", mCmdLine);
|
||||
|
||||
@@ -72,6 +72,7 @@ protected:
|
||||
BOOL mEnableClassicClouds;
|
||||
BOOL mSpeedRez;
|
||||
U32 mSpeedRezInterval;
|
||||
bool mUseWebProfiles;
|
||||
|
||||
//Command Line ------------------------------------------------------------------------
|
||||
BOOL mCmdLine;
|
||||
|
||||
@@ -39,11 +39,13 @@
|
||||
#include "llfloateravatarinfo.h"
|
||||
#include "llfloatergroupinvite.h"
|
||||
#include "llfloatergroups.h"
|
||||
#include "llfloaterwebprofile.h"
|
||||
#include "llfloaterworldmap.h"
|
||||
#include "llgivemoney.h"
|
||||
#include "llimview.h" // for gIMMgr
|
||||
#include "llinventoryobserver.h"
|
||||
#include "llmutelist.h"
|
||||
#include "llpanelprofile.h"
|
||||
#include "lltrans.h"
|
||||
#include "llvoiceclient.h"
|
||||
#include "llweb.h"
|
||||
@@ -324,18 +326,16 @@ void LLAvatarActions::startConference(const uuid_vec_t& ids)
|
||||
make_ui_sound("UISndStartIM");
|
||||
}
|
||||
|
||||
/* Singu TODO: Web Profiles
|
||||
static const char* get_profile_floater_name(const LLUUID& avatar_id)
|
||||
{
|
||||
// Use different floater XML for our profile to be able to save its rect.
|
||||
return avatar_id == gAgentID ? "my_profile" : "profile";
|
||||
}
|
||||
*/
|
||||
|
||||
static void on_avatar_name_show_profile(const LLUUID& agent_id, const LLAvatarName& av_name)
|
||||
static void on_avatar_name_show_profile(const LLUUID& agent_id, const LLAvatarName& av_name, bool web)
|
||||
{
|
||||
//if (!gSavedSettings.getBOOL("UseWebProfiles")
|
||||
//{
|
||||
if (gSavedSettings.getString("WebProfileURL").empty() || !(web || gSavedSettings.getBOOL("UseWebProfiles")))
|
||||
{
|
||||
LLFloaterAvatarInfo* floater = LLFloaterAvatarInfo::getInstance(agent_id);
|
||||
if(!floater)
|
||||
{
|
||||
@@ -345,8 +345,7 @@ static void on_avatar_name_show_profile(const LLUUID& agent_id, const LLAvatarNa
|
||||
|
||||
// ...bring that window to front
|
||||
floater->open(); /*Flawfinder: ignore*/
|
||||
//}
|
||||
/*
|
||||
}
|
||||
else
|
||||
{
|
||||
std::string username = av_name.mUsername;
|
||||
@@ -362,21 +361,20 @@ static void on_avatar_name_show_profile(const LLUUID& agent_id, const LLAvatarNa
|
||||
LLFloaterWebContent::Params p;
|
||||
p.url(url).
|
||||
id(agent_id.asString());
|
||||
LLFloaterReg::showInstance(get_profile_floater_name(agent_id), p);
|
||||
LLFloaterWebProfile::showInstance(get_profile_floater_name(agent_id), p);
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
// static
|
||||
void LLAvatarActions::showProfile(const LLUUID& id)
|
||||
void LLAvatarActions::showProfile(const LLUUID& id, bool web)
|
||||
{
|
||||
if (id.notNull())
|
||||
{
|
||||
LLAvatarName av_name;
|
||||
if (LLAvatarNameCache::get(id, &av_name)) // Bypass expiration, open NOW!
|
||||
on_avatar_name_show_profile(id, av_name);
|
||||
on_avatar_name_show_profile(id, av_name, web);
|
||||
else
|
||||
LLAvatarNameCache::get(id, boost::bind(&on_avatar_name_show_profile, _1, _2));
|
||||
LLAvatarNameCache::get(id, boost::bind(&on_avatar_name_show_profile, _1, _2, web));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -391,12 +389,11 @@ bool LLAvatarActions::profileVisible(const LLUUID& id)
|
||||
LLFloater* LLAvatarActions::getProfileFloater(const LLUUID& id)
|
||||
{
|
||||
LLFloater* browser;
|
||||
//if (!gSavedSettings.getBOOL("UseWebProfiles")
|
||||
if (gSavedSettings.getString("WebProfileURL").empty() || !gSavedSettings.getBOOL("UseWebProfiles"))
|
||||
browser = LLFloaterAvatarInfo::getInstance(id);
|
||||
/*else
|
||||
browser = dynamic_cast<LLFloaterWebContent*>
|
||||
(LLFloaterReg::findInstance(get_profile_floater_name(id), LLSD().with("id", id)));
|
||||
*/
|
||||
else
|
||||
browser =
|
||||
LLFloaterWebProfile::getInstance(id.asString());
|
||||
return browser;
|
||||
}
|
||||
|
||||
|
||||
@@ -85,7 +85,7 @@ public:
|
||||
/**
|
||||
* Show avatar profile.
|
||||
*/
|
||||
static void showProfile(const LLUUID& id);
|
||||
static void showProfile(const LLUUID& id, bool web = false);
|
||||
static void hideProfile(const LLUUID& id);
|
||||
static bool profileVisible(const LLUUID& id);
|
||||
static LLFloater* getProfileFloater(const LLUUID& id);
|
||||
|
||||
@@ -334,7 +334,7 @@ void LLFloaterTeleportHistory::onTeleport(void* data)
|
||||
LLFloaterTeleportHistory* self = (LLFloaterTeleportHistory*) data;
|
||||
|
||||
// build secondlife::/app link from simstring for instant teleport to destination
|
||||
std::string slapp = "secondlife:///app/teleport/" + self->mPlacesList->getFirstSelected()->getColumn(LIST_SLURL)->getValue().asString();
|
||||
std::string slapp = "secondlife:///app/teleport/" + self->mPlacesList->getFirstSelected()->getColumn(LIST_SIMSTRING)->getValue().asString();
|
||||
LLUrlAction::teleportToLocation(slapp);
|
||||
}
|
||||
|
||||
|
||||
@@ -74,7 +74,6 @@ LLFloaterWebContent::LLFloaterWebContent( const Params& params )
|
||||
mCommitCallbackRegistrar.add( "WebContent.Stop", boost::bind( &LLFloaterWebContent::onClickStop, this ));
|
||||
mCommitCallbackRegistrar.add( "WebContent.EnterAddress", boost::bind( &LLFloaterWebContent::onEnterAddress, this ));
|
||||
mCommitCallbackRegistrar.add( "WebContent.PopExternal", boost::bind( &LLFloaterWebContent::onPopExternal, this ));
|
||||
LLUICtrlFactory::getInstance()->buildFloater(this, "floater_web_content.xml");
|
||||
mAgeTimer.reset();
|
||||
}
|
||||
|
||||
@@ -175,7 +174,7 @@ void LLFloaterWebContent::showInstance(const std::string& window_class, Params&
|
||||
assert(!old_inst);
|
||||
|
||||
if(!old_inst)
|
||||
LLFloaterWebContent::create(p);
|
||||
LLUICtrlFactory::getInstance()->buildFloater(LLFloaterWebContent::create(p), "floater_web_content.xml");
|
||||
}
|
||||
|
||||
//static
|
||||
@@ -305,6 +304,12 @@ void LLFloaterWebContent::open_media(const Params& p)
|
||||
{
|
||||
setResizeLimits(100, 100);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Singu Note: currently only true with normal browser floater, if this changes, this workaround breaks
|
||||
setRectControl("FloaterMediaRect");
|
||||
applyRectControl();
|
||||
}
|
||||
|
||||
if (!p.preferred_media_size().isEmpty())
|
||||
{
|
||||
|
||||
@@ -81,6 +81,7 @@ public:
|
||||
/* virtual */ void draw();
|
||||
|
||||
protected:
|
||||
friend class LLFloaterWebProfile;
|
||||
// inherited from LLViewerMediaObserver
|
||||
/*virtual*/ void handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event);
|
||||
|
||||
|
||||
121
indra/newview/llfloaterwebprofile.cpp
Executable file
121
indra/newview/llfloaterwebprofile.cpp
Executable file
@@ -0,0 +1,121 @@
|
||||
/**
|
||||
* @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 "lluictrlfactory.h"
|
||||
#include "llviewercontrol.h"
|
||||
|
||||
LLFloaterWebProfile::LLFloaterWebProfile(const Params& key) :
|
||||
LLFloaterWebContent(key)
|
||||
{
|
||||
}
|
||||
|
||||
void LLFloaterWebProfile::onOpen()
|
||||
{
|
||||
Params p(mKey);
|
||||
p.show_chrome(false).
|
||||
window_class("profile");
|
||||
mKey = p;
|
||||
LLFloaterWebContent::onOpen();
|
||||
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);
|
||||
}
|
||||
|
||||
// Singu Note: this was copied from LLFloaterWebContent::showInstance
|
||||
//static
|
||||
void LLFloaterWebProfile::showInstance(const std::string& window_class, Params& p)
|
||||
{
|
||||
p.window_class(window_class);
|
||||
|
||||
LLSD key = p;
|
||||
|
||||
instance_iter it = beginInstances();
|
||||
for(;it!=endInstances();++it)
|
||||
{
|
||||
if(it->mKey["window_class"].asString() == window_class)
|
||||
{
|
||||
if(it->matchesKey(key))
|
||||
{
|
||||
it->mKey = key;
|
||||
it->setKey(p.id());
|
||||
it->mAgeTimer.reset();
|
||||
it->open();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
LLFloaterWebContent* old_inst = getInstance(p.id());
|
||||
if(old_inst)
|
||||
{
|
||||
llwarns << "Replacing unexpected duplicate floater: " << p.id() << llendl;
|
||||
old_inst->mKey = key;
|
||||
old_inst->mAgeTimer.reset();
|
||||
old_inst->open();
|
||||
}
|
||||
assert(!old_inst);
|
||||
|
||||
if(!old_inst)
|
||||
LLUICtrlFactory::getInstance()->buildFloater(LLFloaterWebProfile::create(p), "floater_web_content.xml");
|
||||
}
|
||||
|
||||
LLFloater* LLFloaterWebProfile::create(const LLSD& key)
|
||||
{
|
||||
LLFloaterWebContent::Params p(key);
|
||||
preCreate(p);
|
||||
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.
|
||||
// Singu Note: We do floater stacking here, actually
|
||||
int left, top;
|
||||
gFloaterView->getNewFloaterPosition(&left, &top);
|
||||
LLRect new_rect = getRect();
|
||||
new_rect.setLeftTopAndSize(
|
||||
left, top, //new_rect.mLeft, new_rect.mTop,
|
||||
preferred_rect.getWidth(), preferred_rect.getHeight());
|
||||
setShape(new_rect);
|
||||
}
|
||||
60
indra/newview/llfloaterwebprofile.h
Executable file
60
indra/newview/llfloaterwebprofile.h
Executable file
@@ -0,0 +1,60 @@
|
||||
/**
|
||||
* @file llfloaterwebprofile.h
|
||||
* @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$
|
||||
*/
|
||||
|
||||
#ifndef LL_LLFLOATERWEBPROFILE_H
|
||||
#define LL_LLFLOATERWEBPROFILE_H
|
||||
|
||||
#include "llfloaterwebcontent.h"
|
||||
#include "llviewermediaobserver.h"
|
||||
|
||||
#include <string>
|
||||
|
||||
class LLMediaCtrl;
|
||||
|
||||
/**
|
||||
* Displays avatar profile web page.
|
||||
*/
|
||||
class LLFloaterWebProfile
|
||||
: public LLFloaterWebContent
|
||||
{
|
||||
LOG_CLASS(LLFloaterWebProfile);
|
||||
public:
|
||||
typedef LLFloaterWebContent::Params Params;
|
||||
|
||||
LLFloaterWebProfile(const Params& key);
|
||||
|
||||
/*virtual*/ void onOpen();
|
||||
/*virtual*/ void handleReshape(const LLRect& new_rect, bool by_user = false);
|
||||
|
||||
static void showInstance(const std::string& window_class, Params& p);
|
||||
static LLFloater* create(const LLSD& key);
|
||||
|
||||
private:
|
||||
void applyPreferredRect();
|
||||
};
|
||||
|
||||
#endif // LL_LLFLOATERWEBPROFILE_H
|
||||
|
||||
@@ -563,7 +563,7 @@ BOOL LLFloaterIMPanel::postBuild()
|
||||
|
||||
if (LLButton* btn = findChild<LLButton>("profile_callee_btn"))
|
||||
{
|
||||
btn->setCommitCallback(boost::bind(LLAvatarActions::showProfile, mOtherParticipantUUID));
|
||||
btn->setCommitCallback(boost::bind(LLAvatarActions::showProfile, mOtherParticipantUUID, false));
|
||||
if (!mProfileButtonEnabled) btn->setEnabled(false);
|
||||
}
|
||||
if (LLButton* btn = findChild<LLButton>("profile_tele_btn"))
|
||||
|
||||
@@ -1392,6 +1392,7 @@ LLPanelAvatar::LLPanelAvatar(
|
||||
factory_map["1st Life"] = LLCallbackMap(createPanelAvatarFirstLife, this);
|
||||
factory_map["My Notes"] = LLCallbackMap(createPanelAvatarNotes, this);
|
||||
|
||||
mCommitCallbackRegistrar.add("Profile.Web", boost::bind(LLAvatarActions::showProfile, boost::bind(&LLPanelAvatar::getAvatarID, this), true));
|
||||
LLUICtrlFactory::getInstance()->buildPanel(this, "panel_avatar.xml", &factory_map);
|
||||
|
||||
selectTab(0);
|
||||
@@ -1408,6 +1409,7 @@ BOOL LLPanelAvatar::postBuild(void)
|
||||
childSetAction("Cancel", onClickCancel, this);
|
||||
|
||||
childSetAction("copy_key",onClickGetKey,this);
|
||||
getChildView("web_profile")->setVisible(!gSavedSettings.getString("WebProfileURL").empty());
|
||||
|
||||
if(mTab && !sAllowFirstLife)
|
||||
{
|
||||
|
||||
@@ -33,20 +33,26 @@
|
||||
|
||||
#include "llpanelgroup.h"
|
||||
|
||||
#include "llagent.h"
|
||||
// Library includes
|
||||
#include "llbutton.h"
|
||||
#include "lltabcontainer.h"
|
||||
#include "lltextbox.h"
|
||||
#include "lluictrlfactory.h"
|
||||
#include "llwindow.h"
|
||||
|
||||
// Viewer includes
|
||||
#include "llviewermessage.h"
|
||||
#include "llviewerwindow.h"
|
||||
#include "llappviewer.h"
|
||||
#include "llnotificationsutil.h"
|
||||
|
||||
#include "llagent.h"
|
||||
|
||||
#include "llpanelgroupnotices.h"
|
||||
#include "llpanelgroupgeneral.h"
|
||||
#include "llpanelgrouproles.h"
|
||||
#include "llpanelgroupvoting.h"
|
||||
#include "llpanelgrouplandmoney.h"
|
||||
#include "llpanelgroupnotices.h"
|
||||
#include "lltabcontainer.h"
|
||||
#include "lltextbox.h"
|
||||
#include "llviewermessage.h"
|
||||
#include "lluictrlfactory.h"
|
||||
#include "llviewerwindow.h"
|
||||
#include "llappviewer.h"
|
||||
#include "llnotificationsutil.h"
|
||||
|
||||
// static
|
||||
void* LLPanelGroupTab::createTab(void* data)
|
||||
@@ -123,6 +129,11 @@ void LLPanelGroupTab::handleClickHelp()
|
||||
}
|
||||
}
|
||||
|
||||
static void copy_group_profile_uri(const LLUUID& id)
|
||||
{
|
||||
gViewerWindow->mWindow->copyTextToClipboard(utf8str_to_wstring("secondlife:///app/group/"+id.asString()+"/about"));
|
||||
}
|
||||
|
||||
LLPanelGroup::LLPanelGroup(const LLUUID& group_id)
|
||||
: LLPanel("PanelGroup", LLRect(), FALSE),
|
||||
LLGroupMgrObserver( group_id ),
|
||||
@@ -152,6 +163,7 @@ LLPanelGroup::LLPanelGroup(const LLUUID& group_id)
|
||||
|
||||
LLGroupMgr::getInstance()->addObserver(this);
|
||||
|
||||
mCommitCallbackRegistrar.add("Group.CopyURI", boost::bind(copy_group_profile_uri, group_id));
|
||||
// Pass on construction of this panel to the control factory.
|
||||
LLUICtrlFactory::getInstance()->buildPanel(this, "panel_group.xml", &getFactoryMap());
|
||||
}
|
||||
|
||||
@@ -148,7 +148,7 @@ BOOL LLPanelGroupGeneral::postBuild()
|
||||
mListVisibleMembers = getChild<LLNameListCtrl>("visible_members", recurse);
|
||||
if (mListVisibleMembers)
|
||||
{
|
||||
mListVisibleMembers->setDoubleClickCallback(boost::bind(LLAvatarActions::showProfile, boost::bind(&LLScrollListCtrl::getCurrentID, mListVisibleMembers)));
|
||||
mListVisibleMembers->setDoubleClickCallback(boost::bind(LLAvatarActions::showProfile, boost::bind(&LLScrollListCtrl::getCurrentID, mListVisibleMembers), false));
|
||||
}
|
||||
|
||||
// Options
|
||||
@@ -244,6 +244,7 @@ BOOL LLPanelGroupGeneral::postBuild()
|
||||
if (mGroupID.isNull())
|
||||
{
|
||||
mGroupNameEditor->setEnabled(TRUE);
|
||||
getChildView("copy_uri")->setVisible(false); // New group has no uri
|
||||
mEditCharter->setEnabled(TRUE);
|
||||
|
||||
mCtrlShowInGroupList->setEnabled(TRUE);
|
||||
|
||||
@@ -30,11 +30,12 @@
|
||||
|
||||
#include "llpanel.h"
|
||||
#include "llvoiceclient.h"
|
||||
#include "lllayoutstack.h"
|
||||
|
||||
class LLComboBox;
|
||||
|
||||
class LLPanelVoiceEffect
|
||||
: public LLPanel
|
||||
: public LLLayoutPanel
|
||||
, public LLVoiceEffectObserver
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -140,8 +140,6 @@ BOOL LLPrefsVoice::postBuild()
|
||||
childSetValue("ear_location", gSavedSettings.getS32("VoiceEarLocation"));
|
||||
childSetValue("enable_lip_sync_check", gSavedSettings.getBOOL("LipSyncEnabled"));
|
||||
|
||||
gSavedSettings.getControl("ShowDeviceSettings")->getSignal()->connect(boost::bind(&LLPanel::childSetVisible, this, "device_settings_panel", _2)); // Singu TODO: visibility_control
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
@@ -4061,7 +4061,7 @@ bool process_login_success_response(std::string& password)
|
||||
if(gHippoGridManager->getConnectedGrid()->isOpenSimulator())
|
||||
{
|
||||
std::string web_profile_url = response["web_profile_url"];
|
||||
if(!web_profile_url.empty())
|
||||
//if(!web_profile_url.empty()) // Singu Note: We're using this to check if this grid supports web profiles at all, so set empty if empty.
|
||||
gSavedSettings.setString("WebProfileURL", web_profile_url);
|
||||
}
|
||||
else if(!gHippoGridManager->getConnectedGrid()->isInProductionGrid())
|
||||
|
||||
@@ -3,28 +3,23 @@
|
||||
height="300" min_height="200" min_width="180" name="active_speakers"
|
||||
rect_control="FloaterActiveSpeakersRect" title="Active Speakers"
|
||||
width="250">
|
||||
<panel bottom="0" follows="left|top|right|bottom" left="0" mouse_opaque="false"
|
||||
name="active_speakers_panel" right="250" top="300">
|
||||
<panel top="-18" left="11" right="-9" name="panel_voice_effect" visiblity_control="VoiceMorphingEnabled" filename="panel_voice_effect.xml" follows="top|right|left"/>
|
||||
<scroll_list bottom="32" can_resize="true" column_padding="0" draw_heading="true"
|
||||
draw_stripes="false" follows="left|top|bottom|right" left="10"
|
||||
multi_select="false" name="speakers_list" right="-10" search_column="1"
|
||||
sort_column="2" top="-46">
|
||||
<column name="icon_speaking_status" sort="speaking_status" width="20" />
|
||||
<column dynamicwidth="true" label="Name" name="speaker_name" />
|
||||
<column label="" name="speaking_status" width="0" />
|
||||
</scroll_list>
|
||||
<panel background_opaque="false" background_visible="false" bevel_style="in"
|
||||
bg_alpha_color="0,0,0,0" bg_opaque_color="0,0,0,0.3" border="false"
|
||||
bottom="5" can_resize="false" follows="left|right|bottom" height="20"
|
||||
left="10" mouse_opaque="true" name="volume_container" right="-10">
|
||||
<volume_slider bottom="5" follows="left|bottom" height="15" increment="0.05" initial_val="0.5"
|
||||
left_delta="10" max_val="1.0" min_val="0.0" name="speaker_volume"
|
||||
width="110" />
|
||||
<button bottom_delta="0" height="20" image_selected="icn_speaker-muted_dark.tga"
|
||||
image_unselected="icn_speaker_dark.tga" label="" left_delta="115"
|
||||
name="mute_btn" toggle="true" tool_tip="Mute voice for this resident"
|
||||
width="25" scale_image="false" />
|
||||
</panel>
|
||||
</panel>
|
||||
<layout_stack bottom="0" follows="all" mouse_opaque="false" left="5" right="-4" top="280" name="active_speakers_stack">
|
||||
<layout_panel name="panel_voice_effect" auto_resize="false" user_resize="false" visiblity_control="VoiceMorphingEnabled" filename="panel_voice_effect.xml" height="23"/>
|
||||
<layout_panel mouse_opaque="false" auto_resize="true" user_resize="false" name="active_speakers_panel" height="232">
|
||||
<scroll_list bottom="25" top="232" left="0" right="-1"
|
||||
draw_stripes="false" follows="all" can_resize="true" column_padding="0" draw_heading="true"
|
||||
multi_select="false" name="speakers_list" search_column="1" sort_column="2">
|
||||
<column name="icon_speaking_status" sort="speaking_status" width="20" />
|
||||
<column dynamicwidth="true" label="Name" name="speaker_name" />
|
||||
<column label="" name="speaking_status" width="0" />
|
||||
</scroll_list>
|
||||
<volume_slider bottom="5" follows="left|bottom" height="15" increment="0.05" initial_val="0.5"
|
||||
left="0" max_val="1.0" min_val="0.0" name="speaker_volume"
|
||||
width="145" />
|
||||
<button bottom_delta="0" height="20" image_selected="icn_speaker-muted_dark.tga"
|
||||
image_unselected="icn_speaker_dark.tga" label="" left_delta="145"
|
||||
name="mute_btn" toggle="true" tool_tip="Mute voice for this resident"
|
||||
width="25" scale_image="false" />
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
mouse_opaque="true"
|
||||
name="media_settings"
|
||||
help_topic = "media_settings"
|
||||
title="MEDIA SETTINGS">
|
||||
title="Media Settings">
|
||||
<button
|
||||
bottom="-525"
|
||||
enabled="true"
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
min_height="140"
|
||||
min_width="467"
|
||||
name="floater_web_content"
|
||||
rect_control="FloaterMediaRect"
|
||||
title="Web Browser"
|
||||
initial_mime_type="text/html"
|
||||
width="820">
|
||||
@@ -142,6 +141,7 @@
|
||||
<layout_panel name="status_bar"
|
||||
height="23"
|
||||
mouse_opaque="false"
|
||||
user_resize="false"
|
||||
auto_resize="false">
|
||||
<text
|
||||
type="string"
|
||||
|
||||
@@ -36,21 +36,15 @@
|
||||
<string name="NotAgeVerified">
|
||||
Not Age-verified
|
||||
</string>
|
||||
<text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom="-24" drop_shadow_visible="true" follows="left|top"
|
||||
font="SansSerifSmall" h_pad="0" halign="right" height="16" left="4"
|
||||
mouse_opaque="true" name="Key:" v_pad="0" width="70">
|
||||
Key:
|
||||
</text>
|
||||
<button bottom="-24" follows="left|top" halign="right" height="16" label="Copy Key:" left="4" font="SansSerifSmall" tool_tip="Copy key to clipboard" name="copy_key" width="70"/>
|
||||
<name_editor bevel_style="in" border_style="line"
|
||||
border_thickness="1" bottom="-24" enabled="false" follows="left|top"
|
||||
font="SansSerifSmall" height="16" is_unicode="false" left_delta="75"
|
||||
max_length="36" mouse_opaque="false" name="avatar_key"
|
||||
width="256" />
|
||||
<button bottom="-24" follows="left|top" halign="center"
|
||||
height="16" label="Copy" left_delta="256"
|
||||
tool_tip="Copy key to clipboard"
|
||||
mouse_opaque="true" name="copy_key" width="70" />
|
||||
width="204" />
|
||||
<button bottom="-24" height="16" width="106" left_delta="204" name="web_profile" label="Web Profile">
|
||||
<button.commit_callback function="Profile.Web"/>
|
||||
</button>
|
||||
<text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom="-48" drop_shadow_visible="true" follows="left|top"
|
||||
font="SansSerifSmall" h_pad="0" halign="right" height="16" left="4"
|
||||
|
||||
@@ -40,7 +40,10 @@ Hover your mouse over the options for more help.
|
||||
border_thickness="1" bottom="-55" enabled="false" follows="left|top"
|
||||
font="SansSerifSmall" height="16" is_unicode="false" left_delta="65"
|
||||
max_length="254" mouse_opaque="false" name="group_key"
|
||||
width="256" />
|
||||
width="240" />
|
||||
<button bottom_delta="0" height="16" width="100" left_delta="240" name="copy_uri" label="Copy URI">
|
||||
<button.commit_callback function="Group.CopyURI"/>
|
||||
</button>
|
||||
<text bottom_delta="-20" font="SansSerifSmall" halign="left" height="16"
|
||||
name="group_charter_label" right="410" width="265">
|
||||
Group Charter
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
<spinner bottom_delta="-20" left="30" control_name="SpeedRezInterval" decimal_digits="0" follows="top" height="16" width="230"
|
||||
label="Draw distance stepping interval:" label_width="180" max_val="60" min_val="5" initial_val="20" increment="5" name="speed_rez_interval" />
|
||||
<text bottom_delta="0" left_delta="235" follows="left|top" height="16" name="speed_rez_seconds">seconds</text>
|
||||
<check_box bottom_delta="-18" control_name="UseWebProfiles" follows="top" left="10" name="use_web_profiles" label="Use web profiles instead of legacy v1 profiles" tool_tip="May not be available on certain grids"/>
|
||||
</panel>
|
||||
|
||||
<panel border="true" bottom="-580" height="525" label="Command Line" left="1" name="Command Line" width="418">
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
<check_box bottom_delta="-20" control_name="AnnounceStreamMetadata" follows="top" height="16" label="Announce music stream's metadata in local chat when tuned in" tool_tip="When a new song comes on, a message will be displayed in local chat with available information about the track." name="announce_stream_metadata"/>
|
||||
<check_box bottom_delta="-20" control_name="FloaterUnfocusedBackgroundOpaque" follows="top" height="16" label="Make unfocused floaters opaque (requires refocusing each floater to take effect)" tool_tip="When a floater loses focus, it won't turn transparent with this enabled. This may conflict with some skins." name="unfocused_floaters_opaque"/>
|
||||
<check_box bottom_delta="-20" control_name="SinguCompleteNameProfiles" follows="top" height="16" label="Show complete names (display name and username) in profiles" tool_tip="Disregards the global name display settings, will not work if display names are switched off." name="complete_name_profiles"/>
|
||||
<check_box bottom_delta="-20" control_name="LiruScriptErrorsStealFocus" follows="top" height="16" label="Let scripts steal focus when they can't compile due to errors"/>
|
||||
<check_box bottom_delta="-20" control_name="LiruScriptErrorsStealFocus" follows="top" height="16" label="Let scripts steal focus when they can't compile due to errors" name="script_errors_steal_focus"/>
|
||||
</panel>
|
||||
<panel border="true" left="1" bottom="-190" height="180" width="500" label="Tags/Colors" name="TagsColors">
|
||||
<!-- Client tag options -->
|
||||
|
||||
@@ -16,5 +16,5 @@
|
||||
<check_box bottom_delta="-20" follows="top" height="16" initial_value="false" label="Only accept voice calls from people on My Friends list" name="voice_call_friends_only_check"/>
|
||||
<check_box bottom_delta="-18" follows="top" height="16" initial_value="false" label="Switch off microphone when ending IM calls" name="auto_disengage_mic_check"/>
|
||||
<button control_name="ShowDeviceSettings" toggle="true" bottom_delta="-40" follows="top" height="20" label="Device Settings" mouse_opaque="true" name="device_settings_btn" width="155" tool_tip="Running the Device Settings will temporarily disconnect you from Voice Chat, and changes you make will be immediately applied."/>
|
||||
<panel name="device_settings_panel" filename="panel_sound_devices.xml" follows="all" visible="false"/>
|
||||
<panel visibility_control="ShowDeviceSettings" name="device_settings_panel" filename="panel_sound_devices.xml" follows="all"/>
|
||||
</panel>
|
||||
|
||||
@@ -3,16 +3,16 @@
|
||||
<layout_stack name="stack1" orientation="horizontal" left="0" bottom="0" width="1024" height="768" follows="left|right|top|bottom">
|
||||
<layout_panel name="panel1" user_resize="false" min_width="10" width="150"/>
|
||||
<layout_panel name="panel2" user_resize="false" min_width="640" width="724" height="768">
|
||||
<layout_stack name="stack2" orientation="vertical" left="0" bottom="0" height="768" width="640" follows="left|right|top|bottom">
|
||||
<layout_stack name="stack2" orientation="vertical" left="0" bottom="0" height="768" width="724" follows="left|right|top|bottom">
|
||||
<layout_panel name="panel3" min_height="10" height="200" width="724"/>
|
||||
<layout_panel name="panel4" min_height="250" height="250" width="724" auto_resize="false">
|
||||
<icon image_name="rounded_square.tga" color="LoginProgressBoxCenterColor" left="0" bottom="0" width="724" height="250" follows="left|right|bottom|top"/>
|
||||
<text name="title_text" halign="center" font="SansSerif" left="0" bottom="-70" width="724" height="20" text_color="LoginProgressBoxTextColor" font-shadow="hard" follows="left|right|top"/>
|
||||
<text name="progress_text" halign="center" font="SansSerif" left="0" bottom="-95" width="724" height="20" text_color="LoginProgressBoxTextColor" font-shadow="hard" follows="left|right|top"/>
|
||||
<progress_bar name="login_progress_bar" color="255,255,255,245" height="16" bottom="135" left="45" right="-45" follows="left|right|top" />
|
||||
<text name="message_text" halign="center" line_spacing="8" font="SansSerif" left="20" bottom="5" width="700" height="100" text_color="LoginProgressBoxTextColor" font-shadow="hard" follows="left|right|top|bottom"/>
|
||||
<text name="message_text" halign="center" line_spacing="8" font="SansSerif" left="20" right="-20" bottom="5" height="100" text_color="LoginProgressBoxTextColor" font-shadow="hard" follows="left|right|top|bottom"/>
|
||||
</layout_panel>
|
||||
<layout_panel name="panel5" min_width="10" height="200" width="640"/>
|
||||
<layout_panel name="panel5" min_width="10" height="200" width="724"/>
|
||||
</layout_stack>
|
||||
</layout_panel>
|
||||
<layout_panel name="panel6" user_resize="false" min_width="10" width="150"/>
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
height="23"
|
||||
layout="topleft"
|
||||
name="panel_voice_effect"
|
||||
auto_resize="false"
|
||||
user_resize="false"
|
||||
visiblity_control="VoiceMorphingEnabled"
|
||||
width="200">
|
||||
<string name="no_voice_effect">
|
||||
Voice Morphing Off
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="active_speakers" title="Participantes Activos">
|
||||
<panel name="active_speakers_panel">
|
||||
<scroll_list name="speakers_list">
|
||||
<column label="Nombre" name="speaker_name"/>
|
||||
</scroll_list>
|
||||
<panel name="volume_container">
|
||||
<button name="mute_btn" tool_tip="Ignorar la voz de este residente"/>
|
||||
</panel>
|
||||
</panel>
|
||||
<layout_stack name="active_speakers_stack">
|
||||
<layout_panel name="active_speakers_panel">
|
||||
<scroll_list name="speakers_list">
|
||||
<column label="Nombre" name="speaker_name"/>
|
||||
</scroll_list>
|
||||
<button name="mute_btn" tool_tip="Ignorar la voz de este residente"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="media_settings" title="Configuración De Los Media">
|
||||
<button label="OK" label_selected="OK" name="OK"/>
|
||||
<button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
|
||||
<button label="Aplicar" label_selected="Aplicar" name="Apply"/>
|
||||
</floater>
|
||||
@@ -34,10 +34,7 @@
|
||||
<string name="NotAgeVerified">
|
||||
Edad No Verificada
|
||||
</string>
|
||||
<text name="Key:">
|
||||
Key:
|
||||
</text>
|
||||
<button label="Copiar" tool_tip="Copyiar key al portapapeles" name="copy_key"/>
|
||||
<button label="Copiar Key:" tool_tip="Copyiar key al portapapeles" name="copy_key"/>
|
||||
<text name="Name:" >
|
||||
Nombre:
|
||||
</text>
|
||||
|
||||
@@ -15,6 +15,7 @@ Coloca el cursor sobre las opciones para más información.
|
||||
<text name="group_name">
|
||||
Escribe aquí el nombre de tu nuevo grupo
|
||||
</text>
|
||||
<button name="copy_uri" label="Copiar URI"/>
|
||||
<text name="prepend_founded_by">
|
||||
Creado por
|
||||
</text>
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
<text name="speed_rez_seconds">
|
||||
segundos
|
||||
</text>
|
||||
<check_box name="use_web_profiles" label="Usar perfiles web por defecto" tool_tip="Muestra los perfiles como una página web en vez de usar los paneles de estilo V1"/>
|
||||
</panel>
|
||||
<!-- ====================================== -->
|
||||
<panel label="Línea de Comandos" name="Command Line">
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="active_speakers" title="Intervenants actifs">
|
||||
<panel name="active_speakers_panel">
|
||||
<scroll_list name="speakers_list">
|
||||
<column label="Nom" name="speaker_name"/>
|
||||
</scroll_list>
|
||||
<panel name="volume_container">
|
||||
<button name="mute_btn" tool_tip="Ignorer ce résident"/>
|
||||
</panel>
|
||||
</panel>
|
||||
<layout_stack name="active_speakers_stack">
|
||||
<layout_panel name="active_speakers_panel">
|
||||
<scroll_list name="speakers_list">
|
||||
<column label="Nom" name="speaker_name"/>
|
||||
</scroll_list>
|
||||
<button name="mute_btn" tool_tip="Ignorer ce résident"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="media_settings" title="Paramètres Des Médias">
|
||||
<button label="OK" label_selected="OK" name="OK"/>
|
||||
<button label="Annuler" label_selected="Annuler" name="Cancel"/>
|
||||
<button label="Appliquer" label_selected="Appliquer" name="Apply"/>
|
||||
</floater>
|
||||
@@ -181,12 +181,7 @@ vous avez écrit.
|
||||
</text>
|
||||
<text_editor bottom_delta="-260" height="240" name="notes edit" width="430"/>
|
||||
|
||||
<text bg_visible="false" border_drop_shadow_visible="false" border_visible="false"
|
||||
bottom_delta="-26" drop_shadow_visible="true" follows="left|top"
|
||||
font="SansSerifSmall" h_pad="0" halign="right" height="16" left="10"
|
||||
mouse_opaque="true" name="key_label" v_pad="0" width="95">
|
||||
Clef-Key :
|
||||
</text>
|
||||
<button name="copy_key" label="Copy Clef-Key :"/>
|
||||
<name_editor bevel_style="in" bg_readonly_color="0, 0, 0, 0" border_style="line"
|
||||
border_thickness="1" bottom_delta="1" enabled="false" follows="left|top"
|
||||
font="SansSerifSmall" height="18" is_unicode="false" left_delta="95"
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
<check_box label="Activer le rezz rapide par rapport à une distance progressive" name="speed_rez_check" tool_tip="Active, cette fonction charge progressivement les textures du plus près au plus loin"/>
|
||||
<spinner label="Intervalle distance/affichage:" name="speed_rez_interval"/>
|
||||
<text name="speed_rez_seconds">secondes</text>
|
||||
<check_box name="use_web_profiles" label="Utiliser le profil web par défaut" tool_tip="Affiche les profils comme une page web plutôt que comme une fenêtre style v1"/>
|
||||
</panel>
|
||||
|
||||
<panel label="Commandes Texte" name="Command Line">
|
||||
|
||||
@@ -11,6 +11,9 @@
|
||||
<check_box label="Pivote l'avatar quand on marche en arriere" tool_tip="Certains AO peuvent empecher la fontion." name="turn_around"/>
|
||||
<check_box label="Préviens quand quelqu'un prend une photo" tool_tip="Sauf si la personne a elle même choisi le mode silencieux." name="announce_snapshots"/>
|
||||
<check_box label="Annonce les titres des chansons dans le chat local" tool_tip="" name="announce_stream_metadata"/>
|
||||
<check_box label="Garder les menus flottants opaques en arrière plan (Cliquer une fois en 1er plan pour activer)" tool_tip="peux poser des conflits avec certains thèmes (skin viewers)." name="unfocused_floaters_opaque"/>
|
||||
<check_box label="Montrer les noms complets : display + ancient names dans les profils" tool_tip="Ne fonctionnera pas si les display sont désactivés dans le menu général." name="complete_name_profiles"/>
|
||||
<check_box label="Garder les scripts en premier plan quand ils ne peuvent pas être compilés suite a une erreur" name="script_errors_steal_focus"/>
|
||||
</panel>
|
||||
<panel label="Tags/Couleurs" name="TagsColors">
|
||||
<!-- Client tag options -->
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel label="Audio et vidéo" name="Media panel">
|
||||
<text name="audio_prefs_text"></text>
|
||||
<text bottom="-187" name="streaming_prefs_text">Médias et Audio : ( Filtre de Sécurité des Médias )</text>
|
||||
<check_box bottom="-200" height="32" label="Jouer la musique disponible
|
||||
<text bottom="-200" name="streaming_prefs_text">Médias et Audio : ( Filtre de Sécurité des Médias )</text>
|
||||
<check_box bottom="-220" height="32" label="Jouer la musique disponible
|
||||
(Gourmand en bande passante)" name="streaming_music"/>
|
||||
<check_box bottom_delta="-32" height="32" label="Jouer le média disponible
|
||||
(Gourmand en bande passante)" name="streaming_video"/>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="active_speakers" title="Falantes Ativos">
|
||||
<panel name="active_speakers_panel">
|
||||
<scroll_list name="speakers_list">
|
||||
<column label="Nome" name="speaker_name"/>
|
||||
</scroll_list>
|
||||
<panel name="volume_container">
|
||||
<button label="" name="mute_btn" tool_tip="Emudecer a voz para este residente"/>
|
||||
</panel>
|
||||
</panel>
|
||||
<layout_stack name="active_speakers_stack">
|
||||
<layout_panel name="active_speakers_panel">
|
||||
<scroll_list name="speakers_list">
|
||||
<column label="Nome" name="speaker_name"/>
|
||||
</scroll_list>
|
||||
<button label="" name="mute_btn" tool_tip="Emudecer a voz para este residente"/>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</floater>
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<floater name="media_settings" title="Configurações De Mídia">
|
||||
<button label="OK" label_selected="OK" name="OK"/>
|
||||
<button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
|
||||
<button label="Aplicar" label_selected="Aplicar" name="Apply"/>
|
||||
</floater>
|
||||
@@ -72,6 +72,7 @@ void wlfPanel_AdvSettings::updateClass()
|
||||
|
||||
void wlfPanel_AdvSettings::build()
|
||||
{
|
||||
mConnections.clear();
|
||||
deleteAllChildren();
|
||||
std::string ButtonState;
|
||||
if (gSavedSettings.getBOOL("wlfAdvSettingsPopup"))
|
||||
@@ -161,9 +162,9 @@ BOOL wlfPanel_AdvSettings::postBuild()
|
||||
// mDayCyclePresetCombo = getChild<LLComboBox>("DCPresetsCombo");
|
||||
// mDayCyclePresetCombo->setCommitCallback(boost::bind(&wlfPanel_AdvSettings::onChangeDCPresetName, this, _2));
|
||||
|
||||
LLEnvManagerNew::instance().setPreferencesChangeCallback(boost::bind(&wlfPanel_AdvSettings::refreshLists, this));
|
||||
LLWaterParamManager::getInstance()->setPresetListChangeCallback(boost::bind(&wlfPanel_AdvSettings::populateWaterPresetsList, this));
|
||||
LLWLParamManager::getInstance()->setPresetListChangeCallback(boost::bind(&wlfPanel_AdvSettings::populateSkyPresetsList, this));
|
||||
mConnections.push_front(new boost::signals2::scoped_connection(LLEnvManagerNew::instance().setPreferencesChangeCallback(boost::bind(&wlfPanel_AdvSettings::refreshLists, this))));
|
||||
mConnections.push_front(new boost::signals2::scoped_connection(LLWaterParamManager::getInstance()->setPresetListChangeCallback(boost::bind(&wlfPanel_AdvSettings::populateWaterPresetsList, this))));
|
||||
mConnections.push_front(new boost::signals2::scoped_connection(LLWLParamManager::getInstance()->setPresetListChangeCallback(boost::bind(&wlfPanel_AdvSettings::populateSkyPresetsList, this))));
|
||||
// LLDayCycleManager::instance().setModifyCallback(boost::bind(&wlfPanel_AdvSettings::populateDayCyclePresetsList, this));
|
||||
|
||||
populateWaterPresetsList();
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
#define LL_wlfPanel_AdvSettings_H
|
||||
|
||||
#include "llpanel.h"
|
||||
|
||||
#include <boost/ptr_container/ptr_list.hpp>
|
||||
|
||||
// [RLVa:KB]
|
||||
#include "rlvhandler.h"
|
||||
@@ -83,6 +83,8 @@ protected:
|
||||
LLSliderCtrl* mTimeSlider;
|
||||
|
||||
bool mExpanded;
|
||||
|
||||
boost::ptr_list<boost::signals2::scoped_connection> mConnections;
|
||||
};
|
||||
|
||||
#endif // LL_wlfPanel_AdvSettings_H
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
<key>md5sum</key>
|
||||
<string>9552782ad333c819c91d31087750db64</string>
|
||||
<key>url</key>
|
||||
<uri>https://bitbucket.org/Siana/singularityviewer/downloads/glod-1.0pre4-linux-x86_64-20120609.tar.bz2</uri>
|
||||
<uri>https://bitbucket.org/SingularityViewer/libraries/downloads/glod-1.0pre4-linux-x86_64-20120609.tar.bz2</uri>
|
||||
</map>
|
||||
<key>windows</key>
|
||||
<map>
|
||||
@@ -237,7 +237,7 @@
|
||||
<key>md5sum</key>
|
||||
<string>bab6e7fea2411dd375d76bb4ce9118a5</string>
|
||||
<key>url</key>
|
||||
<uri>https://bitbucket.org/Siana/singularityviewer/downloads/colladadom-2.2-linux-x86_64-20120719.tar.bz2</uri>
|
||||
<uri>https://bitbucket.org/SingularityViewer/libraries/downloads/colladadom-2.2-linux-x86_64-20120719.tar.bz2</uri>
|
||||
</map>
|
||||
<key>windows</key>
|
||||
<map>
|
||||
|
||||
Reference in New Issue
Block a user