summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rwxr-xr-xindra/newview/CMakeLists.txt2
-rw-r--r--indra/newview/SecondLife.nibbin12348 -> 12345 bytes
-rw-r--r--indra/newview/SecondLife.xib2
-rwxr-xr-xindra/newview/app_settings/keys.xml13
-rwxr-xr-xindra/newview/app_settings/keywords.ini1
-rwxr-xr-xindra/newview/app_settings/settings.xml35
-rwxr-xr-xindra/newview/gpu_table.txt3
-rwxr-xr-xindra/newview/installers/windows/installer_template.nsi16
-rwxr-xr-xindra/newview/llagent.cpp15
-rwxr-xr-xindra/newview/llappviewer.cpp8
-rwxr-xr-xindra/newview/llcolorswatch.h3
-rw-r--r--indra/newview/llconversationmodel.h3
-rwxr-xr-xindra/newview/lldrawpoolbump.cpp2
-rwxr-xr-xindra/newview/llfilepicker.cpp5
-rw-r--r--indra/newview/llfilepicker_mac.mm2
-rwxr-xr-xindra/newview/llfloateravatarpicker.cpp4
-rwxr-xr-xindra/newview/llfloatercolorpicker.cpp14
-rwxr-xr-xindra/newview/llfloaterconversationpreview.cpp104
-rwxr-xr-xindra/newview/llfloaterconversationpreview.h11
-rwxr-xr-xindra/newview/llfloaterhardwaresettings.cpp17
-rwxr-xr-xindra/newview/llfloaterhardwaresettings.h2
-rwxr-xr-xindra/newview/llfloaterimcontainer.cpp7
-rwxr-xr-xindra/newview/llfloaterimsession.cpp2
-rwxr-xr-xindra/newview/llfloaterland.cpp43
-rwxr-xr-xindra/newview/llfloaterland.h1
-rwxr-xr-xindra/newview/llfloaterregioninfo.cpp10
-rwxr-xr-xindra/newview/llfloaterregioninfo.h1
-rwxr-xr-xindra/newview/llfloatersnapshot.cpp35
-rwxr-xr-xindra/newview/llfloatersnapshot.h1
-rwxr-xr-xindra/newview/llfloatertools.cpp6
-rwxr-xr-xindra/newview/llfloaterwebcontent.cpp16
-rwxr-xr-xindra/newview/llfloaterwebcontent.h1
-rwxr-xr-xindra/newview/llfolderviewmodelinventory.h4
-rwxr-xr-xindra/newview/llgesturemgr.cpp62
-rwxr-xr-xindra/newview/llgiveinventory.cpp2
-rwxr-xr-xindra/newview/llglsandbox.cpp3
-rwxr-xr-xindra/newview/llgroupmgr.cpp5
-rwxr-xr-xindra/newview/llgroupmgr.h2
-rwxr-xr-xindra/newview/llinventorybridge.cpp42
-rwxr-xr-xindra/newview/llinventorybridge.h1
-rwxr-xr-xindra/newview/llinventorypanel.cpp11
-rwxr-xr-xindra/newview/lllogchat.cpp475
-rwxr-xr-xindra/newview/lllogchat.h64
-rwxr-xr-xindra/newview/llmanipscale.cpp530
-rwxr-xr-xindra/newview/llmanipscale.h12
-rwxr-xr-xindra/newview/llmaniptranslate.cpp2
-rwxr-xr-xindra/newview/llpanelgroup.cpp18
-rwxr-xr-xindra/newview/llpanelland.cpp2
-rwxr-xr-xindra/newview/llpanellandmarks.cpp6
-rwxr-xr-xindra/newview/llpanellandmarks.h2
-rwxr-xr-xindra/newview/llpanelobjectinventory.cpp46
-rwxr-xr-xindra/newview/llpanelobjectinventory.h3
-rwxr-xr-xindra/newview/llpanelplaceprofile.cpp5
-rwxr-xr-xindra/newview/llpanelplaceprofile.h1
-rwxr-xr-xindra/newview/llpanelteleporthistory.cpp62
-rwxr-xr-xindra/newview/llplacesfolderview.cpp11
-rwxr-xr-xindra/newview/llplacesfolderview.h2
-rwxr-xr-xindra/newview/llpreview.cpp2
-rwxr-xr-xindra/newview/llpreviewscript.cpp24
-rwxr-xr-xindra/newview/llpreviewsound.cpp2
-rwxr-xr-xindra/newview/llpreviewtexture.cpp68
-rwxr-xr-xindra/newview/llpreviewtexture.h2
-rwxr-xr-xindra/newview/llsidepanelinventory.cpp4
-rw-r--r--indra/newview/llsnapshotlivepreview.cpp28
-rw-r--r--indra/newview/llsnapshotlivepreview.h4
-rwxr-xr-xindra/newview/llspatialpartition.cpp1
-rwxr-xr-xindra/newview/llstartup.cpp1
-rwxr-xr-xindra/newview/lltexturectrl.cpp2
-rwxr-xr-xindra/newview/lltooldraganddrop.cpp69
-rwxr-xr-xindra/newview/lltoolpie.cpp12
-rwxr-xr-xindra/newview/llviewercontrol.cpp1
-rwxr-xr-xindra/newview/llviewermedia.cpp4
-rwxr-xr-xindra/newview/llviewermenu.cpp42
-rwxr-xr-xindra/newview/llviewermenufile.cpp4
-rwxr-xr-xindra/newview/llviewermessage.cpp6
-rwxr-xr-xindra/newview/llviewerregion.h2
-rwxr-xr-xindra/newview/llviewertexture.h2
-rwxr-xr-xindra/newview/llviewertexturelist.cpp15
-rwxr-xr-xindra/newview/llviewerwindow.cpp2
-rwxr-xr-xindra/newview/llvovolume.cpp4
-rwxr-xr-xindra/newview/llwebsharing.cpp603
-rwxr-xr-xindra/newview/llwebsharing.h224
-rwxr-xr-xindra/newview/pipeline.cpp1
-rwxr-xr-xindra/newview/skins/default/textures/textures.xml6
-rwxr-xr-xindra/newview/skins/default/xui/da/panel_preferences_privacy.xml2
-rwxr-xr-xindra/newview/skins/default/xui/da/strings.xml3
-rwxr-xr-xindra/newview/skins/default/xui/de/panel_preferences_privacy.xml2
-rwxr-xr-xindra/newview/skins/default/xui/de/strings.xml3
-rwxr-xr-xindra/newview/skins/default/xui/en/floater_hardware_settings.xml3
-rwxr-xr-xindra/newview/skins/default/xui/en/floater_places.xml2
-rwxr-xr-xindra/newview/skins/default/xui/en/floater_preview_texture.xml24
-rwxr-xr-xindra/newview/skins/default/xui/en/floater_report_abuse.xml128
-rwxr-xr-xindra/newview/skins/default/xui/en/floater_tools.xml20
-rwxr-xr-xindra/newview/skins/default/xui/en/menu_login.xml68
-rwxr-xr-xindra/newview/skins/default/xui/en/menu_object.xml19
-rwxr-xr-xindra/newview/skins/default/xui/en/menu_viewer.xml60
-rwxr-xr-xindra/newview/skins/default/xui/en/notifications.xml14
-rwxr-xr-xindra/newview/skins/default/xui/en/panel_place_profile.xml18
-rwxr-xr-xindra/newview/skins/default/xui/en/panel_places.xml3
-rwxr-xr-xindra/newview/skins/default/xui/en/panel_preferences_privacy.xml2
-rwxr-xr-xindra/newview/skins/default/xui/en/panel_region_debug.xml10
-rwxr-xr-xindra/newview/skins/default/xui/en/panel_region_general.xml27
-rwxr-xr-xindra/newview/skins/default/xui/en/panel_teleport_history_item.xml15
-rwxr-xr-xindra/newview/skins/default/xui/en/strings.xml1
-rwxr-xr-xindra/newview/skins/default/xui/es/panel_preferences_privacy.xml2
-rwxr-xr-xindra/newview/skins/default/xui/es/strings.xml3
-rwxr-xr-xindra/newview/skins/default/xui/fr/panel_preferences_privacy.xml4
-rwxr-xr-xindra/newview/skins/default/xui/fr/strings.xml3
-rwxr-xr-xindra/newview/skins/default/xui/it/panel_preferences_privacy.xml2
-rwxr-xr-xindra/newview/skins/default/xui/it/strings.xml3
-rwxr-xr-xindra/newview/skins/default/xui/ja/panel_preferences_privacy.xml2
-rwxr-xr-xindra/newview/skins/default/xui/ja/strings.xml3
-rwxr-xr-xindra/newview/skins/default/xui/pl/panel_preferences_privacy.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pl/strings.xml1
-rwxr-xr-xindra/newview/skins/default/xui/pt/panel_preferences_privacy.xml2
-rwxr-xr-xindra/newview/skins/default/xui/pt/strings.xml3
-rwxr-xr-xindra/newview/skins/default/xui/ru/panel_preferences_privacy.xml2
-rwxr-xr-xindra/newview/skins/default/xui/ru/strings.xml3
-rwxr-xr-xindra/newview/skins/default/xui/tr/panel_preferences_privacy.xml2
-rwxr-xr-xindra/newview/skins/default/xui/tr/strings.xml3
-rwxr-xr-xindra/newview/skins/default/xui/zh/panel_preferences_privacy.xml2
121 files changed, 1617 insertions, 1742 deletions
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 17e340d136..c4886d5b73 100755
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -660,7 +660,6 @@ set(viewer_SOURCE_FILES
llwearablelist.cpp
llweb.cpp
llwebprofile.cpp
- llwebsharing.cpp
llwind.cpp
llwindowlistener.cpp
llwlanimator.cpp
@@ -1240,7 +1239,6 @@ set(viewer_HEADER_FILES
llwearablelist.h
llweb.h
llwebprofile.h
- llwebsharing.h
llwind.h
llwindowlistener.h
llwlanimator.h
diff --git a/indra/newview/SecondLife.nib b/indra/newview/SecondLife.nib
index 8b99b5a770..c4ddca50dc 100644
--- a/indra/newview/SecondLife.nib
+++ b/indra/newview/SecondLife.nib
Binary files differ
diff --git a/indra/newview/SecondLife.xib b/indra/newview/SecondLife.xib
index 370df6bf5f..ef25c648a7 100644
--- a/indra/newview/SecondLife.xib
+++ b/indra/newview/SecondLife.xib
@@ -120,7 +120,7 @@
</object>
<object class="NSMenuItem" id="755159360">
<reference key="NSMenu" ref="110575045"/>
- <string key="NSTitle">Hide NewApplication</string>
+ <string key="NSTitle">Hide Second Life</string>
<string key="NSKeyEquiv">h</string>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
diff --git a/indra/newview/app_settings/keys.xml b/indra/newview/app_settings/keys.xml
index 6e3673e7d9..a8037fec05 100755
--- a/indra/newview/app_settings/keys.xml
+++ b/indra/newview/app_settings/keys.xml
@@ -293,11 +293,24 @@
<!--these are for passing controls when sitting on vehicles-->
<binding key="A" mask="SHIFT" command="slide_left"/>
<binding key="D" mask="SHIFT" command="slide_right"/>
+ <binding key="W" mask="SHIFT" command="move_forward_sitting"/>
+ <binding key="S" mask="SHIFT" command="move_backward_sitting"/>
+ <binding key="E" mask="SHIFT" command="spin_over_sitting"/>
+ <binding key="C" mask="SHIFT" command="spin_under_sitting"/>
+
<binding key="LEFT" mask="SHIFT" command="slide_left"/>
<binding key="RIGHT" mask="SHIFT" command="slide_right"/>
+ <binding key="UP" mask="SHIFT" command="move_forward_sitting"/>
+ <binding key="DOWN" mask="SHIFT" command="move_backward_sitting"/>
+ <binding key="PGUP" mask="SHIFT" command="spin_over_sitting"/>
+ <binding key="PGDN" mask="SHIFT" command="spin_under_sitting"/>
<binding key="PAD_LEFT" mask="SHIFT" command="slide_left"/>
<binding key="PAD_RIGHT" mask="SHIFT" command="slide_right"/>
+ <binding key="PAD_UP" mask="SHIFT" command="move_forward_sitting"/>
+ <binding key="PAD_DOWN" mask="SHIFT" command="move_backward_sitting"/>
+ <binding key="PAD_PGUP" mask="SHIFT" command="spin_over_sitting"/>
+ <binding key="PAD_PGDN" mask="SHIFT" command="spin_under_sitting"/>
<binding key="PAD_ENTER" mask="SHIFT" command="start_chat"/>
<binding key="PAD_DIVIDE" mask="SHIFT" command="start_gesture"/>
diff --git a/indra/newview/app_settings/keywords.ini b/indra/newview/app_settings/keywords.ini
index ad843bca14..17c70ef1c5 100755
--- a/indra/newview/app_settings/keywords.ini
+++ b/indra/newview/app_settings/keywords.ini
@@ -526,6 +526,7 @@ REGION_FLAG_SANDBOX Used with llGetRegionFlags to find if a region is a sand
REGION_FLAG_DISABLE_COLLISIONS Used with llGetRegionFlags to find if a region has disabled collisions
REGION_FLAG_DISABLE_PHYSICS Used with llGetRegionFlags to find if a region has disabled physics
REGION_FLAG_BLOCK_FLY Used with llGetRegionFlags to find if a region blocks flying
+REGION_FLAG_BLOCK_FLYOVER Used with llGetRegionFlags to find if a region enforces higher altitude parcel access rules
REGION_FLAG_ALLOW_DIRECT_TELEPORT Used with llGetRegionFlags to find if a region allows direct teleports
REGION_FLAG_RESTRICT_PUSHOBJECT Used with llGetRegionFlags to find if a region restricts llPushObject() calls
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index d39bf6c3c2..dfbf6b0156 100755
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -7982,6 +7982,18 @@
<integer>128</integer>
</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>OctreeStaticObjectSizeFactor</key>
<map>
<key>Comment</key>
@@ -11333,28 +11345,6 @@
<key>Value</key>
<integer>75</integer>
</map>
- <key>SnapshotSharingEnabled</key>
- <map>
- <key>Comment</key>
- <string>Enable uploading of snapshots to a web service.</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>0</integer>
- </map>
- <key>SnapshotConfigURL</key>
- <map>
- <key>Comment</key>
- <string>URL to fetch Snapshot Sharing configuration data from.</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>String</string>
- <key>Value</key>
- <string>http://photos.apps.staging.avatarsunited.com/viewer_config</string>
- </map>
<key>SpeedTest</key>
<map>
<key>Comment</key>
@@ -14969,7 +14959,6 @@
<key>Value</key>
<integer>0</integer>
</map>
-
<key>VersionChannelName</key>
<map>
<key>Comment</key>
diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt
index 8efc4ee87d..badbe486b9 100755
--- a/indra/newview/gpu_table.txt
+++ b/indra/newview/gpu_table.txt
@@ -327,7 +327,8 @@ Intel HD Graphics 4600 .*Intel.*HD Graphics 46.* 3 1 0 4.2
Intel HD Graphics 4000 .*Intel.*HD Graphics 4.* 3 1 1 4.2
Intel Intel Iris Pro Graphics 5200 .*Intel.*Iris Pro Graphics 52.* 4 1 0 4
Intel Intel Iris Graphics 5100 .*Intel.*Iris Graphics 51.* 4 1 0 4
-Intel Intel Iris OpenGL Engine .*Intel.*Iris (Pro )*OpenGL.* 4 1 0 4
+Intel Intel Iris OpenGL Engine .*Intel.*Iris OpenGL.* 4 1 0 4
+Intel Intel Iris Pro OpenGL Engine .*Intel.*Iris Pro OpenGL.* 5 1 0 4
Intel HD Graphics 5000 .*Intel.*HD Graphics 5.* 4 1 0 4
Intel HD Graphics .*Intel.*HD Graphics.* 2 1 1 4
Intel Mobile 4 Series .*Intel.*Mobile.* 4 Series.* 0 1 1 2.1
diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi
index c4f503ef4e..4ece83d85a 100755
--- a/indra/newview/installers/windows/installer_template.nsi
+++ b/indra/newview/installers/windows/installer_template.nsi
@@ -122,24 +122,8 @@ Var DO_UNINSTALL_V2 ; If non-null, path to a previous Viewer 2 installation
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Function .onInstSuccess
Push $R0 # Option value, unused
-
- StrCmp $SKIP_DIALOGS "true" label_launch
-
- ${GetOptions} $COMMANDLINE "/AUTOSTART" $R0
- # If parameter was there (no error) just launch
- # Otherwise ask
- IfErrors label_ask_launch label_launch
-
-label_ask_launch:
- # Don't launch by default when silent
- IfSilent label_no_launch
- MessageBox MB_YESNO $(InstSuccesssQuestion) \
- IDYES label_launch IDNO label_no_launch
-
-label_launch:
# Assumes SetOutPath $INSTDIR
Exec '"$INSTDIR\$INSTEXE" $SHORTCUT_LANG_PARAM'
-label_no_launch:
Pop $R0
FunctionEnd
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index 7a93a95ebf..0582916362 100755
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -850,12 +850,9 @@ boost::signals2::connection LLAgent::addParcelChangedCallback(parcel_changed_cal
//-----------------------------------------------------------------------------
void LLAgent::setRegion(LLViewerRegion *regionp)
{
- bool notifyRegionChange;
-
llassert(regionp);
if (mRegionp != regionp)
{
- notifyRegionChange = true;
std::string ip = regionp->getHost().getString();
LL_INFOS("AgentLocation") << "Moving agent into region: " << regionp->getName()
@@ -908,10 +905,7 @@ void LLAgent::setRegion(LLViewerRegion *regionp)
// Pass new region along to metrics components that care about this level of detail.
LLAppViewer::metricsUpdateRegion(regionp->getHandle());
}
- else
- {
- notifyRegionChange = false;
- }
+
mRegionp = regionp;
// TODO - most of what follows probably should be moved into callbacks
@@ -947,11 +941,8 @@ void LLAgent::setRegion(LLViewerRegion *regionp)
mRegionp->setCapabilitiesReceivedCallback(boost::bind(&LLAgent::handleServerBakeRegionTransition,this,_1));
}
- if (notifyRegionChange)
- {
- LL_DEBUGS("AgentLocation") << "Calling RegionChanged callbacks" << LL_ENDL;
- mRegionChangedSignal();
- }
+ LL_DEBUGS("AgentLocation") << "Calling RegionChanged callbacks" << LL_ENDL;
+ mRegionChangedSignal();
}
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index e3c89f1a5f..d4fdf8fd49 100755
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -3190,6 +3190,14 @@ bool LLAppViewer::initWindow()
LLNotificationsUI::LLNotificationManager::getInstance();
+
+#ifdef LL_DARWIN
+ //Satisfy both MAINT-3135 (OSX 10.6 and earlier) MAINT-3288 (OSX 10.7 and later)
+ if (getOSInfo().mMajorVer == 10 && getOSInfo().mMinorVer < 7)
+ if ( getOSInfo().mMinorVer == 6 && getOSInfo().mBuild < 8 )
+ gViewerWindow->getWindow()->setOldResize(true);
+#endif
+
if (gSavedSettings.getBOOL("WindowMaximized"))
{
gViewerWindow->getWindow()->maximize();
diff --git a/indra/newview/llcolorswatch.h b/indra/newview/llcolorswatch.h
index 5bdd1712d2..b3b6cfe32d 100755
--- a/indra/newview/llcolorswatch.h
+++ b/indra/newview/llcolorswatch.h
@@ -59,6 +59,7 @@ public:
Optional<LLUIImage*> alpha_background_image;
Optional<commit_callback_t> cancel_callback;
Optional<commit_callback_t> select_callback;
+ Optional<commit_callback_t> preview_callback;
Optional<LLUIColor> border_color;
Optional<S32> label_width;
Optional<S32> label_height;
@@ -87,6 +88,7 @@ public:
void setCanApplyImmediately(BOOL apply) { mCanApplyImmediately = apply; }
void setOnCancelCallback(commit_callback_t cb) { mOnCancelCallback = cb; }
void setOnSelectCallback(commit_callback_t cb) { mOnSelectCallback = cb; }
+ void setPreviewCallback(commit_callback_t cb) { mPreviewCallback = cb; }
void setFallbackImageName(const std::string& name) { mFallbackImageName = name; }
void showPicker(BOOL take_focus);
@@ -112,6 +114,7 @@ protected:
BOOL mCanApplyImmediately;
commit_callback_t mOnCancelCallback;
commit_callback_t mOnSelectCallback;
+ commit_callback_t mPreviewCallback;
S32 mLabelWidth;
S32 mLabelHeight;
diff --git a/indra/newview/llconversationmodel.h b/indra/newview/llconversationmodel.h
index d8cdcdfc97..dc74506c53 100644
--- a/indra/newview/llconversationmodel.h
+++ b/indra/newview/llconversationmodel.h
@@ -291,6 +291,9 @@ class LLConversationViewModel
{
public:
typedef LLFolderViewModel<LLConversationSort, LLConversationItem, LLConversationItem, LLConversationFilter> base_t;
+ LLConversationViewModel()
+ : base_t(new LLConversationSort(), new LLConversationFilter())
+ {}
void sort(LLFolderViewFolder* folder);
bool contentsReady() { return true; } // *TODO : we need to check that participants names are available somewhat
diff --git a/indra/newview/lldrawpoolbump.cpp b/indra/newview/lldrawpoolbump.cpp
index 6b4c5cfca1..79a81cedda 100755
--- a/indra/newview/lldrawpoolbump.cpp
+++ b/indra/newview/lldrawpoolbump.cpp
@@ -155,7 +155,7 @@ void LLStandardBumpmap::addstandard()
LLViewerTextureManager::getFetchedTexture(LLUUID(bump_image_id));
gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mImage->setBoostLevel(LLGLTexture::LOCAL) ;
gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mImage->setLoadedCallback(LLBumpImageList::onSourceStandardLoaded, 0, TRUE, FALSE, NULL, NULL );
- gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mImage->forceToSaveRawImage(0) ;
+ gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mImage->forceToSaveRawImage(0, 30.f) ;
LLStandardBumpmap::sStandardBumpmapCount++;
}
diff --git a/indra/newview/llfilepicker.cpp b/indra/newview/llfilepicker.cpp
index 16eacc9392..057acf69b9 100755
--- a/indra/newview/llfilepicker.cpp
+++ b/indra/newview/llfilepicker.cpp
@@ -570,6 +570,7 @@ std::vector<std::string>* LLFilePicker::navOpenFilterProc(ELoadFilter filter) //
allowedv->push_back("lsl");
allowedv->push_back("dic");
allowedv->push_back("xcu");
+ allowedv->push_back("gif");
case FFLOAD_IMAGE:
allowedv->push_back("jpg");
allowedv->push_back("jpeg");
@@ -661,7 +662,7 @@ bool LLFilePicker::doNavSaveDialog(ESaveFilter filter, const std::string& filena
case FFSAVE_TGAPNG:
type = "PNG";
creator = "prvw";
- extension = "png";
+ extension = "png,tga";
break;
case FFSAVE_BMP:
type = "BMPf";
@@ -779,7 +780,7 @@ BOOL LLFilePicker::getOpenFile(ELoadFilter filter, bool blocking)
if(filter == FFLOAD_ALL) // allow application bundles etc. to be traversed; important for DEV-16869, but generally useful
{
- mPickOptions &= F_NAV_SUPPORT;
+ mPickOptions |= F_NAV_SUPPORT;
}
if (blocking)
diff --git a/indra/newview/llfilepicker_mac.mm b/indra/newview/llfilepicker_mac.mm
index 13757904e3..1438e4dc0a 100644
--- a/indra/newview/llfilepicker_mac.mm
+++ b/indra/newview/llfilepicker_mac.mm
@@ -107,7 +107,7 @@ std::string* doSaveDialog(const std::string* file,
NSSavePanel *panel = [NSSavePanel savePanel];
NSString *extensionns = [NSString stringWithCString:extension->c_str() encoding:[NSString defaultCStringEncoding]];
- NSArray *fileType = [[NSArray alloc] initWithObjects:extensionns,nil];
+ NSArray *fileType = [extensionns componentsSeparatedByString:@","];
//[panel setMessage:@"Save Image File"];
[panel setTreatsFilePackagesAsDirectories: ( flags & F_NAV_SUPPORT ) ];
diff --git a/indra/newview/llfloateravatarpicker.cpp b/indra/newview/llfloateravatarpicker.cpp
index c0afb72cff..1b0e73409b 100755
--- a/indra/newview/llfloateravatarpicker.cpp
+++ b/indra/newview/llfloateravatarpicker.cpp
@@ -795,7 +795,7 @@ bool LLFloaterAvatarPicker::isSelectBtnEnabled()
{
bool ret_val = visibleItemsSelected();
- if ( ret_val && mOkButtonValidateSignal.num_slots() )
+ if ( ret_val )
{
std::string acvtive_panel_name;
LLScrollListCtrl* list = NULL;
@@ -826,7 +826,7 @@ bool LLFloaterAvatarPicker::isSelectBtnEnabled()
getSelectedAvatarData(list, avatar_ids, avatar_names);
if (avatar_ids.size() >= 1)
{
- ret_val = mOkButtonValidateSignal(avatar_ids);
+ ret_val = mOkButtonValidateSignal.num_slots()?mOkButtonValidateSignal(avatar_ids):true;
}
else
{
diff --git a/indra/newview/llfloatercolorpicker.cpp b/indra/newview/llfloatercolorpicker.cpp
index a03425649f..7ba7660f19 100755
--- a/indra/newview/llfloatercolorpicker.cpp
+++ b/indra/newview/llfloatercolorpicker.cpp
@@ -347,6 +347,11 @@ void LLFloaterColorPicker::setCurRgb ( F32 curRIn, F32 curGIn, F32 curBIn )
curG = curGIn;
curB = curBIn;
+ if (mApplyImmediateCheck->get())
+ {
+ LLColorSwatchCtrl::onColorChanged ( getSwatch (), LLColorSwatchCtrl::COLOR_CHANGE );
+ }
+
// update corresponding HSL values and
LLColor3(curRIn, curGIn, curBIn).calcHSL(&curH, &curS, &curL);
@@ -374,6 +379,11 @@ void LLFloaterColorPicker::setCurHsl ( F32 curHIn, F32 curSIn, F32 curLIn )
// update corresponding RGB values and
hslToRgb ( curH, curS, curL, curR, curG, curB );
+
+ if (mApplyImmediateCheck->get())
+ {
+ LLColorSwatchCtrl::onColorChanged ( getSwatch (), LLColorSwatchCtrl::COLOR_CHANGE );
+ }
}
//////////////////////////////////////////////////////////////////////////////
@@ -463,10 +473,6 @@ void LLFloaterColorPicker::onImmediateCheck( LLUICtrl* ctrl, void* data)
void LLFloaterColorPicker::onColorSelect( const LLTextureEntry& te )
{
setCurRgb(te.getColor().mV[VRED], te.getColor().mV[VGREEN], te.getColor().mV[VBLUE]);
- if (mApplyImmediateCheck->get())
- {
- LLColorSwatchCtrl::onColorChanged ( getSwatch (), LLColorSwatchCtrl::COLOR_CHANGE );
- }
}
void LLFloaterColorPicker::onMouseCaptureLost()
diff --git a/indra/newview/llfloaterconversationpreview.cpp b/indra/newview/llfloaterconversationpreview.cpp
index a303c2c6b3..a358b7c10b 100755
--- a/indra/newview/llfloaterconversationpreview.cpp
+++ b/indra/newview/llfloaterconversationpreview.cpp
@@ -32,6 +32,7 @@
#include "llfloaterimnearbychat.h"
#include "llspinctrl.h"
#include "lltrans.h"
+#include "llnotificationsutil.h"
const std::string LL_FCP_COMPLETE_NAME("complete_name");
const std::string LL_FCP_ACCOUNT_NAME("user_name");
@@ -45,14 +46,20 @@ LLFloaterConversationPreview::LLFloaterConversationPreview(const LLSD& session_i
mAccountName(session_id[LL_FCP_ACCOUNT_NAME]),
mCompleteName(session_id[LL_FCP_COMPLETE_NAME]),
mMutex(NULL),
- mShowHistory(false)
+ mShowHistory(false),
+ mMessages(NULL),
+ mHistoryThreadsBusy(false),
+ mOpened(false)
+{
+}
+
+LLFloaterConversationPreview::~LLFloaterConversationPreview()
{
}
BOOL LLFloaterConversationPreview::postBuild()
{
mChatHistory = getChild<LLChatHistory>("chat_history");
- LLLoadHistoryThread::setLoadEndSignal(boost::bind(&LLFloaterConversationPreview::setPages, this, _1, _2));
const LLConversation* conv = LLConversationLog::instance().getConversation(mSessionID);
std::string name;
@@ -79,31 +86,21 @@ BOOL LLFloaterConversationPreview::postBuild()
std::string title = getString("Title", args);
setTitle(title);
- LLSD load_params;
- load_params["load_all_history"] = true;
- load_params["cut_off_todays_date"] = false;
-
-
- LLSD loading;
- loading[LL_IM_TEXT] = LLTrans::getString("loading_chat_logs");
- mMessages.push_back(loading);
- mPageSpinner = getChild<LLSpinCtrl>("history_page_spin");
- mPageSpinner->setCommitCallback(boost::bind(&LLFloaterConversationPreview::onMoreHistoryBtnClick, this));
- mPageSpinner->setMinValue(1);
- mPageSpinner->set(1);
- mPageSpinner->setEnabled(false);
- LLLogChat::startChatHistoryThread(file, load_params);
return LLFloater::postBuild();
}
-void LLFloaterConversationPreview::setPages(std::list<LLSD>& messages,const std::string& file_name)
+void LLFloaterConversationPreview::setPages(std::list<LLSD>* messages, const std::string& file_name)
{
- if(file_name == mChatHistoryFileName)
+ if(file_name == mChatHistoryFileName && messages)
{
// additional protection to avoid changes of mMessages in setPages()
LLMutexLock lock(&mMutex);
+ if (mMessages)
+ {
+ delete mMessages; // Clean up temporary message list with "Loading..." text
+ }
mMessages = messages;
- mCurrentPage = (mMessages.size() ? (mMessages.size() - 1) / mPageSize : 0);
+ mCurrentPage = (mMessages->size() ? (mMessages->size() - 1) / mPageSize : 0);
mPageSpinner->setEnabled(true);
mPageSpinner->setMaxValue(mCurrentPage+1);
@@ -113,6 +110,11 @@ void LLFloaterConversationPreview::setPages(std::list<LLSD>& messages,const std:
getChild<LLTextBox>("page_num_label")->setValue(total_page_num);
mShowHistory = true;
}
+ LLLoadHistoryThread* loadThread = LLLogChat::getLoadHistoryThread(mSessionID);
+ if (loadThread)
+ {
+ loadThread->removeLoadEndSignal(boost::bind(&LLFloaterConversationPreview::setPages, this, _1, _2));
+ }
}
void LLFloaterConversationPreview::draw()
@@ -127,24 +129,82 @@ void LLFloaterConversationPreview::draw()
void LLFloaterConversationPreview::onOpen(const LLSD& key)
{
+ if (mOpened)
+ {
+ return;
+ }
+ mOpened = true;
+ if (!LLLogChat::historyThreadsFinished(mSessionID))
+ {
+ LLNotificationsUtil::add("ChatHistoryIsBusyAlert");
+ mHistoryThreadsBusy = true;
+ closeFloater();
+ return;
+ }
+ LLSD load_params;
+ load_params["load_all_history"] = true;
+ load_params["cut_off_todays_date"] = false;
+
+ // The temporary message list with "Loading..." text
+ // Will be deleted upon loading completion in setPages() method
+ mMessages = new std::list<LLSD>();
+
+
+ LLSD loading;
+ loading[LL_IM_TEXT] = LLTrans::getString("loading_chat_logs");
+ mMessages->push_back(loading);
+ mPageSpinner = getChild<LLSpinCtrl>("history_page_spin");
+ mPageSpinner->setCommitCallback(boost::bind(&LLFloaterConversationPreview::onMoreHistoryBtnClick, this));
+ mPageSpinner->setMinValue(1);
+ mPageSpinner->set(1);
+ mPageSpinner->setEnabled(false);
+
+ // The actual message list to load from file
+ // Will be deleted in a separate thread LLDeleteHistoryThread not to freeze UI
+ // LLDeleteHistoryThread is started in destructor
+ std::list<LLSD>* messages = new std::list<LLSD>();
+
+ LLLogChat::cleanupHistoryThreads();
+
+ LLLoadHistoryThread* loadThread = new LLLoadHistoryThread(mChatHistoryFileName, messages, load_params);
+ loadThread->setLoadEndSignal(boost::bind(&LLFloaterConversationPreview::setPages, this, _1, _2));
+ loadThread->start();
+ LLLogChat::addLoadHistoryThread(mSessionID, loadThread);
+
+ LLDeleteHistoryThread* deleteThread = new LLDeleteHistoryThread(messages, loadThread);
+ LLLogChat::addDeleteHistoryThread(mSessionID, deleteThread);
+
mShowHistory = true;
}
+void LLFloaterConversationPreview::onClose(bool app_quitting)
+{
+ mOpened = false;
+ if (!mHistoryThreadsBusy)
+ {
+ LLDeleteHistoryThread* deleteThread = LLLogChat::getDeleteHistoryThread(mSessionID);
+ if (deleteThread)
+ {
+ deleteThread->start();
+ }
+ }
+}
+
void LLFloaterConversationPreview::showHistory()
{
// additional protection to avoid changes of mMessages in setPages
LLMutexLock lock(&mMutex);
- if (!mMessages.size() || mCurrentPage * mPageSize >= mMessages.size())
+ if(mMessages == NULL || !mMessages->size() || mCurrentPage * mPageSize >= mMessages->size())
{
return;
}
mChatHistory->clear();
std::ostringstream message;
- std::list<LLSD>::const_iterator iter = mMessages.begin();
+ std::list<LLSD>::const_iterator iter = mMessages->begin();
std::advance(iter, mCurrentPage * mPageSize);
- for (int msg_num = 0; iter != mMessages.end() && msg_num < mPageSize; ++iter, ++msg_num)
+ for (int msg_num = 0; iter != mMessages->end() && msg_num < mPageSize; ++iter, ++msg_num)
{
LLSD msg = *iter;
diff --git a/indra/newview/llfloaterconversationpreview.h b/indra/newview/llfloaterconversationpreview.h
index b0488f4ff1..a8dbbc9ffe 100755
--- a/indra/newview/llfloaterconversationpreview.h
+++ b/indra/newview/llfloaterconversationpreview.h
@@ -39,13 +39,14 @@ class LLFloaterConversationPreview : public LLFloater
public:
LLFloaterConversationPreview(const LLSD& session_id);
- virtual ~LLFloaterConversationPreview(){};
+ virtual ~LLFloaterConversationPreview();
virtual BOOL postBuild();
- void setPages(std::list<LLSD>& messages,const std::string& file_name);
+ void setPages(std::list<LLSD>* messages,const std::string& file_name);
virtual void draw();
virtual void onOpen(const LLSD& key);
+ virtual void onClose(bool app_quitting);
private:
void onMoreHistoryBtnClick();
@@ -58,11 +59,13 @@ private:
int mCurrentPage;
int mPageSize;
- std::list<LLSD> mMessages;
+ std::list<LLSD>* mMessages;
std::string mAccountName;
std::string mCompleteName;
- std::string mChatHistoryFileName;
+ std::string mChatHistoryFileName;
bool mShowHistory;
+ bool mHistoryThreadsBusy;
+ bool mOpened;
};
#endif /* LLFLOATERCONVERSATIONPREVIEW_H_ */
diff --git a/indra/newview/llfloaterhardwaresettings.cpp b/indra/newview/llfloaterhardwaresettings.cpp
index 792a2a5d25..6923308ce9 100755
--- a/indra/newview/llfloaterhardwaresettings.cpp
+++ b/indra/newview/llfloaterhardwaresettings.cpp
@@ -87,15 +87,30 @@ void LLFloaterHardwareSettings::refresh()
refreshEnabledState();
}
+void LLFloaterHardwareSettings::onSetVRAM()
+{
+ S32 vram = childGetValue("GraphicsCardTextureMemory").asInteger();
+
+ //give the texture system plenty of leeway to avoid swapping
+ vram /= 3;
+
+ gSavedSettings.setS32("TextureMemory", vram);
+}
+
void LLFloaterHardwareSettings::refreshEnabledState()
{
F32 mem_multiplier = gSavedSettings.getF32("RenderTextureMemoryMultiple");
S32 min_tex_mem = LLViewerTextureList::getMinVideoRamSetting();
- S32 max_tex_mem = LLViewerTextureList::getMaxVideoRamSetting(false, mem_multiplier);
+ S32 max_tex_mem = LLViewerTextureList::getMaxVideoRamSetting(true, mem_multiplier);
getChild<LLSliderCtrl>("GraphicsCardTextureMemory")->setMinValue(min_tex_mem);
getChild<LLSliderCtrl>("GraphicsCardTextureMemory")->setMaxValue(max_tex_mem);
+ S32 vram = gSavedSettings.getS32("TextureMemory");
+ vram = vram*3;
+
+ getChild<LLSliderCtrl>("GraphicsCardTextureMemory")->setValue(vram);
+ getChild<LLSliderCtrl>("GraphicsCardTextureMemory")->setCommitCallback(boost::bind(&LLFloaterHardwareSettings::onSetVRAM, this));
if (!LLFeatureManager::getInstance()->isFeatureAvailable("RenderVBOEnable") ||
!gGLManager.mHasVertexBufferObject)
{
diff --git a/indra/newview/llfloaterhardwaresettings.h b/indra/newview/llfloaterhardwaresettings.h
index 626771b1d2..63d86d5667 100755
--- a/indra/newview/llfloaterhardwaresettings.h
+++ b/indra/newview/llfloaterhardwaresettings.h
@@ -64,6 +64,8 @@ public:
/// don't apply the changed values
void cancel();
+ void onSetVRAM();
+
/// refresh the enabled values
void refreshEnabledState();
diff --git a/indra/newview/llfloaterimcontainer.cpp b/indra/newview/llfloaterimcontainer.cpp
index 566f9bc9cc..bb4b9d2d40 100755
--- a/indra/newview/llfloaterimcontainer.cpp
+++ b/indra/newview/llfloaterimcontainer.cpp
@@ -1318,7 +1318,12 @@ bool LLFloaterIMContainer::enableContextMenuItem(const std::string& item, uuid_v
// Extract the single select info
bool is_single_select = (uuids.size() == 1);
const LLUUID& single_id = uuids.front();
-
+
+ if ("can_chat_history" == item && is_single_select)
+ {
+ return LLLogChat::isTranscriptExist(uuids.front(),false);
+ }
+
// Handle options that are applicable to all including the user agent
if ("can_view_profile" == item)
{
diff --git a/indra/newview/llfloaterimsession.cpp b/indra/newview/llfloaterimsession.cpp
index 84921849d0..d94dd85bce 100755
--- a/indra/newview/llfloaterimsession.cpp
+++ b/indra/newview/llfloaterimsession.cpp
@@ -714,7 +714,7 @@ void LLFloaterIMSession::setVisible(BOOL visible)
if (visible && isInVisibleChain())
{
sIMFloaterShowedSignal(mSessionID);
-
+ updateMessages();
}
}
diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index b16ef6dd79..d79eee6be3 100755
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp