Merge with default branch
--HG-- branch : product-engine
commit
6290930c98
|
|
@ -994,7 +994,14 @@ void LLStringUtil::formatNumber(std::string& numStr, std::string decimals)
|
|||
convertToS32 (decimals, intDecimals);
|
||||
if (!sLocale.empty())
|
||||
{
|
||||
strStream.imbue (std::locale(sLocale.c_str()));
|
||||
// std::locale() throws if the locale is unknown! (EXT-7926)
|
||||
try
|
||||
{
|
||||
strStream.imbue(std::locale(sLocale.c_str()));
|
||||
} catch (const std::exception &)
|
||||
{
|
||||
LL_WARNS_ONCE("Locale") << "Cannot set locale to " << sLocale << LL_ENDL;
|
||||
}
|
||||
}
|
||||
|
||||
if (!intDecimals)
|
||||
|
|
|
|||
|
|
@ -1162,3 +1162,10 @@ void LLButton::resetMouseDownTimer()
|
|||
mMouseDownTimer.stop();
|
||||
mMouseDownTimer.reset();
|
||||
}
|
||||
|
||||
|
||||
BOOL LLButton::handleDoubleClick(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
// just treat a double click as a second click
|
||||
return handleMouseDown(x, y, mask);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -152,6 +152,7 @@ public:
|
|||
virtual BOOL handleHover(S32 x, S32 y, MASK mask);
|
||||
virtual BOOL handleRightMouseDown(S32 x, S32 y, MASK mask);
|
||||
virtual BOOL handleRightMouseUp(S32 x, S32 y, MASK mask);
|
||||
virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
|
||||
virtual void draw();
|
||||
/*virtual*/ BOOL postBuild();
|
||||
|
||||
|
|
|
|||
|
|
@ -466,8 +466,3 @@ BOOL LLSpinCtrl::handleKeyHere(KEY key, MASK mask)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
BOOL LLSpinCtrl::handleDoubleClick(S32 x, S32 y, MASK mask)
|
||||
{
|
||||
// just treat a double click as a second click
|
||||
return handleMouseDown(x, y, mask);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -94,7 +94,6 @@ public:
|
|||
|
||||
virtual BOOL handleScrollWheel(S32 x,S32 y,S32 clicks);
|
||||
virtual BOOL handleKeyHere(KEY key, MASK mask);
|
||||
virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
|
||||
|
||||
void onEditorCommit(const LLSD& data);
|
||||
static void onEditorGainFocus(LLFocusableElement* caller, void *userdata);
|
||||
|
|
|
|||
|
|
@ -49,6 +49,11 @@ void setupCocoa()
|
|||
{
|
||||
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
||||
|
||||
// The following prevents the Cocoa command line parser from trying to open 'unknown' arguements as documents.
|
||||
// ie. running './secondlife -set Language fr' would cause a pop-up saying can't open document 'fr'
|
||||
// when init'ing the Cocoa App window.
|
||||
[[NSUserDefaults standardUserDefaults] setObject:@"NO" forKey:@"NSTreatUnknownArgumentsAsOpen"];
|
||||
|
||||
// This is a bit of voodoo taken from the Apple sample code "CarbonCocoa_PictureCursor":
|
||||
// http://developer.apple.com/samplecode/CarbonCocoa_PictureCursor/index.html
|
||||
|
||||
|
|
|
|||
|
|
@ -50,8 +50,10 @@ set(media_plugin_webkit_LINK_LIBRARIES
|
|||
)
|
||||
|
||||
# Select which VolumeCatcher implementation to use
|
||||
if (LINUX AND PULSEAUDIO)
|
||||
list(APPEND media_plugin_webkit_SOURCE_FILES linux_volume_catcher.cpp)
|
||||
if (LINUX)
|
||||
if (PULSEAUDIO)
|
||||
list(APPEND media_plugin_webkit_SOURCE_FILES linux_volume_catcher.cpp)
|
||||
endif (PULSEAUDIO)
|
||||
list(APPEND media_plugin_webkit_LINK_LIBRARIES
|
||||
${UI_LIBRARIES} # for glib/GTK
|
||||
)
|
||||
|
|
@ -65,10 +67,10 @@ elseif (DARWIN)
|
|||
)
|
||||
elseif (WINDOWS)
|
||||
list(APPEND media_plugin_webkit_SOURCE_FILES windows_volume_catcher.cpp)
|
||||
else (LINUX AND PULSEAUDIO)
|
||||
else (LINUX)
|
||||
# All other platforms use the dummy volume catcher for now.
|
||||
list(APPEND media_plugin_webkit_SOURCE_FILES dummy_volume_catcher.cpp)
|
||||
endif (LINUX AND PULSEAUDIO)
|
||||
endif (LINUX)
|
||||
|
||||
set_source_files_properties(${media_plugin_webkit_HEADER_FILES}
|
||||
PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@
|
|||
|
||||
extern "C" {
|
||||
#include <glib.h>
|
||||
#include <glib-object.h>
|
||||
|
||||
#include <pulse/introspect.h>
|
||||
#include <pulse/context.h>
|
||||
|
|
@ -220,6 +221,10 @@ void VolumeCatcherImpl::init()
|
|||
mGotSyms = loadsyms("libpulse-mainloop-glib.so.0");
|
||||
if (!mGotSyms) return;
|
||||
|
||||
// better make double-sure glib itself is initialized properly.
|
||||
if (!g_thread_supported ()) g_thread_init (NULL);
|
||||
g_type_init();
|
||||
|
||||
mMainloop = llpa_glib_mainloop_new(g_main_context_default());
|
||||
if (mMainloop)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -46,6 +46,10 @@
|
|||
// set to 1 if you're using the version of llqtwebkit that's QPixmap-ified
|
||||
#if LL_LINUX
|
||||
# define LL_QTWEBKIT_USES_PIXMAPS 0
|
||||
extern "C" {
|
||||
# include <glib.h>
|
||||
# include <glib-object.h>
|
||||
}
|
||||
#else
|
||||
# define LL_QTWEBKIT_USES_PIXMAPS 0
|
||||
#endif // LL_LINUX
|
||||
|
|
@ -60,7 +64,7 @@
|
|||
#endif
|
||||
|
||||
#if LL_WINDOWS
|
||||
// *NOTE:Mani - This captures the module handle fo rthe dll. This is used below
|
||||
// *NOTE:Mani - This captures the module handle for the dll. This is used below
|
||||
// to get the path to this dll for webkit initialization.
|
||||
// I don't know how/if this can be done with apr...
|
||||
namespace { HMODULE gModuleHandle;};
|
||||
|
|
@ -129,6 +133,16 @@ private:
|
|||
//
|
||||
void update(int milliseconds)
|
||||
{
|
||||
#if LL_QTLINUX_DOESNT_HAVE_GLIB
|
||||
// pump glib generously, as Linux browser plugins are on the
|
||||
// glib main loop, even if the browser itself isn't - ugh
|
||||
// This is NOT NEEDED if Qt itself was built with glib
|
||||
// mainloop integration.
|
||||
GMainContext *mainc = g_main_context_default();
|
||||
while(g_main_context_iteration(mainc, FALSE));
|
||||
#endif // LL_QTLINUX_DOESNT_HAVE_GLIB
|
||||
|
||||
// pump qt
|
||||
LLQtWebKit::getInstance()->pump( milliseconds );
|
||||
|
||||
mVolumeCatcher.pump();
|
||||
|
|
@ -200,6 +214,14 @@ private:
|
|||
}
|
||||
std::string application_dir = std::string( cwd );
|
||||
|
||||
#if LL_LINUX
|
||||
// take care to initialize glib properly, because some
|
||||
// versions of Qt don't, and we indirectly need it for (some
|
||||
// versions of) Flash to not crash the browser.
|
||||
if (!g_thread_supported ()) g_thread_init (NULL);
|
||||
g_type_init();
|
||||
#endif
|
||||
|
||||
#if LL_DARWIN
|
||||
// When running under the Xcode debugger, there's a setting called "Break on Debugger()/DebugStr()" which defaults to being turned on.
|
||||
// This causes the environment variable USERBREAK to be set to 1, which causes these legacy calls to break into the debugger.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
|
|
@ -18,33 +18,33 @@
|
|||
<string>APPL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>slurl</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>seconlife</string>
|
||||
<key>CFBundleTypeMIMETypes</key>
|
||||
<array>
|
||||
<string>application/x-grid-location-info</string>
|
||||
</array>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>Secondlife SLURL</string>
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>slurl</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>seconlife</string>
|
||||
<key>CFBundleTypeMIMETypes</key>
|
||||
<array>
|
||||
<string>application/x-grid-location-info</string>
|
||||
</array>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>Secondlife SLURL</string>
|
||||
<key>CFBundleTypeOSTypes</key>
|
||||
<array>
|
||||
<string>SLRL</string>
|
||||
<string>SLRL</string>
|
||||
</array>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
<key>LSTypeIsPackage</key>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
<key>LSTypeIsPackage</key>
|
||||
<true/>
|
||||
<key>NSDocumentClass</key>
|
||||
<string>SecondLifeSLURL</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>NSDocumentClass</key>
|
||||
<string>SecondLifeSLURL</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleURLTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
|
|||
|
|
@ -48,6 +48,12 @@ public:
|
|||
|
||||
virtual ~LLOrderMyOutfitsOnDestroy()
|
||||
{
|
||||
if (LLApp::isExiting())
|
||||
{
|
||||
llwarns << "called during shutdown, skipping" << llendl;
|
||||
return;
|
||||
}
|
||||
|
||||
const LLUUID& my_outfits_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS);
|
||||
if (my_outfits_id.isNull()) return;
|
||||
|
||||
|
|
@ -241,6 +247,8 @@ LLLibraryOutfitsFetch::LLLibraryOutfitsFetch(const LLUUID& my_outfits_id) :
|
|||
mCurrFetchStep(LOFS_FOLDER),
|
||||
mOutfitsPopulated(false)
|
||||
{
|
||||
llinfos << "created" << llendl;
|
||||
|
||||
mMyOutfitsID = LLUUID::null;
|
||||
mClothingID = LLUUID::null;
|
||||
mLibraryClothingID = LLUUID::null;
|
||||
|
|
@ -250,10 +258,13 @@ LLLibraryOutfitsFetch::LLLibraryOutfitsFetch(const LLUUID& my_outfits_id) :
|
|||
|
||||
LLLibraryOutfitsFetch::~LLLibraryOutfitsFetch()
|
||||
{
|
||||
llinfos << "destroyed" << llendl;
|
||||
}
|
||||
|
||||
void LLLibraryOutfitsFetch::done()
|
||||
{
|
||||
llinfos << "start" << llendl;
|
||||
|
||||
// Delay this until idle() routine, since it's a heavy operation and
|
||||
// we also can't have it run within notifyObservers.
|
||||
doOnIdleOneTime(boost::bind(&LLLibraryOutfitsFetch::doneIdle,this));
|
||||
|
|
@ -262,6 +273,8 @@ void LLLibraryOutfitsFetch::done()
|
|||
|
||||
void LLLibraryOutfitsFetch::doneIdle()
|
||||
{
|
||||
llinfos << "start" << llendl;
|
||||
|
||||
gInventory.addObserver(this); // Add this back in since it was taken out during ::done()
|
||||
|
||||
switch (mCurrFetchStep)
|
||||
|
|
@ -302,6 +315,8 @@ void LLLibraryOutfitsFetch::doneIdle()
|
|||
|
||||
void LLLibraryOutfitsFetch::folderDone()
|
||||
{
|
||||
llinfos << "start" << llendl;
|
||||
|
||||
LLInventoryModel::cat_array_t cat_array;
|
||||
LLInventoryModel::item_array_t wearable_array;
|
||||
gInventory.collectDescendents(mMyOutfitsID, cat_array, wearable_array,
|
||||
|
|
@ -309,8 +324,7 @@ void LLLibraryOutfitsFetch::folderDone()
|
|||
|
||||
// Early out if we already have items in My Outfits
|
||||
// except the case when My Outfits contains just initial outfit
|
||||
if (cat_array.count() > 1 ||
|
||||
cat_array.count() == 1 && cat_array[0]->getUUID() != LLAppearanceMgr::getInstance()->getBaseOutfitUUID())
|
||||
if (cat_array.count() > 1)
|
||||
{
|
||||
mOutfitsPopulated = true;
|
||||
return;
|
||||
|
|
@ -348,6 +362,8 @@ void LLLibraryOutfitsFetch::folderDone()
|
|||
|
||||
void LLLibraryOutfitsFetch::outfitsDone()
|
||||
{
|
||||
llinfos << "start" << llendl;
|
||||
|
||||
LLInventoryModel::cat_array_t cat_array;
|
||||
LLInventoryModel::item_array_t wearable_array;
|
||||
uuid_vec_t folders;
|
||||
|
|
@ -425,6 +441,8 @@ private:
|
|||
// Copy the clothing folders from the library into the imported clothing folder
|
||||
void LLLibraryOutfitsFetch::libraryDone()
|
||||
{
|
||||
llinfos << "start" << llendl;
|
||||
|
||||
if (mImportedClothingID != LLUUID::null)
|
||||
{
|
||||
// Skip straight to fetching the contents of the imported folder
|
||||
|
|
@ -480,6 +498,8 @@ void LLLibraryOutfitsFetch::libraryDone()
|
|||
|
||||
void LLLibraryOutfitsFetch::importedFolderFetch()
|
||||
{
|
||||
llinfos << "start" << llendl;
|
||||
|
||||
// Fetch the contents of the Imported Clothing Folder
|
||||
uuid_vec_t folders;
|
||||
folders.push_back(mImportedClothingID);
|
||||
|
|
@ -495,6 +515,8 @@ void LLLibraryOutfitsFetch::importedFolderFetch()
|
|||
|
||||
void LLLibraryOutfitsFetch::importedFolderDone()
|
||||
{
|
||||
llinfos << "start" << llendl;
|
||||
|
||||
LLInventoryModel::cat_array_t cat_array;
|
||||
LLInventoryModel::item_array_t wearable_array;
|
||||
uuid_vec_t folders;
|
||||
|
|
@ -525,6 +547,8 @@ void LLLibraryOutfitsFetch::importedFolderDone()
|
|||
|
||||
void LLLibraryOutfitsFetch::contentsDone()
|
||||
{
|
||||
llinfos << "start" << llendl;
|
||||
|
||||
LLInventoryModel::cat_array_t cat_array;
|
||||
LLInventoryModel::item_array_t wearable_array;
|
||||
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@
|
|||
layout="topleft"
|
||||
left="12"
|
||||
name="min param text"
|
||||
text_color="EmphasisColor"
|
||||
text_color="White"
|
||||
font_shadow="hard"
|
||||
top="120"
|
||||
width="120" />
|
||||
|
|
@ -22,7 +22,7 @@
|
|||
layout="topleft"
|
||||
left="155"
|
||||
name="max param text"
|
||||
text_color="EmphasisColor"
|
||||
text_color="White"
|
||||
font_shadow="hard"
|
||||
top_delta="0"
|
||||
width="120" />
|
||||
|
|
|
|||
Loading…
Reference in New Issue