Compare commits
22 Commits
sv-1.8.7.8
...
sv-1.8.7.8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
77f500cb64 | ||
|
|
d04a8fc677 | ||
|
|
6028ae7b61 | ||
|
|
347c2cbd8b | ||
|
|
919ffb314b | ||
|
|
c033d69d54 | ||
|
|
356d289972 | ||
|
|
eeabbce377 | ||
|
|
0b992fdd46 | ||
|
|
a7e56d2af9 | ||
|
|
b10619e4d8 | ||
|
|
74518f299c | ||
|
|
407b527a55 | ||
|
|
b21cc835b2 | ||
|
|
4de8c3a38e | ||
|
|
72d8b8f78c | ||
|
|
45f4f601bf | ||
|
|
731283aa0b | ||
|
|
89ce328ba5 | ||
|
|
28e5270d87 | ||
|
|
4a237de72a | ||
|
|
e91aac1dd9 |
@@ -1933,38 +1933,6 @@
|
|||||||
<key>version</key>
|
<key>version</key>
|
||||||
<string>7.11.1.297294</string>
|
<string>7.11.1.297294</string>
|
||||||
</map>
|
</map>
|
||||||
<key>modernjson</key>
|
|
||||||
<map>
|
|
||||||
<key>copyright</key>
|
|
||||||
<string>Copyright (c) 2013-2018 Niels Lohmann</string>
|
|
||||||
<key>description</key>
|
|
||||||
<string>JSON for Modern C++</string>
|
|
||||||
<key>license</key>
|
|
||||||
<string>MIT</string>
|
|
||||||
<key>license_file</key>
|
|
||||||
<string>LICENSES/modernjson.txt</string>
|
|
||||||
<key>name</key>
|
|
||||||
<string>modernjson</string>
|
|
||||||
<key>platforms</key>
|
|
||||||
<map>
|
|
||||||
<key>common</key>
|
|
||||||
<map>
|
|
||||||
<key>archive</key>
|
|
||||||
<map>
|
|
||||||
<key>hash</key>
|
|
||||||
<string>6f11eca7e2a6ca61f9217e949a64f026</string>
|
|
||||||
<key>hash_algorithm</key>
|
|
||||||
<string>md5</string>
|
|
||||||
<key>url</key>
|
|
||||||
<string>https://depot.alchemyviewer.org/pub/common/lib/modernjson-3.2.0-common-201809210551.tar.bz2</string>
|
|
||||||
</map>
|
|
||||||
<key>name</key>
|
|
||||||
<string>common</string>
|
|
||||||
</map>
|
|
||||||
</map>
|
|
||||||
<key>version</key>
|
|
||||||
<string>3.2.0</string>
|
|
||||||
</map>
|
|
||||||
<key>nvapi</key>
|
<key>nvapi</key>
|
||||||
<map>
|
<map>
|
||||||
<key>copyright</key>
|
<key>copyright</key>
|
||||||
|
|||||||
@@ -50,7 +50,6 @@ set(cmake_SOURCE_FILES
|
|||||||
GooglePerfTools.cmake
|
GooglePerfTools.cmake
|
||||||
Hunspell.cmake
|
Hunspell.cmake
|
||||||
JPEG.cmake
|
JPEG.cmake
|
||||||
Json.cmake
|
|
||||||
LLAddBuildTest.cmake
|
LLAddBuildTest.cmake
|
||||||
LLAppearance.cmake
|
LLAppearance.cmake
|
||||||
LLAudio.cmake
|
LLAudio.cmake
|
||||||
|
|||||||
@@ -15,10 +15,15 @@ FetchContent_Declare(
|
|||||||
GIT_REPOSITORY https://github.com/fmtlib/fmt.git
|
GIT_REPOSITORY https://github.com/fmtlib/fmt.git
|
||||||
GIT_TAG 6.1.2
|
GIT_TAG 6.1.2
|
||||||
)
|
)
|
||||||
|
FetchContent_Declare(
|
||||||
|
nlohmann_json
|
||||||
|
GIT_REPOSITORY https://github.com/nlohmann/json.git
|
||||||
|
GIT_TAG v3.7.3
|
||||||
|
)
|
||||||
FetchContent_Declare(
|
FetchContent_Declare(
|
||||||
absl
|
absl
|
||||||
GIT_REPOSITORY https://github.com/abseil/abseil-cpp.git
|
GIT_REPOSITORY https://github.com/abseil/abseil-cpp.git
|
||||||
GIT_TAG 29235139149790f5afc430c11cec8f1eb1677607
|
GIT_TAG 0033c9ea91a52ade7c6b725aa2ef3cbe15463421
|
||||||
)
|
)
|
||||||
|
|
||||||
# This is a hack because absl has dumb cmake
|
# This is a hack because absl has dumb cmake
|
||||||
@@ -44,5 +49,14 @@ if(WINDOWS)
|
|||||||
FetchContent_MakeAvailable(fmt)
|
FetchContent_MakeAvailable(fmt)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# Typically you don't care so much for a third party library's tests to be
|
||||||
|
# run from your own project's code.
|
||||||
|
set(JSON_BuildTests OFF CACHE INTERNAL "")
|
||||||
|
|
||||||
|
# If you only include this third party in PRIVATE source files, you do not
|
||||||
|
# need to install it when your main project gets installed.
|
||||||
|
set(JSON_Install OFF CACHE INTERNAL "")
|
||||||
|
FetchContent_MakeAvailable(nlohmann_json)
|
||||||
|
|
||||||
unset(CMAKE_FOLDER)
|
unset(CMAKE_FOLDER)
|
||||||
unset(CMAKE_POSITION_INDEPENDENT_CODE)
|
unset(CMAKE_POSITION_INDEPENDENT_CODE)
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ include(Linking)
|
|||||||
include(Boost)
|
include(Boost)
|
||||||
include(OpenSSL)
|
include(OpenSSL)
|
||||||
include(LLSharedLibs)
|
include(LLSharedLibs)
|
||||||
include(Json)
|
|
||||||
include(Copy3rdPartyLibs)
|
include(Copy3rdPartyLibs)
|
||||||
include(ZLIB)
|
include(ZLIB)
|
||||||
include(URIPARSER)
|
include(URIPARSER)
|
||||||
@@ -300,6 +299,7 @@ target_link_libraries(
|
|||||||
${Boost_SYSTEM_LIBRARY}
|
${Boost_SYSTEM_LIBRARY}
|
||||||
${CORESERVICES_LIBRARY}
|
${CORESERVICES_LIBRARY}
|
||||||
${URIPARSER_LIBRARY}
|
${URIPARSER_LIBRARY}
|
||||||
|
nlohmann_json::nlohmann_json
|
||||||
${RT_LIBRARY}
|
${RT_LIBRARY}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -182,10 +182,10 @@ public:
|
|||||||
bool operator! () const { return ! mListener; }
|
bool operator! () const { return ! mListener; }
|
||||||
|
|
||||||
/// explicit accessor
|
/// explicit accessor
|
||||||
const LLEventListener& getListener() const { return *mListener; }
|
const ::LLEventListener& getListener() const { return *mListener; }
|
||||||
|
|
||||||
/// implicit conversion to LLEventListener
|
/// implicit conversion to LLEventListener
|
||||||
operator LLEventListener() const { return *mListener; }
|
operator ::LLEventListener() const { return *mListener; }
|
||||||
|
|
||||||
/// allow calling directly
|
/// allow calling directly
|
||||||
bool operator()(const LLSD& event) const;
|
bool operator()(const LLSD& event) const;
|
||||||
@@ -277,7 +277,7 @@ namespace LLEventDetail
|
|||||||
/// Any callable capable of connecting an LLEventListener to an
|
/// Any callable capable of connecting an LLEventListener to an
|
||||||
/// LLStandardSignal to produce an LLBoundListener can be mapped to this
|
/// LLStandardSignal to produce an LLBoundListener can be mapped to this
|
||||||
/// signature.
|
/// signature.
|
||||||
typedef boost::function<LLBoundListener(const LLEventListener&)> ConnectFunc;
|
typedef boost::function<LLBoundListener(const ::LLEventListener&)> ConnectFunc;
|
||||||
|
|
||||||
/// overload of visit_and_connect() when we have a string identifier available
|
/// overload of visit_and_connect() when we have a string identifier available
|
||||||
template <typename LISTENER>
|
template <typename LISTENER>
|
||||||
@@ -547,7 +547,7 @@ private:
|
|||||||
virtual void reset();
|
virtual void reset();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual LLBoundListener listen_impl(const std::string& name, const LLEventListener&,
|
virtual LLBoundListener listen_impl(const std::string& name, const ::LLEventListener&,
|
||||||
const NameList& after,
|
const NameList& after,
|
||||||
const NameList& before);
|
const NameList& before);
|
||||||
std::string mName;
|
std::string mName;
|
||||||
@@ -845,7 +845,7 @@ namespace LLEventDetail
|
|||||||
* Visitor binds a reference to LLEventListener so we can track() any
|
* Visitor binds a reference to LLEventListener so we can track() any
|
||||||
* shared_ptrs we find in the argument list.
|
* shared_ptrs we find in the argument list.
|
||||||
*/
|
*/
|
||||||
Visitor(LLEventListener& listener):
|
Visitor(::LLEventListener& listener):
|
||||||
mListener(listener)
|
mListener(listener)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -988,7 +988,7 @@ namespace LLEventDetail
|
|||||||
|*==========================================================================*/
|
|*==========================================================================*/
|
||||||
|
|
||||||
/// Bind a reference to the LLEventListener to call its track() method.
|
/// Bind a reference to the LLEventListener to call its track() method.
|
||||||
LLEventListener& mListener;
|
::LLEventListener& mListener;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -1005,7 +1005,7 @@ namespace LLEventDetail
|
|||||||
const ConnectFunc& connect_func)
|
const ConnectFunc& connect_func)
|
||||||
{
|
{
|
||||||
// Capture the listener
|
// Capture the listener
|
||||||
LLEventListener listener(raw_listener);
|
::LLEventListener listener(raw_listener);
|
||||||
// Define our Visitor, binding the listener so we can call
|
// Define our Visitor, binding the listener so we can call
|
||||||
// listener.track() if we discover any shared_ptr<Foo>.
|
// listener.track() if we discover any shared_ptr<Foo>.
|
||||||
LLEventDetail::Visitor visitor(listener);
|
LLEventDetail::Visitor visitor(listener);
|
||||||
|
|||||||
@@ -45,6 +45,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern U32 gOctreeMaxCapacity;
|
extern U32 gOctreeMaxCapacity;
|
||||||
|
extern float gOctreeMinSize;
|
||||||
extern U32 gOctreeReserveCapacity;
|
extern U32 gOctreeReserveCapacity;
|
||||||
#if LL_DEBUG
|
#if LL_DEBUG
|
||||||
#define LL_OCTREE_PARANOIA_CHECK 0
|
#define LL_OCTREE_PARANOIA_CHECK 0
|
||||||
@@ -404,7 +405,7 @@ public:
|
|||||||
F32 size = mSize[0];
|
F32 size = mSize[0];
|
||||||
F32 p_size = size * 2.f;
|
F32 p_size = size * 2.f;
|
||||||
|
|
||||||
return (radius <= 0.001f && size <= 0.001f) ||
|
return (radius <= gOctreeMinSize && size <= gOctreeMinSize) ||
|
||||||
(radius <= p_size && radius > size);
|
(radius <= p_size && radius > size);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -511,7 +512,7 @@ public:
|
|||||||
//is it here?
|
//is it here?
|
||||||
if (isInside(data->getPositionGroup()))
|
if (isInside(data->getPositionGroup()))
|
||||||
{
|
{
|
||||||
if (((getElementCount() < gOctreeMaxCapacity && contains(data->getBinRadius())) ||
|
if ((((getElementCount() < gOctreeMaxCapacity || getSize()[0] <= gOctreeMinSize) && contains(data->getBinRadius())) ||
|
||||||
(data->getBinRadius() > getSize()[0] && parent && parent->getElementCount() >= gOctreeMaxCapacity)))
|
(data->getBinRadius() > getSize()[0] && parent && parent->getElementCount() >= gOctreeMaxCapacity)))
|
||||||
{ //it belongs here
|
{ //it belongs here
|
||||||
/*mElementCount++;
|
/*mElementCount++;
|
||||||
@@ -566,8 +567,9 @@ public:
|
|||||||
LLVector4a val;
|
LLVector4a val;
|
||||||
val.setSub(center, getCenter());
|
val.setSub(center, getCenter());
|
||||||
val.setAbs(val);
|
val.setAbs(val);
|
||||||
|
LLVector4a min_diff(gOctreeMinSize);
|
||||||
|
|
||||||
S32 lt = val.lessThan(LLVector4a::getEpsilon()).getGatheredBits() & 0x7;
|
S32 lt = val.lessThan(min_diff).getGatheredBits() & 0x7;
|
||||||
|
|
||||||
if( lt == 0x7 )
|
if( lt == 0x7 )
|
||||||
{
|
{
|
||||||
@@ -616,6 +618,7 @@ public:
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
llassert(size[0] >= gOctreeMinSize*0.5f);
|
||||||
//make the new kid
|
//make the new kid
|
||||||
child = new LLOctreeNode<T>(center, size, this);
|
child = new LLOctreeNode<T>(center, size, this);
|
||||||
addChild(child);
|
addChild(child);
|
||||||
@@ -623,10 +626,7 @@ public:
|
|||||||
child->insert(data);
|
child->insert(data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Singu note: now that we allow wider range in octree, discard them here
|
else if (parent)
|
||||||
// if they fall out of range
|
|
||||||
#if 0
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
//it's not in here, give it to the root
|
//it's not in here, give it to the root
|
||||||
OCT_ERRS << "Octree insertion failed, starting over from root!" << LL_ENDL;
|
OCT_ERRS << "Octree insertion failed, starting over from root!" << LL_ENDL;
|
||||||
@@ -639,12 +639,15 @@ public:
|
|||||||
parent = node->getOctParent();
|
parent = node->getOctParent();
|
||||||
}
|
}
|
||||||
|
|
||||||
if(node != this)
|
node->insert(data);
|
||||||
{
|
}
|
||||||
node->insert(data);
|
else
|
||||||
}
|
{
|
||||||
|
// It's not in here, and we are root.
|
||||||
|
// LLOctreeRoot::insert() should have expanded
|
||||||
|
// root by now, something is wrong
|
||||||
|
OCT_ERRS << "Octree insertion failed! Root expansion failed." << LL_ENDL;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@@ -1050,10 +1053,15 @@ public:
|
|||||||
{
|
{
|
||||||
LLOctreeNode<T>::insert(data);
|
LLOctreeNode<T>::insert(data);
|
||||||
}
|
}
|
||||||
else
|
else if (node->isInside(data->getPositionGroup()))
|
||||||
{
|
{
|
||||||
node->insert(data);
|
node->insert(data);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// calling node->insert(data) will return us to root
|
||||||
|
OCT_ERRS << "Failed to insert data at child node" << LL_ENDL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (this->getChildCount() == 0)
|
else if (this->getChildCount() == 0)
|
||||||
{
|
{
|
||||||
@@ -1088,6 +1096,8 @@ public:
|
|||||||
this->setSize(size2);
|
this->setSize(size2);
|
||||||
this->updateMinMax();
|
this->updateMinMax();
|
||||||
|
|
||||||
|
llassert(size[0] >= gOctreeMinSize);
|
||||||
|
|
||||||
//copy our children to a new branch
|
//copy our children to a new branch
|
||||||
LLOctreeNode<T>* newnode = new LLOctreeNode<T>(center, size, this);
|
LLOctreeNode<T>* newnode = new LLOctreeNode<T>(center, size, this);
|
||||||
|
|
||||||
|
|||||||
@@ -666,7 +666,7 @@ std::string LLUrlEntryAgent::getLabel(const std::string &url, const LLUrlLabelCa
|
|||||||
LLAvatarName av_name;
|
LLAvatarName av_name;
|
||||||
if (LLAvatarNameCache::get(agent_id, &av_name))
|
if (LLAvatarNameCache::get(agent_id, &av_name))
|
||||||
{
|
{
|
||||||
std::string label = av_name.getCompleteName();
|
std::string label = av_name.getNSName();
|
||||||
|
|
||||||
// handle suffixes like /mute or /offerteleport
|
// handle suffixes like /mute or /offerteleport
|
||||||
label = localize_slapp_label(url, label);
|
label = localize_slapp_label(url, label);
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ include(FMODSTUDIO)
|
|||||||
include(GeneratePrecompiledHeader)
|
include(GeneratePrecompiledHeader)
|
||||||
include(GLOD)
|
include(GLOD)
|
||||||
include(Hunspell)
|
include(Hunspell)
|
||||||
include(Json)
|
|
||||||
include(LLAddBuildTest)
|
include(LLAddBuildTest)
|
||||||
include(LLAppearance)
|
include(LLAppearance)
|
||||||
include(LLAudio)
|
include(LLAudio)
|
||||||
@@ -63,7 +62,6 @@ include_directories(
|
|||||||
${STATEMACHINE_INCLUDE_DIRS}
|
${STATEMACHINE_INCLUDE_DIRS}
|
||||||
${DBUSGLIB_INCLUDE_DIRS}
|
${DBUSGLIB_INCLUDE_DIRS}
|
||||||
${ZLIB_INCLUDE_DIRS}
|
${ZLIB_INCLUDE_DIRS}
|
||||||
${JSON_INCLUDE_DIR}
|
|
||||||
${GLOD_INCLUDE_DIR}
|
${GLOD_INCLUDE_DIR}
|
||||||
${LLAUDIO_INCLUDE_DIRS}
|
${LLAUDIO_INCLUDE_DIRS}
|
||||||
${LLCHARACTER_INCLUDE_DIRS}
|
${LLCHARACTER_INCLUDE_DIRS}
|
||||||
@@ -1710,6 +1708,7 @@ target_link_libraries(${VIEWER_BINARY_NAME}
|
|||||||
${LLAPPEARANCE_LIBRARIES}
|
${LLAPPEARANCE_LIBRARIES}
|
||||||
absl::flat_hash_map
|
absl::flat_hash_map
|
||||||
absl::node_hash_map
|
absl::node_hash_map
|
||||||
|
nlohmann_json::nlohmann_json
|
||||||
${FMT_LIBRARY}
|
${FMT_LIBRARY}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -12628,6 +12628,18 @@ This should be as low as possible, but too low may break functionality</string>
|
|||||||
<integer>128</integer>
|
<integer>128</integer>
|
||||||
</map>
|
</map>
|
||||||
|
|
||||||
|
<key>OctreeMinimumNodeSize</key>
|
||||||
|
<map>
|
||||||
|
<key>Comment</key>
|
||||||
|
<string>Minimum size of any octree node</string>
|
||||||
|
<key>Persist</key>
|
||||||
|
<integer>1</integer>
|
||||||
|
<key>Type</key>
|
||||||
|
<string>F32</string>
|
||||||
|
<key>Value</key>
|
||||||
|
<real>0.01</real>
|
||||||
|
</map>
|
||||||
|
|
||||||
<key>OctreeReserveNodeCapacity</key>
|
<key>OctreeReserveNodeCapacity</key>
|
||||||
<map>
|
<map>
|
||||||
<key>Comment</key>
|
<key>Comment</key>
|
||||||
|
|||||||
@@ -221,13 +221,40 @@
|
|||||||
#include <client/crashpad_client.h>
|
#include <client/crashpad_client.h>
|
||||||
#include <client/prune_crash_reports.h>
|
#include <client/prune_crash_reports.h>
|
||||||
#include <client/settings.h>
|
#include <client/settings.h>
|
||||||
|
#include <client/annotation.h>
|
||||||
|
|
||||||
#include <fmt/format.h>
|
#include <fmt/format.h>
|
||||||
|
|
||||||
#include "llnotificationsutil.h"
|
#include "llnotificationsutil.h"
|
||||||
#include "llversioninfo.h"
|
#include "llversioninfo.h"
|
||||||
|
|
||||||
|
|
||||||
|
template <size_t SIZE, crashpad::Annotation::Type T = crashpad::Annotation::Type::kString>
|
||||||
|
struct crashpad_annotation : public crashpad::Annotation {
|
||||||
|
std::array<char, SIZE> buffer;
|
||||||
|
crashpad_annotation(const char* name) : crashpad::Annotation(T, name, buffer.data())
|
||||||
|
{}
|
||||||
|
void set(const std::string& src) {
|
||||||
|
LL_INFOS() << name() << ": " << src.c_str() << LL_ENDL;
|
||||||
|
const size_t min_size = llmin(SIZE, src.size());
|
||||||
|
memcpy(buffer.data(), src.data(), min_size);
|
||||||
|
buffer.data()[SIZE - 1] = '\0';
|
||||||
|
SetSize(min_size);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
#define DEFINE_CRASHPAD_ANNOTATION(name, len) \
|
||||||
|
static crashpad_annotation<len> g_crashpad_annotation_##name##_buffer(#name);
|
||||||
|
#define SET_CRASHPAD_ANNOTATION_VALUE(name, value) \
|
||||||
|
g_crashpad_annotation_##name##_buffer.set(value);
|
||||||
|
#else
|
||||||
|
#define SET_CRASHPAD_ANNOTATION_VALUE(name, value)
|
||||||
|
#define DEFINE_CRASHPAD_ANNOTATION(name, len)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
DEFINE_CRASHPAD_ANNOTATION(fatal_message, 512);
|
||||||
|
DEFINE_CRASHPAD_ANNOTATION(grid_name, 64);
|
||||||
|
DEFINE_CRASHPAD_ANNOTATION(cpu_string, 128);
|
||||||
|
DEFINE_CRASHPAD_ANNOTATION(startup_state, 32);
|
||||||
|
|
||||||
////// Windows-specific includes to the bottom - nasty defines in these pollute the preprocessor
|
////// Windows-specific includes to the bottom - nasty defines in these pollute the preprocessor
|
||||||
//
|
//
|
||||||
@@ -771,8 +798,18 @@ bool LLAppViewer::init()
|
|||||||
initCrashReporting();
|
initCrashReporting();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
writeDebugInfo();
|
||||||
|
|
||||||
setupErrorHandling();
|
setupErrorHandling();
|
||||||
|
|
||||||
|
{
|
||||||
|
auto fn = boost::bind<bool>([](const LLSD& stateInfo) -> bool {
|
||||||
|
SET_CRASHPAD_ANNOTATION_VALUE(startup_state, stateInfo["str"].asString());
|
||||||
|
return false;
|
||||||
|
}, _1);
|
||||||
|
LLStartUp::getStateEventPump().listen<::LLEventListener>("LLAppViewer", fn);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Start of the application
|
// Start of the application
|
||||||
//
|
//
|
||||||
@@ -2744,6 +2781,10 @@ void LLAppViewer::writeDebugInfo(bool isStatic)
|
|||||||
|
|
||||||
isStatic ? LLSDSerialize::toPrettyXML(gDebugInfo, out_file)
|
isStatic ? LLSDSerialize::toPrettyXML(gDebugInfo, out_file)
|
||||||
: LLSDSerialize::toPrettyXML(gDebugInfo["Dynamic"], out_file);
|
: LLSDSerialize::toPrettyXML(gDebugInfo["Dynamic"], out_file);
|
||||||
|
#else
|
||||||
|
SET_CRASHPAD_ANNOTATION_VALUE(fatal_message, gDebugInfo["FatalMessage"].asString());
|
||||||
|
SET_CRASHPAD_ANNOTATION_VALUE(grid_name, gDebugInfo["GridName"].asString());
|
||||||
|
SET_CRASHPAD_ANNOTATION_VALUE(cpu_string, gDebugInfo["CPUInfo"]["CPUString"].asString());
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ LLFloaterInspect::LLFloaterInspect(const LLSD&)
|
|||||||
mDirty(FALSE)
|
mDirty(FALSE)
|
||||||
{
|
{
|
||||||
mCommitCallbackRegistrar.add("Inspect.OwnerProfile", boost::bind(&LLFloaterInspect::onClickOwnerProfile, this));
|
mCommitCallbackRegistrar.add("Inspect.OwnerProfile", boost::bind(&LLFloaterInspect::onClickOwnerProfile, this));
|
||||||
|
mCommitCallbackRegistrar.add("Inspect.LastOwnerProfile", boost::bind(&LLFloaterInspect::onClickLastOwnerProfile, this));
|
||||||
mCommitCallbackRegistrar.add("Inspect.CreatorProfile", boost::bind(&LLFloaterInspect::onClickCreatorProfile, this));
|
mCommitCallbackRegistrar.add("Inspect.CreatorProfile", boost::bind(&LLFloaterInspect::onClickCreatorProfile, this));
|
||||||
mCommitCallbackRegistrar.add("Inspect.SelectObject", boost::bind(&LLFloaterInspect::onSelectObject, this));
|
mCommitCallbackRegistrar.add("Inspect.SelectObject", boost::bind(&LLFloaterInspect::onSelectObject, this));
|
||||||
LLUICtrlFactory::getInstance()->buildFloater(this, "floater_inspect.xml");
|
LLUICtrlFactory::getInstance()->buildFloater(this, "floater_inspect.xml");
|
||||||
@@ -166,6 +167,36 @@ void LLFloaterInspect::onClickOwnerProfile()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LLFloaterInspect::onClickLastOwnerProfile()
|
||||||
|
{
|
||||||
|
if(mObjectList->getAllSelected().size() == 0) return;
|
||||||
|
LLScrollListItem* first_selected =mObjectList->getFirstSelected();
|
||||||
|
|
||||||
|
if (first_selected)
|
||||||
|
{
|
||||||
|
LLUUID selected_id = first_selected->getUUID();
|
||||||
|
struct f : public LLSelectedNodeFunctor
|
||||||
|
{
|
||||||
|
LLUUID obj_id;
|
||||||
|
f(const LLUUID& id) : obj_id(id) {}
|
||||||
|
virtual bool apply(LLSelectNode* node)
|
||||||
|
{
|
||||||
|
return (obj_id == node->getObject()->getID());
|
||||||
|
}
|
||||||
|
} func(selected_id);
|
||||||
|
LLSelectNode* node = mObjectSelection->getFirstNode(&func);
|
||||||
|
if(node)
|
||||||
|
{
|
||||||
|
const LLUUID& last_owner_id = node->mPermissions->getLastOwner();
|
||||||
|
// [RLVa:KB] - Checked: 2010-08-25 (RLVa-1.2.2a) | Modified: RLVa-1.0.0e
|
||||||
|
if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMES) || gRlvHandler.hasBehaviour(RLV_BHVR_SHOWNAMETAGS))
|
||||||
|
if (last_owner_id == node->mPermissions->getOwner()) return;
|
||||||
|
// [/RLVa:KB]
|
||||||
|
LLAvatarActions::showProfile(last_owner_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void LLFloaterInspect::onSelectObject()
|
void LLFloaterInspect::onSelectObject()
|
||||||
{
|
{
|
||||||
if(LLFloaterInspect::getSelectedUUID() != LLUUID::null)
|
if(LLFloaterInspect::getSelectedUUID() != LLUUID::null)
|
||||||
|
|||||||
@@ -60,6 +60,7 @@ public:
|
|||||||
virtual void onFocusReceived();
|
virtual void onFocusReceived();
|
||||||
void onClickCreatorProfile();
|
void onClickCreatorProfile();
|
||||||
void onClickOwnerProfile();
|
void onClickOwnerProfile();
|
||||||
|
void onClickLastOwnerProfile();
|
||||||
void onSelectObject();
|
void onSelectObject();
|
||||||
|
|
||||||
LLScrollListCtrl* mObjectList;
|
LLScrollListCtrl* mObjectList;
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ S32 LLFloaterNameDesc::getExpectedUploadCost() const
|
|||||||
LLAssetType::EType asset_type = exten == "wav" ? LLAssetType::AT_SOUND
|
LLAssetType::EType asset_type = exten == "wav" ? LLAssetType::AT_SOUND
|
||||||
: (exten == "anim" || exten == "bvh") ? LLAssetType::AT_ANIMATION
|
: (exten == "anim" || exten == "bvh") ? LLAssetType::AT_ANIMATION
|
||||||
: exten != "lsl" ? LLAssetType::AT_TEXTURE
|
: exten != "lsl" ? LLAssetType::AT_TEXTURE
|
||||||
: asset_type = LLAssetType::AT_NONE;
|
: LLAssetType::AT_NONE;
|
||||||
S32 upload_cost = -1;
|
S32 upload_cost = -1;
|
||||||
|
|
||||||
if (asset_type != LLAssetType::AT_NONE)
|
if (asset_type != LLAssetType::AT_NONE)
|
||||||
|
|||||||
@@ -150,8 +150,9 @@ LLGroupNotifyBox::LLGroupNotifyBox(const std::string& subject,
|
|||||||
|
|
||||||
auto links = new LLTextEditor(std::string("group"), LLRect(x, y + 5, RIGHT, bottom), S32_MAX, LLStringUtil::null, nullptr, false, true); // Top adjustment to line up with icon
|
auto links = new LLTextEditor(std::string("group"), LLRect(x, y + 5, RIGHT, bottom), S32_MAX, LLStringUtil::null, nullptr, false, true); // Top adjustment to line up with icon
|
||||||
links->setBorderVisible(FALSE);
|
links->setBorderVisible(FALSE);
|
||||||
links->setReadOnlyFgColor(text_color);
|
static const auto header_bg_color = gColors.getColor("GroupNotifyHeaderBGColor");
|
||||||
links->setReadOnlyBgColor(LLColor4::transparent);
|
if (header_bg_color[VALPHA]) links->setReadOnlyFgColor(text_color);
|
||||||
|
links->setReadOnlyBgColor(header_bg_color);
|
||||||
links->setEnabled(false);
|
links->setEnabled(false);
|
||||||
links->setTakesNonScrollClicks(TRUE);
|
links->setTakesNonScrollClicks(TRUE);
|
||||||
links->setHideScrollbarForShortDocs(TRUE);
|
links->setHideScrollbarForShortDocs(TRUE);
|
||||||
|
|||||||
@@ -1842,7 +1842,7 @@ void LLIMProcessing::processNewMessage(const LLUUID& from_id,
|
|||||||
strings.push_back(from_id.asString());
|
strings.push_back(from_id.asString());
|
||||||
send_generic_message("requestonlinenotification", strings);
|
send_generic_message("requestonlinenotification", strings);
|
||||||
|
|
||||||
args["NAME"] = name;
|
args["NAME"] = LLAvatarActions::getSLURL(from_id);
|
||||||
LLSD payload;
|
LLSD payload;
|
||||||
payload["from_id"] = from_id;
|
payload["from_id"] = from_id;
|
||||||
LLAvatarNameCache::get(from_id, boost::bind(¬ification_display_name_callback, _1, _2, "FriendshipAccepted", args, payload));
|
LLAvatarNameCache::get(from_id, boost::bind(¬ification_display_name_callback, _1, _2, "FriendshipAccepted", args, payload));
|
||||||
|
|||||||
@@ -224,7 +224,9 @@ LLNotifyBox::LLNotifyBox(LLNotificationPtr notification)
|
|||||||
if (!mIsCaution || !mIsTip) // We could do some extra color math here to determine if bg's too close to link color, but let's just cross with the link color instead
|
if (!mIsCaution || !mIsTip) // We could do some extra color math here to determine if bg's too close to link color, but let's just cross with the link color instead
|
||||||
mText->setLinkColor(new LLColor4(lerp(text_color, gSavedSettings.getColor4("HTMLLinkColor"), 0.4f)));
|
mText->setLinkColor(new LLColor4(lerp(text_color, gSavedSettings.getColor4("HTMLLinkColor"), 0.4f)));
|
||||||
mText->setTabStop(FALSE); // can't tab to it (may be a problem for scrolling via keyboard)
|
mText->setTabStop(FALSE); // can't tab to it (may be a problem for scrolling via keyboard)
|
||||||
mText->appendText(message,false,false,style,!layout_script_dialog); // Now we can set the text, since colors have been set.
|
mText->appendText(message,false,false,style); // Now we can set the text, since colors have been set.
|
||||||
|
if (is_textbox || layout_script_dialog)
|
||||||
|
mText->appendText(notification->getSubstitutions()["SCRIPT_MESSAGE"], false, true, style, false);
|
||||||
addChild(mText);
|
addChild(mText);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
|
|
||||||
#include "lllineeditor.h"
|
#include "lllineeditor.h"
|
||||||
#include "llfloaterexperienceprofile.h"
|
#include "llfloaterexperienceprofile.h"
|
||||||
|
#include "llfloaterexperiences.h"
|
||||||
//#include "llfloaterreg.h"
|
//#include "llfloaterreg.h"
|
||||||
#include "lluictrlfactory.h"
|
#include "lluictrlfactory.h"
|
||||||
#include "llscrolllistctrl.h"
|
#include "llscrolllistctrl.h"
|
||||||
@@ -62,13 +63,12 @@ const static std::string columnSpace = " ";
|
|||||||
/* Singu Note: We do not have injectors, so we'll have to call this function instead
|
/* Singu Note: We do not have injectors, so we'll have to call this function instead
|
||||||
static LLPanelInjector<LLPanelExperiencePicker> t_panel_status("llpanelexperiencepicker");
|
static LLPanelInjector<LLPanelExperiencePicker> t_panel_status("llpanelexperiencepicker");
|
||||||
*/
|
*/
|
||||||
void* create_xp_picker(void* data) { return new LLPanelExperiencePicker(false); }
|
|
||||||
|
|
||||||
LLPanelExperiencePicker::LLPanelExperiencePicker(bool build)
|
LLPanelExperiencePicker::LLPanelExperiencePicker()
|
||||||
:LLPanel()
|
:LLPanel()
|
||||||
{
|
{
|
||||||
//buildFromFile("panel_experience_search.xml");
|
//buildFromFile("panel_experience_search.xml");
|
||||||
if (build) LLUICtrlFactory::getInstance()->buildPanel(this, "panel_experience_search.xml"); // Singu Note: Use filename in xml
|
LLUICtrlFactory::getInstance()->buildPanel(this, "panel_experience_search.xml"); // Singu Note: Use filename in xml
|
||||||
setDefaultFilters();
|
setDefaultFilters();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -288,7 +288,7 @@ void LLPanelExperiencePicker::onBtnSelect()
|
|||||||
|
|
||||||
void LLPanelExperiencePicker::onBtnClose()
|
void LLPanelExperiencePicker::onBtnClose()
|
||||||
{
|
{
|
||||||
LLFloater* floater = static_cast<LLFloater*>(getParent());
|
LLFloater* floater = mSelectionCallback ? static_cast<LLFloater*>(getParent()) : LLFloaterExperiences::findInstance();
|
||||||
if (floater)
|
if (floater)
|
||||||
{
|
{
|
||||||
floater->close();
|
floater->close();
|
||||||
|
|||||||
@@ -32,7 +32,6 @@
|
|||||||
class LLScrollListCtrl;
|
class LLScrollListCtrl;
|
||||||
class LLLineEditor;
|
class LLLineEditor;
|
||||||
|
|
||||||
void* create_xp_picker(void* data);
|
|
||||||
class LLPanelExperiencePicker final : public LLPanel
|
class LLPanelExperiencePicker final : public LLPanel
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -44,7 +43,7 @@ public:
|
|||||||
typedef std::function<bool (const LLSD&)> filter_function;
|
typedef std::function<bool (const LLSD&)> filter_function;
|
||||||
typedef std::vector<filter_function> filter_list;
|
typedef std::vector<filter_function> filter_list;
|
||||||
|
|
||||||
LLPanelExperiencePicker(bool build = true);
|
LLPanelExperiencePicker();
|
||||||
virtual ~LLPanelExperiencePicker();
|
virtual ~LLPanelExperiencePicker();
|
||||||
|
|
||||||
BOOL postBuild() override;
|
BOOL postBuild() override;
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ static U32 sZombieGroups = 0;
|
|||||||
U32 LLSpatialGroup::sNodeCount = 0;
|
U32 LLSpatialGroup::sNodeCount = 0;
|
||||||
|
|
||||||
U32 gOctreeMaxCapacity;
|
U32 gOctreeMaxCapacity;
|
||||||
|
float gOctreeMinSize;
|
||||||
U32 gOctreeReserveCapacity;
|
U32 gOctreeReserveCapacity;
|
||||||
|
|
||||||
BOOL LLSpatialGroup::sNoDelete = FALSE;
|
BOOL LLSpatialGroup::sNoDelete = FALSE;
|
||||||
@@ -1623,10 +1624,10 @@ void renderOctree(LLSpatialGroup* group)
|
|||||||
gGL.diffuseColor4fv(col.mV);
|
gGL.diffuseColor4fv(col.mV);
|
||||||
LLVector4a fudge;
|
LLVector4a fudge;
|
||||||
fudge.splat(0.001f);
|
fudge.splat(0.001f);
|
||||||
const LLVector4a* bounds = group->getObjectBounds();
|
//const LLVector4a* bounds = group->getObjectBounds();
|
||||||
LLVector4a size = bounds[1];
|
//LLVector4a size = bounds[1];
|
||||||
size.mul(1.01f);
|
//size.mul(1.01f);
|
||||||
size.add(fudge);
|
//size.add(fudge);*/
|
||||||
|
|
||||||
//{
|
//{
|
||||||
// LLGLDepthTest depth(GL_TRUE, GL_FALSE);
|
// LLGLDepthTest depth(GL_TRUE, GL_FALSE);
|
||||||
|
|||||||
@@ -139,6 +139,7 @@ public:
|
|||||||
static bool startLLProxy(); // Initialize the SOCKS 5 proxy
|
static bool startLLProxy(); // Initialize the SOCKS 5 proxy
|
||||||
|
|
||||||
static LLViewerStats::PhaseMap& getPhases() { return *sPhases; }
|
static LLViewerStats::PhaseMap& getPhases() { return *sPhases; }
|
||||||
|
static LLEventPump& getStateEventPump() { return *sStateWatcher; }
|
||||||
private:
|
private:
|
||||||
static LLSLURL sStartSLURL;
|
static LLSLURL sStartSLURL;
|
||||||
|
|
||||||
|
|||||||
@@ -53,6 +53,7 @@
|
|||||||
#include "llglheaders.h"
|
#include "llglheaders.h"
|
||||||
#include "lldrawpoolterrain.h"
|
#include "lldrawpoolterrain.h"
|
||||||
#include "lldrawable.h"
|
#include "lldrawable.h"
|
||||||
|
#include "hippogridmanager.h"
|
||||||
|
|
||||||
extern LLPipeline gPipeline;
|
extern LLPipeline gPipeline;
|
||||||
extern bool gShiftFrame;
|
extern bool gShiftFrame;
|
||||||
@@ -371,6 +372,14 @@ void LLSurface::connectNeighbor(LLSurface* neighborp, U32 direction)
|
|||||||
// - Non-power-of-2 regions should work here, but the rest of the viewer code will probably choke on them.
|
// - Non-power-of-2 regions should work here, but the rest of the viewer code will probably choke on them.
|
||||||
|
|
||||||
surface_patch_ref patchp, neighbor_patchp;
|
surface_patch_ref patchp, neighbor_patchp;
|
||||||
|
if (mNeighbors[direction] == neighborp)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (mNeighbors[direction])
|
||||||
|
{
|
||||||
|
mNeighbors[direction]->disconnectNeighbor(this, gDirOpposite[direction]);
|
||||||
|
}
|
||||||
mNeighbors[direction] = neighborp;
|
mNeighbors[direction] = neighborp;
|
||||||
|
|
||||||
const S32 max_idx = mPatchesPerEdge - 1;
|
const S32 max_idx = mPatchesPerEdge - 1;
|
||||||
@@ -480,33 +489,71 @@ void LLSurface::connectNeighbor(LLSurface* neighborp, U32 direction)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void LLSurface::disconnectNeighbor(LLSurface *surfacep)
|
void LLSurface::disconnectNeighbor(LLSurface* surfacep, U32 direction)
|
||||||
{
|
{
|
||||||
S32 i;
|
if (surfacep && surfacep == mNeighbors[direction])
|
||||||
for (i = 0; i < 8; i++)
|
|
||||||
{
|
{
|
||||||
if (surfacep == mNeighbors[i])
|
// Iterate through surface patches, removing any connectivity to removed surface.
|
||||||
|
// Extra branches for debugging.
|
||||||
|
if (!gHippoGridManager->getCurrentGrid()->isSecondLife())
|
||||||
{
|
{
|
||||||
mNeighbors[i] = NULL;
|
for (auto& patchp : mPatchList)
|
||||||
|
{
|
||||||
|
patchp->disconnectNeighbor(surfacep);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (gHippoGridManager->getCurrentGrid()->isSecondLife())
|
||||||
|
{
|
||||||
|
for (auto& patchp : mPatchList)
|
||||||
|
{
|
||||||
|
patchp->disconnectNeighbor(surfacep);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
// Iterate through surface patches, removing any connectivity to removed surface.
|
|
||||||
for (auto& patchp : mPatchList)
|
|
||||||
{
|
|
||||||
patchp->disconnectNeighbor(surfacep);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void LLSurface::disconnectAllNeighbors()
|
void LLSurface::disconnectAllNeighbors()
|
||||||
{
|
{
|
||||||
|
// Pulled out of loop to debug.
|
||||||
|
if (mNeighbors[EAST])
|
||||||
|
{
|
||||||
|
mNeighbors[EAST]->disconnectNeighbor(this, gDirOpposite[EAST]);
|
||||||
|
}
|
||||||
|
if (mNeighbors[NORTH])
|
||||||
|
{
|
||||||
|
mNeighbors[NORTH]->disconnectNeighbor(this, gDirOpposite[NORTH]);
|
||||||
|
}
|
||||||
|
if (mNeighbors[WEST])
|
||||||
|
{
|
||||||
|
mNeighbors[WEST]->disconnectNeighbor(this, gDirOpposite[WEST]);
|
||||||
|
}
|
||||||
|
if (mNeighbors[SOUTH])
|
||||||
|
{
|
||||||
|
mNeighbors[SOUTH]->disconnectNeighbor(this, gDirOpposite[SOUTH]);
|
||||||
|
}
|
||||||
|
if (mNeighbors[NORTHEAST])
|
||||||
|
{
|
||||||
|
mNeighbors[NORTHEAST]->disconnectNeighbor(this, gDirOpposite[NORTHEAST]);
|
||||||
|
}
|
||||||
|
if (mNeighbors[NORTHWEST])
|
||||||
|
{
|
||||||
|
mNeighbors[NORTHWEST]->disconnectNeighbor(this, gDirOpposite[NORTHWEST]);
|
||||||
|
}
|
||||||
|
if (mNeighbors[SOUTHWEST])
|
||||||
|
{
|
||||||
|
mNeighbors[SOUTHWEST]->disconnectNeighbor(this, gDirOpposite[SOUTHWEST]);
|
||||||
|
}
|
||||||
|
if (mNeighbors[SOUTHEAST])
|
||||||
|
{
|
||||||
|
mNeighbors[SOUTHEAST]->disconnectNeighbor(this, gDirOpposite[SOUTHEAST]);
|
||||||
|
}
|
||||||
S32 i;
|
S32 i;
|
||||||
for (i = 0; i < 8; i++)
|
for (i = 0; i < 8; i++)
|
||||||
{
|
{
|
||||||
if (mNeighbors[i])
|
if (mNeighbors[i])
|
||||||
{
|
{
|
||||||
mNeighbors[i]->disconnectNeighbor(this);
|
//mNeighbors[i]->disconnectNeighbor(this);
|
||||||
mNeighbors[i] = NULL;
|
mNeighbors[i] = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -85,7 +85,7 @@ public:
|
|||||||
void setOriginGlobal(const LLVector3d &origin_global);
|
void setOriginGlobal(const LLVector3d &origin_global);
|
||||||
|
|
||||||
void connectNeighbor(LLSurface *neighborp, U32 direction);
|
void connectNeighbor(LLSurface *neighborp, U32 direction);
|
||||||
void disconnectNeighbor(LLSurface *neighborp);
|
void disconnectNeighbor(LLSurface *neighborp, U32 direction);
|
||||||
void disconnectAllNeighbors();
|
void disconnectAllNeighbors();
|
||||||
|
|
||||||
// <FS:CR> Aurora Sim
|
// <FS:CR> Aurora Sim
|
||||||
|
|||||||
@@ -454,6 +454,7 @@ static bool handleRepartition(const LLSD&)
|
|||||||
if (gPipeline.isInit())
|
if (gPipeline.isInit())
|
||||||
{
|
{
|
||||||
gOctreeMaxCapacity = gSavedSettings.getU32("OctreeMaxNodeCapacity");
|
gOctreeMaxCapacity = gSavedSettings.getU32("OctreeMaxNodeCapacity");
|
||||||
|
gOctreeMinSize = gSavedSettings.getF32("OctreeMinimumNodeSize");
|
||||||
gOctreeReserveCapacity = llmin(gSavedSettings.getU32("OctreeReserveNodeCapacity"),U32(512));
|
gOctreeReserveCapacity = llmin(gSavedSettings.getU32("OctreeReserveNodeCapacity"),U32(512));
|
||||||
gObjectList.repartitionObjects();
|
gObjectList.repartitionObjects();
|
||||||
}
|
}
|
||||||
@@ -692,6 +693,7 @@ void settings_setup_listeners()
|
|||||||
gSavedSettings.getControl("OctreeStaticObjectSizeFactor")->getSignal()->connect(boost::bind(&handleRepartition, _2));
|
gSavedSettings.getControl("OctreeStaticObjectSizeFactor")->getSignal()->connect(boost::bind(&handleRepartition, _2));
|
||||||
gSavedSettings.getControl("OctreeDistanceFactor")->getSignal()->connect(boost::bind(&handleRepartition, _2));
|
gSavedSettings.getControl("OctreeDistanceFactor")->getSignal()->connect(boost::bind(&handleRepartition, _2));
|
||||||
gSavedSettings.getControl("OctreeMaxNodeCapacity")->getSignal()->connect(boost::bind(&handleRepartition, _2));
|
gSavedSettings.getControl("OctreeMaxNodeCapacity")->getSignal()->connect(boost::bind(&handleRepartition, _2));
|
||||||
|
gSavedSettings.getControl("OctreeMinimumNodeSize")->getSignal()->connect(boost::bind(&handleRepartition, _2));
|
||||||
gSavedSettings.getControl("OctreeReserveNodeCapacity")->getSignal()->connect(boost::bind(&handleRepartition, _2));
|
gSavedSettings.getControl("OctreeReserveNodeCapacity")->getSignal()->connect(boost::bind(&handleRepartition, _2));
|
||||||
gSavedSettings.getControl("OctreeAlphaDistanceFactor")->getSignal()->connect(boost::bind(&handleRepartition, _2));
|
gSavedSettings.getControl("OctreeAlphaDistanceFactor")->getSignal()->connect(boost::bind(&handleRepartition, _2));
|
||||||
gSavedSettings.getControl("OctreeAttachmentSizeFactor")->getSignal()->connect(boost::bind(&handleRepartition, _2));
|
gSavedSettings.getControl("OctreeAttachmentSizeFactor")->getSignal()->connect(boost::bind(&handleRepartition, _2));
|
||||||
|
|||||||
@@ -7020,7 +7020,8 @@ void process_script_dialog(LLMessageSystem* msg, void**)
|
|||||||
|
|
||||||
LLSD args;
|
LLSD args;
|
||||||
args["TITLE"] = object_name;
|
args["TITLE"] = object_name;
|
||||||
args["MESSAGE"] = message;
|
args["MESSAGE"] = LLStringUtil::null;
|
||||||
|
args["SCRIPT_MESSAGE"] = message;
|
||||||
args["CHANNEL"] = chat_channel;
|
args["CHANNEL"] = chat_channel;
|
||||||
LLNotificationPtr notification;
|
LLNotificationPtr notification;
|
||||||
char const* name = (is_group && !is_text_box) ? "GROUPNAME" : "NAME";
|
char const* name = (is_group && !is_text_box) ? "GROUPNAME" : "NAME";
|
||||||
|
|||||||
@@ -1033,7 +1033,7 @@ BOOL LLOcclusionCullingGroup::earlyFail(LLCamera* camera, const LLVector4a* boun
|
|||||||
LLVector4a fudge(vel*2.f);
|
LLVector4a fudge(vel*2.f);
|
||||||
|
|
||||||
const LLVector4a& c = bounds[0];
|
const LLVector4a& c = bounds[0];
|
||||||
static LLVector4a r;
|
LLVector4a r;
|
||||||
r.setAdd(bounds[1], fudge);
|
r.setAdd(bounds[1], fudge);
|
||||||
|
|
||||||
/*if (r.magVecSquared() > 1024.0*1024.0)
|
/*if (r.magVecSquared() > 1024.0*1024.0)
|
||||||
@@ -1242,6 +1242,11 @@ void LLOcclusionCullingGroup::doOcclusion(LLCamera* camera, const LLVector4a* sh
|
|||||||
//static LLVector4a fudge(SG_OCCLUSION_FUDGE);
|
//static LLVector4a fudge(SG_OCCLUSION_FUDGE);
|
||||||
static LLCachedControl<F32> vel("SHOcclusionFudge",SG_OCCLUSION_FUDGE);
|
static LLCachedControl<F32> vel("SHOcclusionFudge",SG_OCCLUSION_FUDGE);
|
||||||
LLVector4a fudge(SG_OCCLUSION_FUDGE);
|
LLVector4a fudge(SG_OCCLUSION_FUDGE);
|
||||||
|
if (LLDrawPool::POOL_WATER == mSpatialPartition->mDrawableType)
|
||||||
|
{
|
||||||
|
fudge.getF32ptr()[2] = 1.f;
|
||||||
|
}
|
||||||
|
|
||||||
static LLVector4a fudged_bounds;
|
static LLVector4a fudged_bounds;
|
||||||
fudged_bounds.setAdd(fudge, bounds[1]);
|
fudged_bounds.setAdd(fudge, bounds[1]);
|
||||||
shader->uniform3fv(LLShaderMgr::BOX_SIZE, 1, fudged_bounds.getF32ptr());
|
shader->uniform3fv(LLShaderMgr::BOX_SIZE, 1, fudged_bounds.getF32ptr());
|
||||||
|
|||||||
@@ -958,6 +958,7 @@ void LLPipeline::refreshCachedSettings()
|
|||||||
LLVOAvatar::sMaxVisible = (U32)gSavedSettings.getS32("RenderAvatarMaxVisible");
|
LLVOAvatar::sMaxVisible = (U32)gSavedSettings.getS32("RenderAvatarMaxVisible");
|
||||||
//LLPipeline::sDelayVBUpdate = gSavedSettings.getBOOL("RenderDelayVBUpdate");
|
//LLPipeline::sDelayVBUpdate = gSavedSettings.getBOOL("RenderDelayVBUpdate");
|
||||||
gOctreeMaxCapacity = gSavedSettings.getU32("OctreeMaxNodeCapacity");
|
gOctreeMaxCapacity = gSavedSettings.getU32("OctreeMaxNodeCapacity");
|
||||||
|
gOctreeMinSize = gSavedSettings.getF32("OctreeMinimumNodeSize");
|
||||||
gOctreeReserveCapacity = llmin(gSavedSettings.getU32("OctreeReserveNodeCapacity"), U32(512));
|
gOctreeReserveCapacity = llmin(gSavedSettings.getU32("OctreeReserveNodeCapacity"), U32(512));
|
||||||
LLPipeline::sDynamicLOD = gSavedSettings.getBOOL("RenderDynamicLOD");
|
LLPipeline::sDynamicLOD = gSavedSettings.getBOOL("RenderDynamicLOD");
|
||||||
LLPipeline::sRenderBump = gSavedSettings.getBOOL("RenderObjectBump");
|
LLPipeline::sRenderBump = gSavedSettings.getBOOL("RenderObjectBump");
|
||||||
|
|||||||
@@ -103,6 +103,7 @@
|
|||||||
<NotifyCautionBoxColor value="254, 209, 118, 255" /> <!-- the background color of caution permissions prompts -->
|
<NotifyCautionBoxColor value="254, 209, 118, 255" /> <!-- the background color of caution permissions prompts -->
|
||||||
<NotifyCautionWarnColor value="0, 0, 0, 255" /> <!-- the foreground color of the special title text in caution permissions prompts -->
|
<NotifyCautionWarnColor value="0, 0, 0, 255" /> <!-- the foreground color of the special title text in caution permissions prompts -->
|
||||||
<GroupNotifyBoxColor value="66, 66, 66, 255" />
|
<GroupNotifyBoxColor value="66, 66, 66, 255" />
|
||||||
|
<GroupNotifyHeaderBGColor value="0, 0, 0, 0" />
|
||||||
<GroupNotifyTextColor value="255, 255, 255, 128" />
|
<GroupNotifyTextColor value="255, 255, 255, 128" />
|
||||||
|
|
||||||
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
|
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
|
||||||
|
|||||||
@@ -99,6 +99,7 @@
|
|||||||
<NotifyCautionBoxColor value="254, 209, 118, 255"/> <!-- the background color of caution permissions prompts -->
|
<NotifyCautionBoxColor value="254, 209, 118, 255"/> <!-- the background color of caution permissions prompts -->
|
||||||
<NotifyCautionWarnColor value="0, 0, 0, 255"/> <!-- the foreground color of the special title text in caution permissions prompts -->
|
<NotifyCautionWarnColor value="0, 0, 0, 255"/> <!-- the foreground color of the special title text in caution permissions prompts -->
|
||||||
<GroupNotifyBoxColor value="66, 66, 66, 255"/>
|
<GroupNotifyBoxColor value="66, 66, 66, 255"/>
|
||||||
|
<GroupNotifyHeaderBGColor value="0, 0, 0, 0" />
|
||||||
<GroupNotifyTextColor value="200, 200, 200, 255"/>
|
<GroupNotifyTextColor value="200, 200, 200, 255"/>
|
||||||
|
|
||||||
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
|
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
|
||||||
|
|||||||
@@ -100,6 +100,7 @@
|
|||||||
<NotifyCautionBoxColor value="254, 209, 118, 255" /> <!-- the background color of caution permissions prompts -->
|
<NotifyCautionBoxColor value="254, 209, 118, 255" /> <!-- the background color of caution permissions prompts -->
|
||||||
<NotifyCautionWarnColor value="0, 0, 0, 255" /> <!-- the foreground color of the special title text in caution permissions prompts -->
|
<NotifyCautionWarnColor value="0, 0, 0, 255" /> <!-- the foreground color of the special title text in caution permissions prompts -->
|
||||||
<GroupNotifyBoxColor value="189, 0, 0, 240" />
|
<GroupNotifyBoxColor value="189, 0, 0, 240" />
|
||||||
|
<GroupNotifyHeaderBGColor value="0, 0, 0, 0" />
|
||||||
<GroupNotifyTextColor value="1, 0, 0, 255" />
|
<GroupNotifyTextColor value="1, 0, 0, 255" />
|
||||||
|
|
||||||
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
|
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
|
||||||
|
|||||||
@@ -103,6 +103,7 @@
|
|||||||
<NotifyCautionBoxColor value="254, 209, 118, 255" /> <!-- the background color of caution permissions prompts -->
|
<NotifyCautionBoxColor value="254, 209, 118, 255" /> <!-- the background color of caution permissions prompts -->
|
||||||
<NotifyCautionWarnColor value="0, 0, 0, 255" /> <!-- the foreground color of the special title text in caution permissions prompts -->
|
<NotifyCautionWarnColor value="0, 0, 0, 255" /> <!-- the foreground color of the special title text in caution permissions prompts -->
|
||||||
<GroupNotifyBoxColor value="70, 170, 255, 255" />
|
<GroupNotifyBoxColor value="70, 170, 255, 255" />
|
||||||
|
<GroupNotifyHeaderBGColor value="255, 255, 255, 184" />
|
||||||
<GroupNotifyTextColor value="0, 30, 60, 255" />
|
<GroupNotifyTextColor value="0, 30, 60, 255" />
|
||||||
|
|
||||||
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
|
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
|
||||||
|
|||||||
@@ -64,7 +64,6 @@
|
|||||||
height="530"
|
height="530"
|
||||||
left="0"
|
left="0"
|
||||||
name="xp_scroll"
|
name="xp_scroll"
|
||||||
opaque="true"
|
|
||||||
bottom="0"
|
bottom="0"
|
||||||
width="348">
|
width="348">
|
||||||
<panel
|
<panel
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||||
<floater can_close="true" can_drag_on_left="false" can_minimize="true" can_resize="true"
|
<floater can_close="true" can_drag_on_left="false" can_minimize="true" can_resize="true"
|
||||||
min_height="300" min_width="400" name="inspect"
|
min_height="300" min_width="480" name="inspect"
|
||||||
rect_control="FloaterInspectRect" title="Inspect Objects">
|
rect_control="FloaterInspectRect" title="Inspect Objects">
|
||||||
<scroll_list bottom="30" can_resize="false" column_padding="0" draw_heading="true"
|
<scroll_list bottom="30" can_resize="false" column_padding="0" draw_heading="true"
|
||||||
follows="top|right|left|bottom" left="10" multi_select="false"
|
follows="top|right|left|bottom" left="10" multi_select="false"
|
||||||
@@ -22,12 +22,19 @@
|
|||||||
<button bottom="5" follows="left|bottom" font="SansSerif" halign="center" height="20"
|
<button bottom="5" follows="left|bottom" font="SansSerif" halign="center" height="20"
|
||||||
label="See Owner Profile..." label_selected="" left="10"
|
label="See Owner Profile..." label_selected="" left="10"
|
||||||
mouse_opaque="true" name="button owner"
|
mouse_opaque="true" name="button owner"
|
||||||
tool_tip="See profile of the highlighted object's owner" width="150" >
|
tool_tip="See profile of the highlighted object's owner" width="152" >
|
||||||
<button.commit_callback
|
<button.commit_callback
|
||||||
function="Inspect.OwnerProfile" />
|
function="Inspect.OwnerProfile" />
|
||||||
</button>
|
</button>
|
||||||
<button bottom="5" follows="left|bottom" font="SansSerif" halign="center" height="20"
|
<button bottom="5" follows="left|bottom" font="SansSerif" halign="center" height="20"
|
||||||
label="See Creator Profile..." label_selected="" left="170"
|
label="See Last Owner Profile..." label_selected="" left_delta="154"
|
||||||
|
mouse_opaque="true" name="button last owner"
|
||||||
|
tool_tip="See profile of the highlighted object's last owner" width="152" >
|
||||||
|
<button.commit_callback
|
||||||
|
function="Inspect.LastOwnerProfile" />
|
||||||
|
</button>
|
||||||
|
<button bottom="5" follows="left|bottom" font="SansSerif" halign="center" height="20"
|
||||||
|
label="See Creator Profile..." label_selected="" left_delta="154"
|
||||||
mouse_opaque="true" name="button creator"
|
mouse_opaque="true" name="button creator"
|
||||||
tool_tip="See profile of the highlighted object's original creator"
|
tool_tip="See profile of the highlighted object's original creator"
|
||||||
width="150" >
|
width="150" >
|
||||||
|
|||||||
@@ -7862,7 +7862,7 @@ Offer a teleport?
|
|||||||
icon="notify.tga"
|
icon="notify.tga"
|
||||||
name="FriendshipAccepted"
|
name="FriendshipAccepted"
|
||||||
log_to_im="true"
|
log_to_im="true"
|
||||||
type="notify">
|
type="notifytip">
|
||||||
<tag>friendship</tag>
|
<tag>friendship</tag>
|
||||||
[NAME] accepted your friendship offer.
|
[NAME] accepted your friendship offer.
|
||||||
</notification>
|
</notification>
|
||||||
@@ -7872,7 +7872,7 @@ Offer a teleport?
|
|||||||
name="FriendshipDeclined"
|
name="FriendshipDeclined"
|
||||||
log_to_im="true"
|
log_to_im="true"
|
||||||
persist="true"
|
persist="true"
|
||||||
type="notify">
|
type="notifytip">
|
||||||
<tag>friendship</tag>
|
<tag>friendship</tag>
|
||||||
[NAME] declined your friendship offer.
|
[NAME] declined your friendship offer.
|
||||||
</notification>
|
</notification>
|
||||||
|
|||||||
@@ -3609,6 +3609,7 @@ If you continue to receive this message, please contact Second Life support for
|
|||||||
<string name="Debits">Debits</string>
|
<string name="Debits">Debits</string>
|
||||||
<string name="Total">Total</string>
|
<string name="Total">Total</string>
|
||||||
<string name="NoGroupDataFound">No group data found for group </string>
|
<string name="NoGroupDataFound">No group data found for group </string>
|
||||||
|
<string name="AlreadyInGroup">You are already in this group </string>
|
||||||
|
|
||||||
<!-- floater IM bonus_info: When a Linden with Admin/god status receives a new IM this displays the estate (Mainland vs. teen grid) of the source avatar.
|
<!-- floater IM bonus_info: When a Linden with Admin/god status receives a new IM this displays the estate (Mainland vs. teen grid) of the source avatar.
|
||||||
This is to help Lindens when answering questions. -->
|
This is to help Lindens when answering questions. -->
|
||||||
|
|||||||
@@ -3386,11 +3386,11 @@ L'objet [OBJECTFROMNAME] appartenant à un utilisateur inconnu vous a donné un(
|
|||||||
</notification>
|
</notification>
|
||||||
|
|
||||||
<notification name="FriendshipAccepted">
|
<notification name="FriendshipAccepted">
|
||||||
[NAME_SLURL] a accepté votre amitié. [MESSAGE]
|
[NAME] a accepté votre amitié.
|
||||||
</notification>
|
</notification>
|
||||||
|
|
||||||
<notification name="FriendshipDeclined">
|
<notification name="FriendshipDeclined">
|
||||||
[NAME_SLURL] a refusé votre amitié. [MESSAGE]
|
[NAME] a refusé votre amitié.
|
||||||
</notification>
|
</notification>
|
||||||
|
|
||||||
<notification name="OfferCallingCard">
|
<notification name="OfferCallingCard">
|
||||||
|
|||||||
@@ -99,6 +99,7 @@
|
|||||||
<NotifyCautionBoxColor value="0, 0, 0, 255" /> <!-- the background color of caution permissions prompts -->
|
<NotifyCautionBoxColor value="0, 0, 0, 255" /> <!-- the background color of caution permissions prompts -->
|
||||||
<NotifyCautionWarnColor value="169, 216, 175, 255" /> <!-- the foreground color of the special title text in caution permissions prompts -->
|
<NotifyCautionWarnColor value="169, 216, 175, 255" /> <!-- the foreground color of the special title text in caution permissions prompts -->
|
||||||
<GroupNotifyBoxColor value="0, 0, 0, 255" />
|
<GroupNotifyBoxColor value="0, 0, 0, 255" />
|
||||||
|
<GroupNotifyHeaderBGColor value="0, 0, 0, 0" />
|
||||||
<GroupNotifyTextColor value="169, 216, 175, 255" />
|
<GroupNotifyTextColor value="169, 216, 175, 255" />
|
||||||
|
|
||||||
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
|
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
|
||||||
|
|||||||
@@ -103,6 +103,7 @@
|
|||||||
<NotifyCautionBoxColor value="254, 209, 118, 255" /> <!-- the background color of caution permissions prompts -->
|
<NotifyCautionBoxColor value="254, 209, 118, 255" /> <!-- the background color of caution permissions prompts -->
|
||||||
<NotifyCautionWarnColor value="0, 0, 0, 255" /> <!-- the foreground color of the special title text in caution permissions prompts -->
|
<NotifyCautionWarnColor value="0, 0, 0, 255" /> <!-- the foreground color of the special title text in caution permissions prompts -->
|
||||||
<GroupNotifyBoxColor value="66, 66, 66, 255" />
|
<GroupNotifyBoxColor value="66, 66, 66, 255" />
|
||||||
|
<GroupNotifyHeaderBGColor value="0, 0, 0, 0" />
|
||||||
<GroupNotifyTextColor value="255, 255, 255, 128" />
|
<GroupNotifyTextColor value="255, 255, 255, 128" />
|
||||||
|
|
||||||
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
|
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
|
||||||
|
|||||||
@@ -99,6 +99,7 @@
|
|||||||
<NotifyCautionBoxColor value="254, 209, 118, 255" /> <!-- the background color of caution permissions prompts -->
|
<NotifyCautionBoxColor value="254, 209, 118, 255" /> <!-- the background color of caution permissions prompts -->
|
||||||
<NotifyCautionWarnColor value="0, 0, 0, 255" /> <!-- the foreground color of the special title text in caution permissions prompts -->
|
<NotifyCautionWarnColor value="0, 0, 0, 255" /> <!-- the foreground color of the special title text in caution permissions prompts -->
|
||||||
<GroupNotifyBoxColor value="189, 0, 0, 240" />
|
<GroupNotifyBoxColor value="189, 0, 0, 240" />
|
||||||
|
<GroupNotifyHeaderBGColor value="0, 0, 0, 0" />
|
||||||
<GroupNotifyTextColor value="1, 0, 0, 255" />
|
<GroupNotifyTextColor value="1, 0, 0, 255" />
|
||||||
|
|
||||||
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
|
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
|
||||||
|
|||||||
@@ -99,6 +99,7 @@
|
|||||||
<NotifyCautionBoxColor value="254, 209, 118, 255" /> <!-- the background color of caution permissions prompts -->
|
<NotifyCautionBoxColor value="254, 209, 118, 255" /> <!-- the background color of caution permissions prompts -->
|
||||||
<NotifyCautionWarnColor value="0, 0, 0, 255" /> <!-- the foreground color of the special title text in caution permissions prompts -->
|
<NotifyCautionWarnColor value="0, 0, 0, 255" /> <!-- the foreground color of the special title text in caution permissions prompts -->
|
||||||
<GroupNotifyBoxColor value="189, 0, 0, 240" />
|
<GroupNotifyBoxColor value="189, 0, 0, 240" />
|
||||||
|
<GroupNotifyHeaderBGColor value="0, 0, 0, 0" />
|
||||||
<GroupNotifyTextColor value="1, 0, 0, 255" />
|
<GroupNotifyTextColor value="1, 0, 0, 255" />
|
||||||
|
|
||||||
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
|
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
|
||||||
|
|||||||
@@ -103,6 +103,7 @@
|
|||||||
<NotifyCautionBoxColor value="210, 210, 210, 255" /> <!-- the background color of caution permissions prompts -->
|
<NotifyCautionBoxColor value="210, 210, 210, 255" /> <!-- the background color of caution permissions prompts -->
|
||||||
<NotifyCautionWarnColor value="210, 210, 210, 255" /> <!-- the foreground color of the special title text in caution permissions prompts -->
|
<NotifyCautionWarnColor value="210, 210, 210, 255" /> <!-- the foreground color of the special title text in caution permissions prompts -->
|
||||||
<GroupNotifyBoxColor value="255, 255, 255, 255" />
|
<GroupNotifyBoxColor value="255, 255, 255, 255" />
|
||||||
|
<GroupNotifyHeaderBGColor value="0, 0, 0, 0" />
|
||||||
<GroupNotifyTextColor value="0, 0, 0, 255" />
|
<GroupNotifyTextColor value="0, 0, 0, 255" />
|
||||||
|
|
||||||
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
|
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
|
||||||
|
|||||||
@@ -99,6 +99,7 @@
|
|||||||
<NotifyCautionBoxColor value="210, 210, 210, 255" /> <!-- the background color of caution permissions prompts -->
|
<NotifyCautionBoxColor value="210, 210, 210, 255" /> <!-- the background color of caution permissions prompts -->
|
||||||
<NotifyCautionWarnColor value="210, 210, 210, 255" /> <!-- the foreground color of the special title text in caution permissions prompts -->
|
<NotifyCautionWarnColor value="210, 210, 210, 255" /> <!-- the foreground color of the special title text in caution permissions prompts -->
|
||||||
<GroupNotifyBoxColor value="255, 255, 255, 255" />
|
<GroupNotifyBoxColor value="255, 255, 255, 255" />
|
||||||
|
<GroupNotifyHeaderBGColor value="0, 0, 0, 0" />
|
||||||
<GroupNotifyTextColor value="0, 0, 0, 255" />
|
<GroupNotifyTextColor value="0, 0, 0, 255" />
|
||||||
|
|
||||||
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
|
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
|
||||||
|
|||||||
@@ -103,6 +103,7 @@
|
|||||||
<NotifyCautionBoxColor value="254, 209, 118, 255" /> <!-- the background color of caution permissions prompts -->
|
<NotifyCautionBoxColor value="254, 209, 118, 255" /> <!-- the background color of caution permissions prompts -->
|
||||||
<NotifyCautionWarnColor value="0, 0, 0, 255" /> <!-- the foreground color of the special title text in caution permissions prompts -->
|
<NotifyCautionWarnColor value="0, 0, 0, 255" /> <!-- the foreground color of the special title text in caution permissions prompts -->
|
||||||
<GroupNotifyBoxColor value="70, 70, 70, 255" />
|
<GroupNotifyBoxColor value="70, 70, 70, 255" />
|
||||||
|
<GroupNotifyHeaderBGColor value="0, 0, 0, 0" />
|
||||||
<GroupNotifyTextColor value="0, 30, 60, 255" />
|
<GroupNotifyTextColor value="0, 30, 60, 255" />
|
||||||
|
|
||||||
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
|
<!-- CHAT AND IM HISTORY TEXTBOX COLORS -->
|
||||||
|
|||||||
@@ -1147,13 +1147,13 @@ class LinuxManifest(ViewerManifest):
|
|||||||
|
|
||||||
def is_packaging_viewer(self):
|
def is_packaging_viewer(self):
|
||||||
super(LinuxManifest, self).is_packaging_viewer()
|
super(LinuxManifest, self).is_packaging_viewer()
|
||||||
return True # We always want a packaged viewer even without archive.
|
return 'package' in self.args['actions']
|
||||||
|
|
||||||
|
|
||||||
def do(self, *actions):
|
def do(self, *actions):
|
||||||
super(LinuxManifest, self).do(*actions)
|
super(LinuxManifest, self).do(*actions)
|
||||||
if not 'package' in self.actions:
|
self.package_finish() # Always finish the package.
|
||||||
self.package_finish() # Always finish the package.
|
if 'package' in self.actions:
|
||||||
else:
|
|
||||||
# package_finish() was called by super.do() so just create the TAR.
|
# package_finish() was called by super.do() so just create the TAR.
|
||||||
self.create_archive()
|
self.create_archive()
|
||||||
return self.file_list
|
return self.file_list
|
||||||
|
|||||||
Reference in New Issue
Block a user