diff options
Diffstat (limited to '')
36 files changed, 733 insertions, 154 deletions
diff --git a/linden/indra/llwindow/llwindow.h b/linden/indra/llwindow/llwindow.h index 0acbcb9..0004e92 100644 --- a/linden/indra/llwindow/llwindow.h +++ b/linden/indra/llwindow/llwindow.h | |||
@@ -202,6 +202,7 @@ public: | |||
202 | virtual void updateLanguageTextInputArea() {} | 202 | virtual void updateLanguageTextInputArea() {} |
203 | virtual void interruptLanguageTextInput() {} | 203 | virtual void interruptLanguageTextInput() {} |
204 | virtual void spawnWebBrowser(const std::string& escaped_url) {}; | 204 | virtual void spawnWebBrowser(const std::string& escaped_url) {}; |
205 | virtual void ShellEx(const std::string& command) {}; | ||
205 | 206 | ||
206 | static std::string getFontListSans(); | 207 | static std::string getFontListSans(); |
207 | 208 | ||
diff --git a/linden/indra/llwindow/llwindowwin32.cpp b/linden/indra/llwindow/llwindowwin32.cpp index 2944511..a9c7758 100644 --- a/linden/indra/llwindow/llwindowwin32.cpp +++ b/linden/indra/llwindow/llwindowwin32.cpp | |||
@@ -2885,6 +2885,18 @@ S32 OSMessageBoxWin32(const std::string& text, const std::string& caption, U32 t | |||
2885 | return retval; | 2885 | return retval; |
2886 | } | 2886 | } |
2887 | 2887 | ||
2888 | void LLWindowWin32::ShellEx(const std::string& command ) | ||
2889 | { | ||
2890 | LLWString url_wstring = utf8str_to_wstring( command ); | ||
2891 | llutf16string url_utf16 = wstring_to_utf16str( url_wstring ); | ||
2892 | |||
2893 | SHELLEXECUTEINFO sei = { sizeof( sei ) }; | ||
2894 | sei.fMask = SEE_MASK_FLAG_DDEWAIT; | ||
2895 | sei.nShow = SW_SHOWNORMAL; | ||
2896 | sei.lpVerb = L"open"; | ||
2897 | sei.lpFile = url_utf16.c_str(); | ||
2898 | ShellExecuteEx( &sei ); | ||
2899 | } | ||
2888 | 2900 | ||
2889 | void LLWindowWin32::spawnWebBrowser(const std::string& escaped_url ) | 2901 | void LLWindowWin32::spawnWebBrowser(const std::string& escaped_url ) |
2890 | { | 2902 | { |
diff --git a/linden/indra/llwindow/llwindowwin32.h b/linden/indra/llwindow/llwindowwin32.h index 795fc79..bea55c6 100644 --- a/linden/indra/llwindow/llwindowwin32.h +++ b/linden/indra/llwindow/llwindowwin32.h | |||
@@ -110,6 +110,7 @@ public: | |||
110 | /*virtual*/ void updateLanguageTextInputArea(); | 110 | /*virtual*/ void updateLanguageTextInputArea(); |
111 | /*virtual*/ void interruptLanguageTextInput(); | 111 | /*virtual*/ void interruptLanguageTextInput(); |
112 | /*virtual*/ void spawnWebBrowser(const std::string& escaped_url); | 112 | /*virtual*/ void spawnWebBrowser(const std::string& escaped_url); |
113 | /*virtual*/ void ShellEx(const std::string& command); | ||
113 | 114 | ||
114 | static std::string getFontListSans(); | 115 | static std::string getFontListSans(); |
115 | 116 | ||
diff --git a/linden/indra/newview/llfilepicker.cpp b/linden/indra/newview/llfilepicker.cpp index 954a274..ece30dd 100644 --- a/linden/indra/newview/llfilepicker.cpp +++ b/linden/indra/newview/llfilepicker.cpp | |||
@@ -327,6 +327,18 @@ BOOL LLFilePicker::getSaveFile(ESaveFilter filter, const std::string& filename) | |||
327 | L"Targa, Bitmap Images (*.tga; *.bmp)\0*.tga;*.bmp\0" \ | 327 | L"Targa, Bitmap Images (*.tga; *.bmp)\0*.tga;*.bmp\0" \ |
328 | L"\0"; | 328 | L"\0"; |
329 | break; | 329 | break; |
330 | case FFSAVE_TEXT: | ||
331 | if (filename.empty()) | ||
332 | { | ||
333 | wcsncpy( mFilesW,L"untitled.txt", FILENAME_BUFFER_SIZE); /*Flawfinder: ignore*/ | ||
334 | } | ||
335 | mOFN.lpstrDefExt = L"txt"; | ||
336 | mOFN.lpstrFilter = | ||
337 | L"Text files (*.txt)\0*.txt\0" | ||
338 | L"RTF Files (*.rtf)\0*.rtf\0" | ||
339 | L"LSL Files (*.lsl)\0*.lsl\0" | ||
340 | L"\0"; | ||
341 | break; | ||
330 | case FFSAVE_WAV: | 342 | case FFSAVE_WAV: |
331 | if (filename.empty()) | 343 | if (filename.empty()) |
332 | { | 344 | { |
diff --git a/linden/indra/newview/llfilepicker.h b/linden/indra/newview/llfilepicker.h index aea414a..f9f859f 100644 --- a/linden/indra/newview/llfilepicker.h +++ b/linden/indra/newview/llfilepicker.h | |||
@@ -90,6 +90,7 @@ public: | |||
90 | FFLOAD_XML = 6, | 90 | FFLOAD_XML = 6, |
91 | FFLOAD_SLOBJECT = 7, | 91 | FFLOAD_SLOBJECT = 7, |
92 | FFLOAD_RAW = 8, | 92 | FFLOAD_RAW = 8, |
93 | FFLOAD_TEXT = 9, | ||
93 | }; | 94 | }; |
94 | 95 | ||
95 | enum ESaveFilter | 96 | enum ESaveFilter |
@@ -109,6 +110,8 @@ public: | |||
109 | FFSAVE_J2C = 12, | 110 | FFSAVE_J2C = 12, |
110 | FFSAVE_PNG = 13, | 111 | FFSAVE_PNG = 13, |
111 | FFSAVE_JPEG = 14, | 112 | FFSAVE_JPEG = 14, |
113 | FFSAVE_HPA = 15, | ||
114 | FFSAVE_TEXT = 16, | ||
112 | }; | 115 | }; |
113 | 116 | ||
114 | // open the dialog. This is a modal operation | 117 | // open the dialog. This is a modal operation |
diff --git a/linden/indra/newview/llfloatercustomize.cpp b/linden/indra/newview/llfloatercustomize.cpp index b9deb6c..4bcc823 100644 --- a/linden/indra/newview/llfloatercustomize.cpp +++ b/linden/indra/newview/llfloatercustomize.cpp | |||
@@ -245,6 +245,8 @@ public: | |||
245 | 245 | ||
246 | childSetAction("Save", onSave, this ); | 246 | childSetAction("Save", onSave, this ); |
247 | childSetAction("Cancel", onCancel, this ); | 247 | childSetAction("Cancel", onCancel, this ); |
248 | childSetAction("Check All", onCheckAll, this ); | ||
249 | childSetAction("Uncheck All", onUncheckAll, this ); | ||
248 | } | 250 | } |
249 | 251 | ||
250 | BOOL getRenameClothing() | 252 | BOOL getRenameClothing() |
@@ -325,6 +327,26 @@ public: | |||
325 | LLMakeOutfitDialog* self = (LLMakeOutfitDialog*) userdata; | 327 | LLMakeOutfitDialog* self = (LLMakeOutfitDialog*) userdata; |
326 | self->close(); // destroys this object | 328 | self->close(); // destroys this object |
327 | } | 329 | } |
330 | |||
331 | static void onCheckAll( void* userdata ) | ||
332 | { | ||
333 | LLMakeOutfitDialog* self = (LLMakeOutfitDialog*) userdata; | ||
334 | for( S32 i = 0; i < (S32)(self->mCheckBoxList.size()); i++) | ||
335 | { | ||
336 | std::string name = self->mCheckBoxList[i].first; | ||
337 | if(self->childIsEnabled(name))self->childSetValue(name,TRUE); | ||
338 | } | ||
339 | } | ||
340 | |||
341 | static void onUncheckAll( void* userdata ) | ||
342 | { | ||
343 | LLMakeOutfitDialog* self = (LLMakeOutfitDialog*) userdata; | ||
344 | for( S32 i = 0; i < (S32)(self->mCheckBoxList.size()); i++) | ||
345 | { | ||
346 | std::string name = self->mCheckBoxList[i].first; | ||
347 | if(self->childIsEnabled(name))self->childSetValue(name,FALSE); | ||
348 | } | ||
349 | } | ||
328 | }; | 350 | }; |
329 | 351 | ||
330 | ///////////////////////////////////////////////////////////////////// | 352 | ///////////////////////////////////////////////////////////////////// |
@@ -536,10 +558,26 @@ void LLPanelEditWearable::setSubpart( ESubpart subpart ) | |||
536 | item = (LLViewerInventoryItem*)gAgent.getWearableInventoryItem(mType); | 558 | item = (LLViewerInventoryItem*)gAgent.getWearableInventoryItem(mType); |
537 | U32 perm_mask = 0x0; | 559 | U32 perm_mask = 0x0; |
538 | BOOL is_complete = FALSE; | 560 | BOOL is_complete = FALSE; |
561 | bool can_export = false; | ||
562 | bool can_import = false; | ||
539 | if(item) | 563 | if(item) |
540 | { | 564 | { |
541 | perm_mask = item->getPermissions().getMaskOwner(); | 565 | perm_mask = item->getPermissions().getMaskOwner(); |
542 | is_complete = item->isComplete(); | 566 | is_complete = item->isComplete(); |
567 | |||
568 | if (subpart <= 18) // body parts only | ||
569 | { | ||
570 | can_import = true; | ||
571 | |||
572 | if (is_complete && | ||
573 | gAgent.getID() == item->getPermissions().getOwner() && | ||
574 | gAgent.getID() == item->getPermissions().getCreator() && | ||
575 | (PERM_ITEM_UNRESTRICTED & | ||
576 | perm_mask) == PERM_ITEM_UNRESTRICTED) | ||
577 | { | ||
578 | can_export = true; | ||
579 | } | ||
580 | } | ||
543 | } | 581 | } |
544 | setUIPermissions(perm_mask, is_complete); | 582 | setUIPermissions(perm_mask, is_complete); |
545 | BOOL editable = ((perm_mask & PERM_MODIFY) && is_complete) ? TRUE : FALSE; | 583 | BOOL editable = ((perm_mask & PERM_MODIFY) && is_complete) ? TRUE : FALSE; |
@@ -563,7 +601,8 @@ void LLPanelEditWearable::setSubpart( ESubpart subpart ) | |||
563 | } | 601 | } |
564 | gFloaterCustomize->generateVisualParamHints(NULL, sorted_params); | 602 | gFloaterCustomize->generateVisualParamHints(NULL, sorted_params); |
565 | gFloaterCustomize->updateScrollingPanelUI(); | 603 | gFloaterCustomize->updateScrollingPanelUI(); |
566 | 604 | gFloaterCustomize->childSetEnabled("Export", can_export); | |
605 | gFloaterCustomize->childSetEnabled("Import", can_import); | ||
567 | 606 | ||
568 | // Update the camera | 607 | // Update the camera |
569 | gMorphView->setCameraTargetJoint( gAgent.getAvatarObject()->getJoint( part->mTargetJoint ) ); | 608 | gMorphView->setCameraTargetJoint( gAgent.getAvatarObject()->getJoint( part->mTargetJoint ) ); |
@@ -1287,7 +1326,18 @@ void LLScrollingPanelParam::onSliderMoved(LLUICtrl* ctrl, void* userdata) | |||
1287 | F32 new_weight = self->percentToWeight( (F32)slider->getValue().asReal() ); | 1326 | F32 new_weight = self->percentToWeight( (F32)slider->getValue().asReal() ); |
1288 | if (current_weight != new_weight ) | 1327 | if (current_weight != new_weight ) |
1289 | { | 1328 | { |
1290 | gAgent.getAvatarObject()->setVisualParamWeight( param, new_weight, TRUE); | 1329 | LLFloaterCustomize* floater_customize = gFloaterCustomize; |
1330 | if (!floater_customize) return; | ||
1331 | |||
1332 | //avatar height stuff -Patrick Sapinski (Wednesday, August 19, 2009) | ||
1333 | LLVOAvatar* avatar = gAgent.getAvatarObject(); | ||
1334 | F32 avatar_size = (avatar->mBodySize.mV[VZ]) + (F32)0.17; //mBodySize is actually quite a bit off. | ||
1335 | |||
1336 | floater_customize->getChild<LLTextBox>("HeightText")->setValue(llformat("%.2f", avatar_size) + "m"); | ||
1337 | floater_customize->getChild<LLTextBox>("HeightText2")->setValue(llformat("%.2f",llround(avatar_size / 0.3048)) + "'" | ||
1338 | + llformat("%.2f",llround(avatar_size * 39.37) % 12) + "\""); | ||
1339 | |||
1340 | gAgent.getAvatarObject()->setVisualParamWeight( param, new_weight, FALSE); | ||
1291 | gAgent.getAvatarObject()->updateVisualParams(); | 1341 | gAgent.getAvatarObject()->updateVisualParams(); |
1292 | } | 1342 | } |
1293 | } | 1343 | } |
@@ -1563,6 +1613,10 @@ BOOL LLFloaterCustomize::postBuild() | |||
1563 | childSetAction("Save All", LLFloaterCustomize::onBtnSaveAll, (void*)this); | 1613 | childSetAction("Save All", LLFloaterCustomize::onBtnSaveAll, (void*)this); |
1564 | childSetAction("Close", LLFloater::onClickClose, (void*)this); | 1614 | childSetAction("Close", LLFloater::onClickClose, (void*)this); |
1565 | 1615 | ||
1616 | // reX | ||
1617 | childSetAction("Import", LLFloaterCustomize::onBtnImport, (void*)this); | ||
1618 | childSetAction("Export", LLFloaterCustomize::onBtnExport, (void*)this); | ||
1619 | |||
1566 | // Wearable panels | 1620 | // Wearable panels |
1567 | initWearablePanels(); | 1621 | initWearablePanels(); |
1568 | 1622 | ||
@@ -1623,6 +1677,157 @@ void LLFloaterCustomize::setCurrentWearableType( EWearableType type ) | |||
1623 | } | 1677 | } |
1624 | } | 1678 | } |
1625 | 1679 | ||
1680 | |||
1681 | // reX: new function | ||
1682 | void LLFloaterCustomize::onBtnImport( void* userdata ) | ||
1683 | { | ||
1684 | LLFilePicker& file_picker = LLFilePicker::instance(); | ||
1685 | if( !file_picker.getOpenFile( LLFilePicker::FFLOAD_XML ) ) | ||
1686 | { | ||
1687 | // User canceled import. | ||
1688 | return; | ||
1689 | } | ||
1690 | |||
1691 | const std::string filename = file_picker.getFirstFile(); | ||
1692 | |||
1693 | FILE* fp = LLFile::fopen(filename, "rb"); | ||
1694 | |||
1695 | //char text_buffer[2048]; /* Flawfinder: ignore */ | ||
1696 | S32 c; | ||
1697 | S32 typ; | ||
1698 | S32 count; | ||
1699 | S32 param_id=0; | ||
1700 | F32 param_weight=0; | ||
1701 | S32 fields_read; | ||
1702 | |||
1703 | for( S32 i=0; i < WT_COUNT; i++ ) | ||
1704 | { | ||
1705 | fields_read = fscanf( fp, "type %d\n", &typ); | ||
1706 | if( fields_read != 1 ) | ||
1707 | { | ||
1708 | llwarns << "Bad asset type: early end of file" << llendl; | ||
1709 | return; | ||
1710 | } | ||
1711 | |||
1712 | fields_read = fscanf( fp, "parameters %d\n", &count); | ||
1713 | if( fields_read != 1 ) | ||
1714 | { | ||
1715 | llwarns << "Bad parameters : early end of file" << llendl; | ||
1716 | return; | ||
1717 | } | ||
1718 | for(c=0;c<count;c++) | ||
1719 | { | ||
1720 | fields_read = fscanf( fp, "%d %f\n", ¶m_id, ¶m_weight ); | ||
1721 | if( fields_read != 2 ) | ||
1722 | { | ||
1723 | llwarns << "Bad parameters list: early end of file" << llendl; | ||
1724 | return; | ||
1725 | } | ||
1726 | gAgent.getAvatarObject()->setVisualParamWeight( param_id, param_weight, TRUE); | ||
1727 | gAgent.getAvatarObject()->updateVisualParams(); | ||
1728 | } | ||
1729 | } | ||
1730 | |||
1731 | |||
1732 | |||
1733 | //for( S32 i=0; i < WT_COUNT; i++ ) | ||
1734 | //{ | ||
1735 | // fields_read = fscanf( fp, "type %d\n", &typ); | ||
1736 | // if( fields_read != 1 ) | ||
1737 | // { | ||
1738 | // llwarns << "Bad asset type: early end of file" << llendl; | ||
1739 | // return; | ||
1740 | // } | ||
1741 | // fields_read = fscanf( fp, "textures %d\n", &count); | ||
1742 | // if( fields_read != 1 ) | ||
1743 | // { | ||
1744 | // llwarns << "Bad textures: early end of file" << llendl; | ||
1745 | // return; | ||
1746 | // } | ||
1747 | // | ||
1748 | // for(c=0;c<count;c++) | ||
1749 | // { | ||
1750 | // fields_read = fscanf( fp, "%d %2047s\n",text_buffer); | ||
1751 | // if( fields_read != 2 ) | ||
1752 | // { | ||
1753 | // llwarns << "Bad textures list: early end of file" << llendl; | ||
1754 | // return; | ||
1755 | // } | ||
1756 | // } | ||
1757 | |||
1758 | |||
1759 | fclose(fp); | ||
1760 | return; | ||
1761 | } | ||
1762 | |||
1763 | // reX: new function | ||
1764 | void LLFloaterCustomize::onBtnExport( void* userdata ) | ||
1765 | { | ||
1766 | LLFilePicker& file_picker = LLFilePicker::instance(); | ||
1767 | if( !file_picker.getSaveFile( LLFilePicker::FFSAVE_XML ) ) | ||
1768 | { | ||
1769 | // User canceled export. | ||
1770 | return; | ||
1771 | } | ||
1772 | |||
1773 | LLViewerInventoryItem* item; | ||
1774 | BOOL is_modifiable; | ||
1775 | |||
1776 | const std::string filename = file_picker.getFirstFile(); | ||
1777 | |||
1778 | FILE* fp = LLFile::fopen(filename, "wb"); | ||
1779 | |||
1780 | for( S32 i=0; i < WT_COUNT; i++ ) | ||
1781 | { | ||
1782 | is_modifiable = FALSE; | ||
1783 | LLWearable* old_wearable = gAgent.getWearable((EWearableType)i); | ||
1784 | if( old_wearable ) | ||
1785 | { | ||
1786 | item = (LLViewerInventoryItem*)gAgent.getWearableInventoryItem((EWearableType)i); | ||
1787 | if(item) | ||
1788 | { | ||
1789 | const LLPermissions& perm = item->getPermissions(); | ||
1790 | is_modifiable = perm.allowModifyBy(gAgent.getID(), gAgent.getGroupID()); | ||
1791 | } | ||
1792 | } | ||
1793 | if (is_modifiable) | ||
1794 | { | ||
1795 | old_wearable->FileExportParams(fp); | ||
1796 | } | ||
1797 | if (!is_modifiable) | ||
1798 | { | ||
1799 | fprintf( fp, "type %d\n",i); | ||
1800 | fprintf( fp, "parameters 0\n"); | ||
1801 | } | ||
1802 | } | ||
1803 | |||
1804 | for( S32 i=0; i < WT_COUNT; i++ ) | ||
1805 | { | ||
1806 | is_modifiable = FALSE; | ||
1807 | LLWearable* old_wearable = gAgent.getWearable((EWearableType)i); | ||
1808 | if( old_wearable ) | ||
1809 | { | ||
1810 | item = (LLViewerInventoryItem*)gAgent.getWearableInventoryItem((EWearableType)i); | ||
1811 | if(item) | ||
1812 | { | ||
1813 | const LLPermissions& perm = item->getPermissions(); | ||
1814 | is_modifiable = perm.allowModifyBy(gAgent.getID(), gAgent.getGroupID()); | ||
1815 | } | ||
1816 | } | ||
1817 | if (is_modifiable) | ||
1818 | { | ||
1819 | old_wearable->FileExportTextures(fp); | ||
1820 | } | ||
1821 | if (!is_modifiable) | ||
1822 | { | ||
1823 | fprintf( fp, "type %d\n",i); | ||
1824 | fprintf( fp, "textures 0\n"); | ||
1825 | } | ||
1826 | } | ||
1827 | |||
1828 | fclose(fp); | ||
1829 | } | ||
1830 | |||
1626 | // static | 1831 | // static |
1627 | void LLFloaterCustomize::onBtnSaveAll( void* userdata ) | 1832 | void LLFloaterCustomize::onBtnSaveAll( void* userdata ) |
1628 | { | 1833 | { |
@@ -2122,6 +2327,21 @@ void LLFloaterCustomize::draw() | |||
2122 | // arrives. Figure out some way to avoid this if possible. | 2327 | // arrives. Figure out some way to avoid this if possible. |
2123 | updateInventoryUI(); | 2328 | updateInventoryUI(); |
2124 | 2329 | ||
2330 | LLFloaterCustomize* floater_customize = gFloaterCustomize; | ||
2331 | if (!floater_customize) return; | ||
2332 | |||
2333 | //KOWs avatar height stuff | ||
2334 | LLVOAvatar* avatar = gAgent.getAvatarObject(); | ||
2335 | F32 avatar_size = (avatar->mBodySize.mV[VZ]) + (F32)0.17; //mBodySize is actually quite a bit off. | ||
2336 | |||
2337 | floater_customize->getChild<LLTextBox>("HeightText")->setValue(llformat("%.2f", avatar_size) + "m"); | ||
2338 | //inches = avatar_size * 39.37 | ||
2339 | //round(inches) + inches % 12 | ||
2340 | std::string temp = llformat("%.0f",(F32)llfloor(avatar_size / 0.3048)); | ||
2341 | std::string temp2 = llformat("%.0f",(F32)(llround(avatar_size * 39.37) % 12)); | ||
2342 | floater_customize->getChild<LLTextBox>("HeightText2")->setValue(temp + "'" | ||
2343 | + temp2 + "\""); | ||
2344 | |||
2125 | LLScrollingPanelParam::sUpdateDelayFrames = 0; | 2345 | LLScrollingPanelParam::sUpdateDelayFrames = 0; |
2126 | 2346 | ||
2127 | childSetEnabled("Save All", isDirty() ); | 2347 | childSetEnabled("Save All", isDirty() ); |
diff --git a/linden/indra/newview/llfloatercustomize.h b/linden/indra/newview/llfloatercustomize.h index 15fc8f1..ffa943a 100644 --- a/linden/indra/newview/llfloatercustomize.h +++ b/linden/indra/newview/llfloatercustomize.h | |||
@@ -107,6 +107,10 @@ public: | |||
107 | static EWearableType getCurrentWearableType() { return sCurrentWearableType; } | 107 | static EWearableType getCurrentWearableType() { return sCurrentWearableType; } |
108 | 108 | ||
109 | // Callbacks | 109 | // Callbacks |
110 | // reX: new function (thx dudes) | ||
111 | static void onBtnImport( void* userdata ); | ||
112 | // reX: new function | ||
113 | static void onBtnExport( void* userdata ); | ||
110 | static void onBtnSaveAll( void* userdata ); | 114 | static void onBtnSaveAll( void* userdata ); |
111 | static void onBtnSnapshot( void* userdata ); | 115 | static void onBtnSnapshot( void* userdata ); |
112 | static void onBtnMakeOutfit( void* userdata ); | 116 | static void onBtnMakeOutfit( void* userdata ); |
diff --git a/linden/indra/newview/llfloaterwater.cpp b/linden/indra/newview/llfloaterwater.cpp index c42b12b..7e2f188 100644 --- a/linden/indra/newview/llfloaterwater.cpp +++ b/linden/indra/newview/llfloaterwater.cpp | |||
@@ -168,7 +168,11 @@ void LLFloaterWater::initCallbacks(void) { | |||
168 | 168 | ||
169 | LLTextureCtrl* textCtrl = getChild<LLTextureCtrl>("WaterNormalMap"); | 169 | LLTextureCtrl* textCtrl = getChild<LLTextureCtrl>("WaterNormalMap"); |
170 | textCtrl->setDefaultImageAssetID(DEFAULT_WATER_NORMAL); | 170 | textCtrl->setDefaultImageAssetID(DEFAULT_WATER_NORMAL); |
171 | childSetCommitCallback("WaterNormalMap", onNormalMapPicked, NULL); | 171 | childSetCommitCallback("WaterNormalMap", onNormalMapPicked, NULL); |
172 | |||
173 | // next/prev buttons | ||
174 | childSetAction("next", onClickNext, this); | ||
175 | childSetAction("prev", onClickPrev, this); | ||
172 | } | 176 | } |
173 | 177 | ||
174 | void LLFloaterWater::onClickHelp(void* data) | 178 | void LLFloaterWater::onClickHelp(void* data) |
@@ -237,6 +241,12 @@ void LLFloaterWater::syncMenu() | |||
237 | 241 | ||
238 | LLWaterParamSet & current_params = param_mgr->mCurParams; | 242 | LLWaterParamSet & current_params = param_mgr->mCurParams; |
239 | 243 | ||
244 | LLComboBox* comboBox = getChild<LLComboBox>("WaterPresetsCombo"); | ||
245 | if (comboBox->getSelectedItemLabel() != current_params.mName) | ||
246 | { | ||
247 | comboBox->setSimple(current_params.mName); | ||
248 | } | ||
249 | |||
240 | // blue horizon | 250 | // blue horizon |
241 | param_mgr->mFogColor = current_params.getVector4(param_mgr->mFogColor.mName, err); | 251 | param_mgr->mFogColor = current_params.getVector4(param_mgr->mFogColor.mName, err); |
242 | 252 | ||
@@ -306,14 +316,26 @@ LLFloaterWater* LLFloaterWater::instance() | |||
306 | } | 316 | } |
307 | void LLFloaterWater::show() | 317 | void LLFloaterWater::show() |
308 | { | 318 | { |
309 | LLFloaterWater* water = instance(); | 319 | if (!sWaterMenu) |
310 | water->syncMenu(); | 320 | { |
311 | 321 | LLFloaterWater* water = instance(); | |
312 | // comment in if you want the menu to rebuild each time | 322 | water->syncMenu(); |
313 | //LLUICtrlFactory::getInstance()->buildFloater(water, "floater_water.xml"); | ||
314 | //water->initCallbacks(); | ||
315 | 323 | ||
316 | water->open(); | 324 | // comment in if you want the menu to rebuild each time |
325 | //LLUICtrlFactory::getInstance()->buildFloater(water, "floater_water.xml"); | ||
326 | //water->initCallbacks(); | ||
327 | } | ||
328 | else | ||
329 | { | ||
330 | if (sWaterMenu->getVisible()) | ||
331 | { | ||
332 | sWaterMenu->close(); | ||
333 | } | ||
334 | else | ||
335 | { | ||
336 | sWaterMenu->open(); | ||
337 | } | ||
338 | } | ||
317 | } | 339 | } |
318 | 340 | ||
319 | bool LLFloaterWater::isOpen() | 341 | bool LLFloaterWater::isOpen() |
@@ -727,3 +749,50 @@ void LLFloaterWater::onChangePresetName(LLUICtrl* ctrl, void * userData) | |||
727 | sWaterMenu->syncMenu(); | 749 | sWaterMenu->syncMenu(); |
728 | } | 750 | } |
729 | 751 | ||
752 | void LLFloaterWater::onClickNext(void* user_data) | ||
753 | { | ||
754 | LLWaterParamManager * param_mgr = LLWaterParamManager::instance(); | ||
755 | LLWaterParamSet& currentParams = param_mgr->mCurParams; | ||
756 | |||
757 | // find place of current param | ||
758 | std::map<std::string, LLWaterParamSet>::iterator mIt = | ||
759 | param_mgr->mParamList.find(currentParams.mName); | ||
760 | |||
761 | // if at the end, loop | ||
762 | std::map<std::string, LLWaterParamSet>::iterator last = param_mgr->mParamList.end(); --last; | ||
763 | if(mIt == last) | ||
764 | { | ||
765 | mIt = param_mgr->mParamList.begin(); | ||
766 | } | ||
767 | else | ||
768 | { | ||
769 | mIt++; | ||
770 | } | ||
771 | /*param_mgr->mAnimator.mIsRunning = false; | ||
772 | param_mgr->mAnimator.mUseLindenTime = false;*/ | ||
773 | param_mgr->loadPreset(mIt->first, true); | ||
774 | } | ||
775 | |||
776 | void LLFloaterWater::onClickPrev(void* user_data) | ||
777 | { | ||
778 | LLWaterParamManager * param_mgr = LLWaterParamManager::instance(); | ||
779 | LLWaterParamSet & currentParams = param_mgr->mCurParams; | ||
780 | |||
781 | // find place of current param | ||
782 | std::map<std::string, LLWaterParamSet>::iterator mIt = | ||
783 | param_mgr->mParamList.find(currentParams.mName); | ||
784 | |||
785 | // if at the beginning, loop | ||
786 | if(mIt == param_mgr->mParamList.begin()) | ||
787 | { | ||
788 | std::map<std::string, LLWaterParamSet>::iterator last = param_mgr->mParamList.end(); --last; | ||
789 | mIt = last; | ||
790 | } | ||
791 | else | ||
792 | { | ||
793 | mIt--; | ||
794 | } | ||
795 | /*param_mgr->mAnimator.mIsRunning = false; | ||
796 | param_mgr->mAnimator.mUseLindenTime = false;*/ | ||
797 | param_mgr->loadPreset(mIt->first, true); | ||
798 | } | ||
diff --git a/linden/indra/newview/llfloaterwater.h b/linden/indra/newview/llfloaterwater.h index 5c1fced..40704f2 100644 --- a/linden/indra/newview/llfloaterwater.h +++ b/linden/indra/newview/llfloaterwater.h | |||
@@ -127,6 +127,9 @@ private: | |||
127 | static LLFloaterWater* sWaterMenu; | 127 | static LLFloaterWater* sWaterMenu; |
128 | 128 | ||
129 | static std::set<std::string> sDefaultPresets; | 129 | static std::set<std::string> sDefaultPresets; |
130 | |||
131 | static void onClickNext(void* user_data); | ||
132 | static void onClickPrev(void* user_data); | ||
130 | }; | 133 | }; |
131 | 134 | ||
132 | 135 | ||
diff --git a/linden/indra/newview/llfloaterwindlight.cpp b/linden/indra/newview/llfloaterwindlight.cpp index 71e81fa..80090a0 100644 --- a/linden/indra/newview/llfloaterwindlight.cpp +++ b/linden/indra/newview/llfloaterwindlight.cpp | |||
@@ -46,6 +46,7 @@ | |||
46 | #include "llcombobox.h" | 46 | #include "llcombobox.h" |
47 | #include "lllineeditor.h" | 47 | #include "lllineeditor.h" |
48 | #include "llfloaterdaycycle.h" | 48 | #include "llfloaterdaycycle.h" |
49 | #include "lltabcontainer.h" | ||
49 | #include "llboost.h" | 50 | #include "llboost.h" |
50 | 51 | ||
51 | #include "v4math.h" | 52 | #include "v4math.h" |
@@ -1066,3 +1067,13 @@ void LLFloaterWindLight::onClickPrev(void* user_data) | |||
1066 | param_mgr->mAnimator.mUseLindenTime = false; | 1067 | param_mgr->mAnimator.mUseLindenTime = false; |
1067 | param_mgr->loadPreset(mIt->first, true); | 1068 | param_mgr->loadPreset(mIt->first, true); |
1068 | } | 1069 | } |
1070 | |||
1071 | //static | ||
1072 | void LLFloaterWindLight::selectTab(std::string tab_name) | ||
1073 | { | ||
1074 | if (!tab_name.empty()) | ||
1075 | { | ||
1076 | LLTabContainer* tabs = LLFloaterWindLight::instance()->getChild<LLTabContainer>("WindLight Tabs"); | ||
1077 | tabs->selectTabByName(tab_name); | ||
1078 | } | ||
1079 | } | ||
diff --git a/linden/indra/newview/llfloaterwindlight.h b/linden/indra/newview/llfloaterwindlight.h index 70e76c5..130a9a7 100644 --- a/linden/indra/newview/llfloaterwindlight.h +++ b/linden/indra/newview/llfloaterwindlight.h | |||
@@ -131,6 +131,8 @@ public: | |||
131 | /// turn off animated skies | 131 | /// turn off animated skies |
132 | static void deactivateAnimator(); | 132 | static void deactivateAnimator(); |
133 | 133 | ||
134 | static void selectTab(std::string tab_name); | ||
135 | |||
134 | private: | 136 | private: |
135 | // one instance on the inside | 137 | // one instance on the inside |
136 | static LLFloaterWindLight* sWindLight; | 138 | static LLFloaterWindLight* sWindLight; |
diff --git a/linden/indra/newview/llfolderview.cpp b/linden/indra/newview/llfolderview.cpp index 5407f06..61d7df0 100644 --- a/linden/indra/newview/llfolderview.cpp +++ b/linden/indra/newview/llfolderview.cpp | |||
@@ -297,11 +297,22 @@ void LLFolderViewItem::refreshFromListener() | |||
297 | else | 297 | else |
298 | mLabelCreator = creator_name;*/ | 298 | mLabelCreator = creator_name;*/ |
299 | 299 | ||
300 | //Label for desc search | ||
301 | std::string desc; | ||
302 | if(item) | ||
303 | { | ||
304 | if(!item->getDescription().empty()) | ||
305 | { | ||
306 | desc = item->getDescription(); | ||
307 | } | ||
308 | } | ||
309 | mLabelDesc = desc; | ||
310 | |||
300 | //Label for name search | 311 | //Label for name search |
301 | mLabel = mListener->getDisplayName(); | 312 | mLabel = mListener->getDisplayName(); |
302 | 313 | ||
303 | //Build label for combined search - RK | 314 | //Build label for combined search - RK |
304 | mLabelAll = mLabel + " " + mLabelCreator; | 315 | mLabelAll = mLabel + " " + mLabelCreator + " " + mLabelDesc; |
305 | 316 | ||
306 | setIcon(mListener->getIcon()); | 317 | setIcon(mListener->getIcon()); |
307 | time_t creation_date = mListener->getCreationDate(); | 318 | time_t creation_date = mListener->getCreationDate(); |
@@ -321,32 +332,53 @@ void LLFolderViewItem::refresh() | |||
321 | 332 | ||
322 | std::string searchable_label(mLabel); | 333 | std::string searchable_label(mLabel); |
323 | std::string searchable_label_creator(mLabelCreator); | 334 | std::string searchable_label_creator(mLabelCreator); |
335 | std::string searchable_label_desc(mLabelDesc); | ||
324 | std::string searchable_label_all(mLabelAll); | 336 | std::string searchable_label_all(mLabelAll); |
325 | 337 | ||
326 | //add the (no modify), (no transfer) etc stuff to each label. | 338 | //add the (no modify), (no transfer) etc stuff to each label. |
327 | searchable_label.append(mLabelSuffix); | 339 | searchable_label.append(mLabelSuffix); |
328 | searchable_label_creator.append(mLabelSuffix); | 340 | searchable_label_creator.append(mLabelSuffix); |
341 | searchable_label_desc.append(mLabelSuffix); | ||
329 | searchable_label_all.append(mLabelSuffix); | 342 | searchable_label_all.append(mLabelSuffix); |
330 | 343 | ||
331 | //all labels need to be uppercase. | 344 | //all labels need to be uppercase. |
332 | LLStringUtil::toUpper(searchable_label); | 345 | LLStringUtil::toUpper(searchable_label); |
333 | LLStringUtil::toUpper(searchable_label_creator); | 346 | LLStringUtil::toUpper(searchable_label_creator); |
347 | LLStringUtil::toUpper(searchable_label_desc); | ||
334 | LLStringUtil::toUpper(searchable_label_all); | 348 | LLStringUtil::toUpper(searchable_label_all); |
335 | 349 | ||
336 | if (mSearchableLabel.compare(searchable_label) || | 350 | if (mSearchableLabel.compare(searchable_label) || |
337 | mSearchableLabelCreator.compare(searchable_label_creator)) | 351 | mSearchableLabelCreator.compare(searchable_label_creator) || |
352 | mSearchableLabelDesc.compare(searchable_label_creator)) | ||
338 | { | 353 | { |
339 | mSearchableLabel.assign(searchable_label); | 354 | mSearchableLabel.assign(searchable_label); |
340 | mSearchableLabelCreator.assign(searchable_label_creator); | 355 | mSearchableLabelCreator.assign(searchable_label_creator); |
356 | mSearchableLabelDesc.assign(searchable_label_desc); | ||
341 | mSearchableLabelAll.assign(searchable_label_all); | 357 | mSearchableLabelAll.assign(searchable_label_all); |
342 | 358 | ||
343 | dirtyFilter(); | 359 | dirtyFilter(); |
344 | // some part of label has changed, so overall width has potentially changed | 360 | //some part of label has changed, so overall width has potentially changed |
345 | if (mParentFolder) | 361 | if (mParentFolder) |
346 | { | ||
347 | mParentFolder->requestArrange(); | 362 | mParentFolder->requestArrange(); |
348 | } | ||
349 | } | 363 | } |
364 | |||
365 | /*if(mSearchableLabelCreator.compare(searchable_label_creator)) | ||
366 | { | ||
367 | mSearchableLabelCreator.assign(searchable_label_creator); | ||
368 | |||
369 | dirtyFilter(); | ||
370 | if(mParentFolder) | ||
371 | mParentFolder->requestArrange(); | ||
372 | } | ||
373 | |||
374 | if(mSearchableLabelDesc.compare(searchable_label_desc)) | ||
375 | { | ||
376 | mSearchableLabelDesc.assign(searchable_label_desc); | ||
377 | |||
378 | dirtyFilter(); | ||
379 | if(mParentFolder) | ||
380 | mParentFolder->requestArrange(); | ||
381 | }*/ | ||
350 | 382 | ||
351 | S32 label_width = sFont->getWidth(mLabel); | 383 | S32 label_width = sFont->getWidth(mLabel); |
352 | if( mLabelSuffix.size() ) | 384 | if( mLabelSuffix.size() ) |
@@ -621,11 +653,12 @@ void LLFolderViewItem::rename(const std::string& new_name) | |||
621 | } | 653 | } |
622 | } | 654 | } |
623 | 655 | ||
624 | const std::string& LLFolderViewItem::getSearchableLabel() const | 656 | const std::string& LLFolderViewItem::getSearchableLabel(U32 search_type = 0) const |
625 | { | 657 | { |
626 | U32 search_type = gSavedSettings.getU32("InventorySearchType"); | 658 | if(search_type == 3) |
627 | if(search_type == 4) | ||
628 | return mSearchableLabelAll; | 659 | return mSearchableLabelAll; |
660 | else if(search_type == 2) | ||
661 | return mSearchableLabelDesc; | ||
629 | else if(search_type == 1) | 662 | else if(search_type == 1) |
630 | return mSearchableLabelCreator; | 663 | return mSearchableLabelCreator; |
631 | else | 664 | else |
@@ -4564,11 +4597,13 @@ BOOL LLInventoryFilter::check(LLFolderViewItem* item) | |||
4564 | } | 4597 | } |
4565 | LLFolderViewEventListener* listener = item->getListener(); | 4598 | LLFolderViewEventListener* listener = item->getListener(); |
4566 | const LLUUID& item_id = listener->getUUID(); | 4599 | const LLUUID& item_id = listener->getUUID(); |
4567 | mSubStringMatchOffset = mFilterSubString.size() ? item->getSearchableLabel().find(mFilterSubString) : std::string::npos; | 4600 | |
4601 | U32 search_type = gSavedSettings.getU32("InventorySearchType"); | ||
4602 | mSubStringMatchOffset = mFilterSubString.size() ? item->getSearchableLabel(search_type).find(mFilterSubString) : std::string::npos; | ||
4568 | BOOL passed = (listener->getNInventoryType() & mFilterOps.mFilterTypes || listener->getNInventoryType() == LLInventoryType::NIT_NONE) | 4603 | BOOL passed = (listener->getNInventoryType() & mFilterOps.mFilterTypes || listener->getNInventoryType() == LLInventoryType::NIT_NONE) |
4569 | && (mFilterSubString.size() == 0 || mSubStringMatchOffset != std::string::npos) | 4604 | && (mFilterSubString.size() == 0 || mSubStringMatchOffset != std::string::npos) |
4570 | && (mFilterWorn == false || gAgent.isWearingItem(item_id) || | 4605 | && (mFilterWorn == false || gAgent.isWearingItem(item_id) || |
4571 | gAgent.getAvatarObject() && gAgent.getAvatarObject()->isWearingAttachment(item_id)) | 4606 | (gAgent.getAvatarObject() && gAgent.getAvatarObject()->isWearingAttachment(item_id))) |
4572 | && ((listener->getPermissionMask() & mFilterOps.mPermissions) == mFilterOps.mPermissions) | 4607 | && ((listener->getPermissionMask() & mFilterOps.mPermissions) == mFilterOps.mPermissions) |
4573 | && (listener->getCreationDate() >= earliest && listener->getCreationDate() <= mFilterOps.mMaxDate); | 4608 | && (listener->getCreationDate() >= earliest && listener->getCreationDate() <= mFilterOps.mMaxDate); |
4574 | return passed; | 4609 | return passed; |
diff --git a/linden/indra/newview/llfolderview.h b/linden/indra/newview/llfolderview.h index 25b4362..82a1951 100644 --- a/linden/indra/newview/llfolderview.h +++ b/linden/indra/newview/llfolderview.h | |||
@@ -338,11 +338,16 @@ protected: | |||
338 | 338 | ||
339 | std::string mLabel; | 339 | std::string mLabel; |
340 | std::string mSearchableLabel; | 340 | std::string mSearchableLabel; |
341 | std::string mLabelAll; | 341 | |
342 | std::string mSearchableLabelAll; | ||
343 | std::string mLabelCreator; | 342 | std::string mLabelCreator; |
344 | std::string mSearchableLabelCreator; | 343 | std::string mSearchableLabelCreator; |
345 | 344 | ||
345 | std::string mLabelDesc; | ||
346 | std::string mSearchableLabelDesc; | ||
347 | |||
348 | std::string mLabelAll; | ||
349 | std::string mSearchableLabelAll; | ||
350 | |||
346 | std::string mType; | 351 | std::string mType; |
347 | S32 mLabelWidth; | 352 | S32 mLabelWidth; |
348 | U32 mCreationDate; | 353 | U32 mCreationDate; |
@@ -469,7 +474,7 @@ public: | |||
469 | // viewed. This method will ask the viewed object itself. | 474 | // viewed. This method will ask the viewed object itself. |
470 | const std::string& getName( void ) const; | 475 | const std::string& getName( void ) const; |
471 | 476 | ||
472 | const std::string& getSearchableLabel( void ) const; | 477 | const std::string& getSearchableLabel( U32 search_type ) const; |
473 | 478 | ||
474 | // This method returns the label displayed on the view. This | 479 | // This method returns the label displayed on the view. This |
475 | // method was primarily added to allow sorting on the folder | 480 | // method was primarily added to allow sorting on the folder |
diff --git a/linden/indra/newview/llimpanel.cpp b/linden/indra/newview/llimpanel.cpp index 014c050..25d0b63 100644 --- a/linden/indra/newview/llimpanel.cpp +++ b/linden/indra/newview/llimpanel.cpp | |||
@@ -73,6 +73,7 @@ | |||
73 | #include "llhttpclient.h" | 73 | #include "llhttpclient.h" |
74 | #include "llmutelist.h" | 74 | #include "llmutelist.h" |
75 | #include "llstylemap.h" | 75 | #include "llstylemap.h" |
76 | #include <sys/stat.h> | ||
76 | 77 | ||
77 | // | 78 | // |
78 | // Constants | 79 | // Constants |
@@ -1255,6 +1256,10 @@ BOOL LLFloaterIMPanel::postBuild() | |||
1255 | requires<LLLineEditor>("chat_editor"); | 1256 | requires<LLLineEditor>("chat_editor"); |
1256 | requires<LLTextEditor>("im_history"); | 1257 | requires<LLTextEditor>("im_history"); |
1257 | 1258 | ||
1259 | #if LL_LINUX || LL_DARWIN | ||
1260 | childSetVisible("history_btn", false); | ||
1261 | #endif | ||
1262 | |||
1258 | if (checkRequirements()) | 1263 | if (checkRequirements()) |
1259 | { | 1264 | { |
1260 | mInputEditor = getChild<LLLineEditor>("chat_editor"); | 1265 | mInputEditor = getChild<LLLineEditor>("chat_editor"); |
@@ -1269,6 +1274,7 @@ BOOL LLFloaterIMPanel::postBuild() | |||
1269 | 1274 | ||
1270 | childSetAction("profile_callee_btn", onClickProfile, this); | 1275 | childSetAction("profile_callee_btn", onClickProfile, this); |
1271 | childSetAction("group_info_btn", onClickGroupInfo, this); | 1276 | childSetAction("group_info_btn", onClickGroupInfo, this); |
1277 | childSetAction("history_btn", onClickHistory, this); | ||
1272 | 1278 | ||
1273 | childSetAction("start_call_btn", onClickStartCall, this); | 1279 | childSetAction("start_call_btn", onClickStartCall, this); |
1274 | childSetAction("end_call_btn", onClickEndCall, this); | 1280 | childSetAction("end_call_btn", onClickEndCall, this); |
@@ -1800,6 +1806,41 @@ void LLFloaterIMPanel::onClickProfile( void* userdata ) | |||
1800 | } | 1806 | } |
1801 | 1807 | ||
1802 | // static | 1808 | // static |
1809 | void LLFloaterIMPanel::onClickHistory( void* userdata ) | ||
1810 | { | ||
1811 | LLFloaterIMPanel* self = (LLFloaterIMPanel*) userdata; | ||
1812 | |||
1813 | if (self->mOtherParticipantUUID.notNull()) | ||
1814 | { | ||
1815 | struct stat fileInfo; | ||
1816 | int result; | ||
1817 | |||
1818 | std::string fullname = self->getTitle();; | ||
1819 | //gCacheName->getFullName(self->mOtherParticipantUUID, fullname); | ||
1820 | //if(fullname == "(Loading...)") | ||
1821 | std::string file_path = gDirUtilp->getPerAccountChatLogsDir() + "\\" + fullname + ".txt"; | ||
1822 | |||
1823 | // check if file exists by trying to get its attributes | ||
1824 | result = stat(file_path.c_str(), &fileInfo); | ||
1825 | if(result == 0) | ||
1826 | { | ||
1827 | char command[256]; | ||
1828 | sprintf(command, "\"%s\\%s.txt\"", gDirUtilp->getPerAccountChatLogsDir().c_str(),fullname.c_str()); | ||
1829 | gViewerWindow->getWindow()->ShellEx(command); | ||
1830 | |||
1831 | llinfos << command << llendl; | ||
1832 | } | ||
1833 | else | ||
1834 | { | ||
1835 | LLStringUtil::format_map_t args; | ||
1836 | args["[NAME]"] = fullname; | ||
1837 | gViewerWindow->alertXml("IMLogNotFound", args); | ||
1838 | llinfos << file_path << llendl; | ||
1839 | } | ||
1840 | } | ||
1841 | } | ||
1842 | |||
1843 | // static | ||
1803 | void LLFloaterIMPanel::onClickGroupInfo( void* userdata ) | 1844 | void LLFloaterIMPanel::onClickGroupInfo( void* userdata ) |
1804 | { | 1845 | { |
1805 | // Bring up the Profile window | 1846 | // Bring up the Profile window |
diff --git a/linden/indra/newview/llimpanel.h b/linden/indra/newview/llimpanel.h index 0f9c0f3..0699b12 100644 --- a/linden/indra/newview/llimpanel.h +++ b/linden/indra/newview/llimpanel.h | |||
@@ -230,6 +230,7 @@ public: | |||
230 | static void onTabClick( void* userdata ); | 230 | static void onTabClick( void* userdata ); |
231 | 231 | ||
232 | static void onClickProfile( void* userdata ); | 232 | static void onClickProfile( void* userdata ); |
233 | static void onClickHistory( void* userdata ); | ||
233 | static void onClickGroupInfo( void* userdata ); | 234 | static void onClickGroupInfo( void* userdata ); |
234 | static void onClickOfferTeleport( void* userdata ); | 235 | static void onClickOfferTeleport( void* userdata ); |
235 | static void onClickClose( void* userdata ); | 236 | static void onClickClose( void* userdata ); |
diff --git a/linden/indra/newview/llinventoryactions.cpp b/linden/indra/newview/llinventoryactions.cpp index b598c83..25592c1 100644 --- a/linden/indra/newview/llinventoryactions.cpp +++ b/linden/indra/newview/llinventoryactions.cpp | |||
@@ -484,7 +484,8 @@ class SetSearchType : public inventory_listener_t | |||
484 | gSavedSettings.setU32("InventorySearchType", 0); | 484 | gSavedSettings.setU32("InventorySearchType", 0); |
485 | 485 | ||
486 | mPtr->getControl("Inventory.SearchByName")->setValue(TRUE); | 486 | mPtr->getControl("Inventory.SearchByName")->setValue(TRUE); |
487 | mPtr->getControl("Inventory.SearchByCreator")->setValue(FALSE); | 487 | mPtr->getControl("Inventory.SearchByCreator")->setValue(FALSE); |
488 | mPtr->getControl("Inventory.SearchByDesc")->setValue(FALSE); | ||
488 | mPtr->getControl("Inventory.SearchByAll")->setValue(FALSE); | 489 | mPtr->getControl("Inventory.SearchByAll")->setValue(FALSE); |
489 | } | 490 | } |
490 | else if(search_type == "creator") | 491 | else if(search_type == "creator") |
@@ -493,16 +494,31 @@ class SetSearchType : public inventory_listener_t | |||
493 | 494 | ||
494 | mPtr->getControl("Inventory.SearchByName")->setValue(FALSE); | 495 | mPtr->getControl("Inventory.SearchByName")->setValue(FALSE); |
495 | mPtr->getControl("Inventory.SearchByCreator")->setValue(TRUE); | 496 | mPtr->getControl("Inventory.SearchByCreator")->setValue(TRUE); |
497 | mPtr->getControl("Inventory.SearchByDesc")->setValue(FALSE); | ||
498 | mPtr->getControl("Inventory.SearchByAll")->setValue(FALSE); | ||
499 | } | ||
500 | else if(search_type == "desc") | ||
501 | { | ||
502 | gSavedSettings.setU32("InventorySearchType", 2); | ||
503 | |||
504 | mPtr->getControl("Inventory.SearchByName")->setValue(FALSE); | ||
505 | mPtr->getControl("Inventory.SearchByCreator")->setValue(FALSE); | ||
506 | mPtr->getControl("Inventory.SearchByDesc")->setValue(TRUE); | ||
496 | mPtr->getControl("Inventory.SearchByAll")->setValue(FALSE); | 507 | mPtr->getControl("Inventory.SearchByAll")->setValue(FALSE); |
497 | } | 508 | } |
498 | else if(search_type == "all") | 509 | else if(search_type == "all") |
499 | { | 510 | { |
500 | gSavedSettings.setU32("InventorySearchType", 4); | 511 | gSavedSettings.setU32("InventorySearchType", 3); |
501 | 512 | ||
502 | mPtr->getControl("Inventory.SearchByName")->setValue(FALSE); | 513 | mPtr->getControl("Inventory.SearchByName")->setValue(FALSE); |
503 | mPtr->getControl("Inventory.SearchByCreator")->setValue(FALSE); | 514 | mPtr->getControl("Inventory.SearchByCreator")->setValue(FALSE); |
515 | mPtr->getControl("Inventory.SearchByDesc")->setValue(FALSE); | ||
504 | mPtr->getControl("Inventory.SearchByAll")->setValue(TRUE); | 516 | mPtr->getControl("Inventory.SearchByAll")->setValue(TRUE); |
505 | } | 517 | } |
518 | |||
519 | //Clear search when switching modes. | ||
520 | mPtr->getActivePanel()->setFilterSubString(LLStringUtil::null); | ||
521 | mPtr->getActivePanel()->setFilterTypes(LLInventoryType::NIT_ALL); | ||
506 | return true; | 522 | return true; |
507 | } | 523 | } |
508 | }; | 524 | }; |
diff --git a/linden/indra/newview/llinventoryview.cpp b/linden/indra/newview/llinventoryview.cpp index 008d79d..b4a8b72 100644 --- a/linden/indra/newview/llinventoryview.cpp +++ b/linden/indra/newview/llinventoryview.cpp | |||
@@ -527,6 +527,7 @@ void LLInventoryView::init(LLInventoryModel* inventory) | |||
527 | 527 | ||
528 | addBoolControl("Inventory.SearchByName", search_by_name); | 528 | addBoolControl("Inventory.SearchByName", search_by_name); |
529 | addBoolControl("Inventory.SearchByCreator", !search_by_name); | 529 | addBoolControl("Inventory.SearchByCreator", !search_by_name); |
530 | addBoolControl("Inventory.SearchByDesc", !search_by_name); | ||
530 | 531 | ||
531 | addBoolControl("Inventory.SearchByAll", !search_by_name); | 532 | addBoolControl("Inventory.SearchByAll", !search_by_name); |
532 | 533 | ||
diff --git a/linden/indra/newview/llpreviewscript.cpp b/linden/indra/newview/llpreviewscript.cpp index 1e9def3..6273011 100644 --- a/linden/indra/newview/llpreviewscript.cpp +++ b/linden/indra/newview/llpreviewscript.cpp | |||
@@ -436,6 +436,14 @@ void LLScriptEdCore::initMenu() | |||
436 | menuItem->setMenuCallback(onBtnHelp, this); | 436 | menuItem->setMenuCallback(onBtnHelp, this); |
437 | menuItem->setEnabledCallback(NULL); | 437 | menuItem->setEnabledCallback(NULL); |
438 | 438 | ||
439 | menuItem = getChild<LLMenuItemCallGL>("Load from Disk"); | ||
440 | menuItem->setMenuCallback(onBtnLoadFromDisc, this); | ||
441 | menuItem->setEnabledCallback(NULL); | ||
442 | |||
443 | menuItem = getChild<LLMenuItemCallGL>("Save to Disk"); | ||
444 | menuItem->setMenuCallback(onBtnSaveToDisc, this); | ||
445 | menuItem->setEnabledCallback(NULL); | ||
446 | |||
439 | menuItem = getChild<LLMenuItemCallGL>("LSL Wiki Help..."); | 447 | menuItem = getChild<LLMenuItemCallGL>("LSL Wiki Help..."); |
440 | menuItem->setMenuCallback(onBtnDynamicHelp, this); | 448 | menuItem->setMenuCallback(onBtnDynamicHelp, this); |
441 | menuItem->setEnabledCallback(NULL); | 449 | menuItem->setEnabledCallback(NULL); |
@@ -547,6 +555,7 @@ void LLScriptEdCore::setHelpPage(const std::string& help_string) | |||
547 | if (!history_combo) return; | 555 | if (!history_combo) return; |
548 | 556 | ||
549 | LLUIString url_string = gSavedSettings.getString("LSLHelpURL"); | 557 | LLUIString url_string = gSavedSettings.getString("LSLHelpURL"); |
558 | url_string.setArg("[APP_DIRECTORY]", gDirUtilp->getWorkingDir()); | ||
550 | url_string.setArg("[LSL_STRING]", help_string); | 559 | url_string.setArg("[LSL_STRING]", help_string); |
551 | 560 | ||
552 | addHelpItemToHistory(help_string); | 561 | addHelpItemToHistory(help_string); |
@@ -773,6 +782,7 @@ void LLScriptEdCore::onHelpComboCommit(LLUICtrl* ctrl, void* userdata) | |||
773 | 782 | ||
774 | LLWebBrowserCtrl* web_browser = live_help_floater->getChild<LLWebBrowserCtrl>("lsl_guide_html"); | 783 | LLWebBrowserCtrl* web_browser = live_help_floater->getChild<LLWebBrowserCtrl>("lsl_guide_html"); |
775 | LLUIString url_string = gSavedSettings.getString("LSLHelpURL"); | 784 | LLUIString url_string = gSavedSettings.getString("LSLHelpURL"); |
785 | url_string.setArg("[APP_DIRECTORY]", gDirUtilp->getWorkingDir()); | ||
776 | url_string.setArg("[LSL_STRING]", help_string); | 786 | url_string.setArg("[LSL_STRING]", help_string); |
777 | web_browser->navigateTo(url_string); | 787 | web_browser->navigateTo(url_string); |
778 | } | 788 | } |
@@ -823,6 +833,60 @@ void LLScriptEdCore::onBtnUndoChanges( void* userdata ) | |||
823 | } | 833 | } |
824 | } | 834 | } |
825 | 835 | ||
836 | void LLScriptEdCore::onBtnSaveToDisc( void* userdata ) | ||
837 | { | ||
838 | |||
839 | LLViewerStats::getInstance()->incStat( LLViewerStats::ST_LSL_SAVE_COUNT ); | ||
840 | |||
841 | LLScriptEdCore* self = (LLScriptEdCore*) userdata; | ||
842 | |||
843 | if( self->mSaveCallback ) | ||
844 | { | ||
845 | LLFilePicker& file_picker = LLFilePicker::instance(); | ||
846 | if( !file_picker.getSaveFile( LLFilePicker::FFSAVE_TEXT ) ) | ||
847 | { | ||
848 | return; | ||
849 | } | ||
850 | |||
851 | std::string filename = file_picker.getFirstFile(); | ||
852 | std::string scriptText=self->mEditor->getText(); | ||
853 | std::ofstream fout(filename.c_str()); | ||
854 | fout<<(scriptText); | ||
855 | fout.close(); | ||
856 | self->mSaveCallback( self->mUserdata, FALSE ); | ||
857 | |||
858 | } | ||
859 | |||
860 | } | ||
861 | void LLScriptEdCore::onBtnLoadFromDisc( void* data ) | ||
862 | { | ||
863 | |||
864 | LLScriptEdCore* self = (LLScriptEdCore*) data; | ||
865 | |||
866 | LLFilePicker& file_picker = LLFilePicker::instance(); | ||
867 | if( !file_picker.getOpenFile( LLFilePicker::FFLOAD_TEXT ) ) | ||
868 | { | ||
869 | return; | ||
870 | } | ||
871 | |||
872 | std::string filename = file_picker.getFirstFile(); | ||
873 | |||
874 | std::ifstream fin(filename.c_str()); | ||
875 | |||
876 | std::string line; | ||
877 | std::string linetotal; | ||
878 | self->mEditor->clear(); | ||
879 | while (!fin.eof()) | ||
880 | { | ||
881 | getline(fin,line); | ||
882 | line=line+"\n"; | ||
883 | self->mEditor->insertText(line); | ||
884 | |||
885 | } | ||
886 | fin.close(); | ||
887 | |||
888 | } | ||
889 | |||
826 | void LLScriptEdCore::onSearchMenu(void* userdata) | 890 | void LLScriptEdCore::onSearchMenu(void* userdata) |
827 | { | 891 | { |
828 | LLScriptEdCore* sec = (LLScriptEdCore*)userdata; | 892 | LLScriptEdCore* sec = (LLScriptEdCore*)userdata; |
diff --git a/linden/indra/newview/llpreviewscript.h b/linden/indra/newview/llpreviewscript.h index 7026482..97e721d 100644 --- a/linden/indra/newview/llpreviewscript.h +++ b/linden/indra/newview/llpreviewscript.h | |||
@@ -95,6 +95,8 @@ public: | |||
95 | static void doSave( void* userdata, BOOL close_after_save ); | 95 | static void doSave( void* userdata, BOOL close_after_save ); |
96 | static void onBtnSave(void*); | 96 | static void onBtnSave(void*); |
97 | static void onBtnUndoChanges(void*); | 97 | static void onBtnUndoChanges(void*); |
98 | static void onBtnSaveToDisc(void*); | ||
99 | static void onBtnLoadFromDisc(void*); | ||
98 | static void onSearchMenu(void* userdata); | 100 | static void onSearchMenu(void* userdata); |
99 | 101 | ||
100 | static void onUndoMenu(void* userdata); | 102 | static void onUndoMenu(void* userdata); |
diff --git a/linden/indra/newview/llwearable.cpp b/linden/indra/newview/llwearable.cpp index 6bdc50f..884cda5 100644 --- a/linden/indra/newview/llwearable.cpp +++ b/linden/indra/newview/llwearable.cpp | |||
@@ -150,41 +150,87 @@ EWearableType LLWearable::typeNameToType( const std::string& type_name ) | |||
150 | return WT_INVALID; | 150 | return WT_INVALID; |
151 | } | 151 | } |
152 | 152 | ||
153 | 153 | const char* terse_F32_to_string( F32 f, char s[MAX_STRING] ) /* Flawfinder: ignore */ | |
154 | std::string terse_F32_to_string( F32 f ) | ||
155 | { | 154 | { |
156 | std::string r = llformat( "%.2f", f ); | 155 | char* r = s; |
156 | S32 len = snprintf( s, MAX_STRING, "%.2f", f ); /* Flawfinder: ignore */ | ||
157 | 157 | ||
158 | // "1.20" -> "1.2" | 158 | // "1.20" -> "1.2" |
159 | // "24.00" -> "24." | 159 | // "24.00" -> "24." |
160 | S32 len = r.length(); | 160 | while( '0' == r[len - 1] ) |
161 | while( len > 0 && '0' == r[len - 1] ) | ||
162 | { | 161 | { |
163 | r.erase(len-1, 1); | 162 | len--; |
164 | len--; | 163 | r[len] = '\0'; |
165 | } | 164 | } |
166 | 165 | ||
167 | if( '.' == r[len - 1] ) | 166 | if( '.' == r[len - 1] ) |
168 | { | 167 | { |
169 | // "24." -> "24" | 168 | // "24." -> "24" |
170 | r.erase(len-1, 1); | 169 | len--; |
170 | r[len] = '\0'; | ||
171 | } | 171 | } |
172 | else | 172 | else |
173 | if( ('-' == r[0]) && ('0' == r[1]) ) | 173 | if( ('-' == r[0]) && ('0' == r[1]) ) |
174 | { | 174 | { |
175 | // "-0.59" -> "-.59" | 175 | // "-0.59" -> "-.59" |
176 | r.erase(1, 1); | 176 | r++; |
177 | r[0] = '-'; | ||
177 | } | 178 | } |
178 | else | 179 | else |
179 | if( '0' == r[0] ) | 180 | if( '0' == r[0] ) |
180 | { | 181 | { |
181 | // "0.59" -> ".59" | 182 | // "0.59" -> ".59" |
182 | r.erase(0, 1); | 183 | r++; |
183 | } | 184 | } |
184 | 185 | ||
185 | return r; | 186 | return r; |
186 | } | 187 | } |
187 | 188 | ||
189 | // reX: new function | ||
190 | BOOL LLWearable::FileExportParams( FILE* file ) | ||
191 | { | ||
192 | // wearable type | ||
193 | S32 type = (S32)mType; | ||
194 | fprintf( file, "type %d\n", type ); | ||
195 | |||
196 | // parameters | ||
197 | S32 num_parameters = mVisualParamMap.size(); | ||
198 | fprintf( file, "parameters %d\n", num_parameters ); | ||
199 | |||
200 | char s[ MAX_STRING ]; /* Flawfinder: ignore */ | ||
201 | for (param_map_t::iterator iter = mVisualParamMap.begin(); | ||
202 | iter != mVisualParamMap.end(); ++iter) | ||
203 | { | ||
204 | S32 param_id = iter->first; | ||
205 | F32 param_weight = iter->second; | ||
206 | fprintf( file, "%d %s\n", param_id, terse_F32_to_string( param_weight, s ) ); | ||
207 | } | ||
208 | |||
209 | return TRUE; | ||
210 | } | ||
211 | |||
212 | // reX: new function | ||
213 | BOOL LLWearable::FileExportTextures( FILE* file ) | ||
214 | { | ||
215 | // wearable type | ||
216 | S32 type = (S32)mType; | ||
217 | fprintf( file, "type %d\n", type ); | ||
218 | |||
219 | // texture entries | ||
220 | S32 num_textures = mTEMap.size(); | ||
221 | fprintf( file, "textures %d\n", num_textures ); | ||
222 | |||
223 | for (te_map_t::iterator iter = mTEMap.begin(); | ||
224 | iter != mTEMap.end(); ++iter) | ||
225 | { | ||
226 | S32 te = iter->first; | ||
227 | LLUUID& image_id = iter->second; | ||
228 | fprintf( file, "%d %s\n", te, image_id.asString().c_str() ); | ||
229 | } | ||
230 | |||
231 | return TRUE; | ||
232 | } | ||
233 | |||
188 | BOOL LLWearable::exportFile( LLFILE* file ) | 234 | BOOL LLWearable::exportFile( LLFILE* file ) |
189 | { | 235 | { |
190 | // header and version | 236 | // header and version |
@@ -231,12 +277,13 @@ BOOL LLWearable::exportFile( LLFILE* file ) | |||
231 | return FALSE; | 277 | return FALSE; |
232 | } | 278 | } |
233 | 279 | ||
280 | char s[ MAX_STRING ]; /* Flawfinder: ignore */ | ||
234 | for (param_map_t::iterator iter = mVisualParamMap.begin(); | 281 | for (param_map_t::iterator iter = mVisualParamMap.begin(); |
235 | iter != mVisualParamMap.end(); ++iter) | 282 | iter != mVisualParamMap.end(); ++iter) |
236 | { | 283 | { |
237 | S32 param_id = iter->first; | 284 | S32 param_id = iter->first; |
238 | F32 param_weight = iter->second; | 285 | F32 param_weight = iter->second; |
239 | if( fprintf( file, "%d %s\n", param_id, terse_F32_to_string( param_weight ).c_str() ) < 0 ) | 286 | if( fprintf( file, "%d %s\n", param_id, terse_F32_to_string( param_weight, s ) ) < 0 ) |
240 | { | 287 | { |
241 | return FALSE; | 288 | return FALSE; |
242 | } | 289 | } |
diff --git a/linden/indra/newview/llwearable.h b/linden/indra/newview/llwearable.h index ea16d20..9986e85 100644 --- a/linden/indra/newview/llwearable.h +++ b/linden/indra/newview/llwearable.h | |||
@@ -60,6 +60,10 @@ public: | |||
60 | 60 | ||
61 | BOOL exportFile(LLFILE* file); | 61 | BOOL exportFile(LLFILE* file); |
62 | BOOL importFile(LLFILE* file); | 62 | BOOL importFile(LLFILE* file); |
63 | // reX: new function | ||
64 | BOOL FileExportParams(FILE* file); | ||
65 | // reX: new function | ||
66 | BOOL FileExportTextures(FILE* file); | ||
63 | 67 | ||
64 | EWearableType getType() const { return mType; } | 68 | EWearableType getType() const { return mType; } |
65 | void setType( EWearableType type ) { mType = type; } | 69 | void setType( EWearableType type ) { mType = type; } |
diff --git a/linden/indra/newview/llwindlightremotectrl.cpp b/linden/indra/newview/llwindlightremotectrl.cpp index ae9a90a..f805763 100644 --- a/linden/indra/newview/llwindlightremotectrl.cpp +++ b/linden/indra/newview/llwindlightremotectrl.cpp | |||
@@ -35,6 +35,7 @@ | |||
35 | #include "llbutton.h" | 35 | #include "llbutton.h" |
36 | #include "llcombobox.h" | 36 | #include "llcombobox.h" |
37 | #include "llfloaterenvsettings.h" | 37 | #include "llfloaterenvsettings.h" |
38 | #include "llfloaterwater.h" | ||
38 | #include "llfloaterwindlight.h" | 39 | #include "llfloaterwindlight.h" |
39 | #include "lloverlaybar.h" | 40 | #include "lloverlaybar.h" |
40 | #include "lluictrlfactory.h" | 41 | #include "lluictrlfactory.h" |
@@ -154,6 +155,11 @@ void LLWindlightRemoteCtrl::refreshPresets() | |||
154 | 155 | ||
155 | // insert separator and add World menu options | 156 | // insert separator and add World menu options |
156 | mPresetsCombo->addSeparator(ADD_BOTTOM); | 157 | mPresetsCombo->addSeparator(ADD_BOTTOM); |
158 | mPresetsCombo->addSimpleElement(getString("atmosphere"), ADD_BOTTOM); | ||
159 | mPresetsCombo->addSimpleElement(getString("lighting"), ADD_BOTTOM); | ||
160 | mPresetsCombo->addSimpleElement(getString("clouds"), ADD_BOTTOM); | ||
161 | mPresetsCombo->addSimpleElement(getString("advanced_water"), ADD_BOTTOM); | ||
162 | mPresetsCombo->addSeparator(ADD_BOTTOM); | ||
157 | mPresetsCombo->addSimpleElement(getString("sunrise"), ADD_BOTTOM); | 163 | mPresetsCombo->addSimpleElement(getString("sunrise"), ADD_BOTTOM); |
158 | mPresetsCombo->addSimpleElement(getString("noon"), ADD_BOTTOM); | 164 | mPresetsCombo->addSimpleElement(getString("noon"), ADD_BOTTOM); |
159 | mPresetsCombo->addSimpleElement(getString("sunset"), ADD_BOTTOM); | 165 | mPresetsCombo->addSimpleElement(getString("sunset"), ADD_BOTTOM); |
@@ -191,7 +197,35 @@ void LLWindlightRemoteCtrl::onCommitPreset(LLUICtrl* ctrl, void* data) | |||
191 | // check for World menu options; if none, apply preset | 197 | // check for World menu options; if none, apply preset |
192 | std::string selected = self->mPresetsCombo->getSelectedValue().asString(); | 198 | std::string selected = self->mPresetsCombo->getSelectedValue().asString(); |
193 | 199 | ||
194 | if (selected == self->getString("sunrise")) | 200 | if (selected == self->getString("atmosphere")) |
201 | { | ||
202 | if (!LLFloaterWindLight::instance()->getVisible()) | ||
203 | { | ||
204 | LLFloaterWindLight::show(); | ||
205 | } | ||
206 | LLFloaterWindLight::instance()->selectTab("Atmosphere"); | ||
207 | } | ||
208 | else if (selected == self->getString("lighting")) | ||
209 | { | ||
210 | if (!LLFloaterWindLight::instance()->getVisible()) | ||
211 | { | ||
212 | LLFloaterWindLight::show(); | ||
213 | } | ||
214 | LLFloaterWindLight::instance()->selectTab("Lighting"); | ||
215 | } | ||
216 | else if (selected == self->getString("clouds")) | ||
217 | { | ||
218 | if (!LLFloaterWindLight::instance()->getVisible()) | ||
219 | { | ||
220 | LLFloaterWindLight::show(); | ||
221 | } | ||
222 | LLFloaterWindLight::instance()->selectTab("Clouds"); | ||
223 | } | ||
224 | else if (selected == self->getString("advanced_water")) | ||
225 | { | ||
226 | LLFloaterWater::show(); | ||
227 | } | ||
228 | else if (selected == self->getString("sunrise")) | ||
195 | { | 229 | { |
196 | // set the value, turn off animation | 230 | // set the value, turn off animation |
197 | LLWLParamManager::instance()->mAnimator.setDayTime(0.25); | 231 | LLWLParamManager::instance()->mAnimator.setDayTime(0.25); |
diff --git a/linden/indra/newview/pipeline.cpp b/linden/indra/newview/pipeline.cpp index 67af961..efb5ff6 100644 --- a/linden/indra/newview/pipeline.cpp +++ b/linden/indra/newview/pipeline.cpp | |||
@@ -3596,6 +3596,11 @@ void LLPipeline::enableLightsAvatar() | |||
3596 | 3596 | ||
3597 | void LLPipeline::enableLightsAvatarEdit(const LLColor4& color) | 3597 | void LLPipeline::enableLightsAvatarEdit(const LLColor4& color) |
3598 | { | 3598 | { |
3599 | if (mLightingDetail < 1) | ||
3600 | { | ||
3601 | return; | ||
3602 | } | ||
3603 | |||
3599 | U32 mask = 0x2002; // Avatar backlight only, set ambient | 3604 | U32 mask = 0x2002; // Avatar backlight only, set ambient |
3600 | setupAvatarLights(TRUE); | 3605 | setupAvatarLights(TRUE); |
3601 | enableLights(mask); | 3606 | enableLights(mask); |
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 edfe62c..24683f0 100644 --- a/linden/indra/newview/skins/default/xui/en-us/alerts.xml +++ b/linden/indra/newview/skins/default/xui/en-us/alerts.xml | |||
@@ -5222,6 +5222,15 @@ WARNING: Don't restore if you aren't sure where the object will go! | |||
5222 | </option> | 5222 | </option> |
5223 | </alert> | 5223 | </alert> |
5224 | 5224 | ||
5225 | <alert modal="true" name="IMLogNotFound"> | ||
5226 | <message name="message"> | ||
5227 | IM history could not be found for [NAME]. | ||
5228 | </message> | ||
5229 | <option name="OK"> | ||
5230 | OK | ||
5231 | </option> | ||
5232 | </alert> | ||
5233 | |||
5225 | <!-- [RLVa:KB] --> | 5234 | <!-- [RLVa:KB] --> |
5226 | <alert modal="true" name="FirstRLVGiveToRLV"> | 5235 | <alert modal="true" name="FirstRLVGiveToRLV"> |
5227 | <message name="message"> | 5236 | <message name="message"> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_customize.xml b/linden/indra/newview/skins/default/xui/en-us/floater_customize.xml index e7a7a7b..527ec4e 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_customize.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_customize.xml | |||
@@ -1057,14 +1057,34 @@ scratch and wear it. | |||
1057 | </tab_container> | 1057 | </tab_container> |
1058 | <scroll_container bottom="-476" follows="left|top|right|bottom" height="382" left="197" | 1058 | <scroll_container bottom="-476" follows="left|top|right|bottom" height="382" left="197" |
1059 | mouse_opaque="false" name="panel_container" opaque="false" width="292" /> | 1059 | mouse_opaque="false" name="panel_container" opaque="false" width="292" /> |
1060 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
1061 | bottom="-400" drop_shadow_visible="true" follows="left|top" | ||
1062 | font="SansSerif" h_pad="0" halign="left" height="16" | ||
1063 | left="8" mouse_opaque="true" name="AvatarHeightText" v_pad="0" width="140"> | ||
1064 | Avatar Height: | ||
1065 | </text> | ||
1066 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
1067 | bottom_delta="-18" drop_shadow_visible="true" follows="left|top" | ||
1068 | font="SansSerif" h_pad="0" halign="left" height="16" | ||
1069 | left="8" mouse_opaque="true" name="HeightText" v_pad="0" width="140"> | ||
1070 | Avatar Height | ||
1071 | </text> | ||
1072 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
1073 | bottom_delta="-18" drop_shadow_visible="true" follows="left|top" | ||
1074 | font="SansSerif" h_pad="0" halign="left" height="16" | ||
1075 | left="8" mouse_opaque="true" name="HeightText2" v_pad="0" width="140"> | ||
1076 | Avatar Height2 | ||
1077 | </text> | ||
1060 | <button bottom="-536" follows="right|bottom" font="SansSerif" halign="center" | 1078 | <button bottom="-536" follows="right|bottom" font="SansSerif" halign="center" |
1061 | height="20" label="Close" label_selected="Close" mouse_opaque="true" | 1079 | height="20" label="Close" label_selected="Close" mouse_opaque="true" |
1062 | name="Close" right="-10" scale_image="true" width="100" /> | 1080 | name="Close" right="-10" scale_image="true" width="80" /> |
1063 | <button bottom="-536" follows="right|bottom" font="SansSerif" halign="center" | 1081 | <button bottom="-536" follows="right|bottom" font="SansSerif" halign="center" |
1064 | height="20" label="Save All" label_selected="Save All" mouse_opaque="true" | 1082 | height="20" label="Save All" label_selected="Save All" mouse_opaque="true" |
1065 | name="Save All" right="-116" scale_image="true" width="100" /> | 1083 | name="Save All" right="-100" scale_image="true" width="80" /> |
1066 | <button bottom="-536" follows="right|bottom" font="SansSerif" halign="center" | 1084 | <button bottom="-536" follows="right|bottom" font="SansSerif" halign="center" |
1067 | height="20" label="Make Outfit" label_selected="Make Outfit" | 1085 | height="20" label="Make Outfit" label_selected="Make Outfit" |
1068 | mouse_opaque="true" name="Make Outfit" right="-222" scale_image="true" | 1086 | mouse_opaque="true" name="Make Outfit" right="-190" scale_image="true" |
1069 | width="100" /> | 1087 | width="80" /> |
1088 | <button bottom="-536" follows="right|bottom" font="SansSerif" halign="center" height="20" hidden="false" label="Export" label_selected="Export" right="-280" mouse_opaque="true" name="Export" scale_image="true" width="80" /> | ||
1089 | <button bottom="-536" follows="right|bottom" font="SansSerif" halign="center" height="20" hidden="false" label="Import" label_selected="Import" right="-370" mouse_opaque="true" name="Import" scale_image="true" width="80" /> | ||
1070 | </floater> | 1090 | </floater> |
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 9a60f57..b947fad 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,8 @@ | |||
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 | <button bottom="-40" follows="left|top" halign="center" height="20" label="History" left_delta="105" | ||
50 | name="history_btn" visible="true" width="85" /> | ||
49 | <text bottom_delta="0" left="-240" height="14" width="230" name="inventory_send" halign="right" | 51 | <text bottom_delta="0" left="-240" height="14" width="230" name="inventory_send" halign="right" |
50 | text_color="LabelTextColor" follows="right|top" drop_shadow_visible="true" | 52 | text_color="LabelTextColor" follows="right|top" drop_shadow_visible="true" |
51 | bg_visible="false" border_drop_shadow_visible="false" border_visible="false"> | 53 | bg_visible="false" border_drop_shadow_visible="false" border_visible="false"> |
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 1156e9d..2e97d64 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 | |||
@@ -54,6 +54,8 @@ | |||
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" |
56 | visible="false" width="92" /> | 56 | visible="false" width="92" /> |
57 | <button bottom="-20" follows="left|top" halign="center" height="20" label="History" left_delta="97" | ||
58 | name="history_btn" visible="true" width="85" /> | ||
57 | <button bottom_delta="0" follows="right|top" height="20" label="< <" | 59 | <button bottom_delta="0" follows="right|top" height="20" label="< <" |
58 | label_selected="> >" left="143" name="toggle_active_speakers_btn" | 60 | label_selected="> >" left="143" name="toggle_active_speakers_btn" |
59 | right="176" | 61 | right="176" |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_inventory.xml b/linden/indra/newview/skins/default/xui/en-us/floater_inventory.xml index f0c97f2..103a11e 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_inventory.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_inventory.xml | |||
@@ -206,7 +206,7 @@ | |||
206 | </menu_item_check> | 206 | </menu_item_check> |
207 | </menu> | 207 | </menu> |
208 | <menu bottom_delta="64" drop_shadow="true" height="49" | 208 | <menu bottom_delta="64" drop_shadow="true" height="49" |
209 | label="Search" left="0" mouse_opaque="false" name="Sort" opaque="true" | 209 | label="Search" left="0" mouse_opaque="false" name="Search" opaque="true" |
210 | tear_off="true" width="118"> | 210 | tear_off="true" width="118"> |
211 | <menu_item_check bottom_delta="-18" control_name="Inventory.SearchByName" height="18" | 211 | <menu_item_check bottom_delta="-18" control_name="Inventory.SearchByName" height="18" |
212 | label="By Name" left="0" mouse_opaque="true" name="By Name" width="118"> | 212 | label="By Name" left="0" mouse_opaque="true" name="By Name" width="118"> |
@@ -216,6 +216,10 @@ | |||
216 | label="By Creator" left="0" mouse_opaque="true" name="By Creator" width="118"> | 216 | label="By Creator" left="0" mouse_opaque="true" name="By Creator" width="118"> |
217 | <on_click filter="" function="Inventory.SetSearchBy" userdata="creator" /> | 217 | <on_click filter="" function="Inventory.SetSearchBy" userdata="creator" /> |
218 | </menu_item_check> | 218 | </menu_item_check> |
219 | <menu_item_check bottom_delta="-18" control_name="Inventory.SearchByDesc" height="18" | ||
220 | label="By Description" left="0" mouse_opaque="true" name="By Description" width="118"> | ||
221 | <on_click filter="" function="Inventory.SetSearchBy" userdata="desc" /> | ||
222 | </menu_item_check> | ||
219 | <menu_item_separator bottom_delta="-8" height="8" left="0" mouse_opaque="true" name="separator" | 223 | <menu_item_separator bottom_delta="-8" height="8" left="0" mouse_opaque="true" name="separator" |
220 | width="118" /> | 224 | width="118" /> |
221 | <menu_item_check bottom_delta="-18" control_name="Inventory.SearchByAll" height="18" | 225 | <menu_item_check bottom_delta="-18" control_name="Inventory.SearchByAll" height="18" |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_new_outfit_dialog.xml b/linden/indra/newview/skins/default/xui/en-us/floater_new_outfit_dialog.xml index 568f155..27a08c1 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_new_outfit_dialog.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_new_outfit_dialog.xml | |||
@@ -225,6 +225,12 @@ now wearing into it. | |||
225 | width="489"> | 225 | width="489"> |
226 | Items to include in outfit: | 226 | Items to include in outfit: |
227 | </text> | 227 | </text> |
228 | <button bottom_delta="0" enabled="true" font="SansSerif" halign="center" height="20" | ||
229 | label="Check All" left_delta="200" mouse_opaque="true" | ||
230 | name="Check All" scale_image="true" width="90" /> | ||
231 | <button bottom_delta="0" enabled="true" font="SansSerif" halign="center" height="20" | ||
232 | label="Uncheck All" left_delta="100" mouse_opaque="true" | ||
233 | name="Uncheck All" scale_image="true" width="90" /> | ||
228 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 234 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
229 | bottom="-196" drop_shadow_visible="true" enabled="true" follows="left|top" | 235 | bottom="-196" drop_shadow_visible="true" enabled="true" follows="left|top" |
230 | font="SansSerifSmall" h_pad="0" halign="left" height="14" left="13" | 236 | font="SansSerifSmall" h_pad="0" halign="left" height="14" left="13" |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_postcard.xml b/linden/indra/newview/skins/default/xui/en-us/floater_postcard.xml index 631db0d..9cf7b5f 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_postcard.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_postcard.xml | |||
@@ -43,7 +43,7 @@ | |||
43 | <button bottom_delta="0" follows="right|bottom" height="20" label="Send" | 43 | <button bottom_delta="0" follows="right|bottom" height="20" label="Send" |
44 | left_delta="-106" name="send_btn" width="100" /> | 44 | left_delta="-106" name="send_btn" width="100" /> |
45 | <string name="default_subject"> | 45 | <string name="default_subject"> |
46 | Postcard from Second Life. | 46 | Postcard from a virtual world. |
47 | </string> | 47 | </string> |
48 | <string name="default_message"> | 48 | <string name="default_message"> |
49 | Check this out! | 49 | Check this out! |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_script_ed_panel.xml b/linden/indra/newview/skins/default/xui/en-us/floater_script_ed_panel.xml index b83a6df..653c75b 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_script_ed_panel.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_script_ed_panel.xml | |||
@@ -35,6 +35,12 @@ | |||
35 | width="138" /> | 35 | width="138" /> |
36 | <menu_item_call bottom_delta="-58" height="20" label="Revert All Changes" left="0" | 36 | <menu_item_call bottom_delta="-58" height="20" label="Revert All Changes" left="0" |
37 | mouse_opaque="true" name="Revert All Changes" width="138" /> | 37 | mouse_opaque="true" name="Revert All Changes" width="138" /> |
38 | <menu_item_separator bottom_delta="-66" height="8" left="0" mouse_opaque="true" name="separator" | ||
39 | width="138" /> | ||
40 | <menu_item_call bottom_delta="-76" height="20" label="Save to Disk" left="0" | ||
41 | mouse_opaque="true" name="Save to Disk" width="138" /> | ||
42 | <menu_item_call bottom_delta="-96" height="20" label="Load from Disk" left="0" | ||
43 | mouse_opaque="true" name="Load from Disk" width="138" /> | ||
38 | </menu> | 44 | </menu> |
39 | <menu bottom="665" drop_shadow="true" enabled="true" height="198" | 45 | <menu bottom="665" drop_shadow="true" enabled="true" height="198" |
40 | left="222" mouse_opaque="false" name="Edit" opaque="true" tear_off="false" | 46 | left="222" mouse_opaque="false" name="Edit" opaque="true" tear_off="false" |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_water.xml b/linden/indra/newview/skins/default/xui/en-us/floater_water.xml index 9dcb96e..7038c93 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_water.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_water.xml | |||
@@ -11,17 +11,23 @@ | |||
11 | width="110"> | 11 | width="110"> |
12 | Water Presets: | 12 | Water Presets: |
13 | </text> | 13 | </text> |
14 | <combo_box allow_text_entry="false" bottom="-50" follows="left|top" height="18" | 14 | <combo_box allow_text_entry="false" bottom="-52" follows="left|top" height="18" |
15 | left_delta="110" max_chars="20" mouse_opaque="true" | 15 | left_delta="120" max_chars="20" mouse_opaque="true" |
16 | name="WaterPresetsCombo" width="150" /> | 16 | name="WaterPresetsCombo" width="150" /> |
17 | <button bottom="-53" enabled="true" font="SansSerif" halign="center" height="20" | ||
18 | label="" label_selected="" left_delta="-25" image_overlay="arrow_left.tga" | ||
19 | mouse_opaque="true" name="prev" scale_image="true" width="20" /> | ||
20 | <button bottom="-53" enabled="true" font="SansSerif" halign="center" height="20" | ||
21 | label="" label_selected="" left_delta="180" image_overlay="arrow_right.tga" | ||
22 | mouse_opaque="true" name="next" scale_image="true" width="20" /> | ||
17 | <button bottom="-53" enabled="true" font="SansSerif" halign="center" height="20" | 23 | <button bottom="-53" enabled="true" font="SansSerif" halign="center" height="20" |
18 | label="New" label_selected="New" left_delta="170" | 24 | label="New" label_selected="New" left_delta="40" |
19 | mouse_opaque="true" name="WaterNewPreset" scale_image="true" width="70" /> | 25 | mouse_opaque="true" name="WaterNewPreset" scale_image="true" width="70" /> |
20 | <button bottom_delta="0" enabled="true" font="SansSerif" halign="center" height="20" | 26 | <button bottom_delta="0" enabled="true" font="SansSerif" halign="center" height="20" |
21 | label="Save" label_selected="Save" left_delta="80" | 27 | label="Save" label_selected="Save" left_delta="70" |
22 | mouse_opaque="true" name="WaterSavePreset" scale_image="true" width="70" /> | 28 | mouse_opaque="true" name="WaterSavePreset" scale_image="true" width="70" /> |
23 | <button bottom_delta="0" enabled="true" font="SansSerif" halign="center" height="20" | 29 | <button bottom_delta="0" enabled="true" font="SansSerif" halign="center" height="20" |
24 | label="Delete" label_selected="Delete" left_delta="80" | 30 | label="Delete" label_selected="Delete" left_delta="70" |
25 | mouse_opaque="true" name="WaterDeletePreset" scale_image="true" width="70" /> | 31 | mouse_opaque="true" name="WaterDeletePreset" scale_image="true" width="70" /> |
26 | <tab_container bottom="-240" follows="left|top" height="180" left="0" | 32 | <tab_container bottom="-240" follows="left|top" height="180" left="0" |
27 | mouse_opaque="false" name="Water Tabs" tab_position="top" width="700"> | 33 | mouse_opaque="false" name="Water Tabs" tab_position="top" width="700"> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_windlight_remote.xml b/linden/indra/newview/skins/default/xui/en-us/panel_windlight_remote.xml index ead9ad7..8be72fc 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_windlight_remote.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_windlight_remote.xml | |||
@@ -4,6 +4,18 @@ | |||
4 | name="windlight_remote" use_bounding_rect="true" width="182"> | 4 | name="windlight_remote" use_bounding_rect="true" width="182"> |
5 | <panel bottom="1" filename="panel_bg_tab.xml" name="panel_bg_tab" height="22" left="0" width="182" /> | 5 | <panel bottom="1" filename="panel_bg_tab.xml" name="panel_bg_tab" height="22" left="0" width="182" /> |
6 | <panel bottom="3" filename="panel_windlight_controls.xml" name="panel_windlight_controls" height="20" left="0" width="182" /> | 6 | <panel bottom="3" filename="panel_windlight_controls.xml" name="panel_windlight_controls" height="20" left="0" width="182" /> |
7 | <string name="atmosphere"> | ||
8 | Atmosphere | ||
9 | </string> | ||
10 | <string name="lighting"> | ||
11 | Lighting | ||
12 | </string> | ||
13 | <string name="clouds"> | ||
14 | Clouds | ||
15 | </string> | ||
16 | <string name="advanced_water"> | ||
17 | Advanced Water | ||
18 | </string> | ||
7 | <string name="sunrise"> | 19 | <string name="sunrise"> |
8 | Sunrise | 20 | Sunrise |
9 | </string> | 21 | </string> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_windlight_remote_expanded.xml b/linden/indra/newview/skins/default/xui/en-us/panel_windlight_remote_expanded.xml index e7182fa..4cb49a3 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_windlight_remote_expanded.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_windlight_remote_expanded.xml | |||
@@ -1,13 +1,19 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <panel bg_visible="false" border="false" border_visible="false" bottom="0" | 2 | <panel bg_visible="false" border="false" border_visible="false" bottom="0" |
3 | follows="right|bottom" height="47" left="0" mouse_opaque="true" | 3 | follows="right|bottom" height="67" left="0" mouse_opaque="true" |
4 | name="windlight_remote" use_bounding_rect="true" width="182"> | 4 | name="windlight_remote" use_bounding_rect="true" width="182"> |
5 | <panel bottom="1" filename="panel_bg_tab.xml" name="panel_bg_tab" height="47" left="0" width="182" /> | 5 | <panel bottom="1" filename="panel_bg_tab.xml" name="panel_bg_tab" height="67" left="0" width="182" /> |
6 | <slider bottom="-20" can_edit_text="false" control_name="RenderFarClip" | 6 | <slider bottom="-20" can_edit_text="false" control_name="RenderFarClip" |
7 | decimal_digits="0" enabled="true" height="18" | 7 | decimal_digits="0" enabled="true" height="18" |
8 | increment="8" initial_val="160" label="Draw Distance:" | 8 | increment="8" initial_val="160" label="Draw Distance:" |
9 | label_width="78" left="6" max_val="512" min_val="32" mouse_opaque="true" | 9 | label_width="78" left="6" max_val="512" min_val="32" mouse_opaque="true" |
10 | name="DrawDistance" show_text="true" width="170" /> | 10 | name="DrawDistance" show_text="true" width="170" /> |
11 | <slider bottom_delta="-20" can_edit_text="false" control_name="RenderMaxPartCount" | ||
12 | decimal_digits="0" enabled="true" follows="left|top" height="18" | ||
13 | increment="256" initial_val="4096" | ||
14 | label="Max. Particles:" label_width="78" left_delta="0" | ||
15 | max_val="8192" min_val="0" mouse_opaque="true" name="MaxParticleCount" | ||
16 | show_text="true" width="176" /> | ||
11 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 17 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
12 | bottom="-14" drop_shadow_visible="true" enabled="true" follows="left|top" | 18 | bottom="-14" drop_shadow_visible="true" enabled="true" follows="left|top" |
13 | font="SansSerifSmall" h_pad="0" halign="left" height="12" | 19 | font="SansSerifSmall" h_pad="0" halign="left" height="12" |
@@ -16,6 +22,18 @@ | |||
16 | m | 22 | m |
17 | </text> | 23 | </text> |
18 | <panel bottom="13" filename="panel_windlight_controls.xml" left="0" width="182" /> | 24 | <panel bottom="13" filename="panel_windlight_controls.xml" left="0" width="182" /> |
25 | <string name="atmosphere"> | ||
26 | Atmosphere | ||
27 | </string> | ||
28 | <string name="lighting"> | ||
29 | Lighting | ||
30 | </string> | ||
31 | <string name="clouds"> | ||
32 | Clouds | ||
33 | </string> | ||
34 | <string name="advanced_water"> | ||
35 | Advanced Water | ||
36 | </string> | ||
19 | <string name="sunrise"> | 37 | <string name="sunrise"> |
20 | Sunrise | 38 | Sunrise |
21 | </string> | 39 | </string> |
diff --git a/linden/indra/newview/skins/silver/xui/en-us/floater_script_ed_panel.xml b/linden/indra/newview/skins/silver/xui/en-us/floater_script_ed_panel.xml deleted file mode 100644 index 12ae6dc..0000000 --- a/linden/indra/newview/skins/silver/xui/en-us/floater_script_ed_panel.xml +++ /dev/null | |||
@@ -1,86 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <panel bottom="-550" enabled="true" follows="left|top|right|bottom" height="508" | ||
3 | left="0" mouse_opaque="true" name="script panel" width="500"> | ||
4 | <text_editor type="string" length="1" bottom="-393" | ||
5 | embedded_items="false" enabled="true" follows="left|top|right|bottom" | ||
6 | font="Monospace" height="376" ignore_tab="false" left="4" | ||
7 | max_length="65536" mouse_opaque="true" name="Script Editor" width="492" | ||
8 | word_wrap="true" show_line_numbers="true"> | ||
9 | Loading... | ||
10 | </text_editor> | ||
11 | <button bottom="-499" enabled="true" follows="right|bottom" font="SansSerif" | ||
12 | halign="center" height="20" label="Save" label_selected="Save" left="360" | ||
13 | mouse_opaque="true" name="Save_btn" width="128" /> | ||
14 | <scroll_list background_visible="true" bottom="-457" column_padding="5" draw_border="true" | ||
15 | draw_heading="false" draw_stripes="true" enabled="true" | ||
16 | follows="left|right|bottom" height="60" left="4" mouse_opaque="true" | ||
17 | multi_select="false" name="lsl errors" width="492" /> | ||
18 | <combo_box allow_text_entry="false" bottom="-499" enabled="true" follows="left|bottom" | ||
19 | height="20" label="Insert..." left="12" max_chars="20" mouse_opaque="true" | ||
20 | name="Insert..." width="128" /> | ||
21 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
22 | bottom="-473" drop_shadow_visible="true" enabled="true" | ||
23 | follows="left|bottom" font="SansSerifSmall" h_pad="0" halign="left" | ||
24 | height="12" left="12" mouse_opaque="true" name="line_col" v_pad="0" | ||
25 | width="128" /> | ||
26 | <menu_bar bottom="-15" drop_shadow="false" enabled="true" follows="left|top|right" | ||
27 | height="18" left="8" mouse_opaque="false" name="script_menu" opaque="false" | ||
28 | tear_off="false" width="476"> | ||
29 | <menu bottom="0" drop_shadow="true" enabled="true" height="62" | ||
30 | left="0" mouse_opaque="false" name="File" opaque="true" tear_off="false" | ||
31 | width="138"> | ||
32 | <menu_item_call bottom_delta="-30" height="20" label="Save" left="0" mouse_opaque="true" | ||
33 | name="Save" width="138" /> | ||
34 | <menu_item_separator bottom_delta="-38" height="8" left="0" mouse_opaque="true" name="separator" | ||
35 | width="138" /> | ||
36 | <menu_item_call bottom_delta="-58" height="20" label="Revert All Changes" left="0" | ||
37 | mouse_opaque="true" name="Revert All Changes" width="138" /> | ||
38 | </menu> | ||
39 | <menu bottom="665" drop_shadow="true" enabled="true" height="198" | ||
40 | left="222" mouse_opaque="false" name="Edit" opaque="true" tear_off="false" | ||
41 | width="139"> | ||
42 | <menu_item_call bottom_delta="-30" enabled="false" height="20" label="Undo" left="0" | ||
43 | mouse_opaque="true" name="Undo" width="139" /> | ||
44 | <menu_item_call bottom_delta="-50" enabled="false" height="20" label="Redo" left="0" | ||
45 | mouse_opaque="true" name="Redo" width="139" /> | ||
46 | <menu_item_separator bottom_delta="-58" enabled="true" height="8" label="-----------" left="0" | ||
47 | mouse_opaque="true" name="separator" width="139" /> | ||
48 | <menu_item_call bottom_delta="-78" enabled="false" height="20" label="Cut" left="0" | ||
49 | mouse_opaque="true" name="Cut" width="139" /> | ||
50 | <menu_item_call bottom_delta="-98" enabled="false" height="20" label="Copy" left="0" | ||
51 | mouse_opaque="true" name="Copy" width="139" /> | ||
52 | <menu_item_call bottom_delta="-118" enabled="false" height="20" label="Paste" left="0" | ||
53 | mouse_opaque="true" name="Paste" width="139" /> | ||
54 | <menu_item_separator bottom_delta="-126" enabled="true" height="8" label="-----------" left="0" | ||
55 | mouse_opaque="true" name="separator2" width="139" /> | ||
56 | <menu_item_call bottom_delta="-146" enabled="true" height="20" label="Select All" left="0" | ||
57 | mouse_opaque="true" name="Select All" width="139" /> | ||
58 | <menu_item_call bottom_delta="-166" enabled="false" height="20" label="Deselect" left="0" | ||
59 | mouse_opaque="true" name="Deselect" width="139" /> | ||
60 | <menu_item_separator bottom_delta="-174" enabled="true" height="8" label="-----------" left="0" | ||
61 | mouse_opaque="true" name="separator3" width="139" /> | ||
62 | <menu_item_call bottom_delta="-194" enabled="true" height="20" label="Search / Replace..." | ||
63 | left="0" mouse_opaque="true" name="Search / Replace..." width="139" /> | ||
64 | </menu> | ||
65 | <menu bottom="-18" drop_shadow="true" enabled="true" height="34" | ||
66 | left="0" mouse_opaque="false" name="Help" opaque="true" tear_off="false" | ||
67 | width="112"> | ||
68 | <menu_item_call bottom="-30" enabled="true" height="20" label="Help..." left="0" | ||
69 | mouse_opaque="true" name="Help..." width="112" /> | ||
70 | <menu_item_call bottom="-30" enabled="true" height="20" label="LSL Wiki Help..." left="0" | ||
71 | mouse_opaque="true" name="LSL Wiki Help..." width="112" /> | ||
72 | </menu> | ||
73 | </menu_bar> | ||
74 | <string name="loading"> | ||
75 | Loading... | ||
76 | </string> | ||
77 | <string name="can_not_view"> | ||
78 | You are not allowed to view this script. | ||
79 | </string> | ||
80 | <string name="public_objects_can_not_run"> | ||
81 | Public Objects cannot run scripts | ||
82 | </string> | ||
83 | <string name="script_running"> | ||
84 | Running | ||
85 | </string> | ||
86 | </panel> | ||
diff --git a/linden/indra/newview/skins/silver/xui/en-us/floater_script_queue.xml b/linden/indra/newview/skins/silver/xui/en-us/floater_script_queue.xml deleted file mode 100644 index c44457c..0000000 --- a/linden/indra/newview/skins/silver/xui/en-us/floater_script_queue.xml +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | ||
2 | <floater bottom="-763" can_close="true" can_drag_on_left="false" can_minimize="true" | ||
3 | can_resize="true" enabled="true" height="400" left="408" min_height="100" | ||
4 | min_width="100" mouse_opaque="true" name="queue" title="Reset Progress" | ||
5 | width="300"> | ||
6 | <button bottom="-392" enabled="true" follows="right|bottom" font="SansSerif" | ||
7 | halign="center" height="24" label="Close" label_selected="Close" left="220" | ||
8 | mouse_opaque="true" name="close" width="64" /> | ||
9 | <scroll_list background_visible="true" bottom="-364" column_padding="5" draw_border="true" | ||
10 | draw_heading="false" draw_stripes="true" enabled="true" | ||
11 | follows="left|top|right|bottom" height="344" left="4" mouse_opaque="true" | ||
12 | multi_select="false" name="queue output" width="292" /> | ||
13 | </floater> | ||