diff options
Diffstat (limited to 'linden/indra/newview')
40 files changed, 1666 insertions, 1356 deletions
diff --git a/linden/indra/newview/app_settings/keywords.ini b/linden/indra/newview/app_settings/keywords.ini index 3679c38..2a911ba 100644 --- a/linden/indra/newview/app_settings/keywords.ini +++ b/linden/indra/newview/app_settings/keywords.ini | |||
@@ -533,7 +533,6 @@ SQRT2 1.4142135623730950488016887242097 | |||
533 | ZERO_VECTOR <0.0, 0.0, 0.0> | 533 | ZERO_VECTOR <0.0, 0.0, 0.0> |
534 | ZERO_ROTATION <0.0, 0.0, 0.0, 1.0> | 534 | ZERO_ROTATION <0.0, 0.0, 0.0, 1.0> |
535 | 535 | ||
536 | |||
537 | # flow control keywords | 536 | # flow control keywords |
538 | [word 0, 0, .8] | 537 | [word 0, 0, .8] |
539 | for for loop:for (initializer; test; iteration):{: statements:} | 538 | for for loop:for (initializer; test; iteration):{: statements:} |
@@ -551,9 +550,11 @@ return Leave current function or event handler | |||
551 | # Comment | 550 | # Comment |
552 | [one_sided_delimiter .8, .3, .15] | 551 | [one_sided_delimiter .8, .3, .15] |
553 | // Comment:Non-functional commentary or disabled code | 552 | // Comment:Non-functional commentary or disabled code |
553 | [two_sided_delimiter .8, .3, .15] | ||
554 | /* */ Comment:Non-functional commentary or disabled code | ||
554 | 555 | ||
555 | # String literals | 556 | # String literals |
556 | [two_sided_delimiter 0, .2, 0] | 557 | [two_sided_delimiter_esc 0, .2, 0] |
557 | " String literal | 558 | " " String literal |
558 | 559 | ||
559 | #functions are supplied by the program now. | 560 | #functions are supplied by the program now. \ No newline at end of file |
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml index 7e591bf..01f6add 100644 --- a/linden/indra/newview/app_settings/settings.xml +++ b/linden/indra/newview/app_settings/settings.xml | |||
@@ -1849,17 +1849,6 @@ | |||
1849 | <integer>0</integer> | 1849 | <integer>0</integer> |
1850 | </array> | 1850 | </array> |
1851 | </map> | 1851 | </map> |
1852 | <key>CompressSnapshotsToDisk</key> | ||
1853 | <map> | ||
1854 | <key>Comment</key> | ||
1855 | <string>Compress snapshots saved to disk (Using JPEG 2000)</string> | ||
1856 | <key>Persist</key> | ||
1857 | <integer>1</integer> | ||
1858 | <key>Type</key> | ||
1859 | <string>Boolean</string> | ||
1860 | <key>Value</key> | ||
1861 | <integer>0</integer> | ||
1862 | </map> | ||
1863 | <key>ConnectAsGod</key> | 1852 | <key>ConnectAsGod</key> |
1864 | <map> | 1853 | <map> |
1865 | <key>Comment</key> | 1854 | <key>Comment</key> |
@@ -4387,7 +4376,7 @@ | |||
4387 | <key>Type</key> | 4376 | <key>Type</key> |
4388 | <string>Boolean</string> | 4377 | <string>Boolean</string> |
4389 | <key>Value</key> | 4378 | <key>Value</key> |
4390 | <integer>0</integer> | 4379 | <integer>1</integer> |
4391 | </map> | 4380 | </map> |
4392 | <key>LipSyncOoh</key> | 4381 | <key>LipSyncOoh</key> |
4393 | <map> | 4382 | <map> |
@@ -4730,6 +4719,17 @@ | |||
4730 | <key>Value</key> | 4719 | <key>Value</key> |
4731 | <integer>1</integer> | 4720 | <integer>1</integer> |
4732 | </map> | 4721 | </map> |
4722 | <key>MiniMapTeleport</key> | ||
4723 | <map> | ||
4724 | <key>Comment</key> | ||
4725 | <string>Teleport on Mini-Map double click </string> | ||
4726 | <key>Persist</key> | ||
4727 | <integer>1</integer> | ||
4728 | <key>Type</key> | ||
4729 | <string>Boolean</string> | ||
4730 | <key>Value</key> | ||
4731 | <integer>1</integer> | ||
4732 | </map> | ||
4733 | <key>MiniMapScale</key> | 4733 | <key>MiniMapScale</key> |
4734 | <map> | 4734 | <map> |
4735 | <key>Comment</key> | 4735 | <key>Comment</key> |
diff --git a/linden/indra/newview/llappviewer.cpp b/linden/indra/newview/llappviewer.cpp index 2cf418e..9e68078 100644 --- a/linden/indra/newview/llappviewer.cpp +++ b/linden/indra/newview/llappviewer.cpp | |||
@@ -109,6 +109,7 @@ | |||
109 | #include "llpostprocess.h" | 109 | #include "llpostprocess.h" |
110 | #include "llwlparammanager.h" | 110 | #include "llwlparammanager.h" |
111 | #include "llwaterparammanager.h" | 111 | #include "llwaterparammanager.h" |
112 | #include "llcalc.h" | ||
112 | 113 | ||
113 | #include "lldebugview.h" | 114 | #include "lldebugview.h" |
114 | #include "llconsole.h" | 115 | #include "llconsole.h" |
@@ -1176,6 +1177,8 @@ bool LLAppViewer::cleanup() | |||
1176 | LLNotifyBox::cleanup(); | 1177 | LLNotifyBox::cleanup(); |
1177 | 1178 | ||
1178 | LLWorldMap::getInstance()->reset(); // release any images | 1179 | LLWorldMap::getInstance()->reset(); // release any images |
1180 | |||
1181 | LLCalc::cleanUp(); | ||
1179 | 1182 | ||
1180 | llinfos << "Global stuff deleted" << llendflush; | 1183 | llinfos << "Global stuff deleted" << llendflush; |
1181 | 1184 | ||
@@ -1602,7 +1605,7 @@ bool LLAppViewer::initConfiguration() | |||
1602 | 1605 | ||
1603 | // - set procedural settings | 1606 | // - set procedural settings |
1604 | gSavedSettings.setString("ClientSettingsFile", | 1607 | gSavedSettings.setString("ClientSettingsFile", |
1605 | gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, getSettingsFileName("Global"))); | 1608 | gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "settings_imprudence.xml")); |
1606 | 1609 | ||
1607 | gSavedSettings.setString("VersionChannelName", IMP_VIEWER_NAME); | 1610 | gSavedSettings.setString("VersionChannelName", IMP_VIEWER_NAME); |
1608 | 1611 | ||
diff --git a/linden/indra/newview/llfloatersnapshot.cpp b/linden/indra/newview/llfloatersnapshot.cpp index 954bf9f..6e66103 100644 --- a/linden/indra/newview/llfloatersnapshot.cpp +++ b/linden/indra/newview/llfloatersnapshot.cpp | |||
@@ -992,6 +992,7 @@ public: | |||
992 | static void onClickLess(void* data) ; | 992 | static void onClickLess(void* data) ; |
993 | static void onClickMore(void* data) ; | 993 | static void onClickMore(void* data) ; |
994 | static void onClickUICheck(LLUICtrl *ctrl, void* data); | 994 | static void onClickUICheck(LLUICtrl *ctrl, void* data); |
995 | static void onClickHighResCheck(LLUICtrl *ctrl, void* data); | ||
995 | static void onClickHUDCheck(LLUICtrl *ctrl, void* data); | 996 | static void onClickHUDCheck(LLUICtrl *ctrl, void* data); |
996 | static void onClickKeepOpenCheck(LLUICtrl *ctrl, void* data); | 997 | static void onClickKeepOpenCheck(LLUICtrl *ctrl, void* data); |
997 | static void onClickKeepAspectCheck(LLUICtrl *ctrl, void* data); | 998 | static void onClickKeepAspectCheck(LLUICtrl *ctrl, void* data); |
@@ -1105,6 +1106,10 @@ void LLFloaterSnapshot::Impl::updateLayout(LLFloaterSnapshot* floaterp) | |||
1105 | { | 1106 | { |
1106 | LLSnapshotLivePreview* previewp = getPreviewView(floaterp); | 1107 | LLSnapshotLivePreview* previewp = getPreviewView(floaterp); |
1107 | 1108 | ||
1109 | LLSnapshotLivePreview::ESnapshotType shot_type = getTypeIndex(floaterp); | ||
1110 | if (shot_type != LLSnapshotLivePreview::SNAPSHOT_LOCAL) | ||
1111 | gSavedSettings.setBOOL("HighResSnapshot", FALSE); | ||
1112 | |||
1108 | S32 delta_height = gSavedSettings.getBOOL("AdvanceSnapshot") ? 0 : floaterp->getUIWinHeightShort() - floaterp->getUIWinHeightLong() ; | 1113 | S32 delta_height = gSavedSettings.getBOOL("AdvanceSnapshot") ? 0 : floaterp->getUIWinHeightShort() - floaterp->getUIWinHeightLong() ; |
1109 | 1114 | ||
1110 | LLComboBox* combo; | 1115 | LLComboBox* combo; |
@@ -1234,6 +1239,7 @@ void LLFloaterSnapshot::Impl::updateControls(LLFloaterSnapshot* floater) | |||
1234 | floater->childSetVisible("snapshot_height", is_advance); | 1239 | floater->childSetVisible("snapshot_height", is_advance); |
1235 | floater->childSetVisible("keep_aspect_check", is_advance); | 1240 | floater->childSetVisible("keep_aspect_check", is_advance); |
1236 | floater->childSetVisible("ui_check", is_advance); | 1241 | floater->childSetVisible("ui_check", is_advance); |
1242 | floater->childSetVisible("high_res_check", is_advance && is_local); | ||
1237 | floater->childSetVisible("hud_check", is_advance); | 1243 | floater->childSetVisible("hud_check", is_advance); |
1238 | floater->childSetVisible("keep_open_check", is_advance); | 1244 | floater->childSetVisible("keep_open_check", is_advance); |
1239 | floater->childSetVisible("freeze_frame_check", is_advance); | 1245 | floater->childSetVisible("freeze_frame_check", is_advance); |
@@ -1246,7 +1252,7 @@ void LLFloaterSnapshot::Impl::updateControls(LLFloaterSnapshot* floater) | |||
1246 | layer_type = LLViewerWindow::SNAPSHOT_TYPE_COLOR; | 1252 | layer_type = LLViewerWindow::SNAPSHOT_TYPE_COLOR; |
1247 | floater->childSetValue("layer_types", "colors"); | 1253 | floater->childSetValue("layer_types", "colors"); |
1248 | if(is_advance) | 1254 | if(is_advance) |
1249 | { | 1255 | { |
1250 | setResolution(floater, "postcard_size_combo"); | 1256 | setResolution(floater, "postcard_size_combo"); |
1251 | } | 1257 | } |
1252 | break; | 1258 | break; |
@@ -1434,7 +1440,26 @@ void LLFloaterSnapshot::Impl::onClickUICheck(LLUICtrl *ctrl, void* data) | |||
1434 | 1440 | ||
1435 | LLFloaterSnapshot *view = (LLFloaterSnapshot *)data; | 1441 | LLFloaterSnapshot *view = (LLFloaterSnapshot *)data; |
1436 | if (view) | 1442 | if (view) |
1443 | { | ||
1444 | BOOL high_res_snapshot = gSavedSettings.getBOOL("HighResSnapshot"); | ||
1445 | if (high_res_snapshot) gSavedSettings.setBOOL("HighResSnapshot", FALSE); | ||
1446 | view->childSetEnabled("high_res_check", !check->get()); | ||
1447 | checkAutoSnapshot(getPreviewView(view), TRUE); | ||
1448 | } | ||
1449 | } | ||
1450 | |||
1451 | // static | ||
1452 | void LLFloaterSnapshot::Impl::onClickHighResCheck(LLUICtrl *ctrl, void* data) | ||
1453 | { | ||
1454 | LLCheckBoxCtrl *check = (LLCheckBoxCtrl *)ctrl; | ||
1455 | gSavedSettings.setBOOL( "HighResSnapshot", check->get() ); | ||
1456 | |||
1457 | LLFloaterSnapshot *view = (LLFloaterSnapshot *)data; | ||
1458 | if (view) | ||
1437 | { | 1459 | { |
1460 | BOOL ui_in_snapshot = gSavedSettings.getBOOL("RenderUIInSnapshot"); | ||
1461 | if (ui_in_snapshot) gSavedSettings.setBOOL("RenderUIInSnapshot", FALSE); | ||
1462 | view->childSetEnabled("ui_check", !check->get()); | ||
1438 | checkAutoSnapshot(getPreviewView(view), TRUE); | 1463 | checkAutoSnapshot(getPreviewView(view), TRUE); |
1439 | } | 1464 | } |
1440 | } | 1465 | } |
@@ -1912,6 +1937,9 @@ BOOL LLFloaterSnapshot::postBuild() | |||
1912 | 1937 | ||
1913 | childSetCommitCallback("ui_check", Impl::onClickUICheck, this); | 1938 | childSetCommitCallback("ui_check", Impl::onClickUICheck, this); |
1914 | 1939 | ||
1940 | childSetCommitCallback("high_res_check", Impl::onClickHighResCheck, this); | ||
1941 | childSetValue("high_res_check", gSavedSettings.getBOOL("HighResSnapshot")); | ||
1942 | |||
1915 | childSetCommitCallback("hud_check", Impl::onClickHUDCheck, this); | 1943 | childSetCommitCallback("hud_check", Impl::onClickHUDCheck, this); |
1916 | childSetValue("hud_check", gSavedSettings.getBOOL("RenderHUDInSnapshot")); | 1944 | childSetValue("hud_check", gSavedSettings.getBOOL("RenderHUDInSnapshot")); |
1917 | 1945 | ||
@@ -2001,8 +2029,23 @@ void LLFloaterSnapshot::draw() | |||
2001 | childSetEnabled("send_btn", FALSE); | 2029 | childSetEnabled("send_btn", FALSE); |
2002 | childSetEnabled("save_btn", FALSE); | 2030 | childSetEnabled("save_btn", FALSE); |
2003 | } | 2031 | } |
2004 | 2032 | ||
2005 | BOOL ui_in_snapshot = gSavedSettings.getBOOL("RenderUIInSnapshot"); | 2033 | BOOL ui_in_snapshot = gSavedSettings.getBOOL("RenderUIInSnapshot"); |
2034 | |||
2035 | if (previewp->getSnapshotType() != LLSnapshotLivePreview::SNAPSHOT_LOCAL) | ||
2036 | { | ||
2037 | childSetValue("high_res_check", FALSE); | ||
2038 | childSetEnabled("ui_check", TRUE); | ||
2039 | } | ||
2040 | else | ||
2041 | { | ||
2042 | if (ui_in_snapshot) | ||
2043 | { | ||
2044 | gSavedSettings.setBOOL("HighResSnapshot", FALSE); | ||
2045 | childSetEnabled("high_res_check", FALSE); | ||
2046 | } | ||
2047 | } | ||
2048 | |||
2006 | childSetValue("ui_check", ui_in_snapshot); | 2049 | childSetValue("ui_check", ui_in_snapshot); |
2007 | childSetToolTip("ui_check", std::string("If selected shows the UI in the snapshot")); | 2050 | childSetToolTip("ui_check", std::string("If selected shows the UI in the snapshot")); |
2008 | } | 2051 | } |
diff --git a/linden/indra/newview/llfloaterworldmap.cpp b/linden/indra/newview/llfloaterworldmap.cpp index b56bfcb..8396454 100644 --- a/linden/indra/newview/llfloaterworldmap.cpp +++ b/linden/indra/newview/llfloaterworldmap.cpp | |||
@@ -743,7 +743,7 @@ void LLFloaterWorldMap::updateLocation() | |||
743 | void LLFloaterWorldMap::trackURL(const std::string& region_name, S32 x_coord, S32 y_coord, S32 z_coord) | 743 | void LLFloaterWorldMap::trackURL(const std::string& region_name, S32 x_coord, S32 y_coord, S32 z_coord) |
744 | { | 744 | { |
745 | LLSimInfo* sim_info = LLWorldMap::getInstance()->simInfoFromName(region_name); | 745 | LLSimInfo* sim_info = LLWorldMap::getInstance()->simInfoFromName(region_name); |
746 | z_coord = llclamp(z_coord, 0, 1000); | 746 | z_coord = llclamp(z_coord, 0, 4096); |
747 | if (sim_info) | 747 | if (sim_info) |
748 | { | 748 | { |
749 | LLVector3 local_pos; | 749 | LLVector3 local_pos; |
diff --git a/linden/indra/newview/llinventorybridge.cpp b/linden/indra/newview/llinventorybridge.cpp index bde36cc..34277f7 100644 --- a/linden/indra/newview/llinventorybridge.cpp +++ b/linden/indra/newview/llinventorybridge.cpp | |||
@@ -756,6 +756,10 @@ void LLItemBridge::performAction(LLFolderView* folder, LLInventoryModel* model, | |||
756 | model->deleteObject(mUUID); | 756 | model->deleteObject(mUUID); |
757 | model->notifyObservers(); | 757 | model->notifyObservers(); |
758 | } | 758 | } |
759 | else if ("restoreToWorld" == action) | ||
760 | { | ||
761 | restoreToWorld(); | ||
762 | } | ||
759 | else if ("restore" == action) | 763 | else if ("restore" == action) |
760 | { | 764 | { |
761 | restoreItem(); | 765 | restoreItem(); |
@@ -812,6 +816,47 @@ void LLItemBridge::restoreItem() | |||
812 | } | 816 | } |
813 | } | 817 | } |
814 | 818 | ||
819 | void LLItemBridge::restoreToWorld() | ||
820 | { | ||
821 | LLViewerInventoryItem* itemp = (LLViewerInventoryItem*)getItem(); | ||
822 | if (itemp) | ||
823 | { | ||
824 | LLMessageSystem* msg = gMessageSystem; | ||
825 | msg->newMessage("RezRestoreToWorld"); | ||
826 | msg->nextBlockFast(_PREHASH_AgentData); | ||
827 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | ||
828 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | ||
829 | |||
830 | msg->nextBlockFast(_PREHASH_InventoryData); | ||
831 | itemp->packMessage(msg); | ||
832 | msg->sendReliable(gAgent.getRegion()->getHost()); | ||
833 | } | ||
834 | |||
835 | //Similar functionality to the drag and drop rez logic | ||
836 | BOOL remove_from_inventory = FALSE; | ||
837 | |||
838 | //remove local inventory copy, sim will deal with permissions and removing the item | ||
839 | //from the actual inventory if its a no-copy etc | ||
840 | if(!itemp->getPermissions().allowCopyBy(gAgent.getID())) | ||
841 | { | ||
842 | remove_from_inventory = TRUE; | ||
843 | } | ||
844 | |||
845 | // Check if it's in the trash. (again similar to the normal rez logic) | ||
846 | LLUUID trash_id; | ||
847 | trash_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_TRASH); | ||
848 | if(gInventory.isObjectDescendentOf(itemp->getUUID(), trash_id)) | ||
849 | { | ||
850 | remove_from_inventory = TRUE; | ||
851 | } | ||
852 | |||
853 | if(remove_from_inventory) | ||
854 | { | ||
855 | gInventory.deleteObject(itemp->getUUID()); | ||
856 | gInventory.notifyObservers(); | ||
857 | } | ||
858 | } | ||
859 | |||
815 | LLUIImagePtr LLItemBridge::getIcon() const | 860 | LLUIImagePtr LLItemBridge::getIcon() const |
816 | { | 861 | { |
817 | return LLUI::getUIImage(ICON_NAME[OBJECT_ICON_NAME]); | 862 | return LLUI::getUIImage(ICON_NAME[OBJECT_ICON_NAME]); |
@@ -3376,6 +3421,7 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags) | |||
3376 | items.push_back(std::string("Object Wear")); | 3421 | items.push_back(std::string("Object Wear")); |
3377 | items.push_back(std::string("Attach To")); | 3422 | items.push_back(std::string("Attach To")); |
3378 | items.push_back(std::string("Attach To HUD")); | 3423 | items.push_back(std::string("Attach To HUD")); |
3424 | items.push_back(std::string("Restore to Last Position")); | ||
3379 | 3425 | ||
3380 | LLMenuGL* attach_menu = menu.getChildMenuByName("Attach To", TRUE); | 3426 | LLMenuGL* attach_menu = menu.getChildMenuByName("Attach To", TRUE); |
3381 | LLMenuGL* attach_hud_menu = menu.getChildMenuByName("Attach To HUD", TRUE); | 3427 | LLMenuGL* attach_hud_menu = menu.getChildMenuByName("Attach To HUD", TRUE); |
@@ -4364,7 +4410,6 @@ void LLWearableBridge::buildContextMenu(LLMenuGL& menu, U32 flags) | |||
4364 | items.push_back(std::string("Wearable Wear")); | 4410 | items.push_back(std::string("Wearable Wear")); |
4365 | items.push_back(std::string("Wearable Edit")); | 4411 | items.push_back(std::string("Wearable Edit")); |
4366 | 4412 | ||
4367 | |||
4368 | if ((flags & FIRST_SELECTED_ITEM) == 0) | 4413 | if ((flags & FIRST_SELECTED_ITEM) == 0) |
4369 | { | 4414 | { |
4370 | disabled_items.push_back(std::string("Wearable Edit")); | 4415 | disabled_items.push_back(std::string("Wearable Edit")); |
diff --git a/linden/indra/newview/llinventorybridge.h b/linden/indra/newview/llinventorybridge.h index 329e57f..eb17432 100644 --- a/linden/indra/newview/llinventorybridge.h +++ b/linden/indra/newview/llinventorybridge.h | |||
@@ -159,6 +159,7 @@ public: | |||
159 | 159 | ||
160 | virtual const std::string& getPrefix() { return LLStringUtil::null; } | 160 | virtual const std::string& getPrefix() { return LLStringUtil::null; } |
161 | virtual void restoreItem() {} | 161 | virtual void restoreItem() {} |
162 | virtual void restoreToWorld() {} | ||
162 | 163 | ||
163 | // LLFolderViewEventListener functions | 164 | // LLFolderViewEventListener functions |
164 | virtual const std::string& getName() const; | 165 | virtual const std::string& getName() const; |
@@ -243,6 +244,7 @@ public: | |||
243 | 244 | ||
244 | virtual void selectItem(); | 245 | virtual void selectItem(); |
245 | virtual void restoreItem(); | 246 | virtual void restoreItem(); |
247 | virtual void restoreToWorld(); | ||
246 | 248 | ||
247 | virtual LLUIImagePtr getIcon() const; | 249 | virtual LLUIImagePtr getIcon() const; |
248 | virtual const std::string& getDisplayName() const; | 250 | virtual const std::string& getDisplayName() const; |
@@ -283,7 +285,6 @@ public: | |||
283 | virtual void selectItem(); | 285 | virtual void selectItem(); |
284 | virtual void restoreItem(); | 286 | virtual void restoreItem(); |
285 | 287 | ||
286 | |||
287 | virtual LLUIImagePtr getIcon() const; | 288 | virtual LLUIImagePtr getIcon() const; |
288 | virtual BOOL renameItem(const std::string& new_name); | 289 | virtual BOOL renameItem(const std::string& new_name); |
289 | virtual BOOL removeItem(); | 290 | virtual BOOL removeItem(); |
diff --git a/linden/indra/newview/llinventorymodel.cpp b/linden/indra/newview/llinventorymodel.cpp index b1e3017..73f0fb3 100644 --- a/linden/indra/newview/llinventorymodel.cpp +++ b/linden/indra/newview/llinventorymodel.cpp | |||
@@ -73,7 +73,6 @@ F32 LLInventoryModel::sMinTimeBetweenFetches = 0.3f; | |||
73 | F32 LLInventoryModel::sMaxTimeBetweenFetches = 10.f; | 73 | F32 LLInventoryModel::sMaxTimeBetweenFetches = 10.f; |
74 | BOOL LLInventoryModel::sTimelyFetchPending = FALSE; | 74 | BOOL LLInventoryModel::sTimelyFetchPending = FALSE; |
75 | LLFrameTimer LLInventoryModel::sFetchTimer; | 75 | LLFrameTimer LLInventoryModel::sFetchTimer; |
76 | LLInventoryModel::cat_map_t LLInventoryModel::sBulkFetchMap; | ||
77 | S16 LLInventoryModel::sBulkFetchCount = 0; | 76 | S16 LLInventoryModel::sBulkFetchCount = 0; |
78 | 77 | ||
79 | // RN: for some reason, using std::queue in the header file confuses the compiler which things it's an xmlrpc_queue | 78 | // RN: for some reason, using std::queue in the header file confuses the compiler which things it's an xmlrpc_queue |
@@ -85,7 +84,7 @@ static std::deque<LLUUID> sFetchQueue; | |||
85 | 84 | ||
86 | //BOOL decompress_file(const char* src_filename, const char* dst_filename); | 85 | //BOOL decompress_file(const char* src_filename, const char* dst_filename); |
87 | const F32 MAX_TIME_FOR_SINGLE_FETCH = 10.f; | 86 | const F32 MAX_TIME_FOR_SINGLE_FETCH = 10.f; |
88 | const S32 MAX_FETCH_RETRIES = 5; | 87 | const S32 MAX_FETCH_RETRIES = 10; |
89 | const char CACHE_FORMAT_STRING[] = "%s.inv"; | 88 | const char CACHE_FORMAT_STRING[] = "%s.inv"; |
90 | const char* NEW_CATEGORY_NAME = "New Folder"; | 89 | const char* NEW_CATEGORY_NAME = "New Folder"; |
91 | const char* NEW_CATEGORY_NAMES[LLAssetType::AT_COUNT] = | 90 | const char* NEW_CATEGORY_NAMES[LLAssetType::AT_COUNT] = |
@@ -990,13 +989,24 @@ BOOL LLInventoryModel::containsObserver(LLInventoryObserver* observer) | |||
990 | // Call this method when it's time to update everyone on a new state, | 989 | // Call this method when it's time to update everyone on a new state, |
991 | // by default, the inventory model will not update observers | 990 | // by default, the inventory model will not update observers |
992 | // automatically. | 991 | // automatically. |
993 | void LLInventoryModel::notifyObservers() | 992 | // The optional argument 'service_name' is used by Agent Inventory Service [DEV-20328] |
993 | void LLInventoryModel::notifyObservers(const std::string service_name) | ||
994 | { | 994 | { |
995 | for (observer_list_t::iterator iter = mObservers.begin(); | 995 | for (observer_list_t::iterator iter = mObservers.begin(); |
996 | iter != mObservers.end(); ) | 996 | iter != mObservers.end(); ) |
997 | { | 997 | { |
998 | LLInventoryObserver* observer = *iter; | 998 | LLInventoryObserver* observer = *iter; |
999 | observer->changed(mModifyMask); | 999 | |
1000 | if (service_name.empty()) | ||
1001 | { | ||
1002 | observer->changed(mModifyMask); | ||
1003 | } | ||
1004 | else | ||
1005 | { | ||
1006 | observer->mMessageName = service_name; | ||
1007 | observer->changed(mModifyMask); | ||
1008 | } | ||
1009 | |||
1000 | // safe way to incrament since changed may delete entries! (@!##%@!@&*!) | 1010 | // safe way to incrament since changed may delete entries! (@!##%@!@&*!) |
1001 | iter = mObservers.upper_bound(observer); | 1011 | iter = mObservers.upper_bound(observer); |
1002 | } | 1012 | } |
@@ -1038,6 +1048,79 @@ void LLInventoryModel::mock(const LLUUID& root_id) | |||
1038 | } | 1048 | } |
1039 | */ | 1049 | */ |
1040 | 1050 | ||
1051 | //If we get back a normal response, handle it here | ||
1052 | void LLInventoryModel::fetchInventoryResponder::result(const LLSD& content) | ||
1053 | { | ||
1054 | start_new_inventory_observer(); | ||
1055 | |||
1056 | /*LLUUID agent_id; | ||
1057 | agent_id = content["agent_id"].asUUID(); | ||
1058 | if(agent_id != gAgent.getID()) | ||
1059 | { | ||
1060 | llwarns << "Got a inventory update for the wrong agent: " << agent_id | ||
1061 | << llendl; | ||
1062 | return; | ||
1063 | }*/ | ||
1064 | item_array_t items; | ||
1065 | update_map_t update; | ||
1066 | S32 count = content["items"].size(); | ||
1067 | bool all_one_folder = true; | ||
1068 | LLUUID folder_id; | ||
1069 | // Does this loop ever execute more than once? -Gigs | ||
1070 | for(S32 i = 0; i < count; ++i) | ||
1071 | { | ||
1072 | LLPointer<LLViewerInventoryItem> titem = new LLViewerInventoryItem; | ||
1073 | titem->unpackMessage(content["items"][i]); | ||
1074 | |||
1075 | lldebugs << "LLInventoryModel::messageUpdateCore() item id:" | ||
1076 | << titem->getUUID() << llendl; | ||
1077 | items.push_back(titem); | ||
1078 | // examine update for changes. | ||
1079 | LLViewerInventoryItem* itemp = gInventory.getItem(titem->getUUID()); | ||
1080 | if(itemp) | ||
1081 | { | ||
1082 | if(titem->getParentUUID() == itemp->getParentUUID()) | ||
1083 | { | ||
1084 | update[titem->getParentUUID()]; | ||
1085 | } | ||
1086 | else | ||
1087 | { | ||
1088 | ++update[titem->getParentUUID()]; | ||
1089 | --update[itemp->getParentUUID()]; | ||
1090 | } | ||
1091 | } | ||
1092 | else | ||
1093 | { | ||
1094 | ++update[titem->getParentUUID()]; | ||
1095 | } | ||
1096 | if (folder_id.isNull()) | ||
1097 | { | ||
1098 | folder_id = titem->getParentUUID(); | ||
1099 | } | ||
1100 | else | ||
1101 | { | ||
1102 | all_one_folder = false; | ||
1103 | } | ||
1104 | } | ||
1105 | |||
1106 | U32 changes = 0x0; | ||
1107 | //as above, this loop never seems to loop more than once per call | ||
1108 | for (item_array_t::iterator it = items.begin(); it != items.end(); ++it) | ||
1109 | { | ||
1110 | changes |= gInventory.updateItem(*it); | ||
1111 | } | ||
1112 | gInventory.notifyObservers("fetchinventory"); | ||
1113 | gViewerWindow->getWindow()->decBusyCount(); | ||
1114 | } | ||
1115 | |||
1116 | //If we get back an error (not found, etc...), handle it here | ||
1117 | void LLInventoryModel::fetchInventoryResponder::error(U32 status, const std::string& reason) | ||
1118 | { | ||
1119 | llinfos << "fetchInventory::error " | ||
1120 | << status << ": " << reason << llendl; | ||
1121 | gInventory.notifyObservers("fetchinventory"); | ||
1122 | } | ||
1123 | |||
1041 | void LLInventoryModel::fetchDescendentsOf(const LLUUID& folder_id) | 1124 | void LLInventoryModel::fetchDescendentsOf(const LLUUID& folder_id) |
1042 | { | 1125 | { |
1043 | LLViewerInventoryCategory* cat = getCategory(folder_id); | 1126 | LLViewerInventoryCategory* cat = getCategory(folder_id); |
@@ -1065,21 +1148,31 @@ void LLInventoryModel::fetchDescendentsOf(const LLUUID& folder_id) | |||
1065 | } | 1148 | } |
1066 | 1149 | ||
1067 | //Initialize statics. | 1150 | //Initialize statics. |
1068 | LLAlertDialog* LLInventoryModel::fetchDescendentsResponder::sRetryDialog=NULL; | ||
1069 | LLSD LLInventoryModel::fetchDescendentsResponder::sRetrySD; | ||
1070 | |||
1071 | bool LLInventoryModel::isBulkFetchProcessingComplete() | 1151 | bool LLInventoryModel::isBulkFetchProcessingComplete() |
1072 | { | 1152 | { |
1073 | return ( (sFetchQueue.empty() | 1153 | return ( (sFetchQueue.empty() |
1074 | && sBulkFetchMap.empty() | 1154 | && sBulkFetchCount<=0) ? TRUE : FALSE ) ; |
1075 | && sBulkFetchCount==0) ? TRUE : FALSE ) ; | ||
1076 | } | 1155 | } |
1077 | 1156 | ||
1157 | class fetchDescendentsResponder: public LLHTTPClient::Responder | ||
1158 | { | ||
1159 | public: | ||
1160 | fetchDescendentsResponder(const LLSD& request_sd) : mRequestSD(request_sd) {}; | ||
1161 | //fetchDescendentsResponder() {}; | ||
1162 | void result(const LLSD& content); | ||
1163 | void error(U32 status, const std::string& reason); | ||
1164 | public: | ||
1165 | typedef std::vector<LLViewerInventoryCategory*> folder_ref_t; | ||
1166 | protected: | ||
1167 | LLSD mRequestSD; | ||
1168 | }; | ||
1169 | |||
1078 | //If we get back a normal response, handle it here | 1170 | //If we get back a normal response, handle it here |
1079 | void LLInventoryModel::fetchDescendentsResponder::result(const LLSD& content) | 1171 | void fetchDescendentsResponder::result(const LLSD& content) |
1080 | { | 1172 | { |
1081 | if (content.has("folders")) | 1173 | if (content.has("folders")) |
1082 | { | 1174 | { |
1175 | |||
1083 | for(LLSD::array_const_iterator folder_it = content["folders"].beginArray(); | 1176 | for(LLSD::array_const_iterator folder_it = content["folders"].beginArray(); |
1084 | folder_it != content["folders"].endArray(); | 1177 | folder_it != content["folders"].endArray(); |
1085 | ++folder_it) | 1178 | ++folder_it) |
@@ -1087,19 +1180,54 @@ void LLInventoryModel::fetchDescendentsResponder::result(const LLSD& content) | |||
1087 | LLSD folder_sd = *folder_it; | 1180 | LLSD folder_sd = *folder_it; |
1088 | 1181 | ||
1089 | 1182 | ||
1090 | LLUUID agent_id = folder_sd["agent-id"]; | 1183 | //LLUUID agent_id = folder_sd["agent_id"]; |
1091 | 1184 | ||
1092 | if(agent_id != gAgent.getID()) //This should never happen. | 1185 | //if(agent_id != gAgent.getID()) //This should never happen. |
1093 | { | 1186 | //{ |
1094 | llwarns << "Got a UpdateInventoryItem for the wrong agent." | 1187 | // llwarns << "Got a UpdateInventoryItem for the wrong agent." |
1095 | << llendl; | 1188 | // << llendl; |
1096 | break; | 1189 | // break; |
1097 | } | 1190 | //} |
1098 | LLUUID parent_id = folder_sd["folder-id"]; | 1191 | |
1099 | LLUUID owner_id = folder_sd["owner-id"]; | 1192 | LLUUID parent_id = folder_sd["folder_id"]; |
1193 | LLUUID owner_id = folder_sd["owner_id"]; | ||
1100 | S32 version = (S32)folder_sd["version"].asInteger(); | 1194 | S32 version = (S32)folder_sd["version"].asInteger(); |
1101 | S32 descendents = (S32)folder_sd["descendents"].asInteger(); | 1195 | S32 descendents = (S32)folder_sd["descendents"].asInteger(); |
1102 | LLPointer<LLViewerInventoryCategory> tcategory = new LLViewerInventoryCategory(owner_id); | 1196 | LLPointer<LLViewerInventoryCategory> tcategory = new LLViewerInventoryCategory(owner_id); |
1197 | |||
1198 | if (parent_id.isNull()) | ||
1199 | { | ||
1200 | LLPointer<LLViewerInventoryItem> titem = new LLViewerInventoryItem; | ||
1201 | for(LLSD::array_const_iterator item_it = folder_sd["items"].beginArray(); | ||
1202 | item_it != folder_sd["items"].endArray(); | ||
1203 | ++item_it) | ||
1204 | { | ||
1205 | LLUUID lost_uuid = gInventory.findCategoryUUIDForType(LLAssetType::AT_LOST_AND_FOUND); | ||
1206 | if (lost_uuid.notNull()) | ||
1207 | { | ||
1208 | LLSD item = *item_it; | ||
1209 | titem->unpackMessage(item); | ||
1210 | |||
1211 | LLInventoryModel::update_list_t update; | ||
1212 | LLInventoryModel::LLCategoryUpdate new_folder(lost_uuid, 1); | ||
1213 | update.push_back(new_folder); | ||
1214 | gInventory.accountForUpdate(update); | ||
1215 | |||
1216 | titem->setParent(lost_uuid); | ||
1217 | titem->updateParentOnServer(FALSE); | ||
1218 | gInventory.updateItem(titem); | ||
1219 | gInventory.notifyObservers("fetchDescendents"); | ||
1220 | |||
1221 | } | ||
1222 | } | ||
1223 | } | ||
1224 | |||
1225 | LLViewerInventoryCategory* pcat = gInventory.getCategory(parent_id); | ||
1226 | if (!pcat) | ||
1227 | { | ||
1228 | continue; | ||
1229 | } | ||
1230 | |||
1103 | for(LLSD::array_const_iterator category_it = folder_sd["categories"].beginArray(); | 1231 | for(LLSD::array_const_iterator category_it = folder_sd["categories"].beginArray(); |
1104 | category_it != folder_sd["categories"].endArray(); | 1232 | category_it != folder_sd["categories"].endArray(); |
1105 | ++category_it) | 1233 | ++category_it) |
@@ -1107,7 +1235,7 @@ void LLInventoryModel::fetchDescendentsResponder::result(const LLSD& content) | |||
1107 | LLSD category = *category_it; | 1235 | LLSD category = *category_it; |
1108 | tcategory->fromLLSD(category); | 1236 | tcategory->fromLLSD(category); |
1109 | 1237 | ||
1110 | if (sFullFetchStarted) | 1238 | if (LLInventoryModel::sFullFetchStarted) |
1111 | { | 1239 | { |
1112 | sFetchQueue.push_back(tcategory->getUUID()); | 1240 | sFetchQueue.push_back(tcategory->getUUID()); |
1113 | } | 1241 | } |
@@ -1139,37 +1267,37 @@ void LLInventoryModel::fetchDescendentsResponder::result(const LLSD& content) | |||
1139 | } | 1267 | } |
1140 | } | 1268 | } |
1141 | 1269 | ||
1142 | if (content.has("bad-folders")) | 1270 | if (content.has("bad_folders")) |
1143 | { | 1271 | { |
1144 | for(LLSD::array_const_iterator folder_it = content["bad-folders"].beginArray(); | 1272 | for(LLSD::array_const_iterator folder_it = content["bad_folders"].beginArray(); |
1145 | folder_it != content["bad-folders"].endArray(); | 1273 | folder_it != content["bad_folders"].endArray(); |
1146 | ++folder_it) | 1274 | ++folder_it) |
1147 | { | 1275 | { |
1148 | LLSD folder_sd = *folder_it; | 1276 | LLSD folder_sd = *folder_it; |
1149 | 1277 | ||
1150 | //These folders failed on the dataserver. We probably don't want to retry them. | 1278 | //These folders failed on the dataserver. We probably don't want to retry them. |
1151 | llinfos << "Folder " << folder_sd["folder-id"].asString() | 1279 | llinfos << "Folder " << folder_sd["folder_id"].asString() |
1152 | << "Error: " << folder_sd["error"].asString() << llendl; | 1280 | << "Error: " << folder_sd["error"].asString() << llendl; |
1153 | } | 1281 | } |
1154 | } | 1282 | } |
1155 | 1283 | ||
1156 | LLInventoryModel::incrBulkFetch(-1); | 1284 | LLInventoryModel::incrBulkFetch(-1); |
1157 | 1285 | ||
1158 | if (isBulkFetchProcessingComplete()) | 1286 | if (LLInventoryModel::isBulkFetchProcessingComplete()) |
1159 | { | 1287 | { |
1160 | llinfos << "Inventory fetch completed" << llendl; | 1288 | llinfos << "Inventory fetch completed" << llendl; |
1161 | if (sFullFetchStarted) | 1289 | if (LLInventoryModel::sFullFetchStarted) |
1162 | { | 1290 | { |
1163 | sAllFoldersFetched = TRUE; | 1291 | LLInventoryModel::sAllFoldersFetched = TRUE; |
1164 | } | 1292 | } |
1165 | stopBackgroundFetch(); | 1293 | LLInventoryModel::stopBackgroundFetch(); |
1166 | } | 1294 | } |
1167 | 1295 | ||
1168 | gInventory.notifyObservers(); | 1296 | gInventory.notifyObservers("fetchDescendents"); |
1169 | } | 1297 | } |
1170 | 1298 | ||
1171 | //If we get back an error (not found, etc...), handle it here | 1299 | //If we get back an error (not found, etc...), handle it here |
1172 | void LLInventoryModel::fetchDescendentsResponder::error(U32 status, const std::string& reason) | 1300 | void fetchDescendentsResponder::error(U32 status, const std::string& reason) |
1173 | { | 1301 | { |
1174 | llinfos << "fetchDescendentsResponder::error " | 1302 | llinfos << "fetchDescendentsResponder::error " |
1175 | << status << ": " << reason << llendl; | 1303 | << status << ": " << reason << llendl; |
@@ -1183,61 +1311,22 @@ void LLInventoryModel::fetchDescendentsResponder::error(U32 status, const std::s | |||
1183 | ++folder_it) | 1311 | ++folder_it) |
1184 | { | 1312 | { |
1185 | LLSD folder_sd = *folder_it; | 1313 | LLSD folder_sd = *folder_it; |
1186 | sRetrySD["folders"].append(folder_sd); | 1314 | LLUUID folder_id = folder_sd["folder_id"]; |
1187 | } | 1315 | sFetchQueue.push_front(folder_id); |
1188 | sMinTimeBetweenFetches = 10.0f; //Add 10 seconds for every time out in this sequence. | ||
1189 | |||
1190 | if (!sRetryDialog) //The dialog isn't up. Prompt the resident. | ||
1191 | { | ||
1192 | sRetryDialog = gViewerWindow->alertXml("RetryFetchInventoryDescendents", onClickRetry, this); | ||
1193 | } | 1316 | } |
1194 | } | 1317 | } |
1195 | else | 1318 | else |
1196 | { | 1319 | { |
1197 | if (isBulkFetchProcessingComplete()) | 1320 | if (LLInventoryModel::isBulkFetchProcessingComplete()) |
1198 | { | 1321 | { |
1199 | if (sFullFetchStarted) | 1322 | if (LLInventoryModel::sFullFetchStarted) |
1200 | { | 1323 | { |
1201 | sAllFoldersFetched = TRUE; | 1324 | LLInventoryModel::sAllFoldersFetched = TRUE; |
1202 | } | 1325 | } |
1203 | stopBackgroundFetch(); | 1326 | LLInventoryModel::stopBackgroundFetch(); |
1204 | } | 1327 | } |
1205 | } | 1328 | } |
1206 | gInventory.notifyObservers(); | 1329 | gInventory.notifyObservers("fetchDescendents"); |
1207 | } | ||
1208 | |||
1209 | void LLInventoryModel::fetchDescendentsResponder::onClickRetry(S32 option, void* userdata) | ||
1210 | { | ||
1211 | if (option == 0) | ||
1212 | { | ||
1213 | std::string url; | ||
1214 | |||
1215 | LLViewerRegion * agent_region = gAgent.getRegion(); | ||
1216 | if (agent_region) | ||
1217 | { | ||
1218 | url = agent_region->getCapability("FetchInventoryDescendents"); | ||
1219 | } | ||
1220 | |||
1221 | if (!url.empty()) //Capability found. Build up LLSD and use it. | ||
1222 | { | ||
1223 | LLSD body = sRetrySD; | ||
1224 | LLInventoryModel::incrBulkFetch(1); | ||
1225 | LLHTTPClient::post(url, body, new LLInventoryModel::fetchDescendentsResponder(body),300); | ||
1226 | } | ||
1227 | } | ||
1228 | else | ||
1229 | { | ||
1230 | if (isBulkFetchProcessingComplete()) | ||
1231 | { | ||
1232 | if (sFullFetchStarted) | ||
1233 | { | ||
1234 | sAllFoldersFetched = TRUE; | ||
1235 | } | ||
1236 | stopBackgroundFetch(); | ||
1237 | } | ||
1238 | } | ||
1239 | sRetryDialog=NULL; | ||
1240 | sRetrySD.clear(); | ||
1241 | } | 1330 | } |
1242 | 1331 | ||
1243 | //static Bundle up a bunch of requests to send all at once. | 1332 | //static Bundle up a bunch of requests to send all at once. |
@@ -1250,7 +1339,7 @@ void LLInventoryModel::bulkFetch(std::string url) | |||
1250 | 1339 | ||
1251 | S16 max_concurrent_fetches=8; | 1340 | S16 max_concurrent_fetches=8; |
1252 | F32 new_min_time = 0.5f; //HACK! Clean this up when old code goes away entirely. | 1341 | F32 new_min_time = 0.5f; //HACK! Clean this up when old code goes away entirely. |
1253 | if (sMinTimeBetweenFetches <= new_min_time) sMinTimeBetweenFetches=new_min_time; //HACK! See above. | 1342 | if (sMinTimeBetweenFetches < new_min_time) sMinTimeBetweenFetches=new_min_time; //HACK! See above. |
1254 | 1343 | ||
1255 | if(gDisconnected | 1344 | if(gDisconnected |
1256 | || sBulkFetchCount > max_concurrent_fetches | 1345 | || sBulkFetchCount > max_concurrent_fetches |
@@ -1263,84 +1352,83 @@ void LLInventoryModel::bulkFetch(std::string url) | |||
1263 | //redundant requests. When we get rid of the old code entirely, we can change | 1352 | //redundant requests. When we get rid of the old code entirely, we can change |
1264 | //the dequeue to a map. In the new model, there is no benefit to queue order. | 1353 | //the dequeue to a map. In the new model, there is no benefit to queue order. |
1265 | U32 folder_count=0; | 1354 | U32 folder_count=0; |
1266 | U32 max_batch_size=10; | 1355 | U32 max_batch_size=5; |
1267 | while( !(sFetchQueue.empty() ) ) | 1356 | |
1268 | { | 1357 | U32 sort_order = gSavedSettings.getU32("InventorySortOrder") & 0x1; |
1269 | LLViewerInventoryCategory* cat = gInventory.getCategory(sFetchQueue.front()); | 1358 | |
1270 | 1359 | LLSD body; | |
1271 | if (cat) | 1360 | LLSD body_lib; |
1272 | { | 1361 | while( !(sFetchQueue.empty() ) && (folder_count < max_batch_size) ) |
1273 | if ( !gInventory.isCategoryComplete(cat->getUUID()) ) //grab this folder. | 1362 | { |
1274 | { | 1363 | if (sFetchQueue.front().isNull()) //DEV-17797 |
1275 | sBulkFetchMap[(cat->getUUID())] = cat; | 1364 | { |
1276 | } | 1365 | LLSD folder_sd; |
1277 | else if (sFullFetchStarted) | 1366 | folder_sd["folder_id"] = LLUUID::null.asString(); |
1278 | { //Already have this folder but append child folders to list. | 1367 | folder_sd["owner_id"] = gAgent.getID(); |
1279 | // add all children to queue | 1368 | folder_sd["sort_order"] = (LLSD::Integer)sort_order; |
1280 | parent_cat_map_t::iterator cat_it = gInventory.mParentChildCategoryTree.find(cat->getUUID()); | 1369 | folder_sd["fetch_folders"] = (LLSD::Boolean)FALSE; |
1281 | if (cat_it != gInventory.mParentChildCategoryTree.end()) | 1370 | folder_sd["fetch_items"] = (LLSD::Boolean)TRUE; |
1282 | { | 1371 | body["folders"].append(folder_sd); |
1283 | cat_array_t* child_categories = cat_it->second; | 1372 | folder_count++; |
1284 | 1373 | } | |
1285 | for (S32 child_num = 0; child_num < child_categories->count(); child_num++) | 1374 | else |
1286 | { | 1375 | { |
1287 | sFetchQueue.push_back(child_categories->get(child_num)->getUUID()); | 1376 | |
1288 | } | ||
1289 | } | ||
1290 | 1377 | ||
1291 | } | 1378 | LLViewerInventoryCategory* cat = gInventory.getCategory(sFetchQueue.front()); |
1292 | } | 1379 | |
1380 | if (cat) | ||
1381 | { | ||
1382 | if ( LLViewerInventoryCategory::VERSION_UNKNOWN == cat->getVersion()) | ||
1383 | { | ||
1384 | LLSD folder_sd; | ||
1385 | folder_sd["folder_id"] = cat->getUUID(); | ||
1386 | folder_sd["owner_id"] = cat->getOwnerID(); | ||
1387 | folder_sd["sort_order"] = (LLSD::Integer)sort_order; | ||
1388 | folder_sd["fetch_folders"] = TRUE; //(LLSD::Boolean)sFullFetchStarted; | ||
1389 | folder_sd["fetch_items"] = (LLSD::Boolean)TRUE; | ||
1390 | |||
1391 | if (ALEXANDRIA_LINDEN_ID == cat->getOwnerID()) | ||
1392 | body_lib["folders"].append(folder_sd); | ||
1393 | else | ||
1394 | body["folders"].append(folder_sd); | ||
1395 | folder_count++; | ||
1396 | } | ||
1397 | if (sFullFetchStarted) | ||
1398 | { //Already have this folder but append child folders to list. | ||
1399 | // add all children to queue | ||
1400 | parent_cat_map_t::iterator cat_it = gInventory.mParentChildCategoryTree.find(cat->getUUID()); | ||
1401 | if (cat_it != gInventory.mParentChildCategoryTree.end()) | ||
1402 | { | ||
1403 | cat_array_t* child_categories = cat_it->second; | ||
1404 | |||
1405 | for (S32 child_num = 0; child_num < child_categories->count(); child_num++) | ||
1406 | { | ||
1407 | sFetchQueue.push_back(child_categories->get(child_num)->getUUID()); | ||
1408 | } | ||
1409 | } | ||
1410 | |||
1411 | } | ||
1412 | } | ||
1413 | } | ||
1293 | sFetchQueue.pop_front(); | 1414 | sFetchQueue.pop_front(); |
1294 | } | 1415 | } |
1295 | 1416 | ||
1296 | |||
1297 | if (!sBulkFetchMap.empty()) //There's stuff to fetch. | ||
1298 | { | ||
1299 | U32 sort_order = gSavedSettings.getU32("InventorySortOrder") & 0x1; | ||
1300 | |||
1301 | LLSD body; | ||
1302 | |||
1303 | cat_map_t::iterator iter=sBulkFetchMap.begin(); | ||
1304 | while( iter!=sBulkFetchMap.end() && (folder_count < max_batch_size) ) | ||
1305 | { | ||
1306 | LLViewerInventoryCategory* cat = iter->second; | ||
1307 | |||
1308 | if (cat && !gInventory.isCategoryComplete(cat->getUUID()) ) //Category exists | ||
1309 | { | ||
1310 | BOOL fetchItems=TRUE; | ||
1311 | if ( sFullFetchStarted | ||
1312 | && gInventory.isCategoryComplete(cat->getUUID()) ) | ||
1313 | { | ||
1314 | fetchItems=FALSE; | ||
1315 | } | ||
1316 | |||
1317 | LLSD folder_sd; | ||
1318 | folder_sd["folder-id"] = cat->getUUID(); | ||
1319 | folder_sd["owner-id"] = cat->getOwnerID(); | ||
1320 | folder_sd["sort-order"] = (LLSD::Integer)sort_order; | ||
1321 | folder_sd["fetch-folders"] = (LLSD::Boolean)sFullFetchStarted; | ||
1322 | folder_sd["fetch-items"] = (LLSD::Boolean)fetchItems; | ||
1323 | body["folders"].append(folder_sd); | ||
1324 | |||
1325 | folder_count++; | ||
1326 | } | ||
1327 | sBulkFetchMap.erase(iter); | ||
1328 | iter=sBulkFetchMap.begin(); | ||
1329 | } | ||
1330 | |||
1331 | if (iter == sBulkFetchMap.end()) sBulkFetchMap.clear(); | ||
1332 | |||
1333 | if (folder_count > 0) | 1417 | if (folder_count > 0) |
1334 | { | 1418 | { |
1335 | sBulkFetchCount++; | 1419 | sBulkFetchCount++; |
1336 | 1420 | if (body["folders"].size()) | |
1337 | LLHTTPClient::post(url, body, new LLInventoryModel::fetchDescendentsResponder(body)); | 1421 | { |
1422 | LLHTTPClient::post(url, body, new fetchDescendentsResponder(body),300.0); | ||
1423 | } | ||
1424 | if (body_lib["folders"].size()) | ||
1425 | { | ||
1426 | std::string url_lib = gAgent.getRegion()->getCapability("FetchLibDescendents"); | ||
1427 | LLHTTPClient::post(url_lib, body_lib, new fetchDescendentsResponder(body_lib),300.0); | ||
1428 | } | ||
1338 | sFetchTimer.reset(); | 1429 | sFetchTimer.reset(); |
1339 | } | 1430 | } |
1340 | 1431 | else if (isBulkFetchProcessingComplete()) | |
1341 | } | ||
1342 | |||
1343 | if (isBulkFetchProcessingComplete()) | ||
1344 | { | 1432 | { |
1345 | if (sFullFetchStarted) | 1433 | if (sFullFetchStarted) |
1346 | { | 1434 | { |
@@ -1391,6 +1479,14 @@ void LLInventoryModel::startBackgroundFetch(const LLUUID& cat_id) | |||
1391 | } | 1479 | } |
1392 | 1480 | ||
1393 | //static | 1481 | //static |
1482 | void LLInventoryModel::findLostItems() | ||
1483 | { | ||
1484 | sBackgroundFetchActive = TRUE; | ||
1485 | sFetchQueue.push_back(LLUUID::null); | ||
1486 | gIdleCallbacks.addFunction(&LLInventoryModel::backgroundFetch, NULL); | ||
1487 | } | ||
1488 | |||
1489 | //static | ||
1394 | void LLInventoryModel::stopBackgroundFetch() | 1490 | void LLInventoryModel::stopBackgroundFetch() |
1395 | { | 1491 | { |
1396 | if (sBackgroundFetchActive) | 1492 | if (sBackgroundFetchActive) |
@@ -1409,14 +1505,7 @@ void LLInventoryModel::backgroundFetch(void*) | |||
1409 | if (sBackgroundFetchActive) | 1505 | if (sBackgroundFetchActive) |
1410 | { | 1506 | { |
1411 | //If we'll be using the capability, we'll be sending batches and the background thing isn't as important. | 1507 | //If we'll be using the capability, we'll be sending batches and the background thing isn't as important. |
1412 | std::string url; | 1508 | std::string url = gAgent.getRegion()->getCapability("WebFetchInventoryDescendents"); |
1413 | |||
1414 | LLViewerRegion * agent_region = gAgent.getRegion(); | ||
1415 | if (agent_region) | ||
1416 | { | ||
1417 | url = agent_region->getCapability("FetchInventoryDescendents"); | ||
1418 | } | ||
1419 | |||
1420 | if (!url.empty()) | 1509 | if (!url.empty()) |
1421 | { | 1510 | { |
1422 | bulkFetch(url); | 1511 | bulkFetch(url); |
@@ -3373,12 +3462,72 @@ bool LLInventoryFetchObserver::isEverythingComplete() const | |||
3373 | return mIncomplete.empty(); | 3462 | return mIncomplete.empty(); |
3374 | } | 3463 | } |
3375 | 3464 | ||
3465 | void fetch_items_from_llsd(const LLSD& items_llsd) | ||
3466 | { | ||
3467 | if (!items_llsd.size()) return; | ||
3468 | LLSD body; | ||
3469 | body[0]["cap_name"] = "FetchInventory"; | ||
3470 | body[1]["cap_name"] = "FetchLib"; | ||
3471 | for (S32 i=0; i<items_llsd.size();i++) | ||
3472 | { | ||
3473 | if (items_llsd[i]["owner_id"].asString() == gAgent.getID().asString()) | ||
3474 | { | ||
3475 | body[0]["items"].append(items_llsd[i]); | ||
3476 | continue; | ||
3477 | } | ||
3478 | if (items_llsd[i]["owner_id"].asString() == ALEXANDRIA_LINDEN_ID.asString()) | ||
3479 | { | ||
3480 | body[1]["items"].append(items_llsd[i]); | ||
3481 | continue; | ||
3482 | } | ||
3483 | } | ||
3484 | |||
3485 | for (S32 i=0; i<body.size(); i++) | ||
3486 | { | ||
3487 | if (0 >= body[i].size()) continue; | ||
3488 | std::string url = gAgent.getRegion()->getCapability(body[i]["cap_name"].asString()); | ||
3489 | |||
3490 | if (!url.empty()) | ||
3491 | { | ||
3492 | body[i]["agent_id"] = gAgent.getID(); | ||
3493 | LLHTTPClient::post(url, body[i], new LLInventoryModel::fetchInventoryResponder(body[i])); | ||
3494 | break; | ||
3495 | } | ||
3496 | |||
3497 | LLMessageSystem* msg = gMessageSystem; | ||
3498 | BOOL start_new_message = TRUE; | ||
3499 | for (S32 j=0; j<body[i]["items"].size(); j++) | ||
3500 | { | ||
3501 | LLSD item_entry = body[i]["items"][j]; | ||
3502 | if(start_new_message) | ||
3503 | { | ||
3504 | start_new_message = FALSE; | ||
3505 | msg->newMessageFast(_PREHASH_FetchInventory); | ||
3506 | msg->nextBlockFast(_PREHASH_AgentData); | ||
3507 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | ||
3508 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | ||
3509 | } | ||
3510 | msg->nextBlockFast(_PREHASH_InventoryData); | ||
3511 | msg->addUUIDFast(_PREHASH_OwnerID, item_entry["owner_id"].asUUID()); | ||
3512 | msg->addUUIDFast(_PREHASH_ItemID, item_entry["item_id"].asUUID()); | ||
3513 | if(msg->isSendFull(NULL)) | ||
3514 | { | ||
3515 | start_new_message = TRUE; | ||
3516 | gAgent.sendReliableMessage(); | ||
3517 | } | ||
3518 | } | ||
3519 | if(!start_new_message) | ||
3520 | { | ||
3521 | gAgent.sendReliableMessage(); | ||
3522 | } | ||
3523 | } | ||
3524 | } | ||
3525 | |||
3376 | void LLInventoryFetchObserver::fetchItems( | 3526 | void LLInventoryFetchObserver::fetchItems( |
3377 | const LLInventoryFetchObserver::item_ref_t& ids) | 3527 | const LLInventoryFetchObserver::item_ref_t& ids) |
3378 | { | 3528 | { |
3379 | LLMessageSystem* msg = gMessageSystem; | ||
3380 | BOOL start_new_message = TRUE; | ||
3381 | LLUUID owner_id; | 3529 | LLUUID owner_id; |
3530 | LLSD items_llsd; | ||
3382 | for(item_ref_t::const_iterator it = ids.begin(); it < ids.end(); ++it) | 3531 | for(item_ref_t::const_iterator it = ids.begin(); it < ids.end(); ++it) |
3383 | { | 3532 | { |
3384 | LLViewerInventoryItem* item = gInventory.getItem(*it); | 3533 | LLViewerInventoryItem* item = gInventory.getItem(*it); |
@@ -3400,31 +3549,18 @@ void LLInventoryFetchObserver::fetchItems( | |||
3400 | // assume it's agent inventory. | 3549 | // assume it's agent inventory. |
3401 | owner_id = gAgent.getID(); | 3550 | owner_id = gAgent.getID(); |
3402 | } | 3551 | } |
3403 | 3552 | ||
3404 | // It's incomplete, so put it on the incomplete container, and | 3553 | // It's incomplete, so put it on the incomplete container, and |
3405 | // pack this on the message. | 3554 | // pack this on the message. |
3406 | mIncomplete.push_back(*it); | 3555 | mIncomplete.push_back(*it); |
3407 | if(start_new_message) | 3556 | |
3408 | { | 3557 | // Prepare the data to fetch |
3409 | start_new_message = FALSE; | 3558 | LLSD item_entry; |
3410 | msg->newMessageFast(_PREHASH_FetchInventory); | 3559 | item_entry["owner_id"] = owner_id; |
3411 | msg->nextBlockFast(_PREHASH_AgentData); | 3560 | item_entry["item_id"] = (*it); |
3412 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | 3561 | items_llsd.append(item_entry); |
3413 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | ||
3414 | } | ||
3415 | msg->nextBlockFast(_PREHASH_InventoryData); | ||
3416 | msg->addUUIDFast(_PREHASH_OwnerID, owner_id); | ||
3417 | msg->addUUIDFast(_PREHASH_ItemID, (*it)); | ||
3418 | if(msg->isSendFull(NULL)) | ||
3419 | { | ||
3420 | start_new_message = TRUE; | ||
3421 | gAgent.sendReliableMessage(); | ||
3422 | } | ||
3423 | } | ||
3424 | if(!start_new_message) | ||
3425 | { | ||
3426 | gAgent.sendReliableMessage(); | ||
3427 | } | 3562 | } |
3563 | fetch_items_from_llsd(items_llsd); | ||
3428 | } | 3564 | } |
3429 | 3565 | ||
3430 | // virtual | 3566 | // virtual |
@@ -3579,9 +3715,8 @@ void LLInventoryFetchComboObserver::fetch( | |||
3579 | // descendent of an incomplete folder because the item will show | 3715 | // descendent of an incomplete folder because the item will show |
3580 | // up in an inventory descendents message soon enough so we do not | 3716 | // up in an inventory descendents message soon enough so we do not |
3581 | // have to fetch it individually. | 3717 | // have to fetch it individually. |
3718 | LLSD items_llsd; | ||
3582 | LLUUID owner_id; | 3719 | LLUUID owner_id; |
3583 | LLMessageSystem* msg = gMessageSystem; | ||
3584 | bool start_new_message = true; | ||
3585 | for(item_ref_t::const_iterator iit = item_ids.begin(); iit != item_ids.end(); ++iit) | 3720 | for(item_ref_t::const_iterator iit = item_ids.begin(); iit != item_ids.end(); ++iit) |
3586 | { | 3721 | { |
3587 | LLViewerInventoryItem* item = gInventory.getItem(*iit); | 3722 | LLViewerInventoryItem* item = gInventory.getItem(*iit); |
@@ -3604,33 +3739,17 @@ void LLInventoryFetchComboObserver::fetch( | |||
3604 | } | 3739 | } |
3605 | if(std::find(mIncompleteFolders.begin(), mIncompleteFolders.end(), item->getParentUUID()) == mIncompleteFolders.end()) | 3740 | if(std::find(mIncompleteFolders.begin(), mIncompleteFolders.end(), item->getParentUUID()) == mIncompleteFolders.end()) |
3606 | { | 3741 | { |
3607 | lldebugs << "fetching item " << *iit << llendl; | 3742 | LLSD item_entry; |
3608 | if(start_new_message) | 3743 | item_entry["owner_id"] = owner_id; |
3609 | { | 3744 | item_entry["item_id"] = (*iit); |
3610 | start_new_message = false; | 3745 | items_llsd.append(item_entry); |
3611 | msg->newMessageFast(_PREHASH_FetchInventory); | ||
3612 | msg->nextBlockFast(_PREHASH_AgentData); | ||
3613 | msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID()); | ||
3614 | msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID()); | ||
3615 | } | ||
3616 | msg->nextBlockFast(_PREHASH_InventoryData); | ||
3617 | msg->addUUIDFast(_PREHASH_OwnerID, owner_id); | ||
3618 | msg->addUUIDFast(_PREHASH_ItemID, (*iit)); | ||
3619 | if(msg->isSendFullFast(_PREHASH_InventoryData)) | ||
3620 | { | ||
3621 | start_new_message = true; | ||
3622 | gAgent.sendReliableMessage(); | ||
3623 | } | ||
3624 | } | 3746 | } |
3625 | else | 3747 | else |
3626 | { | 3748 | { |
3627 | lldebugs << "not worrying about " << *iit << llendl; | 3749 | lldebugs << "not worrying about " << *iit << llendl; |
3628 | } | 3750 | } |
3629 | } | 3751 | } |
3630 | if(!start_new_message) | 3752 | fetch_items_from_llsd(items_llsd); |
3631 | { | ||
3632 | gAgent.sendReliableMessage(); | ||
3633 | } | ||
3634 | } | 3753 | } |
3635 | 3754 | ||
3636 | void LLInventoryExistenceObserver::watchItem(const LLUUID& id) | 3755 | void LLInventoryExistenceObserver::watchItem(const LLUUID& id) |
@@ -3676,7 +3795,17 @@ void LLInventoryAddedObserver::changed(U32 mask) | |||
3676 | // the network, figure out which item was updated. | 3795 | // the network, figure out which item was updated. |
3677 | // Code from Gigs Taggert, sin allowed by JC. | 3796 | // Code from Gigs Taggert, sin allowed by JC. |
3678 | LLMessageSystem* msg = gMessageSystem; | 3797 | LLMessageSystem* msg = gMessageSystem; |
3679 | std::string msg_name = msg->getMessageName(); | 3798 | |
3799 | std::string msg_name; | ||
3800 | if (mMessageName.empty()) | ||
3801 | { | ||
3802 | msg_name = msg->getMessageName(); | ||
3803 | } | ||
3804 | else | ||
3805 | { | ||
3806 | msg_name = mMessageName; | ||
3807 | } | ||
3808 | |||
3680 | if (msg_name.empty()) | 3809 | if (msg_name.empty()) |
3681 | { | 3810 | { |
3682 | return; | 3811 | return; |
diff --git a/linden/indra/newview/llinventorymodel.h b/linden/indra/newview/llinventorymodel.h index 8017410..d2be761 100644 --- a/linden/indra/newview/llinventorymodel.h +++ b/linden/indra/newview/llinventorymodel.h | |||
@@ -69,6 +69,7 @@ public: | |||
69 | }; | 69 | }; |
70 | virtual ~LLInventoryObserver() {}; | 70 | virtual ~LLInventoryObserver() {}; |
71 | virtual void changed(U32 mask) = 0; | 71 | virtual void changed(U32 mask) = 0; |
72 | std::string mMessageName; // used by Agent Inventory Service only. [DEV-20328] | ||
72 | }; | 73 | }; |
73 | 74 | ||
74 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 75 | //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
@@ -110,20 +111,17 @@ public: | |||
110 | LLInventoryModel(); | 111 | LLInventoryModel(); |
111 | ~LLInventoryModel(); | 112 | ~LLInventoryModel(); |
112 | 113 | ||
113 | class fetchDescendentsResponder: public LLHTTPClient::Responder | 114 | class fetchInventoryResponder: public LLHTTPClient::Responder |
114 | { | 115 | { |
115 | public: | 116 | public: |
116 | fetchDescendentsResponder(const LLSD& request_sd) : mRequestSD(request_sd) {}; | 117 | fetchInventoryResponder(const LLSD& request_sd) : mRequestSD(request_sd) {}; |
117 | void result(const LLSD& content); | 118 | void result(const LLSD& content); |
118 | void error(U32 status, const std::string& reason); | 119 | void error(U32 status, const std::string& reason); |
119 | static void onClickRetry(S32 option, void* userdata); | 120 | |
120 | static void appendRetryList(LLSD retry_sd); | 121 | public: |
121 | public: | 122 | typedef std::vector<LLViewerInventoryCategory*> folder_ref_t; |
122 | typedef std::vector<LLViewerInventoryCategory*> folder_ref_t; | 123 | protected: |
123 | protected: | 124 | LLSD mRequestSD; |
124 | LLSD mRequestSD; | ||
125 | static LLSD sRetrySD; | ||
126 | static LLAlertDialog *sRetryDialog; | ||
127 | }; | 125 | }; |
128 | 126 | ||
129 | // | 127 | // |
@@ -268,7 +266,8 @@ public: | |||
268 | // Call this method when it's time to update everyone on a new | 266 | // Call this method when it's time to update everyone on a new |
269 | // state, by default, the inventory model will not update | 267 | // state, by default, the inventory model will not update |
270 | // observers automatically. | 268 | // observers automatically. |
271 | void notifyObservers(); | 269 | // The optional argument 'service_name' is used by Agent Inventory Service [DEV-20328] |
270 | void notifyObservers(const std::string service_name=""); | ||
272 | 271 | ||
273 | // This allows outsiders to tell the inventory if something has | 272 | // This allows outsiders to tell the inventory if something has |
274 | // been changed 'under the hood', but outside the control of the | 273 | // been changed 'under the hood', but outside the control of the |
@@ -370,7 +369,7 @@ public: | |||
370 | // start and stop background breadth-first fetching of inventory contents | 369 | // start and stop background breadth-first fetching of inventory contents |
371 | // this gets triggered when performing a filter-search | 370 | // this gets triggered when performing a filter-search |
372 | static void startBackgroundFetch(const LLUUID& cat_id = LLUUID::null); // start fetch process | 371 | static void startBackgroundFetch(const LLUUID& cat_id = LLUUID::null); // start fetch process |
373 | static void stopBackgroundFetch(); // stop fetch process | 372 | static void findLostItems(); |
374 | static BOOL backgroundFetchActive(); | 373 | static BOOL backgroundFetchActive(); |
375 | static bool isEverythingFetched(); | 374 | static bool isEverythingFetched(); |
376 | static void backgroundFetch(void*); // background fetch idle function | 375 | static void backgroundFetch(void*); // background fetch idle function |
@@ -419,7 +418,6 @@ protected: | |||
419 | static void processInventoryDescendents(LLMessageSystem* msg, void**); | 418 | static void processInventoryDescendents(LLMessageSystem* msg, void**); |
420 | static void processMoveInventoryItem(LLMessageSystem* msg, void**); | 419 | static void processMoveInventoryItem(LLMessageSystem* msg, void**); |
421 | static void processFetchInventoryReply(LLMessageSystem* msg, void**); | 420 | static void processFetchInventoryReply(LLMessageSystem* msg, void**); |
422 | static bool isBulkFetchProcessingComplete(); | ||
423 | 421 | ||
424 | bool messageUpdateCore(LLMessageSystem* msg, bool do_accounting); | 422 | bool messageUpdateCore(LLMessageSystem* msg, bool do_accounting); |
425 | 423 | ||
@@ -460,11 +458,8 @@ protected: | |||
460 | observer_list_t mObservers; | 458 | observer_list_t mObservers; |
461 | 459 | ||
462 | // completing the fetch once per session should be sufficient | 460 | // completing the fetch once per session should be sufficient |
463 | static cat_map_t sBulkFetchMap; | ||
464 | static BOOL sBackgroundFetchActive; | 461 | static BOOL sBackgroundFetchActive; |
465 | static BOOL sTimelyFetchPending; | 462 | static BOOL sTimelyFetchPending; |
466 | static BOOL sAllFoldersFetched; | ||
467 | static BOOL sFullFetchStarted; | ||
468 | static S32 sNumFetchRetries; | 463 | static S32 sNumFetchRetries; |
469 | static LLFrameTimer sFetchTimer; | 464 | static LLFrameTimer sFetchTimer; |
470 | static F32 sMinTimeBetweenFetches; | 465 | static F32 sMinTimeBetweenFetches; |
@@ -477,6 +472,11 @@ protected: | |||
477 | public: | 472 | public: |
478 | // *NOTE: DEBUG functionality | 473 | // *NOTE: DEBUG functionality |
479 | void dumpInventory(); | 474 | void dumpInventory(); |
475 | static bool isBulkFetchProcessingComplete(); | ||
476 | static void stopBackgroundFetch(); // stop fetch process | ||
477 | |||
478 | static BOOL sFullFetchStarted; | ||
479 | static BOOL sAllFoldersFetched; | ||
480 | }; | 480 | }; |
481 | 481 | ||
482 | // a special inventory model for the agent | 482 | // a special inventory model for the agent |
diff --git a/linden/indra/newview/llmaniptranslate.h b/linden/indra/newview/llmaniptranslate.h index 7784860..383f4da 100644 --- a/linden/indra/newview/llmaniptranslate.h +++ b/linden/indra/newview/llmaniptranslate.h | |||
@@ -113,7 +113,7 @@ private: | |||
113 | LLVector3d mDragCursorStartGlobal; | 113 | LLVector3d mDragCursorStartGlobal; |
114 | LLVector3d mDragSelectionStartGlobal; | 114 | LLVector3d mDragSelectionStartGlobal; |
115 | LLTimer mUpdateTimer; | 115 | LLTimer mUpdateTimer; |
116 | typedef std::set<ManipulatorHandle*, compare_manipulators> minpulator_list_t; | 116 | typedef std::multiset<ManipulatorHandle*, compare_manipulators> minpulator_list_t; |
117 | minpulator_list_t mProjectedManipulators; | 117 | minpulator_list_t mProjectedManipulators; |
118 | LLVector4 mManipulatorVertices[18]; | 118 | LLVector4 mManipulatorVertices[18]; |
119 | F32 mSnapOffsetMeters; | 119 | F32 mSnapOffsetMeters; |
diff --git a/linden/indra/newview/llnetmap.cpp b/linden/indra/newview/llnetmap.cpp index 22dee9d..ee853fe 100644 --- a/linden/indra/newview/llnetmap.cpp +++ b/linden/indra/newview/llnetmap.cpp | |||
@@ -604,9 +604,13 @@ BOOL LLNetMap::handleToolTip( S32 x, S32 y, std::string& msg, LLRect* sticky_rec | |||
604 | buffer = region->getHost().getString(); | 604 | buffer = region->getHost().getString(); |
605 | msg.append(buffer); | 605 | msg.append(buffer); |
606 | #endif | 606 | #endif |
607 | // *TODO: put this under the control of XUI so it can be | 607 | // *TODO: |
608 | // translated. | 608 | // - put this under the control of XUI so it can be translated. |
609 | msg.append("\n(Double-click to open Map)"); | 609 | |
610 | if ( gSavedSettings.getBOOL( "MiniMapTeleport" )) | ||
611 | msg.append("\n(Double-click to teleport)"); | ||
612 | else | ||
613 | msg.append("\n(Double-click to open Map)"); | ||
610 | 614 | ||
611 | S32 SLOP = 4; | 615 | S32 SLOP = 4; |
612 | localPointToScreen( | 616 | localPointToScreen( |
@@ -767,7 +771,14 @@ void LLNetMap::createObjectImage() | |||
767 | 771 | ||
768 | BOOL LLNetMap::handleDoubleClick( S32 x, S32 y, MASK mask ) | 772 | BOOL LLNetMap::handleDoubleClick( S32 x, S32 y, MASK mask ) |
769 | { | 773 | { |
770 | LLFloaterWorldMap::show(NULL, FALSE); | 774 | if (gSavedSettings.getBOOL( "MiniMapTeleport" )) |
775 | { | ||
776 | gAgent.setControlFlags(AGENT_CONTROL_STAND_UP); | ||
777 | gAgent.teleportViaLocation( viewPosToGlobal(x,y) ); | ||
778 | } | ||
779 | else | ||
780 | LLFloaterWorldMap::show(NULL, FALSE); | ||
781 | |||
771 | return TRUE; | 782 | return TRUE; |
772 | } | 783 | } |
773 | 784 | ||
diff --git a/linden/indra/newview/llpanelface.cpp b/linden/indra/newview/llpanelface.cpp index 4742627..d1c34f1 100644 --- a/linden/indra/newview/llpanelface.cpp +++ b/linden/indra/newview/llpanelface.cpp | |||
@@ -35,6 +35,7 @@ | |||
35 | #include "llpanelface.h" | 35 | #include "llpanelface.h" |
36 | 36 | ||
37 | // library includes | 37 | // library includes |
38 | #include "llcalc.h" | ||
38 | #include "llerror.h" | 39 | #include "llerror.h" |
39 | #include "llfocusmgr.h" | 40 | #include "llfocusmgr.h" |
40 | #include "llrect.h" | 41 | #include "llrect.h" |
@@ -60,6 +61,7 @@ | |||
60 | #include "llviewermedia.h" | 61 | #include "llviewermedia.h" |
61 | #include "llviewerobject.h" | 62 | #include "llviewerobject.h" |
62 | #include "llviewerstats.h" | 63 | #include "llviewerstats.h" |
64 | #include "llviewerwindow.h" | ||
63 | #include "lluictrlfactory.h" | 65 | #include "lluictrlfactory.h" |
64 | 66 | ||
65 | // | 67 | // |
@@ -179,6 +181,7 @@ BOOL LLPanelFace::postBuild() | |||
179 | childSetCommitCallback("TexOffsetU",LLPanelFace::onCommitTextureInfo, this); | 181 | childSetCommitCallback("TexOffsetU",LLPanelFace::onCommitTextureInfo, this); |
180 | childSetCommitCallback("TexOffsetV",LLPanelFace::onCommitTextureInfo, this); | 182 | childSetCommitCallback("TexOffsetV",LLPanelFace::onCommitTextureInfo, this); |
181 | childSetAction("button align",onClickAutoFix,this); | 183 | childSetAction("button align",onClickAutoFix,this); |
184 | childSetAction("texture_math_constants",onClickTextureConstants,this); | ||
182 | 185 | ||
183 | clearCtrls(); | 186 | clearCtrls(); |
184 | 187 | ||
@@ -381,6 +384,7 @@ void LLPanelFace::sendTextureInfo() | |||
381 | void LLPanelFace::getState() | 384 | void LLPanelFace::getState() |
382 | { | 385 | { |
383 | LLViewerObject* objectp = LLSelectMgr::getInstance()->getSelection()->getFirstObject(); | 386 | LLViewerObject* objectp = LLSelectMgr::getInstance()->getSelection()->getFirstObject(); |
387 | LLCalc* calcp = LLCalc::getInstance(); | ||
384 | 388 | ||
385 | if( objectp | 389 | if( objectp |
386 | && objectp->getPCode() == LL_PCODE_VOLUME | 390 | && objectp->getPCode() == LL_PCODE_VOLUME |
@@ -754,6 +758,16 @@ void LLPanelFace::getState() | |||
754 | childSetEnabled("button apply",enabled); | 758 | childSetEnabled("button apply",enabled); |
755 | } | 759 | } |
756 | } | 760 | } |
761 | childSetEnabled("texture_math_constants",true); | ||
762 | |||
763 | // Set variable values for numeric expressions | ||
764 | calcp->setVar(LLCalc::TEX_U_SCALE, childGetValue("TexScaleU").asReal()); | ||
765 | calcp->setVar(LLCalc::TEX_V_SCALE, childGetValue("TexScaleV").asReal()); | ||
766 | calcp->setVar(LLCalc::TEX_U_OFFSET, childGetValue("TexOffsetU").asReal()); | ||
767 | calcp->setVar(LLCalc::TEX_V_OFFSET, childGetValue("TexOffsetV").asReal()); | ||
768 | calcp->setVar(LLCalc::TEX_ROTATION, childGetValue("TexRot").asReal()); | ||
769 | calcp->setVar(LLCalc::TEX_TRANSPARENCY, childGetValue("ColorTrans").asReal()); | ||
770 | calcp->setVar(LLCalc::TEX_GLOW, childGetValue("glow").asReal()); | ||
757 | } | 771 | } |
758 | else | 772 | else |
759 | { | 773 | { |
@@ -787,6 +801,17 @@ void LLPanelFace::getState() | |||
787 | 801 | ||
788 | childSetEnabled("button align",FALSE); | 802 | childSetEnabled("button align",FALSE); |
789 | childSetEnabled("button apply",FALSE); | 803 | childSetEnabled("button apply",FALSE); |
804 | |||
805 | childSetEnabled("texture_math_constants",false); | ||
806 | |||
807 | // Set variable values for numeric expressions | ||
808 | calcp->clearVar(LLCalc::TEX_U_SCALE); | ||
809 | calcp->clearVar(LLCalc::TEX_V_SCALE); | ||
810 | calcp->clearVar(LLCalc::TEX_U_OFFSET); | ||
811 | calcp->clearVar(LLCalc::TEX_V_OFFSET); | ||
812 | calcp->clearVar(LLCalc::TEX_ROTATION); | ||
813 | calcp->clearVar(LLCalc::TEX_TRANSPARENCY); | ||
814 | calcp->clearVar(LLCalc::TEX_GLOW); | ||
790 | } | 815 | } |
791 | } | 816 | } |
792 | 817 | ||
@@ -969,3 +994,9 @@ void LLPanelFace::onClickAutoFix(void* userdata) | |||
969 | LLPanelFaceSendFunctor sendfunc; | 994 | LLPanelFaceSendFunctor sendfunc; |
970 | LLSelectMgr::getInstance()->getSelection()->applyToObjects(&sendfunc); | 995 | LLSelectMgr::getInstance()->getSelection()->applyToObjects(&sendfunc); |
971 | } | 996 | } |
997 | |||
998 | // static | ||
999 | void LLPanelFace::onClickTextureConstants(void *) | ||
1000 | { | ||
1001 | gViewerWindow->alertXml("ClickTextureConstants"); | ||
1002 | } \ No newline at end of file | ||
diff --git a/linden/indra/newview/llpanelface.h b/linden/indra/newview/llpanelface.h index 230772b..b977583 100644 --- a/linden/indra/newview/llpanelface.h +++ b/linden/indra/newview/llpanelface.h | |||
@@ -88,6 +88,7 @@ protected: | |||
88 | 88 | ||
89 | static void onClickApply(void*); | 89 | static void onClickApply(void*); |
90 | static void onClickAutoFix(void*); | 90 | static void onClickAutoFix(void*); |
91 | static void onClickTextureConstants(void *); | ||
91 | static F32 valueGlow(LLViewerObject* object, S32 face); | 92 | static F32 valueGlow(LLViewerObject* object, S32 face); |
92 | }; | 93 | }; |
93 | 94 | ||
diff --git a/linden/indra/newview/llpanelgeneral.cpp b/linden/indra/newview/llpanelgeneral.cpp index 256f02a..16da49d 100644 --- a/linden/indra/newview/llpanelgeneral.cpp +++ b/linden/indra/newview/llpanelgeneral.cpp | |||
@@ -109,6 +109,7 @@ LLPanelGeneral::LLPanelGeneral() | |||
109 | BOOL LLPanelGeneral::postBuild() | 109 | BOOL LLPanelGeneral::postBuild() |
110 | { | 110 | { |
111 | childSetCommitCallback("fade_out_combobox", set_render_name_fade_out); | 111 | childSetCommitCallback("fade_out_combobox", set_render_name_fade_out); |
112 | childSetAction("reset_ui_size", onClickResetUISize, this); | ||
112 | 113 | ||
113 | std::string region_name_prompt = getString("region_name_prompt"); | 114 | std::string region_name_prompt = getString("region_name_prompt"); |
114 | 115 | ||
@@ -199,6 +200,7 @@ void LLPanelGeneral::refresh() | |||
199 | mChatOnlineNotification = gSavedSettings.getBOOL("ChatOnlineNotification"); | 200 | mChatOnlineNotification = gSavedSettings.getBOOL("ChatOnlineNotification"); |
200 | mAFKTimeout = gSavedSettings.getF32("AFKTimeout"); | 201 | mAFKTimeout = gSavedSettings.getF32("AFKTimeout"); |
201 | mMiniMapRotate = gSavedSettings.getBOOL("MiniMapRotate"); | 202 | mMiniMapRotate = gSavedSettings.getBOOL("MiniMapRotate"); |
203 | mMiniMapTeleport = gSavedSettings.getBOOL("MiniMapTeleport"); | ||
202 | mNotifyMoney = gSavedSettings.getBOOL("NotifyMoneyChange"); | 204 | mNotifyMoney = gSavedSettings.getBOOL("NotifyMoneyChange"); |
203 | mUseDefaultColor = gSavedSettings.getBOOL("UseDefaultColorPicker"); | 205 | mUseDefaultColor = gSavedSettings.getBOOL("UseDefaultColorPicker"); |
204 | mEffectColor = gSavedSettings.getColor4("EffectColor"); | 206 | mEffectColor = gSavedSettings.getColor4("EffectColor"); |
@@ -223,6 +225,7 @@ void LLPanelGeneral::cancel() | |||
223 | gSavedSettings.setBOOL("ChatOnlineNotification", mChatOnlineNotification ); | 225 | gSavedSettings.setBOOL("ChatOnlineNotification", mChatOnlineNotification ); |
224 | gSavedSettings.setF32("AFKTimeout", mAFKTimeout ); | 226 | gSavedSettings.setF32("AFKTimeout", mAFKTimeout ); |
225 | gSavedSettings.setBOOL("MiniMapRotate", mMiniMapRotate ); | 227 | gSavedSettings.setBOOL("MiniMapRotate", mMiniMapRotate ); |
228 | gSavedSettings.setBOOL("MiniMapTeleport", mMiniMapTeleport); | ||
226 | gSavedSettings.setBOOL("NotifyMoneyChange", mNotifyMoney ); | 229 | gSavedSettings.setBOOL("NotifyMoneyChange", mNotifyMoney ); |
227 | gSavedSettings.setBOOL("UseDefaultColorPicker", mUseDefaultColor ); | 230 | gSavedSettings.setBOOL("UseDefaultColorPicker", mUseDefaultColor ); |
228 | gSavedSettings.setBOOL("ShowSearchBar", mShowSearch); | 231 | gSavedSettings.setBOOL("ShowSearchBar", mShowSearch); |
@@ -240,3 +243,10 @@ void LLPanelGeneral::clickShowStartLocation(LLUICtrl*, void* user_data) | |||
240 | { | 243 | { |
241 | LLPanelLogin::refreshLocation( false ); // in case LLPanelLogin is visible | 244 | LLPanelLogin::refreshLocation( false ); // in case LLPanelLogin is visible |
242 | } | 245 | } |
246 | |||
247 | // static | ||
248 | void LLPanelGeneral::onClickResetUISize(void* user_data) | ||
249 | { | ||
250 | gSavedSettings.setF32("UIScaleFactor", 1.0f); | ||
251 | gViewerWindow->reshape(gViewerWindow->getWindowDisplayWidth(), gViewerWindow->getWindowDisplayHeight()); | ||
252 | } \ No newline at end of file | ||
diff --git a/linden/indra/newview/llpanelgeneral.h b/linden/indra/newview/llpanelgeneral.h index a7b526d..00dc874 100644 --- a/linden/indra/newview/llpanelgeneral.h +++ b/linden/indra/newview/llpanelgeneral.h | |||
@@ -56,6 +56,7 @@ public: | |||
56 | static void clickShowStartLocation(LLUICtrl*, void* user_data); | 56 | static void clickShowStartLocation(LLUICtrl*, void* user_data); |
57 | static void set_start_location(LLUICtrl* ctrl, void* data); | 57 | static void set_start_location(LLUICtrl* ctrl, void* data); |
58 | static void set_specific_start_location(LLLineEditor* line_editor, void* data); | 58 | static void set_specific_start_location(LLLineEditor* line_editor, void* data); |
59 | static void onClickResetUISize(void*); | ||
59 | 60 | ||
60 | protected: | 61 | protected: |
61 | S32 mRenderName; | 62 | S32 mRenderName; |
@@ -71,6 +72,7 @@ protected: | |||
71 | F32 mUIScaleFactor; | 72 | F32 mUIScaleFactor; |
72 | BOOL mUIAutoScale; | 73 | BOOL mUIAutoScale; |
73 | BOOL mMiniMapRotate; | 74 | BOOL mMiniMapRotate; |
75 | BOOL mMiniMapTeleport; | ||
74 | S32 mOldCrashBehavior; | 76 | S32 mOldCrashBehavior; |
75 | std::string mLoginLocation; | 77 | std::string mLoginLocation; |
76 | std::string mLanguage; | 78 | std::string mLanguage; |
diff --git a/linden/indra/newview/llpanelobject.cpp b/linden/indra/newview/llpanelobject.cpp index cc9d969..5cd8690 100644 --- a/linden/indra/newview/llpanelobject.cpp +++ b/linden/indra/newview/llpanelobject.cpp | |||
@@ -46,6 +46,7 @@ | |||
46 | // project includes | 46 | // project includes |
47 | #include "llagent.h" | 47 | #include "llagent.h" |
48 | #include "llbutton.h" | 48 | #include "llbutton.h" |
49 | #include "llcalc.h" | ||
49 | #include "llcheckboxctrl.h" | 50 | #include "llcheckboxctrl.h" |
50 | #include "llcolorswatch.h" | 51 | #include "llcolorswatch.h" |
51 | #include "llcombobox.h" | 52 | #include "llcombobox.h" |
@@ -109,6 +110,9 @@ BOOL LLPanelObject::postBuild() | |||
109 | // Top | 110 | // Top |
110 | //-------------------------------------------------------- | 111 | //-------------------------------------------------------- |
111 | 112 | ||
113 | // Build constant tipsheet | ||
114 | childSetAction("build_math_constants",onClickBuildConstants,this); | ||
115 | |||
112 | // Lock checkbox | 116 | // Lock checkbox |
113 | mCheckLock = getChild<LLCheckBoxCtrl>("checkbox locked"); | 117 | mCheckLock = getChild<LLCheckBoxCtrl>("checkbox locked"); |
114 | childSetCommitCallback("checkbox locked",onCommitLock,this); | 118 | childSetCommitCallback("checkbox locked",onCommitLock,this); |
@@ -341,6 +345,8 @@ void LLPanelObject::getState( ) | |||
341 | } | 345 | } |
342 | } | 346 | } |
343 | 347 | ||
348 | LLCalc* calcp = LLCalc::getInstance(); | ||
349 | |||
344 | LLVOVolume *volobjp = NULL; | 350 | LLVOVolume *volobjp = NULL; |
345 | if ( objectp && (objectp->getPCode() == LL_PCODE_VOLUME)) | 351 | if ( objectp && (objectp->getPCode() == LL_PCODE_VOLUME)) |
346 | { | 352 | { |
@@ -357,6 +363,7 @@ void LLPanelObject::getState( ) | |||
357 | 363 | ||
358 | // Disable all text input fields | 364 | // Disable all text input fields |
359 | clearCtrls(); | 365 | clearCtrls(); |
366 | calcp->clearAllVariables(); | ||
360 | return; | 367 | return; |
361 | } | 368 | } |
362 | 369 | ||
@@ -365,6 +372,7 @@ void LLPanelObject::getState( ) | |||
365 | BOOL enable_scale = objectp->permMove() && objectp->permModify(); | 372 | BOOL enable_scale = objectp->permMove() && objectp->permModify(); |
366 | BOOL enable_rotate = objectp->permMove() && ( (objectp->permModify() && !objectp->isAttachment()) || !gSavedSettings.getBOOL("EditLinkedParts")); | 373 | BOOL enable_rotate = objectp->permMove() && ( (objectp->permModify() && !objectp->isAttachment()) || !gSavedSettings.getBOOL("EditLinkedParts")); |
367 | 374 | ||
375 | childSetEnabled("build_math_constants",true); | ||
368 | LLVector3 vec; | 376 | LLVector3 vec; |
369 | if (enable_move) | 377 | if (enable_move) |
370 | { | 378 | { |
@@ -372,12 +380,18 @@ void LLPanelObject::getState( ) | |||
372 | mCtrlPosX->set( vec.mV[VX] ); | 380 | mCtrlPosX->set( vec.mV[VX] ); |
373 | mCtrlPosY->set( vec.mV[VY] ); | 381 | mCtrlPosY->set( vec.mV[VY] ); |
374 | mCtrlPosZ->set( vec.mV[VZ] ); | 382 | mCtrlPosZ->set( vec.mV[VZ] ); |
383 | calcp->setVar(LLCalc::X_POS, vec.mV[VX]); | ||
384 | calcp->setVar(LLCalc::Y_POS, vec.mV[VY]); | ||
385 | calcp->setVar(LLCalc::Z_POS, vec.mV[VZ]); | ||
375 | } | 386 | } |
376 | else | 387 | else |
377 | { | 388 | { |
378 | mCtrlPosX->clear(); | 389 | mCtrlPosX->clear(); |
379 | mCtrlPosY->clear(); | 390 | mCtrlPosY->clear(); |
380 | mCtrlPosZ->clear(); | 391 | mCtrlPosZ->clear(); |
392 | calcp->clearVar(LLCalc::X_POS); | ||
393 | calcp->clearVar(LLCalc::Y_POS); | ||
394 | calcp->clearVar(LLCalc::Z_POS); | ||
381 | } | 395 | } |
382 | 396 | ||
383 | 397 | ||
@@ -392,12 +406,18 @@ void LLPanelObject::getState( ) | |||
392 | mCtrlScaleX->set( vec.mV[VX] ); | 406 | mCtrlScaleX->set( vec.mV[VX] ); |
393 | mCtrlScaleY->set( vec.mV[VY] ); | 407 | mCtrlScaleY->set( vec.mV[VY] ); |
394 | mCtrlScaleZ->set( vec.mV[VZ] ); | 408 | mCtrlScaleZ->set( vec.mV[VZ] ); |
409 | calcp->setVar(LLCalc::X_SCALE, vec.mV[VX]); | ||
410 | calcp->setVar(LLCalc::Y_SCALE, vec.mV[VY]); | ||
411 | calcp->setVar(LLCalc::Z_SCALE, vec.mV[VZ]); | ||
395 | } | 412 | } |
396 | else | 413 | else |
397 | { | 414 | { |
398 | mCtrlScaleX->clear(); | 415 | mCtrlScaleX->clear(); |
399 | mCtrlScaleY->clear(); | 416 | mCtrlScaleY->clear(); |
400 | mCtrlScaleZ->clear(); | 417 | mCtrlScaleZ->clear(); |
418 | calcp->setVar(LLCalc::X_SCALE, 0.f); | ||
419 | calcp->setVar(LLCalc::Y_SCALE, 0.f); | ||
420 | calcp->setVar(LLCalc::Z_SCALE, 0.f); | ||
401 | } | 421 | } |
402 | 422 | ||
403 | mLabelSize->setEnabled( enable_scale ); | 423 | mLabelSize->setEnabled( enable_scale ); |
@@ -417,12 +437,18 @@ void LLPanelObject::getState( ) | |||
417 | mCtrlRotX->set( mCurEulerDegrees.mV[VX] ); | 437 | mCtrlRotX->set( mCurEulerDegrees.mV[VX] ); |
418 | mCtrlRotY->set( mCurEulerDegrees.mV[VY] ); | 438 | mCtrlRotY->set( mCurEulerDegrees.mV[VY] ); |
419 | mCtrlRotZ->set( mCurEulerDegrees.mV[VZ] ); | 439 | mCtrlRotZ->set( mCurEulerDegrees.mV[VZ] ); |
440 | calcp->setVar(LLCalc::X_ROT, mCurEulerDegrees.mV[VX]); | ||
441 | calcp->setVar(LLCalc::Y_ROT, mCurEulerDegrees.mV[VY]); | ||
442 | calcp->setVar(LLCalc::Z_ROT, mCurEulerDegrees.mV[VZ]); | ||
420 | } | 443 | } |
421 | else | 444 | else |
422 | { | 445 | { |
423 | mCtrlRotX->clear(); | 446 | mCtrlRotX->clear(); |
424 | mCtrlRotY->clear(); | 447 | mCtrlRotY->clear(); |
425 | mCtrlRotZ->clear(); | 448 | mCtrlRotZ->clear(); |
449 | calcp->clearVar(LLCalc::X_ROT); | ||
450 | calcp->clearVar(LLCalc::Y_ROT); | ||
451 | calcp->clearVar(LLCalc::Z_ROT); | ||
426 | } | 452 | } |
427 | 453 | ||
428 | mLabelRotation->setEnabled( enable_rotate ); | 454 | mLabelRotation->setEnabled( enable_rotate ); |
@@ -678,8 +704,9 @@ void LLPanelObject::getState( ) | |||
678 | F32 end_t = volume_params.getEndT(); | 704 | F32 end_t = volume_params.getEndT(); |
679 | 705 | ||
680 | // Hollowness | 706 | // Hollowness |
681 | F32 hollow = volume_params.getHollow(); | 707 | F32 hollow = 100.f * volume_params.getHollow(); |
682 | mSpinHollow->set( 100.f * hollow ); | 708 | mSpinHollow->set( hollow ); |
709 | calcp->setVar(LLCalc::HOLLOW, hollow); | ||
683 | 710 | ||
684 | // All hollow objects allow a shape to be selected. | 711 | // All hollow objects allow a shape to be selected. |
685 | if (hollow > 0.f) | 712 | if (hollow > 0.f) |
@@ -732,6 +759,10 @@ void LLPanelObject::getState( ) | |||
732 | mSpinCutEnd ->set( cut_end ); | 759 | mSpinCutEnd ->set( cut_end ); |
733 | mCtrlPathBegin ->set( adv_cut_begin ); | 760 | mCtrlPathBegin ->set( adv_cut_begin ); |
734 | mCtrlPathEnd ->set( adv_cut_end ); | 761 | mCtrlPathEnd ->set( adv_cut_end ); |
762 | calcp->setVar(LLCalc::CUT_BEGIN, cut_begin); | ||
763 | calcp->setVar(LLCalc::CUT_END, cut_end); | ||
764 | calcp->setVar(LLCalc::PATH_BEGIN, adv_cut_begin); | ||
765 | calcp->setVar(LLCalc::PATH_END, adv_cut_end); | ||
735 | 766 | ||
736 | // Twist | 767 | // Twist |
737 | F32 twist = volume_params.getTwist(); | 768 | F32 twist = volume_params.getTwist(); |
@@ -750,18 +781,24 @@ void LLPanelObject::getState( ) | |||
750 | 781 | ||
751 | mSpinTwist ->set( twist ); | 782 | mSpinTwist ->set( twist ); |
752 | mSpinTwistBegin ->set( twist_begin ); | 783 | mSpinTwistBegin ->set( twist_begin ); |
784 | calcp->setVar(LLCalc::TWIST_END, twist); | ||
785 | calcp->setVar(LLCalc::TWIST_BEGIN, twist_begin); | ||
753 | 786 | ||
754 | // Shear | 787 | // Shear |
755 | F32 shear_x = volume_params.getShearX(); | 788 | F32 shear_x = volume_params.getShearX(); |
756 | F32 shear_y = volume_params.getShearY(); | 789 | F32 shear_y = volume_params.getShearY(); |
757 | mSpinShearX->set( shear_x ); | 790 | mSpinShearX->set( shear_x ); |
758 | mSpinShearY->set( shear_y ); | 791 | mSpinShearY->set( shear_y ); |
792 | calcp->setVar(LLCalc::X_SHEAR, shear_x); | ||
793 | calcp->setVar(LLCalc::Y_SHEAR, shear_y); | ||
759 | 794 | ||
760 | // Taper | 795 | // Taper |
761 | F32 taper_x = volume_params.getTaperX(); | 796 | F32 taper_x = volume_params.getTaperX(); |
762 | F32 taper_y = volume_params.getTaperY(); | 797 | F32 taper_y = volume_params.getTaperY(); |
763 | mSpinTaperX->set( taper_x ); | 798 | mSpinTaperX->set( taper_x ); |
764 | mSpinTaperY->set( taper_y ); | 799 | mSpinTaperY->set( taper_y ); |
800 | calcp->setVar(LLCalc::X_TAPER, taper_x); | ||
801 | calcp->setVar(LLCalc::Y_TAPER, taper_y); | ||
765 | 802 | ||
766 | // Radius offset. | 803 | // Radius offset. |
767 | F32 radius_offset = volume_params.getRadiusOffset(); | 804 | F32 radius_offset = volume_params.getRadiusOffset(); |
@@ -791,10 +828,12 @@ void LLPanelObject::getState( ) | |||
791 | } | 828 | } |
792 | } | 829 | } |
793 | mSpinRadiusOffset->set( radius_offset); | 830 | mSpinRadiusOffset->set( radius_offset); |
831 | calcp->setVar(LLCalc::RADIUS_OFFSET, radius_offset); | ||
794 | 832 | ||
795 | // Revolutions | 833 | // Revolutions |
796 | F32 revolutions = volume_params.getRevolutions(); | 834 | F32 revolutions = volume_params.getRevolutions(); |
797 | mSpinRevolutions->set( revolutions ); | 835 | mSpinRevolutions->set( revolutions ); |
836 | calcp->setVar(LLCalc::REVOLUTIONS, revolutions); | ||
798 | 837 | ||
799 | // Skew | 838 | // Skew |
800 | F32 skew = volume_params.getSkew(); | 839 | F32 skew = volume_params.getSkew(); |
@@ -819,6 +858,7 @@ void LLPanelObject::getState( ) | |||
819 | } | 858 | } |
820 | } | 859 | } |
821 | mSpinSkew->set( skew ); | 860 | mSpinSkew->set( skew ); |
861 | calcp->setVar(LLCalc::SKEW, skew); | ||
822 | } | 862 | } |
823 | 863 | ||
824 | // Compute control visibility, label names, and twist range. | 864 | // Compute control visibility, label names, and twist range. |
@@ -924,6 +964,8 @@ void LLPanelObject::getState( ) | |||
924 | case MI_RING: | 964 | case MI_RING: |
925 | mSpinScaleX->set( scale_x ); | 965 | mSpinScaleX->set( scale_x ); |
926 | mSpinScaleY->set( scale_y ); | 966 | mSpinScaleY->set( scale_y ); |
967 | calcp->setVar(LLCalc::X_HOLE, scale_x); | ||
968 | calcp->setVar(LLCalc::Y_HOLE, scale_y); | ||
927 | mSpinScaleX->setMinValue(OBJECT_MIN_HOLE_SIZE); | 969 | mSpinScaleX->setMinValue(OBJECT_MIN_HOLE_SIZE); |
928 | mSpinScaleX->setMaxValue(OBJECT_MAX_HOLE_SIZE_X); | 970 | mSpinScaleX->setMaxValue(OBJECT_MAX_HOLE_SIZE_X); |
929 | mSpinScaleY->setMinValue(OBJECT_MIN_HOLE_SIZE); | 971 | mSpinScaleY->setMinValue(OBJECT_MIN_HOLE_SIZE); |
@@ -934,6 +976,8 @@ void LLPanelObject::getState( ) | |||
934 | { | 976 | { |
935 | mSpinScaleX->set( 1.f - scale_x ); | 977 | mSpinScaleX->set( 1.f - scale_x ); |
936 | mSpinScaleY->set( 1.f - scale_y ); | 978 | mSpinScaleY->set( 1.f - scale_y ); |
979 | calcp->setVar(LLCalc::X_HOLE, 1.f - scale_x); | ||
980 | calcp->setVar(LLCalc::Y_HOLE, 1.f - scale_y); | ||
937 | mSpinScaleX->setMinValue(-1.f); | 981 | mSpinScaleX->setMinValue(-1.f); |
938 | mSpinScaleX->setMaxValue(1.f); | 982 | mSpinScaleX->setMaxValue(1.f); |
939 | mSpinScaleY->setMinValue(-1.f); | 983 | mSpinScaleY->setMinValue(-1.f); |
@@ -1148,7 +1192,7 @@ void LLPanelObject::getState( ) | |||
1148 | mSculptTextureRevert = LLUUID::null; | 1192 | mSculptTextureRevert = LLUUID::null; |
1149 | } | 1193 | } |
1150 | 1194 | ||
1151 | 1195 | ||
1152 | //---------------------------------------------------------------------------- | 1196 | //---------------------------------------------------------------------------- |
1153 | 1197 | ||
1154 | mObject = objectp; | 1198 | mObject = objectp; |
@@ -1913,6 +1957,8 @@ void LLPanelObject::clearCtrls() | |||
1913 | childSetEnabled( "advanced_cut", FALSE ); | 1957 | childSetEnabled( "advanced_cut", FALSE ); |
1914 | childSetEnabled( "advanced_dimple", FALSE ); | 1958 | childSetEnabled( "advanced_dimple", FALSE ); |
1915 | childSetVisible("advanced_slice", FALSE); | 1959 | childSetVisible("advanced_slice", FALSE); |
1960 | |||
1961 | childSetEnabled("build_math_constants",false); | ||
1916 | } | 1962 | } |
1917 | 1963 | ||
1918 | // | 1964 | // |
@@ -1954,6 +2000,9 @@ void LLPanelObject::onCommitRotation( LLUICtrl* ctrl, void* userdata ) | |||
1954 | LLPanelObject* self = (LLPanelObject*) userdata; | 2000 | LLPanelObject* self = (LLPanelObject*) userdata; |
1955 | BOOL btn_down = ((LLSpinCtrl*)ctrl)->isMouseHeldDown() ; | 2001 | BOOL btn_down = ((LLSpinCtrl*)ctrl)->isMouseHeldDown() ; |
1956 | self->sendRotation(btn_down); | 2002 | self->sendRotation(btn_down); |
2003 | |||
2004 | // Needed to ensure all rotations are shown consistently in range | ||
2005 | self->refresh(); | ||
1957 | } | 2006 | } |
1958 | 2007 | ||
1959 | // static | 2008 | // static |
@@ -2048,3 +2097,9 @@ void LLPanelObject::onCommitSculptType(LLUICtrl *ctrl, void* userdata) | |||
2048 | 2097 | ||
2049 | self->sendSculpt(); | 2098 | self->sendSculpt(); |
2050 | } | 2099 | } |
2100 | |||
2101 | // static | ||
2102 | void LLPanelObject::onClickBuildConstants(void *) | ||
2103 | { | ||
2104 | gViewerWindow->alertXml("ClickBuildConstants"); | ||
2105 | } | ||
diff --git a/linden/indra/newview/llpanelobject.h b/linden/indra/newview/llpanelobject.h index afdfd30..b72289c 100644 --- a/linden/indra/newview/llpanelobject.h +++ b/linden/indra/newview/llpanelobject.h | |||
@@ -83,6 +83,7 @@ public: | |||
83 | static BOOL onDropSculpt( LLUICtrl* ctrl, LLInventoryItem* item, void* ud); | 83 | static BOOL onDropSculpt( LLUICtrl* ctrl, LLInventoryItem* item, void* ud); |
84 | static void onCommitSculptType( LLUICtrl *ctrl, void* userdata); | 84 | static void onCommitSculptType( LLUICtrl *ctrl, void* userdata); |
85 | 85 | ||
86 | static void onClickBuildConstants(void *); | ||
86 | 87 | ||
87 | protected: | 88 | protected: |
88 | void getState(); | 89 | void getState(); |
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp index c863d19..84a5ecd 100644 --- a/linden/indra/newview/llstartup.cpp +++ b/linden/indra/newview/llstartup.cpp | |||
@@ -2285,6 +2285,9 @@ bool idle_startup() | |||
2285 | } | 2285 | } |
2286 | } | 2286 | } |
2287 | 2287 | ||
2288 | //DEV-17797. get null folder. Any items found here moved to Lost and Found | ||
2289 | LLInventoryModel::findLostItems(); | ||
2290 | |||
2288 | LLStartUp::setStartupState( STATE_PRECACHE ); | 2291 | LLStartUp::setStartupState( STATE_PRECACHE ); |
2289 | timeout.reset(); | 2292 | timeout.reset(); |
2290 | return FALSE; | 2293 | return FALSE; |
diff --git a/linden/indra/newview/llviewerinventory.cpp b/linden/indra/newview/llviewerinventory.cpp index 6d9d685..0323bb7 100644 --- a/linden/indra/newview/llviewerinventory.cpp +++ b/linden/indra/newview/llviewerinventory.cpp | |||
@@ -196,15 +196,34 @@ void LLViewerInventoryItem::fetchFromServer(void) const | |||
196 | { | 196 | { |
197 | if(!mIsComplete) | 197 | if(!mIsComplete) |
198 | { | 198 | { |
199 | LLMessageSystem* msg = gMessageSystem; | 199 | std::string url; |
200 | msg->newMessage("FetchInventory"); | 200 | |
201 | msg->nextBlock("AgentData"); | 201 | if( ALEXANDRIA_LINDEN_ID.getString() == mPermissions.getOwner().getString()) |
202 | msg->addUUID("AgentID", gAgent.getID()); | 202 | url = gAgent.getRegion()->getCapability("FetchLib"); |
203 | msg->addUUID("SessionID", gAgent.getSessionID()); | 203 | else |
204 | msg->nextBlock("InventoryData"); | 204 | url = gAgent.getRegion()->getCapability("FetchInventory"); |
205 | msg->addUUID("OwnerID", mPermissions.getOwner()); | 205 | |
206 | msg->addUUID("ItemID", mUUID); | 206 | if (!url.empty()) |
207 | gAgent.sendReliableMessage(); | 207 | { |
208 | LLSD body; | ||
209 | body["agent_id"] = gAgent.getID(); | ||
210 | body["items"][0]["owner_id"] = mPermissions.getOwner(); | ||
211 | body["items"][0]["item_id"] = mUUID; | ||
212 | |||
213 | LLHTTPClient::post(url, body, new LLInventoryModel::fetchInventoryResponder(body)); | ||
214 | } | ||
215 | else | ||
216 | { | ||
217 | LLMessageSystem* msg = gMessageSystem; | ||
218 | msg->newMessage("FetchInventory"); | ||
219 | msg->nextBlock("AgentData"); | ||
220 | msg->addUUID("AgentID", gAgent.getID()); | ||
221 | msg->addUUID("SessionID", gAgent.getSessionID()); | ||
222 | msg->nextBlock("InventoryData"); | ||
223 | msg->addUUID("OwnerID", mPermissions.getOwner()); | ||
224 | msg->addUUID("ItemID", mUUID); | ||
225 | gAgent.sendReliableMessage(); | ||
226 | } | ||
208 | } | 227 | } |
209 | else | 228 | else |
210 | { | 229 | { |
@@ -441,7 +460,7 @@ bool LLViewerInventoryCategory::fetchDescendents() | |||
441 | // This comes from LLInventoryFilter from llfolderview.h | 460 | // This comes from LLInventoryFilter from llfolderview.h |
442 | U32 sort_order = gSavedSettings.getU32("InventorySortOrder") & 0x1; | 461 | U32 sort_order = gSavedSettings.getU32("InventorySortOrder") & 0x1; |
443 | 462 | ||
444 | std::string url = gAgent.getRegion()->getCapability("FetchInventoryDescendents"); | 463 | std::string url = gAgent.getRegion()->getCapability("WebFetchInventoryDescendents"); |
445 | 464 | ||
446 | if (!url.empty()) //Capability found. Build up LLSD and use it. | 465 | if (!url.empty()) //Capability found. Build up LLSD and use it. |
447 | { | 466 | { |
@@ -449,7 +468,7 @@ bool LLViewerInventoryCategory::fetchDescendents() | |||
449 | } | 468 | } |
450 | else | 469 | else |
451 | { //Deprecated, but if we don't have a capability, use the old system. | 470 | { //Deprecated, but if we don't have a capability, use the old system. |
452 | llinfos << "FetchInventoryDescendents capability not found. Using deprecated UDP message." << llendl; | 471 | llinfos << "WebFetchInventoryDescendents capability not found. Using deprecated UDP message." << llendl; |
453 | LLMessageSystem* msg = gMessageSystem; | 472 | LLMessageSystem* msg = gMessageSystem; |
454 | msg->newMessage("FetchInventoryDescendents"); | 473 | msg->newMessage("FetchInventoryDescendents"); |
455 | msg->nextBlock("AgentData"); | 474 | msg->nextBlock("AgentData"); |
diff --git a/linden/indra/newview/llviewermenu.cpp b/linden/indra/newview/llviewermenu.cpp index 3bf390e..d607afe 100644 --- a/linden/indra/newview/llviewermenu.cpp +++ b/linden/indra/newview/llviewermenu.cpp | |||
@@ -146,13 +146,14 @@ | |||
146 | #include "llinventorymodel.h" | 146 | #include "llinventorymodel.h" |
147 | #include "llinventoryview.h" | 147 | #include "llinventoryview.h" |
148 | #include "llkeyboard.h" | 148 | #include "llkeyboard.h" |
149 | #include "llpanellogin.h" | 149 | #include "lllineeditor.h" |
150 | #include "llmenucommands.h" | 150 | #include "llmenucommands.h" |
151 | #include "llmenugl.h" | 151 | #include "llmenugl.h" |
152 | #include "llmorphview.h" | 152 | #include "llmorphview.h" |
153 | #include "llmoveview.h" | 153 | #include "llmoveview.h" |
154 | #include "llmutelist.h" | 154 | #include "llmutelist.h" |
155 | #include "llnotify.h" | 155 | #include "llnotify.h" |
156 | #include "llpanellogin.h" | ||
156 | #include "llpanelobject.h" | 157 | #include "llpanelobject.h" |
157 | #include "llparcel.h" | 158 | #include "llparcel.h" |
158 | #include "llprimitive.h" | 159 | #include "llprimitive.h" |
@@ -174,6 +175,7 @@ | |||
174 | #include "lltoolpie.h" | 175 | #include "lltoolpie.h" |
175 | #include "lltoolplacer.h" | 176 | #include "lltoolplacer.h" |
176 | #include "lltoolselectland.h" | 177 | #include "lltoolselectland.h" |
178 | #include "lltrans.h" | ||
177 | #include "lluictrlfactory.h" | 179 | #include "lluictrlfactory.h" |
178 | #include "lluploaddialog.h" | 180 | #include "lluploaddialog.h" |
179 | #include "lluserauth.h" | 181 | #include "lluserauth.h" |
@@ -303,8 +305,6 @@ void near_sit_object(); | |||
303 | void label_sit_or_stand(std::string& label, void*); | 305 | void label_sit_or_stand(std::string& label, void*); |
304 | // buy and take alias into the same UI positions, so these | 306 | // buy and take alias into the same UI positions, so these |
305 | // declarations handle this mess. | 307 | // declarations handle this mess. |
306 | BOOL is_selection_buy_not_take(); | ||
307 | S32 selection_price(); | ||
308 | BOOL enable_take(); | 308 | BOOL enable_take(); |
309 | void handle_take(); | 309 | void handle_take(); |
310 | void confirm_take(S32 option, void* data); | 310 | void confirm_take(S32 option, void* data); |
@@ -786,12 +786,6 @@ void init_client_menu(LLMenuGL* menu) | |||
786 | menu->appendMenu(sub_menu); | 786 | menu->appendMenu(sub_menu); |
787 | 787 | ||
788 | menu->appendSeparator(); | 788 | menu->appendSeparator(); |
789 | |||
790 | menu->append(new LLMenuItemCheckGL( "High-res Snapshot", | ||
791 | &menu_toggle_control, | ||
792 | NULL, | ||
793 | &menu_check_control, | ||
794 | (void*)"HighResSnapshot")); | ||
795 | 789 | ||
796 | menu->append(new LLMenuItemCheckGL( "Quiet Snapshots to Disk", | 790 | menu->append(new LLMenuItemCheckGL( "Quiet Snapshots to Disk", |
797 | &menu_toggle_control, | 791 | &menu_toggle_control, |
@@ -799,12 +793,6 @@ void init_client_menu(LLMenuGL* menu) | |||
799 | &menu_check_control, | 793 | &menu_check_control, |
800 | (void*)"QuietSnapshotsToDisk")); | 794 | (void*)"QuietSnapshotsToDisk")); |
801 | 795 | ||
802 | menu->append(new LLMenuItemCheckGL( "Compress Snapshots to Disk", | ||
803 | &menu_toggle_control, | ||
804 | NULL, | ||
805 | &menu_check_control, | ||
806 | (void*)"CompressSnapshotsToDisk")); | ||
807 | |||
808 | menu->append(new LLMenuItemCheckGL("Show Mouselook Crosshairs", | 796 | menu->append(new LLMenuItemCheckGL("Show Mouselook Crosshairs", |
809 | &menu_toggle_control, | 797 | &menu_toggle_control, |
810 | NULL, | 798 | NULL, |
@@ -923,12 +911,6 @@ void init_client_menu(LLMenuGL* menu) | |||
923 | &menu_check_control, | 911 | &menu_check_control, |
924 | (void*)"LimitSelectDistance")); | 912 | (void*)"LimitSelectDistance")); |
925 | 913 | ||
926 | menu->append(new LLMenuItemCheckGL("Disable Camera Constraints", | ||
927 | &menu_toggle_control, | ||
928 | NULL, | ||
929 | &menu_check_control, | ||
930 | (void*)"DisableCameraConstraints")); | ||
931 | |||
932 | menu->append(new LLMenuItemCheckGL("Mouse Smoothing", | 914 | menu->append(new LLMenuItemCheckGL("Mouse Smoothing", |
933 | &menu_toggle_control, | 915 | &menu_toggle_control, |
934 | NULL, | 916 | NULL, |
@@ -1379,7 +1361,7 @@ void init_debug_avatar_menu(LLMenuGL* menu) | |||
1379 | menu->append(new LLMenuItemToggleGL( "Display Agent Target", &LLAgent::sDebugDisplayTarget)); | 1361 | menu->append(new LLMenuItemToggleGL( "Display Agent Target", &LLAgent::sDebugDisplayTarget)); |
1380 | menu->append(new LLMenuItemToggleGL( "Debug Rotation", &gDebugAvatarRotation)); | 1362 | menu->append(new LLMenuItemToggleGL( "Debug Rotation", &gDebugAvatarRotation)); |
1381 | menu->append(new LLMenuItemCallGL("Dump Attachments", handle_dump_attachments)); | 1363 | menu->append(new LLMenuItemCallGL("Dump Attachments", handle_dump_attachments)); |
1382 | menu->append(new LLMenuItemCallGL("Rebake Textures", handle_rebake_textures, NULL, NULL, 'R', MASK_ALT | MASK_CONTROL )); | 1364 | menu->append(new LLMenuItemCallGL("Refresh Appearance", handle_rebake_textures, NULL, NULL, 'R', MASK_ALT | MASK_CONTROL )); |
1383 | #ifndef LL_RELEASE_FOR_DOWNLOAD | 1365 | #ifndef LL_RELEASE_FOR_DOWNLOAD |
1384 | menu->append(new LLMenuItemCallGL("Debug Avatar Textures", handle_debug_avatar_textures, NULL, NULL, 'A', MASK_SHIFT|MASK_CONTROL|MASK_ALT)); | 1366 | menu->append(new LLMenuItemCallGL("Debug Avatar Textures", handle_debug_avatar_textures, NULL, NULL, 'A', MASK_SHIFT|MASK_CONTROL|MASK_ALT)); |
1385 | menu->append(new LLMenuItemCallGL("Dump Local Textures", handle_dump_avatar_local_textures, NULL, NULL, 'M', MASK_SHIFT|MASK_ALT )); | 1367 | menu->append(new LLMenuItemCallGL("Dump Local Textures", handle_dump_avatar_local_textures, NULL, NULL, 'M', MASK_SHIFT|MASK_ALT )); |
@@ -1660,7 +1642,6 @@ class LLObjectEnableOpen : public view_listener_t | |||
1660 | } | 1642 | } |
1661 | }; | 1643 | }; |
1662 | 1644 | ||
1663 | |||
1664 | class LLViewCheckBuildMode : public view_listener_t | 1645 | class LLViewCheckBuildMode : public view_listener_t |
1665 | { | 1646 | { |
1666 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | 1647 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) |
@@ -3257,17 +3238,6 @@ class LLViewFullscreen : public view_listener_t | |||
3257 | } | 3238 | } |
3258 | }; | 3239 | }; |
3259 | 3240 | ||
3260 | class LLViewDefaultUISize : public view_listener_t | ||
3261 | { | ||
3262 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
3263 | { | ||
3264 | gSavedSettings.setF32("UIScaleFactor", 1.0f); | ||
3265 | gSavedSettings.setBOOL("UIAutoScale", FALSE); | ||
3266 | gViewerWindow->reshape(gViewerWindow->getWindowDisplayWidth(), gViewerWindow->getWindowDisplayHeight()); | ||
3267 | return true; | ||
3268 | } | ||
3269 | }; | ||
3270 | |||
3271 | class LLEditDuplicate : public view_listener_t | 3241 | class LLEditDuplicate : public view_listener_t |
3272 | { | 3242 | { |
3273 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | 3243 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) |
@@ -3928,7 +3898,7 @@ BOOL enable_take() | |||
3928 | return FALSE; | 3898 | return FALSE; |
3929 | } | 3899 | } |
3930 | 3900 | ||
3931 | class LLToolsBuyOrTake : public view_listener_t | 3901 | class LLToolsTake : public view_listener_t |
3932 | { | 3902 | { |
3933 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | 3903 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) |
3934 | { | 3904 | { |
@@ -3936,115 +3906,24 @@ class LLToolsBuyOrTake : public view_listener_t | |||
3936 | { | 3906 | { |
3937 | return true; | 3907 | return true; |
3938 | } | 3908 | } |
3939 | |||
3940 | if (is_selection_buy_not_take()) | ||
3941 | { | ||
3942 | S32 total_price = selection_price(); | ||
3943 | |||
3944 | if (total_price <= gStatusBar->getBalance() || total_price == 0) | ||
3945 | { | ||
3946 | handle_buy(NULL); | ||
3947 | } | ||
3948 | else | ||
3949 | { | ||
3950 | LLFloaterBuyCurrency::buyCurrency( | ||
3951 | "Buying this costs", total_price); | ||
3952 | } | ||
3953 | } | ||
3954 | else | 3909 | else |
3955 | { | 3910 | { |
3956 | handle_take(); | 3911 | handle_take(); |
3912 | return true; | ||
3957 | } | 3913 | } |
3958 | return true; | ||
3959 | } | 3914 | } |
3960 | }; | 3915 | }; |
3961 | 3916 | ||
3962 | class LLToolsEnableBuyOrTake : public view_listener_t | 3917 | class LLToolsEnableTake : public view_listener_t |
3963 | { | 3918 | { |
3964 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | 3919 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) |
3965 | { | 3920 | { |
3966 | bool is_buy = is_selection_buy_not_take(); | 3921 | bool new_value = enable_take(); |
3967 | bool new_value = is_buy ? enable_buy(NULL) : enable_take(); | ||
3968 | gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value); | 3922 | gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value); |
3969 | |||
3970 | // Update label | ||
3971 | std::string label; | ||
3972 | std::string buy_text; | ||
3973 | std::string take_text; | ||
3974 | std::string param = userdata["data"].asString(); | ||
3975 | std::string::size_type offset = param.find(","); | ||
3976 | if (offset != param.npos) | ||
3977 | { | ||
3978 | buy_text = param.substr(0, offset); | ||
3979 | take_text = param.substr(offset+1); | ||
3980 | } | ||
3981 | if (is_buy) | ||
3982 | { | ||
3983 | label = buy_text; | ||
3984 | } | ||
3985 | else | ||
3986 | { | ||
3987 | label = take_text; | ||
3988 | } | ||
3989 | gMenuHolder->childSetText("Pie Object Take", label); | ||
3990 | gMenuHolder->childSetText("Menu Object Take", label); | ||
3991 | |||
3992 | return true; | 3923 | return true; |
3993 | } | 3924 | } |
3994 | }; | 3925 | }; |
3995 | 3926 | ||
3996 | // This is a small helper function to determine if we have a buy or a | ||
3997 | // take in the selection. This method is to help with the aliasing | ||
3998 | // problems of putting buy and take in the same pie menu space. After | ||
3999 | // a fair amont of discussion, it was determined to prefer buy over | ||
4000 | // take. The reasoning follows from the fact that when users walk up | ||
4001 | // to buy something, they will click on one or more items. Thus, if | ||
4002 | // anything is for sale, it becomes a buy operation, and the server | ||
4003 | // will group all of the buy items, and copyable/modifiable items into | ||
4004 | // one package and give the end user as much as the permissions will | ||
4005 | // allow. If the user wanted to take something, they will select fewer | ||
4006 | // and fewer items until only 'takeable' items are left. The one | ||
4007 | // exception is if you own everything in the selection that is for | ||
4008 | // sale, in this case, you can't buy stuff from yourself, so you can | ||
4009 | // take it. | ||
4010 | // return value = TRUE if selection is a 'buy'. | ||
4011 | // FALSE if selection is a 'take' | ||
4012 | BOOL is_selection_buy_not_take() | ||
4013 | { | ||
4014 | for (LLObjectSelection::root_iterator iter = LLSelectMgr::getInstance()->getSelection()->root_begin(); | ||
4015 | iter != LLSelectMgr::getInstance()->getSelection()->root_end(); iter++) | ||
4016 | { | ||
4017 | LLSelectNode* node = *iter; | ||
4018 | LLViewerObject* obj = node->getObject(); | ||
4019 | if(obj && !(obj->permYouOwner()) && (node->mSaleInfo.isForSale())) | ||
4020 | { | ||
4021 | // you do not own the object and it is for sale, thus, | ||
4022 | // it's a buy | ||
4023 | return TRUE; | ||
4024 | } | ||
4025 | } | ||
4026 | return FALSE; | ||
4027 | } | ||
4028 | |||
4029 | S32 selection_price() | ||
4030 | { | ||
4031 | S32 total_price = 0; | ||
4032 | for (LLObjectSelection::root_iterator iter = LLSelectMgr::getInstance()->getSelection()->root_begin(); | ||
4033 | iter != LLSelectMgr::getInstance()->getSelection()->root_end(); iter++) | ||
4034 | { | ||
4035 | LLSelectNode* node = *iter; | ||
4036 | LLViewerObject* obj = node->getObject(); | ||
4037 | if(obj && !(obj->permYouOwner()) && (node->mSaleInfo.isForSale())) | ||
4038 | { | ||
4039 | // you do not own the object and it is for sale. | ||
4040 | // Add its price. | ||
4041 | total_price += node->mSaleInfo.getSalePrice(); | ||
4042 | } | ||
4043 | } | ||
4044 | |||
4045 | return total_price; | ||
4046 | } | ||
4047 | |||
4048 | void callback_show_buy_currency(S32 option, void*) | 3927 | void callback_show_buy_currency(S32 option, void*) |
4049 | { | 3928 | { |
4050 | if (0 == option) | 3929 | if (0 == option) |
@@ -4874,10 +4753,17 @@ class LLWorldCreateLandmark : public view_listener_t | |||
4874 | return true; | 4753 | return true; |
4875 | } | 4754 | } |
4876 | 4755 | ||
4756 | LLChat chat; | ||
4757 | |||
4877 | LLUUID folder_id; | 4758 | LLUUID folder_id; |
4878 | folder_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_LANDMARK); | 4759 | folder_id = gInventory.findCategoryUUIDForType(LLAssetType::AT_LANDMARK); |
4879 | std::string pos_string; | 4760 | std::string pos_string; |
4880 | gAgent.buildLocationString(pos_string); | 4761 | gAgent.buildLocationString(pos_string); |
4762 | |||
4763 | std::string log_message = LLTrans::getString("landmark_created") + " "; | ||
4764 | log_message += pos_string; | ||
4765 | chat.mText = log_message; | ||
4766 | LLFloaterChat::addChat(chat, FALSE, FALSE); | ||
4881 | 4767 | ||
4882 | create_inventory_item(gAgent.getID(), gAgent.getSessionID(), | 4768 | create_inventory_item(gAgent.getID(), gAgent.getSessionID(), |
4883 | folder_id, LLTransactionID::tnull, | 4769 | folder_id, LLTransactionID::tnull, |
@@ -5188,10 +5074,6 @@ class LLShowFloater : public view_listener_t | |||
5188 | { | 5074 | { |
5189 | LLFloaterPreference::show(NULL); | 5075 | LLFloaterPreference::show(NULL); |
5190 | } | 5076 | } |
5191 | else if (floater_name == "toolbar") | ||
5192 | { | ||
5193 | LLToolBar::toggle(NULL); | ||
5194 | } | ||
5195 | else if (floater_name == "chat history") | 5077 | else if (floater_name == "chat history") |
5196 | { | 5078 | { |
5197 | LLFloaterChat::toggleInstance(LLSD()); | 5079 | LLFloaterChat::toggleInstance(LLSD()); |
@@ -5324,10 +5206,6 @@ class LLFloaterVisible : public view_listener_t | |||
5324 | { | 5206 | { |
5325 | new_value = LLFloaterMyFriends::instanceVisible(0); | 5207 | new_value = LLFloaterMyFriends::instanceVisible(0); |
5326 | } | 5208 | } |
5327 | else if (floater_name == "toolbar") | ||
5328 | { | ||
5329 | new_value = LLToolBar::visible(NULL); | ||
5330 | } | ||
5331 | else if (floater_name == "chat history") | 5209 | else if (floater_name == "chat history") |
5332 | { | 5210 | { |
5333 | new_value = LLFloaterChat::instanceVisible(); | 5211 | new_value = LLFloaterChat::instanceVisible(); |
@@ -6259,11 +6137,6 @@ BOOL menu_ui_enabled(void *user_data) | |||
6259 | void menu_toggle_control( void* user_data ) | 6137 | void menu_toggle_control( void* user_data ) |
6260 | { | 6138 | { |
6261 | BOOL checked = gSavedSettings.getBOOL( static_cast<char*>(user_data) ); | 6139 | BOOL checked = gSavedSettings.getBOOL( static_cast<char*>(user_data) ); |
6262 | if (std::string(static_cast<char*>(user_data)) == "HighResSnapshot" && !checked) | ||
6263 | { | ||
6264 | // High Res Snapshot active, must uncheck RenderUIInSnapshot | ||
6265 | gSavedSettings.setBOOL( "RenderUIInSnapshot", FALSE ); | ||
6266 | } | ||
6267 | gSavedSettings.setBOOL( static_cast<char*>(user_data), !checked ); | 6140 | gSavedSettings.setBOOL( static_cast<char*>(user_data), !checked ); |
6268 | } | 6141 | } |
6269 | 6142 | ||
@@ -6275,11 +6148,6 @@ class LLToggleControl : public view_listener_t | |||
6275 | { | 6148 | { |
6276 | std::string control_name = userdata.asString(); | 6149 | std::string control_name = userdata.asString(); |
6277 | BOOL checked = gSavedSettings.getBOOL( control_name ); | 6150 | BOOL checked = gSavedSettings.getBOOL( control_name ); |
6278 | if (control_name == "HighResSnapshot" && !checked) | ||
6279 | { | ||
6280 | // High Res Snapshot active, must uncheck RenderUIInSnapshot | ||
6281 | gSavedSettings.setBOOL( "RenderUIInSnapshot", FALSE ); | ||
6282 | } | ||
6283 | gSavedSettings.setBOOL( control_name, !checked ); | 6151 | gSavedSettings.setBOOL( control_name, !checked ); |
6284 | return true; | 6152 | return true; |
6285 | } | 6153 | } |
@@ -7341,25 +7209,6 @@ class LLViewCheckRenderType : public view_listener_t | |||
7341 | } | 7209 | } |
7342 | }; | 7210 | }; |
7343 | 7211 | ||
7344 | class LLViewShowHUDAttachments : public view_listener_t | ||
7345 | { | ||
7346 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
7347 | { | ||
7348 | LLPipeline::sShowHUDAttachments = !LLPipeline::sShowHUDAttachments; | ||
7349 | return true; | ||
7350 | } | ||
7351 | }; | ||
7352 | |||
7353 | class LLViewCheckHUDAttachments : public view_listener_t | ||
7354 | { | ||
7355 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
7356 | { | ||
7357 | bool new_value = LLPipeline::sShowHUDAttachments; | ||
7358 | gMenuHolder->findControl(userdata["control"].asString())->setValue(new_value); | ||
7359 | return true; | ||
7360 | } | ||
7361 | }; | ||
7362 | |||
7363 | class LLEditEnableTakeOff : public view_listener_t | 7212 | class LLEditEnableTakeOff : public view_listener_t |
7364 | { | 7213 | { |
7365 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | 7214 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) |
@@ -9751,6 +9600,19 @@ class LLAdvancedLeaveAdminStatus : public view_listener_t | |||
9751 | } | 9600 | } |
9752 | }; | 9601 | }; |
9753 | 9602 | ||
9603 | class LLAvatarReportAbuse : public view_listener_t | ||
9604 | { | ||
9605 | bool handleEvent(LLPointer<LLEvent> event, const LLSD& userdata) | ||
9606 | { | ||
9607 | LLVOAvatar* avatar = find_avatar_from_object( LLSelectMgr::getInstance()->getSelection()->getPrimaryObject() ); | ||
9608 | if(avatar) | ||
9609 | { | ||
9610 | LLFloaterReporter::showFromObject(avatar->getID()); | ||
9611 | } | ||
9612 | return true; | ||
9613 | } | ||
9614 | }; | ||
9615 | |||
9754 | 9616 | ||
9755 | 9617 | ||
9756 | static void addMenu(view_listener_t *menu, const char *name) | 9618 | static void addMenu(view_listener_t *menu, const char *name) |
@@ -9788,6 +9650,7 @@ void initialize_menus() | |||
9788 | addMenu(new LLEditEnableDuplicate(), "Edit.EnableDuplicate"); | 9650 | addMenu(new LLEditEnableDuplicate(), "Edit.EnableDuplicate"); |
9789 | addMenu(new LLEditEnableTakeOff(), "Edit.EnableTakeOff"); | 9651 | addMenu(new LLEditEnableTakeOff(), "Edit.EnableTakeOff"); |
9790 | addMenu(new LLEditEnableCustomizeAvatar(), "Edit.EnableCustomizeAvatar"); | 9652 | addMenu(new LLEditEnableCustomizeAvatar(), "Edit.EnableCustomizeAvatar"); |
9653 | addMenu(new LLAdvancedRebakeTextures(), "Advanced.RebakeTextures"); | ||
9791 | 9654 | ||
9792 | // View menu | 9655 | // View menu |
9793 | addMenu(new LLViewMouselook(), "View.Mouselook"); | 9656 | addMenu(new LLViewMouselook(), "View.Mouselook"); |
@@ -9800,12 +9663,10 @@ void initialize_menus() | |||
9800 | addMenu(new LLViewToggleBeacon(), "View.ToggleBeacon"); | 9663 | addMenu(new LLViewToggleBeacon(), "View.ToggleBeacon"); |
9801 | addMenu(new LLViewBeaconWidth(), "View.BeaconWidth"); | 9664 | addMenu(new LLViewBeaconWidth(), "View.BeaconWidth"); |
9802 | addMenu(new LLViewToggleRenderType(), "View.ToggleRenderType"); | 9665 | addMenu(new LLViewToggleRenderType(), "View.ToggleRenderType"); |
9803 | addMenu(new LLViewShowHUDAttachments(), "View.ShowHUDAttachments"); | ||
9804 | addMenu(new LLViewZoomOut(), "View.ZoomOut"); | 9666 | addMenu(new LLViewZoomOut(), "View.ZoomOut"); |
9805 | addMenu(new LLViewZoomIn(), "View.ZoomIn"); | 9667 | addMenu(new LLViewZoomIn(), "View.ZoomIn"); |
9806 | addMenu(new LLViewZoomDefault(), "View.ZoomDefault"); | 9668 | addMenu(new LLViewZoomDefault(), "View.ZoomDefault"); |
9807 | addMenu(new LLViewFullscreen(), "View.Fullscreen"); | 9669 | addMenu(new LLViewFullscreen(), "View.Fullscreen"); |
9808 | addMenu(new LLViewDefaultUISize(), "View.DefaultUISize"); | ||
9809 | 9670 | ||
9810 | addMenu(new LLViewEnableMouselook(), "View.EnableMouselook"); | 9671 | addMenu(new LLViewEnableMouselook(), "View.EnableMouselook"); |
9811 | addMenu(new LLViewEnableLastChatter(), "View.EnableLastChatter"); | 9672 | addMenu(new LLViewEnableLastChatter(), "View.EnableLastChatter"); |
@@ -9816,7 +9677,6 @@ void initialize_menus() | |||
9816 | addMenu(new LLViewCheckHighlightTransparent(), "View.CheckHighlightTransparent"); | 9677 | addMenu(new LLViewCheckHighlightTransparent(), "View.CheckHighlightTransparent"); |
9817 | addMenu(new LLViewCheckBeaconEnabled(), "View.CheckBeaconEnabled"); | 9678 | addMenu(new LLViewCheckBeaconEnabled(), "View.CheckBeaconEnabled"); |
9818 | addMenu(new LLViewCheckRenderType(), "View.CheckRenderType"); | 9679 | addMenu(new LLViewCheckRenderType(), "View.CheckRenderType"); |
9819 | addMenu(new LLViewCheckHUDAttachments(), "View.CheckHUDAttachments"); | ||
9820 | 9680 | ||
9821 | // World menu | 9681 | // World menu |
9822 | addMenu(new LLWorldChat(), "World.Chat"); | 9682 | addMenu(new LLWorldChat(), "World.Chat"); |
@@ -9858,7 +9718,7 @@ void initialize_menus() | |||
9858 | addMenu(new LLToolsReleaseKeys(), "Tools.ReleaseKeys"); | 9718 | addMenu(new LLToolsReleaseKeys(), "Tools.ReleaseKeys"); |
9859 | addMenu(new LLToolsEnableReleaseKeys(), "Tools.EnableReleaseKeys"); | 9719 | addMenu(new LLToolsEnableReleaseKeys(), "Tools.EnableReleaseKeys"); |
9860 | addMenu(new LLToolsLookAtSelection(), "Tools.LookAtSelection"); | 9720 | addMenu(new LLToolsLookAtSelection(), "Tools.LookAtSelection"); |
9861 | addMenu(new LLToolsBuyOrTake(), "Tools.BuyOrTake"); | 9721 | addMenu(new LLToolsTake(), "Tools.Take"); |
9862 | addMenu(new LLToolsTakeCopy(), "Tools.TakeCopy"); | 9722 | addMenu(new LLToolsTakeCopy(), "Tools.TakeCopy"); |
9863 | addMenu(new LLToolsSaveToInventory(), "Tools.SaveToInventory"); | 9723 | addMenu(new LLToolsSaveToInventory(), "Tools.SaveToInventory"); |
9864 | addMenu(new LLToolsSaveToObjectInventory(), "Tools.SaveToObjectInventory"); | 9724 | addMenu(new LLToolsSaveToObjectInventory(), "Tools.SaveToObjectInventory"); |
@@ -9868,7 +9728,7 @@ void initialize_menus() | |||
9868 | addMenu(new LLToolsEnableToolNotPie(), "Tools.EnableToolNotPie"); | 9728 | addMenu(new LLToolsEnableToolNotPie(), "Tools.EnableToolNotPie"); |
9869 | addMenu(new LLToolsEnableLink(), "Tools.EnableLink"); | 9729 | addMenu(new LLToolsEnableLink(), "Tools.EnableLink"); |
9870 | addMenu(new LLToolsEnableUnlink(), "Tools.EnableUnlink"); | 9730 | addMenu(new LLToolsEnableUnlink(), "Tools.EnableUnlink"); |
9871 | addMenu(new LLToolsEnableBuyOrTake(), "Tools.EnableBuyOrTake"); | 9731 | addMenu(new LLToolsEnableTake(), "Tools.EnableTake"); |
9872 | addMenu(new LLToolsEnableTakeCopy(), "Tools.EnableTakeCopy"); | 9732 | addMenu(new LLToolsEnableTakeCopy(), "Tools.EnableTakeCopy"); |
9873 | addMenu(new LLToolsEnableSaveToInventory(), "Tools.SaveToInventory"); | 9733 | addMenu(new LLToolsEnableSaveToInventory(), "Tools.SaveToInventory"); |
9874 | addMenu(new LLToolsEnableSaveToObjectInventory(), "Tools.SaveToObjectInventory"); | 9734 | addMenu(new LLToolsEnableSaveToObjectInventory(), "Tools.SaveToObjectInventory"); |
@@ -9897,6 +9757,7 @@ void initialize_menus() | |||
9897 | addMenu(new LLAvatarGiveCard(), "Avatar.GiveCard"); | 9757 | addMenu(new LLAvatarGiveCard(), "Avatar.GiveCard"); |
9898 | addMenu(new LLAvatarEject(), "Avatar.Eject"); | 9758 | addMenu(new LLAvatarEject(), "Avatar.Eject"); |
9899 | addMenu(new LLAvatarSendIM(), "Avatar.SendIM"); | 9759 | addMenu(new LLAvatarSendIM(), "Avatar.SendIM"); |
9760 | addMenu(new LLAvatarReportAbuse(), "Avatar.ReportAbuse"); | ||
9900 | 9761 | ||
9901 | addMenu(new LLObjectEnableMute(), "Avatar.EnableMute"); | 9762 | addMenu(new LLObjectEnableMute(), "Avatar.EnableMute"); |
9902 | addMenu(new LLAvatarEnableAddFriend(), "Avatar.EnableAddFriend"); | 9763 | addMenu(new LLAvatarEnableAddFriend(), "Avatar.EnableAddFriend"); |
@@ -9942,6 +9803,7 @@ void initialize_menus() | |||
9942 | // Land pie menu | 9803 | // Land pie menu |
9943 | addMenu(new LLLandBuild(), "Land.Build"); | 9804 | addMenu(new LLLandBuild(), "Land.Build"); |
9944 | addMenu(new LLLandSit(), "Land.Sit"); | 9805 | addMenu(new LLLandSit(), "Land.Sit"); |
9806 | addMenu(new LLWorldCreateLandmark(),"Land.NewLandmark"); | ||
9945 | addMenu(new LLLandBuyPass(), "Land.BuyPass"); | 9807 | addMenu(new LLLandBuyPass(), "Land.BuyPass"); |
9946 | addMenu(new LLLandEdit(), "Land.Edit"); | 9808 | addMenu(new LLLandEdit(), "Land.Edit"); |
9947 | 9809 | ||
@@ -10096,7 +9958,6 @@ void initialize_menus() | |||
10096 | addMenu(new LLAdvancedToggleDebugAvatarRotation(), "Advanced.ToggleDebugAvatarRotation"); | 9958 | addMenu(new LLAdvancedToggleDebugAvatarRotation(), "Advanced.ToggleDebugAvatarRotation"); |
10097 | addMenu(new LLAdvancedCheckDebugAvatarRotation(), "Advanced.CheckDebugAvatarRotation"); | 9959 | addMenu(new LLAdvancedCheckDebugAvatarRotation(), "Advanced.CheckDebugAvatarRotation"); |
10098 | addMenu(new LLAdvancedDumpAttachments(), "Advanced.DumpAttachments"); | 9960 | addMenu(new LLAdvancedDumpAttachments(), "Advanced.DumpAttachments"); |
10099 | addMenu(new LLAdvancedRebakeTextures(), "Advanced.RebakeTextures"); | ||
10100 | addMenu(new LLAdvancedDebugAvatarTextures(), "Advanced.DebugAvatarTextures"); | 9961 | addMenu(new LLAdvancedDebugAvatarTextures(), "Advanced.DebugAvatarTextures"); |
10101 | addMenu(new LLAdvancedDumpAvatarLocalTextures(), "Advanced.DumpAvatarLocalTextures"); | 9962 | addMenu(new LLAdvancedDumpAvatarLocalTextures(), "Advanced.DumpAvatarLocalTextures"); |
10102 | 9963 | ||
diff --git a/linden/indra/newview/llviewerregion.cpp b/linden/indra/newview/llviewerregion.cpp index 2944d9d..b2fd621 100644 --- a/linden/indra/newview/llviewerregion.cpp +++ b/linden/indra/newview/llviewerregion.cpp | |||
@@ -1391,8 +1391,12 @@ void LLViewerRegion::setSeedCapability(const std::string& url) | |||
1391 | capabilityNames.append("DispatchRegionInfo"); | 1391 | capabilityNames.append("DispatchRegionInfo"); |
1392 | capabilityNames.append("EstateChangeInfo"); | 1392 | capabilityNames.append("EstateChangeInfo"); |
1393 | capabilityNames.append("EventQueueGet"); | 1393 | capabilityNames.append("EventQueueGet"); |
1394 | capabilityNames.append("FetchInventoryDescendents"); | 1394 | capabilityNames.append("FetchInventory"); |
1395 | capabilityNames.append("WebFetchInventoryDescendents"); | ||
1396 | capabilityNames.append("FetchLib"); | ||
1397 | capabilityNames.append("FetchLibDescendents"); | ||
1395 | capabilityNames.append("GroupProposalBallot"); | 1398 | capabilityNames.append("GroupProposalBallot"); |
1399 | capabilityNames.append("HomeLocation"); | ||
1396 | capabilityNames.append("MapLayer"); | 1400 | capabilityNames.append("MapLayer"); |
1397 | capabilityNames.append("MapLayerGod"); | 1401 | capabilityNames.append("MapLayerGod"); |
1398 | capabilityNames.append("NewFileAgentInventory"); | 1402 | capabilityNames.append("NewFileAgentInventory"); |
diff --git a/linden/indra/newview/llviewerwindow.cpp b/linden/indra/newview/llviewerwindow.cpp index 2e77316..854d757 100644 --- a/linden/indra/newview/llviewerwindow.cpp +++ b/linden/indra/newview/llviewerwindow.cpp | |||
@@ -3812,10 +3812,6 @@ BOOL LLViewerWindow::saveImageNumbered(LLImageFormatted *image) | |||
3812 | } | 3812 | } |
3813 | 3813 | ||
3814 | std::string extension("." + image->getExtension()); | 3814 | std::string extension("." + image->getExtension()); |
3815 | if (extension.empty()) | ||
3816 | { | ||
3817 | extension = (gSavedSettings.getBOOL("CompressSnapshotsToDisk")) ? ".j2c" : ".bmp"; | ||
3818 | } | ||
3819 | 3815 | ||
3820 | LLFilePicker::ESaveFilter pick_type; | 3816 | LLFilePicker::ESaveFilter pick_type; |
3821 | if (extension == ".j2c") | 3817 | if (extension == ".j2c") |
diff --git a/linden/indra/newview/llwindebug.cpp b/linden/indra/newview/llwindebug.cpp index d2f6748..e48b7bf 100644 --- a/linden/indra/newview/llwindebug.cpp +++ b/linden/indra/newview/llwindebug.cpp | |||
@@ -704,8 +704,8 @@ void LLWinDebug::generateCrashStacks(struct _EXCEPTION_POINTERS *exception_infop | |||
704 | ExInfo.ExceptionPointers = exception_infop; | 704 | ExInfo.ExceptionPointers = exception_infop; |
705 | ExInfo.ClientPointers = NULL; | 705 | ExInfo.ClientPointers = NULL; |
706 | 706 | ||
707 | writeDumpToFile(MiniDumpNormal, &ExInfo, "SecondLife.dmp"); | 707 | writeDumpToFile(MiniDumpNormal, &ExInfo, "Imprudence.dmp"); |
708 | writeDumpToFile((MINIDUMP_TYPE)(MiniDumpWithDataSegs | MiniDumpWithIndirectlyReferencedMemory), &ExInfo, "SecondLifePlus.dmp"); | 708 | writeDumpToFile((MINIDUMP_TYPE)(MiniDumpWithDataSegs | MiniDumpWithIndirectlyReferencedMemory), &ExInfo, "ImprudencePlus.dmp"); |
709 | } | 709 | } |
710 | 710 | ||
711 | info = Get_Exception_Info(exception_infop); | 711 | info = Get_Exception_Info(exception_infop); |
diff --git a/linden/indra/newview/skins/default/xui/en-us/alerts.xml b/linden/indra/newview/skins/default/xui/en-us/alerts.xml index c2d4301..dc9b5ea 100644 --- a/linden/indra/newview/skins/default/xui/en-us/alerts.xml +++ b/linden/indra/newview/skins/default/xui/en-us/alerts.xml | |||
@@ -385,6 +385,73 @@ Go to the Second Life web site for more information on partnering? | |||
385 | Cancel | 385 | Cancel |
386 | </option> | 386 | </option> |
387 | </alert> | 387 | </alert> |
388 | <alert modal="true" name="ClickBuildConstants"> | ||
389 | <message name="message"> | ||
390 | The following constants are accepted in this tab: | ||
391 | |||
392 | XP -- X-axis position | ||
393 | YP -- Y-axis position | ||
394 | ZP -- Z-axis position | ||
395 | XS -- X-axis size | ||
396 | YS -- Y-axis size | ||
397 | ZS -- Z-axis size | ||
398 | XR -- X-axis rotation | ||
399 | YR -- Y-axis rotation | ||
400 | ZR -- Z-axis rotation | ||
401 | CB -- Path cut begin | ||
402 | CE -- Path cut end | ||
403 | HLW -- Hollow size | ||
404 | SKW -- Skew | ||
405 | PB -- Slice/Dimple/Profile cut begin | ||
406 | PE -- Slice/Dimple/Profile cut end | ||
407 | XSH -- X-axis top shear | ||
408 | YSH -- Y-axis top shear | ||
409 | XHL -- X-axis hole size | ||
410 | YHL -- Y-axis hole size | ||
411 | XTP -- X-axis taper | ||
412 | YTP -- Y-axis taper | ||
413 | ROF -- Radius offset | ||
414 | REV -- Revolutions | ||
415 | |||
416 | * -- Multiplication | ||
417 | \ -- Division | ||
418 | + -- Addition | ||
419 | - -- Subtraction | ||
420 | |||
421 | Examples: | ||
422 | |||
423 | * Enter 'ZP + 20' in the Z-axis position field | ||
424 | to move an object up 20 meters. | ||
425 | * Enter 'XS - YS' in the X-axis size field | ||
426 | to subtract the Y size from the X size. | ||
427 | </message> | ||
428 | </alert> | ||
429 | <alert modal="true" name="ClickTextureConstants"> | ||
430 | <message name="message"> | ||
431 | The following constants are accepted in this tab: | ||
432 | |||
433 | TSU -- Repeats per face (horizontal) | ||
434 | TSV -- Repeats per face (vertical) | ||
435 | TOU -- Offsets per face (horizontal) | ||
436 | TOV -- Offsets per face (vertical) | ||
437 | TRNS -- Transparency | ||
438 | TROT -- Texture rotation | ||
439 | GLOW -- Glow | ||
440 | |||
441 | * -- Multiplication | ||
442 | \ -- Division | ||
443 | + -- Addition | ||
444 | - -- Subtraction | ||
445 | |||
446 | Examples: | ||
447 | |||
448 | * Enter 'TSU * 4' in horizantal repeats field | ||
449 | to increase the amount of repeats by 4x. | ||
450 | * Enter 'TSV' in the horizontal repeats field | ||
451 | to make the horizontal and vertical | ||
452 | repeats match. | ||
453 | </message> | ||
454 | </alert> | ||
388 | <alert modal="true" name="ClickWebProfileHelpAvatar"> | 455 | <alert modal="true" name="ClickWebProfileHelpAvatar"> |
389 | <message name="message"> | 456 | <message name="message"> |
390 | If this Resident has set a web profile URL then you can: | 457 | If this Resident has set a web profile URL then you can: |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_instant_message.xml b/linden/indra/newview/skins/default/xui/en-us/floater_instant_message.xml index 076598c..eb8e672 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_instant_message.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_instant_message.xml | |||
@@ -46,6 +46,11 @@ | |||
46 | image_overlay="icn_voice-call-end.tga" image_overlay_alignment="left" | 46 | image_overlay="icn_voice-call-end.tga" image_overlay_alignment="left" |
47 | label="End Call" left_delta="0" name="end_call_btn" pad_right="10" | 47 | label="End Call" left_delta="0" name="end_call_btn" pad_right="10" |
48 | visible="false" width="100" /> | 48 | visible="false" width="100" /> |
49 | <text bottom_delta="0" left="-258" height="14" width="230" name="inventory_send" halign="right" | ||
50 | text_color="LabelTextColor" follows="right|top" drop_shadow_visible="true" | ||
51 | bg_visible="false" border_drop_shadow_visible="false" border_visible="false"> | ||
52 | Drag and drop inventory here to send | ||
53 | </text> | ||
49 | <panel border="false" bottom="-37" follows="left|top|right" height="20" | 54 | <panel border="false" bottom="-37" follows="left|top|right" height="20" |
50 | left_delta="96" name="speaker_controls" width="100"> | 55 | left_delta="96" name="speaker_controls" width="100"> |
51 | <volume_slider bottom="0" follows="left|bottom" height="15" increment="0.05" initial_val="0.5" | 56 | <volume_slider bottom="0" follows="left|bottom" height="15" increment="0.05" initial_val="0.5" |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_instant_message_group.xml b/linden/indra/newview/skins/default/xui/en-us/floater_instant_message_group.xml index 72c92bd..3a6e4ec 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_instant_message_group.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_instant_message_group.xml | |||
@@ -49,7 +49,7 @@ | |||
49 | <button bottom_delta="0" enabled="false" follows="left|top" halign="right" height="20" | 49 | <button bottom_delta="0" enabled="false" follows="left|top" halign="right" height="20" |
50 | image_overlay="icn_voice-call-start.tga" image_overlay_alignment="left" | 50 | image_overlay="icn_voice-call-start.tga" image_overlay_alignment="left" |
51 | label="Join Call" left_delta="85" name="start_call_btn" pad_right="12" | 51 | label="Join Call" left_delta="85" name="start_call_btn" pad_right="12" |
52 | width="80" /> | 52 | width="92" /> |
53 | <button bottom_delta="0" follows="left|top" halign="right" height="20" | 53 | <button bottom_delta="0" follows="left|top" halign="right" height="20" |
54 | image_overlay="icn_voice-call-end.tga" image_overlay_alignment="left" | 54 | image_overlay="icn_voice-call-end.tga" image_overlay_alignment="left" |
55 | label="End Call" left_delta="0" name="end_call_btn" pad_right="12" | 55 | label="End Call" left_delta="0" name="end_call_btn" pad_right="12" |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_snapshot.xml b/linden/indra/newview/skins/default/xui/en-us/floater_snapshot.xml index 0c60090..c2eb3c2 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_snapshot.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_snapshot.xml | |||
@@ -139,6 +139,8 @@ | |||
139 | <slider bottom_delta="-20" decimal_digits="0" follows="left|top" height="15" | 139 | <slider bottom_delta="-20" decimal_digits="0" follows="left|top" height="15" |
140 | increment="1" initial_val="75" label="Image Quality" left="10" | 140 | increment="1" initial_val="75" label="Image Quality" left="10" |
141 | max_val="100" min_val="0" name="image_quality_slider" width="210" /> | 141 | max_val="100" min_val="0" name="image_quality_slider" width="210" /> |
142 | <check_box bottom_delta="0" follows="left|top" label="High resolution snapshot" | ||
143 | left="10" name="high_res_check" /> | ||
142 | <text bottom_delta="-28" follows="left|top" height="20" left="10" | 144 | <text bottom_delta="-28" follows="left|top" height="20" left="10" |
143 | name="layer_type_label" width="50"> | 145 | name="layer_type_label" width="50"> |
144 | Capture: | 146 | Capture: |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml b/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml index 742da45..eb9b1c6 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml | |||
@@ -587,7 +587,10 @@ | |||
587 | mouse_opaque="true" name="edit_object" v_pad="0" width="252"> | 587 | mouse_opaque="true" name="edit_object" v_pad="0" width="252"> |
588 | Edit object parameters: | 588 | Edit object parameters: |
589 | </text> | 589 | </text> |
590 | <check_box bottom_delta="-26" follows="left|top" font="SansSerifSmall" height="16" | 590 | <button bottom_delta="-10" follows="left|top" font="SansSerif" halign="center" |
591 | height="22" label="?" label_selected="?" right="-8" tool_tip="Object math constants" | ||
592 | mouse_opaque="true" name="build_math_constants" scale_image="true" width="22" /> | ||
593 | <check_box bottom_delta="-16" follows="left|top" font="SansSerifSmall" height="16" | ||
591 | initial_value="false" label="Locked" left="8" mouse_opaque="true" | 594 | initial_value="false" label="Locked" left="8" mouse_opaque="true" |
592 | name="checkbox locked" | 595 | name="checkbox locked" |
593 | tool_tip="Prevents object from being moved or deleted. Frequently useful during building to avoid unintended edits." | 596 | tool_tip="Prevents object from being moved or deleted. Frequently useful during building to avoid unintended edits." |
@@ -614,15 +617,15 @@ | |||
614 | <spinner bottom_delta="-20" decimal_digits="3" follows="left|top" height="16" | 617 | <spinner bottom_delta="-20" decimal_digits="3" follows="left|top" height="16" |
615 | increment="0.01" initial_val="0" label="X" label_width="10" left="10" | 618 | increment="0.01" initial_val="0" label="X" label_width="10" left="10" |
616 | max_val="512" min_val="-256" mouse_opaque="true" name="Pos X" | 619 | max_val="512" min_val="-256" mouse_opaque="true" name="Pos X" |
617 | text_enabled_color="110, 15, 15, 255" width="87" /> | 620 | text_enabled_color="110, 15, 15, 255" width="96" /> |
618 | <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16" | 621 | <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16" |
619 | increment="0.01" initial_val="0" label="Y" label_width="10" left="10" | 622 | increment="0.01" initial_val="0" label="Y" label_width="10" left="10" |
620 | max_val="512" min_val="-256" mouse_opaque="true" name="Pos Y" | 623 | max_val="512" min_val="-256" mouse_opaque="true" name="Pos Y" |
621 | text_enabled_color="0, 100, 40, 255" width="87" /> | 624 | text_enabled_color="0, 100, 40, 255" width="96" /> |
622 | <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16" | 625 | <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16" |
623 | increment="0.01" initial_val="0" label="Z" label_width="10" left="10" | 626 | increment="0.01" initial_val="0" label="Z" label_width="10" left="10" |
624 | max_val="4096" min_val="0" mouse_opaque="true" name="Pos Z" | 627 | max_val="4096" min_val="0" mouse_opaque="true" name="Pos Z" |
625 | text_enabled_color="0, 67, 132, 255" width="87" /> | 628 | text_enabled_color="0, 67, 132, 255" width="96" /> |
626 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 629 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
627 | bottom_delta="-16" drop_shadow_visible="true" follows="left|top" | 630 | bottom_delta="-16" drop_shadow_visible="true" follows="left|top" |
628 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" | 631 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" |
@@ -632,15 +635,15 @@ | |||
632 | <spinner bottom_delta="-20" decimal_digits="3" follows="left|top" height="16" | 635 | <spinner bottom_delta="-20" decimal_digits="3" follows="left|top" height="16" |
633 | increment="0.01" initial_val="0" label="X" label_width="10" left="10" | 636 | increment="0.01" initial_val="0" label="X" label_width="10" left="10" |
634 | max_val="10" min_val="0.01" mouse_opaque="true" name="Scale X" | 637 | max_val="10" min_val="0.01" mouse_opaque="true" name="Scale X" |
635 | text_enabled_color="1, 1, 1, 1" width="87" /> | 638 | text_enabled_color="1, 1, 1, 1" width="96" /> |
636 | <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16" | 639 | <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16" |
637 | increment="0.01" initial_val="0" label="Y" label_width="10" left="10" | 640 | increment="0.01" initial_val="0" label="Y" label_width="10" left="10" |
638 | max_val="10" min_val="0.01" mouse_opaque="true" name="Scale Y" | 641 | max_val="10" min_val="0.01" mouse_opaque="true" name="Scale Y" |
639 | text_enabled_color="1, 1, 1, 1" width="87" /> | 642 | text_enabled_color="1, 1, 1, 1" width="96" /> |
640 | <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16" | 643 | <spinner bottom_delta="-18" decimal_digits="3" follows="left|top" height="16" |
641 | increment="0.01" initial_val="0" label="Z" label_width="10" left="10" | 644 | increment="0.01" initial_val="0" label="Z" label_width="10" left="10" |
642 | max_val="10" min_val="0.01" mouse_opaque="true" name="Scale Z" | 645 | max_val="10" min_val="0.01" mouse_opaque="true" name="Scale Z" |
643 | text_enabled_color="1, 1, 1, 1" width="87" /> | 646 | text_enabled_color="1, 1, 1, 1" width="96" /> |
644 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 647 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
645 | bottom_delta="-16" drop_shadow_visible="true" follows="left|top" | 648 | bottom_delta="-16" drop_shadow_visible="true" follows="left|top" |
646 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" | 649 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" |
@@ -650,15 +653,15 @@ | |||
650 | <spinner bottom_delta="-22" decimal_digits="2" follows="left|top" height="16" | 653 | <spinner bottom_delta="-22" decimal_digits="2" follows="left|top" height="16" |
651 | increment="1" initial_val="0" label="X" label_width="10" left="10" | 654 | increment="1" initial_val="0" label="X" label_width="10" left="10" |
652 | max_val="9999" min_val="-9999" mouse_opaque="true" name="Rot X" | 655 | max_val="9999" min_val="-9999" mouse_opaque="true" name="Rot X" |
653 | text_enabled_color="1, 1, 1, 1" width="87" /> | 656 | text_enabled_color="1, 1, 1, 1" width="96" /> |
654 | <spinner bottom_delta="-18" decimal_digits="2" follows="left|top" height="16" | 657 | <spinner bottom_delta="-18" decimal_digits="2" follows="left|top" height="16" |
655 | increment="1" initial_val="0" label="Y" label_width="10" left="10" | 658 | increment="1" initial_val="0" label="Y" label_width="10" left="10" |
656 | max_val="9999" min_val="-9999" mouse_opaque="true" name="Rot Y" | 659 | max_val="9999" min_val="-9999" mouse_opaque="true" name="Rot Y" |
657 | text_enabled_color="1, 1, 1, 1" width="87" /> | 660 | text_enabled_color="1, 1, 1, 1" width="96" /> |
658 | <spinner bottom_delta="-18" decimal_digits="2" follows="left|top" height="16" | 661 | <spinner bottom_delta="-18" decimal_digits="2" follows="left|top" height="16" |
659 | increment="1" initial_val="0" label="Z" label_width="10" left="10" | 662 | increment="1" initial_val="0" label="Z" label_width="10" left="10" |
660 | max_val="9999" min_val="-9999" mouse_opaque="true" name="Rot Z" | 663 | max_val="9999" min_val="-9999" mouse_opaque="true" name="Rot Z" |
661 | text_enabled_color="1, 1, 1, 1" width="87" /> | 664 | text_enabled_color="1, 1, 1, 1" width="96" /> |
662 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 665 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
663 | bottom_delta="-16" drop_shadow_visible="true" follows="left|top" | 666 | bottom_delta="-16" drop_shadow_visible="true" follows="left|top" |
664 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" | 667 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="10" |
@@ -748,12 +751,12 @@ | |||
748 | Skew | 751 | Skew |
749 | </text> | 752 | </text> |
750 | <spinner bottom_delta="-20" decimal_digits="1" follows="left|top" height="16" | 753 | <spinner bottom_delta="-20" decimal_digits="1" follows="left|top" height="16" |
751 | increment="5" initial_val="0" left="121" max_val="95" min_val="0" | 754 | increment="5" initial_val="0" left="121" max_val="95" min_val="0" |
752 | mouse_opaque="true" name="Scale 1" width="68" /> | 755 | mouse_opaque="true" name="Scale 1" width="68" label=" " label_width="10"/> |
753 | <spinner bottom_delta="0" decimal_digits="2" follows="left|top" height="16" | 756 | <spinner bottom_delta="0" decimal_digits="2" follows="left|top" height="16" |
754 | increment="0.05" initial_val="0" left_delta="73" max_val="0.95" | 757 | increment="0.05" initial_val="0" left_delta="73" max_val="0.95" label_width="10" |
755 | min_val="-0.95" mouse_opaque="true" name="Skew" width="68" /> | 758 | min_val="-0.95" mouse_opaque="true" name="Skew" width="68" label=" " /> |
756 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 759 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
757 | bottom_delta="-15" drop_shadow_visible="true" follows="left|top" | 760 | bottom_delta="-15" drop_shadow_visible="true" follows="left|top" |
758 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="121" | 761 | font="SansSerifSmall" h_pad="0" halign="left" height="10" left="121" |
759 | mouse_opaque="true" name="Hollow Shape" v_pad="0" width="141"> | 762 | mouse_opaque="true" name="Hollow Shape" v_pad="0" width="141"> |
@@ -872,10 +875,10 @@ | |||
872 | </text> | 875 | </text> |
873 | <spinner bottom_delta="-19" decimal_digits="3" follows="left|top" height="16" | 876 | <spinner bottom_delta="-19" decimal_digits="3" follows="left|top" height="16" |
874 | increment="0.05" initial_val="0" left="121" max_val="1" min_val="-1" | 877 | increment="0.05" initial_val="0" left="121" max_val="1" min_val="-1" |
875 | mouse_opaque="true" name="Radius Offset" width="68" /> | 878 | mouse_opaque="true" name="Radius Offset" width="68" label=" " label_width="10" /> |
876 | <spinner bottom_delta="0" decimal_digits="2" follows="left|top" height="16" | 879 | <spinner bottom_delta="0" decimal_digits="2" follows="left|top" height="16" |
877 | increment="0.1" initial_val="1" left_delta="73" max_val="4" min_val="1" | 880 | increment="0.1" initial_val="1" left_delta="73" max_val="4" min_val="1" |
878 | mouse_opaque="true" name="Revolutions" width="68" /> | 881 | mouse_opaque="true" name="Revolutions" width="68" label=" " label_width="10" /> |
879 | <texture_picker allow_no_texture="false" bottom="-211" can_apply_immediately="true" | 882 | <texture_picker allow_no_texture="false" bottom="-211" can_apply_immediately="true" |
880 | default_image_name="Default" follows="left|top" height="141" | 883 | default_image_name="Default" follows="left|top" height="141" |
881 | label="Sculpt Texture" left="121" mouse_opaque="true" | 884 | label="Sculpt Texture" left="121" mouse_opaque="true" |
@@ -1018,7 +1021,7 @@ | |||
1018 | </text> | 1021 | </text> |
1019 | <spinner bottom_delta="-20" decimal_digits="0" follows="left|top" height="16" | 1022 | <spinner bottom_delta="-20" decimal_digits="0" follows="left|top" height="16" |
1020 | increment="2" initial_val="0" left="180" max_val="100" min_val="0" | 1023 | increment="2" initial_val="0" left="180" max_val="100" min_val="0" |
1021 | mouse_opaque="true" name="ColorTrans" width="80" /> | 1024 | mouse_opaque="true" name="ColorTrans" width="58" /> |
1022 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 1025 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
1023 | bottom_delta="-12" drop_shadow_visible="true" follows="left|top" | 1026 | bottom_delta="-12" drop_shadow_visible="true" follows="left|top" |
1024 | font="SansSerifSmall" h_pad="0" halign="left" height="10" | 1027 | font="SansSerifSmall" h_pad="0" halign="left" height="10" |
@@ -1027,7 +1030,7 @@ | |||
1027 | </text> | 1030 | </text> |
1028 | <spinner bottom_delta="-20" decimal_digits="2" follows="left|top" height="16" | 1031 | <spinner bottom_delta="-20" decimal_digits="2" follows="left|top" height="16" |
1029 | increment="0.1" initial_val="0" left="180" max_val="1" | 1032 | increment="0.1" initial_val="0" left="180" max_val="1" |
1030 | min_val="0" mouse_opaque="true" name="glow" width="80" /> | 1033 | min_val="0" mouse_opaque="true" name="glow" width="58" /> |
1031 | <check_box bottom_delta="-23" follows="left|top" font="SansSerifSmall" height="16" | 1034 | <check_box bottom_delta="-23" follows="left|top" font="SansSerifSmall" height="16" |
1032 | initial_value="false" label="Full Bright" left="180" mouse_opaque="true" | 1035 | initial_value="false" label="Full Bright" left="180" mouse_opaque="true" |
1033 | name="checkbox fullbright" width="81" /> | 1036 | name="checkbox fullbright" width="81" /> |
@@ -1201,6 +1204,9 @@ | |||
1201 | <button bottom="-360" follows="left|top" font="SansSerifSmall" halign="center" | 1204 | <button bottom="-360" follows="left|top" font="SansSerifSmall" halign="center" |
1202 | height="16" label="Align" label_selected="Align" left="112" | 1205 | height="16" label="Align" label_selected="Align" left="112" |
1203 | mouse_opaque="true" name="button align" scale_image="TRUE" width="68" /> | 1206 | mouse_opaque="true" name="button align" scale_image="TRUE" width="68" /> |
1207 | <button bottom="-162" follows="left|top" font="SansSerif" halign="center" | ||
1208 | height="22" label="?" label_selected="?" right="-8" tool_tip="Texture math constants" | ||
1209 | mouse_opaque="true" name="texture_math_constants" scale_image="true" width="24" /> | ||
1204 | </panel> | 1210 | </panel> |
1205 | <panel border="true" bottom="-383" follows="left|top|right|bottom" height="367" | 1211 | <panel border="true" bottom="-383" follows="left|top|right|bottom" height="367" |
1206 | label="Content" left="1" mouse_opaque="false" name="Contents" width="270"> | 1212 | label="Content" left="1" mouse_opaque="false" name="Contents" width="270"> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml b/linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml index 31288ac..aa61e77 100644 --- a/linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml +++ b/linden/indra/newview/skins/default/xui/en-us/menu_inventory.xml | |||
@@ -223,6 +223,10 @@ | |||
223 | mouse_opaque="true" name="Detach From Yourself" width="128"> | 223 | mouse_opaque="true" name="Detach From Yourself" width="128"> |
224 | <on_click filter="" function="Inventory.DoToSelected" userdata="detach" /> | 224 | <on_click filter="" function="Inventory.DoToSelected" userdata="detach" /> |
225 | </menu_item_call> | 225 | </menu_item_call> |
226 | <menu_item_call bottom_delta="-18" height="18" label="Restore to Last Position" left="0" mouse_opaque="true" | ||
227 | name="Restore to Last Position" width="128"> | ||
228 | <on_click filter="" function="Inventory.DoToSelected" userdata="restoreToWorld" /> | ||
229 | </menu_item_call> | ||
226 | <menu_item_call bottom_delta="-18" height="18" label="Wear" left="0" mouse_opaque="true" | 230 | <menu_item_call bottom_delta="-18" height="18" label="Wear" left="0" mouse_opaque="true" |
227 | name="Object Wear" width="128"> | 231 | name="Object Wear" width="128"> |
228 | <on_click filter="" function="Inventory.DoToSelected" userdata="attach" /> | 232 | <on_click filter="" function="Inventory.DoToSelected" userdata="attach" /> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_pie_attachment.xml b/linden/indra/newview/skins/default/xui/en-us/menu_pie_attachment.xml index 85028d5..d16c22c 100644 --- a/linden/indra/newview/skins/default/xui/en-us/menu_pie_attachment.xml +++ b/linden/indra/newview/skins/default/xui/en-us/menu_pie_attachment.xml | |||
@@ -1,20 +1,46 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <pie_menu name="Attachment Pie"> | 2 | <pie_menu name="Attachment Pie"> |
3 | <menu_item_call enabled="false" label="Drop" mouse_opaque="true" name="Drop"> | 3 | <menu_item_call enabled="true" label="Profile..." name="Profile..."> |
4 | <on_click function="Attachment.Drop" /> | 4 | <on_click function="ShowAgentProfile" userdata="agent" /> |
5 | <on_enable function="Attachment.EnableDrop" /> | ||
6 | </menu_item_call> | 5 | </menu_item_call> |
7 | <menu_item_separator /> | 6 | <menu_item_call enabled="true" label="Groups..." name="Groups..."> |
8 | <menu_item_separator /> | 7 | <on_click function="ShowAgentGroups" userdata="agent" /> |
9 | <menu_item_separator /> | ||
10 | <menu_item_separator /> | ||
11 | <menu_item_separator /> | ||
12 | <menu_item_call enabled="false" label="Detach" mouse_opaque="true" name="Detach"> | ||
13 | <on_click function="Attachment.Detach" /> | ||
14 | <on_enable function="Attachment.EnableDetach" /> | ||
15 | </menu_item_call> | 8 | </menu_item_call> |
16 | <menu_item_call enabled="false" label="Edit" mouse_opaque="true" name="Edit"> | 9 | <menu_item_call enabled="false" label="Touch" mouse_opaque="true" name="Object Touch"> |
17 | <on_click function="Object.Edit" /> | 10 | <on_click function="Object.Touch" /> |
18 | <on_enable function="EnableEdit" /> | 11 | <on_enable function="Object.EnableTouch" userdata="Touch" /> |
12 | </menu_item_call> | ||
13 | <menu_item_call enabled="true" label="Stand Up" name="Stand Up"> | ||
14 | <on_click function="Self.StandUp" userdata="" /> | ||
15 | <on_enable function="Self.EnableStandUp" /> | ||
16 | </menu_item_call> | ||
17 | <menu_item_call enabled="true" label="Friends..." name="Friends..."> | ||
18 | <on_click function="ShowFloater" userdata="friends" /> | ||
19 | </menu_item_call> | ||
20 | <menu_item_call enabled="true" label="Gestures..." name="Gestures..."> | ||
21 | <on_click function="ShowFloater" userdata="gestures" /> | ||
22 | </menu_item_call> | ||
23 | <pie_menu label="More >" name="More >"> | ||
24 | <menu_item_call enabled="false" label="Detach" mouse_opaque="true" name="Detach"> | ||
25 | <on_click function="Attachment.Detach" /> | ||
26 | <on_enable function="Attachment.EnableDetach" /> | ||
27 | </menu_item_call> | ||
28 | <menu_item_separator /> | ||
29 | <menu_item_separator /> | ||
30 | <menu_item_separator /> | ||
31 | <menu_item_separator /> | ||
32 | <menu_item_separator /> | ||
33 | <menu_item_call enabled="false" label="Edit..." mouse_opaque="true" name="Edit..."> | ||
34 | <on_click function="Object.Edit" /> | ||
35 | <on_enable function="EnableEdit" /> | ||
36 | </menu_item_call> | ||
37 | <menu_item_call enabled="false" label="Drop" mouse_opaque="true" name="Drop"> | ||
38 | <on_click function="Attachment.Drop" /> | ||
39 | <on_enable function="Attachment.EnableDrop" /> | ||
40 | </menu_item_call> | ||
41 | </pie_menu> | ||
42 | <menu_item_call enabled="true" label="Appearance..." name="Appearance..."> | ||
43 | <on_click function="ShowFloater" userdata="appearance" /> | ||
44 | <on_enable function="Edit.EnableCustomizeAvatar" /> | ||
19 | </menu_item_call> | 45 | </menu_item_call> |
20 | </pie_menu> | 46 | </pie_menu> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_pie_avatar.xml b/linden/indra/newview/skins/default/xui/en-us/menu_pie_avatar.xml index c8d8ed6..2d44dab 100644 --- a/linden/indra/newview/skins/default/xui/en-us/menu_pie_avatar.xml +++ b/linden/indra/newview/skins/default/xui/en-us/menu_pie_avatar.xml | |||
@@ -10,7 +10,9 @@ | |||
10 | <menu_item_call enabled="false" label="Go To" mouse_opaque="true" name="Go To"> | 10 | <menu_item_call enabled="false" label="Go To" mouse_opaque="true" name="Go To"> |
11 | <on_click function="GoToObject" /> | 11 | <on_click function="GoToObject" /> |
12 | </menu_item_call> | 12 | </menu_item_call> |
13 | <menu_item_separator /> | 13 | <menu_item_call enabled="false" label="Abuse..." mouse_opaque="true" name="abuse"> |
14 | <on_click function="Avatar.ReportAbuse" /> | ||
15 | </menu_item_call> | ||
14 | <menu_item_call enabled="false" label="Add Friend..." mouse_opaque="true" name="Add Friend"> | 16 | <menu_item_call enabled="false" label="Add Friend..." mouse_opaque="true" name="Add Friend"> |
15 | <on_click function="Avatar.AddFriend" /> | 17 | <on_click function="Avatar.AddFriend" /> |
16 | <on_enable function="Avatar.EnableAddFriend" /> | 18 | <on_enable function="Avatar.EnableAddFriend" /> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_pie_land.xml b/linden/indra/newview/skins/default/xui/en-us/menu_pie_land.xml index ee2a431..81ae04f 100644 --- a/linden/indra/newview/skins/default/xui/en-us/menu_pie_land.xml +++ b/linden/indra/newview/skins/default/xui/en-us/menu_pie_land.xml | |||
@@ -3,7 +3,7 @@ | |||
3 | <menu_item_call enabled="false" label="About Land..." mouse_opaque="true" name="About Land..."> | 3 | <menu_item_call enabled="false" label="About Land..." mouse_opaque="true" name="About Land..."> |
4 | <on_click function="ShowFloater" userdata="about land" /> | 4 | <on_click function="ShowFloater" userdata="about land" /> |
5 | </menu_item_call> | 5 | </menu_item_call> |
6 | <menu_item_call enabled="false" label="Create" mouse_opaque="true" name="Create"> | 6 | <menu_item_call enabled="false" label="Build" mouse_opaque="true" name="Create"> |
7 | <on_click function="Land.Build" /> | 7 | <on_click function="Land.Build" /> |
8 | <on_enable function="EnableEdit" /> | 8 | <on_enable function="EnableEdit" /> |
9 | </menu_item_call> | 9 | </menu_item_call> |
@@ -13,7 +13,9 @@ | |||
13 | <menu_item_call enabled="false" label="Sit Here" mouse_opaque="true" name="Sit Here"> | 13 | <menu_item_call enabled="false" label="Sit Here" mouse_opaque="true" name="Sit Here"> |
14 | <on_click function="Land.Sit" /> | 14 | <on_click function="Land.Sit" /> |
15 | </menu_item_call> | 15 | </menu_item_call> |
16 | <menu_item_separator /> | 16 | <menu_item_call enabled="false" label="Landmark..." mouse_opaque="true" name="Add Landmark"> |
17 | <on_click function="Land.NewLandmark" /> | ||
18 | </menu_item_call> | ||
17 | <menu_item_call enabled="false" label="Buy Pass..." mouse_opaque="true" name="Land Buy Pass"> | 19 | <menu_item_call enabled="false" label="Buy Pass..." mouse_opaque="true" name="Land Buy Pass"> |
18 | <on_click function="Land.BuyPass" /> | 20 | <on_click function="Land.BuyPass" /> |
19 | <on_enable function="Land.EnableBuyPass" /> | 21 | <on_enable function="Land.EnableBuyPass" /> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_pie_object.xml b/linden/indra/newview/skins/default/xui/en-us/menu_pie_object.xml index c5a04ce..b63e007 100644 --- a/linden/indra/newview/skins/default/xui/en-us/menu_pie_object.xml +++ b/linden/indra/newview/skins/default/xui/en-us/menu_pie_object.xml | |||
@@ -4,9 +4,9 @@ | |||
4 | <on_click function="Object.Open" /> | 4 | <on_click function="Object.Open" /> |
5 | <on_enable function="Object.EnableOpen" /> | 5 | <on_enable function="Object.EnableOpen" /> |
6 | </menu_item_call> | 6 | </menu_item_call> |
7 | <menu_item_call enabled="false" label="Create" mouse_opaque="true" name="Create"> | 7 | <menu_item_call enabled="false" label="Buy..." mouse_opaque="true" name="Buy..."> |
8 | <on_click function="Object.Build" /> | 8 | <on_click function="Object.Buy" /> |
9 | <on_enable function="EnableEdit" /> | 9 | <on_enable function="Object.EnableBuy" /> |
10 | </menu_item_call> | 10 | </menu_item_call> |
11 | <menu_item_call enabled="false" label="Touch" mouse_opaque="true" name="Object Touch"> | 11 | <menu_item_call enabled="false" label="Touch" mouse_opaque="true" name="Object Touch"> |
12 | <on_click function="Object.Touch" /> | 12 | <on_click function="Object.Touch" /> |
@@ -17,56 +17,56 @@ | |||
17 | <on_enable function="Object.EnableSitOrStand" userdata="Sit Here,Stand Up" /> | 17 | <on_enable function="Object.EnableSitOrStand" userdata="Sit Here,Stand Up" /> |
18 | </menu_item_call> | 18 | </menu_item_call> |
19 | <menu_item_call enabled="false" label="Take" mouse_opaque="true" name="Pie Object Take"> | 19 | <menu_item_call enabled="false" label="Take" mouse_opaque="true" name="Pie Object Take"> |
20 | <on_click function="Tools.BuyOrTake" /> | 20 | <on_click function="Tools.Take" /> |
21 | <on_enable function="Tools.EnableBuyOrTake" userdata="Buy,Take" /> | 21 | <on_enable function="Tools.EnableTake" /> |
22 | </menu_item_call> | 22 | </menu_item_call> |
23 | <menu_item_call enabled="false" label="Pay..." mouse_opaque="true" name="Pay..."> | 23 | <menu_item_call enabled="false" label="Pay..." mouse_opaque="true" name="Pay..."> |
24 | <on_click function="PayObject" /> | 24 | <on_click function="PayObject" /> |
25 | <on_enable function="EnablePayObject" /> | 25 | <on_enable function="EnablePayObject" /> |
26 | </menu_item_call> | 26 | </menu_item_call> |
27 | <pie_menu label="More >" name="More >"> | 27 | <pie_menu label="More >" name="More >"> |
28 | <menu_item_call enabled="false" label="Delete" mouse_opaque="true" name="Delete"> | 28 | <menu_item_call enabled="false" label="Build" mouse_opaque="true" name="Create"> |
29 | <on_click function="Object.Delete" /> | 29 | <on_click function="Object.Build" /> |
30 | <on_enable function="Object.EnableDelete" /> | 30 | <on_enable function="EnableEdit" /> |
31 | </menu_item_call> | 31 | </menu_item_call> |
32 | <menu_item_call enabled="false" label="Wear" mouse_opaque="true" name="Wear"> | 32 | <menu_item_call enabled="false" label="Wear" mouse_opaque="true" name="Wear"> |
33 | <on_click function="Object.AttachToAvatar" /> | 33 | <on_click function="Object.AttachToAvatar" /> |
34 | <on_enable function="Object.EnableWear" /> | 34 | <on_enable function="Object.EnableWear" /> |
35 | </menu_item_call> | 35 | </menu_item_call> |
36 | <menu_item_call enabled="false" label="Take Copy" mouse_opaque="true" name="Take Copy"> | 36 | <menu_item_call enabled="false" label="Take Copy" mouse_opaque="true" name="Take Copy"> |
37 | <on_click function="Tools.TakeCopy" /> | 37 | <on_click function="Tools.TakeCopy" /> |
38 | <on_enable function="Tools.EnableTakeCopy" /> | 38 | <on_enable function="Tools.EnableTakeCopy" /> |
39 | </menu_item_call> | 39 | </menu_item_call> |
40 | <pie_menu label="Attach HUD >" name="Object Attach HUD" /> | 40 | <pie_menu label="Attach HUD >" name="Object Attach HUD" /> |
41 | <pie_menu label="Attach >" name="Object Attach" /> | 41 | <pie_menu label="Attach >" name="Object Attach" /> |
42 | <menu_item_call enabled="false" label="Return..." mouse_opaque="true" name="Return..."> | 42 | <menu_item_call enabled="false" label="Return..." mouse_opaque="true" name="Return..."> |
43 | <on_click function="Object.Return" /> | 43 | <on_click function="Object.Return" /> |
44 | <on_enable function="Object.EnableReturn" /> | 44 | <on_enable function="Object.EnableReturn" /> |
45 | </menu_item_call> | 45 | </menu_item_call> |
46 | <pie_menu label="More >" name="Rate Menu"> | 46 | <pie_menu label="More >" name="Rate Menu"> |
47 | <menu_item_separator /> | 47 | <menu_item_separator /> |
48 | <menu_item_separator /> | 48 | <menu_item_separator /> |
49 | <menu_item_call enabled="false" label="Report Abuse..." mouse_opaque="true" | 49 | <menu_item_call enabled="false" label="Abuse..." mouse_opaque="true" |
50 | name="Report Abuse..."> | 50 | name="Report Abuse..."> |
51 | <on_click function="Object.ReportAbuse" /> | 51 | <on_click function="Object.ReportAbuse" /> |
52 | <on_enable function="Object.EnableReportAbuse" /> | 52 | <on_enable function="Object.EnableReportAbuse" /> |
53 | </menu_item_call> | 53 | </menu_item_call> |
54 | <menu_item_separator /> | 54 | <menu_item_separator /> |
55 | <menu_item_separator /> | 55 | <menu_item_separator /> |
56 | <menu_item_separator /> | 56 | <menu_item_call enabled="false" label="Mute" mouse_opaque="true" name="Object Mute"> |
57 | <menu_item_call enabled="false" label="Mute" mouse_opaque="true" name="Object Mute"> | 57 | <on_click function="Object.Mute" /> |
58 | <on_click function="Object.Mute" /> | 58 | <on_enable function="Object.EnableMute" /> |
59 | <on_enable function="Object.EnableMute" /> | 59 | </menu_item_call> |
60 | </menu_item_call> | 60 | <menu_item_separator /> |
61 | <menu_item_call enabled="true" label="Inspect" mouse_opaque="true" name="Object Inspect"> | 61 | <menu_item_call enabled="true" label="Inspect" mouse_opaque="true" name="Object Inspect"> |
62 | <on_click function="Object.Inspect" /> | 62 | <on_click function="Object.Inspect" /> |
63 | <on_enable function="Object.EnableInspect" /> | 63 | <on_enable function="Object.EnableInspect" /> |
64 | </menu_item_call> | 64 | </menu_item_call> |
65 | </pie_menu> | 65 | </pie_menu> |
66 | <menu_item_call enabled="false" label="Buy..." mouse_opaque="true" name="Buy..."> | 66 | <menu_item_call enabled="false" label="Delete" mouse_opaque="true" name="Delete"> |
67 | <on_click function="Object.Buy" /> | 67 | <on_click function="Object.Delete" /> |
68 | <on_enable function="Object.EnableBuy" /> | 68 | <on_enable function="Object.EnableDelete" /> |
69 | </menu_item_call> | 69 | </menu_item_call> |
70 | </pie_menu> | 70 | </pie_menu> |
71 | <menu_item_call enabled="false" label="Edit..." mouse_opaque="true" name="Edit..."> | 71 | <menu_item_call enabled="false" label="Edit..." mouse_opaque="true" name="Edit..."> |
72 | <on_click function="Object.Edit" /> | 72 | <on_click function="Object.Edit" /> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_pie_self.xml b/linden/indra/newview/skins/default/xui/en-us/menu_pie_self.xml index 327e22e..4fb7262 100644 --- a/linden/indra/newview/skins/default/xui/en-us/menu_pie_self.xml +++ b/linden/indra/newview/skins/default/xui/en-us/menu_pie_self.xml | |||
@@ -6,85 +6,85 @@ | |||
6 | <menu_item_call enabled="true" label="Groups..." name="Groups..."> | 6 | <menu_item_call enabled="true" label="Groups..." name="Groups..."> |
7 | <on_click function="ShowAgentGroups" userdata="agent" /> | 7 | <on_click function="ShowAgentGroups" userdata="agent" /> |
8 | </menu_item_call> | 8 | </menu_item_call> |
9 | <menu_item_call enabled="true" label="Go..." name="Go..."> | 9 | <menu_item_call enabled="true" label="Inventory" name="Inventory"> |
10 | <on_click function="ShowFloater" userdata="movement controls" /> | 10 | <on_click function="ShowFloater" userdata="inventory" /> |
11 | </menu_item_call> | 11 | </menu_item_call> |
12 | <menu_item_call enabled="true" label="Stand Up" name="Stand Up"> | 12 | <menu_item_call enabled="true" label="Stand Up" name="Stand Up"> |
13 | <on_click function="Self.StandUp" userdata="" /> | 13 | <on_click function="Self.StandUp" userdata="" /> |
14 | <on_enable function="Self.EnableStandUp" /> | 14 | <on_enable function="Self.EnableStandUp" /> |
15 | </menu_item_call> | 15 | </menu_item_call> |
16 | <menu_item_call enabled="true" label="Friends..." name="Friends..."> | 16 | <menu_item_call enabled="true" label="Friends..." name="Friends..."> |
17 | <on_click function="ShowFloater" userdata="friends" /> | 17 | <on_click function="ShowFloater" userdata="friends" /> |
18 | </menu_item_call> | 18 | </menu_item_call> |
19 | <menu_item_call enabled="true" label="Gestures..." name="Gestures..."> | 19 | <menu_item_call enabled="true" label="Gestures..." name="Gestures..."> |
20 | <on_click function="ShowFloater" userdata="gestures" /> | 20 | <on_click function="ShowFloater" userdata="gestures" /> |
21 | </menu_item_call> | 21 | </menu_item_call> |
22 | <pie_menu enabled="true" label="Take Off >" name="Take Off >"> | 22 | <pie_menu enabled="true" label="Take Off >" name="Take Off >"> |
23 | <pie_menu enabled="true" label="Clothes >" name="Clothes >"> | 23 | <pie_menu enabled="true" label="Clothes >" name="Clothes >"> |
24 | <menu_item_call bottom="-29" enabled="false" height="19" label="Shirt" left="0" | 24 | <menu_item_call bottom="-29" enabled="false" height="19" label="Shirt" left="0" |
25 | mouse_opaque="true" name="Shirt" width="118"> | 25 | mouse_opaque="true" name="Shirt" width="118"> |
26 | <on_click function="Edit.TakeOff" userdata="shirt" /> | 26 | <on_click function="Edit.TakeOff" userdata="shirt" /> |
27 | <on_enable function="Edit.EnableTakeOff" userdata="shirt" /> | 27 | <on_enable function="Edit.EnableTakeOff" userdata="shirt" /> |
28 | </menu_item_call> | 28 | </menu_item_call> |
29 | <menu_item_call bottom="-48" enabled="false" height="19" label="Pants" left="0" | 29 | <menu_item_call bottom="-48" enabled="false" height="19" label="Pants" left="0" |
30 | mouse_opaque="true" name="Pants" width="118"> | 30 | mouse_opaque="true" name="Pants" width="118"> |
31 | <on_click function="Edit.TakeOff" userdata="pants" /> | 31 | <on_click function="Edit.TakeOff" userdata="pants" /> |
32 | <on_enable function="Edit.EnableTakeOff" userdata="pants" /> | 32 | <on_enable function="Edit.EnableTakeOff" userdata="pants" /> |
33 | </menu_item_call> | 33 | </menu_item_call> |
34 | <menu_item_call bottom="-67" enabled="false" height="19" label="Shoes" left="0" | 34 | <menu_item_call bottom="-67" enabled="false" height="19" label="Shoes" left="0" |
35 | mouse_opaque="true" name="Shoes" width="118"> | 35 | mouse_opaque="true" name="Shoes" width="118"> |
36 | <on_click function="Edit.TakeOff" userdata="shoes" /> | 36 | <on_click function="Edit.TakeOff" userdata="shoes" /> |
37 | <on_enable function="Edit.EnableTakeOff" userdata="shoes" /> | 37 | <on_enable function="Edit.EnableTakeOff" userdata="shoes" /> |
38 | </menu_item_call> | 38 | </menu_item_call> |
39 | <menu_item_call bottom="-86" enabled="false" height="19" label="Socks" left="0" | 39 | <menu_item_call bottom="-86" enabled="false" height="19" label="Socks" left="0" |
40 | mouse_opaque="true" name="Socks" width="118"> | 40 | mouse_opaque="true" name="Socks" width="118"> |
41 | <on_click function="Edit.TakeOff" userdata="socks" /> | 41 | <on_click function="Edit.TakeOff" userdata="socks" /> |
42 | <on_enable function="Edit.EnableTakeOff" userdata="socks" /> | 42 | <on_enable function="Edit.EnableTakeOff" userdata="socks" /> |
43 | </menu_item_call> | 43 | </menu_item_call> |
44 | <menu_item_call bottom="-105" enabled="false" height="19" label="Jacket" left="0" | 44 | <menu_item_call bottom="-105" enabled="false" height="19" label="Jacket" left="0" |
45 | mouse_opaque="true" name="Jacket" width="118"> | 45 | mouse_opaque="true" name="Jacket" width="118"> |
46 | <on_click function="Edit.TakeOff" userdata="jacket" /> | 46 | <on_click function="Edit.TakeOff" userdata="jacket" /> |
47 | <on_enable function="Edit.EnableTakeOff" userdata="jacket" /> | 47 | <on_enable function="Edit.EnableTakeOff" userdata="jacket" /> |
48 | </menu_item_call> | 48 | </menu_item_call> |
49 | <menu_item_call bottom="-124" enabled="false" height="19" label="Gloves" left="0" | 49 | <menu_item_call bottom="-124" enabled="false" height="19" label="Gloves" left="0" |
50 | mouse_opaque="true" name="Gloves" width="118"> | 50 | mouse_opaque="true" name="Gloves" width="118"> |
51 | <on_click function="Edit.TakeOff" userdata="gloves" /> | 51 | <on_click function="Edit.TakeOff" userdata="gloves" /> |
52 | <on_enable function="Edit.EnableTakeOff" userdata="gloves" /> | 52 | <on_enable function="Edit.EnableTakeOff" userdata="gloves" /> |
53 | </menu_item_call> | 53 | </menu_item_call> |
54 | <pie_menu enabled="true" label="More >" name="More >"> | 54 | <pie_menu enabled="true" label="More >" name="More >"> |
55 | <menu_item_call bottom="-143" enabled="false" height="19" label="Undershirt" left="0" | 55 | <menu_item_call bottom="-143" enabled="false" height="19" label="Undershirt" left="0" |
56 | mouse_opaque="true" name="Self Undershirt" width="118"> | 56 | mouse_opaque="true" name="Self Undershirt" width="118"> |
57 | <on_click function="Edit.TakeOff" userdata="undershirt" /> | 57 | <on_click function="Edit.TakeOff" userdata="undershirt" /> |
58 | <on_enable function="Edit.EnableTakeOff" userdata="undershirt" /> | 58 | <on_enable function="Edit.EnableTakeOff" userdata="undershirt" /> |
59 | </menu_item_call> | 59 | </menu_item_call> |
60 | <menu_item_separator /> | 60 | <menu_item_separator /> |
61 | <menu_item_call bottom="-200" enabled="true" height="19" label="All Clothes" left="0" | 61 | <menu_item_call bottom="-200" enabled="true" height="19" label="All Clothes" left="0" |
62 | mouse_opaque="true" name="All Clothes" width="118"> | 62 | mouse_opaque="true" name="All Clothes" width="118"> |
63 | <on_click function="Edit.TakeOff" userdata="all" /> | 63 | <on_click function="Edit.TakeOff" userdata="all" /> |
64 | </menu_item_call> | 64 | </menu_item_call> |
65 | <menu_item_separator /> | 65 | <menu_item_separator /> |
66 | <menu_item_call bottom="-162" enabled="false" height="19" label="Underpants" left="0" | 66 | <menu_item_call bottom="-162" enabled="false" height="19" label="Underpants" left="0" |
67 | mouse_opaque="true" name="Self Underpants" width="118"> | 67 | mouse_opaque="true" name="Self Underpants" width="118"> |
68 | <on_click function="Edit.TakeOff" userdata="underpants" /> | 68 | <on_click function="Edit.TakeOff" userdata="underpants" /> |
69 | <on_enable function="Edit.EnableTakeOff" userdata="underpants" /> | 69 | <on_enable function="Edit.EnableTakeOff" userdata="underpants" /> |
70 | </menu_item_call> | 70 | </menu_item_call> |
71 | </pie_menu> | 71 | </pie_menu> |
72 | <menu_item_call bottom="-181" enabled="false" height="19" label="Skirt" left="0" | 72 | <menu_item_call bottom="-181" enabled="false" height="19" label="Skirt" left="0" |
73 | mouse_opaque="true" name="Skirt" width="118"> | 73 | mouse_opaque="true" name="Skirt" width="118"> |
74 | <on_click function="Edit.TakeOff" userdata="skirt" /> | 74 | <on_click function="Edit.TakeOff" userdata="skirt" /> |
75 | <on_enable function="Edit.EnableTakeOff" userdata="skirt" /> | 75 | <on_enable function="Edit.EnableTakeOff" userdata="skirt" /> |
76 | </menu_item_call> | 76 | </menu_item_call> |
77 | </pie_menu> | 77 | </pie_menu> |
78 | <menu_item_separator /> | 78 | <menu_item_separator /> |
79 | <pie_menu enabled="true" label="HUD >" name="Object Detach HUD" /> | 79 | <pie_menu enabled="true" label="HUD >" name="Object Detach HUD" /> |
80 | <menu_item_separator /> | 80 | <menu_item_separator /> |
81 | <pie_menu enabled="true" label="Detach >" name="Object Detach" /> | 81 | <pie_menu enabled="true" label="Detach >" name="Object Detach" /> |
82 | <menu_item_separator /> | 82 | <menu_item_separator /> |
83 | <menu_item_call enabled="true" label="Detach All" name="Detach All"> | 83 | <menu_item_call enabled="true" label="Detach All" name="Detach All"> |
84 | <on_click function="Self.RemoveAllAttachments" userdata="" /> | 84 | <on_click function="Self.RemoveAllAttachments" userdata="" /> |
85 | <on_enable function="Self.EnableRemoveAllAttachments" /> | 85 | <on_enable function="Self.EnableRemoveAllAttachments" /> |
86 | </menu_item_call> | 86 | </menu_item_call> |
87 | </pie_menu> | 87 | </pie_menu> |
88 | <menu_item_call enabled="true" label="Appearance..." name="Appearance..."> | 88 | <menu_item_call enabled="true" label="Appearance..." name="Appearance..."> |
89 | <on_click function="ShowFloater" userdata="appearance" /> | 89 | <on_click function="ShowFloater" userdata="appearance" /> |
90 | <on_enable function="Edit.EnableCustomizeAvatar" /> | 90 | <on_enable function="Edit.EnableCustomizeAvatar" /> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml index 682acb9..a741b94 100644 --- a/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml +++ b/linden/indra/newview/skins/default/xui/en-us/menu_viewer.xml | |||
@@ -127,8 +127,7 @@ | |||
127 | </menu_item_call> | 127 | </menu_item_call> |
128 | <menu_item_separator /> | 128 | <menu_item_separator /> |
129 | <menu_item_call name="Duplicate" enabled="false" | 129 | <menu_item_call name="Duplicate" enabled="false" |
130 | label="Duplicate" | 130 | label="Duplicate"> |
131 | shortcut="control|D"> | ||
132 | <on_click function="Edit.Duplicate" userdata="" /> | 131 | <on_click function="Edit.Duplicate" userdata="" /> |
133 | <on_enable function="Edit.EnableDuplicate" /> | 132 | <on_enable function="Edit.EnableDuplicate" /> |
134 | </menu_item_call> | 133 | </menu_item_call> |
@@ -205,6 +204,12 @@ | |||
205 | userdata="all" /> | 204 | userdata="all" /> |
206 | </menu_item_call> | 205 | </menu_item_call> |
207 | </menu> | 206 | </menu> |
207 | <menu_item_call name="Refresh Appearance" | ||
208 | label="Refresh Appearance" | ||
209 | shortcut="control|alt|R"> | ||
210 | <on_click function="Advanced.RebakeTextures" | ||
211 | userdata="" /> | ||
212 | </menu_item_call> | ||
208 | <menu_item_separator /> | 213 | <menu_item_separator /> |
209 | <menu_item_call name="Gestures..." label="Gestures..." | 214 | <menu_item_call name="Gestures..." label="Gestures..." |
210 | shortcut="control|G"> | 215 | shortcut="control|G"> |
@@ -276,10 +281,6 @@ | |||
276 | <on_click function="ShowFloater" userdata="inworld browser" /> | 281 | <on_click function="ShowFloater" userdata="inworld browser" /> |
277 | </menu_item_call> | 282 | </menu_item_call> |
278 | <menu_item_separator /> | 283 | <menu_item_separator /> |
279 | <menu_item_check name="Toolbar" label="Toolbar"> | ||
280 | <on_click function="ShowFloater" userdata="toolbar" /> | ||
281 | <on_check function="FloaterVisible" userdata="toolbar" /> | ||
282 | </menu_item_check> | ||
283 | <menu_item_check name="Chat History" label="Local Chat" | 284 | <menu_item_check name="Chat History" label="Local Chat" |
284 | shortcut="control|H"> | 285 | shortcut="control|H"> |
285 | <on_click function="ShowFloater" userdata="chat history" /> | 286 | <on_click function="ShowFloater" userdata="chat history" /> |
@@ -423,7 +424,7 @@ | |||
423 | userdata="hideparticles" /> | 424 | userdata="hideparticles" /> |
424 | </menu_item_check> | 425 | </menu_item_check> |
425 | <menu_item_separator /> | 426 | <menu_item_separator /> |
426 | <menu name="Beacon Width" color="0 0 0 1" create_jump_keys="true" | 427 | <menu name="Beacon Width" create_jump_keys="true" |
427 | label="Beacon Width" opaque="true" tear_off="true"> | 428 | label="Beacon Width" opaque="true" tear_off="true"> |
428 | <menu_item_call name="Beacon Width 1" label="1"> | 429 | <menu_item_call name="Beacon Width 1" label="1"> |
429 | <on_click function="View.BeaconWidth" userdata="1" /> | 430 | <on_click function="View.BeaconWidth" userdata="1" /> |
@@ -439,34 +440,27 @@ | |||
439 | </menu_item_call> | 440 | </menu_item_call> |
440 | </menu> | 441 | </menu> |
441 | </menu> | 442 | </menu> |
442 | <menu_item_check name="Show HUD Attachments" | ||
443 | label="Show HUD Attachments" | ||
444 | shortcut="alt|shift|H"> | ||
445 | <on_click function="View.ShowHUDAttachments" userdata="" /> | ||
446 | <on_check function="View.CheckHUDAttachments" /> | ||
447 | </menu_item_check> | ||
448 | <menu_item_separator /> | 443 | <menu_item_separator /> |
449 | <menu_item_call name="Zoom In" label="Zoom In" | 444 | <menu name="Zoom Level" create_jump_keys="true" |
450 | shortcut="control|0"> | 445 | label="Zoom Level" opaque="true" tear_off="true"> |
451 | <on_click function="View.ZoomIn" userdata="" /> | 446 | <menu_item_call name="Zoom In" label="Zoom In" |
452 | </menu_item_call> | 447 | shortcut="control|0"> |
453 | <menu_item_call name="Zoom Default" label="Zoom Default" | 448 | <on_click function="View.ZoomIn" userdata="" /> |
454 | shortcut="control|9"> | 449 | </menu_item_call> |
455 | <on_click function="View.ZoomDefault" userdata="" /> | 450 | <menu_item_call name="Zoom Default" label="Zoom Default" |
456 | </menu_item_call> | 451 | shortcut="control|9"> |
457 | <menu_item_call name="Zoom Out" label="Zoom Out" | 452 | <on_click function="View.ZoomDefault" userdata="" /> |
458 | shortcut="control|8"> | 453 | </menu_item_call> |
459 | <on_click function="View.ZoomOut" userdata="" /> | 454 | <menu_item_call name="Zoom Out" label="Zoom Out" |
460 | </menu_item_call> | 455 | shortcut="control|8"> |
456 | <on_click function="View.ZoomOut" userdata="" /> | ||
457 | </menu_item_call> | ||
458 | </menu> | ||
461 | <menu_item_separator /> | 459 | <menu_item_separator /> |
462 | <menu_item_call name="Toggle Fullscreen" label="Toggle Fullscreen" | 460 | <menu_item_call name="Toggle Fullscreen" label="Toggle Fullscreen" |
463 | shortcut="alt|Enter"> | 461 | shortcut="alt|Enter"> |
464 | <on_click function="View.Fullscreen" userdata="" /> | 462 | <on_click function="View.Fullscreen" userdata="" /> |
465 | </menu_item_call> | 463 | </menu_item_call> |
466 | <menu_item_call name="Set UI Size to Default" | ||
467 | label="Set UI Size to Default"> | ||
468 | <on_click function="View.DefaultUISize" userdata="" /> | ||
469 | </menu_item_call> | ||
470 | </menu> | 464 | </menu> |
471 | 465 | ||
472 | 466 | ||
@@ -489,7 +483,7 @@ | |||
489 | <on_check control="FlyBtnState" /> | 483 | <on_check control="FlyBtnState" /> |
490 | </menu_item_check> | 484 | </menu_item_check> |
491 | <menu_item_separator /> | 485 | <menu_item_separator /> |
492 | <menu_item_call name="Create Landmark Here" | 486 | <menu_item_call name="Create Landmark Here" shortcut="control|D" |
493 | label="Create Landmark Here"> | 487 | label="Create Landmark Here"> |
494 | <on_click function="World.CreateLandmark" userdata="" /> | 488 | <on_click function="World.CreateLandmark" userdata="" /> |
495 | <on_enable function="World.EnableCreateLandmark" userdata="" /> | 489 | <on_enable function="World.EnableCreateLandmark" userdata="" /> |
@@ -696,9 +690,9 @@ | |||
696 | <on_enable function="Tools.SomethingSelectedNoHUD" /> | 690 | <on_enable function="Tools.SomethingSelectedNoHUD" /> |
697 | </menu_item_call> | 691 | </menu_item_call> |
698 | <menu_item_call name="Menu Object Take" enabled="false" | 692 | <menu_item_call name="Menu Object Take" enabled="false" |
699 | label="Buy Object" visible="false"> | 693 | label="Take" visible="false"> |
700 | <on_click function="Tools.BuyOrTake" userdata="" /> | 694 | <on_click function="Tools.Take" userdata="" /> |
701 | <on_enable function="Tools.EnableBuyOrTake" userdata="Buy,Take" /> | 695 | <on_enable function="Tools.EnableTake" /> |
702 | </menu_item_call> | 696 | </menu_item_call> |
703 | <menu_item_call name="Take Copy" enabled="false" | 697 | <menu_item_call name="Take Copy" enabled="false" |
704 | label="Take Copy"> | 698 | label="Take Copy"> |
@@ -932,24 +926,13 @@ | |||
932 | 926 | ||
933 | <menu_item_separator /> | 927 | <menu_item_separator /> |
934 | 928 | ||
935 | <menu_item_check name="High-res Snapshot" | 929 | |
936 | label="High-res Snapshot"> | ||
937 | <on_click function="ToggleControl" | ||
938 | userdata="HighResSnapshot" /> | ||
939 | <on_check control="HighResSnapshot" /> | ||
940 | </menu_item_check> | ||
941 | <menu_item_check name="Quiet Snapshots to Disk" | 930 | <menu_item_check name="Quiet Snapshots to Disk" |
942 | label="Quiet Snapshots to Disk"> | 931 | label="Quiet Snapshots to Disk"> |
943 | <on_click function="ToggleControl" | 932 | <on_click function="ToggleControl" |
944 | userdata="QuietSnapshotsToDisk" /> | 933 | userdata="QuietSnapshotsToDisk" /> |
945 | <on_check control="QuietSnapshotsToDisk" /> | 934 | <on_check control="QuietSnapshotsToDisk" /> |
946 | </menu_item_check> | 935 | </menu_item_check> |
947 | <menu_item_check name="Compress Snapshots to Disk" | ||
948 | label="Compress Snapshots to Disk"> | ||
949 | <on_click function="ToggleControl" | ||
950 | userdata="CompressSnapshotsToDisk" /> | ||
951 | <on_check control="CompressSnapshotsToDisk" /> | ||
952 | </menu_item_check> | ||
953 | <menu_item_check name="Show Mouselook Crosshairs" | 936 | <menu_item_check name="Show Mouselook Crosshairs" |
954 | label="Show Mouselook Crosshairs"> | 937 | label="Show Mouselook Crosshairs"> |
955 | <on_click function="ToggleControl" | 938 | <on_click function="ToggleControl" |
@@ -1619,7 +1602,8 @@ | |||
1619 | userdata="" /> | 1602 | userdata="" /> |
1620 | </menu_item_call> | 1603 | </menu_item_call> |
1621 | <menu_item_check name="Show XUI Names" | 1604 | <menu_item_check name="Show XUI Names" |
1622 | label="Show XUI Names"> | 1605 | label="Show XUI Names" |
1606 | shortcut="control|shift|x"> | ||
1623 | <on_click function="Advanced.ToggleXUINames" | 1607 | <on_click function="Advanced.ToggleXUINames" |
1624 | userdata="" /> | 1608 | userdata="" /> |
1625 | <on_check function="Advanced.CheckXUINames" | 1609 | <on_check function="Advanced.CheckXUINames" |
@@ -1835,12 +1819,6 @@ | |||
1835 | <on_click function="Advanced.DumpAttachments" | 1819 | <on_click function="Advanced.DumpAttachments" |
1836 | userdata="" /> | 1820 | userdata="" /> |
1837 | </menu_item_call> | 1821 | </menu_item_call> |
1838 | <menu_item_call name="Rebake Textures" | ||
1839 | label="Rebake Textures" | ||
1840 | shortcut="control|alt|R"> | ||
1841 | <on_click function="Advanced.RebakeTextures" | ||
1842 | userdata="" /> | ||
1843 | </menu_item_call> | ||
1844 | </menu> | 1822 | </menu> |
1845 | 1823 | ||
1846 | 1824 | ||
@@ -1963,12 +1941,6 @@ | |||
1963 | userdata="LimitSelectDistance" /> | 1941 | userdata="LimitSelectDistance" /> |
1964 | <on_check control="LimitSelectDistance" /> | 1942 | <on_check control="LimitSelectDistance" /> |
1965 | </menu_item_check> | 1943 | </menu_item_check> |
1966 | <menu_item_check name="Disable Camera Constraints" | ||
1967 | label="Disable Camera Constraints"> | ||
1968 | <on_click function="ToggleControl" | ||
1969 | userdata="DisableCameraConstraints" /> | ||
1970 | <on_check control="DisableCameraConstraints" /> | ||
1971 | </menu_item_check> | ||
1972 | <menu_item_check name="Mouse Smoothing" | 1944 | <menu_item_check name="Mouse Smoothing" |
1973 | label="Mouse Smoothing"> | 1945 | label="Mouse Smoothing"> |
1974 | <on_click function="ToggleControl" | 1946 | <on_click function="ToggleControl" |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml index 67d3307..7bd966a 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_general.xml | |||
@@ -63,7 +63,11 @@ | |||
63 | <slider bottom="-217" can_edit_text="true" control_name="UIScaleFactor" | 63 | <slider bottom="-217" can_edit_text="true" control_name="UIScaleFactor" |
64 | decimal_digits="3" enabled="true" height="16" increment="0.025" | 64 | decimal_digits="3" enabled="true" height="16" increment="0.025" |
65 | initial_val="1" left="148" max_val="1.4" min_val="0.75" mouse_opaque="true" | 65 | initial_val="1" left="148" max_val="1.4" min_val="0.75" mouse_opaque="true" |
66 | name="UI Scale" show_text="true" value="1" width="256" /> | 66 | name="UI Scale" show_text="true" value="1" width="220" /> |
67 | <button bottom="-221" enabled="true" follows="left|top" | ||
68 | font="SansSerif" halign="center" height="22" label="Reset" | ||
69 | label_selected="Reset" left_delta="226" mouse_opaque="true" | ||
70 | name="reset_ui_size" scale_image="true" width="80" /> | ||
67 | <check_box bottom="-236" control_name="UIAutoScale" enabled="true" follows="left|top" | 71 | <check_box bottom="-236" control_name="UIAutoScale" enabled="true" follows="left|top" |
68 | font="SansSerifSmall" height="16" initial_value="false" | 72 | font="SansSerifSmall" height="16" initial_value="false" |
69 | label="Use resolution independent scale" left="151" mouse_opaque="true" | 73 | label="Use resolution independent scale" left="151" mouse_opaque="true" |
@@ -76,6 +80,10 @@ | |||
76 | font="SansSerifSmall" height="16" initial_value="false" | 80 | font="SansSerifSmall" height="16" initial_value="false" |
77 | label="Rotate Mini-Map" left="151" mouse_opaque="true" | 81 | label="Rotate Mini-Map" left="151" mouse_opaque="true" |
78 | name="rotate_mini_map_checkbox" radio_style="false" width="256" /> | 82 | name="rotate_mini_map_checkbox" radio_style="false" width="256" /> |
83 | <check_box bottom="-286" control_name="MiniMapTeleport" enabled="true" follows="left|top" | ||
84 | font="SansSerifSmall" height="16" initial_value="false" | ||
85 | label="Doubleclick Mini-Map Teleports" left="280" mouse_opaque="true" | ||
86 | name="teleport_mini_map_checkbox" radio_style="false" width="256" /> | ||
79 | <check_box bottom="-304" control_name="NotifyMoneyChange" enabled="true" | 87 | <check_box bottom="-304" control_name="NotifyMoneyChange" enabled="true" |
80 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 88 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" |
81 | label="Notify when Linden dollars (L$) spent or received" left="151" | 89 | label="Notify when Linden dollars (L$) spent or received" left="151" |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml index 23e357f..1867323 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_input.xml | |||
@@ -79,18 +79,23 @@ | |||
79 | label="Automatic Appearance Camera Movement" left="148" mouse_opaque="true" | 79 | label="Automatic Appearance Camera Movement" left="148" mouse_opaque="true" |
80 | name="appearance camera movement" radio_style="false" | 80 | name="appearance camera movement" radio_style="false" |
81 | tool_tip="Use automatic camera positioning while in edit mode" width="242" /> | 81 | tool_tip="Use automatic camera positioning while in edit mode" width="242" /> |
82 | <check_box bottom_delta="-18" control_name="DisableCameraConstraints" enabled="true" | ||
83 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
84 | label="Disable camera constraints" left="148" mouse_opaque="true" | ||
85 | name="Disable camera constraints" radio_style="false" | ||
86 | tool_tip="Disables camera limits such as distance and terrain" width="242" /> | ||
82 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 87 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
83 | bottom="-228" drop_shadow_visible="true" enabled="true" follows="left|top" | 88 | bottom_delta="-32" drop_shadow_visible="true" enabled="true" follows="left|top" |
84 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | 89 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" |
85 | mouse_opaque="true" name="text2" v_pad="0" width="128"> | 90 | mouse_opaque="true" name="text2" v_pad="0" width="128"> |
86 | Avatar Display Options: | 91 | Avatar Display Options: |
87 | </text> | 92 | </text> |
88 | <check_box bottom="-232" control_name="FirstPersonAvatarVisible" enabled="true" | 93 | <check_box bottom_delta="-4" control_name="FirstPersonAvatarVisible" enabled="true" |
89 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | 94 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" |
90 | label="Show Avatar in Mouselook" left="148" mouse_opaque="true" name="avfp" | 95 | label="Show Avatar in Mouselook" left="148" mouse_opaque="true" name="avfp" |
91 | radio_style="false" width="256" /> | 96 | radio_style="false" width="256" /> |
92 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 97 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
93 | bottom="-264" drop_shadow_visible="true" enabled="true" follows="left|top" | 98 | bottom_delta="-32" drop_shadow_visible="true" enabled="true" follows="left|top" |
94 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | 99 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" |
95 | mouse_opaque="true" name="text5" v_pad="0" width="128"> | 100 | mouse_opaque="true" name="text5" v_pad="0" width="128"> |
96 | Joystick Options: | 101 | Joystick Options: |
diff --git a/linden/indra/newview/skins/default/xui/en-us/strings.xml b/linden/indra/newview/skins/default/xui/en-us/strings.xml index e8c341e..ecacc78 100644 --- a/linden/indra/newview/skins/default/xui/en-us/strings.xml +++ b/linden/indra/newview/skins/default/xui/en-us/strings.xml | |||
@@ -1,180 +1,183 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <!-- This file contains strings that used to be hardcoded in the source. | 2 | <!-- This file contains strings that used to be hardcoded in the source. |
3 | It is only for those strings which don't belong in a floater. | 3 | It is only for those strings which don't belong in a floater. |
4 | For example, the strings used in avatar chat bubbles, and strings | 4 | For example, the strings used in avatar chat bubbles, and strings |
5 | that are returned from one component and may appear in many places--> | 5 | that are returned from one component and may appear in many places--> |
6 | <strings> | 6 | <strings> |
7 | 7 | ||
8 | <!-- Login --> | 8 | <!-- Login --> |
9 | <string name="LoginInProgress">Logging in. [APP_NAME] may appear frozen. Please wait.</string> | 9 | <string name="LoginInProgress">Logging in. [APP_NAME] may appear frozen. Please wait.</string> |
10 | <string name="LoginAuthenticating">Authenticating</string> | 10 | <string name="LoginAuthenticating">Authenticating</string> |
11 | <string name="LoginMaintenance">Performing account maintenance...</string> | 11 | <string name="LoginMaintenance">Performing account maintenance...</string> |
12 | <string name="LoginAttempt">Previous login attempt failed. Logging in, attempt [NUMBER]</string> | 12 | <string name="LoginAttempt">Previous login attempt failed. Logging in, attempt [NUMBER]</string> |
13 | <string name="LoginPrecaching">Loading world...</string> | 13 | <string name="LoginPrecaching">Loading world...</string> |
14 | <string name="LoginInitializingBrowser">Initializing embedded web browser...</string> | 14 | <string name="LoginInitializingBrowser">Initializing embedded web browser...</string> |
15 | <string name="LoginInitializingMultimedia">Initializing multimedia...</string> | 15 | <string name="LoginInitializingMultimedia">Initializing multimedia...</string> |
16 | <string name="LoginVerifyingCache">Verifying cache files (can take 60-90 seconds)...</string> | 16 | <string name="LoginVerifyingCache">Verifying cache files (can take 60-90 seconds)...</string> |
17 | <string name="LoginProcessingResponse">Processing Response...</string> | 17 | <string name="LoginProcessingResponse">Processing Response...</string> |
18 | <string name="LoginInitializingWorld">Initializing World...</string> | 18 | <string name="LoginInitializingWorld">Initializing World...</string> |
19 | <string name="LoginDecodingImages">Decoding images...</string> | 19 | <string name="LoginDecodingImages">Decoding images...</string> |
20 | <string name="LoginInitializingQuicktime">Initializing QuickTime...</string> | 20 | <string name="LoginInitializingQuicktime">Initializing QuickTime...</string> |
21 | <string name="LoginQuicktimeNotFound">QuickTime not found - unable to initialize.</string> | 21 | <string name="LoginQuicktimeNotFound">QuickTime not found - unable to initialize.</string> |
22 | <string name="LoginQuicktimeOK">QuickTime initialized successfully.</string> | 22 | <string name="LoginQuicktimeOK">QuickTime initialized successfully.</string> |
23 | <string name="LoginWaitingForRegionHandshake">Waiting for region handshake...</string> | 23 | <string name="LoginWaitingForRegionHandshake">Waiting for region handshake...</string> |
24 | <string name="LoginConnectingToRegion">Connecting to region...</string> | 24 | <string name="LoginConnectingToRegion">Connecting to region...</string> |
25 | <string name="LoginDownloadingClothing">Downloading clothing...</string> | 25 | <string name="LoginDownloadingClothing">Downloading clothing...</string> |
26 | <string name="LoginFailedNoNetwork">Network Error: Could not establish connection, please check your network connection.</string> | 26 | <string name="LoginFailedNoNetwork">Network Error: Could not establish connection, please check your network connection.</string> |
27 | 27 | ||
28 | 28 | ||
29 | <!-- Disconnection --> | 29 | <!-- Disconnection --> |
30 | <string name="AgentLostConnection">This region may be experiencing trouble. Please check your connection to the Internet.</string> | 30 | <string name="AgentLostConnection">This region may be experiencing trouble. Please check your connection to the Internet.</string> |
31 | 31 | ||
32 | 32 | ||
33 | <!-- Tooltip, llhoverview.cpp --> | 33 | <!-- Tooltip, llhoverview.cpp --> |
34 | <string name="TooltipPerson">Person</string><!-- Object under mouse pointer is an avatar --> | 34 | <string name="TooltipPerson">Person</string><!-- Object under mouse pointer is an avatar --> |
35 | <string name="TooltipNoName">(no name)</string> <!-- No name on an object --> | 35 | <string name="TooltipNoName">(no name)</string> <!-- No name on an object --> |
36 | <string name="TooltipOwner">Owner:</string> <!-- Owner name follows --> | 36 | <string name="TooltipOwner">Owner:</string> <!-- Owner name follows --> |
37 | <string name="TooltipPublic">Public</string> <!-- Public permissions on an object --> | 37 | <string name="TooltipPublic">Public</string> <!-- Public permissions on an object --> |
38 | <string name="TooltipIsGroup">(Group)</string> <!-- The name before this text is that of a group --> | 38 | <string name="TooltipIsGroup">(Group)</string> <!-- The name before this text is that of a group --> |
39 | <string name="TooltipFlagScript">Script</string> | 39 | <string name="TooltipFlagScript">Script</string> |
40 | <string name="TooltipFlagPhysics">Physics</string> | 40 | <string name="TooltipFlagPhysics">Physics</string> |
41 | <string name="TooltipFlagTouch">Touch</string> | 41 | <string name="TooltipFlagTouch">Touch</string> |
42 | <string name="TooltipFlagL$">L$</string> | 42 | <string name="TooltipFlagL$">L$</string> |
43 | <string name="TooltipFlagDropInventory">Drop Inventory</string> | 43 | <string name="TooltipFlagDropInventory">Drop Inventory</string> |
44 | <string name="TooltipFlagPhantom">Phantom</string> | 44 | <string name="TooltipFlagPhantom">Phantom</string> |
45 | <string name="TooltipFlagTemporary">Temporary</string> | 45 | <string name="TooltipFlagTemporary">Temporary</string> |
46 | <string name="TooltipFlagRightClickMenu">(Right-click for menu)</string> | 46 | <string name="TooltipFlagRightClickMenu">(Right-click for menu)</string> |
47 | <string name="TooltipFreeToCopy">Free to copy</string> | 47 | <string name="TooltipFreeToCopy">Free to copy</string> |
48 | <string name="TooltipForSaleL$">For Sale: L$[AMOUNT]</string> <!-- L$ version --> | 48 | <string name="TooltipForSaleL$">For Sale: L$[AMOUNT]</string> <!-- L$ version --> |
49 | <string name="TooltipForSaleMsg">For Sale: [MESSAGE]</string> <!-- Message (RetrievingData) --> | 49 | <string name="TooltipForSaleMsg">For Sale: [MESSAGE]</string> <!-- Message (RetrievingData) --> |
50 | <string name="TooltipFlagGroupBuild">Group Build</string> | 50 | <string name="TooltipFlagGroupBuild">Group Build</string> |
51 | <string name="TooltipFlagNoBuild">No Build</string> | 51 | <string name="TooltipFlagNoBuild">No Build</string> |
52 | <string name="TooltipFlagNoEdit">Group Build</string> | 52 | <string name="TooltipFlagNoEdit">Group Build</string> |
53 | <string name="TooltipFlagNotSafe">Not Safe</string><!-- damage area --> | 53 | <string name="TooltipFlagNotSafe">Not Safe</string><!-- damage area --> |
54 | <string name="TooltipFlagNoFly">No Fly</string> | 54 | <string name="TooltipFlagNoFly">No Fly</string> |
55 | <string name="TooltipFlagGroupScripts">Group Scripts</string> | 55 | <string name="TooltipFlagGroupScripts">Group Scripts</string> |
56 | <string name="TooltipFlagNoScripts">No Scripts</string> | 56 | <string name="TooltipFlagNoScripts">No Scripts</string> |
57 | <string name="TooltipLand">Land:</string> | 57 | <string name="TooltipLand">Land:</string> |
58 | <string name="TooltipMustSingleDrop">Only a single item can be dragged here</string> | 58 | <string name="TooltipMustSingleDrop">Only a single item can be dragged here</string> |
59 | 59 | ||
60 | 60 | ||
61 | <!-- Indicates that an avatar's name or other similar datum is being retrieved. General usage. --> | 61 | <!-- Indicates that an avatar's name or other similar datum is being retrieved. General usage. --> |
62 | <string name="RetrievingData">Retrieving...</string> | 62 | <string name="RetrievingData">Retrieving...</string> |
63 | 63 | ||
64 | <string name="ReleaseNotes">Release Notes</string> | 64 | <string name="ReleaseNotes">Release Notes</string> |
65 | 65 | ||
66 | <!-- Indicates something is being loaded. Maybe should be merged with RetrievingData --> | 66 | <!-- Indicates something is being loaded. Maybe should be merged with RetrievingData --> |
67 | <string name="LoadingData">Loading...</string> | 67 | <string name="LoadingData">Loading...</string> |
68 | 68 | ||
69 | 69 | ||
70 | <!-- namecache --> | 70 | <!-- namecache --> |
71 | <!-- Avatar name: text shown for LLUUID::null --> | 71 | <!-- Avatar name: text shown for LLUUID::null --> |
72 | <string name="AvatarNameNobody">(nobody)</string> | 72 | <string name="AvatarNameNobody">(nobody)</string> |
73 | 73 | ||
74 | <!-- Avatar name: text shown while fetching name --> | 74 | <!-- Avatar name: text shown while fetching name --> |
75 | <string name="AvatarNameWaiting">(waiting)</string> | 75 | <string name="AvatarNameWaiting">(waiting)</string> |
76 | 76 | ||
77 | <!-- Avatar name: text shown as an alternative to AvatarNameFetching, easter egg. --> | 77 | <!-- Avatar name: text shown as an alternative to AvatarNameFetching, easter egg. --> |
78 | <string name="AvatarNameHippos">(hippos)</string> | 78 | <string name="AvatarNameHippos">(hippos)</string> |
79 | 79 | ||
80 | <!-- Group name: text shown for LLUUID::null --> | 80 | <!-- Group name: text shown for LLUUID::null --> |
81 | <string name="GroupNameNone">(none)</string> | 81 | <string name="GroupNameNone">(none)</string> |
82 | 82 | ||
83 | <!-- Asset errors. Used in llassetstorage.cpp, translation from error code to error message. --> | 83 | <!-- Asset errors. Used in llassetstorage.cpp, translation from error code to error message. --> |
84 | <string name="AssetErrorNone">No error</string> | 84 | <string name="AssetErrorNone">No error</string> |
85 | <string name="AssetErrorRequestFailed">Asset request: failed</string> | 85 | <string name="AssetErrorRequestFailed">Asset request: failed</string> |
86 | <string name="AssetErrorNonexistentFile">Asset request: non-existent file</string> | 86 | <string name="AssetErrorNonexistentFile">Asset request: non-existent file</string> |
87 | <string name="AssetErrorNotInDatabase">Asset request: asset not found in database</string> | 87 | <string name="AssetErrorNotInDatabase">Asset request: asset not found in database</string> |
88 | <string name="AssetErrorEOF">End of file</string> | 88 | <string name="AssetErrorEOF">End of file</string> |
89 | <string name="AssetErrorCannotOpenFile">Cannot open file</string> | 89 | <string name="AssetErrorCannotOpenFile">Cannot open file</string> |
90 | <string name="AssetErrorFileNotFound">File not found</string> | 90 | <string name="AssetErrorFileNotFound">File not found</string> |
91 | <string name="AssetErrorTCPTimeout">File transfer timeout</string> | 91 | <string name="AssetErrorTCPTimeout">File transfer timeout</string> |
92 | <string name="AssetErrorCircuitGone">Circuit gone</string> | 92 | <string name="AssetErrorCircuitGone">Circuit gone</string> |
93 | <string name="AssetErrorUnknownStatus">Unknown status</string> | 93 | <string name="AssetErrorUnknownStatus">Unknown status</string> |
94 | 94 | ||
95 | <!-- llvoavatar. Displayed in the avatar's chat bubble --> | 95 | <!-- llvoavatar. Displayed in the avatar's chat bubble --> |
96 | <string name="AvatarEditingApparance">(Editing Appearance)</string> | 96 | <string name="AvatarEditingApparance">(Editing Appearance)</string> |
97 | <string name="AvatarAway">Away</string> | 97 | <string name="AvatarAway">Away</string> |
98 | <string name="AvatarBusy">Busy</string> | 98 | <string name="AvatarBusy">Busy</string> |
99 | <string name="AvatarMuted">Muted</string> | 99 | <string name="AvatarMuted">Muted</string> |
100 | 100 | ||
101 | <!-- animations --> | 101 | <!-- animations --> |
102 | <string name="anim_express_afraid">Afraid</string> | 102 | <string name="anim_express_afraid">Afraid</string> |
103 | <string name="anim_express_anger">Angry</string> | 103 | <string name="anim_express_anger">Angry</string> |
104 | <string name="anim_away">Away</string> | 104 | <string name="anim_away">Away</string> |
105 | <string name="anim_backflip">Backflip</string> | 105 | <string name="anim_backflip">Backflip</string> |
106 | <string name="anim_express_laugh">Belly Laugh</string> | 106 | <string name="anim_express_laugh">Belly Laugh</string> |
107 | <string name="anim_express_toothsmile">BigSmile</string> | 107 | <string name="anim_express_toothsmile">BigSmile</string> |
108 | <string name="anim_blowkiss">Blow Kiss</string> | 108 | <string name="anim_blowkiss">Blow Kiss</string> |
109 | <string name="anim_express_bored">Bored</string> | 109 | <string name="anim_express_bored">Bored</string> |
110 | <string name="anim_bow">Bow</string> | 110 | <string name="anim_bow">Bow</string> |
111 | <string name="anim_clap">Clap</string> | 111 | <string name="anim_clap">Clap</string> |
112 | <string name="anim_courtbow">Court Bow</string> | 112 | <string name="anim_courtbow">Court Bow</string> |
113 | <string name="anim_express_cry">Cry</string> | 113 | <string name="anim_express_cry">Cry</string> |
114 | <string name="anim_dance1">Dance 1</string> | 114 | <string name="anim_dance1">Dance 1</string> |
115 | <string name="anim_dance2">Dance 2</string> | 115 | <string name="anim_dance2">Dance 2</string> |
116 | <string name="anim_dance3">Dance 3</string> | 116 | <string name="anim_dance3">Dance 3</string> |
117 | <string name="anim_dance4">Dance 4</string> | 117 | <string name="anim_dance4">Dance 4</string> |
118 | <string name="anim_dance5">Dance 5</string> | 118 | <string name="anim_dance5">Dance 5</string> |
119 | <string name="anim_dance6">Dance 6</string> | 119 | <string name="anim_dance6">Dance 6</string> |
120 | <string name="anim_dance7">Dance 7</string> | 120 | <string name="anim_dance7">Dance 7</string> |
121 | <string name="anim_dance8">Dance 8</string> | 121 | <string name="anim_dance8">Dance 8</string> |
122 | <string name="anim_express_disdain">Disdain</string> | 122 | <string name="anim_express_disdain">Disdain</string> |
123 | <string name="anim_drink">Drink</string> | 123 | <string name="anim_drink">Drink</string> |
124 | <string name="anim_express_embarrased">Embarrassed</string> | 124 | <string name="anim_express_embarrased">Embarrassed</string> |
125 | <string name="anim_angry_fingerwag">Finger Wag</string> | 125 | <string name="anim_angry_fingerwag">Finger Wag</string> |
126 | <string name="anim_fist_pump">Fist Pump</string> | 126 | <string name="anim_fist_pump">Fist Pump</string> |
127 | <string name="anim_yoga_float">Floating Yoga</string> | 127 | <string name="anim_yoga_float">Floating Yoga</string> |
128 | <string name="anim_express_frown">Frown</string> | 128 | <string name="anim_express_frown">Frown</string> |
129 | <string name="anim_impatient">Impatient</string> | 129 | <string name="anim_impatient">Impatient</string> |
130 | <string name="anim_jumpforjoy">Jump For Joy</string> | 130 | <string name="anim_jumpforjoy">Jump For Joy</string> |
131 | <string name="anim_kissmybutt">Kiss My Butt</string> | 131 | <string name="anim_kissmybutt">Kiss My Butt</string> |
132 | <string name="anim_express_kiss">Kiss</string> | 132 | <string name="anim_express_kiss">Kiss</string> |
133 | <string name="anim_laugh_short">Laugh</string> | 133 | <string name="anim_laugh_short">Laugh</string> |
134 | <string name="anim_musclebeach">Muscle Beach</string> | 134 | <string name="anim_musclebeach">Muscle Beach</string> |
135 | <string name="anim_no_unhappy">No (Unhappy)</string> | 135 | <string name="anim_no_unhappy">No (Unhappy)</string> |
136 | <string name="anim_no_head">No</string> | 136 | <string name="anim_no_head">No</string> |
137 | <string name="anim_nyanya">Nya-nya-nya</string> | 137 | <string name="anim_nyanya">Nya-nya-nya</string> |
138 | <string name="anim_punch_onetwo">One-Two Punch</string> | 138 | <string name="anim_punch_onetwo">One-Two Punch</string> |
139 | <string name="anim_express_open_mouth">Open Mouth</string> | 139 | <string name="anim_express_open_mouth">Open Mouth</string> |
140 | <string name="anim_peace">Peace</string> | 140 | <string name="anim_peace">Peace</string> |
141 | <string name="anim_point_you">Point at Other</string> | 141 | <string name="anim_point_you">Point at Other</string> |
142 | <string name="anim_point_me">Point at Self</string> | 142 | <string name="anim_point_me">Point at Self</string> |
143 | <string name="anim_punch_l">Punch Left</string> | 143 | <string name="anim_punch_l">Punch Left</string> |
144 | <string name="anim_punch_r">Punch Right</string> | 144 | <string name="anim_punch_r">Punch Right</string> |
145 | <string name="anim_rps_countdown">RPS count</string> | 145 | <string name="anim_rps_countdown">RPS count</string> |
146 | <string name="anim_rps_paper">RPS paper</string> | 146 | <string name="anim_rps_paper">RPS paper</string> |
147 | <string name="anim_rps_rock">RPS rock</string> | 147 | <string name="anim_rps_rock">RPS rock</string> |
148 | <string name="anim_rps_scissors">RPS scissors</string> | 148 | <string name="anim_rps_scissors">RPS scissors</string> |
149 | <string name="anim_express_repulsed">Repulsed</string> | 149 | <string name="anim_express_repulsed">Repulsed</string> |
150 | <string name="anim_kick_roundhouse_r">Roundhouse Kick</string> | 150 | <string name="anim_kick_roundhouse_r">Roundhouse Kick</string> |
151 | <string name="anim_express_sad">Sad</string> | 151 | <string name="anim_express_sad">Sad</string> |
152 | <string name="anim_salute">Salute</string> | 152 | <string name="anim_salute">Salute</string> |
153 | <string name="anim_shout">Shout</string> | 153 | <string name="anim_shout">Shout</string> |
154 | <string name="anim_express_shrug">Shrug</string> | 154 | <string name="anim_express_shrug">Shrug</string> |
155 | <string name="anim_express_smile">Smile</string> | 155 | <string name="anim_express_smile">Smile</string> |
156 | <string name="anim_smoke_idle">Smoke Idle</string> | 156 | <string name="anim_smoke_idle">Smoke Idle</string> |
157 | <string name="anim_smoke_inhale">Smoke Inhale</string> | 157 | <string name="anim_smoke_inhale">Smoke Inhale</string> |
158 | <string name="anim_smoke_throw_down">Smoke Throw Down</string> | 158 | <string name="anim_smoke_throw_down">Smoke Throw Down</string> |
159 | <string name="anim_express_surprise">Surprise</string> | 159 | <string name="anim_express_surprise">Surprise</string> |
160 | <string name="anim_sword_strike_r">Sword Strike</string> | 160 | <string name="anim_sword_strike_r">Sword Strike</string> |
161 | <string name="anim_angry_tantrum">Tantrum</string> | 161 | <string name="anim_angry_tantrum">Tantrum</string> |
162 | <string name="anim_express_tongue_out">TongueOut</string> | 162 | <string name="anim_express_tongue_out">TongueOut</string> |
163 | <string name="anim_hello">Wave</string> | 163 | <string name="anim_hello">Wave</string> |
164 | <string name="anim_whisper">Whisper</string> | 164 | <string name="anim_whisper">Whisper</string> |
165 | <string name="anim_whistle">Whistle</string> | 165 | <string name="anim_whistle">Whistle</string> |
166 | <string name="anim_express_wink">Wink</string> | 166 | <string name="anim_express_wink">Wink</string> |
167 | <string name="anim_wink_hollywood">Wink (Hollywood)</string> | 167 | <string name="anim_wink_hollywood">Wink (Hollywood)</string> |
168 | <string name="anim_express_worry">Worry</string> | 168 | <string name="anim_express_worry">Worry</string> |
169 | <string name="anim_yes_happy">Yes (Happy)</string> | 169 | <string name="anim_yes_happy">Yes (Happy)</string> |
170 | <string name="anim_yes_head">Yes</string> | 170 | <string name="anim_yes_head">Yes</string> |
171 | 171 | ||
172 | <string name="texture_loading">Loading...</string> | 172 | <string name="texture_loading">Loading...</string> |
173 | <string name="worldmap_offline">Offline</string> | 173 | <string name="worldmap_offline">Offline</string> |
174 | 174 | ||
175 | <!-- Chat --> | 175 | <!-- Chat --> |
176 | <string name="whisper">whispers:</string> | 176 | <string name="whisper">whispers:</string> |
177 | <string name="shout">shouts:</string> | 177 | <string name="shout">shouts:</string> |
178 | 178 | ||
179 | </strings> | 179 | <!-- System messages --> |
180 | 180 | <string name="landmark_created">You created a landmark at</string> | |
181 | |||
182 | </strings> | ||
183 | |||
diff --git a/linden/indra/newview/skins/default/xui/fr/floater_about_land.xml b/linden/indra/newview/skins/default/xui/fr/floater_about_land.xml index 50ce466..9742d2f 100644 --- a/linden/indra/newview/skins/default/xui/fr/floater_about_land.xml +++ b/linden/indra/newview/skins/default/xui/fr/floater_about_land.xml | |||
@@ -1,508 +1,508 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <floater name="floaterland" title="À propos du terrain"> | 2 | <floater name="floaterland" title="À propos du terrain"> |
3 | <tab_container name="landtab"> | 3 | <tab_container name="landtab"> |
4 | <panel label="Général" name="land_general_panel"> | 4 | <panel label="Général" name="land_general_panel"> |
5 | <text type="string" length="1" name="Name:"> | 5 | <text type="string" length="1" name="Name:"> |
6 | Nom : | 6 | Nom : |
7 | </text> | 7 | </text> |
8 | <text type="string" length="1" name="Description:"> | 8 | <text type="string" length="1" name="Description:"> |
9 | Description : | 9 | Description : |
10 | </text> | 10 | </text> |
11 | <text type="string" length="1" name="Owner:"> | 11 | <text type="string" length="1" name="Owner:"> |
12 | Propriétaire : | 12 | Propriétaire : |
13 | </text> | 13 | </text> |
14 | <text type="string" length="1" name="OwnerText"> | 14 | <text type="string" length="1" name="OwnerText"> |
15 | Leyla Linden | 15 | Leyla Linden |
16 | </text> | 16 | </text> |
17 | <button label="Profil..." label_selected="Profil..." name="Profile..." /> | 17 | <button label="Profil..." label_selected="Profil..." name="Profile..." /> |
18 | <text type="string" length="1" name="Group:"> | 18 | <text type="string" length="1" name="Group:"> |
19 | Groupe : | 19 | Groupe : |
20 | </text> | 20 | </text> |
21 | <button label="Définir..." label_selected="Définir..." name="Set..." /> | 21 | <button label="Définir..." label_selected="Définir..." name="Set..." /> |
22 | <check_box label="Autoriser le transfert au groupe" name="check deed" | 22 | <check_box label="Autoriser le transfert au groupe" name="check deed" |
23 | tool_tip="Un officier peut transférer ce terrain au groupe. Il viendra alors s'ajouter au patrimoine du groupe." /> | 23 | tool_tip="Un officier peut transférer ce terrain au groupe. Il viendra alors s'ajouter au patrimoine du groupe." /> |
24 | <button label="Transférer..." label_selected="Transférer..." name="Deed..." | 24 | <button label="Transférer..." label_selected="Transférer..." name="Deed..." |
25 | tool_tip="Vous ne pouvez transférer le terrain que si vous avez un rôle d'officier dans le groupe sélectionné." /> | 25 | tool_tip="Vous ne pouvez transférer le terrain que si vous avez un rôle d'officier dans le groupe sélectionné." /> |
26 | <check_box label="Le propriétaire contribue par transfert" name="check contib" | 26 | <check_box label="Le propriétaire contribue par transfert" name="check contib" |
27 | tool_tip="Lorsque le terrain est transféré au groupe, la contribution du précédent propriétaire suffit à l'entretenir." /> | 27 | tool_tip="Lorsque le terrain est transféré au groupe, la contribution du précédent propriétaire suffit à l'entretenir." /> |
28 | <check_box label="Le propriétaire contribue par une donation" name="check contrib" | 28 | <check_box label="Le propriétaire contribue par une donation" name="check contrib" |
29 | tool_tip="Lorsqu'un titre de propriété est transféré au groupe, l'ancien propriétaire fait également un don de terrain suffisant." /> | 29 | tool_tip="Lorsqu'un titre de propriété est transféré au groupe, l'ancien propriétaire fait également un don de terrain suffisant." /> |
30 | <text type="string" length="1" name="For Sale:"> | 30 | <text type="string" length="1" name="For Sale:"> |
31 | À vendre : | 31 | À vendre : |
32 | </text> | 32 | </text> |
33 | <text type="string" length="1" name="Not for sale."> | 33 | <text type="string" length="1" name="Not for sale."> |
34 | Pas à vendre. | 34 | Pas à vendre. |
35 | </text> | 35 | </text> |
36 | <text type="string" length="1" name="For Sale: Price L$[PRICE]."> | 36 | <text type="string" length="1" name="For Sale: Price L$[PRICE]."> |
37 | Prix : [PRICE] $L. | 37 | Prix : [PRICE] $L. |
38 | </text> | 38 | </text> |
39 | <button label="Vendre le terrain..." label_selected="Vendre le terrain..." | 39 | <button label="Vendre le terrain..." label_selected="Vendre le terrain..." |
40 | name="Sell Land..." /> | 40 | name="Sell Land..." /> |
41 | <text type="string" length="1" name="For sale to"> | 41 | <text type="string" length="1" name="For sale to"> |
42 | À vendre à : [BUYER] | 42 | À vendre à : [BUYER] |
43 | </text> | 43 | </text> |
44 | <text type="string" length="1" name="Sell with landowners objects in parcel."> | 44 | <text type="string" length="1" name="Sell with landowners objects in parcel."> |
45 | Objets inclus dans la vente. | 45 | Objets inclus dans la vente. |
46 | </text> | 46 | </text> |
47 | <text type="string" length="1" name="Selling with no objects in parcel."> | 47 | <text type="string" length="1" name="Selling with no objects in parcel."> |
48 | Objets non inclus dans la vente. | 48 | Objets non inclus dans la vente. |
49 | </text> | 49 | </text> |
50 | <button label="Annuler la vente du terrain" | 50 | <button label="Annuler la vente du terrain" |
51 | label_selected="Annuler la vente du terrain" name="Cancel Land Sale" /> | 51 | label_selected="Annuler la vente du terrain" name="Cancel Land Sale" /> |
52 | <text type="string" length="1" name="Claimed:"> | 52 | <text type="string" length="1" name="Claimed:"> |
53 | Réclamée : | 53 | Réclamée : |
54 | </text> | 54 | </text> |
55 | <text type="string" length="1" name="DateClaimText"> | 55 | <text type="string" length="1" name="DateClaimText"> |
56 | Tue Aug 15 13:47:25 2006 | 56 | Tue Aug 15 13:47:25 2006 |
57 | </text> | 57 | </text> |
58 | <text type="string" length="1" name="PriceLabel"> | 58 | <text type="string" length="1" name="PriceLabel"> |
59 | Surface : | 59 | Surface : |
60 | </text> | 60 | </text> |
61 | <text type="string" length="1" name="PriceText"> | 61 | <text type="string" length="1" name="PriceText"> |
62 | 4048 m² | 62 | 4048 m² |
63 | </text> | 63 | </text> |
64 | <text type="string" length="1" name="Traffic:"> | 64 | <text type="string" length="1" name="Traffic:"> |
65 | Trafic : | 65 | Trafic : |
66 | </text> | 66 | </text> |
67 | <text type="string" length="1" name="DwellText"> | 67 | <text type="string" length="1" name="DwellText"> |
68 | 0 | 68 | 0 |
69 | </text> | 69 | </text> |
70 | <button label="Acheter le terrain..." label_selected="Acheter le terrain..." | 70 | <button label="Acheter le terrain..." label_selected="Acheter le terrain..." |
71 | name="Buy Land..." /> | 71 | name="Buy Land..." /> |
72 | <button label="Acheter pour le groupe..." label_selected="Acheter pour le groupe..." | 72 | <button label="Acheter pour le groupe..." label_selected="Acheter pour le groupe..." |
73 | name="Buy For Group..." /> | 73 | name="Buy For Group..." /> |
74 | <button label="Acheter un passe..." label_selected="Acheter un passe..." | 74 | <button label="Acheter un passe..." label_selected="Acheter un passe..." |
75 | name="Buy Pass..." | 75 | name="Buy Pass..." |
76 | tool_tip="Un passe vous donne un accès temporaire à ce terrain." /> | 76 | tool_tip="Un passe vous donne un accès temporaire à ce terrain." /> |
77 | <button label="Céder le terrain..." label_selected="Céder le terrain..." | 77 | <button label="Céder le terrain..." label_selected="Céder le terrain..." |
78 | name="Abandon Land..." /> | 78 | name="Abandon Land..." /> |
79 | <button label="Récupérer le terrain…" label_selected="Récupérer le terrain…" | 79 | <button label="Récupérer le terrain…" label_selected="Récupérer le terrain…" |
80 | name="Reclaim Land..." /> | 80 | name="Reclaim Land..." /> |
81 | <button label="Vente Linden..." label_selected="Vente Linden..." name="Linden Sale..." | 81 | <button label="Vente Linden..." label_selected="Vente Linden..." name="Linden Sale..." |
82 | tool_tip="Le terrain doit être la propriété d'un résident, avoir un contenu défini et ne pas être aux enchères." /> | 82 | tool_tip="Le terrain doit être la propriété d'un résident, avoir un contenu défini et ne pas être aux enchères." /> |
83 | <text name="new users only"> | 83 | <text name="new users only"> |
84 | Nouveaux utilisateurs uniquement | 84 | Nouveaux utilisateurs uniquement |
85 | </text> | 85 | </text> |
86 | <text name="anyone"> | 86 | <text name="anyone"> |
87 | Tout le monde | 87 | Tout le monde |
88 | </text> | 88 | </text> |
89 | <string name="area_text"> | 89 | <string name="area_text"> |
90 | Surface | 90 | Surface |
91 | </string> | 91 | </string> |
92 | <string name="area_size_text"> | 92 | <string name="area_size_text"> |
93 | [AREA] m² | 93 | [AREA] m² |
94 | </string> | 94 | </string> |
95 | <string name="auction_id_text"> | 95 | <string name="auction_id_text"> |
96 | Code de l'enchère : [ID] | 96 | Code de l'enchère : [ID] |
97 | </string> | 97 | </string> |
98 | <string name="need_tier_to_modify"> | 98 | <string name="need_tier_to_modify"> |
99 | Pour modifier ce terrain, vous devez approuver votre achat. | 99 | Pour modifier ce terrain, vous devez approuver votre achat. |
100 | </string> | 100 | </string> |
101 | <string name="group_owned_text"> | 101 | <string name="group_owned_text"> |
102 | (propriété du groupe) | 102 | (propriété du groupe) |
103 | </string> | 103 | </string> |
104 | <string name="profile_text"> | 104 | <string name="profile_text"> |
105 | Profil... | 105 | Profil... |
106 | </string> | 106 | </string> |
107 | <string name="info_text"> | 107 | <string name="info_text"> |
108 | Infos... | 108 | Infos... |
109 | </string> | 109 | </string> |
110 | <string name="public_text"> | 110 | <string name="public_text"> |
111 | (public) | 111 | (public) |
112 | </string> | 112 | </string> |
113 | <string name="none_text"> | 113 | <string name="none_text"> |
114 | (aucun) | 114 | (aucun) |
115 | </string> | 115 | </string> |
116 | <string name="sale_pending_text"> | 116 | <string name="sale_pending_text"> |
117 | (vente en cours) | 117 | (vente en cours) |
118 | </string> | 118 | </string> |
119 | <string name="no_selection_text"> | 119 | <string name="no_selection_text"> |
120 | Aucune parcelle sélectionnée. | 120 | Aucune parcelle sélectionnée. |
121 | Allez dans le menu Monde > À propos du terrain ou sélectionnez une autre parcelle pour en afficher les détails. | 121 | Allez dans le menu Monde > À propos du terrain ou sélectionnez une autre parcelle pour en afficher les détails. |
122 | </string> | 122 | </string> |
123 | </panel> | 123 | </panel> |
124 | <panel label="Règlement" name="land_covenant_panel"> | 124 | <panel label="Règlement" name="land_covenant_panel"> |
125 | <text type="string" length="1" name="covenant_timestamp_text"> | 125 | <text type="string" length="1" name="covenant_timestamp_text"> |
126 | Last Modified Wed Dec 31 16:00:00 1969 | 126 | Last Modified Wed Dec 31 16:00:00 1969 |
127 | </text> | 127 | </text> |
128 | <text type="string" length="1" name="region_name_lbl"> | 128 | <text type="string" length="1" name="region_name_lbl"> |
129 | Région : | 129 | Région : |
130 | </text> | 130 | </text> |
131 | <text type="string" length="1" name="region_name_text"> | 131 | <text type="string" length="1" name="region_name_text"> |
132 | leyla | 132 | leyla |
133 | </text> | 133 | </text> |
134 | <text type="string" length="1" name="estate_name_lbl"> | 134 | <text type="string" length="1" name="estate_name_lbl"> |
135 | Domaine : | 135 | Domaine : |
136 | </text> | 136 | </text> |
137 | <text type="string" length="1" name="estate_name_text"> | 137 | <text type="string" length="1" name="estate_name_text"> |
138 | continent | 138 | continent |
139 | </text> | 139 | </text> |
140 | <text type="string" length="1" name="estate_owner_lbl"> | 140 | <text type="string" length="1" name="estate_owner_lbl"> |
141 | Propriétaire : | 141 | Propriétaire : |
142 | </text> | 142 | </text> |
143 | <text type="string" length="1" name="estate_owner_text"> | 143 | <text type="string" length="1" name="estate_owner_text"> |
144 | (aucun) | 144 | (aucun) |
145 | </text> | 145 | </text> |
146 | <text type="string" length="1" name="resellable_clause"> | 146 | <text type="string" length="1" name="resellable_clause"> |
147 | Le terrain acheté dans cette région ne peut être revendu. | 147 | Le terrain acheté dans cette région ne peut être revendu. |
148 | </text> | 148 | </text> |
149 | <text type="string" length="1" name="changeable_clause"> | 149 | <text type="string" length="1" name="changeable_clause"> |
150 | Le terrain acheté dans cette région ne peut être revendu/divisé. | 150 | Le terrain acheté dans cette région ne peut être revendu/divisé. |
151 | </text> | 151 | </text> |
152 | <text_editor type="string" length="1" name="covenant_editor"> | 152 | <text_editor type="string" length="1" name="covenant_editor"> |
153 | Il n'y a aucun règlement pour ce domaine. | 153 | Il n'y a aucun règlement pour ce domaine. |
154 | </text_editor> | 154 | </text_editor> |
155 | <text name="can_resell"> | 155 | <text name="can_resell"> |
156 | Le terrain acheté dans cette région peut être revendu. | 156 | Le terrain acheté dans cette région peut être revendu. |
157 | </text> | 157 | </text> |
158 | <text name="can_not_resell"> | 158 | <text name="can_not_resell"> |
159 | Le terrain acheté dans cette région ne peut pas être revendu. | 159 | Le terrain acheté dans cette région ne peut pas être revendu. |
160 | </text> | 160 | </text> |
161 | <text name="can_change"> | 161 | <text name="can_change"> |
162 | Le terrain acheté dans cette région peut être fusionné ou divisé. | 162 | Le terrain acheté dans cette région peut être fusionné ou divisé. |
163 | </text> | 163 | </text> |
164 | <text name="can_not_change"> | 164 | <text name="can_not_change"> |
165 | Le terrain acheté dans cette région ne peut pas être fusionné ou divisé. | 165 | Le terrain acheté dans cette région ne peut pas être fusionné ou divisé. |
166 | </text> | 166 | </text> |
167 | </panel> | 167 | </panel> |
168 | <panel label="Objets" name="land_objects_panel"> | 168 | <panel label="Objets" name="land_objects_panel"> |
169 | <text name="parcel_object_bonus"> | 169 | <text name="parcel_object_bonus"> |
170 | Facteur Bonus Objets : [BONUS] | 170 | Facteur Bonus Objets : [BONUS] |
171 | </text> | 171 | </text> |
172 | <text type="string" length="1" name="Simulator primitive usage:"> | 172 | <text type="string" length="1" name="Simulator primitive usage:"> |
173 | Prims utilisés sur le sim : | 173 | Prims utilisés sur le sim : |
174 | </text> | 174 | </text> |
175 | <text type="string" length="1" name="0 out of 0 available"> | 175 | <text type="string" length="1" name="0 out of 0 available"> |
176 | 0 sur 14055 (14055 disponibles) | 176 | 0 sur 14055 (14055 disponibles) |
177 | </text> | 177 | </text> |
178 | <text name="objects_available"> | 178 | <text name="objects_available"> |
179 | [COUNT] sur [COUNT] ([COUNT] disponibles) | 179 | [COUNT] sur [COUNT] ([COUNT] disponibles) |
180 | </text> | 180 | </text> |
181 | <string name="objects_available_text"> | 181 | <string name="objects_available_text"> |
182 | [COUNT] sur [MAX] ([AVAILABLE] disponibles) | 182 | [COUNT] sur [MAX] ([AVAILABLE] disponibles) |
183 | </string> | 183 | </string> |
184 | <string name="objects_deleted_text"> | 184 | <string name="objects_deleted_text"> |
185 | [COUNT] sur [MAX] ([DELETED] seront supprimés) | 185 | [COUNT] sur [MAX] ([DELETED] seront supprimés) |
186 | </string> | 186 | </string> |
187 | <text type="string" length="1" name="Primitives parcel supports:"> | 187 | <text type="string" length="1" name="Primitives parcel supports:"> |
188 | Prims max. sur la parcelle : | 188 | Prims max. sur la parcelle : |
189 | </text> | 189 | </text> |
190 | <text type="string" length="1" name="object_contrib_text"> | 190 | <text type="string" length="1" name="object_contrib_text"> |
191 | [COUNT] | 191 | [COUNT] |
192 | </text> | 192 | </text> |
193 | <text type="string" length="1" name="Primitives on parcel:"> | 193 | <text type="string" length="1" name="Primitives on parcel:"> |
194 | Prims sur la parcelle : | 194 | Prims sur la parcelle : |
195 | </text> | 195 | </text> |
196 | <text type="string" length="1" name="total_objects_text"> | 196 | <text type="string" length="1" name="total_objects_text"> |
197 | [COUNT] | 197 | [COUNT] |
198 | </text> | 198 | </text> |
199 | <text type="string" length="1" name="Owned by parcel owner:"> | 199 | <text type="string" length="1" name="Owned by parcel owner:"> |
200 | Appartenant au propriétaire : | 200 | Appartenant au propriétaire : |
201 | </text> | 201 | </text> |
202 | <text type="string" length="1" name="owner_objects_text"> | 202 | <text type="string" length="1" name="owner_objects_text"> |
203 | [COUNT] | 203 | [COUNT] |
204 | </text> | 204 | </text> |
205 | <button label="Afficher" label_selected="Afficher" name="ShowOwner" /> | 205 | <button label="Afficher" label_selected="Afficher" name="ShowOwner" /> |
206 | <button label="Renvoyer..." label_selected="Renvoyer..." name="ReturnOwner..." | 206 | <button label="Renvoyer..." label_selected="Renvoyer..." name="ReturnOwner..." |
207 | tool_tip="Renvoyer les objets à leurs propriétaires." /> | 207 | tool_tip="Renvoyer les objets à leurs propriétaires." /> |
208 | <text type="string" length="1" name="Set to group:"> | 208 | <text type="string" length="1" name="Set to group:"> |
209 | Donnés au groupe : | 209 | Donnés au groupe : |
210 | </text> | 210 | </text> |
211 | <text type="string" length="1" name="group_objects_text"> | 211 | <text type="string" length="1" name="group_objects_text"> |
212 | 0 | 212 | 0 |
213 | </text> | 213 | </text> |
214 | <button label="Afficher" label_selected="Afficher" name="ShowGroup" /> | 214 | <button label="Afficher" label_selected="Afficher" name="ShowGroup" /> |
215 | <button label="Renvoyer..." label_selected="Renvoyer..." name="ReturnGroup..." | 215 | <button label="Renvoyer..." label_selected="Renvoyer..." name="ReturnGroup..." |
216 | tool_tip="Renvoyer les objets à leurs propriétaires." /> | 216 | tool_tip="Renvoyer les objets à leurs propriétaires." /> |
217 | <text type="string" length="1" name="Owned by others:"> | 217 | <text type="string" length="1" name="Owned by others:"> |
218 | Appartenant à d'autres : | 218 | Appartenant à d'autres : |
219 | </text> | 219 | </text> |
220 | <text type="string" length="1" name="other_objects_text"> | 220 | <text type="string" length="1" name="other_objects_text"> |
221 | 0 | 221 | 0 |
222 | </text> | 222 | </text> |
223 | <button label="Afficher" label_selected="Afficher" name="ShowOther" /> | 223 | <button label="Afficher" label_selected="Afficher" name="ShowOther" /> |
224 | <button label="Renvoyer..." label_selected="Renvoyer..." name="ReturnOther..." | 224 | <button label="Renvoyer..." label_selected="Renvoyer..." name="ReturnOther..." |
225 | tool_tip="Renvoyer les objets à leurs propriétaires." /> | 225 | tool_tip="Renvoyer les objets à leurs propriétaires." /> |
226 | <text type="string" length="1" name="Selected / sat upon:"> | 226 | <text type="string" length="1" name="Selected / sat upon:"> |
227 | Sélectionnés/où quelqu'un est assis : | 227 | Sélectionnés/où quelqu'un est assis : |
228 | </text> | 228 | </text> |
229 | <text type="string" length="1" name="selected_objects_text"> | 229 | <text type="string" length="1" name="selected_objects_text"> |
230 | 0 | 230 | 0 |
231 | </text> | 231 | </text> |
232 | <text type="string" length="1" name="Autoreturn other resident&apos;s objects (minutes, 0 for off):"> | 232 | <text type="string" length="1" name="Autoreturn other resident&apos;s objects (minutes, 0 for off):"> |
233 | Renvoi automatique des objets appartenant aux autres résidents (minutes, 0 pour désactiver): | 233 | Renvoi automatique des objets appartenant aux autres résidents (minutes, 0 pour désactiver): |
234 | </text> | 234 | </text> |
235 | <text name="Autoreturn"> | 235 | <text name="Autoreturn"> |
236 | Renvoi automatique des objets d'autres résidents (minutes, 0 pour désactiver) : | 236 | Renvoi automatique des objets d'autres résidents (minutes, 0 pour désactiver) : |
237 | </text> | 237 | </text> |
238 | <text type="string" length="1" name="Object Owners:"> | 238 | <text type="string" length="1" name="Object Owners:"> |
239 | Propriétaires : | 239 | Propriétaires : |
240 | </text> | 240 | </text> |
241 | <button label="Rafraîchir la liste" label_selected="Rafraîchir la liste" | 241 | <button label="Rafraîchir la liste" label_selected="Rafraîchir la liste" |
242 | name="Refresh List" /> | 242 | name="Refresh List" /> |
243 | <button label="Renvoyer les objets..." label_selected="Renvoyer les objets..." | 243 | <button label="Renvoyer les objets..." label_selected="Renvoyer les objets..." |
244 | name="Return objects..." /> | 244 | name="Return objects..." /> |
245 | <button label="" label_selected="" name="Type" tool_tip="Trier par type" /> | 245 | <button label="" label_selected="" name="Type" tool_tip="Trier par type" /> |
246 | <button label="Nom" label_selected="Nom" name="Name" tool_tip="Trier par nom" /> | 246 | <button label="Nom" label_selected="Nom" name="Name" tool_tip="Trier par nom" /> |
247 | <button label="Trafic" label_selected="Trafic" name="Count" tool_tip="Trier par trafic" /> | 247 | <button label="Trafic" label_selected="Trafic" name="Count" tool_tip="Trier par trafic" /> |
248 | <name_list label="Plus récents" name="owner list"> | 248 | <name_list label="Plus récents" name="owner list"> |
249 | <column label="Type" name="type" /> | 249 | <column label="Type" name="type" /> |
250 | <column label="Nom" name="name" /> | 250 | <column label="Nom" name="name" /> |
251 | <column label="Nombre" name="count" /> | 251 | <column label="Nombre" name="count" /> |
252 | </name_list> | 252 | </name_list> |
253 | </panel> | 253 | </panel> |
254 | <panel label="Options" name="land_options_panel"> | 254 | <panel label="Options" name="land_options_panel"> |
255 | <text type="string" length="1" name="allow_label"> | 255 | <text type="string" length="1" name="allow_label"> |
256 | Autoriser les autres résidents à : | 256 | Autoriser les autres résidents à : |
257 | </text> | 257 | </text> |
258 | <text name="allow_label2"> | 258 | <text name="allow_label2"> |
259 | Créer des objets : | 259 | Créer des objets : |
260 | </text> | 260 | </text> |
261 | <check_box label="Tous les résidents" name="edit objects check" /> | 261 | <check_box label="Tous les résidents" name="edit objects check" /> |
262 | <check_box label="Modifier le terrain" name="edit land check" /> | 262 | <check_box label="Modifier le terrain" name="edit land check" /> |
263 | <check_box label="Créer des repères" name="check landmark" /> | 263 | <check_box label="Créer des repères" name="check landmark" /> |
264 | <check_box label="Groupe" name="edit group objects check" /> | 264 | <check_box label="Groupe" name="edit group objects check" /> |
265 | <text name="allow_label3"> | 265 | <text name="allow_label3"> |
266 | Apporter des objets : | 266 | Apporter des objets : |
267 | </text> | 267 | </text> |
268 | <check_box label="Tous les résidents" name="all object entry check" /> | 268 | <check_box label="Tous les résidents" name="all object entry check" /> |
269 | <check_box label="Groupe" name="group object entry check" /> | 269 | <check_box label="Groupe" name="group object entry check" /> |
270 | <text name="allow_label4"> | 270 | <text name="allow_label4"> |
271 | Exécuter des scripts : | 271 | Exécuter des scripts : |
272 | </text> | 272 | </text> |
273 | <check_box label="Groupe" name="check group scripts" /> | 273 | <check_box label="Groupe" name="check group scripts" /> |
274 | <check_box label="Voler" name="check fly" /> | 274 | <check_box label="Voler" name="check fly" /> |
275 | <check_box label="Tous les résidents" name="check other scripts" /> | 275 | <check_box label="Tous les résidents" name="check other scripts" /> |
276 | <text type="string" length="1" name="land_options_label"> | 276 | <text type="string" length="1" name="land_options_label"> |
277 | Options du terrain : | 277 | Options du terrain : |
278 | </text> | 278 | </text> |
279 | <check_box label="Sécurisé (pas de dégâts)" name="check safe" /> | 279 | <check_box label="Sécurisé (pas de dégâts)" name="check safe" /> |
280 | <check_box label="Interdire les bousculades" name="PushRestrictCheck" | 280 | <check_box label="Interdire les bousculades" name="PushRestrictCheck" |
281 | tool_tip="llPushObject ne fonctionne que sur les scripts du propriétaire de la parcelle ou sur les scripts où la personne qui bouscule est aussi la propriétaire du script." /> | 281 | tool_tip="llPushObject ne fonctionne que sur les scripts du propriétaire de la parcelle ou sur les scripts où la personne qui bouscule est aussi la propriétaire du script." /> |
282 | <check_box label="Afficher dans la recherche (30 $L/semaine) sous" | 282 | <check_box label="Afficher dans la recherche (30 $L/semaine) sous" |
283 | name="ShowDirectoryCheck" | 283 | name="ShowDirectoryCheck" |
284 | tool_tip="Afficher la parcelle dans les résultats de recherche" /> | 284 | tool_tip="Afficher la parcelle dans les résultats de recherche" /> |
285 | <combo_box name="land category"> | 285 | <combo_box name="land category"> |
286 | <combo_item name="AnyCategory"> | 286 | <combo_item name="AnyCategory"> |
287 | Toute catégorie | 287 | Toute catégorie |
288 | </combo_item> | 288 | </combo_item> |
289 | <combo_item name="LindenLocation"> | 289 | <combo_item name="LindenLocation"> |
290 | Emplacement Linden | 290 | Emplacement Linden |
291 | </combo_item> | 291 | </combo_item> |
292 | <combo_item name="Adult"> | 292 | <combo_item name="Adult"> |
293 | Adultes | 293 | Adultes |
294 | </combo_item> | 294 | </combo_item> |
295 | <combo_item name="Arts&Culture"> | 295 | <combo_item name="Arts&Culture"> |
296 | Art et Culture | 296 | Art et Culture |
297 | </combo_item> | 297 | </combo_item> |
298 | <combo_item name="Business"> | 298 | <combo_item name="Business"> |
299 | Affaires | 299 | Affaires |
300 | </combo_item> | 300 | </combo_item> |
301 | <combo_item name="Educational"> | 301 | <combo_item name="Educational"> |
302 | Éducation | 302 | Éducation |
303 | </combo_item> | 303 | </combo_item> |
304 | <combo_item name="Gaming"> | 304 | <combo_item name="Gaming"> |
305 | Jeux | 305 | Jeux |
306 | </combo_item> | 306 | </combo_item> |
307 | <combo_item name="Hangout"> | 307 | <combo_item name="Hangout"> |
308 | Endroit favori | 308 | Endroit favori |
309 | </combo_item> | 309 | </combo_item> |
310 | <combo_item name="NewcomerFriendly"> | 310 | <combo_item name="NewcomerFriendly"> |
311 | Convivial pour les nouveaux | 311 | Convivial pour les nouveaux |
312 | </combo_item> | 312 | </combo_item> |
313 | <combo_item name="Parks&Nature"> | 313 | <combo_item name="Parks&Nature"> |
314 | Parcs et Nature | 314 | Parcs et Nature |
315 | </combo_item> | 315 | </combo_item> |
316 | <combo_item name="Residential"> | 316 | <combo_item name="Residential"> |
317 | Résidentiel | 317 | Résidentiel |
318 | </combo_item> | 318 | </combo_item> |
319 | <combo_item name="Shopping"> | 319 | <combo_item name="Shopping"> |
320 | Shopping | 320 | Shopping |
321 | </combo_item> | 321 | </combo_item> |
322 | <combo_item name="Other"> | 322 | <combo_item name="Other"> |
323 | Autre | 323 | Autre |
324 | </combo_item> | 324 | </combo_item> |
325 | </combo_box> | 325 | </combo_box> |
326 | <check_box label="Publier liste sur le web" name="PublishCheck" | 326 | <check_box label="Publier liste sur le web" name="PublishCheck" |
327 | tool_tip="Publiez vos informations de parcelle sur le web." /> | 327 | tool_tip="Publiez vos informations de parcelle sur le web." /> |
328 | <check_box label="Contenu pour adultes" name="MatureCheck" | 328 | <check_box label="Contenu pour adultes" name="MatureCheck" |
329 | tool_tip="Les infos sur votre parcelle, ou le contenu de cette dernière, sont à caractère adulte." /> | 329 | tool_tip="Les infos sur votre parcelle, ou le contenu de cette dernière, sont à caractère adulte." /> |
330 | <button label="?" label_selected="?" name="?" /> | 330 | <button label="?" label_selected="?" name="?" /> |
331 | <text type="string" length="1" name="Snapshot:"> | 331 | <text type="string" length="1" name="Snapshot:"> |
332 | Photo : | 332 | Photo : |
333 | </text> | 333 | </text> |
334 | <texture_picker label="" name="snapshot_ctrl" tool_tip="Cliquez pour sélectionner une image" /> | 334 | <texture_picker label="" name="snapshot_ctrl" tool_tip="Cliquez pour sélectionner une image" /> |
335 | <text type="string" length="1" name="Landing Point: (none)"> | 335 | <text type="string" length="1" name="Landing Point: (none)"> |
336 | Point d'atterrissage : (aucun) | 336 | Point d'atterrissage : (aucun) |
337 | </text> | 337 | </text> |
338 | <text name="landing_point"> | 338 | <text name="landing_point"> |
339 | Lieu d'arrivée : [LANDING] | 339 | Lieu d'arrivée : [LANDING] |
340 | </text> | 340 | </text> |
341 | <string name="landing_point_none"> | 341 | <string name="landing_point_none"> |
342 | (aucun) | 342 | (aucun) |
343 | </string> | 343 | </string> |
344 | <button label="Définir" label_selected="Définir" name="Set" | 344 | <button label="Définir" label_selected="Définir" name="Set" |
345 | tool_tip="Définir le lieu d'arrivée de l'avatar sur votre position actuelle. ll doit se trouver sur cette parcelle de terrain." /> | 345 | tool_tip="Définir le lieu d'arrivée de l'avatar sur votre position actuelle. ll doit se trouver sur cette parcelle de terrain." /> |
346 | <button label="Annuler" label_selected="Annuler" name="Clear" | 346 | <button label="Annuler" label_selected="Annuler" name="Clear" |
347 | tool_tip="Dégager le lieu d'arrivée." /> | 347 | tool_tip="Dégager le lieu d'arrivée." /> |
348 | <text type="string" length="1" name="Teleport Routing: "> | 348 | <text type="string" length="1" name="Teleport Routing: "> |
349 | Options de téléportation : | 349 | Options de téléportation : |
350 | </text> | 350 | </text> |
351 | <combo_box name="landing type" | 351 | <combo_box name="landing type" |
352 | tool_tip="Vous permet de paramétrer les téléportations sur votre terrain."> | 352 | tool_tip="Vous permet de paramétrer les téléportations sur votre terrain."> |
353 | <combo_item type="string" length="1" name="Blocked"> | 353 | <combo_item type="string" length="1" name="Blocked"> |
354 | Bloquée | 354 | Bloquée |
355 | </combo_item> | 355 | </combo_item> |
356 | <combo_item type="string" length="1" name="LandingPoint"> | 356 | <combo_item type="string" length="1" name="LandingPoint"> |
357 | Lieu d'arrivée défini | 357 | Lieu d'arrivée défini |
358 | </combo_item> | 358 | </combo_item> |
359 | <combo_item type="string" length="1" name="Anywhere"> | 359 | <combo_item type="string" length="1" name="Anywhere"> |
360 | Lieu d'arrivée indéfini | 360 | Lieu d'arrivée indéfini |
361 | </combo_item> | 361 | </combo_item> |
362 | </combo_box> | 362 | </combo_box> |
363 | <string name="push_restrict_text"> | 363 | <string name="push_restrict_text"> |
364 | Interdire les bousculades | 364 | Interdire les bousculades |
365 | </string> | 365 | </string> |
366 | <string name="push_restrict_region_text"> | 366 | <string name="push_restrict_region_text"> |
367 | Interdire les bousculades (passer outre les règles de la région) | 367 | Interdire les bousculades (passer outre les règles de la région) |
368 | </string> | 368 | </string> |
369 | </panel> | 369 | </panel> |
370 | <panel label="Média" name="land_media_panel"> | 370 | <panel label="Média" name="land_media_panel"> |
371 | <text name="with media:"> | 371 | <text name="with media:"> |
372 | Type de média : | 372 | Type de média : |
373 | </text> | 373 | </text> |
374 | <combo_box name="media type" | 374 | <combo_box name="media type" |
375 | tool_tip="Indiquez s'il s'agit de l'URL d'un film, d'une page web ou autre" /> | 375 | tool_tip="Indiquez s'il s'agit de l'URL d'un film, d'une page web ou autre" /> |
376 | <text name="at URL:"> | 376 | <text name="at URL:"> |
377 | URL du média : | 377 | URL du média : |
378 | </text> | 378 | </text> |
379 | <button label="Définir..." label_selected="Définir..." name="set_media_url" /> | 379 | <button label="Définir..." label_selected="Définir..." name="set_media_url" /> |
380 | <text name="Description:"> | 380 | <text name="Description:"> |
381 | Description : | 381 | Description : |
382 | </text> | 382 | </text> |
383 | <line_editor name="url_description" | 383 | <line_editor name="url_description" |
384 | tool_tip="Texte affiché à côté du bouton Jouer/Charger" /> | 384 | tool_tip="Texte affiché à côté du bouton Jouer/Charger" /> |
385 | <text name="replace_texture_help"> | 385 | <text name="replace_texture_help"> |
386 | (Les objets avec cette texture affichent le film ou | 386 | (Les objets avec cette texture affichent le film ou |
387 | la page web quand vous cliquez sur la flèche Jouer). | 387 | la page web quand vous cliquez sur la flèche Jouer). |
388 | </text> | 388 | </text> |
389 | <text name="Options:"> | 389 | <text name="Options:"> |
390 | Options | 390 | Options |
391 | média : | 391 | média : |
392 | </text> | 392 | </text> |
393 | <check_box label="Média en boucle" name="media_loop" | 393 | <check_box label="Média en boucle" name="media_loop" |
394 | tool_tip="Jouer le média en boucle. Lorsque le média aura fini de jouer, il recommencera." /> | 394 | tool_tip="Jouer le média en boucle. Lorsque le média aura fini de jouer, il recommencera." /> |
395 | <check_box label="Masquer l'URL du média" name="hide_media_url" | 395 | <check_box label="Masquer l'URL du média" name="hide_media_url" |
396 | tool_tip="Si vous cochez cette option, les personnes non autorisées à accéder aux infos de cette parcelle ne verront pas l'URL du média. Cette option n'est pas disponible pour les fichiers HTML." /> | 396 | tool_tip="Si vous cochez cette option, les personnes non autorisées à accéder aux infos de cette parcelle ne verront pas l'URL du média. Cette option n'est pas disponible pour les fichiers HTML." /> |
397 | <check_box label="Masquer l'URL de la musique" name="hide_music_url" | 397 | <check_box label="Masquer l'URL de la musique" name="hide_music_url" |
398 | tool_tip="Si vous cochez cette option, les personnes non autorisées à accéder aux infos de cette parcelle ne verront pas l'URL de la musique." /> | 398 | tool_tip="Si vous cochez cette option, les personnes non autorisées à accéder aux infos de cette parcelle ne verront pas l'URL de la musique." /> |
399 | <text name="media_size" | 399 | <text name="media_size" |
400 | tool_tip="Taille du média Web, laisser 0 pour la valeur par défaut."> | 400 | tool_tip="Taille du média Web, laisser 0 pour la valeur par défaut."> |
401 | Taille du média : | 401 | Taille du média : |
402 | </text> | 402 | </text> |
403 | <spinner name="media_size_width" | 403 | <spinner name="media_size_width" |
404 | tool_tip="Taille du média Web, laisser 0 pour la valeur par défaut." /> | 404 | tool_tip="Taille du média Web, laisser 0 pour la valeur par défaut." /> |
405 | <spinner name="media_size_height" | 405 | <spinner name="media_size_height" |
406 | tool_tip="Taille du média Web, laisser 0 pour la valeur par défaut." /> | 406 | tool_tip="Taille du média Web, laisser 0 pour la valeur par défaut." /> |
407 | <text name="pixels"> | 407 | <text name="pixels"> |
408 | pixels | 408 | pixels |
409 | </text> | 409 | </text> |
410 | <text name="MusicURL:"> | 410 | <text name="MusicURL:"> |
411 | URL de la musique : | 411 | URL de la musique : |
412 | </text> | 412 | </text> |
413 | <text name="Sound:"> | 413 | <text name="Sound:"> |
414 | Son : | 414 | Son : |
415 | </text> | 415 | </text> |
416 | <check_box label="Limiter le son spatial à cette parcelle" name="check sound local" /> | 416 | <check_box label="Limiter le son spatial à cette parcelle" name="check sound local" /> |
417 | <text type="string" length="1" name="Music URL:"> | 417 | <text type="string" length="1" name="Music URL:"> |
418 | URL du flux : | 418 | URL du flux : |
419 | </text> | 419 | </text> |
420 | <text type="string" length="1" name="Media texture:"> | 420 | <text type="string" length="1" name="Media texture:"> |
421 | Remplacer | 421 | Remplacer |
422 | la texture : | 422 | la texture : |
423 | </text> | 423 | </text> |
424 | <text type="string" length="1" name="Replace this texture:"> | 424 | <text type="string" length="1" name="Replace this texture:"> |
425 | Remplacer cette texture : | 425 | Remplacer cette texture : |
426 | </text> | 426 | </text> |
427 | <texture_picker label="" name="media texture" tool_tip="Cliquez pour sélectionner une image" /> | 427 | <texture_picker label="" name="media texture" tool_tip="Cliquez pour sélectionner une image" /> |
428 | <text type="string" length="1" name="with content from this URL:"> | 428 | <text type="string" length="1" name="with content from this URL:"> |
429 | par du contenu situé à l'URL suivante : | 429 | par du contenu situé à l'URL suivante : |
430 | </text> | 430 | </text> |
431 | <check_box label="Échelle automatique" name="media_auto_scale" | 431 | <check_box label="Échelle automatique" name="media_auto_scale" |
432 | tool_tip="Si vous sélectionnez cette option, le contenu de cette parcelle sera automatiquement mis à l'échelle. La qualité visuelle sera peut-être amoindrie mais vous n'aurez à faire aucune autre mise à l'échelle ou alignement." /> | 432 | tool_tip="Si vous sélectionnez cette option, le contenu de cette parcelle sera automatiquement mis à l'échelle. La qualité visuelle sera peut-être amoindrie mais vous n'aurez à faire aucune autre mise à l'échelle ou alignement." /> |
433 | <text name="Voice settings:"> | 433 | <text name="Voice settings:"> |
434 | Voix : | 434 | Voix : |
435 | </text> | 435 | </text> |
436 | <radio_group name="parcel_voice_channel"> | 436 | <radio_group name="parcel_voice_channel"> |
437 | <radio_item name="Estate"> | 437 | <radio_item name="Estate"> |
438 | Utiliser le canal spatial du domaine | 438 | Utiliser le canal spatial du domaine |
439 | </radio_item> | 439 | </radio_item> |
440 | <radio_item name="Private"> | 440 | <radio_item name="Private"> |
441 | Utiliser un canal spatial privé | 441 | Utiliser un canal spatial privé |
442 | </radio_item> | 442 | </radio_item> |
443 | <radio_item name="Disabled"> | 443 | <radio_item name="Disabled"> |
444 | Désactiver les canaux spatiaux audios sur cette parcelle | 444 | Désactiver les canaux spatiaux audios sur cette parcelle |
445 | </radio_item> | 445 | </radio_item> |
446 | </radio_group> | 446 | </radio_group> |
447 | </panel> | 447 | </panel> |
448 | <panel label="Accès" name="land_access_panel"> | 448 | <panel label="Accès" name="land_access_panel"> |
449 | <text type="string" length="1" name="Limit access to this parcel to:"> | 449 | <text type="string" length="1" name="Limit access to this parcel to:"> |
450 | Accès à cette parcelle | 450 | Accès à cette parcelle |
451 | </text> | 451 | </text> |
452 | <check_box label="Autoriser l'accès public" name="public_access" /> | 452 | <check_box label="Autoriser l'accès public" name="public_access" /> |
453 | <text name="Only Allow"> | 453 | <text name="Only Allow"> |
454 | Bloquer l'accès : | 454 | Bloquer l'accès : |
455 | </text> | 455 | </text> |
456 | <check_box | 456 | <check_box |
457 | label="Aux résidents qui n'ont pas fourni leurs informations de paiement à Linden Lab" | 457 | label="Aux résidents qui n'ont pas fourni leurs informations de paiement à Linden Lab" |
458 | name="limit_payment" tool_tip="Aux résidents non identifés" /> | 458 | name="limit_payment" tool_tip="Aux résidents non identifés" /> |
459 | <check_box label="Aux résidents dont l'âge n'a pas été vérifié" | 459 | <check_box label="Aux résidents dont l'âge n'a pas été vérifié" |
460 | name="limit_age_verified" | 460 | name="limit_age_verified" |
461 | tool_tip="Aux résidents dont l'âge n'a pas été vérifié. Pour plus d'infos, consultez la page support.secondlife.com." /> | 461 | tool_tip="Aux résidents dont l'âge n'a pas été vérifié. Pour plus d'infos, consultez la page support.secondlife.com." /> |
462 | <string name="estate_override"> | 462 | <string name="estate_override"> |
463 | Au moins une de ces options est définie au niveau du domaine. | 463 | Au moins une de ces options est définie au niveau du domaine. |
464 | </string> | 464 | </string> |
465 | <check_box label="Autoriser l'accès au groupe : [GROUP]" name="GroupCheck" | 465 | <check_box label="Autoriser l'accès au groupe : [GROUP]" name="GroupCheck" |
466 | tool_tip="Définir le groupe à l'onglet Général." /> | 466 | tool_tip="Définir le groupe à l'onglet Général." /> |
467 | <check_box label="Avatars : (0 dans la liste, 300 max)" name="AccessCheck" /> | 467 | <check_box label="Avatars : (0 dans la liste, 300 max)" name="AccessCheck" /> |
468 | <button label="Ajouter..." label_selected="Ajouter..." name="Add..." /> | 468 | <button label="Ajouter..." label_selected="Ajouter..." name="Add..." /> |
469 | <button label="Retirer" label_selected="Retirer" name="Remove" /> | 469 | <button label="Retirer" label_selected="Retirer" name="Remove" /> |
470 | <check_box label="Vendre des passes à :" name="PassCheck" | 470 | <check_box label="Vendre des passes à :" name="PassCheck" |
471 | tool_tip="Autoriser un accès temporaire à cette parcelle" /> | 471 | tool_tip="Autoriser un accès temporaire à cette parcelle" /> |
472 | <combo_box name="pass_combo"> | 472 | <combo_box name="pass_combo"> |
473 | <combo_item name="Anyone"> | 473 | <combo_item name="Anyone"> |
474 | N'importe qui | 474 | N'importe qui |
475 | </combo_item> | 475 | </combo_item> |
476 | <combo_item name="Group"> | 476 | <combo_item name="Group"> |
477 | Groupe | 477 | Groupe |
478 | </combo_item> | 478 | </combo_item> |
479 | </combo_box> | 479 | </combo_box> |
480 | <spinner label="Prix en $L :" name="PriceSpin" /> | 480 | <spinner label="Prix en $L :" name="PriceSpin" /> |
481 | <spinner label="Heures d'accès :" name="HoursSpin" /> | 481 | <spinner label="Heures d'accès :" name="HoursSpin" /> |
482 | <text label="Toujours autoriser" name="AllowedText"> | 482 | <text label="Toujours autoriser" name="AllowedText"> |
483 | Résidents autorisés | 483 | Résidents autorisés |
484 | </text> | 484 | </text> |
485 | <name_list name="AccessList" tool_tip="([LISTED] listés, [MAX] max)" /> | 485 | <name_list name="AccessList" tool_tip="([LISTED] listés, [MAX] max)" /> |
486 | <button label="Ajouter..." label_selected="Ajouter..." name="add_allowed" /> | 486 | <button label="Ajouter..." label_selected="Ajouter..." name="add_allowed" /> |
487 | <button label="Supprimer" label_selected="Supprimer" name="remove_allowed" /> | 487 | <button label="Supprimer" label_selected="Supprimer" name="remove_allowed" /> |
488 | <text label="Interdire" name="BanCheck"> | 488 | <text label="Interdire" name="BanCheck"> |
489 | Résidents interdits | 489 | Résidents interdits |
490 | </text> | 490 | </text> |
491 | <name_list name="BannedList" tool_tip="([LISTED] listés, [MAX] max)" /> | 491 | <name_list name="BannedList" tool_tip="([LISTED] listés, [MAX] max)" /> |
492 | <button label="Ajouter..." label_selected="Ajouter..." name="add_banned" /> | 492 | <button label="Ajouter..." label_selected="Ajouter..." name="add_banned" /> |
493 | <button label="Supprimer" label_selected="Supprimer" name="remove_banned" /> | 493 | <button label="Supprimer" label_selected="Supprimer" name="remove_banned" /> |
494 | </panel> | 494 | </panel> |
495 | <panel label="Bannir" name="land_ban_panel"> | 495 | <panel label="Bannir" name="land_ban_panel"> |
496 | <check_box label="Bannir les avatars suivants : (0 dans la liste, 300 max)" | 496 | <check_box label="Bannir les avatars suivants : (0 dans la liste, 300 max)" |
497 | name="LandBanCheck" /> | 497 | name="LandBanCheck" /> |
498 | <button label="Ajouter..." label_selected="Ajouter..." name="Add..." /> | 498 | <button label="Ajouter..." label_selected="Ajouter..." name="Add..." /> |
499 | <button label="Retirer" label_selected="Retirer" name="Remove" /> | 499 | <button label="Retirer" label_selected="Retirer" name="Remove" /> |
500 | <text type="string" length="1" name="Deny by Payment Status:"> | 500 | <text type="string" length="1" name="Deny by Payment Status:"> |
501 | Refuser selon les infos de paiement : | 501 | Refuser selon les infos de paiement : |
502 | </text> | 502 | </text> |
503 | <check_box label="Refuser sans infos de paiement enregistrées" name="DenyAnonymousCheck" /> | 503 | <check_box label="Refuser sans infos de paiement enregistrées" name="DenyAnonymousCheck" /> |
504 | <check_box label="Refuser avec infos de paiement enregistrées" name="DenyIdentifiedCheck" /> | 504 | <check_box label="Refuser avec infos de paiement enregistrées" name="DenyIdentifiedCheck" /> |
505 | <check_box label="Refuser avec infos de paiement utilisées" name="DenyTransactedCheck" /> | 505 | <check_box label="Refuser avec infos de paiement utilisées" name="DenyTransactedCheck" /> |
506 | </panel> | 506 | </panel> |
507 | </tab_container> | 507 | </tab_container> |
508 | </floater> | 508 | </floater> |
diff --git a/linden/indra/newview/skins/silver/colors_base.xml b/linden/indra/newview/skins/silver/colors_base.xml index 623b800..b6e77be 100644 --- a/linden/indra/newview/skins/silver/colors_base.xml +++ b/linden/indra/newview/skins/silver/colors_base.xml | |||
@@ -100,9 +100,9 @@ | |||
100 | <PieMenuSelectedColor value="185, 200, 220, 120" /> <!-- Color of pie menu slice when selected --> | 100 | <PieMenuSelectedColor value="185, 200, 220, 120" /> <!-- Color of pie menu slice when selected --> |
101 | 101 | ||
102 | <!-- MENU BAR --> | 102 | <!-- MENU BAR --> |
103 | <ParcelTextColor value="40, 40, 90, 255" /> <!-- Parcel name on menu bar, normal state --> | 103 | <ParcelTextColor value="40, 40, 90, 255" /> <!-- Parcel name on menu bar, normal state --> |
104 | <ParcelHoverColor value="70, 70, 100, 255" /> <!-- Parcel name on menu bar, hover state --> | 104 | <ParcelHoverColor value="70, 70, 100, 255" /> <!-- Parcel name on menu bar, hover state --> |
105 | <TimeTextColor value="0, 30, 60, 255" /> <!-- SL Time on menu bar --> | 105 | <TimeTextColor value="0, 30, 60, 255" /> <!-- SL Time on menu bar --> |
106 | <BalanceTextColor value="0, 100, 40, 255" /> <!-- Linden dollar balance on menu bar --> | 106 | <BalanceTextColor value="0, 100, 40, 255" /> <!-- Linden dollar balance on menu bar --> |
107 | <HealthTextColor value="110, 15, 15, 255" /> <!-- Damage meter text on menu bar --> | 107 | <HealthTextColor value="110, 15, 15, 255" /> <!-- Damage meter text on menu bar --> |
108 | 108 | ||
@@ -175,14 +175,6 @@ | |||
175 | <FilterTextColor value="255, 200, 70, 255" /> <!-- Inventory search text --> | 175 | <FilterTextColor value="255, 200, 70, 255" /> <!-- Inventory search text --> |
176 | <InventorySearchStatusColor value="0, 0, 0, 255" /> <!-- "Searching..." --> | 176 | <InventorySearchStatusColor value="0, 0, 0, 255" /> <!-- "Searching..." --> |
177 | 177 | ||
178 | <!-- HELP WINDOW --> | ||
179 | <HelpBgColor value="200, 209, 204, 255" /> | ||
180 | <HelpFgColor value="0, 0, 0, 255" /> | ||
181 | <HelpScrollTrackColor value="0, 0, 0, 255" /> | ||
182 | <HelpScrollThumbColor value="255, 255, 255, 255" /> | ||
183 | <HelpScrollHighlightColor value="115, 132, 155, 255" /> | ||
184 | <HelpScrollShadowColor value="0, 0, 0, 255" /> | ||
185 | |||
186 | <!-- MISC --> | 178 | <!-- MISC --> |
187 | <AvatarNameColor value="251, 175, 93, 255" /> <!-- Text color of avatar nametags --> | 179 | <AvatarNameColor value="251, 175, 93, 255" /> <!-- Text color of avatar nametags --> |
188 | <FocusColor value="239, 156, 0, 255" /> <!-- Color of the glow around UI controls with keyboard focus --> | 180 | <FocusColor value="239, 156, 0, 255" /> <!-- Color of the glow around UI controls with keyboard focus --> |
@@ -192,5 +184,5 @@ | |||
192 | <ContextSilhouetteColor value="239, 156, 0, 255" /> <!-- For "context" highlighting, i.e. pie menu --> | 184 | <ContextSilhouetteColor value="239, 156, 0, 255" /> <!-- For "context" highlighting, i.e. pie menu --> |
193 | <GroupOverTierColor value="110, 15, 15, 255" /> <!-- Warning text in Group Info window --> | 185 | <GroupOverTierColor value="110, 15, 15, 255" /> <!-- Warning text in Group Info window --> |
194 | <ConsoleBackground value="0, 0, 0, 255" /> <!-- Background for inworld chat --> | 186 | <ConsoleBackground value="0, 0, 0, 255" /> <!-- Background for inworld chat --> |
195 | 187 | ||
196 | </settings> | 188 | </settings> |