From e2e37cced861b98de8c1a7c9c0d3a50d2d90e433 Mon Sep 17 00:00:00 2001 From: Ansariel Date: Wed, 22 May 2024 21:25:21 +0200 Subject: Fix line endlings --- indra/newview/llfloatermediasettings.cpp | 670 +++++++++++++++---------------- 1 file changed, 335 insertions(+), 335 deletions(-) (limited to 'indra/newview/llfloatermediasettings.cpp') diff --git a/indra/newview/llfloatermediasettings.cpp b/indra/newview/llfloatermediasettings.cpp index a03e13d4e9..2496887c9d 100644 --- a/indra/newview/llfloatermediasettings.cpp +++ b/indra/newview/llfloatermediasettings.cpp @@ -1,335 +1,335 @@ -/** - * @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$ - */ - -#include "llviewerprecompiledheaders.h" - -#include "llfloaterreg.h" -#include "llfloatermediasettings.h" -#include "llpanelmediasettingsgeneral.h" -#include "llpanelmediasettingssecurity.h" -#include "llpanelmediasettingspermissions.h" -#include "llviewercontrol.h" -#include "lluictrlfactory.h" -#include "llbutton.h" -#include "llselectmgr.h" -#include "llsdutil.h" - -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) -{ -} - -//////////////////////////////////////////////////////////////////////////////// -// -LLFloaterMediaSettings::~LLFloaterMediaSettings() -{ - 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("Apply"); - mApplyBtn->setClickedCallback(onBtnApply, this); - - mCancelBtn = getChild("Cancel"); - mCancelBtn->setClickedCallback(onBtnCancel, this); - - mOKBtn = getChild("OK"); - mOKBtn->setClickedCallback(onBtnOK, this); - - mTabContainer = getChild( "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 -LLFloaterMediaSettings* LLFloaterMediaSettings::getInstance() -{ - if ( !sInstance ) - { - sInstance = (LLFloaterReg::getTypedInstance("media_settings")); - } - - return sInstance; -} - -//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(); - } -} - -//////////////////////////////////////////////////////////////////////////////// -void LLFloaterMediaSettings::onOpen(const LLSD& key) -{ - if (mPanelMediaSettingsGeneral) - { - // media is expensive, so only load it when nessesary. - // If we need to preload it, set volume to 0 and any pause - // if applicable, then unpause here - mPanelMediaSettingsGeneral->updateMediaPreview(); - } -} - -//////////////////////////////////////////////////////////////////////////////// -void LLFloaterMediaSettings::onClose(bool app_quitting) -{ - if(mPanelMediaSettingsGeneral) - { - mPanelMediaSettingsGeneral->onClose(app_quitting); - } - LLFloaterReg::hideInstance("whitelist_entry"); -} - -//////////////////////////////////////////////////////////////////////////////// -//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); -} - -//////////////////////////////////////////////////////////////////////////////// -// -void LLFloaterMediaSettings::commitFields() -{ - if (hasFocus()) - { - LLUICtrl* cur_focus = dynamic_cast(gFocusMgr.getKeyboardFocus()); - if (cur_focus && cur_focus->acceptsTextInput()) - { - cur_focus->onCommit(); - }; - }; -} - -//////////////////////////////////////////////////////////////////////////////// -//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); - } -} - -//////////////////////////////////////////////////////////////////////////////// -// static -void LLFloaterMediaSettings::onBtnOK( void* userdata ) -{ - sInstance->commitFields(); - - sInstance->apply(); - - sInstance->closeFloater(); -} - -//////////////////////////////////////////////////////////////////////////////// -// static -void LLFloaterMediaSettings::onBtnApply( void* userdata ) -{ - sInstance->commitFields(); - - sInstance->apply(); - - sInstance->mInitialValues.clear(); - sInstance->mPanelMediaSettingsGeneral->getValues( sInstance->mInitialValues ); - sInstance->mPanelMediaSettingsSecurity->getValues( sInstance->mInitialValues ); - sInstance->mPanelMediaSettingsPermissions->getValues( sInstance->mInitialValues ); - -} - -//////////////////////////////////////////////////////////////////////////////// -// static -void LLFloaterMediaSettings::onBtnCancel( void* userdata ) -{ - sInstance->closeFloater(); -} - -//////////////////////////////////////////////////////////////////////////////// -// static -void LLFloaterMediaSettings::onTabChanged(void* user_data, bool from_click) -{ - LLTabContainer* self = (LLTabContainer*)user_data; - gSavedSettings.setS32("LastMediaSettingsTab", self->getCurrentPanelIndex()); -} -//////////////////////////////////////////////////////////////////////////////// -// -const std::string LLFloaterMediaSettings::getHomeUrl() -{ - if ( mPanelMediaSettingsGeneral ) - return mPanelMediaSettingsGeneral->getHomeUrl(); - else - return std::string( "" ); -} - -//////////////////////////////////////////////////////////////////////////////// -// virtual -void LLFloaterMediaSettings::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 ¤t_key = iter->first; - const LLSD ¤t_value = iter->second; - if ( ! llsd_equals(current_value, mInitialValues[current_key])) - { - values_changed = true; - break; - } - } - return values_changed; -} - -bool LLFloaterMediaSettings::instanceExists() -{ - return LLFloaterReg::findTypedInstance("media_settings"); -} - - +/** + * @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$ + */ + +#include "llviewerprecompiledheaders.h" + +#include "llfloaterreg.h" +#include "llfloatermediasettings.h" +#include "llpanelmediasettingsgeneral.h" +#include "llpanelmediasettingssecurity.h" +#include "llpanelmediasettingspermissions.h" +#include "llviewercontrol.h" +#include "lluictrlfactory.h" +#include "llbutton.h" +#include "llselectmgr.h" +#include "llsdutil.h" + +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) +{ +} + +//////////////////////////////////////////////////////////////////////////////// +// +LLFloaterMediaSettings::~LLFloaterMediaSettings() +{ + 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("Apply"); + mApplyBtn->setClickedCallback(onBtnApply, this); + + mCancelBtn = getChild("Cancel"); + mCancelBtn->setClickedCallback(onBtnCancel, this); + + mOKBtn = getChild("OK"); + mOKBtn->setClickedCallback(onBtnOK, this); + + mTabContainer = getChild( "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 +LLFloaterMediaSettings* LLFloaterMediaSettings::getInstance() +{ + if ( !sInstance ) + { + sInstance = (LLFloaterReg::getTypedInstance("media_settings")); + } + + return sInstance; +} + +//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(); + } +} + +//////////////////////////////////////////////////////////////////////////////// +void LLFloaterMediaSettings::onOpen(const LLSD& key) +{ + if (mPanelMediaSettingsGeneral) + { + // media is expensive, so only load it when nessesary. + // If we need to preload it, set volume to 0 and any pause + // if applicable, then unpause here + mPanelMediaSettingsGeneral->updateMediaPreview(); + } +} + +//////////////////////////////////////////////////////////////////////////////// +void LLFloaterMediaSettings::onClose(bool app_quitting) +{ + if(mPanelMediaSettingsGeneral) + { + mPanelMediaSettingsGeneral->onClose(app_quitting); + } + LLFloaterReg::hideInstance("whitelist_entry"); +} + +//////////////////////////////////////////////////////////////////////////////// +//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); +} + +//////////////////////////////////////////////////////////////////////////////// +// +void LLFloaterMediaSettings::commitFields() +{ + if (hasFocus()) + { + LLUICtrl* cur_focus = dynamic_cast(gFocusMgr.getKeyboardFocus()); + if (cur_focus && cur_focus->acceptsTextInput()) + { + cur_focus->onCommit(); + }; + }; +} + +//////////////////////////////////////////////////////////////////////////////// +//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); + } +} + +//////////////////////////////////////////////////////////////////////////////// +// static +void LLFloaterMediaSettings::onBtnOK( void* userdata ) +{ + sInstance->commitFields(); + + sInstance->apply(); + + sInstance->closeFloater(); +} + +//////////////////////////////////////////////////////////////////////////////// +// static +void LLFloaterMediaSettings::onBtnApply( void* userdata ) +{ + sInstance->commitFields(); + + sInstance->apply(); + + sInstance->mInitialValues.clear(); + sInstance->mPanelMediaSettingsGeneral->getValues( sInstance->mInitialValues ); + sInstance->mPanelMediaSettingsSecurity->getValues( sInstance->mInitialValues ); + sInstance->mPanelMediaSettingsPermissions->getValues( sInstance->mInitialValues ); + +} + +//////////////////////////////////////////////////////////////////////////////// +// static +void LLFloaterMediaSettings::onBtnCancel( void* userdata ) +{ + sInstance->closeFloater(); +} + +//////////////////////////////////////////////////////////////////////////////// +// static +void LLFloaterMediaSettings::onTabChanged(void* user_data, bool from_click) +{ + LLTabContainer* self = (LLTabContainer*)user_data; + gSavedSettings.setS32("LastMediaSettingsTab", self->getCurrentPanelIndex()); +} +//////////////////////////////////////////////////////////////////////////////// +// +const std::string LLFloaterMediaSettings::getHomeUrl() +{ + if ( mPanelMediaSettingsGeneral ) + return mPanelMediaSettingsGeneral->getHomeUrl(); + else + return std::string( "" ); +} + +//////////////////////////////////////////////////////////////////////////////// +// virtual +void LLFloaterMediaSettings::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 ¤t_key = iter->first; + const LLSD ¤t_value = iter->second; + if ( ! llsd_equals(current_value, mInitialValues[current_key])) + { + values_changed = true; + break; + } + } + return values_changed; +} + +bool LLFloaterMediaSettings::instanceExists() +{ + return LLFloaterReg::findTypedInstance("media_settings"); +} + + -- cgit v1.2.3