Merge with tip
commit
889f6cc3b3
|
|
@ -2101,7 +2101,6 @@
|
|||
<string>-G</string>
|
||||
<string>"Visual Studio 10"</string>
|
||||
<string>-DUNATTENDED:BOOL=ON</string>
|
||||
<string>-DUSE_PRECOMPILED_HEADERS=ON</string>
|
||||
<string>-DINSTALL_PROPRIETARY=TRUE</string>
|
||||
<string>-DUSE_KDU=FALSE</string>
|
||||
<string>-DFMOD=FALSE</string>
|
||||
|
|
@ -2179,7 +2178,6 @@
|
|||
<string>-G</string>
|
||||
<string>"Visual Studio 10"</string>
|
||||
<string>-DUNATTENDED:BOOL=ON</string>
|
||||
<string>-DUSE_PRECOMPILED_HEADERS=ON</string>
|
||||
<string>-DINSTALL_PROPRIETARY=TRUE</string>
|
||||
<string>-DUSE_KDU=FALSE</string>
|
||||
<string>-DFMOD=FALSE</string>
|
||||
|
|
@ -2256,7 +2254,6 @@
|
|||
<string>-G</string>
|
||||
<string>"Visual Studio 10"</string>
|
||||
<string>-DUNATTENDED:BOOL=ON</string>
|
||||
<string>-DUSE_PRECOMPILED_HEADERS=ON</string>
|
||||
<string>-DINSTALL_PROPRIETARY=TRUE</string>
|
||||
<string>-DUSE_KDU=FALSE</string>
|
||||
<string>-DFMOD=FALSE</string>
|
||||
|
|
|
|||
1
build.sh
1
build.sh
|
|
@ -58,7 +58,6 @@ pre_build()
|
|||
"$AUTOBUILD" configure -c $variant -- \
|
||||
-DPACKAGE:BOOL=ON \
|
||||
-DRELEASE_CRASH_REPORTING:BOOL=ON \
|
||||
-DUSE_PRECOMPILED_HEADERS=FALSE \
|
||||
-DVIEWER_CHANNEL:STRING="\"$viewer_channel\"" \
|
||||
-DVIEWER_LOGIN_CHANNEL:STRING="\"$viewer_login_channel\"" \
|
||||
-DGRID:STRING="\"$viewer_grid\"" \
|
||||
|
|
|
|||
|
|
@ -35,8 +35,10 @@ endif (NOT CMAKE_BUILD_TYPE)
|
|||
|
||||
# For the library installation process;
|
||||
# see cmake/Prebuild.cmake for the counterpart code.
|
||||
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/temp)
|
||||
file(WRITE ${CMAKE_BINARY_DIR}/temp/sentinel_installed "0")
|
||||
if ("${CMAKE_SOURCE_DIR}/../autobuild.xml" IS_NEWER_THAN "${CMAKE_BINARY_DIR}/temp/sentinel_installed")
|
||||
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/temp)
|
||||
file(WRITE ${CMAKE_BINARY_DIR}/temp/sentinel_installed "0")
|
||||
endif ("${CMAKE_SOURCE_DIR}/../autobuild.xml" IS_NEWER_THAN "${CMAKE_BINARY_DIR}/temp/sentinel_installed")
|
||||
add_subdirectory(cmake)
|
||||
|
||||
add_subdirectory(${LIBS_OPEN_PREFIX}llaudio)
|
||||
|
|
|
|||
|
|
@ -36,6 +36,13 @@ if (WINDOWS)
|
|||
# Don't build DLLs.
|
||||
set(BUILD_SHARED_LIBS OFF)
|
||||
|
||||
# for "backwards compatibility", cmake sneaks in the Zm1000 option which royally
|
||||
# screws incredibuild. this hack disables it.
|
||||
# for details see: http://connect.microsoft.com/VisualStudio/feedback/details/368107/clxx-fatal-error-c1027-inconsistent-values-for-ym-between-creation-and-use-of-precompiled-headers
|
||||
# http://www.ogre3d.org/forums/viewtopic.php?f=2&t=60015
|
||||
# http://www.cmake.org/pipermail/cmake/2009-September/032143.html
|
||||
string(REPLACE "/Zm1000" " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
|
||||
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /Od /Zi /MDd /MP -D_SCL_SECURE_NO_WARNINGS=1"
|
||||
CACHE STRING "C++ compiler debug options" FORCE)
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ INCLUDE(GoogleMock)
|
|||
IF(${name}_test_additional_INCLUDE_DIRS MATCHES NOTFOUND)
|
||||
SET(${name}_test_additional_INCLUDE_DIRS "")
|
||||
ENDIF(${name}_test_additional_INCLUDE_DIRS MATCHES NOTFOUND)
|
||||
INCLUDE_DIRECTORIES(${alltest_INCLUDE_DIRS} ${name}_test_additional_INCLUDE_DIRS )
|
||||
INCLUDE_DIRECTORIES(${alltest_INCLUDE_DIRS} ${${name}_test_additional_INCLUDE_DIRS} )
|
||||
IF(LL_TEST_VERBOSE)
|
||||
MESSAGE("LL_ADD_PROJECT_UNIT_TESTS ${name}_test_additional_INCLUDE_DIRS ${${name}_test_additional_INCLUDE_DIRS}")
|
||||
ENDIF(LL_TEST_VERBOSE)
|
||||
|
|
|
|||
|
|
@ -1,35 +1,49 @@
|
|||
# -*- cmake -*-
|
||||
|
||||
include(FindAutobuild)
|
||||
if(INSTALL_PROPRIETARY)
|
||||
include(FindSCP)
|
||||
endif(INSTALL_PROPRIETARY)
|
||||
|
||||
# The use_prebuilt_binary macro handles automated installation of package
|
||||
# dependencies using autobuild. The goal is that 'autobuild install' should
|
||||
# only be run when we know we need to install a new package. This should be
|
||||
# the case in a clean checkout, or if autobuild.xml has been updated since the
|
||||
# last run (encapsulated by the file ${CMAKE_BINARY_DIR}/temp/sentinel_installed),
|
||||
# or if a previous attempt to install the package has failed (the exit status
|
||||
# of previous attempts is serialized in the file
|
||||
# ${CMAKE_BINARY_DIR}/temp/${_binary}_installed)
|
||||
macro (use_prebuilt_binary _binary)
|
||||
if (NOT DEFINED STANDALONE_${_binary})
|
||||
set(STANDALONE_${_binary} ${STANDALONE})
|
||||
endif (NOT DEFINED STANDALONE_${_binary})
|
||||
|
||||
if (NOT STANDALONE_${_binary})
|
||||
if(${CMAKE_BINARY_DIR}/temp/sentinel_installed IS_NEWER_THAN ${CMAKE_BINARY_DIR}/temp/${_binary}_installed)
|
||||
if(INSTALL_PROPRIETARY)
|
||||
include(FindSCP)
|
||||
endif(INSTALL_PROPRIETARY)
|
||||
if(DEBUG_PREBUILT)
|
||||
message("cd ${CMAKE_SOURCE_DIR} && ${AUTOBUILD_EXECUTABLE} install
|
||||
--install-dir=${AUTOBUILD_INSTALL_DIR}
|
||||
--skip-license-check
|
||||
${_binary} ")
|
||||
endif(DEBUG_PREBUILT)
|
||||
execute_process(COMMAND "${AUTOBUILD_EXECUTABLE}"
|
||||
install
|
||||
--install-dir=${AUTOBUILD_INSTALL_DIR}
|
||||
--skip-license-check
|
||||
${_binary}
|
||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||
RESULT_VARIABLE ${_binary}_installed
|
||||
)
|
||||
if("${${_binary}_installed}" STREQUAL "" AND EXISTS "${CMAKE_BINARY_DIR}/temp/${_binary}_installed")
|
||||
file(READ ${CMAKE_BINARY_DIR}/temp/${_binary}_installed "${_binary}_installed")
|
||||
if(DEBUG_PREBUILT)
|
||||
message(STATUS "${_binary}_installed: \"${${_binary}_installed}\"")
|
||||
endif(DEBUG_PREBUILT)
|
||||
endif("${${_binary}_installed}" STREQUAL "" AND EXISTS "${CMAKE_BINARY_DIR}/temp/${_binary}_installed")
|
||||
|
||||
if(${CMAKE_BINARY_DIR}/temp/sentinel_installed IS_NEWER_THAN ${CMAKE_BINARY_DIR}/temp/${_binary}_installed OR NOT ${${_binary}_installed} EQUAL 0)
|
||||
if(DEBUG_PREBUILT)
|
||||
message("cd ${CMAKE_SOURCE_DIR} && ${AUTOBUILD_EXECUTABLE} install
|
||||
--install-dir=${AUTOBUILD_INSTALL_DIR}
|
||||
--skip-license-check
|
||||
${_binary} ")
|
||||
endif(DEBUG_PREBUILT)
|
||||
execute_process(COMMAND "${AUTOBUILD_EXECUTABLE}"
|
||||
install
|
||||
--install-dir=${AUTOBUILD_INSTALL_DIR}
|
||||
--skip-license-check
|
||||
${_binary}
|
||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||
RESULT_VARIABLE ${_binary}_installed
|
||||
)
|
||||
file(WRITE ${CMAKE_BINARY_DIR}/temp/${_binary}_installed "${${_binary}_installed}")
|
||||
else(${CMAKE_BINARY_DIR}/temp/sentinel_installed IS_NEWER_THAN ${CMAKE_BINARY_DIR}/temp/${_binary}_installed)
|
||||
set(${_binary}_installed 0)
|
||||
endif(${CMAKE_BINARY_DIR}/temp/sentinel_installed IS_NEWER_THAN ${CMAKE_BINARY_DIR}/temp/${_binary}_installed)
|
||||
endif(${CMAKE_BINARY_DIR}/temp/sentinel_installed IS_NEWER_THAN ${CMAKE_BINARY_DIR}/temp/${_binary}_installed OR NOT ${${_binary}_installed} EQUAL 0)
|
||||
|
||||
if(NOT ${_binary}_installed EQUAL 0)
|
||||
message(FATAL_ERROR
|
||||
"Failed to download or unpack prebuilt '${_binary}'."
|
||||
|
|
|
|||
|
|
@ -151,7 +151,7 @@ For more information, please see JIRA DEV-14943 - Cmake Linux cannot build both
|
|||
endif (LINUX AND SERVER AND VIEWER)
|
||||
|
||||
|
||||
set(USE_PRECOMPILED_HEADERS OFF CACHE BOOL "Enable use of precompiled header directives where supported.")
|
||||
set(USE_PRECOMPILED_HEADERS ON CACHE BOOL "Enable use of precompiled header directives where supported.")
|
||||
|
||||
source_group("CMake Rules" FILES CMakeLists.txt)
|
||||
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
// linden library includes
|
||||
#include "llcontrol.h" // LLControlGroup
|
||||
#include "lldir.h"
|
||||
#include "lldiriterator.h"
|
||||
#include "llerrorcontrol.h"
|
||||
#include "llfloater.h"
|
||||
#include "llfontfreetype.h"
|
||||
|
|
@ -174,7 +175,9 @@ void export_test_floaters()
|
|||
std::string delim = gDirUtilp->getDirDelimiter();
|
||||
std::string xui_dir = get_xui_dir() + "en" + delim;
|
||||
std::string filename;
|
||||
while (gDirUtilp->getNextFileInDir(xui_dir, "floater_test_*.xml", filename))
|
||||
|
||||
LLDirIterator iter(xui_dir, "floater_test_*.xml");
|
||||
while (iter.next(filename))
|
||||
{
|
||||
if (filename.find("_new.xml") != std::string::npos)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
#include "llerrorcontrol.h"
|
||||
#include "llfile.h"
|
||||
#include "lldir.h"
|
||||
#include "lldiriterator.h"
|
||||
#include "llxmlnode.h"
|
||||
#include "lltrans.h"
|
||||
|
||||
|
|
@ -55,6 +56,8 @@ typedef struct _updater_app_state {
|
|||
std::string strings_dirs;
|
||||
std::string strings_file;
|
||||
|
||||
LLDirIterator *image_dir_iter;
|
||||
|
||||
GtkWidget *window;
|
||||
GtkWidget *progress_bar;
|
||||
GtkWidget *image;
|
||||
|
|
@ -115,7 +118,7 @@ bool translate_init(std::string comma_delim_path_list,
|
|||
void updater_app_ui_init(void);
|
||||
void updater_app_quit(UpdaterAppState *app_state);
|
||||
void parse_args_and_init(int argc, char **argv, UpdaterAppState *app_state);
|
||||
std::string next_image_filename(std::string& image_path);
|
||||
std::string next_image_filename(std::string& image_path, LLDirIterator& iter);
|
||||
void display_error(GtkWidget *parent, std::string title, std::string message);
|
||||
BOOL install_package(std::string package_file, std::string destination);
|
||||
BOOL spawn_viewer(UpdaterAppState *app_state);
|
||||
|
|
@ -181,7 +184,7 @@ void updater_app_ui_init(UpdaterAppState *app_state)
|
|||
|
||||
// load the first image
|
||||
app_state->image = gtk_image_new_from_file
|
||||
(next_image_filename(app_state->image_dir).c_str());
|
||||
(next_image_filename(app_state->image_dir, *app_state->image_dir_iter).c_str());
|
||||
gtk_widget_set_size_request(app_state->image, 340, 310);
|
||||
gtk_container_add(GTK_CONTAINER(frame), app_state->image);
|
||||
|
||||
|
|
@ -212,7 +215,7 @@ gboolean rotate_image_cb(gpointer data)
|
|||
llassert(data != NULL);
|
||||
app_state = (UpdaterAppState *) data;
|
||||
|
||||
filename = next_image_filename(app_state->image_dir);
|
||||
filename = next_image_filename(app_state->image_dir, *app_state->image_dir_iter);
|
||||
|
||||
gdk_threads_enter();
|
||||
gtk_image_set_from_file(GTK_IMAGE(app_state->image), filename.c_str());
|
||||
|
|
@ -221,10 +224,10 @@ gboolean rotate_image_cb(gpointer data)
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
std::string next_image_filename(std::string& image_path)
|
||||
std::string next_image_filename(std::string& image_path, LLDirIterator& iter)
|
||||
{
|
||||
std::string image_filename;
|
||||
gDirUtilp->getNextFileInDir(image_path, "/*.jpg", image_filename);
|
||||
iter.next(image_filename);
|
||||
return image_path + "/" + image_filename;
|
||||
}
|
||||
|
||||
|
|
@ -748,6 +751,7 @@ void parse_args_and_init(int argc, char **argv, UpdaterAppState *app_state)
|
|||
else if ((!strcmp(argv[i], "--image-dir")) && (++i < argc))
|
||||
{
|
||||
app_state->image_dir = argv[i];
|
||||
app_state->image_dir_iter = new LLDirIterator(argv[i], "/*.jpg");
|
||||
}
|
||||
else if ((!strcmp(argv[i], "--dest")) && (++i < argc))
|
||||
{
|
||||
|
|
@ -832,6 +836,7 @@ int main(int argc, char **argv)
|
|||
}
|
||||
|
||||
bool success = !app_state->failure;
|
||||
delete app_state->image_dir_iter;
|
||||
delete app_state;
|
||||
return success ? 0 : 1;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,6 +24,10 @@
|
|||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#include "linden_common.h"
|
||||
|
||||
#include "llapp.h"
|
||||
|
||||
#include <cstdlib>
|
||||
|
||||
#ifdef LL_DARWIN
|
||||
|
|
@ -32,9 +36,6 @@
|
|||
#include <sys/sysctl.h>
|
||||
#endif
|
||||
|
||||
#include "linden_common.h"
|
||||
#include "llapp.h"
|
||||
|
||||
#include "llcommon.h"
|
||||
#include "llapr.h"
|
||||
#include "llerrorcontrol.h"
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@
|
|||
#ifndef LL_LLBUTTON_H
|
||||
#define LL_LLBUTTON_H
|
||||
|
||||
#include "lluuid.h"
|
||||
#include "llcontrol.h"
|
||||
#include "lluictrl.h"
|
||||
#include "v4color.h"
|
||||
|
|
@ -53,6 +52,8 @@ S32 round_up(S32 grid, S32 value);
|
|||
|
||||
|
||||
class LLUICtrlFactory;
|
||||
class LLUIImage;
|
||||
class LLUUID;
|
||||
|
||||
//
|
||||
// Classes
|
||||
|
|
|
|||
|
|
@ -27,14 +27,9 @@
|
|||
#define LLFLOATERREG_H
|
||||
|
||||
/// llcommon
|
||||
#include "llboost.h"
|
||||
#include "llrect.h"
|
||||
#include "llstl.h"
|
||||
#include "llsd.h"
|
||||
|
||||
/// llui
|
||||
#include "lluictrl.h"
|
||||
|
||||
#include <boost/function.hpp>
|
||||
|
||||
//*******************************************************
|
||||
|
|
@ -43,6 +38,7 @@
|
|||
//
|
||||
|
||||
class LLFloater;
|
||||
class LLUICtrl;
|
||||
|
||||
typedef boost::function<LLFloater* (const LLSD& key)> LLFloaterBuildFunc;
|
||||
|
||||
|
|
|
|||
|
|
@ -113,6 +113,16 @@ boost::signals2::connection LLFocusableElement::setTopLostCallback(const focus_s
|
|||
|
||||
|
||||
|
||||
typedef std::list<LLHandle<LLView> > view_handle_list_t;
|
||||
typedef std::map<LLHandle<LLView>, LLHandle<LLView> > focus_history_map_t;
|
||||
struct LLFocusMgr::Impl
|
||||
{
|
||||
// caching list of keyboard focus ancestors for calling onFocusReceived and onFocusLost
|
||||
view_handle_list_t mCachedKeyboardFocusList;
|
||||
|
||||
focus_history_map_t mFocusHistory;
|
||||
};
|
||||
|
||||
LLFocusMgr gFocusMgr;
|
||||
|
||||
LLFocusMgr::LLFocusMgr()
|
||||
|
|
@ -123,10 +133,17 @@ LLFocusMgr::LLFocusMgr()
|
|||
mDefaultKeyboardFocus( NULL ),
|
||||
mKeystrokesOnly(FALSE),
|
||||
mTopCtrl( NULL ),
|
||||
mAppHasFocus(TRUE) // Macs don't seem to notify us that we've gotten focus, so default to true
|
||||
mAppHasFocus(TRUE), // Macs don't seem to notify us that we've gotten focus, so default to true
|
||||
mImpl(new LLFocusMgr::Impl)
|
||||
{
|
||||
}
|
||||
|
||||
LLFocusMgr::~LLFocusMgr()
|
||||
{
|
||||
mImpl->mFocusHistory.clear();
|
||||
delete mImpl;
|
||||
mImpl = NULL;
|
||||
}
|
||||
|
||||
void LLFocusMgr::releaseFocusIfNeeded( LLView* view )
|
||||
{
|
||||
|
|
@ -179,7 +196,7 @@ void LLFocusMgr::setKeyboardFocus(LLFocusableElement* new_focus, BOOL lock, BOOL
|
|||
mKeyboardFocus = new_focus;
|
||||
|
||||
// list of the focus and it's ancestors
|
||||
view_handle_list_t old_focus_list = mCachedKeyboardFocusList;
|
||||
view_handle_list_t old_focus_list = mImpl->mCachedKeyboardFocusList;
|
||||
view_handle_list_t new_focus_list;
|
||||
|
||||
// walk up the tree to root and add all views to the new_focus_list
|
||||
|
|
@ -206,7 +223,7 @@ void LLFocusMgr::setKeyboardFocus(LLFocusableElement* new_focus, BOOL lock, BOOL
|
|||
LLView* old_focus_view = old_focus_iter->get();
|
||||
if (old_focus_view)
|
||||
{
|
||||
mCachedKeyboardFocusList.pop_front();
|
||||
mImpl->mCachedKeyboardFocusList.pop_front();
|
||||
old_focus_view->onFocusLost();
|
||||
}
|
||||
}
|
||||
|
|
@ -219,7 +236,7 @@ void LLFocusMgr::setKeyboardFocus(LLFocusableElement* new_focus, BOOL lock, BOOL
|
|||
LLView* new_focus_view = new_focus_riter->get();
|
||||
if (new_focus_view)
|
||||
{
|
||||
mCachedKeyboardFocusList.push_front(new_focus_view->getHandle());
|
||||
mImpl->mCachedKeyboardFocusList.push_front(new_focus_view->getHandle());
|
||||
new_focus_view->onFocusReceived();
|
||||
}
|
||||
}
|
||||
|
|
@ -254,7 +271,7 @@ void LLFocusMgr::setKeyboardFocus(LLFocusableElement* new_focus, BOOL lock, BOOL
|
|||
if (focus_subtree)
|
||||
{
|
||||
LLView* focused_view = dynamic_cast<LLView*>(mKeyboardFocus);
|
||||
mFocusHistory[focus_subtree->getHandle()] = focused_view ? focused_view->getHandle() : LLHandle<LLView>();
|
||||
mImpl->mFocusHistory[focus_subtree->getHandle()] = focused_view ? focused_view->getHandle() : LLHandle<LLView>();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -456,8 +473,8 @@ LLUICtrl* LLFocusMgr::getLastFocusForGroup(LLView* subtree_root) const
|
|||
{
|
||||
if (subtree_root)
|
||||
{
|
||||
focus_history_map_t::const_iterator found_it = mFocusHistory.find(subtree_root->getHandle());
|
||||
if (found_it != mFocusHistory.end())
|
||||
focus_history_map_t::const_iterator found_it = mImpl->mFocusHistory.find(subtree_root->getHandle());
|
||||
if (found_it != mImpl->mFocusHistory.end())
|
||||
{
|
||||
// found last focus for this subtree
|
||||
return static_cast<LLUICtrl*>(found_it->second.get());
|
||||
|
|
@ -470,6 +487,6 @@ void LLFocusMgr::clearLastFocusForGroup(LLView* subtree_root)
|
|||
{
|
||||
if (subtree_root)
|
||||
{
|
||||
mFocusHistory.erase(subtree_root->getHandle());
|
||||
mImpl->mFocusHistory.erase(subtree_root->getHandle());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ class LLFocusMgr
|
|||
{
|
||||
public:
|
||||
LLFocusMgr();
|
||||
~LLFocusMgr() { mFocusHistory.clear(); }
|
||||
~LLFocusMgr();
|
||||
|
||||
// Mouse Captor
|
||||
void setMouseCapture(LLMouseHandler* new_captor); // new_captor = NULL to release the mouse.
|
||||
|
|
@ -120,6 +120,8 @@ public:
|
|||
|
||||
bool keyboardFocusHasAccelerators() const;
|
||||
|
||||
struct Impl;
|
||||
|
||||
private:
|
||||
LLUICtrl* mLockedView;
|
||||
|
||||
|
|
@ -132,10 +134,6 @@ private:
|
|||
LLFocusableElement* mDefaultKeyboardFocus;
|
||||
BOOL mKeystrokesOnly;
|
||||
|
||||
// caching list of keyboard focus ancestors for calling onFocusReceived and onFocusLost
|
||||
typedef std::list<LLHandle<LLView> > view_handle_list_t;
|
||||
view_handle_list_t mCachedKeyboardFocusList;
|
||||
|
||||
// Top View
|
||||
LLUICtrl* mTopCtrl;
|
||||
|
||||
|
|
@ -143,8 +141,7 @@ private:
|
|||
|
||||
BOOL mAppHasFocus;
|
||||
|
||||
typedef std::map<LLHandle<LLView>, LLHandle<LLView> > focus_history_map_t;
|
||||
focus_history_map_t mFocusHistory;
|
||||
Impl * mImpl;
|
||||
};
|
||||
|
||||
extern LLFocusMgr gFocusMgr;
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
#include "lluuid.h"
|
||||
#include "v4color.h"
|
||||
#include "lluictrl.h"
|
||||
#include "lluiimage.h"
|
||||
#include "stdenums.h"
|
||||
|
||||
class LLTextBox;
|
||||
|
|
|
|||
|
|
@ -41,6 +41,7 @@
|
|||
|
||||
#include "lleditmenuhandler.h"
|
||||
#include "lluictrl.h"
|
||||
#include "lluiimage.h"
|
||||
#include "lluistring.h"
|
||||
#include "llviewborder.h"
|
||||
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
#define LL_LLLOADINGINDICATOR_H
|
||||
|
||||
#include "lluictrl.h"
|
||||
#include "lluiimage.h"
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
// class LLLoadingIndicator
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@
|
|||
#include "llkeyboard.h" // for the MASK constants
|
||||
#include "llcontrol.h"
|
||||
#include "lluictrlfactory.h"
|
||||
#include "lluiimage.h"
|
||||
|
||||
#include <sstream>
|
||||
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
#include "llcallbackmap.h"
|
||||
#include "lluictrl.h"
|
||||
#include "llviewborder.h"
|
||||
#include "lluiimage.h"
|
||||
#include "lluistring.h"
|
||||
#include "v4color.h"
|
||||
#include <list>
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@
|
|||
|
||||
#include "llfocusmgr.h"
|
||||
#include "lluictrlfactory.h"
|
||||
#include "lluiimage.h"
|
||||
|
||||
static LLDefaultChildRegistry::Register<LLProgressBar> r("progress_bar");
|
||||
|
||||
|
|
|
|||
|
|
@ -27,8 +27,9 @@
|
|||
#ifndef LL_LLPROGRESSBAR_H
|
||||
#define LL_LLPROGRESSBAR_H
|
||||
|
||||
#include "lluictrl.h"
|
||||
#include "llframetimer.h"
|
||||
#include "lluictrl.h"
|
||||
#include "lluiimage.h"
|
||||
|
||||
class LLProgressBar
|
||||
: public LLUICtrl
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@
|
|||
|
||||
#include "llf32uictrl.h"
|
||||
#include "v4color.h"
|
||||
#include "lluiimage.h"
|
||||
|
||||
class LLSlider : public LLF32UICtrl
|
||||
{
|
||||
|
|
|
|||
|
|
@ -88,7 +88,7 @@ void LLStyle::setVisible(BOOL is_visible)
|
|||
mVisible = is_visible;
|
||||
}
|
||||
|
||||
LLUIImagePtr LLStyle::getImage() const
|
||||
LLPointer<LLUIImage> LLStyle::getImage() const
|
||||
{
|
||||
return mImagep;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
#include "v4color.h"
|
||||
#include "llui.h"
|
||||
#include "llinitparam.h"
|
||||
#include "lluiimage.h"
|
||||
|
||||
class LLFontGL;
|
||||
|
||||
|
|
@ -72,7 +73,7 @@ public:
|
|||
void setLinkHREF(const std::string& href);
|
||||
BOOL isLink() const;
|
||||
|
||||
LLUIImagePtr getImage() const;
|
||||
LLPointer<LLUIImage> getImage() const;
|
||||
void setImage(const LLUUID& src);
|
||||
void setImage(const std::string& name);
|
||||
|
||||
|
|
@ -108,7 +109,7 @@ private:
|
|||
const LLFontGL* mFont;
|
||||
std::string mLink;
|
||||
bool mIsLink;
|
||||
LLUIImagePtr mImagep;
|
||||
LLPointer<LLUIImage> mImagep;
|
||||
};
|
||||
|
||||
typedef LLPointer<LLStyle> LLStyleSP;
|
||||
|
|
|
|||
|
|
@ -26,10 +26,11 @@
|
|||
|
||||
#include "linden_common.h"
|
||||
|
||||
#include "lltransutil.h"
|
||||
|
||||
#include "lltrans.h"
|
||||
#include "lluictrlfactory.h"
|
||||
|
||||
#include "lltransutil.h"
|
||||
#include "llxmlnode.h"
|
||||
|
||||
|
||||
bool LLTransUtil::parseStrings(const std::string& xml_filename, const std::set<std::string>& default_args)
|
||||
|
|
|
|||
|
|
@ -33,15 +33,12 @@
|
|||
#include "llrect.h"
|
||||
#include "llcontrol.h"
|
||||
#include "llcoord.h"
|
||||
#include "lluiimage.h" // *TODO: break this dependency, need to add #include "lluiimage.h" to all widgets that hold an Optional<LLUIImage*> in their paramblocks
|
||||
#include "llinitparam.h"
|
||||
#include "llregistry.h"
|
||||
#include "lluicolor.h"
|
||||
#include "lluicolortable.h"
|
||||
#include <boost/signals2.hpp>
|
||||
#include "lllazyvalue.h"
|
||||
#include "llhandle.h" // *TODO: remove this dependency, added as a
|
||||
// convenience when LLHandle moved to llhandle.h
|
||||
#include "llframetimer.h"
|
||||
|
||||
// LLUIFactory
|
||||
|
|
@ -265,8 +262,6 @@ private:
|
|||
|
||||
// Moved LLLocalClipRect to lllocalcliprect.h
|
||||
|
||||
// Moved all LLHandle-related code to llhandle.h
|
||||
|
||||
//RN: maybe this needs to moved elsewhere?
|
||||
class LLImageProviderInterface
|
||||
{
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@
|
|||
#include "stdtypes.h"
|
||||
#include "llcoord.h"
|
||||
#include "llfontgl.h"
|
||||
#include "llhandle.h"
|
||||
#include "llmortician.h"
|
||||
#include "llmousehandler.h"
|
||||
#include "llstring.h"
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
#include "llrender.h"
|
||||
#include "llfocusmgr.h"
|
||||
#include "lluictrlfactory.h"
|
||||
#include "lluiimage.h"
|
||||
|
||||
static LLDefaultChildRegistry::Register<LLViewBorder> r("view_border");
|
||||
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@
|
|||
|
||||
#include "lluictrl.h"
|
||||
#include "llnotifications.h"
|
||||
#include "lluiimage.h"
|
||||
|
||||
class LLWindowShade : public LLUICtrl
|
||||
{
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ include_directories(
|
|||
|
||||
set(llvfs_SOURCE_FILES
|
||||
lldir.cpp
|
||||
lldiriterator.cpp
|
||||
lllfsthread.cpp
|
||||
llpidlock.cpp
|
||||
llvfile.cpp
|
||||
|
|
@ -24,6 +25,7 @@ set(llvfs_HEADER_FILES
|
|||
|
||||
lldir.h
|
||||
lldirguard.h
|
||||
lldiriterator.h
|
||||
lllfsthread.h
|
||||
llpidlock.h
|
||||
llvfile.h
|
||||
|
|
@ -60,6 +62,11 @@ list(APPEND llvfs_SOURCE_FILES ${llvfs_HEADER_FILES})
|
|||
|
||||
add_library (llvfs ${llvfs_SOURCE_FILES})
|
||||
|
||||
target_link_libraries(llvfs
|
||||
${BOOST_FILESYSTEM_LIBRARY}
|
||||
${BOOST_SYSTEM_LIBRARY}
|
||||
)
|
||||
|
||||
if (DARWIN)
|
||||
include(CMakeFindFrameworks)
|
||||
find_library(CARBON_LIBRARY Carbon)
|
||||
|
|
|
|||
|
|
@ -40,6 +40,8 @@
|
|||
#include "lltimer.h" // ms_sleep()
|
||||
#include "lluuid.h"
|
||||
|
||||
#include "lldiriterator.h"
|
||||
|
||||
#if LL_WINDOWS
|
||||
#include "lldir_win32.h"
|
||||
LLDir_Win32 gDirUtil;
|
||||
|
|
@ -83,7 +85,9 @@ S32 LLDir::deleteFilesInDir(const std::string &dirname, const std::string &mask)
|
|||
std::string filename;
|
||||
std::string fullpath;
|
||||
S32 result;
|
||||
while (getNextFileInDir(dirname, mask, filename))
|
||||
|
||||
LLDirIterator iter(dirname, mask);
|
||||
while (iter.next(filename))
|
||||
{
|
||||
fullpath = dirname;
|
||||
fullpath += getDirDelimiter();
|
||||
|
|
|
|||
|
|
@ -75,31 +75,6 @@ class LLDir
|
|||
// pure virtual functions
|
||||
virtual U32 countFilesInDir(const std::string &dirname, const std::string &mask) = 0;
|
||||
|
||||
/// Walk the files in a directory, with file pattern matching
|
||||
virtual BOOL getNextFileInDir(const std::string& dirname, ///< directory path - must end in trailing slash!
|
||||
const std::string& mask, ///< file pattern string (use "*" for all)
|
||||
std::string& fname ///< output: found file name
|
||||
) = 0;
|
||||
/**<
|
||||
* @returns true if a file was found, false if the entire directory has been scanned.
|
||||
*
|
||||
* @note that this function is NOT thread safe
|
||||
*
|
||||
* This function may not be used to scan part of a directory, then start a new search of a different
|
||||
* directory, and then restart the first search where it left off; the entire search must run to
|
||||
* completion or be abandoned - there is no restart.
|
||||
*
|
||||
* @bug: See http://jira.secondlife.com/browse/VWR-23697
|
||||
* and/or the tests in test/lldir_test.cpp
|
||||
* This is known to fail with patterns that have both:
|
||||
* a wildcard left of a . and more than one sequential ? right of a .
|
||||
* the pattern foo.??x appears to work
|
||||
* but *.??x or foo?.??x do not
|
||||
*
|
||||
* @todo this really should be rewritten as an iterator object, and the
|
||||
* filtering should be done in a platform-independent way.
|
||||
*/
|
||||
|
||||
virtual std::string getCurPath() = 0;
|
||||
virtual BOOL fileExists(const std::string &filename) const = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -242,68 +242,6 @@ U32 LLDir_Linux::countFilesInDir(const std::string &dirname, const std::string &
|
|||
return (file_count);
|
||||
}
|
||||
|
||||
// get the next file in the directory
|
||||
BOOL LLDir_Linux::getNextFileInDir(const std::string &dirname, const std::string &mask, std::string &fname)
|
||||
{
|
||||
glob_t g;
|
||||
BOOL result = FALSE;
|
||||
fname = "";
|
||||
|
||||
if(!(dirname == mCurrentDir))
|
||||
{
|
||||
// different dir specified, close old search
|
||||
mCurrentDirIndex = -1;
|
||||
mCurrentDirCount = -1;
|
||||
mCurrentDir = dirname;
|
||||
}
|
||||
|
||||
std::string tmp_str;
|
||||
tmp_str = dirname;
|
||||
tmp_str += mask;
|
||||
|
||||
if(glob(tmp_str.c_str(), GLOB_NOSORT, NULL, &g) == 0)
|
||||
{
|
||||
if(g.gl_pathc > 0)
|
||||
{
|
||||
if((int)g.gl_pathc != mCurrentDirCount)
|
||||
{
|
||||
// Number of matches has changed since the last search, meaning a file has been added or deleted.
|
||||
// Reset the index.
|
||||
mCurrentDirIndex = -1;
|
||||
mCurrentDirCount = g.gl_pathc;
|
||||
}
|
||||
|
||||
mCurrentDirIndex++;
|
||||
|
||||
if(mCurrentDirIndex < (int)g.gl_pathc)
|
||||
{
|
||||
// llinfos << "getNextFileInDir: returning number " << mCurrentDirIndex << ", path is " << g.gl_pathv[mCurrentDirIndex] << llendl;
|
||||
|
||||
// The API wants just the filename, not the full path.
|
||||
//fname = g.gl_pathv[mCurrentDirIndex];
|
||||
|
||||
char *s = strrchr(g.gl_pathv[mCurrentDirIndex], '/');
|
||||
|
||||
if(s == NULL)
|
||||
s = g.gl_pathv[mCurrentDirIndex];
|
||||
else if(s[0] == '/')
|
||||
s++;
|
||||
|
||||
fname = s;
|
||||
|
||||
result = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
globfree(&g);
|
||||
}
|
||||
|
||||
return(result);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
std::string LLDir_Linux::getCurPath()
|
||||
{
|
||||
char tmp_str[LL_MAX_PATH]; /* Flawfinder: ignore */
|
||||
|
|
|
|||
|
|
@ -47,7 +47,6 @@ public:
|
|||
|
||||
virtual std::string getCurPath();
|
||||
virtual U32 countFilesInDir(const std::string &dirname, const std::string &mask);
|
||||
virtual BOOL getNextFileInDir(const std::string &dirname, const std::string &mask, std::string &fname);
|
||||
/*virtual*/ BOOL fileExists(const std::string &filename) const;
|
||||
|
||||
/*virtual*/ std::string getLLPluginLauncher();
|
||||
|
|
|
|||
|
|
@ -258,67 +258,6 @@ U32 LLDir_Mac::countFilesInDir(const std::string &dirname, const std::string &ma
|
|||
return (file_count);
|
||||
}
|
||||
|
||||
// get the next file in the directory
|
||||
BOOL LLDir_Mac::getNextFileInDir(const std::string &dirname, const std::string &mask, std::string &fname)
|
||||
{
|
||||
glob_t g;
|
||||
BOOL result = FALSE;
|
||||
fname = "";
|
||||
|
||||
if(!(dirname == mCurrentDir))
|
||||
{
|
||||
// different dir specified, close old search
|
||||
mCurrentDirIndex = -1;
|
||||
mCurrentDirCount = -1;
|
||||
mCurrentDir = dirname;
|
||||
}
|
||||
|
||||
std::string tmp_str;
|
||||
tmp_str = dirname;
|
||||
tmp_str += mask;
|
||||
|
||||
if(glob(tmp_str.c_str(), GLOB_NOSORT, NULL, &g) == 0)
|
||||
{
|
||||
if(g.gl_pathc > 0)
|
||||
{
|
||||
if(g.gl_pathc != mCurrentDirCount)
|
||||
{
|
||||
// Number of matches has changed since the last search, meaning a file has been added or deleted.
|
||||
// Reset the index.
|
||||
mCurrentDirIndex = -1;
|
||||
mCurrentDirCount = g.gl_pathc;
|
||||
}
|
||||
|
||||
mCurrentDirIndex++;
|
||||
|
||||
if(mCurrentDirIndex < g.gl_pathc)
|
||||
{
|
||||
// llinfos << "getNextFileInDir: returning number " << mCurrentDirIndex << ", path is " << g.gl_pathv[mCurrentDirIndex] << llendl;
|
||||
|
||||
// The API wants just the filename, not the full path.
|
||||
//fname = g.gl_pathv[mCurrentDirIndex];
|
||||
|
||||
char *s = strrchr(g.gl_pathv[mCurrentDirIndex], '/');
|
||||
|
||||
if(s == NULL)
|
||||
s = g.gl_pathv[mCurrentDirIndex];
|
||||
else if(s[0] == '/')
|
||||
s++;
|
||||
|
||||
fname = s;
|
||||
|
||||
result = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
globfree(&g);
|
||||
}
|
||||
|
||||
return(result);
|
||||
}
|
||||
|
||||
|
||||
|
||||
S32 LLDir_Mac::deleteFilesInDir(const std::string &dirname, const std::string &mask)
|
||||
{
|
||||
glob_t g;
|
||||
|
|
|
|||
|
|
@ -47,7 +47,6 @@ public:
|
|||
virtual S32 deleteFilesInDir(const std::string &dirname, const std::string &mask);
|
||||
virtual std::string getCurPath();
|
||||
virtual U32 countFilesInDir(const std::string &dirname, const std::string &mask);
|
||||
virtual BOOL getNextFileInDir(const std::string &dirname, const std::string &mask, std::string &fname);
|
||||
virtual BOOL fileExists(const std::string &filename) const;
|
||||
|
||||
/*virtual*/ std::string getLLPluginLauncher();
|
||||
|
|
|
|||
|
|
@ -260,68 +260,6 @@ U32 LLDir_Solaris::countFilesInDir(const std::string &dirname, const std::string
|
|||
return (file_count);
|
||||
}
|
||||
|
||||
// get the next file in the directory
|
||||
BOOL LLDir_Solaris::getNextFileInDir(const std::string &dirname, const std::string &mask, std::string &fname)
|
||||
{
|
||||
glob_t g;
|
||||
BOOL result = FALSE;
|
||||
fname = "";
|
||||
|
||||
if(!(dirname == mCurrentDir))
|
||||
{
|
||||
// different dir specified, close old search
|
||||
mCurrentDirIndex = -1;
|
||||
mCurrentDirCount = -1;
|
||||
mCurrentDir = dirname;
|
||||
}
|
||||
|
||||
std::string tmp_str;
|
||||
tmp_str = dirname;
|
||||
tmp_str += mask;
|
||||
|
||||
if(glob(tmp_str.c_str(), GLOB_NOSORT, NULL, &g) == 0)
|
||||
{
|
||||
if(g.gl_pathc > 0)
|
||||
{
|
||||
if((int)g.gl_pathc != mCurrentDirCount)
|
||||
{
|
||||
// Number of matches has changed since the last search, meaning a file has been added or deleted.
|
||||
// Reset the index.
|
||||
mCurrentDirIndex = -1;
|
||||
mCurrentDirCount = g.gl_pathc;
|
||||
}
|
||||
|
||||
mCurrentDirIndex++;
|
||||
|
||||
if(mCurrentDirIndex < (int)g.gl_pathc)
|
||||
{
|
||||
// llinfos << "getNextFileInDir: returning number " << mCurrentDirIndex << ", path is " << g.gl_pathv[mCurrentDirIndex] << llendl;
|
||||
|
||||
// The API wants just the filename, not the full path.
|
||||
//fname = g.gl_pathv[mCurrentDirIndex];
|
||||
|
||||
char *s = strrchr(g.gl_pathv[mCurrentDirIndex], '/');
|
||||
|
||||
if(s == NULL)
|
||||
s = g.gl_pathv[mCurrentDirIndex];
|
||||
else if(s[0] == '/')
|
||||
s++;
|
||||
|
||||
fname = s;
|
||||
|
||||
result = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
globfree(&g);
|
||||
}
|
||||
|
||||
return(result);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
std::string LLDir_Solaris::getCurPath()
|
||||
{
|
||||
char tmp_str[LL_MAX_PATH]; /* Flawfinder: ignore */
|
||||
|
|
|
|||
|
|
@ -47,7 +47,6 @@ public:
|
|||
|
||||
virtual std::string getCurPath();
|
||||
virtual U32 countFilesInDir(const std::string &dirname, const std::string &mask);
|
||||
virtual BOOL getNextFileInDir(const std::string &dirname, const std::string &mask, std::string &fname);
|
||||
/*virtual*/ BOOL fileExists(const std::string &filename) const;
|
||||
|
||||
private:
|
||||
|
|
|
|||
|
|
@ -240,67 +240,6 @@ U32 LLDir_Win32::countFilesInDir(const std::string &dirname, const std::string &
|
|||
return (file_count);
|
||||
}
|
||||
|
||||
|
||||
// get the next file in the directory
|
||||
BOOL LLDir_Win32::getNextFileInDir(const std::string &dirname, const std::string &mask, std::string &fname)
|
||||
{
|
||||
BOOL fileFound = FALSE;
|
||||
fname = "";
|
||||
|
||||
WIN32_FIND_DATAW FileData;
|
||||
llutf16string pathname = utf8str_to_utf16str(dirname) + utf8str_to_utf16str(mask);
|
||||
|
||||
if (pathname != mCurrentDir)
|
||||
{
|
||||
// different dir specified, close old search
|
||||
if (!mCurrentDir.empty())
|
||||
{
|
||||
FindClose(mDirSearch_h);
|
||||
}
|
||||
mCurrentDir = pathname;
|
||||
|
||||
// and open new one
|
||||
// Check error opening Directory structure
|
||||
if ((mDirSearch_h = FindFirstFile(pathname.c_str(), &FileData)) != INVALID_HANDLE_VALUE)
|
||||
{
|
||||
fileFound = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
// Loop to skip over the current (.) and parent (..) directory entries
|
||||
// (apparently returned in Win7 but not XP)
|
||||
do
|
||||
{
|
||||
if ( fileFound
|
||||
&& ( (lstrcmp(FileData.cFileName, (LPCTSTR)TEXT(".")) == 0)
|
||||
||(lstrcmp(FileData.cFileName, (LPCTSTR)TEXT("..")) == 0)
|
||||
)
|
||||
)
|
||||
{
|
||||
fileFound = FALSE;
|
||||
}
|
||||
} while ( mDirSearch_h != INVALID_HANDLE_VALUE
|
||||
&& !fileFound
|
||||
&& (fileFound = FindNextFile(mDirSearch_h, &FileData)
|
||||
)
|
||||
);
|
||||
|
||||
if (!fileFound && GetLastError() == ERROR_NO_MORE_FILES)
|
||||
{
|
||||
// No more files, so reset to beginning of directory
|
||||
FindClose(mDirSearch_h);
|
||||
mCurrentDir[0] = '\000';
|
||||
}
|
||||
|
||||
if (fileFound)
|
||||
{
|
||||
// convert from TCHAR to char
|
||||
fname = utf16str_to_utf8str(FileData.cFileName);
|
||||
}
|
||||
|
||||
return fileFound;
|
||||
}
|
||||
|
||||
std::string LLDir_Win32::getCurPath()
|
||||
{
|
||||
WCHAR w_str[MAX_PATH];
|
||||
|
|
|
|||
|
|
@ -44,15 +44,12 @@ public:
|
|||
|
||||
/*virtual*/ std::string getCurPath();
|
||||
/*virtual*/ U32 countFilesInDir(const std::string &dirname, const std::string &mask);
|
||||
/*virtual*/ BOOL getNextFileInDir(const std::string &dirname, const std::string &mask, std::string &fname);
|
||||
/*virtual*/ BOOL fileExists(const std::string &filename) const;
|
||||
|
||||
/*virtual*/ std::string getLLPluginLauncher();
|
||||
/*virtual*/ std::string getLLPluginFilename(std::string base_name);
|
||||
|
||||
private:
|
||||
BOOL getNextFileInDir(const llutf16string &dirname, const std::string &mask, std::string &fname);
|
||||
|
||||
void* mDirSearch_h;
|
||||
llutf16string mCurrentDir;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
#include "linden_common.h"
|
||||
|
||||
#include "../lldir.h"
|
||||
#include "../lldiriterator.h"
|
||||
|
||||
#include "../test/lltut.h"
|
||||
|
||||
|
|
@ -259,13 +260,12 @@ namespace tut
|
|||
|
||||
std::string makeTestFile( const std::string& dir, const std::string& file )
|
||||
{
|
||||
std::string delim = gDirUtilp->getDirDelimiter();
|
||||
std::string path = dir + delim + file;
|
||||
std::string path = dir + file;
|
||||
LLFILE* handle = LLFile::fopen( path, "w" );
|
||||
ensure("failed to open test file '"+path+"'", handle != NULL );
|
||||
// Harbison & Steele, 4th ed., p. 366: "If an error occurs, fputs
|
||||
// returns EOF; otherwise, it returns some other, nonnegative value."
|
||||
ensure("failed to write to test file '"+path+"'", fputs("test file", handle) >= 0);
|
||||
ensure("failed to write to test file '"+path+"'", EOF != fputs("test file", handle) );
|
||||
fclose(handle);
|
||||
return path;
|
||||
}
|
||||
|
|
@ -290,7 +290,7 @@ namespace tut
|
|||
}
|
||||
|
||||
static const char* DirScanFilename[5] = { "file1.abc", "file2.abc", "file1.xyz", "file2.xyz", "file1.mno" };
|
||||
|
||||
|
||||
void scanTest(const std::string& directory, const std::string& pattern, bool correctResult[5])
|
||||
{
|
||||
|
||||
|
|
@ -300,7 +300,8 @@ namespace tut
|
|||
bool filesFound[5] = { false, false, false, false, false };
|
||||
//std::cerr << "searching '"+directory+"' for '"+pattern+"'\n";
|
||||
|
||||
while ( found <= 5 && gDirUtilp->getNextFileInDir(directory, pattern, scanResult) )
|
||||
LLDirIterator iter(directory, pattern);
|
||||
while ( found <= 5 && iter.next(scanResult) )
|
||||
{
|
||||
found++;
|
||||
//std::cerr << " found '"+scanResult+"'\n";
|
||||
|
|
@ -334,15 +335,15 @@ namespace tut
|
|||
|
||||
template<> template<>
|
||||
void LLDirTest_object_t::test<5>()
|
||||
// getNextFileInDir
|
||||
// LLDirIterator::next
|
||||
{
|
||||
std::string delim = gDirUtilp->getDirDelimiter();
|
||||
std::string dirTemp = LLFile::tmpdir();
|
||||
|
||||
// Create the same 5 file names of the two directories
|
||||
|
||||
std::string dir1 = makeTestDir(dirTemp + "getNextFileInDir");
|
||||
std::string dir2 = makeTestDir(dirTemp + "getNextFileInDir");
|
||||
std::string dir1 = makeTestDir(dirTemp + "LLDirIterator");
|
||||
std::string dir2 = makeTestDir(dirTemp + "LLDirIterator");
|
||||
std::string dir1files[5];
|
||||
std::string dir2files[5];
|
||||
for (int i=0; i<5; i++)
|
||||
|
|
@ -380,19 +381,17 @@ namespace tut
|
|||
scanTest(dir2, "file?.x?z", expected7);
|
||||
|
||||
// Scan dir2 and see if any file?.??c files are found
|
||||
// THESE FAIL ON Mac and Windows, SO ARE COMMENTED OUT FOR NOW
|
||||
// bool expected8[5] = { true, true, false, false, false };
|
||||
// scanTest(dir2, "file?.??c", expected8);
|
||||
// scanTest(dir2, "*.??c", expected8);
|
||||
bool expected8[5] = { true, true, false, false, false };
|
||||
scanTest(dir2, "file?.??c", expected8);
|
||||
scanTest(dir2, "*.??c", expected8);
|
||||
|
||||
// Scan dir1 and see if any *.?n? files are found
|
||||
bool expected9[5] = { false, false, false, false, true };
|
||||
scanTest(dir1, "*.?n?", expected9);
|
||||
|
||||
// Scan dir1 and see if any *.???? files are found
|
||||
// THIS ONE FAILS ON WINDOWS (returns three charater suffixes) SO IS COMMENTED OUT FOR NOW
|
||||
// bool expected10[5] = { false, false, false, false, false };
|
||||
// scanTest(dir1, "*.????", expected10);
|
||||
bool expected10[5] = { false, false, false, false, false };
|
||||
scanTest(dir1, "*.????", expected10);
|
||||
|
||||
// Scan dir1 and see if any ?????.* files are found
|
||||
bool expected11[5] = { true, true, true, true, true };
|
||||
|
|
@ -402,6 +401,15 @@ namespace tut
|
|||
bool expected12[5] = { false, false, true, true, false };
|
||||
scanTest(dir1, "??l??.xyz", expected12);
|
||||
|
||||
bool expected13[5] = { true, false, true, false, false };
|
||||
scanTest(dir1, "file1.{abc,xyz}", expected13);
|
||||
|
||||
bool expected14[5] = { true, true, false, false, false };
|
||||
scanTest(dir1, "file[0-9].abc", expected14);
|
||||
|
||||
bool expected15[5] = { true, true, false, false, false };
|
||||
scanTest(dir1, "file[!a-z].abc", expected15);
|
||||
|
||||
// clean up all test files and directories
|
||||
for (int i=0; i<5; i++)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
|
||||
#include "llfasttimer.h" // for call count statistics
|
||||
#include "llxuiparser.h"
|
||||
#include "llxmlnode.h"
|
||||
|
||||
#include <map>
|
||||
|
||||
|
|
|
|||
|
|
@ -29,8 +29,10 @@
|
|||
|
||||
#include <map>
|
||||
|
||||
#include "llpointer.h"
|
||||
#include "llstring.h"
|
||||
#include "llxmlnode.h"
|
||||
|
||||
class LLXMLNode;
|
||||
|
||||
/**
|
||||
* @brief String template loaded from strings.xml
|
||||
|
|
@ -61,9 +63,9 @@ public:
|
|||
* @param default_args Set of strings (expected to be in the file) to use as default replacement args, e.g. "SECOND_LIFE"
|
||||
* @returns true if the file was parsed successfully, true if something went wrong
|
||||
*/
|
||||
static bool parseStrings(LLXMLNodePtr& root, const std::set<std::string>& default_args);
|
||||
static bool parseStrings(LLPointer<LLXMLNode> & root, const std::set<std::string>& default_args);
|
||||
|
||||
static bool parseLanguageStrings(LLXMLNodePtr &root);
|
||||
static bool parseLanguageStrings(LLPointer<LLXMLNode> & root);
|
||||
|
||||
/**
|
||||
* @brief Returns a translated string
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@
|
|||
#define LLXUIPARSER_H
|
||||
|
||||
#include "llinitparam.h"
|
||||
#include "llfasttimer.h"
|
||||
#include "llregistry.h"
|
||||
#include "llpointer.h"
|
||||
|
||||
|
|
@ -95,6 +94,7 @@ public:
|
|||
};
|
||||
|
||||
|
||||
class LLXUIParserImpl;
|
||||
|
||||
class LLXUIParser : public LLInitParam::Parser
|
||||
{
|
||||
|
|
@ -176,6 +176,7 @@ private:
|
|||
// ordering of child elements from base file to localized diff file. Then we can use a pair
|
||||
// of coroutines to perform matching of xml nodes during parsing. Not sure if the overhead
|
||||
// of coroutines would offset the gain from SAX parsing
|
||||
class LLSimpleXUIParserImpl;
|
||||
|
||||
class LLSimpleXUIParser : public LLInitParam::Parser
|
||||
{
|
||||
|
|
|
|||
|
|
@ -25,10 +25,12 @@
|
|||
*/
|
||||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#include "llagent.h"
|
||||
|
||||
#include "pipeline.h"
|
||||
|
||||
#include "llagentaccess.h"
|
||||
#include "llagentcamera.h"
|
||||
#include "llagentlistener.h"
|
||||
#include "llagentwearables.h"
|
||||
|
|
@ -36,6 +38,7 @@
|
|||
#include "llanimationstates.h"
|
||||
#include "llbottomtray.h"
|
||||
#include "llcallingcard.h"
|
||||
#include "llcapabilitylistener.h"
|
||||
#include "llchannelmanager.h"
|
||||
#include "llconsole.h"
|
||||
#include "llfirstuse.h"
|
||||
|
|
@ -55,8 +58,10 @@
|
|||
#include "llpaneltopinfobar.h"
|
||||
#include "llparcel.h"
|
||||
#include "llrendersphere.h"
|
||||
#include "llsdmessage.h"
|
||||
#include "llsdutil.h"
|
||||
#include "llsky.h"
|
||||
#include "llslurl.h"
|
||||
#include "llsmoothstep.h"
|
||||
#include "llstartup.h"
|
||||
#include "llstatusbar.h"
|
||||
|
|
@ -74,6 +79,7 @@
|
|||
#include "llviewerobjectlist.h"
|
||||
#include "llviewerparcelmgr.h"
|
||||
#include "llviewerstats.h"
|
||||
#include "llviewerwindow.h"
|
||||
#include "llvoavatarself.h"
|
||||
#include "llwindow.h"
|
||||
#include "llworld.h"
|
||||
|
|
@ -172,7 +178,8 @@ LLAgent::LLAgent() :
|
|||
mbRunning(false),
|
||||
mbTeleportKeepsLookAt(false),
|
||||
|
||||
mAgentAccess(gSavedSettings),
|
||||
mAgentAccess(new LLAgentAccess(gSavedSettings)),
|
||||
mTeleportSourceSLURL(new LLSLURL),
|
||||
mTeleportState( TELEPORT_NONE ),
|
||||
mRegionp(NULL),
|
||||
|
||||
|
|
@ -209,7 +216,7 @@ LLAgent::LLAgent() :
|
|||
mAutoPilotFinishedCallback(NULL),
|
||||
mAutoPilotCallbackData(NULL),
|
||||
|
||||
mEffectColor(LLColor4(0.f, 1.f, 1.f, 1.f)),
|
||||
mEffectColor(new LLUIColor(LLColor4(0.f, 1.f, 1.f, 1.f))),
|
||||
|
||||
mHaveHomePosition(FALSE),
|
||||
mHomeRegionHandle( 0 ),
|
||||
|
|
@ -251,7 +258,7 @@ void LLAgent::init()
|
|||
|
||||
setFlying( gSavedSettings.getBOOL("FlyingAtExit") );
|
||||
|
||||
mEffectColor = LLUIColorTable::instance().getColor("EffectColor");
|
||||
*mEffectColor = LLUIColorTable::instance().getColor("EffectColor");
|
||||
|
||||
gSavedSettings.getControl("PreferredMaturity")->getValidateSignal()->connect(boost::bind(&LLAgent::validateMaturity, this, _2));
|
||||
gSavedSettings.getControl("PreferredMaturity")->getSignal()->connect(boost::bind(&LLAgent::handleMaturity, this, _2));
|
||||
|
|
@ -275,9 +282,16 @@ LLAgent::~LLAgent()
|
|||
cleanup();
|
||||
|
||||
delete mMouselookModeInSignal;
|
||||
mMouselookModeInSignal = NULL;
|
||||
delete mMouselookModeOutSignal;
|
||||
mMouselookModeOutSignal = NULL;
|
||||
|
||||
// *Note: this is where LLViewerCamera::getInstance() used to be deleted.
|
||||
delete mAgentAccess;
|
||||
mAgentAccess = NULL;
|
||||
delete mEffectColor;
|
||||
mEffectColor = NULL;
|
||||
delete mTeleportSourceSLURL;
|
||||
mTeleportSourceSLURL = NULL;
|
||||
}
|
||||
|
||||
// Handle any actions that need to be performed when the main app gains focus
|
||||
|
|
@ -2142,32 +2156,32 @@ void LLAgent::onAnimStop(const LLUUID& id)
|
|||
|
||||
bool LLAgent::isGodlike() const
|
||||
{
|
||||
return mAgentAccess.isGodlike();
|
||||
return mAgentAccess->isGodlike();
|
||||
}
|
||||
|
||||
bool LLAgent::isGodlikeWithoutAdminMenuFakery() const
|
||||
{
|
||||
return mAgentAccess.isGodlikeWithoutAdminMenuFakery();
|
||||
return mAgentAccess->isGodlikeWithoutAdminMenuFakery();
|
||||
}
|
||||
|
||||
U8 LLAgent::getGodLevel() const
|
||||
{
|
||||
return mAgentAccess.getGodLevel();
|
||||
return mAgentAccess->getGodLevel();
|
||||
}
|
||||
|
||||
bool LLAgent::wantsPGOnly() const
|
||||
{
|
||||
return mAgentAccess.wantsPGOnly();
|
||||
return mAgentAccess->wantsPGOnly();
|
||||
}
|
||||
|
||||
bool LLAgent::canAccessMature() const
|
||||
{
|
||||
return mAgentAccess.canAccessMature();
|
||||
return mAgentAccess->canAccessMature();
|
||||
}
|
||||
|
||||
bool LLAgent::canAccessAdult() const
|
||||
{
|
||||
return mAgentAccess.canAccessAdult();
|
||||
return mAgentAccess->canAccessAdult();
|
||||
}
|
||||
|
||||
bool LLAgent::canAccessMaturityInRegion( U64 region_handle ) const
|
||||
|
|
@ -2202,37 +2216,37 @@ bool LLAgent::canAccessMaturityAtGlobal( LLVector3d pos_global ) const
|
|||
|
||||
bool LLAgent::prefersPG() const
|
||||
{
|
||||
return mAgentAccess.prefersPG();
|
||||
return mAgentAccess->prefersPG();
|
||||
}
|
||||
|
||||
bool LLAgent::prefersMature() const
|
||||
{
|
||||
return mAgentAccess.prefersMature();
|
||||
return mAgentAccess->prefersMature();
|
||||
}
|
||||
|
||||
bool LLAgent::prefersAdult() const
|
||||
{
|
||||
return mAgentAccess.prefersAdult();
|
||||
return mAgentAccess->prefersAdult();
|
||||
}
|
||||
|
||||
bool LLAgent::isTeen() const
|
||||
{
|
||||
return mAgentAccess.isTeen();
|
||||
return mAgentAccess->isTeen();
|
||||
}
|
||||
|
||||
bool LLAgent::isMature() const
|
||||
{
|
||||
return mAgentAccess.isMature();
|
||||
return mAgentAccess->isMature();
|
||||
}
|
||||
|
||||
bool LLAgent::isAdult() const
|
||||
{
|
||||
return mAgentAccess.isAdult();
|
||||
return mAgentAccess->isAdult();
|
||||
}
|
||||
|
||||
void LLAgent::setTeen(bool teen)
|
||||
{
|
||||
mAgentAccess.setTeen(teen);
|
||||
mAgentAccess->setTeen(teen);
|
||||
}
|
||||
|
||||
//static
|
||||
|
|
@ -2277,37 +2291,37 @@ bool LLAgent::sendMaturityPreferenceToServer(int preferredMaturity)
|
|||
|
||||
BOOL LLAgent::getAdminOverride() const
|
||||
{
|
||||
return mAgentAccess.getAdminOverride();
|
||||
return mAgentAccess->getAdminOverride();
|
||||
}
|
||||
|
||||
void LLAgent::setMaturity(char text)
|
||||
{
|
||||
mAgentAccess.setMaturity(text);
|
||||
mAgentAccess->setMaturity(text);
|
||||
}
|
||||
|
||||
void LLAgent::setAdminOverride(BOOL b)
|
||||
{
|
||||
mAgentAccess.setAdminOverride(b);
|
||||
mAgentAccess->setAdminOverride(b);
|
||||
}
|
||||
|
||||
void LLAgent::setGodLevel(U8 god_level)
|
||||
{
|
||||
mAgentAccess.setGodLevel(god_level);
|
||||
mAgentAccess->setGodLevel(god_level);
|
||||
}
|
||||
|
||||
void LLAgent::setAOTransition()
|
||||
{
|
||||
mAgentAccess.setTransition();
|
||||
mAgentAccess->setTransition();
|
||||
}
|
||||
|
||||
const LLAgentAccess& LLAgent::getAgentAccess()
|
||||
{
|
||||
return mAgentAccess;
|
||||
return *mAgentAccess;
|
||||
}
|
||||
|
||||
bool LLAgent::validateMaturity(const LLSD& newvalue)
|
||||
{
|
||||
return mAgentAccess.canSetMaturity(newvalue.asInteger());
|
||||
return mAgentAccess->canSetMaturity(newvalue.asInteger());
|
||||
}
|
||||
|
||||
void LLAgent::handleMaturity(const LLSD& newvalue)
|
||||
|
|
@ -2639,12 +2653,12 @@ BOOL LLAgent::allowOperation(PermissionBit op,
|
|||
|
||||
const LLColor4 &LLAgent::getEffectColor()
|
||||
{
|
||||
return mEffectColor;
|
||||
return *mEffectColor;
|
||||
}
|
||||
|
||||
void LLAgent::setEffectColor(const LLColor4 &color)
|
||||
{
|
||||
mEffectColor = color;
|
||||
*mEffectColor = color;
|
||||
}
|
||||
|
||||
void LLAgent::initOriginGlobal(const LLVector3d &origin_global)
|
||||
|
|
@ -3472,7 +3486,7 @@ void LLAgent::setTeleportState(ETeleportState state)
|
|||
|
||||
case TELEPORT_MOVING:
|
||||
// We're outa here. Save "back" slurl.
|
||||
LLAgentUI::buildSLURL(mTeleportSourceSLURL);
|
||||
LLAgentUI::buildSLURL(*mTeleportSourceSLURL);
|
||||
break;
|
||||
|
||||
case TELEPORT_ARRIVING:
|
||||
|
|
@ -3805,6 +3819,11 @@ void LLAgent::parseTeleportMessages(const std::string& xml_filename)
|
|||
}//end for (all message sets in xml file)
|
||||
}
|
||||
|
||||
const void LLAgent::getTeleportSourceSLURL(LLSLURL& slurl) const
|
||||
{
|
||||
slurl = *mTeleportSourceSLURL;
|
||||
}
|
||||
|
||||
void LLAgent::sendAgentUpdateUserInfo(bool im_via_email, const std::string& directory_visibility )
|
||||
{
|
||||
gMessageSystem->newMessageFast(_PREHASH_UpdateUserInfo);
|
||||
|
|
|
|||
|
|
@ -29,15 +29,11 @@
|
|||
|
||||
#include "indra_constants.h"
|
||||
#include "llevent.h" // LLObservable base class
|
||||
#include "llagentaccess.h"
|
||||
#include "llagentconstants.h"
|
||||
#include "llagentdata.h" // gAgentID, gAgentSessionID
|
||||
#include "llcharacter.h" // LLAnimPauseRequest
|
||||
#include "llcharacter.h"
|
||||
#include "llcoordframe.h" // for mFrameAgent
|
||||
#include "llpointer.h"
|
||||
#include "lluicolor.h"
|
||||
#include "llvoavatardefines.h"
|
||||
#include "llslurl.h"
|
||||
|
||||
#include <boost/signals2.hpp>
|
||||
|
||||
|
|
@ -56,6 +52,10 @@ class LLFriendObserver;
|
|||
class LLPickInfo;
|
||||
class LLViewerObject;
|
||||
class LLAgentDropGroupViewerNode;
|
||||
class LLAgentAccess;
|
||||
class LLSLURL;
|
||||
class LLPauseRequestHandle;
|
||||
class LLUIColor;
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// Types
|
||||
|
|
@ -80,6 +80,8 @@ struct LLGroupData
|
|||
|
||||
class LLAgentListener;
|
||||
|
||||
class LLAgentImpl;
|
||||
|
||||
//------------------------------------------------------------------------
|
||||
// LLAgent
|
||||
//------------------------------------------------------------------------
|
||||
|
|
@ -420,7 +422,7 @@ private:
|
|||
camera_signal_t* mMouselookModeInSignal;
|
||||
camera_signal_t* mMouselookModeOutSignal;
|
||||
BOOL mCustomAnim; // Current animation is ANIM_AGENT_CUSTOMIZE ?
|
||||
LLAnimPauseRequest mPauseRequest;
|
||||
LLPointer<LLPauseRequestHandle> mPauseRequest;
|
||||
BOOL mViewsPushed; // Keep track of whether or not we have pushed views
|
||||
|
||||
/** Animation
|
||||
|
|
@ -515,13 +517,13 @@ public:
|
|||
|
||||
public:
|
||||
static void parseTeleportMessages(const std::string& xml_filename);
|
||||
const void getTeleportSourceSLURL(LLSLURL& slurl) const { slurl = mTeleportSourceSLURL; }
|
||||
const void getTeleportSourceSLURL(LLSLURL& slurl) const;
|
||||
public:
|
||||
// ! TODO ! Define ERROR and PROGRESS enums here instead of exposing the mappings.
|
||||
static std::map<std::string, std::string> sTeleportErrorMessages;
|
||||
static std::map<std::string, std::string> sTeleportProgressMessages;
|
||||
private:
|
||||
LLSLURL mTeleportSourceSLURL; // SLURL where last TP began
|
||||
LLSLURL * mTeleportSourceSLURL; // SLURL where last TP began
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// Teleport Actions
|
||||
|
|
@ -580,7 +582,7 @@ public:
|
|||
// ! BACKWARDS COMPATIBILITY ! This function can go away after the AO transition (see llstartup.cpp).
|
||||
void setAOTransition();
|
||||
private:
|
||||
LLAgentAccess mAgentAccess;
|
||||
LLAgentAccess * mAgentAccess;
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// God
|
||||
|
|
@ -660,7 +662,7 @@ public:
|
|||
const LLColor4 &getEffectColor();
|
||||
void setEffectColor(const LLColor4 &color);
|
||||
private:
|
||||
LLUIColor mEffectColor;
|
||||
LLUIColor * mEffectColor;
|
||||
|
||||
/** Rendering
|
||||
** **
|
||||
|
|
|
|||
|
|
@ -82,13 +82,14 @@
|
|||
#include "lltextutil.h"
|
||||
#include "lllogininstance.h"
|
||||
#include "llprogressview.h"
|
||||
|
||||
#include "llvocache.h"
|
||||
#include "llweb.h"
|
||||
#include "llsecondlifeurls.h"
|
||||
#include "llupdaterservice.h"
|
||||
|
||||
// Linden library includes
|
||||
#include "llavatarnamecache.h"
|
||||
#include "lldiriterator.h"
|
||||
#include "llimagej2c.h"
|
||||
#include "llmemory.h"
|
||||
#include "llprimitive.h"
|
||||
|
|
@ -132,7 +133,6 @@
|
|||
#include "lltoolmgr.h"
|
||||
#include "llassetstorage.h"
|
||||
#include "llpolymesh.h"
|
||||
#include "llcachename.h"
|
||||
#include "llaudioengine.h"
|
||||
#include "llstreamingaudio.h"
|
||||
#include "llviewermenu.h"
|
||||
|
|
@ -3432,7 +3432,9 @@ void LLAppViewer::migrateCacheDirectory()
|
|||
S32 file_count = 0;
|
||||
std::string file_name;
|
||||
std::string mask = delimiter + "*.*";
|
||||
while (gDirUtilp->getNextFileInDir(old_cache_dir, mask, file_name))
|
||||
|
||||
LLDirIterator iter(old_cache_dir, mask);
|
||||
while (iter.next(file_name))
|
||||
{
|
||||
if (file_name == "." || file_name == "..") continue;
|
||||
std::string source_path = old_cache_dir + delimiter + file_name;
|
||||
|
|
@ -3653,7 +3655,8 @@ bool LLAppViewer::initCache()
|
|||
dir = gDirUtilp->getExpandedFilename(LL_PATH_CACHE,"");
|
||||
|
||||
std::string found_file;
|
||||
if (gDirUtilp->getNextFileInDir(dir, mask, found_file))
|
||||
LLDirIterator iter(dir, mask);
|
||||
if (iter.next(found_file))
|
||||
{
|
||||
old_vfs_data_file = dir + gDirUtilp->getDirDelimiter() + found_file;
|
||||
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@
|
|||
|
||||
#include "llcommandlineparser.h"
|
||||
|
||||
#include "lldiriterator.h"
|
||||
#include "llmemtype.h"
|
||||
#include "llurldispatcher.h" // SLURL from other app instance
|
||||
#include "llviewernetwork.h"
|
||||
|
|
@ -504,7 +505,9 @@ std::string LLAppViewerLinux::generateSerialNumber()
|
|||
|
||||
// trawl /dev/disk/by-uuid looking for a good-looking UUID to grab
|
||||
std::string this_name;
|
||||
while (gDirUtilp->getNextFileInDir(uuiddir, "*", this_name))
|
||||
|
||||
LLDirIterator iter(uuiddir, "*");
|
||||
while (iter.next(this_name))
|
||||
{
|
||||
if (this_name.length() > best.length() ||
|
||||
(this_name.length() == best.length() &&
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
#include "v3dmath.h"
|
||||
|
||||
class LLEventNotification;
|
||||
class LLMessageSystem;
|
||||
|
||||
|
||||
class LLEventNotifier
|
||||
|
|
|
|||
|
|
@ -38,6 +38,7 @@
|
|||
#include "message.h"
|
||||
|
||||
#include "llagent.h"
|
||||
#include "llagentaccess.h"
|
||||
#include "llbutton.h"
|
||||
#include "llcheckboxctrl.h"
|
||||
#include "llcombobox.h"
|
||||
|
|
|
|||
|
|
@ -43,11 +43,12 @@ class LLButton;
|
|||
class LLCheckBoxCtrl;
|
||||
class LLRadioGroup;
|
||||
class LLComboBox;
|
||||
class LLNameListCtrl;
|
||||
class LLSpinCtrl;
|
||||
class LLLineEditor;
|
||||
class LLMessageSystem;
|
||||
class LLNameListCtrl;
|
||||
class LLRadioGroup;
|
||||
class LLParcelSelectionObserver;
|
||||
class LLSpinCtrl;
|
||||
class LLTabContainer;
|
||||
class LLTextBox;
|
||||
class LLTextEditor;
|
||||
|
|
|
|||
|
|
@ -53,6 +53,7 @@
|
|||
#include "llfloaterpostcard.h"
|
||||
#include "llcheckboxctrl.h"
|
||||
#include "llradiogroup.h"
|
||||
#include "llslurl.h"
|
||||
#include "lltoolfocus.h"
|
||||
#include "lltoolmgr.h"
|
||||
#include "llwebsharing.h"
|
||||
|
|
|
|||
|
|
@ -35,6 +35,7 @@
|
|||
#include "llfloateruipreview.h" // Own header
|
||||
|
||||
// Internal utility
|
||||
#include "lldiriterator.h"
|
||||
#include "lleventtimer.h"
|
||||
#include "llexternaleditor.h"
|
||||
#include "llrender.h"
|
||||
|
|
@ -481,9 +482,11 @@ BOOL LLFloaterUIPreview::postBuild()
|
|||
std::string language_directory;
|
||||
std::string xui_dir = get_xui_dir(); // directory containing localizations -- don't forget trailing delim
|
||||
mLanguageSelection->removeall(); // clear out anything temporarily in list from XML
|
||||
|
||||
LLDirIterator iter(xui_dir, "*");
|
||||
while(found) // for every directory
|
||||
{
|
||||
if((found = gDirUtilp->getNextFileInDir(xui_dir, "*", language_directory))) // get next directory
|
||||
if((found = iter.next(language_directory))) // get next directory
|
||||
{
|
||||
std::string full_path = xui_dir + language_directory;
|
||||
if(LLFile::isfile(full_path.c_str())) // if it's not a directory, skip it
|
||||
|
|
@ -635,42 +638,51 @@ void LLFloaterUIPreview::refreshList()
|
|||
mFileList->clearRows(); // empty list
|
||||
std::string name;
|
||||
BOOL found = TRUE;
|
||||
|
||||
LLDirIterator floater_iter(getLocalizedDirectory(), "floater_*.xml");
|
||||
while(found) // for every floater file that matches the pattern
|
||||
{
|
||||
if((found = gDirUtilp->getNextFileInDir(getLocalizedDirectory(), "floater_*.xml", name))) // get next file matching pattern
|
||||
if((found = floater_iter.next(name))) // get next file matching pattern
|
||||
{
|
||||
addFloaterEntry(name.c_str()); // and add it to the list (file name only; localization code takes care of rest of path)
|
||||
}
|
||||
}
|
||||
found = TRUE;
|
||||
|
||||
LLDirIterator inspect_iter(getLocalizedDirectory(), "inspect_*.xml");
|
||||
while(found) // for every inspector file that matches the pattern
|
||||
{
|
||||
if((found = gDirUtilp->getNextFileInDir(getLocalizedDirectory(), "inspect_*.xml", name))) // get next file matching pattern
|
||||
if((found = inspect_iter.next(name))) // get next file matching pattern
|
||||
{
|
||||
addFloaterEntry(name.c_str()); // and add it to the list (file name only; localization code takes care of rest of path)
|
||||
}
|
||||
}
|
||||
found = TRUE;
|
||||
|
||||
LLDirIterator menu_iter(getLocalizedDirectory(), "menu_*.xml");
|
||||
while(found) // for every menu file that matches the pattern
|
||||
{
|
||||
if((found = gDirUtilp->getNextFileInDir(getLocalizedDirectory(), "menu_*.xml", name))) // get next file matching pattern
|
||||
if((found = menu_iter.next(name))) // get next file matching pattern
|
||||
{
|
||||
addFloaterEntry(name.c_str()); // and add it to the list (file name only; localization code takes care of rest of path)
|
||||
}
|
||||
}
|
||||
found = TRUE;
|
||||
|
||||
LLDirIterator panel_iter(getLocalizedDirectory(), "panel_*.xml");
|
||||
while(found) // for every panel file that matches the pattern
|
||||
{
|
||||
if((found = gDirUtilp->getNextFileInDir(getLocalizedDirectory(), "panel_*.xml", name))) // get next file matching pattern
|
||||
if((found = panel_iter.next(name))) // get next file matching pattern
|
||||
{
|
||||
addFloaterEntry(name.c_str()); // and add it to the list (file name only; localization code takes care of rest of path)
|
||||
}
|
||||
}
|
||||
|
||||
found = TRUE;
|
||||
|
||||
LLDirIterator sidepanel_iter(getLocalizedDirectory(), "sidepanel_*.xml");
|
||||
while(found) // for every sidepanel file that matches the pattern
|
||||
{
|
||||
if((found = gDirUtilp->getNextFileInDir(getLocalizedDirectory(), "sidepanel_*.xml", name))) // get next file matching pattern
|
||||
if((found = sidepanel_iter.next(name))) // get next file matching pattern
|
||||
{
|
||||
addFloaterEntry(name.c_str()); // and add it to the list (file name only; localization code takes care of rest of path)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
|
||||
#include "llview.h"
|
||||
#include "lldarray.h" // *TODO: Eliminate, forward declare
|
||||
#include "lluiimage.h"
|
||||
|
||||
class LLFontGL;
|
||||
class LLFolderView;
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
#include <string>
|
||||
#include <map>
|
||||
#include <boost/function.hpp>
|
||||
#include <boost/signals2.hpp>
|
||||
|
||||
class LLSD;
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -32,6 +32,7 @@
|
|||
#include "lltrans.h"
|
||||
#include "llviewercontrol.h"
|
||||
|
||||
#include "lldiriterator.h"
|
||||
#include "llinstantmessage.h"
|
||||
#include "llsingleton.h" // for LLSingleton
|
||||
|
||||
|
|
@ -602,7 +603,8 @@ std::string LLLogChat::oldLogFileName(std::string filename)
|
|||
//LL_INFOS("") << "Checking:" << directory << " for " << pattern << LL_ENDL;/* uncomment if you want to verify step, delete on commit */
|
||||
std::vector<std::string> allfiles;
|
||||
|
||||
while (gDirUtilp->getNextFileInDir(directory, pattern, scanResult))
|
||||
LLDirIterator iter(directory, pattern);
|
||||
while (iter.next(scanResult))
|
||||
{
|
||||
//LL_INFOS("") << "Found :" << scanResult << LL_ENDL;
|
||||
allfiles.push_back(scanResult);
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
#include "llview.h"
|
||||
#include "llmutelist.h"
|
||||
#include "llspeakingindicatormanager.h"
|
||||
#include "lluiimage.h"
|
||||
|
||||
class LLTextBox;
|
||||
class LLUICtrlFactory;
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@
|
|||
#include "llimview.h"
|
||||
#include "llmenubutton.h"
|
||||
#include "llnotificationsutil.h"
|
||||
#include "llslurl.h"
|
||||
#include "lltexteditor.h"
|
||||
#include "lltexturectrl.h"
|
||||
#include "lltoggleablemenu.h"
|
||||
|
|
|
|||
|
|
@ -44,6 +44,7 @@
|
|||
#include "llnotificationsutil.h"
|
||||
#include "llscrolllistitem.h"
|
||||
#include "llspinctrl.h"
|
||||
#include "llslurl.h"
|
||||
#include "lltextbox.h"
|
||||
#include "lltexteditor.h"
|
||||
#include "lltexturectrl.h"
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@
|
|||
#include "llscrolllistctrl.h"
|
||||
#include "llscrolllistitem.h"
|
||||
#include "llscrolllistcell.h"
|
||||
#include "llslurl.h"
|
||||
#include "lltabcontainer.h"
|
||||
#include "lltextbox.h"
|
||||
#include "lltexteditor.h"
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@
|
|||
#include "llassetuploadresponders.h"
|
||||
#include "llcheckboxctrl.h"
|
||||
#include "llcombobox.h"
|
||||
#include "lldatapacker.h"
|
||||
#include "lldelayedgestureerror.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llgesturemgr.h"
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@
|
|||
#include "llinventoryobserver.h"
|
||||
#include "lllineeditor.h"
|
||||
#include "llradiogroup.h"
|
||||
#include "llslurl.h"
|
||||
#include "llviewercontrol.h"
|
||||
#include "llviewerinventory.h"
|
||||
#include "llviewerobjectlist.h"
|
||||
|
|
|
|||
|
|
@ -35,7 +35,6 @@
|
|||
#include "llagentwearables.h"
|
||||
#include "llappearancemgr.h"
|
||||
#include "lldictionary.h"
|
||||
//#include "llfirstuse.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llfloatertools.h"
|
||||
#include "llgesturemgr.h"
|
||||
|
|
|
|||
|
|
@ -29,6 +29,8 @@
|
|||
|
||||
// newview includes
|
||||
#include "llagent.h" // gAgent
|
||||
#include "llslurl.h"
|
||||
#include "lluicolor.h"
|
||||
#include "lluicolortable.h"
|
||||
#include "llviewercontrol.h" // gSavedSettings
|
||||
#include "llviewerregion.h"
|
||||
|
|
|
|||
|
|
@ -28,6 +28,7 @@
|
|||
#define LL_LLVIEWERKEYBOARD_H
|
||||
|
||||
#include "llkeyboard.h" // For EKeystate
|
||||
#include "llinitparam.h"
|
||||
|
||||
const S32 MAX_NAMED_FUNCTIONS = 100;
|
||||
const S32 MAX_KEY_BINDINGS = 128; // was 60
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -37,6 +37,7 @@
|
|||
|
||||
// newview includes
|
||||
#include "llagent.h"
|
||||
#include "llagentaccess.h"
|
||||
#include "llagentcamera.h"
|
||||
#include "llagentwearables.h"
|
||||
#include "llagentpilot.h"
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@
|
|||
|
||||
// Viewer includes
|
||||
#include "llagent.h"
|
||||
#include "llagentaccess.h"
|
||||
#include "llviewerwindow.h"
|
||||
#include "llviewercontrol.h"
|
||||
//#include "llfirstuse.h"
|
||||
|
|
@ -54,6 +55,7 @@
|
|||
#include "llresmgr.h"
|
||||
#include "llsdutil.h"
|
||||
#include "llsdutil_math.h"
|
||||
#include "llslurl.h"
|
||||
#include "llstatusbar.h"
|
||||
#include "llui.h"
|
||||
#include "llviewertexture.h"
|
||||
|
|
|
|||
|
|
@ -99,8 +99,6 @@
|
|||
#include "llcoord.h"
|
||||
#include "llcoordframe.h"
|
||||
#include "llcrc.h"
|
||||
#include "llinterp.h"
|
||||
#include "llperlin.h"
|
||||
#include "llplane.h"
|
||||
#include "llquantize.h"
|
||||
#include "llrand.h"
|
||||
|
|
@ -109,7 +107,6 @@
|
|||
#include "m3math.h"
|
||||
#include "m4math.h"
|
||||
#include "llquaternion.h"
|
||||
#include "raytrace.h"
|
||||
#include "v2math.h"
|
||||
#include "v3color.h"
|
||||
#include "v3dmath.h"
|
||||
|
|
@ -117,16 +114,12 @@
|
|||
#include "v4color.h"
|
||||
#include "v4coloru.h"
|
||||
#include "v4math.h"
|
||||
////#include "vmath.h"
|
||||
#include "xform.h"
|
||||
|
||||
// Library includes from llvfs
|
||||
#include "lldir.h"
|
||||
|
||||
// Library includes from llmessage project
|
||||
|
||||
// Library includes from llmessage project
|
||||
#include "llcachename.h"
|
||||
|
||||
// llxuixml
|
||||
#include "llinitparam.h"
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@
|
|||
#include "llagentcamera.h"
|
||||
#include "llcallingcard.h"
|
||||
#include "llcaphttpsender.h"
|
||||
#include "llcapabilitylistener.h"
|
||||
#include "llcommandhandler.h"
|
||||
#include "lldir.h"
|
||||
#include "lleventpoll.h"
|
||||
|
|
@ -76,6 +77,71 @@
|
|||
const F32 WATER_TEXTURE_SCALE = 8.f; // Number of times to repeat the water texture across a region
|
||||
const S16 MAX_MAP_DIST = 10;
|
||||
|
||||
typedef std::map<std::string, std::string> CapabilityMap;
|
||||
|
||||
class LLViewerRegionImpl {
|
||||
public:
|
||||
LLViewerRegionImpl(LLViewerRegion * region, LLHost const & host)
|
||||
: mHost(host),
|
||||
mCompositionp(NULL),
|
||||
mEventPoll(NULL),
|
||||
// I'd prefer to set the LLCapabilityListener name to match the region
|
||||
// name -- it's disappointing that's not available at construction time.
|
||||
// We could instead store an LLCapabilityListener*, making
|
||||
// setRegionNameAndZone() replace the instance. Would that pose
|
||||
// consistency problems? Can we even request a capability before calling
|
||||
// setRegionNameAndZone()?
|
||||
// For testability -- the new Michael Feathers paradigm --
|
||||
// LLCapabilityListener binds all the globals it expects to need at
|
||||
// construction time.
|
||||
mCapabilityListener(host.getString(), gMessageSystem, *region,
|
||||
gAgent.getID(), gAgent.getSessionID())
|
||||
{
|
||||
}
|
||||
|
||||
// The surfaces and other layers
|
||||
LLSurface* mLandp;
|
||||
|
||||
// Region geometry data
|
||||
LLVector3d mOriginGlobal; // Location of southwest corner of region (meters)
|
||||
LLVector3d mCenterGlobal; // Location of center in world space (meters)
|
||||
LLHost mHost;
|
||||
|
||||
// The unique ID for this region.
|
||||
LLUUID mRegionID;
|
||||
|
||||
// region/estate owner - usually null.
|
||||
LLUUID mOwnerID;
|
||||
|
||||
// Network statistics for the region's circuit...
|
||||
LLTimer mLastNetUpdate;
|
||||
|
||||
// Misc
|
||||
LLVLComposition *mCompositionp; // Composition layer for the surface
|
||||
|
||||
LLVOCacheEntry::vocache_entry_map_t mCacheMap;
|
||||
// time?
|
||||
// LRU info?
|
||||
|
||||
// Cache ID is unique per-region, across renames, moving locations,
|
||||
// etc.
|
||||
LLUUID mCacheID;
|
||||
|
||||
CapabilityMap mCapabilities;
|
||||
|
||||
LLEventPoll* mEventPoll;
|
||||
|
||||
/// Post an event to this LLCapabilityListener to invoke a capability message on
|
||||
/// this LLViewerRegion's server
|
||||
/// (https://wiki.lindenlab.com/wiki/Viewer:Messaging/Messaging_Notes#Capabilities)
|
||||
LLCapabilityListener mCapabilityListener;
|
||||
|
||||
//spatial partitions for objects in this region
|
||||
std::vector<LLSpatialPartition*> mObjectPartition;
|
||||
|
||||
LLHTTPClient::ResponderPtr mHttpResponderPtr ;
|
||||
};
|
||||
|
||||
// support for secondlife:///app/region/{REGION} SLapps
|
||||
// N.B. this is defined to work exactly like the classic secondlife://{REGION}
|
||||
// However, the later syntax cannot support spaces in the region name because
|
||||
|
|
@ -191,15 +257,12 @@ LLViewerRegion::LLViewerRegion(const U64 &handle,
|
|||
const U32 grids_per_region_edge,
|
||||
const U32 grids_per_patch_edge,
|
||||
const F32 region_width_meters)
|
||||
: mCenterGlobal(),
|
||||
: mImpl(new LLViewerRegionImpl(this, host)),
|
||||
mHandle(handle),
|
||||
mHost( host ),
|
||||
mTimeDilation(1.0f),
|
||||
mName(""),
|
||||
mZoning(""),
|
||||
mOwnerID(),
|
||||
mIsEstateManager(FALSE),
|
||||
mCompositionp(NULL),
|
||||
mRegionFlags( REGION_FLAGS_DEFAULT ),
|
||||
mSimAccess( SIM_ACCESS_MIN ),
|
||||
mBillableFactor(1.0),
|
||||
|
|
@ -212,37 +275,27 @@ LLViewerRegion::LLViewerRegion(const U64 &handle,
|
|||
mHttpUrl(""),
|
||||
mCacheLoaded(FALSE),
|
||||
mCacheDirty(FALSE),
|
||||
mCacheID(),
|
||||
mEventPoll(NULL),
|
||||
mReleaseNotesRequested(FALSE),
|
||||
// I'd prefer to set the LLCapabilityListener name to match the region
|
||||
// name -- it's disappointing that's not available at construction time.
|
||||
// We could instead store an LLCapabilityListener*, making
|
||||
// setRegionNameAndZone() replace the instance. Would that pose
|
||||
// consistency problems? Can we even request a capability before calling
|
||||
// setRegionNameAndZone()?
|
||||
// For testability -- the new Michael Feathers paradigm --
|
||||
// LLCapabilityListener binds all the globals it expects to need at
|
||||
// construction time.
|
||||
mCapabilityListener(host.getString(), gMessageSystem, *this,
|
||||
gAgent.getID(), gAgent.getSessionID()),
|
||||
mCapabilitiesReceived(false)
|
||||
{
|
||||
mWidth = region_width_meters;
|
||||
mOriginGlobal = from_region_handle(handle);
|
||||
mImpl->mOriginGlobal = from_region_handle(handle);
|
||||
updateRenderMatrix();
|
||||
|
||||
mLandp = new LLSurface('l', NULL);
|
||||
mImpl->mLandp = new LLSurface('l', NULL);
|
||||
|
||||
// Create the composition layer for the surface
|
||||
mCompositionp = new LLVLComposition(mLandp, grids_per_region_edge, region_width_meters/grids_per_region_edge);
|
||||
mCompositionp->setSurface(mLandp);
|
||||
mImpl->mCompositionp =
|
||||
new LLVLComposition(mImpl->mLandp,
|
||||
grids_per_region_edge,
|
||||
region_width_meters / grids_per_region_edge);
|
||||
mImpl->mCompositionp->setSurface(mImpl->mLandp);
|
||||
|
||||
// Create the surfaces
|
||||
mLandp->setRegion(this);
|
||||
mLandp->create(grids_per_region_edge,
|
||||
mImpl->mLandp->setRegion(this);
|
||||
mImpl->mLandp->create(grids_per_region_edge,
|
||||
grids_per_patch_edge,
|
||||
mOriginGlobal,
|
||||
mImpl->mOriginGlobal,
|
||||
mWidth);
|
||||
|
||||
mParcelOverlay = new LLViewerParcelOverlay(this, region_width_meters);
|
||||
|
|
@ -255,24 +308,24 @@ LLViewerRegion::LLViewerRegion(const U64 &handle,
|
|||
|
||||
//create object partitions
|
||||
//MUST MATCH declaration of eObjectPartitions
|
||||
mObjectPartition.push_back(new LLHUDPartition()); //PARTITION_HUD
|
||||
mObjectPartition.push_back(new LLTerrainPartition()); //PARTITION_TERRAIN
|
||||
mObjectPartition.push_back(new LLVoidWaterPartition()); //PARTITION_VOIDWATER
|
||||
mObjectPartition.push_back(new LLWaterPartition()); //PARTITION_WATER
|
||||
mObjectPartition.push_back(new LLTreePartition()); //PARTITION_TREE
|
||||
mObjectPartition.push_back(new LLParticlePartition()); //PARTITION_PARTICLE
|
||||
mObjectPartition.push_back(new LLCloudPartition()); //PARTITION_CLOUD
|
||||
mObjectPartition.push_back(new LLGrassPartition()); //PARTITION_GRASS
|
||||
mObjectPartition.push_back(new LLVolumePartition()); //PARTITION_VOLUME
|
||||
mObjectPartition.push_back(new LLBridgePartition()); //PARTITION_BRIDGE
|
||||
mObjectPartition.push_back(new LLHUDParticlePartition());//PARTITION_HUD_PARTICLE
|
||||
mObjectPartition.push_back(NULL); //PARTITION_NONE
|
||||
mImpl->mObjectPartition.push_back(new LLHUDPartition()); //PARTITION_HUD
|
||||
mImpl->mObjectPartition.push_back(new LLTerrainPartition()); //PARTITION_TERRAIN
|
||||
mImpl->mObjectPartition.push_back(new LLVoidWaterPartition()); //PARTITION_VOIDWATER
|
||||
mImpl->mObjectPartition.push_back(new LLWaterPartition()); //PARTITION_WATER
|
||||
mImpl->mObjectPartition.push_back(new LLTreePartition()); //PARTITION_TREE
|
||||
mImpl->mObjectPartition.push_back(new LLParticlePartition()); //PARTITION_PARTICLE
|
||||
mImpl->mObjectPartition.push_back(new LLCloudPartition()); //PARTITION_CLOUD
|
||||
mImpl->mObjectPartition.push_back(new LLGrassPartition()); //PARTITION_GRASS
|
||||
mImpl->mObjectPartition.push_back(new LLVolumePartition()); //PARTITION_VOLUME
|
||||
mImpl->mObjectPartition.push_back(new LLBridgePartition()); //PARTITION_BRIDGE
|
||||
mImpl->mObjectPartition.push_back(new LLHUDParticlePartition());//PARTITION_HUD_PARTICLE
|
||||
mImpl->mObjectPartition.push_back(NULL); //PARTITION_NONE
|
||||
}
|
||||
|
||||
|
||||
void LLViewerRegion::initStats()
|
||||
{
|
||||
mLastNetUpdate.reset();
|
||||
mImpl->mLastNetUpdate.reset();
|
||||
mPacketsIn = 0;
|
||||
mBitsIn = 0;
|
||||
mLastBitsIn = 0;
|
||||
|
|
@ -287,9 +340,9 @@ void LLViewerRegion::initStats()
|
|||
|
||||
LLViewerRegion::~LLViewerRegion()
|
||||
{
|
||||
if(mHttpResponderPtr)
|
||||
if(mImpl->mHttpResponderPtr)
|
||||
{
|
||||
(static_cast<BaseCapabilitiesComplete*>(mHttpResponderPtr.get()))->setRegion(NULL) ;
|
||||
(static_cast<BaseCapabilitiesComplete*>(mImpl->mHttpResponderPtr.get()))->setRegion(NULL) ;
|
||||
}
|
||||
|
||||
gVLManager.cleanupData(this);
|
||||
|
|
@ -301,21 +354,44 @@ LLViewerRegion::~LLViewerRegion()
|
|||
|
||||
gObjectList.killObjects(this);
|
||||
|
||||
delete mCompositionp;
|
||||
delete mImpl->mCompositionp;
|
||||
delete mParcelOverlay;
|
||||
delete mLandp;
|
||||
delete mEventPoll;
|
||||
LLHTTPSender::clearSender(mHost);
|
||||
delete mImpl->mLandp;
|
||||
delete mImpl->mEventPoll;
|
||||
LLHTTPSender::clearSender(mImpl->mHost);
|
||||
|
||||
saveObjectCache();
|
||||
|
||||
std::for_each(mObjectPartition.begin(), mObjectPartition.end(), DeletePointer());
|
||||
std::for_each(mImpl->mObjectPartition.begin(), mImpl->mObjectPartition.end(), DeletePointer());
|
||||
|
||||
delete mImpl;
|
||||
mImpl = NULL;
|
||||
}
|
||||
|
||||
LLEventPump& LLViewerRegion::getCapAPI() const
|
||||
{
|
||||
return mImpl->mCapabilityListener.getCapAPI();
|
||||
}
|
||||
|
||||
/*virtual*/
|
||||
const LLHost& LLViewerRegion::getHost() const
|
||||
{
|
||||
return mHost;
|
||||
return mImpl->mHost;
|
||||
}
|
||||
|
||||
LLSurface & LLViewerRegion::getLand() const
|
||||
{
|
||||
return *mImpl->mLandp;
|
||||
}
|
||||
|
||||
const LLUUID& LLViewerRegion::getRegionID() const
|
||||
{
|
||||
return mImpl->mRegionID;
|
||||
}
|
||||
|
||||
void LLViewerRegion::setRegionID(const LLUUID& region_id)
|
||||
{
|
||||
mImpl->mRegionID = region_id;
|
||||
}
|
||||
|
||||
void LLViewerRegion::loadObjectCache()
|
||||
|
|
@ -330,7 +406,7 @@ void LLViewerRegion::loadObjectCache()
|
|||
|
||||
if(LLVOCache::hasInstance())
|
||||
{
|
||||
LLVOCache::getInstance()->readFromCache(mHandle, mCacheID, mCacheMap) ;
|
||||
LLVOCache::getInstance()->readFromCache(mHandle, mImpl->mCacheID, mImpl->mCacheMap) ;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -342,32 +418,32 @@ void LLViewerRegion::saveObjectCache()
|
|||
return;
|
||||
}
|
||||
|
||||
if (mCacheMap.empty())
|
||||
if (mImpl->mCacheMap.empty())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if(LLVOCache::hasInstance())
|
||||
{
|
||||
LLVOCache::getInstance()->writeToCache(mHandle, mCacheID, mCacheMap, mCacheDirty) ;
|
||||
LLVOCache::getInstance()->writeToCache(mHandle, mImpl->mCacheID, mImpl->mCacheMap, mCacheDirty) ;
|
||||
mCacheDirty = FALSE;
|
||||
}
|
||||
|
||||
for(LLVOCacheEntry::vocache_entry_map_t::iterator iter = mCacheMap.begin(); iter != mCacheMap.end(); ++iter)
|
||||
for(LLVOCacheEntry::vocache_entry_map_t::iterator iter = mImpl->mCacheMap.begin(); iter != mImpl->mCacheMap.end(); ++iter)
|
||||
{
|
||||
delete iter->second;
|
||||
}
|
||||
mCacheMap.clear();
|
||||
mImpl->mCacheMap.clear();
|
||||
}
|
||||
|
||||
void LLViewerRegion::sendMessage()
|
||||
{
|
||||
gMessageSystem->sendMessage(mHost);
|
||||
gMessageSystem->sendMessage(mImpl->mHost);
|
||||
}
|
||||
|
||||
void LLViewerRegion::sendReliableMessage()
|
||||
{
|
||||
gMessageSystem->sendReliable(mHost);
|
||||
gMessageSystem->sendReliable(mImpl->mHost);
|
||||
}
|
||||
|
||||
void LLViewerRegion::setFlags(BOOL b, U32 flags)
|
||||
|
|
@ -384,12 +460,12 @@ void LLViewerRegion::setFlags(BOOL b, U32 flags)
|
|||
|
||||
void LLViewerRegion::setWaterHeight(F32 water_level)
|
||||
{
|
||||
mLandp->setWaterHeight(water_level);
|
||||
mImpl->mLandp->setWaterHeight(water_level);
|
||||
}
|
||||
|
||||
F32 LLViewerRegion::getWaterHeight() const
|
||||
{
|
||||
return mLandp->getWaterHeight();
|
||||
return mImpl->mLandp->getWaterHeight();
|
||||
}
|
||||
|
||||
BOOL LLViewerRegion::isVoiceEnabled() const
|
||||
|
|
@ -405,9 +481,9 @@ void LLViewerRegion::setRegionFlags(U32 flags)
|
|||
|
||||
void LLViewerRegion::setOriginGlobal(const LLVector3d &origin_global)
|
||||
{
|
||||
mOriginGlobal = origin_global;
|
||||
mImpl->mOriginGlobal = origin_global;
|
||||
updateRenderMatrix();
|
||||
mLandp->setOriginGlobal(origin_global);
|
||||
mImpl->mLandp->setOriginGlobal(origin_global);
|
||||
mWind.setOriginGlobal(origin_global);
|
||||
mCloudLayer.setOriginGlobal(origin_global);
|
||||
calculateCenterGlobal();
|
||||
|
|
@ -423,16 +499,34 @@ void LLViewerRegion::setTimeDilation(F32 time_dilation)
|
|||
mTimeDilation = time_dilation;
|
||||
}
|
||||
|
||||
const LLVector3d & LLViewerRegion::getOriginGlobal() const
|
||||
{
|
||||
return mImpl->mOriginGlobal;
|
||||
}
|
||||
|
||||
LLVector3 LLViewerRegion::getOriginAgent() const
|
||||
{
|
||||
return gAgent.getPosAgentFromGlobal(mOriginGlobal);
|
||||
return gAgent.getPosAgentFromGlobal(mImpl->mOriginGlobal);
|
||||
}
|
||||
|
||||
const LLVector3d & LLViewerRegion::getCenterGlobal() const
|
||||
{
|
||||
return mImpl->mCenterGlobal;
|
||||
}
|
||||
|
||||
LLVector3 LLViewerRegion::getCenterAgent() const
|
||||
{
|
||||
return gAgent.getPosAgentFromGlobal(mCenterGlobal);
|
||||
return gAgent.getPosAgentFromGlobal(mImpl->mCenterGlobal);
|
||||
}
|
||||
|
||||
void LLViewerRegion::setOwner(const LLUUID& owner_id)
|
||||
{
|
||||
mImpl->mOwnerID = owner_id;
|
||||
}
|
||||
|
||||
const LLUUID& LLViewerRegion::getOwner() const
|
||||
{
|
||||
return mImpl->mOwnerID;
|
||||
}
|
||||
|
||||
void LLViewerRegion::setRegionNameAndZone (const std::string& name_zone)
|
||||
|
|
@ -557,7 +651,10 @@ void LLViewerRegion::processRegionInfo(LLMessageSystem* msg, void**)
|
|||
LLFloaterReporter::processRegionInfo(msg);
|
||||
}
|
||||
|
||||
|
||||
void LLViewerRegion::setCacheID(const LLUUID& id)
|
||||
{
|
||||
mImpl->mCacheID = id;
|
||||
}
|
||||
|
||||
S32 LLViewerRegion::renderPropertyLines()
|
||||
{
|
||||
|
|
@ -585,7 +682,7 @@ BOOL LLViewerRegion::idleUpdate(F32 max_update_time)
|
|||
{
|
||||
LLMemType mt_ivr(LLMemType::MTYPE_IDLE_UPDATE_VIEWER_REGION);
|
||||
// did_update returns TRUE if we did at least one significant update
|
||||
BOOL did_update = mLandp->idleUpdate(max_update_time);
|
||||
BOOL did_update = mImpl->mLandp->idleUpdate(max_update_time);
|
||||
|
||||
if (mParcelOverlay)
|
||||
{
|
||||
|
|
@ -600,7 +697,7 @@ BOOL LLViewerRegion::idleUpdate(F32 max_update_time)
|
|||
// As above, but forcibly do the update.
|
||||
void LLViewerRegion::forceUpdate()
|
||||
{
|
||||
mLandp->idleUpdate(0.f);
|
||||
mImpl->mLandp->idleUpdate(0.f);
|
||||
|
||||
if (mParcelOverlay)
|
||||
{
|
||||
|
|
@ -610,17 +707,21 @@ void LLViewerRegion::forceUpdate()
|
|||
|
||||
void LLViewerRegion::connectNeighbor(LLViewerRegion *neighborp, U32 direction)
|
||||
{
|
||||
mLandp->connectNeighbor(neighborp->mLandp, direction);
|
||||
mImpl->mLandp->connectNeighbor(neighborp->mImpl->mLandp, direction);
|
||||
mCloudLayer.connectNeighbor(&(neighborp->mCloudLayer), direction);
|
||||
}
|
||||
|
||||
|
||||
void LLViewerRegion::disconnectAllNeighbors()
|
||||
{
|
||||
mLandp->disconnectAllNeighbors();
|
||||
mImpl->mLandp->disconnectAllNeighbors();
|
||||
mCloudLayer.disconnectAllNeighbors();
|
||||
}
|
||||
|
||||
LLVLComposition * LLViewerRegion::getComposition() const
|
||||
{
|
||||
return mImpl->mCompositionp;
|
||||
}
|
||||
|
||||
F32 LLViewerRegion::getCompositionXY(const S32 x, const S32 y) const
|
||||
{
|
||||
|
|
@ -714,10 +815,10 @@ F32 LLViewerRegion::getCompositionXY(const S32 x, const S32 y) const
|
|||
|
||||
void LLViewerRegion::calculateCenterGlobal()
|
||||
{
|
||||
mCenterGlobal = mOriginGlobal;
|
||||
mCenterGlobal.mdV[VX] += 0.5 * mWidth;
|
||||
mCenterGlobal.mdV[VY] += 0.5 * mWidth;
|
||||
mCenterGlobal.mdV[VZ] = 0.5*mLandp->getMinZ() + mLandp->getMaxZ();
|
||||
mImpl->mCenterGlobal = mImpl->mOriginGlobal;
|
||||
mImpl->mCenterGlobal.mdV[VX] += 0.5 * mWidth;
|
||||
mImpl->mCenterGlobal.mdV[VY] += 0.5 * mWidth;
|
||||
mImpl->mCenterGlobal.mdV[VZ] = 0.5 * mImpl->mLandp->getMinZ() + mImpl->mLandp->getMaxZ();
|
||||
}
|
||||
|
||||
void LLViewerRegion::calculateCameraDistance()
|
||||
|
|
@ -728,7 +829,7 @@ void LLViewerRegion::calculateCameraDistance()
|
|||
std::ostream& operator<<(std::ostream &s, const LLViewerRegion ®ion)
|
||||
{
|
||||
s << "{ ";
|
||||
s << region.mHost;
|
||||
s << region.mImpl->mHost;
|
||||
s << " mOriginGlobal = " << region.getOriginGlobal()<< "\n";
|
||||
std::string name(region.getName()), zone(region.getZoning());
|
||||
if (! name.empty())
|
||||
|
|
@ -748,9 +849,9 @@ std::ostream& operator<<(std::ostream &s, const LLViewerRegion ®ion)
|
|||
|
||||
void LLViewerRegion::updateNetStats()
|
||||
{
|
||||
F32 dt = mLastNetUpdate.getElapsedTimeAndResetF32();
|
||||
F32 dt = mImpl->mLastNetUpdate.getElapsedTimeAndResetF32();
|
||||
|
||||
LLCircuitData *cdp = gMessageSystem->mCircuitInfo.findCircuit(mHost);
|
||||
LLCircuitData *cdp = gMessageSystem->mCircuitInfo.findCircuit(mImpl->mHost);
|
||||
if (!cdp)
|
||||
{
|
||||
mAlive = false;
|
||||
|
|
@ -779,10 +880,10 @@ void LLViewerRegion::updateNetStats()
|
|||
|
||||
U32 LLViewerRegion::getPacketsLost() const
|
||||
{
|
||||
LLCircuitData *cdp = gMessageSystem->mCircuitInfo.findCircuit(mHost);
|
||||
LLCircuitData *cdp = gMessageSystem->mCircuitInfo.findCircuit(mImpl->mHost);
|
||||
if (!cdp)
|
||||
{
|
||||
llinfos << "LLViewerRegion::getPacketsLost couldn't find circuit for " << mHost << llendl;
|
||||
llinfos << "LLViewerRegion::getPacketsLost couldn't find circuit for " << mImpl->mHost << llendl;
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
|
|
@ -791,6 +892,16 @@ U32 LLViewerRegion::getPacketsLost() const
|
|||
}
|
||||
}
|
||||
|
||||
void LLViewerRegion::setHttpResponderPtrNULL()
|
||||
{
|
||||
mImpl->mHttpResponderPtr = NULL;
|
||||
}
|
||||
|
||||
const LLHTTPClient::ResponderPtr LLViewerRegion::getHttpResponderPtr() const
|
||||
{
|
||||
return mImpl->mHttpResponderPtr;
|
||||
}
|
||||
|
||||
BOOL LLViewerRegion::pointInRegionGlobal(const LLVector3d &point_global) const
|
||||
{
|
||||
LLVector3 pos_region = getPosRegionFromGlobal(point_global);
|
||||
|
|
@ -817,7 +928,7 @@ BOOL LLViewerRegion::pointInRegionGlobal(const LLVector3d &point_global) const
|
|||
LLVector3 LLViewerRegion::getPosRegionFromGlobal(const LLVector3d &point_global) const
|
||||
{
|
||||
LLVector3 pos_region;
|
||||
pos_region.setVec(point_global - mOriginGlobal);
|
||||
pos_region.setVec(point_global - mImpl->mOriginGlobal);
|
||||
return pos_region;
|
||||
}
|
||||
|
||||
|
|
@ -825,7 +936,7 @@ LLVector3d LLViewerRegion::getPosGlobalFromRegion(const LLVector3 &pos_region) c
|
|||
{
|
||||
LLVector3d pos_region_d;
|
||||
pos_region_d.setVec(pos_region);
|
||||
return pos_region_d + mOriginGlobal;
|
||||
return pos_region_d + mImpl->mOriginGlobal;
|
||||
}
|
||||
|
||||
LLVector3 LLViewerRegion::getPosAgentFromRegion(const LLVector3 &pos_region) const
|
||||
|
|
@ -842,7 +953,7 @@ LLVector3 LLViewerRegion::getPosRegionFromAgent(const LLVector3 &pos_agent) cons
|
|||
|
||||
F32 LLViewerRegion::getLandHeightRegion(const LLVector3& region_pos)
|
||||
{
|
||||
return mLandp->resolveHeightRegion( region_pos );
|
||||
return mImpl->mLandp->resolveHeightRegion( region_pos );
|
||||
}
|
||||
|
||||
bool LLViewerRegion::isAlive()
|
||||
|
|
@ -994,7 +1105,7 @@ void LLViewerRegion::updateCoarseLocations(LLMessageSystem* msg)
|
|||
// treat the target specially for the map
|
||||
if(i == target_index)
|
||||
{
|
||||
LLVector3d global_pos(mOriginGlobal);
|
||||
LLVector3d global_pos(mImpl->mOriginGlobal);
|
||||
global_pos.mdV[VX] += (F64)(x_pos);
|
||||
global_pos.mdV[VY] += (F64)(y_pos);
|
||||
global_pos.mdV[VZ] += (F64)(z_pos) * 4.0;
|
||||
|
|
@ -1034,7 +1145,7 @@ LLViewerRegion::eCacheUpdateResult LLViewerRegion::cacheFullUpdate(LLViewerObjec
|
|||
U32 local_id = objectp->getLocalID();
|
||||
U32 crc = objectp->getCRC();
|
||||
|
||||
LLVOCacheEntry* entry = get_if_there(mCacheMap, local_id, (LLVOCacheEntry*)NULL);
|
||||
LLVOCacheEntry* entry = get_if_there(mImpl->mCacheMap, local_id, (LLVOCacheEntry*)NULL);
|
||||
|
||||
if (entry)
|
||||
{
|
||||
|
|
@ -1047,10 +1158,10 @@ LLViewerRegion::eCacheUpdateResult LLViewerRegion::cacheFullUpdate(LLViewerObjec
|
|||
}
|
||||
|
||||
// Update the cache entry
|
||||
mCacheMap.erase(local_id);
|
||||
mImpl->mCacheMap.erase(local_id);
|
||||
delete entry;
|
||||
entry = new LLVOCacheEntry(local_id, crc, dp);
|
||||
mCacheMap[local_id] = entry;
|
||||
mImpl->mCacheMap[local_id] = entry;
|
||||
return CACHE_UPDATE_CHANGED;
|
||||
}
|
||||
|
||||
|
|
@ -1058,15 +1169,15 @@ LLViewerRegion::eCacheUpdateResult LLViewerRegion::cacheFullUpdate(LLViewerObjec
|
|||
|
||||
// Create new entry and add to map
|
||||
eCacheUpdateResult result = CACHE_UPDATE_ADDED;
|
||||
if (mCacheMap.size() > MAX_OBJECT_CACHE_ENTRIES)
|
||||
if (mImpl->mCacheMap.size() > MAX_OBJECT_CACHE_ENTRIES)
|
||||
{
|
||||
mCacheMap.erase(mCacheMap.begin());
|
||||
mImpl->mCacheMap.erase(mImpl->mCacheMap.begin());
|
||||
result = CACHE_UPDATE_REPLACED;
|
||||
|
||||
}
|
||||
entry = new LLVOCacheEntry(local_id, crc, dp);
|
||||
|
||||
mCacheMap[local_id] = entry;
|
||||
mImpl->mCacheMap[local_id] = entry;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
@ -1076,7 +1187,7 @@ LLDataPacker *LLViewerRegion::getDP(U32 local_id, U32 crc, U8 &cache_miss_type)
|
|||
{
|
||||
llassert(mCacheLoaded);
|
||||
|
||||
LLVOCacheEntry* entry = get_if_there(mCacheMap, local_id, (LLVOCacheEntry*)NULL);
|
||||
LLVOCacheEntry* entry = get_if_there(mImpl->mCacheMap, local_id, (LLVOCacheEntry*)NULL);
|
||||
|
||||
if (entry)
|
||||
{
|
||||
|
|
@ -1203,7 +1314,7 @@ void LLViewerRegion::dumpCache()
|
|||
}
|
||||
|
||||
LLVOCacheEntry *entry;
|
||||
for(LLVOCacheEntry::vocache_entry_map_t::iterator iter = mCacheMap.begin(); iter != mCacheMap.end(); ++iter)
|
||||
for(LLVOCacheEntry::vocache_entry_map_t::iterator iter = mImpl->mCacheMap.begin(); iter != mImpl->mCacheMap.end(); ++iter)
|
||||
{
|
||||
entry = iter->second ;
|
||||
|
||||
|
|
@ -1217,7 +1328,7 @@ void LLViewerRegion::dumpCache()
|
|||
change_bin[changes]++;
|
||||
}
|
||||
|
||||
llinfos << "Count " << mCacheMap.size() << llendl;
|
||||
llinfos << "Count " << mImpl->mCacheMap.size() << llendl;
|
||||
for (i = 0; i < BINS; i++)
|
||||
{
|
||||
llinfos << "Hits " << i << " " << hit_bin[i] << llendl;
|
||||
|
|
@ -1360,10 +1471,10 @@ void LLViewerRegion::setSeedCapability(const std::string& url)
|
|||
return;
|
||||
}
|
||||
|
||||
delete mEventPoll;
|
||||
mEventPoll = NULL;
|
||||
delete mImpl->mEventPoll;
|
||||
mImpl->mEventPoll = NULL;
|
||||
|
||||
mCapabilities.clear();
|
||||
mImpl->mCapabilities.clear();
|
||||
setCapability("Seed", url);
|
||||
|
||||
LLSD capabilityNames = LLSD::emptyArray();
|
||||
|
|
@ -1430,25 +1541,25 @@ void LLViewerRegion::setSeedCapability(const std::string& url)
|
|||
|
||||
llinfos << "posting to seed " << url << llendl;
|
||||
|
||||
mHttpResponderPtr = BaseCapabilitiesComplete::build(this) ;
|
||||
LLHTTPClient::post(url, capabilityNames, mHttpResponderPtr);
|
||||
mImpl->mHttpResponderPtr = BaseCapabilitiesComplete::build(this) ;
|
||||
LLHTTPClient::post(url, capabilityNames, mImpl->mHttpResponderPtr);
|
||||
}
|
||||
|
||||
void LLViewerRegion::setCapability(const std::string& name, const std::string& url)
|
||||
{
|
||||
if(name == "EventQueueGet")
|
||||
{
|
||||
delete mEventPoll;
|
||||
mEventPoll = NULL;
|
||||
mEventPoll = new LLEventPoll(url, getHost());
|
||||
delete mImpl->mEventPoll;
|
||||
mImpl->mEventPoll = NULL;
|
||||
mImpl->mEventPoll = new LLEventPoll(url, getHost());
|
||||
}
|
||||
else if(name == "UntrustedSimulatorMessage")
|
||||
{
|
||||
LLHTTPSender::setSender(mHost, new LLCapHTTPSender(url));
|
||||
LLHTTPSender::setSender(mImpl->mHost, new LLCapHTTPSender(url));
|
||||
}
|
||||
else
|
||||
{
|
||||
mCapabilities[name] = url;
|
||||
mImpl->mCapabilities[name] = url;
|
||||
if(name == "GetTexture")
|
||||
{
|
||||
mHttpUrl = url ;
|
||||
|
|
@ -1463,8 +1574,8 @@ bool LLViewerRegion::isSpecialCapabilityName(const std::string &name)
|
|||
|
||||
std::string LLViewerRegion::getCapability(const std::string& name) const
|
||||
{
|
||||
CapabilityMap::const_iterator iter = mCapabilities.find(name);
|
||||
if(iter == mCapabilities.end())
|
||||
CapabilityMap::const_iterator iter = mImpl->mCapabilities.find(name);
|
||||
if(iter == mImpl->mCapabilities.end())
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
|
@ -1485,7 +1596,7 @@ void LLViewerRegion::logActiveCapabilities() const
|
|||
{
|
||||
int count = 0;
|
||||
CapabilityMap::const_iterator iter;
|
||||
for (iter = mCapabilities.begin(); iter != mCapabilities.end(); iter++, count++)
|
||||
for (iter = mImpl->mCapabilities.begin(); iter != mImpl->mCapabilities.end(); ++iter, ++count)
|
||||
{
|
||||
if (!iter->second.empty())
|
||||
{
|
||||
|
|
@ -1497,9 +1608,9 @@ void LLViewerRegion::logActiveCapabilities() const
|
|||
|
||||
LLSpatialPartition* LLViewerRegion::getSpatialPartition(U32 type)
|
||||
{
|
||||
if (type < mObjectPartition.size())
|
||||
if (type < mImpl->mObjectPartition.size())
|
||||
{
|
||||
return mObjectPartition[type];
|
||||
return mImpl->mObjectPartition[type];
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,20 +33,16 @@
|
|||
|
||||
#include "lldarray.h"
|
||||
#include "llwind.h"
|
||||
#include "llbbox.h"
|
||||
#include "llcloud.h"
|
||||
#include "llstat.h"
|
||||
#include "v3dmath.h"
|
||||
#include "llhost.h"
|
||||
#include "llstring.h"
|
||||
#include "llregionflags.h"
|
||||
#include "lluuid.h"
|
||||
#include "lldatapacker.h"
|
||||
#include "llvocache.h"
|
||||
#include "llweb.h"
|
||||
#include "llcapabilityprovider.h"
|
||||
#include "llcapabilitylistener.h"
|
||||
#include "m4math.h" // LLMatrix4
|
||||
#include "llhttpclient.h"
|
||||
|
||||
// Surface id's
|
||||
#define LAND 1
|
||||
|
|
@ -65,6 +61,13 @@ class LLVOCache;
|
|||
class LLVOCacheEntry;
|
||||
class LLSpatialPartition;
|
||||
class LLEventPump;
|
||||
class LLCapabilityListener;
|
||||
class LLDataPacker;
|
||||
class LLDataPackerBinaryBuffer;
|
||||
class LLHost;
|
||||
class LLBBox;
|
||||
|
||||
class LLViewerRegionImpl;
|
||||
|
||||
class LLViewerRegion: public LLCapabilityProvider // implements this interface
|
||||
{
|
||||
|
|
@ -159,19 +162,19 @@ public:
|
|||
F32 getTimeDilation() const { return mTimeDilation; }
|
||||
|
||||
// Origin height is at zero.
|
||||
const LLVector3d &getOriginGlobal() const { return mOriginGlobal; }
|
||||
const LLVector3d &getOriginGlobal() const;
|
||||
LLVector3 getOriginAgent() const;
|
||||
|
||||
// Center is at the height of the water table.
|
||||
const LLVector3d &getCenterGlobal() const { return mCenterGlobal; }
|
||||
const LLVector3d &getCenterGlobal() const;
|
||||
LLVector3 getCenterAgent() const;
|
||||
|
||||
void setRegionNameAndZone(const std::string& name_and_zone);
|
||||
const std::string& getName() const { return mName; }
|
||||
const std::string& getZoning() const { return mZoning; }
|
||||
|
||||
void setOwner(const LLUUID& owner_id) { mOwnerID = owner_id; }
|
||||
const LLUUID& getOwner() const { return mOwnerID; }
|
||||
void setOwner(const LLUUID& owner_id);
|
||||
const LLUUID& getOwner() const;
|
||||
|
||||
// Is the current agent on the estate manager list for this region?
|
||||
void setIsEstateManager(BOOL b) { mIsEstateManager = b; }
|
||||
|
|
@ -206,7 +209,7 @@ public:
|
|||
// can process the message.
|
||||
static void processRegionInfo(LLMessageSystem* msg, void**);
|
||||
|
||||
void setCacheID(const LLUUID& id) { mCacheID = id; }
|
||||
void setCacheID(const LLUUID& id);
|
||||
|
||||
F32 getWidth() const { return mWidth; }
|
||||
|
||||
|
|
@ -222,8 +225,8 @@ public:
|
|||
|
||||
U32 getPacketsLost() const;
|
||||
|
||||
void setHttpResponderPtrNULL() {mHttpResponderPtr = NULL ;}
|
||||
const LLHTTPClient::ResponderPtr getHttpResponderPtr() const {return mHttpResponderPtr ;}
|
||||
void setHttpResponderPtrNULL();
|
||||
const LLHTTPClient::ResponderPtr getHttpResponderPtr() const;
|
||||
|
||||
// Get/set named capability URLs for this region.
|
||||
void setSeedCapability(const std::string& url);
|
||||
|
|
@ -238,21 +241,19 @@ public:
|
|||
static bool isSpecialCapabilityName(const std::string &name);
|
||||
void logActiveCapabilities() const;
|
||||
|
||||
/// Capability-request exception
|
||||
typedef LLCapabilityListener::ArgError ArgError;
|
||||
/// Get LLEventPump on which we listen for capability requests
|
||||
/// (https://wiki.lindenlab.com/wiki/Viewer:Messaging/Messaging_Notes#Capabilities)
|
||||
LLEventPump& getCapAPI() { return mCapabilityListener.getCapAPI(); }
|
||||
LLEventPump& getCapAPI() const;
|
||||
|
||||
/// implements LLCapabilityProvider
|
||||
/*virtual*/ const LLHost& getHost() const;
|
||||
const U64 &getHandle() const { return mHandle; }
|
||||
|
||||
LLSurface &getLand() const { return *mLandp; }
|
||||
LLSurface &getLand() const;
|
||||
|
||||
// set and get the region id
|
||||
const LLUUID& getRegionID() const { return mRegionID; }
|
||||
void setRegionID(const LLUUID& region_id) { mRegionID = region_id; }
|
||||
const LLUUID& getRegionID() const;
|
||||
void setRegionID(const LLUUID& region_id);
|
||||
|
||||
BOOL pointInRegionGlobal(const LLVector3d &point_global) const;
|
||||
LLVector3 getPosRegionFromGlobal(const LLVector3d &point_global) const;
|
||||
|
|
@ -260,7 +261,7 @@ public:
|
|||
LLVector3 getPosAgentFromRegion(const LLVector3 ®ion_pos) const;
|
||||
LLVector3d getPosGlobalFromRegion(const LLVector3 &offset) const;
|
||||
|
||||
LLVLComposition *getComposition() const { return mCompositionp; }
|
||||
LLVLComposition *getComposition() const;
|
||||
F32 getCompositionXY(const S32 x, const S32 y) const;
|
||||
|
||||
BOOL isOwnedSelf(const LLVector3& pos);
|
||||
|
|
@ -347,34 +348,19 @@ public:
|
|||
LLDynamicArray<LLUUID> mMapAvatarIDs;
|
||||
|
||||
private:
|
||||
// The surfaces and other layers
|
||||
LLSurface* mLandp;
|
||||
LLViewerRegionImpl * mImpl;
|
||||
|
||||
// Region geometry data
|
||||
LLVector3d mOriginGlobal; // Location of southwest corner of region (meters)
|
||||
LLVector3d mCenterGlobal; // Location of center in world space (meters)
|
||||
F32 mWidth; // Width of region on a side (meters)
|
||||
|
||||
U64 mHandle;
|
||||
LLHost mHost;
|
||||
|
||||
// The unique ID for this region.
|
||||
LLUUID mRegionID;
|
||||
|
||||
F32 mTimeDilation; // time dilation of physics simulation on simulator
|
||||
|
||||
// simulator name
|
||||
std::string mName;
|
||||
std::string mZoning;
|
||||
|
||||
// region/estate owner - usually null.
|
||||
LLUUID mOwnerID;
|
||||
|
||||
// Is this agent on the estate managers list for this region?
|
||||
BOOL mIsEstateManager;
|
||||
|
||||
// Network statistics for the region's circuit...
|
||||
LLTimer mLastNetUpdate;
|
||||
U32 mPacketsIn;
|
||||
U32 mBitsIn;
|
||||
U32 mLastBitsIn;
|
||||
|
|
@ -386,9 +372,6 @@ private:
|
|||
U32 mPingDelay;
|
||||
F32 mDeltaTime; // Time since last measurement of lastPackets, Bits, etc
|
||||
|
||||
// Misc
|
||||
LLVLComposition *mCompositionp; // Composition layer for the surface
|
||||
|
||||
U32 mRegionFlags; // includes damage flags
|
||||
U8 mSimAccess;
|
||||
F32 mBillableFactor;
|
||||
|
|
@ -398,46 +381,24 @@ private:
|
|||
// Information for Homestead / CR-53
|
||||
S32 mClassID;
|
||||
S32 mCPURatio;
|
||||
|
||||
std::string mColoName;
|
||||
std::string mProductSKU;
|
||||
std::string mProductName;
|
||||
std::string mHttpUrl ;
|
||||
|
||||
|
||||
// Maps local ids to cache entries.
|
||||
// Regions can have order 10,000 objects, so assume
|
||||
// a structure of size 2^14 = 16,000
|
||||
BOOL mCacheLoaded;
|
||||
BOOL mCacheDirty;
|
||||
LLVOCacheEntry::vocache_entry_map_t mCacheMap;
|
||||
|
||||
LLDynamicArray<U32> mCacheMissFull;
|
||||
LLDynamicArray<U32> mCacheMissCRC;
|
||||
// time?
|
||||
// LRU info?
|
||||
|
||||
// Cache ID is unique per-region, across renames, moving locations,
|
||||
// etc.
|
||||
LLUUID mCacheID;
|
||||
|
||||
typedef std::map<std::string, std::string> CapabilityMap;
|
||||
CapabilityMap mCapabilities;
|
||||
|
||||
LLEventPoll* mEventPoll;
|
||||
|
||||
/// Post an event to this LLCapabilityListener to invoke a capability message on
|
||||
/// this LLViewerRegion's server
|
||||
/// (https://wiki.lindenlab.com/wiki/Viewer:Messaging/Messaging_Notes#Capabilities)
|
||||
LLCapabilityListener mCapabilityListener;
|
||||
|
||||
private:
|
||||
bool mAlive; // can become false if circuit disconnects
|
||||
bool mCapabilitiesReceived;
|
||||
|
||||
//spatial partitions for objects in this region
|
||||
std::vector<LLSpatialPartition*> mObjectPartition;
|
||||
|
||||
LLHTTPClient::ResponderPtr mHttpResponderPtr ;
|
||||
|
||||
BOOL mReleaseNotesRequested;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -217,24 +217,24 @@ class LLUIImageList : public LLImageProviderInterface, public LLSingleton<LLUIIm
|
|||
{
|
||||
public:
|
||||
// LLImageProviderInterface
|
||||
/*virtual*/ LLUIImagePtr getUIImageByID(const LLUUID& id, S32 priority);
|
||||
/*virtual*/ LLUIImagePtr getUIImage(const std::string& name, S32 priority);
|
||||
/*virtual*/ LLPointer<LLUIImage> getUIImageByID(const LLUUID& id, S32 priority);
|
||||
/*virtual*/ LLPointer<LLUIImage> getUIImage(const std::string& name, S32 priority);
|
||||
void cleanUp();
|
||||
|
||||
bool initFromFile();
|
||||
|
||||
LLUIImagePtr preloadUIImage(const std::string& name, const std::string& filename, BOOL use_mips, const LLRect& scale_rect);
|
||||
LLPointer<LLUIImage> preloadUIImage(const std::string& name, const std::string& filename, BOOL use_mips, const LLRect& scale_rect);
|
||||
|
||||
static void onUIImageLoaded( BOOL success, LLViewerFetchedTexture *src_vi, LLImageRaw* src, LLImageRaw* src_aux, S32 discard_level, BOOL final, void* userdata );
|
||||
private:
|
||||
LLUIImagePtr loadUIImageByName(const std::string& name, const std::string& filename,
|
||||
LLPointer<LLUIImage> loadUIImageByName(const std::string& name, const std::string& filename,
|
||||
BOOL use_mips = FALSE, const LLRect& scale_rect = LLRect::null,
|
||||
LLViewerTexture::EBoostLevel boost_priority = LLViewerTexture::BOOST_UI);
|
||||
LLUIImagePtr loadUIImageByID(const LLUUID& id,
|
||||
LLPointer<LLUIImage> loadUIImageByID(const LLUUID& id,
|
||||
BOOL use_mips = FALSE, const LLRect& scale_rect = LLRect::null,
|
||||
LLViewerTexture::EBoostLevel boost_priority = LLViewerTexture::BOOST_UI);
|
||||
|
||||
LLUIImagePtr loadUIImage(LLViewerFetchedTexture* imagep, const std::string& name, BOOL use_mips = FALSE, const LLRect& scale_rect = LLRect::null);
|
||||
LLPointer<LLUIImage> loadUIImage(LLViewerFetchedTexture* imagep, const std::string& name, BOOL use_mips = FALSE, const LLRect& scale_rect = LLRect::null);
|
||||
|
||||
|
||||
struct LLUIImageLoadData
|
||||
|
|
|
|||
|
|
@ -79,6 +79,7 @@
|
|||
#include "lltooltip.h"
|
||||
#include "llmediaentry.h"
|
||||
#include "llurldispatcher.h"
|
||||
#include "raytrace.h"
|
||||
|
||||
// newview includes
|
||||
#include "llagent.h"
|
||||
|
|
@ -234,17 +235,12 @@ BOOL gDisplayCameraPos = FALSE;
|
|||
BOOL gDisplayFOV = FALSE;
|
||||
BOOL gDisplayBadge = FALSE;
|
||||
|
||||
S32 CHAT_BAR_HEIGHT = 28;
|
||||
S32 OVERLAY_BAR_HEIGHT = 20;
|
||||
|
||||
const U8 NO_FACE = 255;
|
||||
static const U8 NO_FACE = 255;
|
||||
BOOL gQuietSnapshot = FALSE;
|
||||
|
||||
const F32 MIN_AFK_TIME = 2.f; // minimum time after setting away state before coming back
|
||||
const F32 MAX_FAST_FRAME_TIME = 0.5f;
|
||||
const F32 FAST_FRAME_INCREMENT = 0.1f;
|
||||
|
||||
const F32 MIN_DISPLAY_SCALE = 0.75f;
|
||||
static const F32 MIN_DISPLAY_SCALE = 0.75f;
|
||||
|
||||
std::string LLViewerWindow::sSnapshotBaseName;
|
||||
std::string LLViewerWindow::sSnapshotDir;
|
||||
|
|
|
|||
|
|
@ -38,13 +38,12 @@
|
|||
|
||||
#include "v3dmath.h"
|
||||
#include "v2math.h"
|
||||
#include "llcursortypes.h"
|
||||
#include "llwindowcallbacks.h"
|
||||
#include "lltimer.h"
|
||||
#include "llstat.h"
|
||||
#include "llmousehandler.h"
|
||||
#include "llcursortypes.h"
|
||||
#include "llhandle.h"
|
||||
#include "llimage.h"
|
||||
|
||||
#include <boost/function.hpp>
|
||||
#include <boost/signals2.hpp>
|
||||
|
|
@ -59,6 +58,7 @@ class LLTool;
|
|||
class LLVelocityBar;
|
||||
class LLPanel;
|
||||
class LLImageRaw;
|
||||
class LLImageFormatted;
|
||||
class LLHUDIcon;
|
||||
class LLWindow;
|
||||
class LLRootView;
|
||||
|
|
@ -465,12 +465,6 @@ private:
|
|||
LLPointer<LLViewerObject> mDragHoveredObject;
|
||||
};
|
||||
|
||||
void toggle_flying(void*);
|
||||
void toggle_first_person();
|
||||
void toggle_build(void*);
|
||||
void reset_viewer_state_on_sim(void);
|
||||
void update_saved_window_size(const std::string& control,S32 delta_width, S32 delta_height);
|
||||
|
||||
//
|
||||
// Globals
|
||||
//
|
||||
|
|
@ -487,8 +481,6 @@ extern LLVector3 gDebugRaycastNormal;
|
|||
extern LLVector3 gDebugRaycastBinormal;
|
||||
extern S32 gDebugRaycastFaceHit;
|
||||
|
||||
extern S32 CHAT_BAR_HEIGHT;
|
||||
|
||||
extern BOOL gDisplayCameraPos;
|
||||
extern BOOL gDisplayWindInfo;
|
||||
extern BOOL gDisplayFOV;
|
||||
|
|
|
|||
|
|
@ -38,9 +38,9 @@
|
|||
#include <ctype.h>
|
||||
|
||||
#include "llaudioengine.h"
|
||||
#include "llcachename.h"
|
||||
#include "noise.h"
|
||||
#include "sound_ids.h"
|
||||
#include "raytrace.h"
|
||||
|
||||
#include "llagent.h" // Get state values from here
|
||||
#include "llagentcamera.h"
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@
|
|||
#include "pipeline.h"
|
||||
#include "llspatialpartition.h"
|
||||
#include "llnotificationsutil.h"
|
||||
#include "raytrace.h"
|
||||
|
||||
extern LLPipeline gPipeline;
|
||||
|
||||
|
|
|
|||
|
|
@ -63,6 +63,8 @@
|
|||
#include "llmediadataclient.h"
|
||||
#include "llagent.h"
|
||||
#include "llviewermediafocus.h"
|
||||
#include "lldatapacker.h"
|
||||
#include "llvocache.h"
|
||||
|
||||
const S32 MIN_QUIET_FRAMES_COALESCE = 30;
|
||||
const F32 FORCE_SIMPLE_RENDER_AREA = 512.f;
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
#include "pipeline.h"
|
||||
#include "llsky.h"
|
||||
|
||||
#include "lldiriterator.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llsliderctrl.h"
|
||||
#include "llspinctrl.h"
|
||||
|
|
@ -87,11 +88,12 @@ void LLWaterParamManager::loadAllPresets(const std::string& file_name)
|
|||
std::string path_name(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/water", ""));
|
||||
LL_DEBUGS2("AppInit", "Shaders") << "Loading Default water settings from " << path_name << LL_ENDL;
|
||||
|
||||
bool found = true;
|
||||
bool found = true;
|
||||
LLDirIterator app_settings_iter(path_name, "*.xml");
|
||||
while(found)
|
||||
{
|
||||
std::string name;
|
||||
found = gDirUtilp->getNextFileInDir(path_name, "*.xml", name);
|
||||
found = app_settings_iter.next(name);
|
||||
if(found)
|
||||
{
|
||||
|
||||
|
|
@ -113,11 +115,12 @@ void LLWaterParamManager::loadAllPresets(const std::string& file_name)
|
|||
std::string path_name2(gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/water", ""));
|
||||
LL_DEBUGS2("AppInit", "Shaders") << "Loading User water settings from " << path_name2 << LL_ENDL;
|
||||
|
||||
found = true;
|
||||
found = true;
|
||||
LLDirIterator user_settings_iter(path_name2, "*.xml");
|
||||
while(found)
|
||||
{
|
||||
std::string name;
|
||||
found = gDirUtilp->getNextFileInDir(path_name2, "*.xml", name);
|
||||
found = user_settings_iter.next(name);
|
||||
if(found)
|
||||
{
|
||||
name=name.erase(name.length()-4);
|
||||
|
|
|
|||
|
|
@ -31,6 +31,7 @@
|
|||
#include "pipeline.h"
|
||||
#include "llsky.h"
|
||||
|
||||
#include "lldiriterator.h"
|
||||
#include "llfloaterreg.h"
|
||||
#include "llsliderctrl.h"
|
||||
#include "llspinctrl.h"
|
||||
|
|
@ -100,11 +101,12 @@ void LLWLParamManager::loadPresets(const std::string& file_name)
|
|||
std::string path_name(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "windlight/skies", ""));
|
||||
LL_DEBUGS2("AppInit", "Shaders") << "Loading Default WindLight settings from " << path_name << LL_ENDL;
|
||||
|
||||
bool found = true;
|
||||
bool found = true;
|
||||
LLDirIterator app_settings_iter(path_name, "*.xml");
|
||||
while(found)
|
||||
{
|
||||
std::string name;
|
||||
found = gDirUtilp->getNextFileInDir(path_name, "*.xml", name);
|
||||
found = app_settings_iter.next(name);
|
||||
if(found)
|
||||
{
|
||||
|
||||
|
|
@ -126,11 +128,12 @@ void LLWLParamManager::loadPresets(const std::string& file_name)
|
|||
std::string path_name2(gDirUtilp->getExpandedFilename( LL_PATH_USER_SETTINGS , "windlight/skies", ""));
|
||||
LL_DEBUGS2("AppInit", "Shaders") << "Loading User WindLight settings from " << path_name2 << LL_ENDL;
|
||||
|
||||
found = true;
|
||||
found = true;
|
||||
LLDirIterator user_settings_iter(path_name2, "*.xml");
|
||||
while(found)
|
||||
{
|
||||
std::string name;
|
||||
found = gDirUtilp->getNextFileInDir(path_name2, "*.xml", name);
|
||||
found = user_settings_iter.next(name);
|
||||
if(found)
|
||||
{
|
||||
name=name.erase(name.length()-4);
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@
|
|||
#include "llviewerstats.h"
|
||||
#include "llvlcomposition.h"
|
||||
#include "llvoavatar.h"
|
||||
#include "llvocache.h"
|
||||
#include "llvowater.h"
|
||||
#include "message.h"
|
||||
#include "pipeline.h"
|
||||
|
|
|
|||
|
|
@ -1856,26 +1856,26 @@ even though the user gets a free copy.
|
|||
<spinner
|
||||
follows="left|top"
|
||||
height="19"
|
||||
increment="0.025"
|
||||
increment="0.02"
|
||||
initial_value="0"
|
||||
label="B"
|
||||
label_width="10"
|
||||
layout="topleft"
|
||||
left_delta="0"
|
||||
max_val="0.95"
|
||||
max_val="0.98"
|
||||
name="Path Limit Begin"
|
||||
top_pad="3"
|
||||
width="68" />
|
||||
<spinner
|
||||
follows="left|top"
|
||||
height="19"
|
||||
increment="0.025"
|
||||
increment="0.02"
|
||||
initial_value="1"
|
||||
label="E"
|
||||
label_width="10"
|
||||
layout="topleft"
|
||||
left_pad="10"
|
||||
min_val="0.05"
|
||||
min_val="0.02"
|
||||
name="Path Limit End"
|
||||
top_delta="0"
|
||||
width="68" />
|
||||
|
|
|
|||
|
|
@ -6820,7 +6820,7 @@ Deed to group failed.
|
|||
name="ReleaseLandThrottled"
|
||||
type="notifytip">
|
||||
The parcel [PARCEL_NAME] can not be abandoned at this time.
|
||||
tag>fail</tag>
|
||||
<tag>fail</tag>
|
||||
</notification>
|
||||
|
||||
<notification
|
||||
|
|
|
|||
|
|
@ -3588,6 +3588,9 @@ Si sigues recibiendo este mensaje, contacta con [SUPPORT_SITE].
|
|||
<string name="conference-title-incoming">
|
||||
Conferencia con [AGENT_NAME]
|
||||
</string>
|
||||
<string name="inventory_item_offered-im">
|
||||
Ofrecido el item del inventario
|
||||
</string>
|
||||
<string name="no_session_message">
|
||||
(La sesión de MI no existe)
|
||||
</string>
|
||||
|
|
|
|||
|
|
@ -3587,6 +3587,9 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
|
|||
<string name="conference-title-incoming">
|
||||
Conversa com [AGENT_NAME]
|
||||
</string>
|
||||
<string name="inventory_item_offered-im">
|
||||
Oferta de item de inventário
|
||||
</string>
|
||||
<string name="no_session_message">
|
||||
(Sessão de MI inexistente)
|
||||
</string>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,41 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<panel name="panel_login">
|
||||
<layout_stack name="login_widgets">
|
||||
<layout_panel name="login">
|
||||
<text name="username_text">
|
||||
使用者名稱:
|
||||
</text>
|
||||
<text name="password_text">
|
||||
密碼:
|
||||
</text>
|
||||
<check_box label="記住密碼" name="remember_check"/>
|
||||
<button label="登入" name="connect_btn"/>
|
||||
<text name="mode_selection_text">
|
||||
模式:
|
||||
</text>
|
||||
<combo_box name="mode_combo" tool_tip="選擇一個登入模式">
|
||||
<combo_box.item label="基礎" name="Basic"/>
|
||||
<combo_box.item label="進階" name="Advanced"/>
|
||||
</combo_box>
|
||||
<text name="start_location_text">
|
||||
開始地點:
|
||||
</text>
|
||||
<combo_box name="start_location_combo">
|
||||
<combo_box.item label="上一次的地點" name="MyLastLocation"/>
|
||||
<combo_box.item label="我的家" name="MyHome"/>
|
||||
<combo_box.item label="<輸入區域名>" name="Typeregionname"/>
|
||||
</combo_box>
|
||||
</layout_panel>
|
||||
<layout_panel name="links">
|
||||
<text name="create_new_account_text">
|
||||
註冊
|
||||
</text>
|
||||
<text name="forgot_password_text">
|
||||
忘記使用者名稱或密碼?
|
||||
</text>
|
||||
<text name="login_help">
|
||||
如何登入?
|
||||
</text>
|
||||
</layout_panel>
|
||||
</layout_stack>
|
||||
</panel>
|
||||
|
|
@ -35,7 +35,6 @@
|
|||
#include "llurlentry.h"
|
||||
|
||||
namespace {
|
||||
LLControlGroup s_saved_settings("dummy_settings");
|
||||
const LLUUID TEST_PARCEL_ID("11111111-1111-1111-1111-111111111111");
|
||||
}
|
||||
|
||||
|
|
@ -64,13 +63,12 @@ LLMessageSystem * gMessageSystem;
|
|||
char const* const _PREHASH_AgentID = 0; // never dereferenced during this test
|
||||
char const* const _PREHASH_AgentData = 0; // never dereferenced during this test
|
||||
LLAgent gAgent;
|
||||
LLAgent::LLAgent() : mAgentAccess(s_saved_settings) { }
|
||||
LLAgent::LLAgent() : mAgentAccess(NULL) { }
|
||||
LLAgent::~LLAgent() { }
|
||||
void LLAgent::sendReliableMessage(void) { }
|
||||
LLUUID gAgentSessionID;
|
||||
LLUUID gAgentID;
|
||||
LLUIColor::LLUIColor(void) { }
|
||||
LLAgentAccess::LLAgentAccess(LLControlGroup & settings) : mSavedSettings(settings) { }
|
||||
LLControlGroup::LLControlGroup(std::string const & name) : LLInstanceTracker<LLControlGroup, std::string>(name) { }
|
||||
LLControlGroup::~LLControlGroup(void) { }
|
||||
void LLUrlEntryParcel::processParcelInfo(const LLUrlEntryParcel::LLParcelData& parcel_data) { }
|
||||
|
|
|
|||
|
|
@ -73,11 +73,9 @@ static void substitute_string(std::string &input, const std::string &search, con
|
|||
}
|
||||
|
||||
#include "../llagent.h"
|
||||
LLAgent::LLAgent() : mAgentAccess(gSavedSettings) { }
|
||||
LLAgent::LLAgent() : mAgentAccess(NULL) { }
|
||||
LLAgent::~LLAgent() { }
|
||||
bool LLAgent::isGodlike() const { return FALSE; }
|
||||
LLAgentAccess::LLAgentAccess(LLControlGroup& settings) : mSavedSettings(settings) { }
|
||||
LLUIColor::LLUIColor() {}
|
||||
|
||||
LLAgent gAgent;
|
||||
|
||||
|
|
|
|||
|
|
@ -59,12 +59,6 @@ class LLDir_Mock : public LLDir
|
|||
return 0;
|
||||
}
|
||||
|
||||
BOOL getNextFileInDir(const std::string &dirname,
|
||||
const std::string &mask,
|
||||
std::string &fname)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
void getRandomFileInDir(const std::string &dirname,
|
||||
const std::string &mask,
|
||||
std::string &fname) {}
|
||||
|
|
|
|||
Loading…
Reference in New Issue