# Conflicts:
#	.gitignore
master
Ansariel 2023-04-16 18:59:53 +02:00
commit a6693e9c9e
66 changed files with 489 additions and 590 deletions

View File

@ -106,9 +106,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>88b6b9ebc2eda992b721529921c82066</string>
<string>80d157facdba399b3a59c400e29cb625</string>
<key>url</key>
<string>http://3p.firestormviewer.org/glib-2.56.0.220911433-linux64_bionic-220911433.tar.bz2</string>
<string>http://3p.firestormviewer.org/glib-2.64.6.230870115-linux64-230870115.tar.bz2</string>
</map>
<key>name</key>
<string>linux64</string>
@ -552,9 +552,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>45acdda717f95ce9169de9f49199c066</string>
<string>1c341bdbb5fd0c8a8930f76e6c1647d4</string>
<key>url</key>
<string>http://3p.firestormviewer.org/apr_suite-1.4.5.230351228-linux64-230351228.tar.bz2</string>
<string>http://3p.firestormviewer.org/apr_suite-1.4.5.230921251-linux64-230921251.tar.bz2</string>
</map>
<key>name</key>
<string>linux64</string>
@ -736,9 +736,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>30b1a9b7637f7a1546d38430064ca582</string>
<string>8b79711b4fa914c16f1284939d55dcc1</string>
<key>url</key>
<string>https://3p.firestormviewer.org/colladadom-2.3.222261253-linux64-222261253.tar.bz2</string>
<string>https://3p.firestormviewer.org/colladadom-2.3.230940029-linux64-230940029.tar.bz2</string>
</map>
<key>name</key>
<string>linux64</string>
@ -1030,9 +1030,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>bbcfe77b920fb7f00c7f2a494ffc6c43</string>
<string>39702f98867a319b090ee04f22d82762</string>
<key>url</key>
<string>http://3p.firestormviewer.org/expat-2.1.1.180841547-linux64-180841547.tar.bz2</string>
<string>http://3p.firestormviewer.org/expat-2.5.0.230021327-linux64-230021327.tar.bz2</string>
</map>
<key>name</key>
<string>linux64</string>
@ -1964,9 +1964,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>c68bbfe6c9bd59d182c4d20d966492b4</string>
<string>d72c6d8db827ce3d83c5703f519a2ac9</string>
<key>url</key>
<string>http://3p.firestormviewer.org/libxml2-2.9.4.222130358-linux64-222130358.tar.bz2</string>
<string>http://3p.firestormviewer.org/libxml2-2.10.3.230940019-linux64-230940019.tar.bz2</string>
</map>
<key>name</key>
<string>linux64</string>
@ -3452,9 +3452,9 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors</string>
<key>archive</key>
<map>
<key>hash</key>
<string>f810193590cae9b35a1c77b6c72bfb01</string>
<string>71a9c7c03a2c26cdb21fa476de485d9c</string>
<key>url</key>
<string>http://3p.firestormviewer.org/xmlrpc_epi-0.54.1.180841935-linux64-180841935.tar.bz2</string>
<string>http://3p.firestormviewer.org/xmlrpc_epi-0.54.2.230940042-linux64-230940042.tar.bz2</string>
</map>
<key>name</key>
<string>linux64</string>

View File

@ -1,13 +1,19 @@
# -*- cmake -*-
include_guard()
add_library(fs::discord INTERFACE IMPORTED)
include(Prebuilt)
use_prebuilt_binary(discord-rpc)
set(DISCORD_INCLUDE_DIRS ${LIBS_PREBUILT_DIR}/include/discord-rpc)
if (WINDOWS)
set(DISCORD_LIBRARY discord-rpc)
target_link_libraries(fs::discord INTERFACE discord-rpc)
elseif (LINUX)
set(DISCORD_LIBRARY discord-rpc)
target_link_libraries(fs::discord INTERFACE discord-rpc)
elseif (DARWIN)
set(DISCORD_LIBRARY discord-rpc)
target_link_libraries(fs::discord INTERFACE discord-rpc)
endif (WINDOWS)
target_include_directories(fs::discord SYSTEM INTERFACE
${AUTOBUILD_INSTALL_DIR}/include/discord-rpc
)

View File

@ -1,65 +0,0 @@
# -*- cmake -*-
# - Find FMODSTUDIO
# Find the FMODSTUDIO includes and library
# This module defines
# FMODSTUDIO_INCLUDE_DIR, where to find fmod.h and fmod_errors.h
# FMODSTUDIO_LIBRARIES, the libraries needed to use FMODSTUDIO.
# FMODSTUDIO, If false, do not try to use FMODSTUDIO.
# also defined, but not for general use are
# FMODSTUDIO_LIBRARY, where to find the FMODSTUDIO library.
FIND_PATH(FMODSTUDIO_INCLUDE_DIR fmod.h PATH_SUFFIXES fmod)
SET(FMODSTUDIO_NAMES ${FMODSTUDIO_NAMES} fmod fmod_vc)
FIND_LIBRARY(FMODSTUDIO_LIBRARY
NAMES ${FMODSTUDIO_NAMES}
PATH_SUFFIXES fmod
)
IF (FMODSTUDIO_SDK_DIR OR WINDOWS)
if(WINDOWS)
set(FMODSTUDIO_SDK_DIR "$ENV{PROGRAMFILES}/FMOD SoundSystem/FMOD Programmers API Windows" CACHE PATH "Path to FMODSTUDIO")
STRING(REGEX REPLACE "\\\\" "/" FMODSTUDIO_SDK_DIR ${FMODSTUDIO_SDK_DIR})
endif(WINDOWS)
find_library(FMODSTUDIO_LIBRARY
fmod_vc fmodL_vc
PATHS
${FMODSTUDIO_SDK_DIR}/api/lib
${FMODSTUDIO_SDK_DIR}/api
${FMODSTUDIO_SDK_DIR}
)
find_path(FMODSTUDIO_INCLUDE_DIR fmod.h
${FMODSTUDIO_SDK_DIR}/api/inc
${FMODSTUDIO_SDK_DIR}/api
${FMODSTUDIO_SDK_DIR}
)
find_path(FMODSTUDIO_INCLUDE_DIR fmod.h
${FMODSTUDIO_SDK_DIR}/api/inc
${FMODSTUDIO_SDK_DIR}/api
${FMODSTUDIO_SDK_DIR}
)
IF (FMODSTUDIO_LIBRARY AND FMODSTUDIO_INCLUDE_DIR)
SET(FMODSTUDIO_LIBRARIES ${FMODSTUDIO_LIBRARY})
SET(FMODSTUDIO_FOUND "YES")
endif (FMODSTUDIO_LIBRARY AND FMODSTUDIO_INCLUDE_DIR)
ENDIF (FMODSTUDIO_SDK_DIR OR WINDOWS)
IF (FMODSTUDIO_FOUND)
IF (NOT FMODSTUDIO_FIND_QUIETLY)
MESSAGE(STATUS "Found FMODSTUDIO: ${FMODSTUDIO_LIBRARIES}")
ENDIF (NOT FMODSTUDIO_FIND_QUIETLY)
ELSE (FMODSTUDIO_FOUND)
IF (FMODSTUDIO_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find FMODSTUDIO library")
ENDIF (FMODSTUDIO_FIND_REQUIRED)
ENDIF (FMODSTUDIO_FOUND)
# Deprecated declarations.
SET (NATIVE_FMODSTUDIO_INCLUDE_PATH ${FMODSTUDIO_INCLUDE_DIR} )
GET_FILENAME_COMPONENT (NATIVE_FMODSTUDIO_LIB_PATH ${FMODSTUDIO_LIBRARY} PATH)
MARK_AS_ADVANCED(
FMODSTUDIO_LIBRARY
FMODSTUDIO_INCLUDE_DIR
)

View File

@ -1,36 +0,0 @@
# -*- cmake -*-
# - Find GLOD
# This module defines
# GLOD_INCLUDE_DIR, where to find glod.h, etc.
# GLOD_LIBRARIES, the library needed to use GLOD.
# GLOD_FOUND, If false, do not try to use GLOD.
# LL coded the #include with a glod path in llfloatermodelpreview.cpp
find_path(GLOD_INCLUDE_DIR glod/glod.h)
set(GLOD_NAMES ${GLOD_NAMES} glod)
find_library(GLOD_LIBRARIES
NAMES ${GLOD_NAMES}
)
if (GLOD_LIBRARIES AND GLOD_INCLUDE_DIR)
set(GLOD_FOUND "YES")
else (GLOD_LIBRARIES AND GLOD_INCLUDE_DIR)
set(GLOD_FOUND "NO")
endif (GLOD_LIBRARIES AND GLOD_INCLUDE_DIR)
if (GLOD_FOUND)
if (NOT GLOD_FIND_QUIETLY)
message(STATUS "Found GLOD: Library in '${GLOD_LIBRARY}' and header in '${GLOD_INCLUDE_DIR}' ")
endif (NOT GLOD_FIND_QUIETLY)
else (GLOD_FOUND)
if (GLOD_FIND_REQUIRED)
message(FATAL_ERROR " * * * * *\nCould not find GLOD library!\n* * * * *")
endif (GLOD_FIND_REQUIRED)
endif (GLOD_FOUND)
mark_as_advanced(
GLOD_LIBRARIES
GLOD_INCLUDE_DIR
)

View File

@ -1,41 +0,0 @@
# -*- cmake -*-
# - Find HUNSPELL
# This module defines
# HACD_INCLUDE_DIR, where to find hacdHACD.h, etc.
# HACD_LIBRARY, the library needed to use HACD.
# HACD_FOUND, If false, do not try to use HACD.
find_path(HACD_INCLUDE_DIR llconvexdecomposition.h
PATH_SUFFIXES hacd
)
set(HACD_NAMES ${HACD_NAMES} hacd)
find_library(HACD_LIBRARY
NAMES ${HACD_NAMES}
)
find_library( LLCONVEXDECOMP_LIBRARY NAMES nd_hacdConvexDecomposition )
if (HACD_LIBRARY AND HACD_INCLUDE_DIR AND LLCONVEXDECOMP_LIBRARY)
set(HACD_FOUND "YES")
else (HACD_LIBRARY AND HACD_INCLUDE_DIR AND LLCONVEXDECOMP_LIBRARY)
set(HACD_FOUND "NO")
endif (HACD_LIBRARY AND HACD_INCLUDE_DIR AND LLCONVEXDECOMP_LIBRARY)
if (HACD_FOUND)
if (NOT HACD_FIND_QUIETLY)
message(STATUS "Found HACD: Library in '${HACD_LIBRARY}' and header in '${HACD_INCLUDE_DIR}' ")
endif (NOT HACD_FIND_QUIETLY)
else (HACD_FOUND)
if (HACD_FIND_REQUIRED)
message(FATAL_ERROR " * * *\nCould not find HACD library! * * *")
endif (HACD_FIND_REQUIRED)
endif (HACD_FOUND)
mark_as_advanced(
HACD_LIBRARY
HACD_DECOMP_LIB
HACD_INCLUDE_DIR
)

View File

@ -1,40 +0,0 @@
# -*- cmake -*-
# - Find KDU
# This module defines
# KDU_INCLUDE_DIR, where to find kdu.h, etc.
# KDU_LIBRARIES, the library needed to use KDU.
# KDU_FOUND, If false, do not try to use KDU.
# LL coded the #include with a glod path in llfloatermodelpreview.cpp
find_path(KDU_INCLUDE_DIR kdu_image.h
PATH_SUFFIXES kdu
)
set(KDU_NAMES ${KDU_NAMES} kdu)
find_library(KDU_LIBRARIES
NAMES ${KDU_NAMES}
)
if (KDU_LIBRARIES AND KDU_INCLUDE_DIR)
set(KDU_FOUND "YES")
set(KDU_INCLUDE_DIRS ${KDU_INCLUDE_DIR})
set(KDU_LIBRARY ${KDU_LIBRARIES})
else (KDU_LIBRARIES AND KDU_INCLUDE_DIR)
set(KDU_FOUND "NO")
endif (KDU_LIBRARIES AND KDU_INCLUDE_DIR)
if (KDU_FOUND)
if (NOT KDU_FIND_QUIETLY)
message(STATUS "Found KDU: Library in '${KDU_LIBRARY}' and header in '${KDU_INCLUDE_DIR}' ")
endif (NOT KDU_FIND_QUIETLY)
else (KDU_FOUND)
if (KDU_FIND_REQUIRED)
message(FATAL_ERROR " * * * * *\nCould not find KDU library!\n* * * * *")
endif (KDU_FIND_REQUIRED)
endif (KDU_FOUND)
mark_as_advanced(
KDU_LIBRARIES
KDU_INCLUDE_DIR
)

View File

@ -1,62 +0,0 @@
# -*- cmake -*-
# - Find llqtwebkit
# Find the llqtwebkit includes and library
# This module defines
# LLQTWEBKIT_INCLUDE_DIR, where to find llqtwebkit.h, etc.
# LLQTWEBKIT_LIBRARY, the llqtwebkit library with full path.
# LLQTWEBKIT_FOUND, If false, do not try to use llqtwebkit.
# also defined, but not for general use are
# LLQTWEBKIT_LIBRARIES, the libraries needed to use llqtwebkit.
# LLQTWEBKIT_LIBRARY_DIRS, where to find the llqtwebkit library.
# LLQTWEBKIT_DEFINITIONS - You should add_definitions(${LLQTWEBKIT_DEFINITIONS})
# before compiling code that includes llqtwebkit library files.
# Try to use pkg-config first.
# This allows to have two different libllqtwebkit packages installed:
# one for viewer 2.x and one for viewer 1.x.
include(FindPkgConfig)
if (PKG_CONFIG_FOUND)
if (LLQtWebkit_FIND_REQUIRED AND LLQtWebkit_FIND_VERSION)
set(_PACKAGE_ARGS libllqtwebkit>=${LLQtWebkit_FIND_VERSION} REQUIRED)
else (LLQtWebkit_FIND_REQUIRED AND LLQtWebkit_FIND_VERSION)
set(_PACKAGE_ARGS libllqtwebkit)
endif (LLQtWebkit_FIND_REQUIRED AND LLQtWebkit_FIND_VERSION)
if (NOT "${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" VERSION_LESS "2.8.2")
# As virtually nobody will have a pkg-config file for this, do this check always quiet.
# Unfortunately cmake 2.8.2 or higher is required for pkg_check_modules to have a 'QUIET'.
set(_PACKAGE_ARGS ${_PACKAGE_ARGS} QUIET)
endif ()
pkg_check_modules(LLQTWEBKIT ${_PACKAGE_ARGS})
endif (PKG_CONFIG_FOUND)
set(LLQTWEBKIT_DEFINITIONS ${LLQTWEBKIT_CFLAGS_OTHER})
find_path(LLQTWEBKIT_INCLUDE_DIR llqtwebkit.h NO_SYSTEM_ENVIRONMENT_PATH HINTS ${LLQTWEBKIT_INCLUDE_DIRS})
find_library(LLQTWEBKIT_LIBRARY NAMES llqtwebkit NO_SYSTEM_ENVIRONMENT_PATH HINTS ${LLQTWEBKIT_LIBRARY_DIRS})
if (NOT PKG_CONFIG_FOUND OR NOT LLQTWEBKIT_FOUND) # If pkg-config couldn't find it, pretend we don't have pkg-config.
set(LLQTWEBKIT_LIBRARIES llqtwebkit)
get_filename_component(LLQTWEBKIT_LIBRARY_DIRS ${LLQTWEBKIT_LIBRARY} PATH)
endif (NOT PKG_CONFIG_FOUND OR NOT LLQTWEBKIT_FOUND)
# Handle the QUIETLY and REQUIRED arguments and set LLQTWEBKIT_FOUND
# to TRUE if all listed variables are TRUE.
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
LLQTWEBKIT
DEFAULT_MSG
LLQTWEBKIT_LIBRARY
LLQTWEBKIT_INCLUDE_DIR
LLQTWEBKIT_LIBRARIES
LLQTWEBKIT_LIBRARY_DIRS
)
mark_as_advanced(
LLQTWEBKIT_LIBRARY
LLQTWEBKIT_INCLUDE_DIR
LLQTWEBKIT_LIBRARIES
LLQTWEBKIT_LIBRARY_DIRS
LLQTWEBKIT_DEFINITIONS
)

View File

@ -1,46 +0,0 @@
# -*- cmake -*-
# - Find libnotify
# Find the libnotify includes and library
# This module defines
# LIBNOTIFY_INCLUDE_DIR, where to find notify.h, etc.
# LIBNOTIFY_LIBRARIES, the libraries needed to use libnotify.
# LIBNOTIFY_FOUND, If false, do not try to use libnotify.
# also defined, but not for general use are
# LIBNOTIFY_LIBRARY, where to find the libnotify library.
FIND_PATH(LIBNOTIFY_INCLUDE_DIR notify.h
PATH_SUFFIXES libnotify
)
SET(LIBNOTIFY_NAMES ${LIBNOTIFY_NAMES} notify)
FIND_LIBRARY(LIBNOTIFY_LIBRARY
NAMES ${LIBNOTIFY_NAMES}
)
IF (LIBNOTIFY_LIBRARY AND LIBNOTIFY_INCLUDE_DIR)
SET(LIBNOTIFY_LIBRARIES ${LIBNOTIFY_LIBRARY})
SET(LIBNOTIFY_FOUND "YES")
ELSE (LIBNOTIFY_LIBRARY AND LIBNOTIFY_INCLUDE_DIR)
SET(LIBNOTIFY_FOUND "NO")
ENDIF (LIBNOTIFY_LIBRARY AND LIBNOTIFY_INCLUDE_DIR)
IF (LIBNOTIFY_FOUND)
IF (NOT LIBNOTIFY_FIND_QUIETLY)
MESSAGE(STATUS "Found libnotify: '${LIBNOTIFY_LIBRARIES}' and header in '${LIBNOTIFY_INCLUDE_DIR}'")
ENDIF (NOT LIBNOTIFY_FIND_QUIETLY)
ELSE (LIBNOTIFY_FOUND)
IF (LIBNOTIFY_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find libnotify library")
ENDIF (LIBNOTIFY_FIND_REQUIRED)
ENDIF (LIBNOTIFY_FOUND)
# Deprecated declarations.
SET (NATIVE_LIBNOTIFY_INCLUDE_PATH ${LIBNOTIFY_INCLUDE_DIR} )
GET_FILENAME_COMPONENT (NATIVE_LIBNOTIFY_LIB_PATH ${LIBNOTIFY_LIBRARY} PATH)
MARK_AS_ADVANCED(
LIBNOTIFY_LIBRARY
LIBNOTIFY_INCLUDE_DIR
)

View File

@ -1,35 +0,0 @@
# -*- cmake -*-
# - Find NGHTTP2
# This module defines
# NGHTTP2_INCLUDE_DIR, where to find glod.h, etc.
# NGHTTP2_LIBRARIES, the library needed to use NGHTTP2.
# NGHTTP2_FOUND, If false, do not try to use NGHTTP2.
find_path(NGHTTP2_INCLUDE_DIR nghttp2/nghttp2.h)
set(NGHTTP2_NAMES ${NGHTTP2_NAMES} nghttp2)
find_library(NGHTTP2_LIBRARIES
NAMES ${NGHTTP2_NAMES}
)
if (NGHTTP2_LIBRARIES AND NGHTTP2_INCLUDE_DIR)
set(NGHTTP2_FOUND "YES")
else (NGHTTP2_LIBRARIES AND NGHTTP2_INCLUDE_DIR)
set(NGHTTP2_FOUND "NO")
endif (NGHTTP2_LIBRARIES AND NGHTTP2_INCLUDE_DIR)
if (NGHTTP2_FOUND)
if (NOT NGHTTP2_FIND_QUIETLY)
message(STATUS "Found NGHTTP2: Library in '${NGHTTP2_LIBRARY}' and header in '${NGHTTP2_INCLUDE_DIR}' ")
endif (NOT NGHTTP2_FIND_QUIETLY)
else (NGHTTP2_FOUND)
if (NGHTTP2_FIND_REQUIRED)
message(FATAL_ERROR " * * * * *\nCould not find NGHTTP2 library!\n* * * * *")
endif (NGHTTP2_FIND_REQUIRED)
endif (NGHTTP2_FOUND)
mark_as_advanced(
NGHTTP2_LIBRARIES
NGHTTP2_INCLUDE_DIR
)

View File

@ -12,12 +12,10 @@ use_prebuilt_binary(gntp-growl)
if (WINDOWS)
target_link_libraries( fs::growl INTERFACE growl.lib growl++.lib)
elseif (DARWIN)
target_link_libraries( fs:growl INTERFACE libgrowl.dylib libgrowl++.dylib)
target_link_libraries( fs::growl INTERFACE libgrowl.dylib libgrowl++.dylib)
endif (WINDOWS)
target_include_directories( fs::growl SYSTEM INTERFACE
${AUTOBUILD_INSTALL_DIR}/include/Growl
)
endif (DARWIN OR WINDOWS) # <FS:Zi> no need to do these things on Linux
add_compile_definitions(HAS_GROWL)

View File

@ -1,13 +1,9 @@
# -*- cmake -*-
set(CMAKE_VERBOSE_MAKEFILE ON) # <FS:Zi> remove this once things work
# <FS:ND> Try to find pulse header, if we got them we can use the linux volume catcher
if (LINUX)
include(GLIB)
include_directories( ${GLIB_INCLUDE_DIRS} )
foreach( PULSE_FILE pulse/introspect.h pulse/context.h pulse/subscribe.h pulse/glib-mainloop.h )
foreach( PULSE_FILE pulse/introspect.h pulse/context.h pulse/subscribe.h )
find_path( PULSE_FILE_${PULSE_FILE}_FOUND ${PULSE_FILE} NO_CACHE)
if( NOT PULSE_FILE_${PULSE_FILE}_FOUND )
message( "Looking for ${PULSE_FILE} ... not found")

View File

@ -7,7 +7,6 @@ add_library( ll::tracy INTERFACE IMPORTED )
set(USE_TRACY OFF CACHE BOOL "Use Tracy profiler.")
if (USE_TRACY)
use_system_binary(tracy)
use_prebuilt_binary(tracy)
target_include_directories( ll::tracy SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/tracy)

View File

@ -115,8 +115,12 @@ void LLDiskCache::purge()
#endif
if (boost::filesystem::is_directory(cache_path, ec) && !ec.failed())
{
boost::filesystem::directory_iterator iter(cache_path, ec);
while (iter != boost::filesystem::directory_iterator() && !ec.failed())
// <FS:Ansariel> Optimize asset simple disk cache
//boost::filesystem::directory_iterator iter(cache_path, ec);
//while (iter != boost::filesystem::directory_iterator() && !ec.failed())
boost::filesystem::recursive_directory_iterator iter(cache_path, ec);
while (iter != boost::filesystem::recursive_directory_iterator() && !ec.failed())
// </FS:Ansariel>
{
if (boost::filesystem::is_regular_file(*iter, ec) && !ec.failed())
{
@ -470,8 +474,12 @@ void LLDiskCache::clearCache()
#endif
if (boost::filesystem::is_directory(cache_path, ec) && !ec.failed())
{
boost::filesystem::directory_iterator iter(cache_path, ec);
while (iter != boost::filesystem::directory_iterator() && !ec.failed())
// <FS:Ansariel> Optimize asset simple disk cache
//boost::filesystem::directory_iterator iter(cache_path, ec);
//while (iter != boost::filesystem::directory_iterator() && !ec.failed())
boost::filesystem::recursive_directory_iterator iter(cache_path, ec);
while (iter != boost::filesystem::recursive_directory_iterator() && !ec.failed())
// </FS:Ansariel>
{
if (boost::filesystem::is_regular_file(*iter, ec) && !ec.failed())
{
@ -527,7 +535,7 @@ void LLDiskCache::removeOldVFSFiles()
}
}
uintmax_t LLDiskCache::dirFileSize(const std::string dir)
uintmax_t LLDiskCache::dirFileSize(const std::string& dir)
{
uintmax_t total_file_size = 0;
@ -548,8 +556,12 @@ uintmax_t LLDiskCache::dirFileSize(const std::string dir)
#endif
if (boost::filesystem::is_directory(dir_path, ec) && !ec.failed())
{
boost::filesystem::directory_iterator iter(dir_path, ec);
while (iter != boost::filesystem::directory_iterator() && !ec.failed())
// <FS:Ansariel> Optimize asset simple disk cache
//boost::filesystem::directory_iterator iter(dir_path, ec);
//while (iter != boost::filesystem::directory_iterator() && !ec.failed())
boost::filesystem::recursive_directory_iterator iter(dir_path, ec);
while (iter != boost::filesystem::recursive_directory_iterator() && !ec.failed())
// </FS:Ansariel>
{
if (boost::filesystem::is_regular_file(*iter, ec) && !ec.failed())
{

View File

@ -164,7 +164,7 @@ class LLDiskCache :
* directory. Primarily used here to determine the directory size
* before and after the cache purge
*/
uintmax_t dirFileSize(const std::string dir);
uintmax_t dirFileSize(const std::string& dir);
/**
* Utility function to convert an LLAssetType enum into a

View File

@ -912,7 +912,7 @@ BOOL LLImageGL::setImage(const U8* data_in, BOOL data_hasmips /* = FALSE */, S32
prev_mip_data = nullptr;
cur_mip_data = nullptr;
// </FS:Zi>
//
mGLTextureCreated = false;
return FALSE;
}

View File

@ -31,8 +31,6 @@ set(media_plugin_cef_HEADER_FILES
volume_catcher.h
)
if (NOT DISABLE_VOLUME_CATCHER) # <FS:Zi> disable volume catcher in cef with -DDISABLE_VOLUME_CATCHER=TRUE
add_compile_definitions(LL_VOLUME_CATCHER)
# Select which VolumeCatcher implementation to use
@ -54,8 +52,6 @@ elseif (WINDOWS)
list(APPEND media_plugin_cef_SOURCE_FILES windows_volume_catcher.cpp)
endif (LINUX)
endif (NOT DISABLE_VOLUME_CATCHER)
list(APPEND media_plugin_cef_SOURCE_FILES ${media_plugin_cef_HEADER_FILES})
add_library(media_plugin_cef

View File

@ -41,13 +41,11 @@
extern "C" {
#include <glib.h>
#include <glib-object.h>
#include <pulse/introspect.h>
#include <pulse/context.h>
#include <pulse/subscribe.h>
#include <pulse/glib-mainloop.h> // There's no special reason why we want the *glib* PA mainloop, but the generic polling implementation seems broken.
#include <pulse/mainloop.h>
#include "apr_pools.h"
#include "apr_dso.h"
@ -62,7 +60,6 @@ extern "C" {
#define LL_PA_SYM(REQUIRED, PASYM, RTN, ...) RTN (*ll##PASYM)(__VA_ARGS__) = NULL
#include "linux_volume_catcher_pa_syms.inc"
#include "linux_volume_catcher_paglib_syms.inc"
#undef LL_PA_SYM
static bool sSymsGrabbed = false;
@ -94,7 +91,6 @@ bool grab_pa_syms(std::string pulse_dso_name)
INFOMSG("Found DSO: %s", pulse_dso_name.c_str());
#include "linux_volume_catcher_pa_syms.inc"
#include "linux_volume_catcher_paglib_syms.inc"
if ( sSymPADSOHandle )
{
@ -141,7 +137,6 @@ void ungrab_pa_syms()
// NULL-out all of the symbols we'd grabbed
#define LL_PA_SYM(REQUIRED, PASYM, RTN, ...) do{ll##PASYM = NULL;}while(0)
#include "linux_volume_catcher_pa_syms.inc"
#include "linux_volume_catcher_paglib_syms.inc"
#undef LL_PA_SYM
sSymsGrabbed = false;
@ -178,7 +173,7 @@ public:
std::set<U32> mSinkInputIndices;
std::map<U32,U32> mSinkInputNumChannels;
F32 mDesiredVolume;
pa_glib_mainloop *mMainloop;
pa_mainloop *mMainloop;
pa_context *mPAContext;
bool mConnected;
bool mGotSyms;
@ -210,18 +205,14 @@ void VolumeCatcherImpl::init()
// bit fragile and (for our purposes) we'd rather simply not function
// than crash
// we cheat and rely upon libpulse-mainloop-glib.so.0 to pull-in
// libpulse.so.0 - this isn't a great assumption, and the two DSOs should
// probably be loaded separately. Our Linux DSO framework needs refactoring,
// we do this sort of thing a lot with practically identical logic...
mGotSyms = loadsyms("libpulse-mainloop-glib.so.0");
mGotSyms = loadsyms("libpulse.so.0");
if (!mGotSyms) return;
mMainloop = llpa_glib_mainloop_new(g_main_context_default());
mMainloop = llpa_mainloop_new();
if (mMainloop)
{
pa_mainloop_api *api = llpa_glib_mainloop_get_api(mMainloop);
pa_mainloop_api *api = llpa_mainloop_get_api(mMainloop);
if (api)
{
@ -274,7 +265,7 @@ void VolumeCatcherImpl::cleanup()
if (mGotSyms && mMainloop)
{
llpa_glib_mainloop_free(mMainloop);
llpa_mainloop_free(mMainloop);
}
mMainloop = NULL;
}
@ -295,8 +286,7 @@ void VolumeCatcherImpl::setVolume(F32 volume)
void VolumeCatcherImpl::pump()
{
gboolean may_block = FALSE;
g_main_context_iteration(g_main_context_default(), may_block);
return;
}
void VolumeCatcherImpl::connected_okay()

View File

@ -18,4 +18,8 @@ LL_PA_SYM(true, pa_proplist_new, pa_proplist*, void);
LL_PA_SYM(true, pa_proplist_sets, int, pa_proplist *p, const char *key, const char *value);
LL_PA_SYM(true, pa_sw_volume_from_linear, pa_volume_t, double v);
LL_PA_SYM(true, pa_mainloop_free, void, pa_mainloop* m);
LL_PA_SYM(true, pa_mainloop_get_api, pa_mainloop_api*, pa_mainloop* m);
LL_PA_SYM(true, pa_mainloop_new, pa_mainloop*, void);
// optional symbols to grab

View File

@ -1,6 +1,9 @@
// <FS:Zi> No longer needed
/*
// required symbols to grab
LL_PA_SYM(true, pa_glib_mainloop_free, void, pa_glib_mainloop* g);
LL_PA_SYM(true, pa_glib_mainloop_get_api, pa_mainloop_api*, pa_glib_mainloop* g);
LL_PA_SYM(true, pa_glib_mainloop_new, pa_glib_mainloop *, GMainContext *c);
// optional symbols to grab
*/

View File

@ -20,10 +20,10 @@ LL_GST_SYM(true, gst_caps_from_string, GstCaps *, const gchar *string)
LL_GST_SYM(true, gst_caps_get_structure, GstStructure *, const GstCaps *caps, guint index)
LL_GST_SYM(true, gst_element_register, gboolean, GstPlugin *plugin, const gchar *name, guint rank, GType type)
LL_GST_SYM(true, gst_structure_get_int, gboolean, const GstStructure *structure, const gchar *fieldname, gint *value)
LL_GST_SYM(true, gst_structure_get_value, G_CONST_RETURN GValue *, const GstStructure *structure, const gchar *fieldname)
LL_GST_SYM(true, gst_structure_get_value, const GValue *, const GstStructure *structure, const gchar *fieldname)
LL_GST_SYM(true, gst_value_get_fraction_numerator, gint, const GValue *value)
LL_GST_SYM(true, gst_value_get_fraction_denominator, gint, const GValue *value)
LL_GST_SYM(true, gst_structure_get_name, G_CONST_RETURN gchar *, const GstStructure *structure)
LL_GST_SYM(true, gst_structure_get_name, const gchar *, const GstStructure *structure)
LL_GST_SYM(true, gst_element_seek, bool, GstElement *, gdouble, GstFormat, GstSeekFlags, GstSeekType, gint64, GstSeekType, gint64)
LL_GST_SYM(false, gst_registry_fork_set_enabled, void, gboolean enabled)

View File

@ -2184,7 +2184,7 @@ if (WINDOWS)
${CMAKE_CURRENT_SOURCE_DIR}/featuretable.txt
${viewer_APPSETTINGS_FILES}
${ARCH_PREBUILT_DIRS_RELEASE}/growl.dll
${SHARED_LIB_STAGING_DIR}/Release/glod.dll # <FS:Beq> Restore GLOD build dependencies
${SHARED_LIB_STAGING_DIR}/glod.dll # <FS:Beq> Restore GLOD build dependencies
SLPlugin
media_plugin_cef
media_plugin_libvlc
@ -2194,7 +2194,7 @@ if (WINDOWS)
# <FS:Ansariel> Only copy OpenJPEG dll if needed
if (NOT USE_KDU)
list(APPEND COPY_INPUT_DEPENDENCIES
${SHARED_LIB_STAGING_DIR}/Release/openjp2.dll
${SHARED_LIB_STAGING_DIR}/openjp2.dll
)
endif (NOT USE_KDU)
# </FS:Ansariel>
@ -2396,27 +2396,24 @@ target_link_libraries(${VIEWER_BINARY_NAME}
ll::bugsplat
ll::tracy
fs::glod # <FS:Beq/> restore GLOD dependencies
# fs::growl # <FS:Ansariel> Growl support <FS:Zi> added further down for win/mac only
fs::discord # <FS:Ansariel> Discord support
)
if( TARGET ll::intel_memops )
target_link_libraries(${VIEWER_BINARY_NAME} ll::intel_memops )
endif()
target_link_libraries(${VIEWER_BINARY_NAME} ${DISCORD_LIBRARY} )
if (USE_BUGSPLAT)
target_link_libraries(${VIEWER_BINARY_NAME}
${BUGSPLAT_LIBRARIES}
)
endif (USE_BUGSPLAT)
if (WINDOWS)
target_link_libraries(${VIEWER_BINARY_NAME}
fs::growl # <FS:Ansariel> Growl support
${GROWL_LIBRARY}
)
endif (WINDOWS)
# <FS:Ansariel> Growl support
if (WINDOWS OR DARWIN)
target_link_libraries(${VIEWER_BINARY_NAME} fs::growl)
endif (WINDOWS OR DARWIN)
# </FS:Ansariel>
if( TARGET ll::nvapi )
target_link_libraries(${VIEWER_BINARY_NAME} ll::nvapi )

View File

@ -26264,5 +26264,16 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>Value</key>
<integer>0</integer>
</map>
<key>FSAnimationPreviewExpanded</key>
<map>
<key>Comment</key>
<string>Expand or collapse the advanced animation information in the animation preview floater by default</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
</map>
</llsd>

View File

@ -110,7 +110,6 @@ private:
LLSD mResultsContent;
LLUUID mQueryID;
FSFloaterSearch* mParent;
LLSearchComboBox* mSearchComboBox;
FSScrollListCtrl* mSearchResults;
};
@ -145,7 +144,6 @@ private:
LLSD mResultsContent;
LLUUID mQueryID;
FSFloaterSearch* mParent;
LLSearchComboBox* mSearchComboBox;
LLScrollListCtrl* mSearchResults;
};
@ -180,7 +178,6 @@ private:
LLSD mResultsContent;
LLUUID mQueryID;
FSFloaterSearch* mParent;
LLSearchComboBox* mSearchComboBox;
LLScrollListCtrl* mSearchResults;
LLComboBox* mPlacesCategory;
@ -214,7 +211,6 @@ private:
LLSD mResultsContent;
LLUUID mQueryID;
FSFloaterSearch* mParent;
LLLineEditor* mPriceEditor;
LLLineEditor* mAreaEditor;
LLScrollListCtrl* mSearchResults;
@ -250,7 +246,6 @@ private:
LLSD mResultsContent;
LLUUID mQueryID;
FSFloaterSearch* mParent;
LLSearchComboBox* mSearchComboBox;
LLScrollListCtrl* mSearchResults;
LLComboBox* mClassifiedsCategory;
@ -292,7 +287,6 @@ private:
LLSD mResultsContent;
LLUUID mQueryID;
FSFloaterSearch* mParent;
LLSearchComboBox* mSearchComboBox;
LLScrollListCtrl* mSearchResults;
LLRadioGroup* mEventsMode;

View File

@ -36,9 +36,7 @@
#include "llviewerprecompiledheaders.h"
#include "growlnotifierwin.h"
#ifdef HAS_GROWL
#include "growl.h"
#endif
#include "llviewercontrol.h"
@ -55,9 +53,7 @@ void __cdecl GrowlLogSink( char const *aMessage, int aLevel )
GrowlNotifierWin::GrowlNotifierWin() :
mApplicationName("")
{
#ifdef HAS_GROWL
mGrowlImpl = NULL;
#endif
LL_INFOS("GrowlNotifierWin") << "Windows growl notifier initialized." << LL_ENDL;
#ifdef GROWL_HAS_LOG
@ -69,20 +65,17 @@ GrowlNotifierWin::GrowlNotifierWin() :
GrowlNotifierWin::~GrowlNotifierWin()
{
LL_INFOS("GrowlNotifierWin") << "Windows growl notifier destroyed." << LL_ENDL;
#ifdef HAS_GROWL
if (mGrowlImpl)
{
delete mGrowlImpl;
mGrowlImpl = NULL;
}
#endif
}
void GrowlNotifierWin::registerApplication(const std::string& application, const std::set<std::string>& notificationTypes)
{
mApplicationName = application;
#ifdef HAS_GROWL
char **arr = (char**)malloc(sizeof(*arr) * notificationTypes.size());
S32 i = 0;
for (std::set<std::string>::const_iterator it = notificationTypes.begin(); it != notificationTypes.end(); ++it, ++i)
@ -99,25 +92,18 @@ void GrowlNotifierWin::registerApplication(const std::string& application, const
free(arr[i]);
}
free(arr);
#endif
}
void GrowlNotifierWin::showNotification(const std::string& notification_title, const std::string& notification_message,
const std::string& notification_type)
{
#ifdef HAS_GROWL
if (mGrowlImpl)
{
mGrowlImpl->Notify(notification_type.c_str(), notification_title.c_str(), notification_message.c_str());
}
#endif
}
bool GrowlNotifierWin::isUsable()
{
#ifdef HAS_GROWL
return (mGrowlImpl && mGrowlImpl->isConnected());
#else
return false;
#endif
}

View File

@ -36,10 +36,7 @@
#define GROWLNOTIFIERWIN_H
#include "growlnotifier.h"
#ifdef HAS_GROWL
#include <growl++.hpp>
#endif
class GrowlNotifierWin : public GrowlNotifier
{
@ -53,9 +50,7 @@ public:
private:
std::string mApplicationName;
#ifdef HAS_GROWL
Growl* mGrowlImpl;
#endif
};
#endif // GROWLNOTIFIERWIN_H

View File

@ -263,9 +263,7 @@ using namespace LL;
#include "llcoproceduremanager.h"
#include "llviewereventrecorder.h"
#if HAS_GROWL
#include "growlmanager.h"
#endif
#include "fsavatarrenderpersistence.h"
// *FIX: These extern globals should be cleaned up.
@ -1984,9 +1982,7 @@ bool LLAppViewer::cleanup()
// workaround for DEV-35406 crash on shutdown
LLEventPumps::instance().reset();
#if HAS_GROWL
GrowlManager::destroyManager();
#endif
GrowlManager::destroyManager(); // <FS> Growl support
//dump scene loading monitor results
if (LLSceneMonitor::instanceExists())

View File

@ -81,7 +81,8 @@ static S32 bump_channel = -1;
// Enabled after changing LLViewerTexture::mNeedsCreateTexture to an
// LLAtomicBool; this should work just fine, now. HB
#define LL_BUMPLIST_MULTITHREADED 1
// #define LL_BUMPLIST_MULTITHREADED 1 // <FS:Beq/> Enabling this causes issues on some machines
#define LL_BUMPLIST_MULTITHREADED 0
// static

View File

@ -67,12 +67,14 @@
#include "llnotificationsutil.h" // <FS:Zi> detect and strip empty alpha layers from images on upload
const S32 PREVIEW_BORDER_WIDTH = 2;
const S32 PREVIEW_RESIZE_HANDLE_SIZE = S32(RESIZE_HANDLE_WIDTH * OO_SQRT2) + PREVIEW_BORDER_WIDTH;
const S32 PREVIEW_HPAD = PREVIEW_RESIZE_HANDLE_SIZE;
const S32 PREVIEW_VPAD = -24 + 35; // yuk, hard coded
const S32 PREF_BUTTON_HEIGHT = 16 + 7 + 16 + 35;
const S32 PREVIEW_TEXTURE_HEIGHT = 320;
// <FS:Zi> Make preview area position to be not hard-coded
// const S32 PREVIEW_BORDER_WIDTH = 2;
// const S32 PREVIEW_RESIZE_HANDLE_SIZE = S32(RESIZE_HANDLE_WIDTH * OO_SQRT2) + PREVIEW_BORDER_WIDTH;
// const S32 PREVIEW_HPAD = PREVIEW_RESIZE_HANDLE_SIZE;
// const S32 PREVIEW_VPAD = -24 + 35; // yuk, hard coded
// const S32 PREF_BUTTON_HEIGHT = 16 + 7 + 16 + 35;
// const S32 PREVIEW_TEXTURE_HEIGHT = 320;
// </FS:Zi>
// <FS:Zi> detect and strip empty alpha layers from images on upload
const U8 ALPHA_EMPTY_THRESHOLD = 253;
@ -110,10 +112,13 @@ BOOL LLFloaterImagePreview::postBuild()
}
childSetCommitCallback("clothing_type_combo", onPreviewTypeCommit, this);
mPreviewRect.set(PREVIEW_HPAD,
PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD,
getRect().getWidth() - PREVIEW_HPAD,
PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD);
// <FS:Zi> Make preview area position to be not hard-coded
// mPreviewRect.set(PREVIEW_HPAD,
// PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD,
// getRect().getWidth() - PREVIEW_HPAD,
// PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD);
mPreviewRect = getChildView("preview_area")->getRect();
// </FS:Zi>
mPreviewImageRect.set(0.f, 1.f, 1.f, 0.f);
getChildView("bad_image_text")->setVisible(FALSE);
@ -178,9 +183,14 @@ BOOL LLFloaterImagePreview::postBuild()
// getChild<LLUICtrl>("ok_btn")->setCommitCallback(boost::bind(&LLFloaterNameDesc::onBtnOK, this));
getChild<LLUICtrl>("ok_btn")->setCommitCallback(boost::bind(&LLFloaterImagePreview::onBtnUpload, this));
getChild<LLUICtrl>("uploaded_size_text")->setTextArg("[X_RES]", llformat("%d", mRawImagep->getWidth()));
getChild<LLUICtrl>("uploaded_size_text")->setTextArg("[Y_RES]", llformat("%d", mRawImagep->getHeight()));
if (mRawImagep->getComponents() != 4)
{
return TRUE;
getChild<LLUICtrl>("image_alpha_warning")->setVisible(false);
getChild<LLUICtrl>("uploaded_size_text")->setTextArg("[ALPHA]", getString("no_alpha"));
return true;
}
U32 imageBytes = mRawImagep->getWidth() * mRawImagep->getHeight() * 4;
@ -209,6 +219,8 @@ BOOL LLFloaterImagePreview::postBuild()
getChild<LLUICtrl>("image_alpha_warning")->setVisible(false);
mEmptyAlphaCheck->setValue(false);
}
getChild<LLUICtrl>("uploaded_size_text")->setTextArg("[ALPHA]", getString(mEmptyAlphaCheck->getValue() ? "no_alpha" : "with_alpha"));
// </FS:Zi>
return TRUE;
}
@ -216,7 +228,11 @@ BOOL LLFloaterImagePreview::postBuild()
// <FS:Zi> detect and strip empty alpha layers from images on upload
void LLFloaterImagePreview::emptyAlphaCheckboxCallback()
{
if (!mEmptyAlphaCheck->getValue())
if (mEmptyAlphaCheck->getValue())
{
getChild<LLUICtrl>("uploaded_size_text")->setTextArg("[ALPHA]", getString("no_alpha"));
}
else
{
LLNotificationsUtil::add("ImageEmptyAlphaLayer", LLSD(), LLSD(), boost::bind(&LLFloaterImagePreview::imageEmptyAlphaCallback, this, _1, _2));
}
@ -232,6 +248,7 @@ bool LLFloaterImagePreview::imageEmptyAlphaCallback(const LLSD& notification, co
mEmptyAlphaCheck->setValue(true);
}
getChild<LLUICtrl>("uploaded_size_text")->setTextArg("[ALPHA]", getString(option == 0 ? "no_alpha" : "with_alpha"));
return true;
}
@ -407,24 +424,27 @@ void LLFloaterImagePreview::draw()
// gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD);
//}
//gGL.end();
// </FS:Ansariel>
// <FS:Zi> Make preview area position to be not hard-coded
gGL.begin( LLRender::TRIANGLES );
{
gGL.texCoord2f(mPreviewImageRect.mLeft, mPreviewImageRect.mTop);
gGL.vertex2i(PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD);
gGL.vertex2i(mPreviewRect.mLeft, mPreviewRect.mTop);
gGL.texCoord2f(mPreviewImageRect.mLeft, mPreviewImageRect.mBottom);
gGL.vertex2i(PREVIEW_HPAD, PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD);
gGL.vertex2i(mPreviewRect.mLeft, mPreviewRect.mBottom);
gGL.texCoord2f(mPreviewImageRect.mRight, mPreviewImageRect.mBottom);
gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD);
gGL.vertex2i(mPreviewRect.mRight, mPreviewRect.mBottom);
gGL.texCoord2f(mPreviewImageRect.mLeft, mPreviewImageRect.mTop);
gGL.vertex2i(PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD);
gGL.vertex2i(mPreviewRect.mLeft, mPreviewRect.mTop);
gGL.texCoord2f(mPreviewImageRect.mRight, mPreviewImageRect.mBottom);
gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD);
gGL.vertex2i(mPreviewRect.mRight, mPreviewRect.mBottom);
gGL.texCoord2f(mPreviewImageRect.mRight, mPreviewImageRect.mTop);
gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD);
gGL.vertex2i(mPreviewRect.mRight, mPreviewRect.mTop);
}
gGL.end();
// </FS:Ansariel>
// </FS:Zi>
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
@ -458,24 +478,27 @@ void LLFloaterImagePreview::draw()
// gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD);
//}
//gGL.end();
// </FS:Ansariel>
// <FS:Zi> Make preview area position to be not hard-coded
gGL.begin( LLRender::TRIANGLES );
{
gGL.texCoord2f(0.f, 1.f);
gGL.vertex2i(PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD);
gGL.vertex2i(mPreviewRect.mLeft, mPreviewRect.mTop);
gGL.texCoord2f(0.f, 0.f);
gGL.vertex2i(PREVIEW_HPAD, PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD);
gGL.vertex2i(mPreviewRect.mLeft, mPreviewRect.mBottom);
gGL.texCoord2f(1.f, 0.f);
gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD);
gGL.vertex2i(mPreviewRect.mRight, mPreviewRect.mBottom);
gGL.texCoord2f(1.f, 0.f);
gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD);
gGL.texCoord2f(0.f, 1.f);
gGL.vertex2i(PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD);
gGL.vertex2i(mPreviewRect.mLeft, mPreviewRect.mTop);
gGL.texCoord2f(1.f, 0.f);
gGL.vertex2i(mPreviewRect.mRight, mPreviewRect.mBottom);
gGL.texCoord2f(1.f, 1.f);
gGL.vertex2i(r.getWidth() - PREVIEW_HPAD, PREVIEW_TEXTURE_HEIGHT + PREVIEW_VPAD);
gGL.vertex2i(mPreviewRect.mRight, mPreviewRect.mTop);
}
gGL.end();
// </FS:Ansariel>
// </FS:Zi>
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
}

View File

@ -40,6 +40,8 @@
#include "lluictrlfactory.h"
#include "lldatapacker.h"
#include "llviewercontrol.h" // <FS:Zi> Make advanced animation preview optional
extern LLAgent gAgent;
//const S32 ADVANCED_VPAD = 3; // <FS:Ansariel> Improved animation preview
@ -47,6 +49,9 @@ LLPreviewAnim::LLPreviewAnim(const LLSD& key)
: LLPreview( key )
{
mCommitCallbackRegistrar.add("PreviewAnim.Play", boost::bind(&LLPreviewAnim::play, this, _2));
// <FS:Zi> Make advanced animation preview optional
mCommitCallbackRegistrar.add("PreviewAnim.Expand", boost::bind(&LLPreviewAnim::expand, this, _2));
// </FS:Zi>
}
// virtual
@ -64,6 +69,15 @@ BOOL LLPreviewAnim::postBuild()
//reshape(rect.getWidth(), rect.getHeight() - pAdvancedStatsTextBox->getRect().getHeight() - ADVANCED_VPAD, FALSE);
// </FS:Ansariel>
// <FS:Zi> Make advanced animation preview optional
bool expanded = gSavedSettings.getBOOL("FSAnimationPreviewExpanded");
getChild<LLView>("advanced_info_panel")->setVisible(!expanded);
getChild<LLButton>("btn_expand")->setToggleState(expanded);
expand(LLSD());
// </FS:Zi>
return LLPreview::postBuild();
}
@ -253,3 +267,37 @@ void LLPreviewAnim::onClose(bool app_quitting)
// }
//}
// </FS:Ansariel>
// <FS:Zi> Make advanced animation preview optional
void LLPreviewAnim::expand(const LLSD& param)
{
LLView* basic_info_panel = getChild<LLView>("basic_info_panel");
LLView* advanced_info_panel = getChild<LLView>("advanced_info_panel");
// I don't get why we can't use getLocalRect().mTop or something similar to get the .top from the XML -Zi
S32 height = getRect().getHeight() - basic_info_panel->getRect().mTop;
S32 basic_info_height = basic_info_panel->getRect().getHeight();
S32 advanced_info_height = advanced_info_panel->getRect().getHeight();
bool was_expanded = advanced_info_panel->getVisible();
advanced_info_panel->setVisible(!was_expanded);
height += basic_info_height;
if (!was_expanded)
{
height += advanced_info_height;
}
LLRect rect = getRect();
rect.setLeftTopAndSize(rect.mLeft, rect.mTop, rect.getWidth(), height);
reshape(rect.getWidth(), rect.getHeight(), false);
setRect(rect);
if(getHost())
{
getHost()->growToFit(rect.getWidth(), height);
}
}
// </FS:Zi>

View File

@ -50,6 +50,8 @@ public:
protected:
void expand(const LLSD& param); // <FS:Zi> Make advanced animation preview optional
LLUUID mItemID; // Not an item id, but a playing asset id
bool mDidStart;
// <FS:Ansariel> Improved animation preview

View File

@ -226,9 +226,7 @@
//#include "llfloaterimsession.h"
#include "fsfloaterim.h"
// </FS:Ansariel> [FS communication UI]
#if HAS_GROWL
#include "growlmanager.h"
#endif
#include "fsassetblacklist.h"
#include "fsavatarrenderpersistence.h"
@ -665,10 +663,8 @@ bool idle_startup()
//
std::string lastGPU = gSavedSettings.getString("LastGPUString");
std::string thisGPU = LLFeatureManager::getInstance()->getGPUString();
#if HAS_GROWL
GrowlManager::initiateManager();
#endif
GrowlManager::initiateManager(); // <FS> Growl support
// <FS:Ansariel> Store current font and skin for system info (FIRE-6806)
gSavedSettings.setString("FSInternalFontSettingsFile", gSavedSettings.getString("FSFontSettingsFile"));

View File

@ -3,9 +3,11 @@
<floater.string name="Title">
Animation: [NAME]
</floater.string>
<text name="desc txt">
Beskrivelse:
</text>
<button label="Afspil i verden" label_selected="Stop" name="Anim play btn" tool_tip="Vis denne animation så andre kan se den"/>
<button label="Afspil lokalt" label_selected="Stop" name="Anim audition btn" tool_tip="Vis denne animation så kun du kan se den"/>
<panel name="basic_info_panel">
<text name="desc txt">
Beskrivelse:
</text>
<button label="Afspil i verden" label_selected="Stop" name="Anim play btn" tool_tip="Vis denne animation så andre kan se den"/>
<button label="Afspil lokalt" label_selected="Stop" name="Anim audition btn" tool_tip="Vis denne animation så kun du kan se den"/>
</panel>
</floater>

View File

@ -1,5 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="Image Preview" title="">
<string name="with_alpha">
mit Alpha
</string>
<string name="no_alpha">
ohne Alpha
</string>
<text name="name_label">
Name:
</text>
@ -29,8 +35,11 @@
Speichern Sie das Bild als 24 Bit Targa (.tga).
</text>
<text name="uploaded_size_text">
Größe hochgeladen: [X_RES]x[Y_RES], [ALPHA]
</text>
<check_box label="Verlustfrei komprimieren" name="lossless_check" left_delta="-5"/>
<check_box name="temp_check" label="Temporär (kostenlos)" tool_tip="Lädt das Bild temporär hoch, d.h. der Upload ist kostenlos. Im Gegenzug wird es nach einiger Zeit automatisch gelöscht." />
<button label="Abbrechen" name="cancel_btn"/>
<button label="Hochladen ([AMOUNT] L$)" name="ok_btn" width="146"/>
<button label="Abbrechen" name="cancel_btn"/>
</floater>

View File

@ -3,20 +3,24 @@
<floater.string name="Title">
Animation: [NAME]
</floater.string>
<text name="desc txt" width="90">
Beschreibung:
</text>
<line_editor name="desc"/>
<button label="Inworld abspielen" label_selected="Stopp" name="Inworld" tool_tip="Diese Animation so wiedergeben, dass andere sie sehen können."/>
<button label="Lokal wiedergeben" label_selected="Stopp" name="Locally" tool_tip="Diese Animation so wiedergeben, dass nur Sie sie sehen."/>
<text name="AdvancedStatsLeft">
<panel name="basic_info_panel">
<text name="desc txt" width="90">
Beschreibung:
</text>
<button label="Inworld abspielen" label_selected="Stopp" name="Inworld" tool_tip="Diese Animation so wiedergeben, dass andere sie sehen können."/>
<button label="Lokal wiedergeben" label_selected="Stopp" name="Locally" tool_tip="Diese Animation so wiedergeben, dass nur Sie sie sehen."/>
<button name="btn_expand" tool_tip="Aufklappen, um erweiterte Informationen über diese Animation zu erhalten."/>
</panel>
<panel name="advanced_info_panel">
<text name="AdvancedStatsLeft">
Priorität: [PRIORITY]
Dauer: [DURATION]s
Schleife: [IS_LOOP]
</text>
<text name="AdvancedStatsRight">
</text>
<text name="AdvancedStatsRight">
Einblenden: [EASE_IN]s
Ausblenden: [EASE_OUT]s
Gelenke: [NUM_JOINTS]
</text>
</text>
</panel>
</floater>

View File

@ -237,6 +237,7 @@
<check_box label="Vom Inventar aus bearbeitete Skripte als Mono speichern" tool_tip="Speichert Skripte, die direkt vom Inventar aus bearbeitet werden, als Mono anstatt LSL." name="FSSaveInventoryScriptsAsMono_toggle"/>
<check_box label="Texturen standardmäßig im PNG-Format anstelle von TGA speichern" tool_tip="Falls aktiviert, werden Texturen in der Vorschau standardmäßig im PNG-Format gespeichert" name="FSTextureDefaultSaveAsFormat"/>
<check_box label="Vorschau von Animation beim Upload am eigenen Avatar" tool_tip="Falls aktiviert, werden Animationen in der Vorschau am eigenen Avatar abgespielt" name="FSUploadAnimationOnOwnAvatar"/>
<check_box label="Immer erweiterte Informationen zu Animationen anzeigen" tool_tip="Erweiterte Informationen zu Animation im Eigentschaftsfenster anzeigen" name="FSAnimationPreviewExpanded"/>
<check_box label="Erweiterte Skript-Informationen aktivieren" tool_tip="Falls aktiviert, werden die Skript-Informationen um weitergehende Details ergänzt." name="FSScriptInfoExtended"/>
</panel>

View File

@ -7,6 +7,17 @@
name="Image Preview"
help_topic="image_preview"
width="300">
<string
name="with_alpha"
value="with alpha"
/>
<string
name="no_alpha"
value="no alpha"
/>
<text
type="string"
length="1"
@ -60,7 +71,7 @@
height="18"
label="Clothing Type"
layout="topleft"
left_delta="110"
right="-10"
name="clothing_type_combo"
top_delta="-2"
width="160">
@ -106,23 +117,23 @@
name="SculptedPrim" />
</combo_box>
<panel
<panel
follows="left|right"
height="32"
height="24"
layout="topleft"
left="10"
name="image_alpha_warning"
right="-10"
top_pad="4"
visible="false">
visible="true">
<icon
<icon
height="24"
image_name="Popup_Caution"
left="0"
top="0"
width="24"
/>
/>
<check_box
follows="top|left|right"
@ -133,14 +144,28 @@
name="strip_alpha_check"
right="-1"
top_delta="10"
/>
/>
</panel>
<panel
background_opaque="true"
background_visible="true"
bg_opaque_color="0 0 0 0.333"
follows="top|left"
height="239"
layout="topleft"
left="10"
name="preview_area"
right="-10"
top_pad="4"
/>
<text
type="string"
length="1"
bottom="250"
halign="center"
height="45"
word_wrap="true"
follows="top|left"
@ -151,6 +176,22 @@
Try saving image as 24 bit Targa (.tga).
</text>
<text
type="string"
length="1"
height="16"
word_wrap="true"
follows="top|left"
halign="center"
layout="topleft"
left="10"
name="uploaded_size_text"
right="-10"
top_pad="142">
Uploaded Size: [X_RES]x[Y_RES], [ALPHA]
</text>
<check_box
enabled="false"
initial_value="false"
@ -158,50 +199,53 @@ Try saving image as 24 bit Targa (.tga).
height="16"
label="Use lossless compression"
layout="topleft"
left_delta="2"
left_delta="-3"
name="lossless_check"
top_pad="162"
top_pad="7"
width="280" />
<check_box
control_name="TemporaryUpload"
visible="false"
visible="true"
follows="bottom|left"
height="16"
initial_value="false"
left_delta="155"
left_delta="168"
name="temp_check"
width="280"
label="Temporary (Free)"
tool_tip="Sets the asset to be temporary, meaning its free, but in return, only good for a short time before it ceases to exist." />
<button
follows="bottom|right"
height="20"
label="Cancel"
layout="topleft"
left="165"
name="cancel_btn"
top="430"
width="125" />
<button
follows="bottom|left"
height="20"
label="Upload (L$[AMOUNT])"
layout="topleft"
left_delta="-150"
left="10"
name="ok_btn"
top_pad="4"
width="130" />
<button
follows="bottom|right"
height="20"
label="Cancel"
layout="topleft"
name="cancel_btn"
right="-10"
top_delta="0"
width="125" />
width="130" />
<text
type="string"
length="1"
follows="left|top"
halign="center"
height="35"
layout="topleft"
left="10"
mouse_opaque="false"
right="-10"
skip_link_underline="true"
name="info_text"
word_wrap="true"
top_pad="10"
width="270"/>
top_pad="5"
value="= upload fee information text goes here ="
/>
</floater>

View File

@ -1,7 +1,18 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<!-- <FS:Zi> This floater's height changes at runtime when display of advanced info changes:
collapsed:
floater height = basic_info_panel.top + basic_info_panel.height 25 + 60
expanded:
floater height = basic_info_panel.top + basic_info_panel.height + advanced_info_panel.height 25 + 60 + 56
-->
<floater
legacy_header_height="18"
height="121"
height="141"
layout="topleft"
name="preview_anim"
help_topic="fs_animation_inventory_preview"
@ -12,6 +23,17 @@
name="Title">
Animation: [NAME]
</floater.string>
<!-- <FS:Zi> panel that holds the basic animation info and gives size hints to the code -->
<panel
follows="left|top|right"
height="60"
layout="topleft"
left="0"
name="basic_info_panel"
top="25"
width="320">
<text
type="string"
length="1"
@ -21,7 +43,6 @@
layout="topleft"
left="10"
name="desc txt"
top="25"
width="80">
Description:
</text>
@ -38,6 +59,7 @@
top_delta="-2"
right="-10" />
<button
follows="left|top"
height="20"
label="Play Inworld"
label_selected="Stop"
@ -45,37 +67,63 @@
left="8"
name="Inworld"
tool_tip="Play this animation so that others can see it"
top="47"
width="150">
top_pad="8"
width="132">
<button.commit_callback
function="PreviewAnim.Play"
parameter="Inworld" />
</button>
<button
follows="left|top"
height="20"
label="Play Locally"
label_selected="Stop"
layout="topleft"
left_pad="5"
left_pad="6"
name="Locally"
tool_tip="Play this animation so that only you can see it"
top_delta="0"
width="150">
width="132">
<button.commit_callback
function="PreviewAnim.Play"
parameter="Locally" />
</button>
<button
follows="left|top"
height="20"
image_overlay="DisclosureArrow_Opened_Off"
layout="topleft"
left_pad="5"
name="btn_expand"
toggle="true"
tool_tip="Expand to see advanced information about this animation"
top_delta="0"
width="32">
<button.commit_callback
function="PreviewAnim.Expand" />
</button>
</panel>
<!-- <FS:Zi> panel that holds the (optional) advanced animation info and gives size hints to the code -->
<panel
follows="left|top|right"
height="56"
layout="topleft"
name="advanced_info_panel"
top_pad="0"
visible="true">
<text
type="string"
length="1"
follows="left|top"
font="SansSerif"
height="91"
height="52"
layout="topleft"
left="10"
name="AdvancedStatsLeft"
top_pad="3"
top_pad="0"
width="150">
Priority: [PRIORITY]
Duration: [DURATION]s
@ -86,9 +134,9 @@ Loop: [IS_LOOP]
length="1"
follows="left|top"
font="SansSerif"
height="91"
height="52"
layout="topleft"
left_pad="5"
left_pad="10"
name="AdvancedStatsRight"
top_delta="0"
width="150">
@ -96,4 +144,5 @@ Ease In: [EASE_IN]s
Ease Out: [EASE_OUT]s
Joints: [NUM_JOINTS]
</text>
</panel>
</floater>

View File

@ -1629,6 +1629,14 @@
tool_tip="If enabled, you can preview animations during the upload process on your own avatar"
name="FSUploadAnimationOnOwnAvatar"
control_name="FSUploadAnimationOnOwnAvatar"/>
<check_box
top_pad="8"
follows="left|top"
height="16"
label="Always expand animation preview advanced information"
tool_tip="Expand the advanced animation information in the animation preview floater by default"
name="FSAnimationPreviewExpanded"
control_name="FSAnimationPreviewExpanded"/>
<check_box
top_pad="8"
follows="left|top"

View File

@ -122,7 +122,7 @@
layout="topleft"
left_delta="0"
name="limit_payment"
tool_tip="Residents must have payment information on file to access this estate. See the [SUPPORT_SITE] for more information."
tool_tip="Residents must have payment information on file to access this estate. See the [SUPPORT_SITE] for more information."
top_pad="2"
width="278" />
<check_box
@ -132,7 +132,7 @@
layout="topleft"
left_delta="0"
name="limit_bots"
tool_tip="Residents must not be a scripted agents (bots) to access this estate. See the [SUPPORT_SITE] for more information."
tool_tip="Residents must not be a scripted agents (bots) to access this estate. See the [SUPPORT_SITE] for more information."
top_pad="2"
width="278" />
<check_box

View File

@ -146,7 +146,7 @@ https://www.firestormviewer.org/choose-your-platform/
For more information, see our FAQ below:
http://secondlife.com/viewer-access-faq</string>
<string name="LoginFailed">"Login process did not complete due to system issues. Try again in a few minutes.
<string name="LoginFailed">Login process did not complete due to system issues. Try again in a few minutes.
If you feel this is an error, please contact the grid support.</string>
<string name="LoginIntermediateOptionalUpdateAvailable">Optional viewer update available: [VERSION]</string>
<string name="LoginFailedRequiredUpdate">Required viewer update: [VERSION]</string>

View File

@ -3,9 +3,11 @@
<floater.string name="Title">
Animación: [NAME]
</floater.string>
<text name="desc txt">
Descripción:
</text>
<button label="Ver en el mundo" label_selected="Detener" name="Inworld" tool_tip="Ejecutar esta animación de modo que puedan verla los demás" width="130"/>
<button label="Ejecutarla para usted" label_selected="Detener" left="135" name="Locally" tool_tip="Ejecutar esta animación de modo que sólo la vea yo" width="130"/>
<panel name="basic_info_panel">
<text name="desc txt">
Descripción:
</text>
<button label="Ver en el mundo" label_selected="Detener" name="Inworld" tool_tip="Ejecutar esta animación de modo que puedan verla los demás" width="130"/>
<button label="Ejecutarla para usted" label_selected="Detener" left="135" name="Locally" tool_tip="Ejecutar esta animación de modo que sólo la vea yo" width="130"/>
</panel>
</floater>

View File

@ -4,7 +4,7 @@
<text name="lockout_text">Vous ne pouvez changer votre nom avant le [TIME].</text>
<text name="set_name_label">Nouveau nom :</text>
<text name="name_confirm_label">Réécrivez le nom :</text>
<button label="Réinitialiser" name="reset_btn" tool_tip="Utiliser le nom d'utilisateur comme nom d'affichage" />
<button label="Enregistrer" name="save_btn" tool_tip="Enregistre votre nouveau nom"/>
<button label="Supprimer" name="reset_btn" tool_tip="Supprime votre nom d'affichage"/>
<button label="Annuler" name="cancel_btn"/>
</floater>

View File

@ -2,7 +2,7 @@
<floater name="Image Preview">
<text name="name_label">Nom :</text>
<text name="description_label">Description :</text>
<text name="preview_label" width="115">Prévisualiser l'image en tant que :</text>
<text name="preview_label" width="115">Prévisualiser :</text>
<combo_box label="Type de vêtement" left_delta="115" name="clothing_type_combo">
<item label="Image" name="Image"/>
<item label="Cheveux" name="Hair"/>
@ -23,8 +23,11 @@
Essayez d'enregistrer l'image au format Targa 24 bits (.tga).
</text>
<text name="uploaded_size_text">
Taille transférée : [X_RES]x[Y_RES], [ALPHA]
</text>
<check_box label="Utiliser une compression sans pertes" name="lossless_check"/>
<check_box name="temp_check" label="Temporaire (Gratuit)" tool_tip="Défini l'envoi comme étant temporaire, celui-ci étant gratuit, mais disponible uniquement pour un temps limité avant qu'il ne cesse d'exister définitivement."/>
<button label="Transferer (L$[AMOUNT])" name="ok_btn"/>
<button label="Annuler" name="cancel_btn"/>
<button label="Uploader ([AMOUNT] L$)" width="130" name="ok_btn"/>
</floater>

View File

@ -1,8 +1,23 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="preview_anim" width="350">
<floater name="preview_anim" width="380">
<floater.string name="Title">Animation : [NAME]</floater.string>
<text name="desc txt">Description :</text>
<line_editor name="desc" width="230" />
<button label="Jouer devant tout le monde" width="160" label_selected="Arrêter" name="Inworld" tool_tip="Jouer cette animation de façon à ce que les autres la voient"/>
<button label="Jouer localement" width="160" label_selected="Arrêter" name="Locally" tool_tip="Jouer cette animation de façon à ce que vous soyez la seule personne à la voir"/>
<panel name="basic_info_panel" width="380">
<text name="desc txt">Description :</text>
<line_editor name="desc" width="230" />
<button label="Jouer devant tout le monde" width="160" label_selected="Arrêter" name="Inworld" tool_tip="Jouer cette animation de façon à ce que les autres la voient"/>
<button label="Jouer localement" width="160" label_selected="Arrêter" name="Locally" tool_tip="Jouer cette animation de façon à ce que vous soyez la seule personne à la voir"/>
<button name="btn_expand" tool_tip="Développez pour voir des informations détaillées sur cette animation" />
</panel>
<panel name="advanced_info_panel">
<text name="AdvancedStatsLeft">
Priorité : [PRIORITY]
Durée : [DURATION]s
En boucle : [IS_LOOP]
</text>
<text name="AdvancedStatsRight">
Entrée : [EASE_IN]s
Sortie : [EASE_OUT]s
Joints : [NUM_JOINTS]
</text>
</panel>
</floater>

View File

@ -8,6 +8,6 @@
<menu_item_call label="Paramètres du chat" name="chat_preferences"/>
<menu_item_call label="Paramètres de confidentialité" name="privacy_preferences"/>
<menu_item_check label="Historique de conversations" name="Conversation"/>
<menu_item_check name="Translate_chat" label="Traduire le chat local"/>
<menu_item_check name="Translate_chat" label="Traduire le chat"/>
<menu_item_check name="Translation_settings" label="Paramètres de traduction..."/>
</toggleable_menu>

View File

@ -152,17 +152,18 @@
<check_box label="Sauvegarder les textures sur le disque dur au format PNG au lieu de TGA" tool_tip="Utilisé dans l'aperçu de texture et dans le menu contextuel de l'inventaire." name="FSTextureDefaultSaveAsFormat"/>
<check_box label="Utiliser Ctrl+clic pour attraper et déplacer des objets" tool_tip="Quand coché, vous pourrez attraper et déplacer des objets en utilisant la souris et la touche Ctrl." name="FSEnableGrab"/>
<check_box label="Déplacer les textures directement en maintenant Shift-Clic en mode construction" tool_tip="Activer cette option vous permettra de faire glisser la texture sur la face de l'objet en mode de construction" name="FSExperimentalDragTexture"/>
<check_box label="Prévisualiser les animations sur son avatar pendant l'upload" tool_tip="Si activé, vous pouvez prévisualiser les animations sur votre propre avatar pendant le processus d'upload" name="FSUploadAnimationOnOwnAvatar"/>
<check_box label="Prévisualiser les animations sur son avatar pendant le téléchargement sur le serveur" tool_tip="Si activé, vous pouvez prévisualiser les animations sur votre propre avatar pendant le téléchargement sur le serveur" name="FSUploadAnimationOnOwnAvatar"/>
<check_box label="Toujours développer les informations détaillées de la prévisualisation de l'animation" tool_tip="Développer par défaut les informations détaillées sur l'animation dans le flotteur de l'aperçu de l'animation" name="FSAnimationPreviewExpanded"/>
<check_box label="Active les informations détaillées pour les script" tool_tip="Activée, ajoute aux informations de base sur les scripts des détails utiles aux créateurs" name="FSScriptInfoExtended"/>
</panel>
<panel label="Chargements" name="UploadsTab">
<text name="title">Dossiers de destination pour les chargements :</text>
<text name="title_sounds">Sons</text>
<text name="title_models">Modèles</text>
<text name="upload_help">Pour changer le dossier de destinatio, cliquez droit dessus dans l'inventaire et sélectionnez
<text name="title">Dossiers de destination pour les chargements :</text>
<text name="title_sounds">Sons</text>
<text name="title_models">Modèles</text>
<text name="upload_help">Pour changer le dossier de destination, cliquez droit dessus dans l'inventaire et sélectionnez
"Par défaut pour"
</text>
<button name="reset_default_folders" label="Réinitialiser les dossiers par défaut"/>
</text>
<button name="reset_default_folders" label="Réinitialiser les dossiers par défaut"/>
</panel>
</tab_container>
</panel>

View File

@ -23,6 +23,7 @@ domaine.
</radio_group>
<check_box label="Doit avoir plus de 18 ans" name="limit_age_verified" tool_tip="Pour accéder à ce domaine, les résidents doivent avoir au moins 18 ans. Consultez le [SUPPORT_SITE] pour plus d&apos;informations."/>
<check_box label="Les infos de paiement doivent être enregistrées" name="limit_payment" tool_tip="Pour pouvoir accéder à ce domaine, les résidents doivent avoir enregistré des informations de paiement. Consultez le [SUPPORT_SITE] pour plus d&apos;informations."/>
<check_box label="Ne doit pas être un agent scripté" name="limit_bots" tool_tip="Les résidents ne doivent pas être des agents scriptés (bots) pour accéder à ce domaine. Consultez le [SUPPORT_SITE] pour plus d'informations."/>
<check_box label="Les propriétaires de terrain peuvent imposer plus de restrictions" name="parcel_access_override"/>
<check_box label="Autoriser les chats vocaux" name="voice_chat_check"/>
<check_box label="Autoriser la téléportation directe" name="allow_direct_teleport"/>

View File

@ -225,8 +225,8 @@ Pour plus d&apos;informations, consultez la page FAQ ci-dessous :
http://secondlife.com/viewer-access-faq
</string>
<string name="LoginFailed">
Échec de la connexion d'urgence de la grille.
Si vous pensez qu'il s'agit d'une erreur, veuillez contacter le support du réseau.
Le processus de connexion n'a pas abouti en raison d'un problème du système. Réessayez dans quelques minutes.
Si vous pensez qu'il s'agit d'une erreur, veuillez contacter le service d'assistance du réseau.
</string>
<string name="LoginIntermediateOptionalUpdateAvailable">
Mise à jour facultative du client disponible : [VERSION]

View File

@ -7,7 +7,7 @@
Descrizione:
</text>
<text name="preview_label">
Anteprima dell&apos;immagine come:
Anteprima come:
</text>
<combo_box label="Tipo di capo" left="120" name="clothing_type_combo">
<item label="Immagine" name="Image"/>

View File

@ -3,9 +3,11 @@
<floater.string name="Title">
Animazione: [NAME]
</floater.string>
<text name="desc txt">
Descrizione:
</text>
<button label="Riproduci in mondo" label_selected="Ferma" name="Inworld" tool_tip="Riproduci questa animazione così che gli altri possano vederla"/>
<button label="Riproduci in locale" label_selected="Ferma" name="Locally" tool_tip="Riproduci questa animazione così che solo tu possa vederla"/>
<panel name="basic_info_panel">
<text name="desc txt">
Descrizione:
</text>
<button label="Riproduci in mondo" label_selected="Ferma" name="Inworld" tool_tip="Riproduci questa animazione così che gli altri possano vederla"/>
<button label="Riproduci in locale" label_selected="Ferma" name="Locally" tool_tip="Riproduci questa animazione così che solo tu possa vederla"/>
</panel>
</floater>

View File

@ -3,9 +3,11 @@
<floater.string name="Title">
アニメーション: [NAME]
</floater.string>
<text name="desc txt">
説明:
</text>
<button label="インワールドで再生" label_selected="停止" name="Inworld" tool_tip="他人に見えるように再生"/>
<button label="ローカル再生" label_selected="停止" name="Locally" tool_tip="自分だけが見えるように再生"/>
<panel name="basic_info_panel">
<text name="desc txt">
説明:
</text>
<button label="インワールドで再生" label_selected="停止" name="Inworld" tool_tip="他人に見えるように再生"/>
<button label="ローカル再生" label_selected="停止" name="Locally" tool_tip="自分だけが見えるように再生"/>
</panel>
</floater>

View File

@ -12,7 +12,7 @@
<text name="name_confirm_label">
Wpisz Twoje nowe Imię aby potwierdzić:
</text>
<button label="Zapisz" name="save_btn" tool_tip="Zapisz swoje nowe Wyświetlane Imię"/>
<button label="Resetuj" name="reset_btn" tool_tip="Uczyń Wyświetlane Imię takim samym, jak nazwa konta użytkownika"/>
<button label="Zapisz" name="save_btn" tool_tip="Zapisz swoje nowe Wyświetlane Imię"/>
<button label="Anuluj" name="cancel_btn"/>
</floater>

View File

@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="Image Preview">
<string name="with_alpha" value="z alfą" />
<string name="no_alpha" value="bez alfy" />
<text name="name_label">
Nazwa:
</text>
@ -7,7 +9,7 @@
Opis:
</text>
<text name="preview_label">
Wyświetl obraz jako:
Wyświetl jako:
</text>
<combo_box label="Rodzaj Ubrania" name="clothing_type_combo">
<item label="Obraz" name="Image" />
@ -29,8 +31,12 @@
Spróbuj zapisać obraz jako 24 bitową Targa (.tga).
</text>
<text name="uploaded_size_text">
Przesłano: [X_RES]x[Y_RES], [ALPHA]
</text>
<check_box label="Kompresja bezstratna" name="lossless_check"/>
<check_box name="temp_check" label="Tymczas. (darmowy)" tool_tip="Ustawia obraz na serwerze jako tymczasowy, a zatem jako darmowy, ale będzie on istnieć tylko przez krótki okres - po czym zostanie skasowany." />
<button label="Anuluj" name="cancel_btn"/>
<check_box left_delta="158" name="temp_check" label="Tymczas. (darmowy)" tool_tip="Ustawia obraz na serwerze jako tymczasowy, a zatem jako darmowy, ale będzie on istnieć tylko przez krótki okres - po czym zostanie skasowany." />
<button label="Prześlij ([AMOUNT]L$)" name="ok_btn"/>
<button label="Anuluj" name="cancel_btn"/>
<text name="info_text" value="= tu pojawią się informacje o koszcie przesyłania =" />
</floater>

View File

@ -3,19 +3,24 @@
<floater.string name="Title">
Animacja: [NAME]
</floater.string>
<text name="desc txt">
Opis:
</text>
<button label="Uruchom publicznie" label_selected="Zatrzymaj" name="Inworld" tool_tip="Uruchom animację tak, aby widzieli ją pozostali Rezydenci"/>
<button label="Uruchom prywatnie" label_selected="Zatrzymaj" name="Locally" tool_tip="Uruchom animację tak, aby była ona widoczna tylko dla Ciebie"/>
<text name="AdvancedStatsLeft">
<panel name="basic_info_panel">
<text name="desc txt">
Opis:
</text>
<button label="Uruchom publicznie" label_selected="Zatrzymaj" name="Inworld" tool_tip="Uruchom animację tak, aby widzieli ją pozostali Rezydenci"/>
<button label="Uruchom prywatnie" label_selected="Zatrzymaj" name="Locally" tool_tip="Uruchom animację tak, aby była ona widoczna tylko dla Ciebie"/>
<button name="btn_expand" tool_tip="Rozwiń, aby zobaczyć zaawansowane informacje o tej animacji" />
</panel>
<panel name="advanced_info_panel">
<text name="AdvancedStatsLeft">
Priorytet: [PRIORITY]
Długość: [DURATION]s
Zapętlona: [IS_LOOP]
</text>
<text name="AdvancedStatsRight">
</text>
<text name="AdvancedStatsRight">
Wygł. startu: [EASE_IN]s
Wygł. końca: [EASE_OUT]s
Stawy: [NUM_JOINTS]
</text>
</text>
</panel>
</floater>

View File

@ -8,6 +8,6 @@
<menu_item_call label="Ustawienia czatu..." name="chat_preferences" />
<menu_item_call label="Ustawienia prywatności..." name="privacy_preferences" />
<menu_item_check label="Dziennik rozmów..." name="Conversation" />
<menu_item_check name="Translate_chat" label="Tłumacz czat w pobliżu" />
<menu_item_check name="Translate_chat" label="Tłumacz czat" />
<menu_item_check name="Translation_settings" label="Ustawienia tłumaczenia..." />
</toggleable_menu>

View File

@ -211,6 +211,7 @@
<check_box label="Używaj CTRL+myszki, aby chwytać obiekty i manipulować nimi" tool_tip="Gdy zaznaczysz tą opcję, to będziesz w stanie chwytać i przesuwać obiekty za pomocą myszki oraz klawisza CTRL." name="FSEnableGrab" />
<check_box label="Przesuwaj / skaluj tekstury budując, gdy trzymany jest przycisk myszy oraz klawisz caps-lock" tool_tip="Gdy zaznaczysz tą opcję, to będziesz mógł/mogła przesuwać lub skalować strony tekstur trzymając przycisk myszy (wraz z klawiszem caps-lock) w trybie budowania. Ta funkcja jest eksperymentalna i powinna być używana ostrożnie." name="FSExperimentalDragTexture" />
<check_box label="Podgląd animacji na własnym awatarze podczas przesyłania ich na serwer" tool_tip="Gdy zaznaczysz tą opcję, to będziesz w stanie oglądać animacje na swoim własnym awatarze podczas przesyłania ich na serwer" name="FSUploadAnimationOnOwnAvatar" />
<check_box label="Zawsze rozwijaj zaawansowane informacje o podglądzie animacji" tool_tip="Domyślnie rozwiń zaawansowane informacje o animacji w oknie podglądu animacji" name="FSAnimationPreviewExpanded" />
<check_box label="Włącz rozszerzanie funkcjonalności informacji o skryptach" tool_tip="Gdy zaznaczysz tą opcję, to podstawowa funkcjonalność informacji o skryptach zostanie rozszerzona za pomocą różnych szczegółów przydatnych dla budowniczych" name="FSScriptInfoExtended" />
</panel>
<panel label="Nowe pliki" name="UploadsTab">

View File

@ -21,6 +21,7 @@
</radio_group>
<check_box label="Osoba musi mieć 18+ lat" name="limit_age_verified" tool_tip="Zbanuj Rezydetów, którzy mają mniej niż 18 lat. Odwiedź [SUPPORT_SITE], aby uzyskać więcej informacji." />
<check_box label="Musi mieć dane płatnicze w systemie LL" name="limit_payment" tool_tip="Zbanuj Rezydentów niezarejestrowanych w systemie płatniczym Linden Lab. Odwiedź [SUPPORT_SITE], aby uzyskać więcej informacji." />
<check_box label="Nie może być agentem skryptowym" name="limit_bots" tool_tip="Rezydenci nie mogą być agentami skryptowymi (botami), aby uzyskać dostęp do tego majątku. Odwiedź [SUPPORT_SITE], aby uzyskać więcej informacji." />
<check_box label="Właściciele działek mogą być bardziej restrykcyjni" name="parcel_access_override" />
<check_box label="Rozmowy głosowe" name="voice_chat_check" />
<check_box label="Teleportacja bezpośrednia" name="allow_direct_teleport" />
@ -28,4 +29,3 @@
<button label="Wyślij wiadomość do Majątku..." name="message_estate_btn" />
<button label="Wyrzuć Rezydenta z Majątku..." name="kick_user_from_estate_btn" />
</panel>

View File

@ -222,7 +222,7 @@ Więcej informacji w naszym FAQ:
http://secondlife.com/viewer-access-faq
</string>
<string name="LoginFailed">
Logowanie nieudane.
Proces logowania nie został ukończony z powodu problemów systemu. Spróbuj ponownie za kilka minut.
Jeśli uważasz, że to błąd, skontaktuj się z obsługą świata.
</string>
<string name="LoginIntermediateOptionalUpdateAvailable">

View File

@ -7,8 +7,7 @@
Descrição:
</text>
<text name="preview_label">
Prévia da
imagem como:
Pré-visualizar:
</text>
<combo_box label="Tipo de Roupas" name="clothing_type_combo">
<item label="Imagem" name="Image" value="Imagem"/>

View File

@ -3,9 +3,11 @@
<floater.string name="Title">
Animação: [NOME]
</floater.string>
<text name="desc txt">
Descrição:
</text>
<button label="Tocar inworld" label_selected="Parar" name="Inworld" tool_tip="Executar essa animação de forma que outros possam ver"/>
<button label="Tocar localmente" label_selected="Parar" name="Locally" tool_tip="Executar animação de forma que apenas você possa ver"/>
<panel name="basic_info_panel">
<text name="desc txt">
Descrição:
</text>
<button label="Tocar inworld" label_selected="Parar" name="Inworld" tool_tip="Executar essa animação de forma que outros possam ver"/>
<button label="Tocar localmente" label_selected="Parar" name="Locally" tool_tip="Executar animação de forma que apenas você possa ver"/>
</panel>
</floater>

View File

@ -1,5 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="Image Preview">
<string name="with_alpha" value="с альфой"/>
<string name="no_alpha" value="нет альфы"/>
<text name="name_label">
Название:
</text>
@ -7,7 +9,7 @@
Описание:
</text>
<text name="preview_label">
Показать изображение как:
Показать как:
</text>
<combo_box label="Тип одежды" name="clothing_type_combo">
<item label="Изображение" name="Image" value="Изображение"/>
@ -28,7 +30,12 @@
Невозможно прочитать изображение.
Попробуйте сохранить изображение как 24-битный TGA-файл (Targa).
</text>
<text name="uploaded_size_text">
Загруженный размер: [X_RES]x[Y_RES], [ALPHA]
</text>
<check_box label="Использовать сжатие без потерь" name="lossless_check"/>
<check_box name="temp_check" label="Временно (бесплатно)" tool_tip="Устанавливает актив как временный, что означает, что он бесплатный, но взамен годится только в течение короткого времени, прежде чем он перестанет существовать."/>
<button label="Отмена" name="cancel_btn"/>
<button label="Загрузить (L$[AMOUNT])" name="ok_btn"/>
<text name="info_text" value="= здесь будет текст информации о плате за загрузку ="/>
</floater>

View File

@ -3,19 +3,23 @@
<floater.string name="Title">
Анимация: [NAME]
</floater.string>
<text name="desc txt">
Описание:
</text>
<button label="Запустить публично" label_selected="Остановить" name="Inworld" tool_tip="Запустить анимацию аватара, чтоб ее видели все вокруг"/>
<button label="Запустить для себя" label_selected="Остановить" name="Locally" tool_tip="Запустить анимацию аватара, чтоб ее видели только вы"/>
<text name="AdvancedStatsLeft">
<panel name="basic_info_panel">
<text name="desc txt">
Описание:
</text>
<button label="Запустить публично" label_selected="Остановить" name="Inworld" tool_tip="Запустить анимацию аватара, чтоб ее видели все вокруг"/>
<button label="Запустить для себя" label_selected="Остановить" name="Locally" tool_tip="Запустить анимацию аватара, чтоб ее видели только вы"/>
</panel>
<panel name="advanced_info_panel">
<text name="AdvancedStatsLeft">
Приоритет: [PRIORITY]
Длительн.: [DURATION]с
Цикл: [IS_LOOP]
</text>
<text name="AdvancedStatsRight">
</text>
<text name="AdvancedStatsRight">
Запуск: [EASE_IN]с
Останов: [EASE_OUT]с
Суставы: [NUM_JOINTS]
</text>
</text>
</panel>
</floater>

View File

@ -248,7 +248,7 @@ https://www.firestormviewer.org/choose-your-platform/
http://secondlife.com/viewer-access-faq
</string>
<string name="LoginFailed">
Аварийный сбой входа в сеть.
Процесс входа не завершен из-за системных проблем. Повторите попытку через несколько минут.
Если вы считаете, что это ошибка, пожалуйста, свяжитесь со службой поддержки сети.
</string>
<string name="LoginIntermediateOptionalUpdateAvailable">

View File

@ -7,7 +7,7 @@
ıklama:
</text>
<text name="preview_label">
Görüntüyü şu şekilde önizle:
Olarak önizleyin:
</text>
<combo_box label="Giysi Türü" name="clothing_type_combo">
<item label="Görüntü" name="Image" value="Görüntü"/>

View File

@ -3,9 +3,11 @@
<floater.string name="Title">
Animasyon: [NAME]
</floater.string>
<text name="desc txt">
ıklama:
</text>
<button label="SL Dünyasında Oynat" label_selected="Durdur" name="Inworld" tool_tip="Bu animasyonu başkaları görebilecek şekilde oynatın"/>
<button label="Yerel Olarak Oynat" label_selected="Durdur" name="Locally" tool_tip="Bu animasyonu sadece kendinizin görebileceği şekilde oynatın"/>
<panel name="basic_info_panel">
<text name="desc txt">
ıklama:
</text>
<button label="SL Dünyasında Oynat" label_selected="Durdur" name="Inworld" tool_tip="Bu animasyonu başkaları görebilecek şekilde oynatın"/>
<button label="Yerel Olarak Oynat" label_selected="Durdur" name="Locally" tool_tip="Bu animasyonu sadece kendinizin görebileceği şekilde oynatın"/>
</panel>
</floater>

View File

@ -3,9 +3,11 @@
<floater.string name="Title">
動作:[NAME]
</floater.string>
<text name="desc txt">
描述:
</text>
<button label="在虛擬世界播放" label_selected="停止" name="Inworld" tool_tip="播放此動作讓他人看見"/>
<button label="在本地播放" label_selected="停止" name="Locally" tool_tip="播放此動作,只給自己看"/>
<panel name="basic_info_panel">
<text name="desc txt">
描述:
</text>
<button label="在虛擬世界播放" label_selected="停止" name="Inworld" tool_tip="播放此動作讓他人看見"/>
<button label="在本地播放" label_selected="停止" name="Locally" tool_tip="播放此動作,只給自己看"/>
</panel>
</floater>