diff options
Diffstat (limited to 'indra')
48 files changed, 354 insertions, 160 deletions
diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index b159092592..1f578eec5f 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -119,14 +119,14 @@ if (LINUX)    endif (${GXX_VERSION} STREQUAL ${CXX_VERSION})    # Let's actually get a numerical version of gxx's version -  STRING(REGEX REPLACE ".* ([0-9])\\.([0-9])\\.([0-9]).*" "\\1\\2\\3" CXX_VERSION ${CXX_VERSION}) +  STRING(REGEX REPLACE ".* ([0-9])\\.([0-9])\\.([0-9]).*" "\\1\\2\\3" CXX_VERSION_NUMBER ${CXX_VERSION}) -  # gcc 4.3 and above don't like the LL boost and also  +  # gcc 4.3 and above don't like the LL boost and also    # cause warnings due to our use of deprecated headers -  if(${CXX_VERSION} GREATER 429) +  if(${CXX_VERSION_NUMBER} GREATER 429)      add_definitions(-Wno-parentheses)      set(CMAKE_CXX_FLAGS "-Wno-deprecated ${CMAKE_CXX_FLAGS}") -  endif (${CXX_VERSION} GREATER 429) +  endif (${CXX_VERSION_NUMBER} GREATER 429)    # End of hacks. diff --git a/indra/llaudio/CMakeLists.txt b/indra/llaudio/CMakeLists.txt index 9e9e1aaeae..bfa2c34c12 100644 --- a/indra/llaudio/CMakeLists.txt +++ b/indra/llaudio/CMakeLists.txt @@ -31,7 +31,6 @@ set(llaudio_SOURCE_FILES      llaudioengine.cpp      lllistener.cpp      llaudiodecodemgr.cpp -    llvorbisdecode.cpp      llvorbisencode.cpp      ) @@ -41,7 +40,6 @@ set(llaudio_HEADER_FILES      llaudioengine.h      lllistener.h      llaudiodecodemgr.h -    llvorbisdecode.h      llvorbisencode.h      llwindgen.h      ) @@ -60,11 +58,11 @@ if (FMOD)           )      if (LINUX) -      if (${CXX_VERSION} MATCHES "4.[23]") +      if (${CXX_VERSION_NUMBER} GREATER 419)          set_source_files_properties(llaudioengine_fmod.cpp                                      llstreamingaudio_fmod.cpp                                      COMPILE_FLAGS -Wno-write-strings) -      endif (${CXX_VERSION} MATCHES "4.[23]") +      endif (${CXX_VERSION_NUMBER} GREATER 419)      endif (LINUX)  endif (FMOD) diff --git a/indra/llaudio/llaudiodecodemgr.cpp b/indra/llaudio/llaudiodecodemgr.cpp index ae959eaa81..6bbaad9cef 100644 --- a/indra/llaudio/llaudiodecodemgr.cpp +++ b/indra/llaudio/llaudiodecodemgr.cpp @@ -33,7 +33,6 @@  #include "llaudiodecodemgr.h" -#include "llvorbisdecode.h"  #include "llaudioengine.h"  #include "lllfsthread.h"  #include "llvfile.h" diff --git a/indra/llplugin/llpluginclassmedia.cpp b/indra/llplugin/llpluginclassmedia.cpp index c3d8a5aa23..70d770ef7e 100644 --- a/indra/llplugin/llpluginclassmedia.cpp +++ b/indra/llplugin/llpluginclassmedia.cpp @@ -2,6 +2,7 @@   * @file llpluginclassmedia.cpp   * @brief LLPluginClassMedia handles a plugin which knows about the "media" message class.   * + * @cond   * $LicenseInfo:firstyear=2008&license=viewergpl$   *   * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #include "linden_common.h" diff --git a/indra/llplugin/llpluginclassmedia.h b/indra/llplugin/llpluginclassmedia.h index dcc4a3bd6a..6b64688718 100644 --- a/indra/llplugin/llpluginclassmedia.h +++ b/indra/llplugin/llpluginclassmedia.h @@ -2,6 +2,7 @@   * @file llpluginclassmedia.h   * @brief LLPluginClassMedia handles interaction with a plugin which knows about the "media" message class.   * + * @cond   * $LicenseInfo:firstyear=2008&license=viewergpl$   *   * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #ifndef LL_LLPLUGINCLASSMEDIA_H diff --git a/indra/llplugin/llpluginclassmediaowner.h b/indra/llplugin/llpluginclassmediaowner.h index c798af29ca..6d369cd51a 100644 --- a/indra/llplugin/llpluginclassmediaowner.h +++ b/indra/llplugin/llpluginclassmediaowner.h @@ -2,6 +2,7 @@   * @file llpluginclassmediaowner.h   * @brief LLPluginClassMedia handles interaction with a plugin which knows about the "media" message class.   * + * @cond   * $LicenseInfo:firstyear=2008&license=viewergpl$   *   * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #ifndef LL_LLPLUGINCLASSMEDIAOWNER_H diff --git a/indra/llplugin/llplugininstance.cpp b/indra/llplugin/llplugininstance.cpp index 58fb792d0d..16ba492669 100644 --- a/indra/llplugin/llplugininstance.cpp +++ b/indra/llplugin/llplugininstance.cpp @@ -2,6 +2,7 @@   * @file llplugininstance.cpp   * @brief LLPluginInstance handles loading the dynamic library of a plugin and setting up its entry points for message passing.   * + * @cond   * $LicenseInfo:firstyear=2008&license=viewergpl$   *   * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #include "linden_common.h" diff --git a/indra/llplugin/llplugininstance.h b/indra/llplugin/llplugininstance.h index ba569df10c..02936f65fb 100644 --- a/indra/llplugin/llplugininstance.h +++ b/indra/llplugin/llplugininstance.h @@ -2,6 +2,7 @@   * @file llplugininstance.h   * @brief LLPluginInstance handles loading the dynamic library of a plugin and setting up its entry points for message passing.   * + * @cond   * $LicenseInfo:firstyear=2008&license=viewergpl$   *   * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #ifndef LL_LLPLUGININSTANCE_H diff --git a/indra/llplugin/llpluginmessage.cpp b/indra/llplugin/llpluginmessage.cpp index 32601b47db..34e02c356e 100644 --- a/indra/llplugin/llpluginmessage.cpp +++ b/indra/llplugin/llpluginmessage.cpp @@ -2,6 +2,7 @@   * @file llpluginmessage.cpp   * @brief LLPluginMessage encapsulates the serialization/deserialization of messages passed to and from plugins.   * + * @cond   * $LicenseInfo:firstyear=2008&license=viewergpl$   *   * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #include "linden_common.h" diff --git a/indra/llplugin/llpluginmessage.h b/indra/llplugin/llpluginmessage.h index 5e93d8b7a1..99f8d1194f 100644 --- a/indra/llplugin/llpluginmessage.h +++ b/indra/llplugin/llpluginmessage.h @@ -2,6 +2,7 @@   * @file llpluginmessage.h   * @brief LLPluginMessage encapsulates the serialization/deserialization of messages passed to and from plugins.   * + * @cond   * $LicenseInfo:firstyear=2008&license=viewergpl$   *   * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #ifndef LL_LLPLUGINMESSAGE_H diff --git a/indra/llplugin/llpluginmessageclasses.h b/indra/llplugin/llpluginmessageclasses.h index 927fcf2eb2..01fddb92c5 100644 --- a/indra/llplugin/llpluginmessageclasses.h +++ b/indra/llplugin/llpluginmessageclasses.h @@ -2,6 +2,7 @@   * @file llpluginmessageclasses.h   * @brief This file defines the versions of existing message classes for LLPluginMessage.   * + * @cond   * $LicenseInfo:firstyear=2008&license=viewergpl$   *   * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #ifndef LL_LLPLUGINMESSAGECLASSES_H diff --git a/indra/llplugin/llpluginmessagepipe.cpp b/indra/llplugin/llpluginmessagepipe.cpp index 31ea138912..cc193fca42 100644 --- a/indra/llplugin/llpluginmessagepipe.cpp +++ b/indra/llplugin/llpluginmessagepipe.cpp @@ -2,6 +2,7 @@   * @file llpluginmessagepipe.cpp   * @brief Classes that implement connections from the plugin system to pipes/pumps.   * + * @cond   * $LicenseInfo:firstyear=2008&license=viewergpl$   *   * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #include "linden_common.h" diff --git a/indra/llplugin/llpluginmessagepipe.h b/indra/llplugin/llpluginmessagepipe.h index 4eb6575bd4..1ddb38de68 100644 --- a/indra/llplugin/llpluginmessagepipe.h +++ b/indra/llplugin/llpluginmessagepipe.h @@ -2,6 +2,7 @@   * @file llpluginmessagepipe.h   * @brief Classes that implement connections from the plugin system to pipes/pumps.   * + * @cond   * $LicenseInfo:firstyear=2008&license=viewergpl$   *   * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #ifndef LL_LLPLUGINMESSAGEPIPE_H diff --git a/indra/llplugin/llpluginprocesschild.cpp b/indra/llplugin/llpluginprocesschild.cpp index fc95136d9e..55cf11c620 100644 --- a/indra/llplugin/llpluginprocesschild.cpp +++ b/indra/llplugin/llpluginprocesschild.cpp @@ -2,6 +2,7 @@   * @file llpluginprocesschild.cpp   * @brief LLPluginProcessChild handles the child side of the external-process plugin API.    * + * @cond   * $LicenseInfo:firstyear=2008&license=viewergpl$   *   * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #include "linden_common.h" diff --git a/indra/llplugin/llpluginprocesschild.h b/indra/llplugin/llpluginprocesschild.h index 75860bdf0a..f5c57c3d49 100644 --- a/indra/llplugin/llpluginprocesschild.h +++ b/indra/llplugin/llpluginprocesschild.h @@ -2,6 +2,7 @@   * @file llpluginprocesschild.h   * @brief LLPluginProcessChild handles the child side of the external-process plugin API.    * + * @cond   * $LicenseInfo:firstyear=2008&license=viewergpl$   *   * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #ifndef LL_LLPLUGINPROCESSCHILD_H diff --git a/indra/llplugin/llpluginprocessparent.cpp b/indra/llplugin/llpluginprocessparent.cpp index b7ce800c3a..332ce288d7 100644 --- a/indra/llplugin/llpluginprocessparent.cpp +++ b/indra/llplugin/llpluginprocessparent.cpp @@ -2,6 +2,7 @@   * @file llpluginprocessparent.cpp   * @brief LLPluginProcessParent handles the parent side of the external-process plugin API.   * + * @cond   * $LicenseInfo:firstyear=2008&license=viewergpl$   *   * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #include "linden_common.h" diff --git a/indra/llplugin/llpluginprocessparent.h b/indra/llplugin/llpluginprocessparent.h index 1289e86c13..25669f5d78 100644 --- a/indra/llplugin/llpluginprocessparent.h +++ b/indra/llplugin/llpluginprocessparent.h @@ -2,6 +2,7 @@   * @file llpluginprocessparent.h   * @brief LLPluginProcessParent handles the parent side of the external-process plugin API.   * + * @cond   * $LicenseInfo:firstyear=2008&license=viewergpl$   *   * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #ifndef LL_LLPLUGINPROCESSPARENT_H diff --git a/indra/llplugin/llpluginsharedmemory.cpp b/indra/llplugin/llpluginsharedmemory.cpp index ce8b8e3e09..3c69a69d28 100644 --- a/indra/llplugin/llpluginsharedmemory.cpp +++ b/indra/llplugin/llpluginsharedmemory.cpp @@ -2,6 +2,7 @@   * @file llpluginsharedmemory.cpp   * @brief LLPluginSharedMemory manages a shared memory segment for use by the LLPlugin API.   * + * @cond   * $LicenseInfo:firstyear=2008&license=viewergpl$   *   * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #include "linden_common.h" diff --git a/indra/llplugin/llpluginsharedmemory.h b/indra/llplugin/llpluginsharedmemory.h index a4613b9a54..4014620c52 100644 --- a/indra/llplugin/llpluginsharedmemory.h +++ b/indra/llplugin/llpluginsharedmemory.h @@ -2,6 +2,7 @@   * @file llpluginsharedmemory.h   * @brief LLPluginSharedMemory manages a shared memory segment for use by the LLPlugin API.   * + * @cond   * $LicenseInfo:firstyear=2008&license=viewergpl$   *   * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #ifndef LL_LLPLUGINSHAREDMEMORY_H diff --git a/indra/llplugin/slplugin/slplugin.cpp b/indra/llplugin/slplugin/slplugin.cpp index ddca60867a..23dc532ba5 100644 --- a/indra/llplugin/slplugin/slplugin.cpp +++ b/indra/llplugin/slplugin/slplugin.cpp @@ -2,6 +2,8 @@   * @file slplugin.cpp   * @brief Loader shell for plugins, intended to be launched by the plugin host application, which directly loads a plugin dynamic library.   * + * @cond + *   * $LicenseInfo:firstyear=2008&license=viewergpl$   *   * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +29,8 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * + * @endcond   */ diff --git a/indra/llui/lltooltip.cpp b/indra/llui/lltooltip.cpp index 959313a5b6..d7228c78bd 100644 --- a/indra/llui/lltooltip.cpp +++ b/indra/llui/lltooltip.cpp @@ -228,7 +228,7 @@ LLToolTip::LLToolTip(const LLToolTip::Params& p)  	{  		LLButton::Params p_button;  		p_button.name(std::string("play_media")); -		p_button.label(""); // provid label but set to empty so name does not overwrite it -angela +		p_button.label(""); // provide label but set to empty so name does not overwrite it -angela  		TOOLTIP_PLAYBUTTON_SIZE = 16;  		LLRect button_rect;  		button_rect.setOriginAndSize((mPadding +TOOLTIP_ICON_SIZE+ mPadding ), mPadding, TOOLTIP_ICON_SIZE, TOOLTIP_ICON_SIZE); diff --git a/indra/media_plugins/base/media_plugin_base.cpp b/indra/media_plugins/base/media_plugin_base.cpp index 6acac07423..8c8fa24a65 100644 --- a/indra/media_plugins/base/media_plugin_base.cpp +++ b/indra/media_plugins/base/media_plugin_base.cpp @@ -2,6 +2,7 @@   * @file media_plugin_base.cpp   * @brief Media plugin base class for LLMedia API plugin system   * + * @cond   * $LicenseInfo:firstyear=2008&license=viewergpl$   *   * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #include "linden_common.h" diff --git a/indra/media_plugins/base/media_plugin_base.h b/indra/media_plugins/base/media_plugin_base.h index f1e96335f9..4dd157a07c 100644 --- a/indra/media_plugins/base/media_plugin_base.h +++ b/indra/media_plugins/base/media_plugin_base.h @@ -2,6 +2,7 @@   * @file media_plugin_base.h   * @brief Media plugin base class for LLMedia API plugin system   * + * @cond   * $LicenseInfo:firstyear=2008&license=viewergpl$   *   * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #include "linden_common.h" diff --git a/indra/media_plugins/example/media_plugin_example.cpp b/indra/media_plugins/example/media_plugin_example.cpp index 99e0199a29..f5b077fea0 100644 --- a/indra/media_plugins/example/media_plugin_example.cpp +++ b/indra/media_plugins/example/media_plugin_example.cpp @@ -2,6 +2,7 @@   * @file media_plugin_example.cpp   * @brief Example plugin for LLMedia API plugin system   * + * @cond   * $LicenseInfo:firstyear=2008&license=viewergpl$   *   * Copyright (c) 2009, Linden Research, Inc. @@ -27,6 +28,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #include "linden_common.h" diff --git a/indra/media_plugins/gstreamer010/llmediaimplgstreamer.h b/indra/media_plugins/gstreamer010/llmediaimplgstreamer.h index ef41736c18..48accd3e66 100644 --- a/indra/media_plugins/gstreamer010/llmediaimplgstreamer.h +++ b/indra/media_plugins/gstreamer010/llmediaimplgstreamer.h @@ -3,6 +3,7 @@   * @author Tofu Linden   * @brief implementation that supports media playback via GStreamer.   * + * @cond   * $LicenseInfo:firstyear=2007&license=viewergpl$   *    * Copyright (c) 2007-2009, Linden Research, Inc. @@ -29,6 +30,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  // header guard diff --git a/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.cpp b/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.cpp index cc52232496..52cea46d46 100644 --- a/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.cpp +++ b/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.cpp @@ -2,6 +2,7 @@   * @file llmediaimplgstreamer_syms.cpp   * @brief dynamic GStreamer symbol-grabbing code   * + * @cond   * $LicenseInfo:firstyear=2007&license=viewergpl$   *    * Copyright (c) 2007-2009, Linden Research, Inc. @@ -28,6 +29,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #if LL_GSTREAMER010_ENABLED diff --git a/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.h b/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.h index ee7473d6d1..88f100af6e 100644 --- a/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.h +++ b/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.h @@ -2,6 +2,7 @@   * @file llmediaimplgstreamer_syms.h   * @brief dynamic GStreamer symbol-grabbing code   * + * @cond   * $LicenseInfo:firstyear=2007&license=viewergpl$   *    * Copyright (c) 2007-2009, Linden Research, Inc. @@ -28,6 +29,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #include "linden_common.h" diff --git a/indra/media_plugins/gstreamer010/llmediaimplgstreamertriviallogging.h b/indra/media_plugins/gstreamer010/llmediaimplgstreamertriviallogging.h index e31d4a3282..2244ccc146 100644 --- a/indra/media_plugins/gstreamer010/llmediaimplgstreamertriviallogging.h +++ b/indra/media_plugins/gstreamer010/llmediaimplgstreamertriviallogging.h @@ -2,6 +2,7 @@   * @file llmediaimplgstreamertriviallogging.h   * @brief minimal logging utilities.   * + * @cond   * $LicenseInfo:firstyear=2009&license=viewergpl$   *    * Copyright (c) 2009, Linden Research, Inc. @@ -28,6 +29,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #ifndef __LLMEDIAIMPLGSTREAMERTRIVIALLOGGING_H__ diff --git a/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.cpp b/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.cpp index d8ccfaa702..5bb0ef5a99 100644 --- a/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.cpp +++ b/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.cpp @@ -2,6 +2,7 @@   * @file llmediaimplgstreamervidplug.h   * @brief Video-consuming static GStreamer plugin for gst-to-LLMediaImpl   * + * @cond   * $LicenseInfo:firstyear=2007&license=viewergpl$   *    * Copyright (c) 2007-2009, Linden Research, Inc. @@ -28,6 +29,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #if LL_GSTREAMER010_ENABLED diff --git a/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.h b/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.h index f6d55b8758..208523e8d0 100644 --- a/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.h +++ b/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.h @@ -2,6 +2,7 @@   * @file llmediaimplgstreamervidplug.h   * @brief Video-consuming static GStreamer plugin for gst-to-LLMediaImpl   * + * @cond   * $LicenseInfo:firstyear=2007&license=viewergpl$   *    * Copyright (c) 2007-2009, Linden Research, Inc. @@ -28,6 +29,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #ifndef __GST_SLVIDEO_H__ diff --git a/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp b/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp index a4c43988ba..d21ff26f83 100644 --- a/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp +++ b/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp @@ -2,6 +2,7 @@   * @file media_plugin_gstreamer010.cpp   * @brief GStreamer-0.10 plugin for LLMedia API plugin system   * + * @cond   * $LicenseInfo:firstyear=2007&license=viewergpl$   *   * Copyright (c) 2007, Linden Research, Inc. @@ -27,6 +28,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #include "linden_common.h" diff --git a/indra/media_plugins/quicktime/media_plugin_quicktime.cpp b/indra/media_plugins/quicktime/media_plugin_quicktime.cpp index 236f79978d..dbc44c8334 100644 --- a/indra/media_plugins/quicktime/media_plugin_quicktime.cpp +++ b/indra/media_plugins/quicktime/media_plugin_quicktime.cpp @@ -2,6 +2,7 @@   * @file media_plugin_quicktime.cpp   * @brief QuickTime plugin for LLMedia API plugin system   * + * @cond   * $LicenseInfo:firstyear=2008&license=viewergpl$   *   * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #include "linden_common.h" diff --git a/indra/media_plugins/webkit/media_plugin_webkit.cpp b/indra/media_plugins/webkit/media_plugin_webkit.cpp index 09348782a4..30c7483229 100644 --- a/indra/media_plugins/webkit/media_plugin_webkit.cpp +++ b/indra/media_plugins/webkit/media_plugin_webkit.cpp @@ -2,6 +2,7 @@   * @file media_plugin_webkit.cpp   * @brief Webkit plugin for LLMedia API plugin system   * + * @cond   * $LicenseInfo:firstyear=2008&license=viewergpl$   *   * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@   * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,   * COMPLETENESS OR PERFORMANCE.   * $/LicenseInfo$ + * @endcond   */  #include "llqtwebkit.h" diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 65b172b184..91f43137c5 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -186,7 +186,7 @@ set(viewer_SOURCE_FILES      llfloatermediasettings.cpp      llfloatermemleak.cpp      llfloaternamedesc.cpp -        llfloaternearbymedia.cpp +    llfloaternearbymedia.cpp      llfloaternotificationsconsole.cpp      llfloateropenobject.cpp      llfloaterparcel.cpp @@ -213,6 +213,7 @@ set(viewer_SOURCE_FILES      llfloaterurldisplay.cpp      llfloaterurlentry.cpp      llfloatervoicedevicesettings.cpp +    llfloatervolumepulldown.cpp      llfloaterwater.cpp      llfloaterwhitelistentry.cpp      llfloaterwindlight.cpp diff --git a/indra/newview/llfloatermediasettings.cpp b/indra/newview/llfloatermediasettings.cpp index 44e68d7745..16a76723eb 100644 --- a/indra/newview/llfloatermediasettings.cpp +++ b/indra/newview/llfloatermediasettings.cpp @@ -41,6 +41,7 @@  #include "lluictrlfactory.h"  #include "llbutton.h"  #include "llselectmgr.h" +#include "llsdutil.h"  LLFloaterMediaSettings* LLFloaterMediaSettings::sInstance = NULL; @@ -57,7 +58,6 @@ LLFloaterMediaSettings::LLFloaterMediaSettings(const LLSD& key)  	mMultipleMedia(false),  	mMultipleValidMedia(false)  { -//	LLUICtrlFactory::getInstance()->buildFloater(this, "floater_media_settings.xml");  }  //////////////////////////////////////////////////////////////////////////////// @@ -145,15 +145,15 @@ LLFloaterMediaSettings* LLFloaterMediaSettings::getInstance()  //static   void LLFloaterMediaSettings::apply()  { -    LLSD settings; +	LLSD settings;  	sInstance->mPanelMediaSettingsGeneral->preApply(); -    sInstance->mPanelMediaSettingsGeneral->getValues( settings ); +	sInstance->mPanelMediaSettingsGeneral->getValues( settings );  	sInstance->mPanelMediaSettingsSecurity->preApply();  	sInstance->mPanelMediaSettingsSecurity->getValues( settings );  	sInstance->mPanelMediaSettingsPermissions->preApply(); -    sInstance->mPanelMediaSettingsPermissions->getValues( settings ); +	sInstance->mPanelMediaSettingsPermissions->getValues( settings );  	LLSelectMgr::getInstance()->selectionSetMedia( LLTextureEntry::MF_HAS_MEDIA ); -    LLSelectMgr::getInstance()->selectionSetMediaData(settings); +	LLSelectMgr::getInstance()->selectionSetMediaData(settings);  	sInstance->mPanelMediaSettingsGeneral->postApply();  	sInstance->mPanelMediaSettingsSecurity->postApply();  	sInstance->mPanelMediaSettingsPermissions->postApply(); @@ -183,7 +183,12 @@ void LLFloaterMediaSettings::initValues( const LLSD& media_settings, bool editab  	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 );  }  //////////////////////////////////////////////////////////////////////////////// @@ -206,11 +211,10 @@ void LLFloaterMediaSettings::clearValues( bool editable)  {  	// clean up all panels before updating  	sInstance->mPanelMediaSettingsGeneral	 ->clearValues(sInstance->mPanelMediaSettingsGeneral,  editable); -	sInstance->mPanelMediaSettingsSecurity	 ->clearValues(sInstance->mPanelMediaSettingsSecurity,  editable); +	sInstance->mPanelMediaSettingsSecurity	 ->clearValues(sInstance->mPanelMediaSettingsSecurity,	editable);  	sInstance->mPanelMediaSettingsPermissions->clearValues(sInstance->mPanelMediaSettingsPermissions,  editable);	  } -  ////////////////////////////////////////////////////////////////////////////////  // static  void LLFloaterMediaSettings::onBtnOK( void* userdata ) @@ -235,7 +239,7 @@ void LLFloaterMediaSettings::onBtnApply( void* userdata )  // static  void LLFloaterMediaSettings::onBtnCancel( void* userdata )  { - 	sInstance->closeFloater();  +	sInstance->closeFloater();   }  //////////////////////////////////////////////////////////////////////////////// @@ -250,7 +254,6 @@ void LLFloaterMediaSettings::onTabChanged(void* user_data, bool from_click)  //  void LLFloaterMediaSettings::enableOkApplyBtns( bool enable )  { -	setCtrlsEnabled( enable );  	childSetEnabled( "OK", enable );  	childSetEnabled( "Apply", enable );  } @@ -265,17 +268,36 @@ const std::string LLFloaterMediaSettings::getHomeUrl()  		return std::string( "" );  } -  //////////////////////////////////////////////////////////////////////////////// -// -bool LLFloaterMediaSettings::passesWhiteList( const std::string& test_url ) +// virtual  +void LLFloaterMediaSettings::draw()  { -	// sanity check - don't think this can happen -	if ( mPanelMediaSettingsSecurity ) -		// version in security dialog code is specialized so we pass in  -		// empty string for first parameter since it's not used -		return mPanelMediaSettingsSecurity->passesWhiteList( "", test_url ); -	else -		// this is all we can do -		return 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 default media data, enable the OK/Apply buttons +	LLSD settings; +	sInstance->mPanelMediaSettingsGeneral->getValues( settings ); +	sInstance->mPanelMediaSettingsSecurity->getValues( settings ); +	sInstance->mPanelMediaSettingsPermissions->getValues( settings ); + +	bool values_changed = false; +	 +	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; +		} +	} +	 +	enableOkApplyBtns(values_changed); +	 +	LLFloater::draw();  } + diff --git a/indra/newview/llfloatermediasettings.h b/indra/newview/llfloatermediasettings.h index 17a47cb0f5..b72e3d855d 100644 --- a/indra/newview/llfloatermediasettings.h +++ b/indra/newview/llfloatermediasettings.h @@ -54,10 +54,12 @@ public:  	static void apply();  	static void initValues( const LLSD& media_settings , bool editable);  	static void clearValues( bool editable); -	void enableOkApplyBtns( bool enable ); -	LLPanelMediaSettingsSecurity* getPanelSecurity(){return mPanelMediaSettingsSecurity;}; -	const std::string getHomeUrl(); -	bool passesWhiteList( const std::string& test_url ); + +	LLPanelMediaSettingsSecurity* getPanelSecurity(){return mPanelMediaSettingsSecurity;};	 +	const std::string getHomeUrl();	 +	//bool passesWhiteList( const std::string& test_url ); + +	virtual void	draw();  	bool mIdenticalHasMediaInfo;  	bool mMultipleMedia; @@ -73,7 +75,6 @@ protected:  	LLPanelMediaSettingsSecurity* mPanelMediaSettingsSecurity;  	LLPanelMediaSettingsPermissions* mPanelMediaSettingsPermissions; -  	static void onBtnOK(void*);  	static void onBtnCancel(void*);  	static void onBtnApply(void*); @@ -83,6 +84,10 @@ protected:  	static LLFloaterMediaSettings* sInstance;  private: + +	void enableOkApplyBtns( bool enable ); +	 +	LLSD mInitialValues;  	bool mWaitingToClose;  }; diff --git a/indra/newview/llfloaterwhitelistentry.cpp b/indra/newview/llfloaterwhitelistentry.cpp index 551a5191fc..04dbd38153 100644 --- a/indra/newview/llfloaterwhitelistentry.cpp +++ b/indra/newview/llfloaterwhitelistentry.cpp @@ -81,7 +81,7 @@ void LLFloaterWhiteListEntry::onBtnOK( void* userdata )  	{  		std::string white_list_item = self->mWhiteListEdit->getText(); -		panel->addWhiteListItem( white_list_item ); +		panel->addWhiteListEntry( white_list_item );  	};  	self->closeFloater();	 diff --git a/indra/newview/llpanelmediasettingsgeneral.cpp b/indra/newview/llpanelmediasettingsgeneral.cpp index 5bb266a01d..3fa0e7bf8f 100644 --- a/indra/newview/llpanelmediasettingsgeneral.cpp +++ b/indra/newview/llpanelmediasettingsgeneral.cpp @@ -59,6 +59,8 @@  #include "llfloatermediasettings.h"  #include "llfloatertools.h"  #include "lltrans.h" +#include "lltextbox.h" +#include "llpanelmediasettingssecurity.h"  const char *CHECKERBOARD_DATA_URL = "data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%22100%%22 height=%22100%%22 %3E%3Cdefs%3E%3Cpattern id=%22checker%22 patternUnits=%22userSpaceOnUse%22 x=%220%22 y=%220%22 width=%22128%22 height=%22128%22 viewBox=%220 0 128 128%22 %3E%3Crect x=%220%22 y=%220%22 width=%2264%22 height=%2264%22 fill=%22#ddddff%22 /%3E%3Crect x=%2264%22 y=%2264%22 width=%2264%22 height=%2264%22 fill=%22#ddddff%22 /%3E%3C/pattern%3E%3C/defs%3E%3Crect x=%220%22 y=%220%22 width=%22100%%22 height=%22100%%22 fill=%22url(#checker)%22 /%3E%3C/svg%3E"; @@ -98,10 +100,12 @@ BOOL LLPanelMediaSettingsGeneral::postBuild()  	mHomeURL = getChild< LLLineEditor >( LLMediaEntry::HOME_URL_KEY );  	mWidthPixels = getChild< LLSpinCtrl >( LLMediaEntry::WIDTH_PIXELS_KEY );  	mPreviewMedia = getChild<LLMediaCtrl>("preview_media"); +	mFailWhiteListText = getChild<LLTextBox>( "home_fails_whitelist_label" );  	// watch commit action for HOME URL  	childSetCommitCallback( LLMediaEntry::HOME_URL_KEY, onCommitHomeURL, this);  	childSetCommitCallback( "current_url_reset_btn",onBtnResetCurrentUrl, this); +  	// interrogates controls and updates widgets as required  	updateMediaPreview(); @@ -121,6 +125,11 @@ void LLPanelMediaSettingsGeneral::draw()  	// housekeeping  	LLPanel::draw(); +	// TODO: we need to call this repeatedly until the floater panels are fully +	// created but once we have a valid answer, we should stop looking here - the +	// commit callback will handle it +	checkHomeUrlPassesWhitelist(); +  	// enable/disable pixel values image entry based on auto scale checkbox   	if ( mAutoScale->getValue().asBoolean() == false )  	{ @@ -250,10 +259,6 @@ void LLPanelMediaSettingsGeneral::initValues( void* userdata, const LLSD& media_  	LLPanelMediaSettingsGeneral *self =(LLPanelMediaSettingsGeneral *)userdata;  	self->mMediaEditable = editable; -	//llinfos << "---------------" << llendl; -	//llinfos << ll_pretty_print_sd(media_settings) << llendl; -	//llinfos << "---------------" << llendl; -  	if ( LLPanelMediaSettingsGeneral::isMultiple() )  	{  		self->clearValues(self, self->mMediaEditable); @@ -316,7 +321,7 @@ void LLPanelMediaSettingsGeneral::initValues( void* userdata, const LLSD& media_  			data_set[ i ].ctrl_ptr->setTentative( media_settings[ tentative_key ].asBoolean() );  		};  	}; -	 +  	// interrogates controls and updates widgets as required  	self->updateMediaPreview();  } @@ -355,20 +360,35 @@ void LLPanelMediaSettingsGeneral::onClose(bool app_quitting)  }  //////////////////////////////////////////////////////////////////////////////// +//  +void LLPanelMediaSettingsGeneral::checkHomeUrlPassesWhitelist() +{ +	// parent floater has not constructed the security panel yet +	if ( mParent->getPanelSecurity() == 0 )  +		return; + +	std::string home_url = getHomeUrl(); +	if ( home_url.empty() || mParent->getPanelSecurity()->urlPassesWhiteList( home_url ) ) +	{ +		// Home URL is empty or passes the white list so hide the warning message +		mFailWhiteListText->setVisible( false ); +	} +	else +	{ +		// Home URL does not pass the white list so show the warning message +		mFailWhiteListText->setVisible( true ); +	}; +} + +////////////////////////////////////////////////////////////////////////////////  // static  void LLPanelMediaSettingsGeneral::onCommitHomeURL( LLUICtrl* ctrl, void *userdata )  {  	LLPanelMediaSettingsGeneral* self =(LLPanelMediaSettingsGeneral *)userdata; -	// check url user is trying to enter for home URL will pass whitelist  -	// and decline to accept it if it doesn't. -	std::string home_url = self->mHomeURL->getValue().asString(); -	if ( ! self->mParent->passesWhiteList( home_url ) ) -	{ -		LLNotificationsUtil::add("WhiteListInvalidatesHomeUrl");		 -		return; -	}; -	 +	// check home url passes whitelist and display warning if not +	self->checkHomeUrlPassesWhitelist(); +  	self->updateMediaPreview();  } @@ -392,19 +412,19 @@ void LLPanelMediaSettingsGeneral::preApply()  //  void LLPanelMediaSettingsGeneral::getValues( LLSD &fill_me_in )  { -	fill_me_in[LLMediaEntry::AUTO_LOOP_KEY] = mAutoLoop->getValue(); -	fill_me_in[LLMediaEntry::AUTO_PLAY_KEY] = mAutoPlay->getValue(); -	fill_me_in[LLMediaEntry::AUTO_SCALE_KEY] = mAutoScale->getValue(); -	fill_me_in[LLMediaEntry::AUTO_ZOOM_KEY] = mAutoZoom->getValue(); -	fill_me_in[LLMediaEntry::CONTROLS_KEY] = mControls->getCurrentIndex(); +	fill_me_in[LLMediaEntry::AUTO_LOOP_KEY] = (LLSD::Boolean)mAutoLoop->getValue(); +	fill_me_in[LLMediaEntry::AUTO_PLAY_KEY] = (LLSD::Boolean)mAutoPlay->getValue(); +	fill_me_in[LLMediaEntry::AUTO_SCALE_KEY] = (LLSD::Boolean)mAutoScale->getValue(); +	fill_me_in[LLMediaEntry::AUTO_ZOOM_KEY] = (LLSD::Boolean)mAutoZoom->getValue(); +	fill_me_in[LLMediaEntry::CONTROLS_KEY] = (LLSD::Integer)mControls->getCurrentIndex();  	//Don't fill in current URL: this is only supposed to get changed via navigate  	// fill_me_in[LLMediaEntry::CURRENT_URL_KEY] = mCurrentURL->getValue(); -	fill_me_in[LLMediaEntry::HEIGHT_PIXELS_KEY] = mHeightPixels->getValue(); +	fill_me_in[LLMediaEntry::HEIGHT_PIXELS_KEY] = (LLSD::Integer)mHeightPixels->getValue();  	// Don't fill in the home URL if it is the special "Multiple Media" string!  	if (LLTrans::getString("Multiple Media") != mHomeURL->getValue()) -		fill_me_in[LLMediaEntry::HOME_URL_KEY] = mHomeURL->getValue(); -	fill_me_in[LLMediaEntry::FIRST_CLICK_INTERACT_KEY] = mFirstClick->getValue(); -	fill_me_in[LLMediaEntry::WIDTH_PIXELS_KEY] = mWidthPixels->getValue(); +		fill_me_in[LLMediaEntry::HOME_URL_KEY] = (LLSD::String)mHomeURL->getValue(); +	fill_me_in[LLMediaEntry::FIRST_CLICK_INTERACT_KEY] = (LLSD::Boolean)mFirstClick->getValue(); +	fill_me_in[LLMediaEntry::WIDTH_PIXELS_KEY] = (LLSD::Integer)mWidthPixels->getValue();  }  //////////////////////////////////////////////////////////////////////////////// @@ -461,7 +481,7 @@ bool LLPanelMediaSettingsGeneral::navigateHomeSelectedFace(bool only_if_current_  	selected_objects->getSelectedTEValue( &functor_navigate_media, all_face_media_navigated );  	// Note: we don't update the 'current URL' field until the media data itself changes -	 +  	return all_face_media_navigated;  } @@ -477,7 +497,6 @@ const std::string LLPanelMediaSettingsGeneral::getHomeUrl()  void LLPanelMediaSettingsGeneral::updateCurrentUrl()  {  	// Get the current URL from the selection -	  	const LLMediaEntry default_media_data;  	std::string value_str = default_media_data.getCurrentURL();  	struct functor_getter_current_url : public LLSelectedTEGetFunctor< std::string > diff --git a/indra/newview/llpanelmediasettingsgeneral.h b/indra/newview/llpanelmediasettingsgeneral.h index f8b8f0d224..7782b25d63 100644 --- a/indra/newview/llpanelmediasettingsgeneral.h +++ b/indra/newview/llpanelmediasettingsgeneral.h @@ -42,6 +42,7 @@ class LLLineEditor;  class LLSpinCtrl;  class LLTextureCtrl;  class LLMediaCtrl; +class LLTextBox;  class LLFloaterMediaSettings;  class LLPanelMediaSettingsGeneral : public LLPanel @@ -87,6 +88,8 @@ private:  	static bool isMultiple(); +	void checkHomeUrlPassesWhitelist(); +  	LLComboBox* mControls;  	LLCheckBoxCtrl* mAutoLoop;  	LLCheckBoxCtrl* mFirstClick; @@ -98,6 +101,7 @@ private:  	LLLineEditor* mHomeURL;  	LLLineEditor* mCurrentURL;  	LLMediaCtrl* mPreviewMedia; +	LLTextBox* mFailWhiteListText;  };  #endif  // LL_LLPANELMEDIAMEDIASETTINGSGENERAL_H diff --git a/indra/newview/llpanelmediasettingssecurity.cpp b/indra/newview/llpanelmediasettingssecurity.cpp index 94e137b0f4..d87c7608d5 100644 --- a/indra/newview/llpanelmediasettingssecurity.cpp +++ b/indra/newview/llpanelmediasettingssecurity.cpp @@ -46,8 +46,10 @@  #include "llsdutil.h"  #include "llselectmgr.h"  #include "llmediaentry.h" +#include "lltextbox.h"  #include "llfloaterwhitelistentry.h"  #include "llfloatermediasettings.h" +  ////////////////////////////////////////////////////////////////////////////////  //  LLPanelMediaSettingsSecurity::LLPanelMediaSettingsSecurity() : @@ -55,9 +57,9 @@ LLPanelMediaSettingsSecurity::LLPanelMediaSettingsSecurity() :  {  	mCommitCallbackRegistrar.add("Media.whitelistAdd",		boost::bind(&LLPanelMediaSettingsSecurity::onBtnAdd, this));  	mCommitCallbackRegistrar.add("Media.whitelistDelete",	boost::bind(&LLPanelMediaSettingsSecurity::onBtnDel, this));	 +  	// build dialog from XML  	LLUICtrlFactory::getInstance()->buildPanel(this, "panel_media_settings_security.xml"); -  }  //////////////////////////////////////////////////////////////////////////////// @@ -66,6 +68,7 @@ BOOL LLPanelMediaSettingsSecurity::postBuild()  {  	mEnableWhiteList = getChild< LLCheckBoxCtrl >( LLMediaEntry::WHITELIST_ENABLE_KEY );  	mWhiteListList = getChild< LLScrollListCtrl >( LLMediaEntry::WHITELIST_KEY ); +	mHomeUrlFailsWhiteListText = getChild<LLTextBox>( "home_url_fails_whitelist" );  	setDefaultBtn("whitelist_add"); @@ -84,30 +87,6 @@ void LLPanelMediaSettingsSecurity::draw()  {  	// housekeeping  	LLPanel::draw(); - -	// if list is empty, disable DEL button and checkbox to enable use of list -	if ( mWhiteListList->isEmpty() ) -	{ -		childSetEnabled( "whitelist_del", false ); -		childSetEnabled( LLMediaEntry::WHITELIST_KEY, false ); -		childSetEnabled( LLMediaEntry::WHITELIST_ENABLE_KEY, false ); -	} -	else -	{ -		childSetEnabled( "whitelist_del", true ); -		childSetEnabled( LLMediaEntry::WHITELIST_KEY, true ); -		childSetEnabled( LLMediaEntry::WHITELIST_ENABLE_KEY, true ); -	}; - -	// if nothing is selected, disable DEL button -	if ( mWhiteListList->getSelectedValue().asString().empty() ) -	{ -		childSetEnabled( "whitelist_del", false ); -	} -	else -	{ -		childSetEnabled( "whitelist_del", true ); -	};  }  //////////////////////////////////////////////////////////////////////////////// @@ -179,9 +158,8 @@ void LLPanelMediaSettingsSecurity::initValues( void* userdata, const LLSD& media  				LLSD::array_iterator iter = url_list.beginArray();  				while( iter != url_list.endArray() )  				{ -					// TODO: is iter guaranteed to be valid here? -					std::string url = *iter; -					list->addSimpleElement( url ); +					std::string entry = *iter; +					self->addWhiteListEntry( entry );  					++iter;  				};  			}; @@ -213,18 +191,21 @@ void LLPanelMediaSettingsSecurity::preApply()  //  void LLPanelMediaSettingsSecurity::getValues( LLSD &fill_me_in )  { -    fill_me_in[LLMediaEntry::WHITELIST_ENABLE_KEY] = mEnableWhiteList->getValue(); +    fill_me_in[LLMediaEntry::WHITELIST_ENABLE_KEY] = (LLSD::Boolean)mEnableWhiteList->getValue();      // iterate over white list and extract items -    std::vector< LLScrollListItem* > white_list_items = mWhiteListList->getAllData(); -    std::vector< LLScrollListItem* >::iterator iter = white_list_items.begin(); +    std::vector< LLScrollListItem* > whitelist_items = mWhiteListList->getAllData(); +    std::vector< LLScrollListItem* >::iterator iter = whitelist_items.begin(); +  	// *NOTE: need actually set the key to be an emptyArray(), or the merge  	// we do with this LLSD will think there's nothing to change.      fill_me_in[LLMediaEntry::WHITELIST_KEY] = LLSD::emptyArray(); -    while( iter != white_list_items.end() ) +    while( iter != whitelist_items.end() )      { -        std::string white_list_url = (*iter)->getValue().asString(); -        fill_me_in[ LLMediaEntry::WHITELIST_KEY ].append( white_list_url ); +		LLScrollListCell* cell = (*iter)->getColumn( ENTRY_COLUMN ); +		std::string whitelist_url = cell->getValue().asString(); + +        fill_me_in[ LLMediaEntry::WHITELIST_KEY ].append( whitelist_url );          ++iter;      };  } @@ -260,11 +241,8 @@ const std::string LLPanelMediaSettingsSecurity::makeValidUrl( const std::string&  ///////////////////////////////////////////////////////////////////////////////  // wrapper for testing a URL against the whitelist. We grab entries from -// white list list box widget and build a list to test against. Can also -// optionally pass the URL that you are trying to add to the widget since -// it won't be added until this call returns. -bool LLPanelMediaSettingsSecurity::passesWhiteList( const std::string& added_url, -													const std::string& test_url ) +// white list list box widget and build a list to test against.  +bool LLPanelMediaSettingsSecurity::urlPassesWhiteList( const std::string& test_url )  {  	// the checkUrlAgainstWhitelist(..) function works on a vector  	// of strings for the white list entries - in this panel, the white list @@ -273,20 +251,18 @@ bool LLPanelMediaSettingsSecurity::passesWhiteList( const std::string& added_url  	whitelist_strings.clear();	// may not be required - I forget what the spec says.  	// step through whitelist widget entries and grab them as strings -    std::vector< LLScrollListItem* > white_list_items = mWhiteListList->getAllData(); -    std::vector< LLScrollListItem* >::iterator iter = white_list_items.begin();  -	while( iter != white_list_items.end()  ) +    std::vector< LLScrollListItem* > whitelist_items = mWhiteListList->getAllData(); +    std::vector< LLScrollListItem* >::iterator iter = whitelist_items.begin();  +	while( iter != whitelist_items.end()  )      { -        const std::string whitelist_url = (*iter)->getValue().asString(); +		LLScrollListCell* cell = (*iter)->getColumn( ENTRY_COLUMN ); +		std::string whitelist_url = cell->getValue().asString(); +  		whitelist_strings.push_back( whitelist_url );  		++iter;      }; -	// add in the URL that might be added to the whitelist so we can test that too -	if ( added_url.length() ) -		whitelist_strings.push_back( added_url ); -  	// possible the URL is just a fragment so we validize it  	const std::string valid_url = makeValidUrl( test_url ); @@ -296,32 +272,68 @@ bool LLPanelMediaSettingsSecurity::passesWhiteList( const std::string& added_url  ///////////////////////////////////////////////////////////////////////////////  // -void LLPanelMediaSettingsSecurity::addWhiteListItem(const std::string& url) +void LLPanelMediaSettingsSecurity::updateWhitelistEnableStatus()  { -	// grab home URL from the general panel (via the parent floater) +	// get the value for home URL and make it a valid URL +	const std::string valid_url = makeValidUrl( mParent->getHomeUrl() ); + +	// now check to see if the home url passes the whitelist in its entirity  +	if ( urlPassesWhiteList( valid_url ) ) +	{ +		mEnableWhiteList->setEnabled( true ); +		mHomeUrlFailsWhiteListText->setVisible( false ); +	} +	else +	{ +		mEnableWhiteList->set( false ); +		mEnableWhiteList->setEnabled( false ); +		mHomeUrlFailsWhiteListText->setVisible( true ); +	}; +} + +/////////////////////////////////////////////////////////////////////////////// +// Add an entry to the whitelist scrollbox and indicate if the current +// home URL passes this entry or not using an icon +void LLPanelMediaSettingsSecurity::addWhiteListEntry( const std::string& entry ) +{ +	// grab the home url  	std::string home_url( "" );  	if ( mParent )  		home_url = mParent->getHomeUrl(); -	// if the home URL is blank (user hasn't entered it yet) then -	// don't bother to check if it passes the white list -	if ( home_url.empty() ) -	{ -		mWhiteListList->addSimpleElement( url ); -		return; -	}; +	// try to make a valid URL based on what the user entered - missing scheme for example +	const std::string valid_url = makeValidUrl( home_url ); + +	// check the home url against this single whitelist entry +	std::vector< std::string > whitelist_entries; +	whitelist_entries.push_back( entry ); +	bool home_url_passes_entry = LLMediaEntry::checkUrlAgainstWhitelist( valid_url, whitelist_entries ); -	// if the URL passes the white list, add it -	if ( passesWhiteList( url, home_url ) ) +	// build an icon cell based on whether or not the home url pases it or not +	LLSD row; +	if ( home_url_passes_entry || home_url.empty() )  	{ -		mWhiteListList->addSimpleElement( url ); +		row[ "columns" ][ ICON_COLUMN ][ "type" ] = "icon"; +		row[ "columns" ][ ICON_COLUMN ][ "value" ] = ""; +		row[ "columns" ][ ICON_COLUMN ][ "width" ] = 20;  	}  	else -	// display a message indicating you can't do that  	{ -		LLNotificationsUtil::add("WhiteListInvalidatesHomeUrl"); +		row[ "columns" ][ ICON_COLUMN ][ "type" ] = "icon"; +		row[ "columns" ][ ICON_COLUMN ][ "value" ] = "parcel_color_EXP"; +		row[ "columns" ][ ICON_COLUMN ][ "width" ] = 20;  	}; -} + +	// always add in the entry itself +	row[ "columns" ][ ENTRY_COLUMN ][ "type" ] = "text"; +	row[ "columns" ][ ENTRY_COLUMN ][ "value" ] = entry; + +	// add to the white list scroll box +	mWhiteListList->addElement( row ); + +	// update whitelist enable checkbox based on whether the home url passes the whitelist +	updateWhitelistEnableStatus(); +};  ///////////////////////////////////////////////////////////////////////////////  // static @@ -337,6 +349,9 @@ void LLPanelMediaSettingsSecurity::onBtnDel( void* userdata )  	LLPanelMediaSettingsSecurity *self =(LLPanelMediaSettingsSecurity *)userdata;  	self->mWhiteListList->deleteSelectedItems(); + +	// contents of whitelist changed so recheck it against home url +	self->updateWhitelistEnableStatus();  }  //////////////////////////////////////////////////////////////////////////////// @@ -345,4 +360,3 @@ void LLPanelMediaSettingsSecurity::setParent( LLFloaterMediaSettings* parent )  {  	mParent = parent;  }; - diff --git a/indra/newview/llpanelmediasettingssecurity.h b/indra/newview/llpanelmediasettingssecurity.h index 638664e59d..937bfb1bf9 100644 --- a/indra/newview/llpanelmediasettingssecurity.h +++ b/indra/newview/llpanelmediasettingssecurity.h @@ -37,6 +37,7 @@  class LLCheckBoxCtrl;  class LLScrollListCtrl; +class LLTextBox;  class LLFloaterMediaSettings;  class LLPanelMediaSettingsSecurity : public LLPanel @@ -58,18 +59,27 @@ public:  	static void initValues( void* userdata, const LLSD& media_settings,bool editable );  	static void clearValues( void* userdata, bool editable); -	void addWhiteListItem(const std::string& url); +	void addWhiteListEntry( const std::string& url );  	void setParent( LLFloaterMediaSettings* parent ); +	bool urlPassesWhiteList( const std::string& test_url );  	const std::string makeValidUrl( const std::string& src_url ); -	bool passesWhiteList( const std::string& added_url, const std::string& test_url );  protected:  	LLFloaterMediaSettings* mParent;  private: +	enum ColumnIndex  +	{ +		ICON_COLUMN = 0, +		ENTRY_COLUMN = 1, +	}; +  	LLCheckBoxCtrl* mEnableWhiteList;  	LLScrollListCtrl* mWhiteListList; -	 +	LLTextBox* mHomeUrlFailsWhiteListText; + +	void updateWhitelistEnableStatus(); +  	static void onBtnAdd(void*);  	static void onBtnDel(void*);  }; diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index dc22a243eb..4915720036 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -42,6 +42,7 @@  #include "llfloaterbuycurrency.h"  #include "llfloaterchat.h"  #include "llfloaterlagmeter.h" +#include "llfloatervolumepulldown.h"  #include "llfloaterregioninfo.h"  #include "llfloaterscriptdebug.h"  #include "llhudicon.h" @@ -159,6 +160,7 @@ LLStatusBar::LLStatusBar(const LLRect& rect)  	mBtnVolume = getChild<LLButton>( "volume_btn" );  	mBtnVolume->setClickedCallback( onClickVolume, this ); +	mBtnVolume->setMouseEnterCallback(boost::bind(&LLStatusBar::onMouseEnterVolume, this));  	gSavedSettings.getControl("MuteAudio")->getSignal()->connect(boost::bind(&LLStatusBar::onVolumeChanged, this, _2)); @@ -203,7 +205,6 @@ LLStatusBar::LLStatusBar(const LLRect& rect)  	addChild(mSGPacketLoss);  	childSetActionTextbox("stat_btn", onClickStatGraph); -  }  LLStatusBar::~LLStatusBar() @@ -244,7 +245,6 @@ BOOL LLStatusBar::handleRightMouseDown(S32 x, S32 y, MASK mask)  BOOL LLStatusBar::postBuild()  { -  	gMenuBarView->setRightMouseDownCallback(boost::bind(&show_navbar_context_menu, _1, _2, _3));  	return TRUE; @@ -506,6 +506,13 @@ static void onClickScriptDebug(void*)  	LLFloaterScriptDebug::show(LLUUID::null);  } +//static +void LLStatusBar::onMouseEnterVolume(LLUICtrl* ctrl) +{ +	// show the master volume pull-down +	LLFloaterReg::showInstance("volume_pulldown"); +} +  static void onClickVolume(void* data)  {  	// toggle the master mute setting diff --git a/indra/newview/llstatusbar.h b/indra/newview/llstatusbar.h index bdaacce981..f77cc1acb8 100644 --- a/indra/newview/llstatusbar.h +++ b/indra/newview/llstatusbar.h @@ -47,6 +47,7 @@ class LLUICtrl;  class LLUUID;  class LLFrameTimer;  class LLStatGraph; +class LLPanelVolumePulldown;  class LLStatusBar  :	public LLPanel @@ -92,8 +93,8 @@ private:  	void onVolumeChanged(const LLSD& newvalue); +	static void onMouseEnterVolume(LLUICtrl* ctrl);  	static void onClickStatGraph(void* data); -	  private:  	LLTextBox	*mTextHealth; diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index 227f6c4971..1a8edb1f6a 100644 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -106,6 +106,7 @@  #include "llfloateruipreview.h"  #include "llfloaterurldisplay.h"  #include "llfloatervoicedevicesettings.h" +#include "llfloatervolumepulldown.h"  #include "llfloaterwater.h"  #include "llfloaterwhitelistentry.h"  #include "llfloaterwindlight.h" @@ -248,6 +249,7 @@ void LLViewerFloaterReg::registerFloaters()  	LLFloaterReg::add("upload_image", "floater_image_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterImagePreview>, "upload");  	LLFloaterReg::add("upload_sound", "floater_sound_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSoundPreview>, "upload"); +	LLFloaterReg::add("volume_pulldown", "floater_volume_pulldown.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterVolumePulldown>);  	LLFloaterReg::add("voice_call", "floater_call.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterCall>);  	LLFloaterReg::add("voice_controls", "floater_voice_controls.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLCallFloater>); diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 49276172d5..aa1a963b39 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -586,20 +586,7 @@ To place the media on only one face, choose Select Texture and click on the desi        notext="Cancel"        yestext="OK"/>    </notification> - -  <notification -   icon="alertmodal.tga" -   name="WhiteListInvalidatesHomeUrl" -   type="alertmodal"> -Adding this entry to the whitelist will invalidate the home URL you -specified for this instance of media. You are not allowed to do this -so the entry cannot be added to the whitelist. -    <usetemplate -     name="okbutton" -     yestext="Ok"/> -  </notification> - - +      <notification     icon="alertmodal.tga"     name="MustBeInParcel" diff --git a/indra/newview/skins/default/xui/en/panel_media_settings_general.xml b/indra/newview/skins/default/xui/en/panel_media_settings_general.xml index e00f654750..b82a435b41 100644 --- a/indra/newview/skins/default/xui/en/panel_media_settings_general.xml +++ b/indra/newview/skins/default/xui/en/panel_media_settings_general.xml @@ -10,17 +10,27 @@   name="Media Settings General"    help_topic = "media_settings_general"   width="365"> -	 -  <text  -   bottom_delta="-17"  -   follows="top|left"  -   height="15"  -   left="10"  + +  <text +   bottom_delta="-25" +   follows="top|left" +   height="15" +   left="10"     name="home_label">      Home URL:    </text> +  <text +   visible="false"  +   bottom_delta="0" +   follows="top|left" +   height="15" +   left_delta="64" +   text_color="red" +   name="home_fails_whitelist_label"> +    (This URL does not pass the specified whitelist) +  </text>    <line_editor  -   bottom_delta="-21"  +   bottom_delta="-24"      enabled="true"      follows="left|top"      font="SansSerif" @@ -221,12 +231,23 @@     width="50" />    <text bottom_delta="0" follows="top|left" height="15" left_delta="60" name="X_label"> -    X +	X    </text> -  <spinner bottom_delta="0" -	     decimal_digits="0" enabled="true" follows="left|top" height="16" -	     increment="1" initial_val="256" label="" label_width="0" -	     left_delta="20" max_val="2048" min_val="0" mouse_opaque="true" -	     name="height_pixels" width="50" /> +  <spinner  +	  bottom_delta="0" +	  decimal_digits="0" +	  enabled="true" +	  follows="left|top"  +	  height="16" +	  increment="1" +	  initial_val="256"  +	  label="" +	  label_width="0" +	  left_delta="20"  +	  max_val="2048"  +	  min_val="0" +	  mouse_opaque="true" +	  name="height_pixels" +	  width="50" />  </panel> diff --git a/indra/newview/skins/default/xui/en/panel_media_settings_security.xml b/indra/newview/skins/default/xui/en/panel_media_settings_security.xml index a26f74844e..7d9350b45f 100644 --- a/indra/newview/skins/default/xui/en/panel_media_settings_security.xml +++ b/indra/newview/skins/default/xui/en/panel_media_settings_security.xml @@ -30,8 +30,28 @@     name="whitelist"      width="315"      enabled="true" /> +  <icon +   bottom_delta="-23" +   right="-35" +   width="16" +   height="16" +   image_name="parcel_color_EXP" +   mouse_opaque="true" +   follows="top|left" +   name="parcel_color_EXP" +   /> +  <text +   visible="true" +   follows="top|left" +   height="15" +   left="30" +   bottom_delta="0" +   text_color="0.4 0.4 0.4 1.0"  +   name="home_url_fails_some_items_in_whitelist"> +    Entries that the home URL fails against are marked: +  </text>    <button  -   bottom_delta="-30"  +   bottom_delta="-36"      follows="top|left"      height="20"      label="Add" @@ -54,4 +74,17 @@       <button.commit_callback  	     function="Media.whitelistDelete"/>    </button> +  <text +   visible="true" +   bottom_delta="-75" +   follows="top|left" +   height="40" +   left="30" +   text_color="0.6 0.0 0.0 1.0" +   name="home_url_fails_whitelist"> +Warning: the home URL specified in the General tab  +fails to pass this whitelist. It has been disabled  +until a valid entry has been added. +  </text> +  </panel> diff --git a/indra/newview/skins/default/xui/en/panel_status_bar.xml b/indra/newview/skins/default/xui/en/panel_status_bar.xml index 65bc48265d..9c66653e3c 100644 --- a/indra/newview/skins/default/xui/en/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml @@ -81,6 +81,17 @@       name="volume_btn"       tool_tip="Global Volume Control"       width="16" /> +    <panel +     class="panel_volume_pulldown" +     follows="all" +     height="533" +     layout="topleft" +     left="0" +     name="volume_pulldown" +     top="5" +     visible="false" +     width="313" /> +      <text       enabled="true"       follows="right|bottom"  | 
