summaryrefslogtreecommitdiff
path: root/indra/newview/llfloatermediasettings.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/llfloatermediasettings.cpp')
-rw-r--r--indra/newview/llfloatermediasettings.cpp384
1 files changed, 192 insertions, 192 deletions
diff --git a/indra/newview/llfloatermediasettings.cpp b/indra/newview/llfloatermediasettings.cpp
index b34961e8a2..c1bbbf29be 100644
--- a/indra/newview/llfloatermediasettings.cpp
+++ b/indra/newview/llfloatermediasettings.cpp
@@ -1,25 +1,25 @@
-/**
+/**
* @file llfloatermediasettings.cpp
* @brief Tabbed dialog for media settings - class implementation
*
* $LicenseInfo:firstyear=2002&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$
*/
@@ -40,16 +40,16 @@
LLFloaterMediaSettings* LLFloaterMediaSettings::sInstance = NULL;
////////////////////////////////////////////////////////////////////////////////
-//
+//
LLFloaterMediaSettings::LLFloaterMediaSettings(const LLSD& key)
- : LLFloater(key),
- mTabContainer(NULL),
- mPanelMediaSettingsGeneral(NULL),
- mPanelMediaSettingsSecurity(NULL),
- mPanelMediaSettingsPermissions(NULL),
- mIdenticalHasMediaInfo( true ),
- mMultipleMedia(false),
- mMultipleValidMedia(false)
+ : LLFloater(key),
+ mTabContainer(NULL),
+ mPanelMediaSettingsGeneral(NULL),
+ mPanelMediaSettingsSecurity(NULL),
+ mPanelMediaSettingsPermissions(NULL),
+ mIdenticalHasMediaInfo( true ),
+ mMultipleMedia(false),
+ mMultipleValidMedia(false)
{
}
@@ -57,103 +57,103 @@ LLFloaterMediaSettings::LLFloaterMediaSettings(const LLSD& key)
//
LLFloaterMediaSettings::~LLFloaterMediaSettings()
{
- if ( mPanelMediaSettingsGeneral )
- {
- delete mPanelMediaSettingsGeneral;
- mPanelMediaSettingsGeneral = NULL;
- }
-
- if ( mPanelMediaSettingsSecurity )
- {
- delete mPanelMediaSettingsSecurity;
- mPanelMediaSettingsSecurity = NULL;
- }
-
- if ( mPanelMediaSettingsPermissions )
- {
- delete mPanelMediaSettingsPermissions;
- mPanelMediaSettingsPermissions = NULL;
- }
-
- sInstance = NULL;
+ if ( mPanelMediaSettingsGeneral )
+ {
+ delete mPanelMediaSettingsGeneral;
+ mPanelMediaSettingsGeneral = NULL;
+ }
+
+ if ( mPanelMediaSettingsSecurity )
+ {
+ delete mPanelMediaSettingsSecurity;
+ mPanelMediaSettingsSecurity = NULL;
+ }
+
+ if ( mPanelMediaSettingsPermissions )
+ {
+ delete mPanelMediaSettingsPermissions;
+ mPanelMediaSettingsPermissions = NULL;
+ }
+
+ sInstance = NULL;
}
////////////////////////////////////////////////////////////////////////////////
//
BOOL LLFloaterMediaSettings::postBuild()
{
- mApplyBtn = getChild<LLButton>("Apply");
- mApplyBtn->setClickedCallback(onBtnApply, this);
-
- mCancelBtn = getChild<LLButton>("Cancel");
- mCancelBtn->setClickedCallback(onBtnCancel, this);
-
- mOKBtn = getChild<LLButton>("OK");
- mOKBtn->setClickedCallback(onBtnOK, this);
-
- mTabContainer = getChild<LLTabContainer>( "tab_container" );
-
- mPanelMediaSettingsGeneral = new LLPanelMediaSettingsGeneral();
- mTabContainer->addTabPanel(
- LLTabContainer::TabPanelParams().
- panel(mPanelMediaSettingsGeneral));
- mPanelMediaSettingsGeneral->setParent( this );
-
- // note that "permissions" tab is really "Controls" tab - refs to 'perms' and
- // 'permissions' not changed to 'controls' since we don't want to change
- // shared files in server code and keeping everything the same seemed best.
- mPanelMediaSettingsPermissions = new LLPanelMediaSettingsPermissions();
- mTabContainer->addTabPanel(
- LLTabContainer::TabPanelParams().
- panel(mPanelMediaSettingsPermissions));
-
- mPanelMediaSettingsSecurity = new LLPanelMediaSettingsSecurity();
- mTabContainer->addTabPanel(
- LLTabContainer::TabPanelParams().
- panel(mPanelMediaSettingsSecurity));
- mPanelMediaSettingsSecurity->setParent( this );
-
- // restore the last tab viewed from persistance variable storage
- if (!mTabContainer->selectTab(gSavedSettings.getS32("LastMediaSettingsTab")))
- {
- mTabContainer->selectFirstTab();
- };
-
- sInstance = this;
-
- return TRUE;
+ mApplyBtn = getChild<LLButton>("Apply");
+ mApplyBtn->setClickedCallback(onBtnApply, this);
+
+ mCancelBtn = getChild<LLButton>("Cancel");
+ mCancelBtn->setClickedCallback(onBtnCancel, this);
+
+ mOKBtn = getChild<LLButton>("OK");
+ mOKBtn->setClickedCallback(onBtnOK, this);
+
+ mTabContainer = getChild<LLTabContainer>( "tab_container" );
+
+ mPanelMediaSettingsGeneral = new LLPanelMediaSettingsGeneral();
+ mTabContainer->addTabPanel(
+ LLTabContainer::TabPanelParams().
+ panel(mPanelMediaSettingsGeneral));
+ mPanelMediaSettingsGeneral->setParent( this );
+
+ // note that "permissions" tab is really "Controls" tab - refs to 'perms' and
+ // 'permissions' not changed to 'controls' since we don't want to change
+ // shared files in server code and keeping everything the same seemed best.
+ mPanelMediaSettingsPermissions = new LLPanelMediaSettingsPermissions();
+ mTabContainer->addTabPanel(
+ LLTabContainer::TabPanelParams().
+ panel(mPanelMediaSettingsPermissions));
+
+ mPanelMediaSettingsSecurity = new LLPanelMediaSettingsSecurity();
+ mTabContainer->addTabPanel(
+ LLTabContainer::TabPanelParams().
+ panel(mPanelMediaSettingsSecurity));
+ mPanelMediaSettingsSecurity->setParent( this );
+
+ // restore the last tab viewed from persistance variable storage
+ if (!mTabContainer->selectTab(gSavedSettings.getS32("LastMediaSettingsTab")))
+ {
+ mTabContainer->selectFirstTab();
+ };
+
+ sInstance = this;
+
+ return TRUE;
}
-//static
+//static
LLFloaterMediaSettings* LLFloaterMediaSettings::getInstance()
{
- if ( !sInstance )
- {
- sInstance = (LLFloaterReg::getTypedInstance<LLFloaterMediaSettings>("media_settings"));
- }
-
- return sInstance;
+ if ( !sInstance )
+ {
+ sInstance = (LLFloaterReg::getTypedInstance<LLFloaterMediaSettings>("media_settings"));
+ }
+
+ return sInstance;
}
-//static
+//static
void LLFloaterMediaSettings::apply()
{
- if (sInstance->haveValuesChanged())
- {
- LLSD settings;
- sInstance->mPanelMediaSettingsGeneral->preApply();
- sInstance->mPanelMediaSettingsGeneral->getValues( settings, false );
- sInstance->mPanelMediaSettingsSecurity->preApply();
- sInstance->mPanelMediaSettingsSecurity->getValues( settings, false );
- sInstance->mPanelMediaSettingsPermissions->preApply();
- sInstance->mPanelMediaSettingsPermissions->getValues( settings, false );
-
- LLSelectMgr::getInstance()->selectionSetMedia( LLTextureEntry::MF_HAS_MEDIA, settings );
-
- sInstance->mPanelMediaSettingsGeneral->postApply();
- sInstance->mPanelMediaSettingsSecurity->postApply();
- sInstance->mPanelMediaSettingsPermissions->postApply();
- }
+ if (sInstance->haveValuesChanged())
+ {
+ LLSD settings;
+ sInstance->mPanelMediaSettingsGeneral->preApply();
+ sInstance->mPanelMediaSettingsGeneral->getValues( settings, false );
+ sInstance->mPanelMediaSettingsSecurity->preApply();
+ sInstance->mPanelMediaSettingsSecurity->getValues( settings, false );
+ sInstance->mPanelMediaSettingsPermissions->preApply();
+ sInstance->mPanelMediaSettingsPermissions->getValues( settings, false );
+
+ LLSelectMgr::getInstance()->selectionSetMedia( LLTextureEntry::MF_HAS_MEDIA, settings );
+
+ sInstance->mPanelMediaSettingsGeneral->postApply();
+ sInstance->mPanelMediaSettingsSecurity->postApply();
+ sInstance->mPanelMediaSettingsPermissions->postApply();
+ }
}
////////////////////////////////////////////////////////////////////////////////
@@ -171,94 +171,94 @@ void LLFloaterMediaSettings::onOpen(const LLSD& key)
////////////////////////////////////////////////////////////////////////////////
void LLFloaterMediaSettings::onClose(bool app_quitting)
{
- if(mPanelMediaSettingsGeneral)
- {
- mPanelMediaSettingsGeneral->onClose(app_quitting);
- }
- LLFloaterReg::hideInstance("whitelist_entry");
+ if(mPanelMediaSettingsGeneral)
+ {
+ mPanelMediaSettingsGeneral->onClose(app_quitting);
+ }
+ LLFloaterReg::hideInstance("whitelist_entry");
}
////////////////////////////////////////////////////////////////////////////////
-//static
+//static
void LLFloaterMediaSettings::initValues( const LLSD& media_settings, bool editable )
{
- if (sInstance->hasFocus()) return;
-
- // Clear values
- sInstance->mPanelMediaSettingsGeneral->clearValues(sInstance->mPanelMediaSettingsGeneral, editable, false /*don't update preview*/);
- sInstance->mPanelMediaSettingsSecurity->clearValues(sInstance->mPanelMediaSettingsSecurity, editable);
- sInstance->mPanelMediaSettingsPermissions->clearValues(sInstance->mPanelMediaSettingsPermissions, editable);
-
- // update all panels with values from simulator
- sInstance->mPanelMediaSettingsGeneral->
- initValues( sInstance->mPanelMediaSettingsGeneral, media_settings, editable );
-
- sInstance->mPanelMediaSettingsSecurity->
- initValues( sInstance->mPanelMediaSettingsSecurity, media_settings, editable );
-
- sInstance->mPanelMediaSettingsPermissions->
- initValues( sInstance->mPanelMediaSettingsPermissions, media_settings, editable );
-
- // Squirrel away initial values
- sInstance->mInitialValues.clear();
- sInstance->mPanelMediaSettingsGeneral->getValues( sInstance->mInitialValues );
- sInstance->mPanelMediaSettingsSecurity->getValues( sInstance->mInitialValues );
- sInstance->mPanelMediaSettingsPermissions->getValues( sInstance->mInitialValues );
-
- sInstance->mApplyBtn->setEnabled(editable);
- sInstance->mOKBtn->setEnabled(editable);
+ if (sInstance->hasFocus()) return;
+
+ // Clear values
+ sInstance->mPanelMediaSettingsGeneral->clearValues(sInstance->mPanelMediaSettingsGeneral, editable, false /*don't update preview*/);
+ sInstance->mPanelMediaSettingsSecurity->clearValues(sInstance->mPanelMediaSettingsSecurity, editable);
+ sInstance->mPanelMediaSettingsPermissions->clearValues(sInstance->mPanelMediaSettingsPermissions, editable);
+
+ // update all panels with values from simulator
+ sInstance->mPanelMediaSettingsGeneral->
+ initValues( sInstance->mPanelMediaSettingsGeneral, media_settings, editable );
+
+ sInstance->mPanelMediaSettingsSecurity->
+ initValues( sInstance->mPanelMediaSettingsSecurity, media_settings, editable );
+
+ sInstance->mPanelMediaSettingsPermissions->
+ initValues( sInstance->mPanelMediaSettingsPermissions, media_settings, editable );
+
+ // Squirrel away initial values
+ sInstance->mInitialValues.clear();
+ sInstance->mPanelMediaSettingsGeneral->getValues( sInstance->mInitialValues );
+ sInstance->mPanelMediaSettingsSecurity->getValues( sInstance->mInitialValues );
+ sInstance->mPanelMediaSettingsPermissions->getValues( sInstance->mInitialValues );
+
+ sInstance->mApplyBtn->setEnabled(editable);
+ sInstance->mOKBtn->setEnabled(editable);
}
////////////////////////////////////////////////////////////////////////////////
-//
+//
void LLFloaterMediaSettings::commitFields()
{
- if (hasFocus())
- {
- LLUICtrl* cur_focus = dynamic_cast<LLUICtrl*>(gFocusMgr.getKeyboardFocus());
- if (cur_focus && cur_focus->acceptsTextInput())
- {
- cur_focus->onCommit();
- };
- };
+ if (hasFocus())
+ {
+ LLUICtrl* cur_focus = dynamic_cast<LLUICtrl*>(gFocusMgr.getKeyboardFocus());
+ if (cur_focus && cur_focus->acceptsTextInput())
+ {
+ cur_focus->onCommit();
+ };
+ };
}
////////////////////////////////////////////////////////////////////////////////
-//static
+//static
void LLFloaterMediaSettings::clearValues( bool editable)
{
- if (sInstance)
- {
- // clean up all panels before updating
- sInstance->mPanelMediaSettingsGeneral ->clearValues(sInstance->mPanelMediaSettingsGeneral, editable);
- sInstance->mPanelMediaSettingsSecurity ->clearValues(sInstance->mPanelMediaSettingsSecurity, editable);
- sInstance->mPanelMediaSettingsPermissions->clearValues(sInstance->mPanelMediaSettingsPermissions, editable);
- }
+ if (sInstance)
+ {
+ // clean up all panels before updating
+ sInstance->mPanelMediaSettingsGeneral ->clearValues(sInstance->mPanelMediaSettingsGeneral, editable);
+ sInstance->mPanelMediaSettingsSecurity ->clearValues(sInstance->mPanelMediaSettingsSecurity, editable);
+ sInstance->mPanelMediaSettingsPermissions->clearValues(sInstance->mPanelMediaSettingsPermissions, editable);
+ }
}
////////////////////////////////////////////////////////////////////////////////
// static
void LLFloaterMediaSettings::onBtnOK( void* userdata )
{
- sInstance->commitFields();
+ sInstance->commitFields();
- sInstance->apply();
+ sInstance->apply();
- sInstance->closeFloater();
+ sInstance->closeFloater();
}
////////////////////////////////////////////////////////////////////////////////
// static
void LLFloaterMediaSettings::onBtnApply( void* userdata )
{
- sInstance->commitFields();
+ sInstance->commitFields();
- sInstance->apply();
+ sInstance->apply();
- sInstance->mInitialValues.clear();
- sInstance->mPanelMediaSettingsGeneral->getValues( sInstance->mInitialValues );
- sInstance->mPanelMediaSettingsSecurity->getValues( sInstance->mInitialValues );
- sInstance->mPanelMediaSettingsPermissions->getValues( sInstance->mInitialValues );
+ sInstance->mInitialValues.clear();
+ sInstance->mPanelMediaSettingsGeneral->getValues( sInstance->mInitialValues );
+ sInstance->mPanelMediaSettingsSecurity->getValues( sInstance->mInitialValues );
+ sInstance->mPanelMediaSettingsPermissions->getValues( sInstance->mInitialValues );
}
@@ -266,70 +266,70 @@ void LLFloaterMediaSettings::onBtnApply( void* userdata )
// static
void LLFloaterMediaSettings::onBtnCancel( void* userdata )
{
- sInstance->closeFloater();
+ sInstance->closeFloater();
}
////////////////////////////////////////////////////////////////////////////////
// static
void LLFloaterMediaSettings::onTabChanged(void* user_data, bool from_click)
{
- LLTabContainer* self = (LLTabContainer*)user_data;
- gSavedSettings.setS32("LastMediaSettingsTab", self->getCurrentPanelIndex());
+ LLTabContainer* self = (LLTabContainer*)user_data;
+ gSavedSettings.setS32("LastMediaSettingsTab", self->getCurrentPanelIndex());
}
////////////////////////////////////////////////////////////////////////////////
//
const std::string LLFloaterMediaSettings::getHomeUrl()
{
- if ( mPanelMediaSettingsGeneral )
- return mPanelMediaSettingsGeneral->getHomeUrl();
- else
- return std::string( "" );
+ if ( mPanelMediaSettingsGeneral )
+ return mPanelMediaSettingsGeneral->getHomeUrl();
+ else
+ return std::string( "" );
}
////////////////////////////////////////////////////////////////////////////////
-// virtual
+// virtual
void LLFloaterMediaSettings::draw()
{
- if (NULL != mApplyBtn)
- {
- // Set the enabled state of the "Apply" button if values changed
- mApplyBtn->setEnabled( haveValuesChanged() );
- }
-
- LLFloater::draw();
+ if (NULL != mApplyBtn)
+ {
+ // Set the enabled state of the "Apply" button if values changed
+ mApplyBtn->setEnabled( haveValuesChanged() );
+ }
+
+ LLFloater::draw();
}
//private
bool LLFloaterMediaSettings::haveValuesChanged() const
{
- bool values_changed = false;
- // *NOTE: The code below is very inefficient. Better to do this
- // only when data change.
- // Every frame, check to see what the values are. If they are not
- // the same as the initial media data, enable the OK/Apply buttons
- LLSD settings;
- sInstance->mPanelMediaSettingsGeneral->getValues( settings );
- sInstance->mPanelMediaSettingsSecurity->getValues( settings );
- sInstance->mPanelMediaSettingsPermissions->getValues( settings );
- LLSD::map_const_iterator iter = settings.beginMap();
- LLSD::map_const_iterator end = settings.endMap();
- for ( ; iter != end; ++iter )
- {
- const std::string &current_key = iter->first;
- const LLSD &current_value = iter->second;
- if ( ! llsd_equals(current_value, mInitialValues[current_key]))
- {
- values_changed = true;
- break;
- }
- }
- return values_changed;
+ bool values_changed = false;
+ // *NOTE: The code below is very inefficient. Better to do this
+ // only when data change.
+ // Every frame, check to see what the values are. If they are not
+ // the same as the initial media data, enable the OK/Apply buttons
+ LLSD settings;
+ sInstance->mPanelMediaSettingsGeneral->getValues( settings );
+ sInstance->mPanelMediaSettingsSecurity->getValues( settings );
+ sInstance->mPanelMediaSettingsPermissions->getValues( settings );
+ LLSD::map_const_iterator iter = settings.beginMap();
+ LLSD::map_const_iterator end = settings.endMap();
+ for ( ; iter != end; ++iter )
+ {
+ const std::string &current_key = iter->first;
+ const LLSD &current_value = iter->second;
+ if ( ! llsd_equals(current_value, mInitialValues[current_key]))
+ {
+ values_changed = true;
+ break;
+ }
+ }
+ return values_changed;
}
bool LLFloaterMediaSettings::instanceExists()
{
- return LLFloaterReg::findTypedInstance<LLFloaterMediaSettings>("media_settings");
+ return LLFloaterReg::findTypedInstance<LLFloaterMediaSettings>("media_settings");
}