From ef0057909fcf7eaee6bdff4a58492fd17ffdd9a4 Mon Sep 17 00:00:00 2001 From: "Nyx (Neal Orman)" Date: Wed, 11 May 2011 12:19:36 -0400 Subject: SH-1522 FIX removed old debugging code that generated avatar_lad_log.txt Old debugging code, should be very low risk to remove. --- indra/newview/llvoavatar.cpp | 12 ------------ 1 file changed, 12 deletions(-) (limited to 'indra') diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 4767ba2bed..68637a7ed9 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -5414,18 +5414,6 @@ BOOL LLVOAvatar::loadAvatar() } } - // Uncomment to enable avatar_lad.xml debugging. - std::ofstream file; - file.open("avatar_lad.log"); - for( LLViewerVisualParam* param = (LLViewerVisualParam*) getFirstVisualParam(); - param; - param = (LLViewerVisualParam*) getNextVisualParam() ) - { - param->getInfo()->toStream(file); - file << std::endl; - } - - file.close(); return TRUE; } -- cgit v1.2.3 From b28492fbffd7bea9e7174260d66d5f52c76d24b2 Mon Sep 17 00:00:00 2001 From: Ima Mechanique Date: Thu, 17 Nov 2011 23:17:26 +0000 Subject: STORM-1708 Adding ability to save/load scripts from file. --- indra/newview/llfilepicker.cpp | 15 +++++ indra/newview/llfilepicker.h | 2 + indra/newview/llfloaternamedesc.cpp | 21 ++++++ indra/newview/llfloaternamedesc.h | 10 ++- indra/newview/llpreviewscript.cpp | 78 +++++++++++++++++++--- indra/newview/llpreviewscript.h | 2 + indra/newview/llviewerfloaterreg.cpp | 3 +- indra/newview/llviewermenufile.cpp | 22 ++++++ indra/newview/skins/default/xui/en/menu_viewer.xml | 15 ++++- .../skins/default/xui/en/panel_script_ed.xml | 22 ++++-- 10 files changed, 173 insertions(+), 17 deletions(-) (limited to 'indra') diff --git a/indra/newview/llfilepicker.cpp b/indra/newview/llfilepicker.cpp index 4897cf1885..0801871409 100644 --- a/indra/newview/llfilepicker.cpp +++ b/indra/newview/llfilepicker.cpp @@ -58,6 +58,7 @@ LLFilePicker LLFilePicker::sInstance; #define SLOBJECT_FILTER L"Objects (*.slobject)\0*.slobject\0" #define RAW_FILTER L"RAW files (*.raw)\0*.raw\0" #define MODEL_FILTER L"Model files (*.dae)\0*.dae\0" +#define SCRIPT_FILTER L"Script files (*.lsl; *.txt)\0*.lsl;*.txt\0" #endif // @@ -213,6 +214,10 @@ BOOL LLFilePicker::setupFilter(ELoadFilter filter) mOFN.lpstrFilter = MODEL_FILTER \ L"\0"; break; + case FFLOAD_SCRIPT: + mOFN.lpstrFilter = SCRIPT_FILTER \ + L"\0"; + break; default: res = FALSE; break; @@ -497,6 +502,16 @@ BOOL LLFilePicker::getSaveFile(ESaveFilter filter, const std::string& filename) L"Compressed Images (*.j2c)\0*.j2c\0" \ L"\0"; break; + case FFSAVE_SCRIPT: + if (filename.empty()) + { + wcsncpy( mFilesW,L"untitled.lsl", FILENAME_BUFFER_SIZE); + } + mOFN.lpstrDefExt = L"txt"; + mOFN.lpstrFilter = + L"LSL Files (*.lsl; *.txt)\0*.lsl;*.txt\0" + L"\0"; + break; default: return FALSE; } diff --git a/indra/newview/llfilepicker.h b/indra/newview/llfilepicker.h index cd843a8f33..a4d5d68ff5 100644 --- a/indra/newview/llfilepicker.h +++ b/indra/newview/llfilepicker.h @@ -84,6 +84,7 @@ public: FFLOAD_RAW = 8, FFLOAD_MODEL = 9, FFLOAD_COLLADA = 10, + FFLOAD_SCRIPT = 11, }; enum ESaveFilter @@ -103,6 +104,7 @@ public: FFSAVE_J2C = 12, FFSAVE_PNG = 13, FFSAVE_JPEG = 14, + FFSAVE_SCRIPT = 15, }; // open the dialog. This is a modal operation diff --git a/indra/newview/llfloaternamedesc.cpp b/indra/newview/llfloaternamedesc.cpp index ae95d4392a..4d4f9f57bf 100644 --- a/indra/newview/llfloaternamedesc.cpp +++ b/indra/newview/llfloaternamedesc.cpp @@ -204,3 +204,24 @@ BOOL LLFloaterSoundPreview::postBuild() getChild("ok_btn")->setCommitCallback(boost::bind(&LLFloaterNameDesc::onBtnOK, this)); return TRUE; } + + +//----------------------------------------------------------------------------- +// LLFloaterScriptPreview() +//----------------------------------------------------------------------------- + +LLFloaterScriptPreview::LLFloaterScriptPreview(const LLSD& filename ) + : LLFloaterNameDesc(filename) +{ + mIsAudio = TRUE; +} + +BOOL LLFloaterScriptPreview::postBuild() +{ + if (!LLFloaterNameDesc::postBuild()) + { + return FALSE; + } + getChild("ok_btn")->setCommitCallback(boost::bind(&LLFloaterNameDesc::onBtnOK, this)); + return TRUE; +} diff --git a/indra/newview/llfloaternamedesc.h b/indra/newview/llfloaternamedesc.h index 7381a6334a..69bbccaf80 100644 --- a/indra/newview/llfloaternamedesc.h +++ b/indra/newview/llfloaternamedesc.h @@ -51,6 +51,7 @@ protected: protected: BOOL mIsAudio; + bool mIsText; std::string mFilenameAndPath; std::string mFilename; @@ -62,5 +63,12 @@ public: LLFloaterSoundPreview(const LLSD& filename ); virtual BOOL postBuild(); }; - + +class LLFloaterScriptPreview : public LLFloaterNameDesc +{ +public: + LLFloaterScriptPreview(const LLSD& filename ); + virtual BOOL postBuild(); +}; + #endif // LL_LLFLOATERNAMEDESC_H diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp index b19bf5d234..072df39514 100644 --- a/indra/newview/llpreviewscript.cpp +++ b/indra/newview/llpreviewscript.cpp @@ -35,6 +35,7 @@ #include "llcombobox.h" #include "lldir.h" #include "llexternaleditor.h" +#include "llfilepicker.h" #include "llfloaterreg.h" #include "llinventorydefines.h" #include "llinventorymodel.h" @@ -89,15 +90,15 @@ const std::string HELLO_LSL = "default\n" "{\n" - " state_entry()\n" - " {\n" - " llSay(0, \"Hello, Avatar!\");\n" - " }\n" + "\tstate_entry()\n" + "\t{\n" + "\t\tllOwnerSay(\"Hello, Avatar!\");\n" + "\t}\n" "\n" - " touch_start(integer total_number)\n" - " {\n" - " llSay(0, \"Touched.\");\n" - " }\n" + "\ttouch_start(integer total_number)\n" + "\t{\n" + "\t\tllSay(llDetectedKey(0), \"Touched.\");\n" + "\t}\n" "}\n"; const std::string HELP_LSL_PORTAL_TOPIC = "LSL_Portal"; @@ -503,6 +504,14 @@ void LLScriptEdCore::initMenu() menuItem = getChild("Keyword Help..."); menuItem->setClickCallback(boost::bind(&LLScriptEdCore::onBtnDynamicHelp, this)); + + menuItem = getChild("LoadFromFile"); + menuItem->setClickCallback(boost::bind(&LLScriptEdCore::onBtnLoadFromFile, this)); +// menuItem->setEnabledCallback(NULL); + + menuItem = getChild("SaveToFile"); + menuItem->setClickCallback(boost::bind(&LLScriptEdCore::onBtnSaveToFile, this)); + menuItem->setEnableCallback(boost::bind(&LLScriptEdCore::hasChanged, this)); } void LLScriptEdCore::setScriptText(const std::string& text, BOOL is_valid) @@ -1096,6 +1105,59 @@ BOOL LLScriptEdCore::handleKeyHere(KEY key, MASK mask) return FALSE; } +void LLScriptEdCore::onBtnLoadFromFile( void* data ) +{ + + LLScriptEdCore* self = (LLScriptEdCore*) data; + + LLFilePicker& file_picker = LLFilePicker::instance(); + if( !file_picker.getOpenFile( LLFilePicker::FFLOAD_SCRIPT ) ) + { + return; + } + + std::string filename = file_picker.getFirstFile(); + + std::ifstream fin(filename.c_str()); + + std::string line; + std::string linetotal; + self->mEditor->clear(); + while (!fin.eof()) + { + getline(fin,line); + line=line+"\n"; + self->mEditor->insertText(line); + + } + fin.close(); +} + +void LLScriptEdCore::onBtnSaveToFile( void* userdata ) +{ + + LLViewerStats::getInstance()->incStat( LLViewerStats::ST_LSL_SAVE_COUNT ); + + LLScriptEdCore* self = (LLScriptEdCore*) userdata; + + if( self->mSaveCallback ) + { + LLFilePicker& file_picker = LLFilePicker::instance(); + if( !file_picker.getSaveFile( LLFilePicker::FFSAVE_SCRIPT ) ) + { + return; + } + + std::string filename = file_picker.getFirstFile(); + std::string scriptText=self->mEditor->getText(); + std::ofstream fout(filename.c_str()); + fout<<(scriptText); + fout.close(); + self->mSaveCallback( self->mUserdata, FALSE ); + } +} + + /// --------------------------------------------------------------------------- /// LLScriptEdContainer /// --------------------------------------------------------------------------- diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h index f86be615c4..f50e9322b0 100644 --- a/indra/newview/llpreviewscript.h +++ b/indra/newview/llpreviewscript.h @@ -98,6 +98,8 @@ public: static void onClickForward(void* userdata); static void onBtnInsertSample(void*); static void onBtnInsertFunction(LLUICtrl*, void*); + static void onBtnLoadFromFile(void*); + static void onBtnSaveToFile(void*); virtual bool hasAccelerators() const { return true; } diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index 273bf822bc..56c79f5b9f 100644 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -292,9 +292,10 @@ void LLViewerFloaterReg::registerFloaters() LLFloaterUIPreviewUtil::registerFloater(); LLFloaterReg::add("upload_anim", "floater_animation_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build, "upload"); LLFloaterReg::add("upload_image", "floater_image_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build, "upload"); - LLFloaterReg::add("upload_sound", "floater_sound_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build, "upload"); LLFloaterReg::add("upload_model", "floater_model_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build, "upload"); LLFloaterReg::add("upload_model_wizard", "floater_model_wizard.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); + LLFloaterReg::add("upload_script", "floater_script_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build, "upload"); + LLFloaterReg::add("upload_sound", "floater_sound_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build, "upload"); LLFloaterReg::add("voice_controls", "floater_voice_controls.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); LLFloaterReg::add("voice_effect", "floater_voice_effect.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp index 7e830e14bf..f23d0f6b72 100644 --- a/indra/newview/llviewermenufile.cpp +++ b/indra/newview/llviewermenufile.cpp @@ -87,6 +87,14 @@ class LLFileEnableUpload : public view_listener_t } }; +class LLFileEnableUploadScript : public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + return true; + } +}; + class LLFileEnableUploadModel : public view_listener_t { bool handleEvent(const LLSD& userdata) @@ -391,6 +399,20 @@ class LLFileUploadAnim : public view_listener_t } }; +class LLFileUploadScript : public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + const std::string filename = upload_pick((void*)LLFilePicker::FFLOAD_SCRIPT); + if (!filename.empty()) + { + LLFloaterReg::showInstance("upload_script", LLSD(filename)); + } + + return true; + } +}; + class LLFileUploadBulk : public view_listener_t { bool handleEvent(const LLSD& userdata) diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 263d961be1..b9605e1ede 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -1101,7 +1101,20 @@ - + + + + + diff --git a/indra/newview/skins/default/xui/en/panel_script_ed.xml b/indra/newview/skins/default/xui/en/panel_script_ed.xml index 8d42024386..f6a8af0973 100644 --- a/indra/newview/skins/default/xui/en/panel_script_ed.xml +++ b/indra/newview/skins/default/xui/en/panel_script_ed.xml @@ -54,12 +54,22 @@ label="Save" layout="topleft" name="Save" /> - - + + + + + Date: Fri, 18 Nov 2011 21:18:13 +0000 Subject: Reverting changes to Build => Upload menu. This change was mistakenly included from a follow on project that is incomplete. --- indra/newview/skins/default/xui/en/menu_viewer.xml | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index b9605e1ede..263d961be1 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -1101,20 +1101,7 @@ - - - - - - -- cgit v1.2.3 From c1745ca4aa4b7d8eb113978eb850ca791dcf2255 Mon Sep 17 00:00:00 2001 From: Ima Mechanique Date: Fri, 18 Nov 2011 21:55:40 +0000 Subject: Fixes .lsl not being appended if no extension is provided. --- indra/newview/llfloaternamedesc.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/llfloaternamedesc.cpp b/indra/newview/llfloaternamedesc.cpp index 4d4f9f57bf..66f0fc3cd7 100644 --- a/indra/newview/llfloaternamedesc.cpp +++ b/indra/newview/llfloaternamedesc.cpp @@ -213,7 +213,7 @@ BOOL LLFloaterSoundPreview::postBuild() LLFloaterScriptPreview::LLFloaterScriptPreview(const LLSD& filename ) : LLFloaterNameDesc(filename) { - mIsAudio = TRUE; + mIsText = TRUE; } BOOL LLFloaterScriptPreview::postBuild() -- cgit v1.2.3 From e875e0548b69d1cf141e3970a81aa3f0a5ff7ed3 Mon Sep 17 00:00:00 2001 From: Ima Mechanique Date: Fri, 18 Nov 2011 22:56:31 +0000 Subject: Removing code associated with Build => Upload => Script previously reverted. --- indra/newview/llviewermenufile.cpp | 22 ---------------------- 1 file changed, 22 deletions(-) (limited to 'indra') diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp index f23d0f6b72..7e830e14bf 100644 --- a/indra/newview/llviewermenufile.cpp +++ b/indra/newview/llviewermenufile.cpp @@ -87,14 +87,6 @@ class LLFileEnableUpload : public view_listener_t } }; -class LLFileEnableUploadScript : public view_listener_t -{ - bool handleEvent(const LLSD& userdata) - { - return true; - } -}; - class LLFileEnableUploadModel : public view_listener_t { bool handleEvent(const LLSD& userdata) @@ -399,20 +391,6 @@ class LLFileUploadAnim : public view_listener_t } }; -class LLFileUploadScript : public view_listener_t -{ - bool handleEvent(const LLSD& userdata) - { - const std::string filename = upload_pick((void*)LLFilePicker::FFLOAD_SCRIPT); - if (!filename.empty()) - { - LLFloaterReg::showInstance("upload_script", LLSD(filename)); - } - - return true; - } -}; - class LLFileUploadBulk : public view_listener_t { bool handleEvent(const LLSD& userdata) -- cgit v1.2.3 From eeefec394c932b79a22c5ea2b8aa03690bb6061e Mon Sep 17 00:00:00 2001 From: Ima Mechanique Date: Wed, 23 Nov 2011 01:30:15 +0000 Subject: Changes to filter out tabs from file load and to test if loading/saving should be allowed. --- indra/llui/lltexteditor.cpp | 26 ++++++++++++++++++ indra/llui/lltexteditor.h | 5 ++++ indra/newview/llfilepicker.cpp | 12 +-------- indra/newview/llpreviewscript.cpp | 56 +++++++++++++++++++++++++++++++++------ indra/newview/llpreviewscript.h | 4 +++ 5 files changed, 84 insertions(+), 19 deletions(-) (limited to 'indra') diff --git a/indra/llui/lltexteditor.cpp b/indra/llui/lltexteditor.cpp index 9bd445988d..3a23ce1cac 100644 --- a/indra/llui/lltexteditor.cpp +++ b/indra/llui/lltexteditor.cpp @@ -2250,6 +2250,22 @@ void LLTextEditor::insertText(const std::string &new_text) setEnabled( enabled ); } +void LLTextEditor::insertText(LLWString &new_text) +{ + BOOL enabled = getEnabled(); + setEnabled( TRUE ); + + // Delete any selected characters (the insertion replaces them) + if( hasSelection() ) + { + deleteSelection(TRUE); + } + + setCursorPos(mCursorPos + insert( mCursorPos, new_text, FALSE, LLTextSegmentPtr() )); + + setEnabled( enabled ); +} + void LLTextEditor::appendWidget(const LLInlineViewSegment::Params& params, const std::string& text, bool allow_undo) { // Save old state @@ -2838,3 +2854,13 @@ void LLTextEditor::clear() getViewModel()->setDisplay(LLWStringUtil::null); clearSegments(); } + +bool LLTextEditor::canLoadOrSaveToFile() +{ + return !mReadOnly; +} + +S32 LLTextEditor::spacesPerTab() +{ + return SPACES_PER_TAB; +} diff --git a/indra/llui/lltexteditor.h b/indra/llui/lltexteditor.h index 9e4b95003b..40821ae9fb 100644 --- a/indra/llui/lltexteditor.h +++ b/indra/llui/lltexteditor.h @@ -92,6 +92,8 @@ public: void setParseHighlights(BOOL parsing) {mParseHighlights=parsing;} + static S32 spacesPerTab(); + // mousehandler overrides virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask); virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask); @@ -140,6 +142,8 @@ public: virtual void selectAll(); virtual BOOL canSelectAll() const; + virtual bool canLoadOrSaveToFile(); + void selectNext(const std::string& search_text_in, BOOL case_insensitive, BOOL wrap = TRUE); BOOL replaceText(const std::string& search_text, const std::string& replace_text, BOOL case_insensitive, BOOL wrap = TRUE); void replaceTextAll(const std::string& search_text, const std::string& replace_text, BOOL case_insensitive); @@ -158,6 +162,7 @@ public: // inserts text at cursor void insertText(const std::string &text); + void insertText(LLWString &text); void appendWidget(const LLInlineViewSegment::Params& params, const std::string& text, bool allow_undo); // Non-undoable diff --git a/indra/newview/llfilepicker.cpp b/indra/newview/llfilepicker.cpp index 0801871409..3cbc4e5648 100644 --- a/indra/newview/llfilepicker.cpp +++ b/indra/newview/llfilepicker.cpp @@ -58,7 +58,7 @@ LLFilePicker LLFilePicker::sInstance; #define SLOBJECT_FILTER L"Objects (*.slobject)\0*.slobject\0" #define RAW_FILTER L"RAW files (*.raw)\0*.raw\0" #define MODEL_FILTER L"Model files (*.dae)\0*.dae\0" -#define SCRIPT_FILTER L"Script files (*.lsl; *.txt)\0*.lsl;*.txt\0" +#define SCRIPT_FILTER L"Script files (*.lsl)\0*.lsl\0" #endif // @@ -502,16 +502,6 @@ BOOL LLFilePicker::getSaveFile(ESaveFilter filter, const std::string& filename) L"Compressed Images (*.j2c)\0*.j2c\0" \ L"\0"; break; - case FFSAVE_SCRIPT: - if (filename.empty()) - { - wcsncpy( mFilesW,L"untitled.lsl", FILENAME_BUFFER_SIZE); - } - mOFN.lpstrDefExt = L"txt"; - mOFN.lpstrFilter = - L"LSL Files (*.lsl; *.txt)\0*.lsl;*.txt\0" - L"\0"; - break; default: return FALSE; } diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp index 072df39514..16b582d188 100644 --- a/indra/newview/llpreviewscript.cpp +++ b/indra/newview/llpreviewscript.cpp @@ -507,11 +507,11 @@ void LLScriptEdCore::initMenu() menuItem = getChild("LoadFromFile"); menuItem->setClickCallback(boost::bind(&LLScriptEdCore::onBtnLoadFromFile, this)); -// menuItem->setEnabledCallback(NULL); + menuItem->setEnableCallback(boost::bind(&LLScriptEdCore::enableLoadFromFileMenu, this)); menuItem = getChild("SaveToFile"); menuItem->setClickCallback(boost::bind(&LLScriptEdCore::onBtnSaveToFile, this)); - menuItem->setEnableCallback(boost::bind(&LLScriptEdCore::hasChanged, this)); + menuItem->setEnableCallback(boost::bind(&LLScriptEdCore::enableSaveToFileMenu, this)); } void LLScriptEdCore::setScriptText(const std::string& text, BOOL is_valid) @@ -1107,9 +1107,17 @@ BOOL LLScriptEdCore::handleKeyHere(KEY key, MASK mask) void LLScriptEdCore::onBtnLoadFromFile( void* data ) { - LLScriptEdCore* self = (LLScriptEdCore*) data; - +/* + if( self->isDirty()) + { + llwarns << "Script has unsaved changes, loading from disc aborted." << llendl; + LLStringBase::format_map_t args; + args["[REASON]"] = std::string("Existing script has unsaved changes. You must save this script before loading from disc."); + gViewerWindow->alertXml("LoadDiskScriptFailReason", args); + return; + } +*/ LLFilePicker& file_picker = LLFilePicker::instance(); if( !file_picker.getOpenFile( LLFilePicker::FFLOAD_SCRIPT ) ) { @@ -1121,16 +1129,27 @@ void LLScriptEdCore::onBtnLoadFromFile( void* data ) std::ifstream fin(filename.c_str()); std::string line; + std::string text; std::string linetotal; - self->mEditor->clear(); while (!fin.eof()) { getline(fin,line); - line=line+"\n"; - self->mEditor->insertText(line); - + text += line; + if (!fin.eof()) + { + text += "\n"; + } } fin.close(); + + // Only replace the script if there is something to replace with. + if (text.length() > 0) + { + self->mEditor->selectAll(); + LLWString script(utf8str_to_wstring(text)); + LLWStringUtil::replaceTabsWithSpaces(script, self->mEditor->spacesPerTab()); + self->mEditor->insertText(script); + } } void LLScriptEdCore::onBtnSaveToFile( void* userdata ) @@ -1157,6 +1176,27 @@ void LLScriptEdCore::onBtnSaveToFile( void* userdata ) } } +bool LLScriptEdCore::canLoadOrSaveToFile( void* userdata ) +{ + LLScriptEdCore* self = (LLScriptEdCore*) userdata; + return self->mEditor->canLoadOrSaveToFile(); +} + +// static +bool LLScriptEdCore::enableSaveToFileMenu(void* userdata) +{ + LLScriptEdCore* self = (LLScriptEdCore*)userdata; + if (!self || !self->mEditor) return FALSE; + return self->mEditor->canLoadOrSaveToFile(); +} + +// static +bool LLScriptEdCore::enableLoadFromFileMenu(void* userdata) +{ + LLScriptEdCore* self = (LLScriptEdCore*)userdata; + if (!self || !self->mEditor) return FALSE; + return self->mEditor->canLoadOrSaveToFile(); +} /// --------------------------------------------------------------------------- /// LLScriptEdContainer diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h index f50e9322b0..7563cecd9d 100644 --- a/indra/newview/llpreviewscript.h +++ b/indra/newview/llpreviewscript.h @@ -79,6 +79,7 @@ public: /*virtual*/ BOOL postBuild(); BOOL canClose(); void setEnableEditing(bool enable); + bool canLoadOrSaveToFile( void* userdata ); void setScriptText(const std::string& text, BOOL is_valid); bool loadScriptText(const std::string& filename); @@ -101,6 +102,9 @@ public: static void onBtnLoadFromFile(void*); static void onBtnSaveToFile(void*); + static bool enableSaveToFileMenu(void* userdata); + static bool enableLoadFromFileMenu(void* userdata); + virtual bool hasAccelerators() const { return true; } private: -- cgit v1.2.3 From 413cd15f070c6c0406026c96e0b70698120366ef Mon Sep 17 00:00:00 2001 From: Ima Mechanique Date: Thu, 24 Nov 2011 12:48:17 +0000 Subject: Fixed accidental change to HELLO_WORLD script. --- indra/newview/llpreviewscript.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'indra') diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp index 16b582d188..0a429269ba 100644 --- a/indra/newview/llpreviewscript.cpp +++ b/indra/newview/llpreviewscript.cpp @@ -90,15 +90,15 @@ const std::string HELLO_LSL = "default\n" "{\n" - "\tstate_entry()\n" - "\t{\n" - "\t\tllOwnerSay(\"Hello, Avatar!\");\n" - "\t}\n" + " state_entry()\n" + " {\n" + " llOwnerSay(\"Hello, Avatar!\");\n" + " }\n" "\n" - "\ttouch_start(integer total_number)\n" - "\t{\n" - "\t\tllSay(llDetectedKey(0), \"Touched.\");\n" - "\t}\n" + " touch_start(integer total_number)\n" + " {\n" + " llSay(llDetectedKey(0), \"Touched.\");\n" + " }\n" "}\n"; const std::string HELP_LSL_PORTAL_TOPIC = "LSL_Portal"; -- cgit v1.2.3 From 5535722ea5c2f64a25ca569c930e969f2e989af9 Mon Sep 17 00:00:00 2001 From: Ima Mechanique Date: Thu, 1 Dec 2011 12:31:56 +0000 Subject: STORM-1708 Linux UI additions --- indra/newview/llfilepicker.cpp | 14 +++++++++++++- indra/newview/skins/default/xui/en/strings.xml | 5 +++-- 2 files changed, 16 insertions(+), 3 deletions(-) (limited to 'indra') diff --git a/indra/newview/llfilepicker.cpp b/indra/newview/llfilepicker.cpp index 3cbc4e5648..d259e02452 100644 --- a/indra/newview/llfilepicker.cpp +++ b/indra/newview/llfilepicker.cpp @@ -1197,7 +1197,12 @@ static std::string add_imageload_filter_to_gtkchooser(GtkWindow *picker) add_common_filters_to_gtkchooser(gfilter, picker, filtername); return filtername; } - + +static std::string add_script_filter_to_gtkchooser(GtkWindow *picker) +{ + return add_simple_mime_filter_to_gtkchooser(picker, "text/plain", + LLTrans::getString("script_files") + " (*.lsl)"); +} BOOL LLFilePicker::getSaveFile( ESaveFilter filter, const std::string& filename ) { @@ -1263,6 +1268,10 @@ BOOL LLFilePicker::getSaveFile( ESaveFilter filter, const std::string& filename LLTrans::getString("compressed_image_files") + " (*.j2c)"); suggest_ext = ".j2c"; break; + case FFSAVE_SCRIPT: + caption += add_script_filter_to_gtkchooser(picker); + suggest_ext = ".lsl"; + break; default:; break; } @@ -1328,6 +1337,9 @@ BOOL LLFilePicker::getOpenFile( ELoadFilter filter, bool blocking ) case FFLOAD_IMAGE: filtername = add_imageload_filter_to_gtkchooser(picker); break; + case FFLOAD_SCRIPT: + filtername = add_script_filter_to_gtkchooser(picker); + break; default:; break; } diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index befcc5dd87..0d26465dfa 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -427,9 +427,10 @@ Please try logging in again in a minute. Compressed Images Load Files Choose Directory + Scripts - - + Sleeps script for [SLEEP_TIME] seconds. -- cgit v1.2.3 From b89c1ac482eeef7a4ab050186a6c425a5167c504 Mon Sep 17 00:00:00 2001 From: Jonathan Yap Date: Tue, 6 Dec 2011 09:53:09 -0500 Subject: STORM-1727 Dates displayed incorrectly in group profile. year "2035" --- indra/newview/llpanelgrouplandmoney.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'indra') diff --git a/indra/newview/llpanelgrouplandmoney.cpp b/indra/newview/llpanelgrouplandmoney.cpp index e66dd5690c..363443646d 100644 --- a/indra/newview/llpanelgrouplandmoney.cpp +++ b/indra/newview/llpanelgrouplandmoney.cpp @@ -1062,7 +1062,7 @@ void LLGroupMoneyDetailsTabEventHandler::processReply(LLMessageSystem* msg, // We don't do time zone corrections of the calculated number of seconds // because we don't have a full time stamp, only a date. - substitution["datetime"] = LLDateUtil::secondsSinceEpochFromString("%A %b %d, %Y", start_date); + substitution["datetime"] = LLDateUtil::secondsSinceEpochFromString("%Y-%m-%d", start_date); LLStringUtil::format (time_str, substitution); if ( interval_days != mImplementationp->mIntervalLength || @@ -1217,7 +1217,7 @@ void LLGroupMoneySalesTabEventHandler::processReply(LLMessageSystem* msg, // We don't do time zone corrections of the calculated number of seconds // because we don't have a full time stamp, only a date. - substitution["datetime"] = LLDateUtil::secondsSinceEpochFromString("%A %b %d, %Y", start_date); + substitution["datetime"] = LLDateUtil::secondsSinceEpochFromString("%Y-%m-%d", start_date); LLStringUtil::format (time_str, substitution); text = time_str + "\n\n"; -- cgit v1.2.3 From a78894285aebe73025445078ebeba45f262e16e4 Mon Sep 17 00:00:00 2001 From: Jonathan Yap Date: Tue, 6 Dec 2011 10:03:26 -0500 Subject: STORM-1725 Truncation of UI element Preferences->General->Busy mode response --- indra/newview/skins/default/xui/en/panel_preferences_general.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/panel_preferences_general.xml b/indra/newview/skins/default/xui/en/panel_preferences_general.xml index 4079a80924..9827180aa7 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_general.xml @@ -420,7 +420,7 @@ follows="left|top" height="29" layout="topleft" - left="50" + left="30" name="busy_response" width="470" word_wrap="true"> -- cgit v1.2.3 From 494005c66e8627ce4a84f49ec3d2b11fb9949f7b Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Wed, 7 Dec 2011 11:49:50 -0800 Subject: toned down spammy error message when slplugin isn't working --- indra/newview/llviewermedia.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index 263d8b4146..b43e002e0a 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -1955,7 +1955,7 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_ } } - LL_WARNS("Plugin") << "plugin intialization failed for mime type: " << media_type << LL_ENDL; + LL_WARNS_ONCE("Plugin") << "plugin intialization failed for mime type: " << media_type << LL_ENDL; LLSD args; args["MIME_TYPE"] = media_type; LLNotificationsUtil::add("NoPlugin", args); -- cgit v1.2.3 From 9890e5cbed50c8388f8159a73c8ce672a61bd576 Mon Sep 17 00:00:00 2001 From: Ima Mechanique Date: Wed, 7 Dec 2011 21:37:08 +0000 Subject: STORM-1708 Darwin UI additions --- indra/newview/llfilepicker.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'indra') diff --git a/indra/newview/llfilepicker.cpp b/indra/newview/llfilepicker.cpp index d259e02452..ceb4060bc2 100644 --- a/indra/newview/llfilepicker.cpp +++ b/indra/newview/llfilepicker.cpp @@ -625,6 +625,14 @@ Boolean LLFilePicker::navOpenFilterProc(AEDesc *theItem, void *info, void *callB result = false; } } + else if (filter == FFLOAD_SCRIPT) + { + if (fileInfo.filetype != 'LSL ' && + (fileInfo.extension && (CFStringCompare(fileInfo.extension, CFSTR("lsl"), kCFCompareCaseInsensitive) != kCFCompareEqualTo)) ) + { + result = false; + } + } if (fileInfo.extension) { @@ -771,6 +779,12 @@ OSStatus LLFilePicker::doNavSaveDialog(ESaveFilter filter, const std::string& fi extension = CFSTR(".j2c"); break; + case FFSAVE_SCRIPT: + type = 'LSL '; + creator = '\?\?\?\?'; + extension = CFSTR(".lsl"); + break; + case FFSAVE_ALL: default: type = '\?\?\?\?'; -- cgit v1.2.3 From 468543c944b073af41a3cf7f6dfe73f097c2eb2d Mon Sep 17 00:00:00 2001 From: Ima Mechanique Date: Thu, 8 Dec 2011 10:33:23 +0000 Subject: Reverting the changes to default script which leaked in from another project ;-) --- indra/newview/llpreviewscript.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'indra') diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp index 0a429269ba..62603a2e07 100644 --- a/indra/newview/llpreviewscript.cpp +++ b/indra/newview/llpreviewscript.cpp @@ -90,15 +90,15 @@ const std::string HELLO_LSL = "default\n" "{\n" - " state_entry()\n" - " {\n" - " llOwnerSay(\"Hello, Avatar!\");\n" - " }\n" + " state_entry()\n" + " {\n" + " llSay(0, \"Hello, Avatar!\");\n" + " }\n" "\n" - " touch_start(integer total_number)\n" - " {\n" - " llSay(llDetectedKey(0), \"Touched.\");\n" - " }\n" + " touch_start(integer total_number)\n" + " {\n" + " llSay(0, \"Touched.\");\n" + " }\n" "}\n"; const std::string HELP_LSL_PORTAL_TOPIC = "LSL_Portal"; -- cgit v1.2.3 From f75708a9c8a549da0f243d47cc02208821dab5ef Mon Sep 17 00:00:00 2001 From: Paul ProductEngine Date: Thu, 8 Dec 2011 18:48:22 +0200 Subject: EXP-1598 FIXED (items from a second inventory window cannot be shared) - Now select proper inventory floater (from all opened inventory floaters) to share items from. --- indra/newview/llinventorypanel.cpp | 27 ++++++++++----------------- indra/newview/llpanelmaininventory.cpp | 9 ++++++++- 2 files changed, 18 insertions(+), 18 deletions(-) (limited to 'indra') diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp index d06374d232..80b53d5702 100644 --- a/indra/newview/llinventorypanel.cpp +++ b/indra/newview/llinventorypanel.cpp @@ -1105,30 +1105,23 @@ LLInventoryPanel* LLInventoryPanel::getActiveInventoryPanel(BOOL auto_open) return FALSE; } - LLSidepanelInventory *sidepanel_inventory = LLFloaterSidePanelContainer::getPanel("inventory"); + LLSidepanelInventory *inventory_panel = LLFloaterSidePanelContainer::getPanel("inventory"); - // A. If the inventory side panel floater is open, use that preferably. - if (is_inventorysp_active()) - { - // Get the floater's z order to compare it to other inventory floaters' order later. - res = sidepanel_inventory->getActivePanel(); - z_min = gFloaterView->getZOrder(floater_inventory); - active_inv_floaterp = floater_inventory; - } - - // B. Iterate through the inventory floaters and return whichever is on top. + // Iterate through the inventory floaters and return whichever is on top. LLFloaterReg::const_instance_list_t& inst_list = LLFloaterReg::getFloaterList("inventory"); for (LLFloaterReg::const_instance_list_t::const_iterator iter = inst_list.begin(); iter != inst_list.end(); ++iter) { - LLFloaterInventory* iv = dynamic_cast(*iter); - if (iv && iv->getVisible()) + LLFloaterSidePanelContainer* inventory_floater = dynamic_cast(*iter); + inventory_panel = inventory_floater->findChild("main_panel"); + + if (inventory_floater && inventory_panel && inventory_floater->getVisible()) { - S32 z_order = gFloaterView->getZOrder(iv); + S32 z_order = gFloaterView->getZOrder(inventory_floater); if (z_order < z_min) { - res = iv->getPanel(); + res = inventory_panel->getActivePanel(); z_min = z_order; - active_inv_floaterp = iv; + active_inv_floaterp = inventory_floater; } } } @@ -1145,7 +1138,7 @@ LLInventoryPanel* LLInventoryPanel::getActiveInventoryPanel(BOOL auto_open) { floater_inventory->openFloater(); - res = sidepanel_inventory->getActivePanel(); + res = inventory_panel->getActivePanel(); } return res; diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp index 9944b51902..68ef13cd68 100644 --- a/indra/newview/llpanelmaininventory.cpp +++ b/indra/newview/llpanelmaininventory.cpp @@ -28,6 +28,7 @@ #include "llpanelmaininventory.h" #include "llagent.h" +#include "llagentcamera.h" #include "llavataractions.h" #include "lldndbutton.h" #include "lleconomy.h" @@ -294,7 +295,13 @@ void LLPanelMainInventory::closeAllFolders() void LLPanelMainInventory::newWindow() { - LLFloaterInventory::showAgentInventory(); + static S32 instance_num = 0; + instance_num = (instance_num + 1) % S32_MAX; + + if (!gAgentCamera.cameraMouselook()) + { + LLFloaterReg::showTypedInstance("inventory", LLSD(instance_num)); + } } void LLPanelMainInventory::doCreate(const LLSD& userdata) -- cgit v1.2.3 From 86847b753befbca31e4aadeff111acd398f9612d Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 8 Dec 2011 15:33:27 -0800 Subject: fix for build error --- indra/llmessage/llsdmessagereader.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/llmessage/llsdmessagereader.cpp b/indra/llmessage/llsdmessagereader.cpp index 3ab62a8c57..3d8ca2ad9f 100644 --- a/indra/llmessage/llsdmessagereader.cpp +++ b/indra/llmessage/llsdmessagereader.cpp @@ -294,7 +294,7 @@ S32 getElementSize(const LLSD& llsd) default: // TypeLLSDTypeEnd, TypeLLSDNumTypes, etc. return 0; } - return 0; + //return 0; } //virtual -- cgit v1.2.3 From 0aa2c7343ac2af195e80c8f52b9ef67da785fa00 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 8 Dec 2011 20:36:47 -0800 Subject: EXP-1512 FIX changing UI size changes cursor position in notecards --- indra/llui/lltextbase.cpp | 31 ++++++++++++++++++++++++++++++- indra/llui/lltextbase.h | 2 ++ 2 files changed, 32 insertions(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index 3b768166f1..1f890b625f 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -598,7 +598,7 @@ S32 LLTextBase::insertStringNoUndo(S32 pos, const LLWString &wstr, LLTextBase::s pos = getEditableIndex(pos, true); - segment_set_t::iterator seg_iter = getSegIterContaining(pos); + segment_set_t::iterator seg_iter = getEditableSegIterContaining(pos); LLTextSegmentPtr default_segment; @@ -1510,8 +1510,37 @@ void LLTextBase::getSegmentAndOffset( S32 startpos, segment_set_t::iterator* seg } } +LLTextBase::segment_set_t::iterator LLTextBase::getEditableSegIterContaining(S32 index) +{ + segment_set_t::iterator it = getSegIterContaining(index); + if (it == mSegments.end()) return it; + + if (!(*it)->canEdit() + && index == (*it)->getStart() + && it != mSegments.begin()) + { + it--; + } + return it; +} + +LLTextBase::segment_set_t::const_iterator LLTextBase::getEditableSegIterContaining(S32 index) const +{ + segment_set_t::const_iterator it = getSegIterContaining(index); + if (it == mSegments.end()) return it; + + if (!(*it)->canEdit() + && index == (*it)->getStart() + && it != mSegments.begin()) + { + it--; + } + return it; +} + LLTextBase::segment_set_t::iterator LLTextBase::getSegIterContaining(S32 index) { + static LLPointer index_segment = new LLIndexSegment(); if (index > getLength()) { return mSegments.end(); } diff --git a/indra/llui/lltextbase.h b/indra/llui/lltextbase.h index b699601908..0549141b72 100644 --- a/indra/llui/lltextbase.h +++ b/indra/llui/lltextbase.h @@ -461,6 +461,8 @@ protected: void getSegmentAndOffset( S32 startpos, segment_set_t::const_iterator* seg_iter, S32* offsetp ) const; void getSegmentAndOffset( S32 startpos, segment_set_t::iterator* seg_iter, S32* offsetp ); LLTextSegmentPtr getSegmentAtLocalPos( S32 x, S32 y, bool hit_past_end_of_line = true); + segment_set_t::iterator getEditableSegIterContaining(S32 index); + segment_set_t::const_iterator getEditableSegIterContaining(S32 index) const; segment_set_t::iterator getSegIterContaining(S32 index); segment_set_t::const_iterator getSegIterContaining(S32 index) const; void clearSegments(); -- cgit v1.2.3 From 6fd96dd2632c8e94cfda926816fb81faf6f574c5 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 8 Dec 2011 20:37:03 -0800 Subject: made undo/redo/paste accept key repeat --- indra/newview/skins/default/xui/en/menu_edit.xml | 3 +++ indra/newview/skins/default/xui/en/menu_viewer.xml | 2 ++ 2 files changed, 5 insertions(+) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/menu_edit.xml b/indra/newview/skins/default/xui/en/menu_edit.xml index fab76c497c..99061e089a 100644 --- a/indra/newview/skins/default/xui/en/menu_edit.xml +++ b/indra/newview/skins/default/xui/en/menu_edit.xml @@ -6,6 +6,7 @@ @@ -15,6 +16,7 @@ @@ -43,6 +45,7 @@ diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 1834be2d48..f23d48f8c5 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -1154,6 +1154,7 @@ enabled="false" label="Undo" name="Undo" + allow_key_repeat="true" shortcut="control|Z"> Date: Fri, 9 Dec 2011 09:51:25 +0000 Subject: General cleanup of new code (removing commented lines, experimetal stuff), adding some comments per RB feedback. --- indra/newview/llpreviewscript.cpp | 15 ++------ indra/newview/skins/default/xui/en/strings.xml | 52 +++++++++++++------------- 2 files changed, 30 insertions(+), 37 deletions(-) (limited to 'indra') diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp index 62603a2e07..cab30b1295 100644 --- a/indra/newview/llpreviewscript.cpp +++ b/indra/newview/llpreviewscript.cpp @@ -1108,19 +1108,12 @@ BOOL LLScriptEdCore::handleKeyHere(KEY key, MASK mask) void LLScriptEdCore::onBtnLoadFromFile( void* data ) { LLScriptEdCore* self = (LLScriptEdCore*) data; -/* - if( self->isDirty()) - { - llwarns << "Script has unsaved changes, loading from disc aborted." << llendl; - LLStringBase::format_map_t args; - args["[REASON]"] = std::string("Existing script has unsaved changes. You must save this script before loading from disc."); - gViewerWindow->alertXml("LoadDiskScriptFailReason", args); - return; - } -*/ + + // TODO Maybe add a dialogue warning here if the current file has unsaved changes. LLFilePicker& file_picker = LLFilePicker::instance(); if( !file_picker.getOpenFile( LLFilePicker::FFLOAD_SCRIPT ) ) { + //File picking cancelled by user, so nothing to do. return; } @@ -1147,7 +1140,6 @@ void LLScriptEdCore::onBtnLoadFromFile( void* data ) { self->mEditor->selectAll(); LLWString script(utf8str_to_wstring(text)); - LLWStringUtil::replaceTabsWithSpaces(script, self->mEditor->spacesPerTab()); self->mEditor->insertText(script); } } @@ -1164,6 +1156,7 @@ void LLScriptEdCore::onBtnSaveToFile( void* userdata ) LLFilePicker& file_picker = LLFilePicker::instance(); if( !file_picker.getSaveFile( LLFilePicker::FFSAVE_SCRIPT ) ) { + //File picking cancelled by user, so nothing to do. return; } diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 0d26465dfa..f962ff0aee 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -88,7 +88,7 @@ We are very sorry for the inconvenience. Logins are currently restricted to employees only. Check www.secondlife.com/status for updates. Second Life logins are temporarily restricted in order to make sure that those in-world have the best possible experience. - + People with free accounts will not be able to access Second Life during this time, to make room for those who have paid for Second Life. Second Life cannot be accessed from this computer. If you feel this is an error, please contact @@ -168,7 +168,7 @@ Please try logging in again in a minute. You are wearing one or more of these objects. Remove them from your avatar and try moving them again. This folder has too many levels of subfolders. Rearrange the interior folders to a maximum of 4 levels deep (Root Folder contains A contains B contains C). This folder contains more than 200 objects. Box some of the items to reduce the object count. - + Click to view this web page Click to view this location's information @@ -188,7 +188,7 @@ Please try logging in again in a minute. Click to view this object's description Click to view this location on a map Click to run the secondlife:// command - + Teleport to @@ -427,7 +427,7 @@ Please try logging in again in a minute. Compressed Images Load Files Choose Directory - Scripts + Scripts Shirt not worn Pants not worn @@ -1988,7 +1988,7 @@ Returns a string with the requested data about the region New [WEARABLE_ITEM] - + Next @@ -2314,7 +2314,7 @@ Returns a string with the requested data about the region Error: script information is only available in your current region Retrieving information... You do not have permission to examine this parcel - + Sitting On Chest Head @@ -2354,7 +2354,7 @@ Returns a string with the requested data about the region HUD Bottom Left HUD Bottom HUD Bottom Right - + Line [LINE], Column [COLUMN] @@ -2367,7 +2367,7 @@ Returns a string with the requested data about the region Content of object - New Script + New Script The Resident you messaged is in 'busy mode' which means they have requested not to be disturbed. Your message will still be shown in their IM panel for later viewing. @@ -2397,7 +2397,7 @@ Returns a string with the requested data about the region Clicks: [TELEPORT] teleport, [MAP] map, [PROFILE] profile (will update after publish) - + You haven't created any Picks or Classifieds. Click the Plus button below to create a Pick or Classified. User has no picks or classifieds @@ -3274,7 +3274,7 @@ If you continue to receive this message, contact the [SUPPORT_SITE]. You have blocked this Resident. Sending a message will automatically unblock them. @@ -3300,7 +3300,7 @@ If you continue to receive this message, contact the [SUPPORT_SITE]. You are not a session moderator. @@ -3313,12 +3313,12 @@ If you continue to receive this message, contact the [SUPPORT_SITE]. Unable to add users to chat session with [RECIPIENT]. Unable to send your message to the chat session with [RECIPIENT]. - + Unable to send your message to the chat session with [RECIPIENT]. @@ -3326,7 +3326,7 @@ If you continue to receive this message, contact the [SUPPORT_SITE]. Error while moderating. @@ -3347,9 +3347,9 @@ If you continue to receive this message, contact the [SUPPORT_SITE]. The session initialization is timed out - + Home position set. - + http://secondlife.com/landing/voicemorphing @@ -3367,20 +3367,20 @@ If you continue to receive this message, contact the [SUPPORT_SITE]. to join a group to upload to publish a classified ad - + Giving L$ [AMOUNT] Uploading costs L$ [AMOUNT] This costs L$ [AMOUNT] Buying selected land for L$ [AMOUNT] This object costs L$ [AMOUNT] - + Everyone Officers Owners Online Uploading... - + Abuse Report @@ -3474,23 +3474,23 @@ Abuse Report [mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt] - + none/none Can't load images larger than [WIDTH]*[HEIGHT] - + Despite our best efforts, something unexpected has gone wrong. - Please check status.secondlifegrid.net to see if there is a known problem with the service. + Please check status.secondlifegrid.net to see if there is a known problem with the service. If you continue to experience problems, please check your network and firewall setup. - Sunday:Monday:Tuesday:Wednesday:Thursday:Friday:Saturday Sun:Mon:Tue:Wed:Thu:Fri:Sat @@ -3523,7 +3523,7 @@ Abuse Report Delete selected item? There are no items in this outfit - + Select an editor using the ExternalEditor setting. Cannot find the external editor you specified. -- cgit v1.2.3 From 702410cef75e0cc10258964b86b093f2205ef462 Mon Sep 17 00:00:00 2001 From: Vadim ProductEngine Date: Fri, 9 Dec 2011 17:59:29 +0200 Subject: EXP-1671 FIXED Enable/disable the translation checkbox in the nearby chat floater whenever translation preferences change. The checkbox is also updated when the nearby chat floater is opened. --- indra/newview/llfloatertranslationsettings.cpp | 2 ++ indra/newview/llnearbychatbar.cpp | 12 ++++++++++++ indra/newview/llnearbychatbar.h | 2 ++ indra/newview/lltranslate.cpp | 18 ++++++++++++++++++ indra/newview/lltranslate.h | 16 ++++++++++++++++ 5 files changed, 50 insertions(+) (limited to 'indra') diff --git a/indra/newview/llfloatertranslationsettings.cpp b/indra/newview/llfloatertranslationsettings.cpp index 959edff713..428a02e9f0 100644 --- a/indra/newview/llfloatertranslationsettings.cpp +++ b/indra/newview/llfloatertranslationsettings.cpp @@ -29,6 +29,7 @@ #include "llfloatertranslationsettings.h" // Viewer includes +#include "llnearbychatbar.h" #include "lltranslate.h" #include "llviewercontrol.h" // for gSavedSettings @@ -292,5 +293,6 @@ void LLFloaterTranslationSettings::onBtnOK() gSavedSettings.setString("TranslationService", getSelectedService()); gSavedSettings.setString("BingTranslateAPIKey", getEnteredBingKey()); gSavedSettings.setString("GoogleTranslateAPIKey", getEnteredGoogleKey()); + LLNearbyChatBar::getInstance()->enableTranslationCheckbox(LLTranslate::isTranslationConfigured()); closeFloater(false); } diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp index 114472ba56..4f8559718f 100644 --- a/indra/newview/llnearbychatbar.cpp +++ b/indra/newview/llnearbychatbar.cpp @@ -48,6 +48,7 @@ #include "llrootview.h" #include "llviewerchat.h" #include "llnearbychat.h" +#include "lltranslate.h" #include "llresizehandle.h" @@ -112,6 +113,12 @@ BOOL LLNearbyChatBar::postBuild() return TRUE; } +// virtual +void LLNearbyChatBar::onOpen(const LLSD& key) +{ + enableTranslationCheckbox(LLTranslate::isTranslationConfigured()); +} + bool LLNearbyChatBar::applyRectControl() { bool rect_controlled = LLFloater::applyRectControl(); @@ -156,6 +163,11 @@ void LLNearbyChatBar::showHistory() } } +void LLNearbyChatBar::enableTranslationCheckbox(BOOL enable) +{ + getChild("translate_chat_checkbox")->setEnabled(enable); +} + void LLNearbyChatBar::draw() { displaySpeakingIndicator(); diff --git a/indra/newview/llnearbychatbar.h b/indra/newview/llnearbychatbar.h index e9734899b3..866e07f123 100644 --- a/indra/newview/llnearbychatbar.h +++ b/indra/newview/llnearbychatbar.h @@ -43,6 +43,7 @@ public: ~LLNearbyChatBar() {} virtual BOOL postBuild(); + /*virtual*/ void onOpen(const LLSD& key); static LLNearbyChatBar* getInstance(); @@ -60,6 +61,7 @@ public: static void sendChatFromViewer(const LLWString &wtext, EChatType type, BOOL animate); void showHistory(); + void enableTranslationCheckbox(BOOL enable); /*virtual*/void setMinimized(BOOL b); protected: diff --git a/indra/newview/lltranslate.cpp b/indra/newview/lltranslate.cpp index 7eb54271f4..c1cc9c7bc4 100755 --- a/indra/newview/lltranslate.cpp +++ b/indra/newview/lltranslate.cpp @@ -95,6 +95,12 @@ bool LLGoogleTranslationHandler::parseResponse( return parseTranslation(root, translation, detected_lang); } +// virtual +bool LLGoogleTranslationHandler::isConfigured() const +{ + return !getAPIKey().empty(); +} + // static void LLGoogleTranslationHandler::parseErrorResponse( const Json::Value& root, @@ -218,6 +224,12 @@ bool LLBingTranslationHandler::parseResponse( return true; } +// virtual +bool LLBingTranslationHandler::isConfigured() const +{ + return !getAPIKey().empty(); +} + // static std::string LLBingTranslationHandler::getAPIKey() { @@ -331,6 +343,12 @@ std::string LLTranslate::getTranslateLanguage() return language; } +// static +bool LLTranslate::isTranslationConfigured() +{ + return getPreferredHandler().isConfigured(); +} + // static const LLTranslationAPIHandler& LLTranslate::getPreferredHandler() { diff --git a/indra/newview/lltranslate.h b/indra/newview/lltranslate.h index c2330daa81..424bc14587 100755 --- a/indra/newview/lltranslate.h +++ b/indra/newview/lltranslate.h @@ -89,6 +89,11 @@ public: std::string& detected_lang, std::string& err_msg) const = 0; + /** + * @return if the handler is configured to function properly + */ + virtual bool isConfigured() const = 0; + virtual ~LLTranslationAPIHandler() {} protected: @@ -115,6 +120,7 @@ public: std::string& translation, std::string& detected_lang, std::string& err_msg) const; + /*virtual*/ bool isConfigured() const; private: static void parseErrorResponse( @@ -148,6 +154,7 @@ public: std::string& translation, std::string& detected_lang, std::string& err_msg) const; + /*virtual*/ bool isConfigured() const; private: static std::string getAPIKey(); }; @@ -275,8 +282,17 @@ public : * @param key Key to verify. */ static void verifyKey(KeyVerificationReceiverPtr& receiver, const std::string& key); + + /** + * @return translation target language + */ static std::string getTranslateLanguage(); + /** + * @return true if translation is configured properly. + */ + static bool isTranslationConfigured(); + private: static const LLTranslationAPIHandler& getPreferredHandler(); static const LLTranslationAPIHandler& getHandler(EService service); -- cgit v1.2.3 From 6114ce2d27a3c776a59d1f09ad05d9b2f100a35d Mon Sep 17 00:00:00 2001 From: Seth ProductEngine Date: Mon, 12 Dec 2011 13:32:23 +0200 Subject: EXP-1672 FIXED Added check for LLChicletBar instance existence not to create a new one when viewer exits. Could not reproduce the crash. This is a possible fix for EXP-1672. The message before the crash in all client logs was: "WARNING: LLSingleton::getInstance: Trying to access deleted singleton class LLChicletBar creating new instance" --- indra/newview/llchiclet.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'indra') diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp index a076374903..9626b93690 100644 --- a/indra/newview/llchiclet.cpp +++ b/indra/newview/llchiclet.cpp @@ -296,6 +296,13 @@ void LLIMWellChiclet::createMenu() void LLIMWellChiclet::messageCountChanged(const LLSD& session_data) { + // The singleton class LLChicletBar instance might be already deleted + // so don't create a new one. + if (!LLChicletBar::instanceExists()) + { + return; + } + const LLUUID& session_id = session_data["session_id"]; const S32 counter = LLChicletBar::getInstance()->getTotalUnreadIMCount(); const bool im_not_visible = !LLFloaterReg::instanceVisible("im_container") -- cgit v1.2.3 From 40a74eb5b77493e66587a01b6655d405c75e3a59 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Mon, 12 Dec 2011 12:32:22 -0800 Subject: EXP-1711 FIX LLWindowShade doesn't stack multiple notifications --- indra/llui/lllayoutstack.h | 3 +- indra/llui/llpanel.h | 2 + indra/llui/llwindowshade.cpp | 207 ++++++++++++++++++----------- indra/llui/llwindowshade.h | 10 +- indra/newview/llmediactrl.cpp | 46 +++---- indra/newview/llpanelprimmediacontrols.cpp | 3 +- 6 files changed, 163 insertions(+), 108 deletions(-) (limited to 'indra') diff --git a/indra/llui/lllayoutstack.h b/indra/llui/lllayoutstack.h index ede6149a80..3b308a359d 100644 --- a/indra/llui/lllayoutstack.h +++ b/indra/llui/lllayoutstack.h @@ -191,13 +191,12 @@ public: return min_dim; } + F32 getCollapseFactor(); void setOrientation(LLLayoutStack::ELayoutOrientation orientation) { mOrientation = orientation; } protected: LLLayoutPanel(const Params& p); - F32 getCollapseFactor(); - bool mExpandedMinDimSpecified; S32 mExpandedMinDim; diff --git a/indra/llui/llpanel.h b/indra/llui/llpanel.h index cd33938226..f620201020 100644 --- a/indra/llui/llpanel.h +++ b/indra/llui/llpanel.h @@ -135,6 +135,8 @@ public: const LLColor4& getBackgroundColor() const { return mBgOpaqueColor; } void setTransparentColor(const LLColor4& color) { mBgAlphaColor = color; } const LLColor4& getTransparentColor() const { return mBgAlphaColor; } + void setBackgroundImage(LLUIImage* image) { mBgOpaqueImage = image; } + void setTransparentImage(LLUIImage* image) { mBgAlphaImage = image; } LLPointer getBackgroundImage() const { return mBgOpaqueImage; } LLPointer getTransparentImage() const { return mBgAlphaImage; } LLColor4 getBackgroundImageOverlay() { return mBgOpaqueImageOverlay; } diff --git a/indra/llui/llwindowshade.cpp b/indra/llui/llwindowshade.cpp index cf76202215..0b4cfe68a6 100644 --- a/indra/llui/llwindowshade.cpp +++ b/indra/llui/llwindowshade.cpp @@ -37,6 +37,8 @@ const S32 MIN_NOTIFICATION_AREA_HEIGHT = 30; const S32 MAX_NOTIFICATION_AREA_HEIGHT = 100; +static LLDefaultChildRegistry::Register r("window_shade"); + LLWindowShade::Params::Params() : bg_image("bg_image"), modal("modal", false), @@ -48,7 +50,6 @@ LLWindowShade::Params::Params() LLWindowShade::LLWindowShade(const LLWindowShade::Params& params) : LLUICtrl(params), - mNotification(params.notification), mModal(params.modal), mFormHeight(0), mTextColor(params.text_color) @@ -72,7 +73,7 @@ void LLWindowShade::initFromParams(const LLWindowShade::Params& params) addChild(stackp); LLLayoutPanel::Params panel_p; - panel_p.rect = LLRect(0, 30, 800, 0); + panel_p.rect = LLRect(0, MIN_NOTIFICATION_AREA_HEIGHT, 800, 0); panel_p.name = "notification_area"; panel_p.visible = false; panel_p.user_resize = false; @@ -107,11 +108,11 @@ void LLWindowShade::initFromParams(const LLWindowShade::Params& params) LLIconCtrl::Params icon_p; icon_p.name = "notification_icon"; - icon_p.rect = LLRect(5, 23, 21, 8); + icon_p.rect = LLRect(5, 25, 21, 10); panel->addChild(LLUICtrlFactory::create(icon_p)); LLTextBox::Params text_p; - text_p.rect = LLRect(31, 20, panel->getRect().getWidth() - 5, 0); + text_p.rect = LLRect(31, 23, panel->getRect().getWidth() - 5, 3); text_p.follows.flags = FOLLOWS_ALL; text_p.text_color = mTextColor; text_p.font = LLFontGL::getFontSansSerifSmall(); @@ -125,41 +126,132 @@ void LLWindowShade::initFromParams(const LLWindowShade::Params& params) panel_p.auto_resize = false; panel_p.user_resize = false; panel_p.name="form_elements"; - panel_p.rect = LLRect(0, 30, 130, 0); + panel_p.rect = LLRect(0, MIN_NOTIFICATION_AREA_HEIGHT, 130, 0); LLLayoutPanel* form_elements_panel = LLUICtrlFactory::create(panel_p); stackp->addChild(form_elements_panel); - if (params.can_close) + panel_p = LLUICtrlFactory::getDefaultParams(); + panel_p.auto_resize = false; + panel_p.user_resize = false; + panel_p.rect = LLRect(0, MIN_NOTIFICATION_AREA_HEIGHT, 25, 0); + panel_p.name = "close_panel"; + LLLayoutPanel* close_panel = LLUICtrlFactory::create(panel_p); + stackp->addChild(close_panel); + + LLButton::Params button_p; + button_p.name = "close_notification"; + button_p.rect = LLRect(5, 23, 21, 7); + button_p.image_color.control="DkGray_66"; + button_p.image_unselected.name="Icon_Close_Foreground"; + button_p.image_selected.name="Icon_Close_Press"; + button_p.click_callback.function = boost::bind(&LLWindowShade::onCloseNotification, this); + + close_panel->addChild(LLUICtrlFactory::create(button_p)); + + close_panel->setVisible(params.can_close); +} + +void LLWindowShade::draw() +{ + LLRect message_rect = getChild("notification_text")->getTextBoundingRect(); + + LLLayoutPanel* notification_area = getChild("notification_area"); + + notification_area->reshape(notification_area->getRect().getWidth(), + llclamp(message_rect.getHeight() + 15, + llmin(mFormHeight, MAX_NOTIFICATION_AREA_HEIGHT), + MAX_NOTIFICATION_AREA_HEIGHT)); + + LLUICtrl::draw(); + + while(!mNotifications.empty() && !mNotifications.back()->isActive()) + { + mNotifications.pop_back(); + // go ahead and hide + hide(); + } + + if (mNotifications.empty()) + { + hide(); + } + else if (notification_area->getCollapseFactor() < 0.01f) + { + displayLatestNotification(); + } + + if (!notification_area->getVisible() && (notification_area->getCollapseFactor() < 0.001f)) + { + getChildRef("background_area").setBackgroundVisible(false); + setMouseOpaque(false); + } +} + +void LLWindowShade::hide() +{ + getChildRef("notification_area").setVisible(false); +} + +void LLWindowShade::onCloseNotification() +{ + if (!mNotifications.empty()) + LLNotifications::instance().cancel(mNotifications.back()); +} + +void LLWindowShade::onClickIgnore(LLUICtrl* ctrl) +{ + LLNotificationPtr notify = getCurrentNotification(); + if (!notify) return; + + bool check = ctrl->getValue().asBoolean(); + if (notify->getForm()->getIgnoreType() == LLNotificationForm::IGNORE_SHOW_AGAIN) { - panel_p = LLUICtrlFactory::getDefaultParams(); - panel_p.auto_resize = false; - panel_p.user_resize = false; - panel_p.rect = LLRect(0, 30, 25, 0); - LLLayoutPanel* close_panel = LLUICtrlFactory::create(panel_p); - stackp->addChild(close_panel); - - LLButton::Params button_p; - button_p.name = "close_notification"; - button_p.rect = LLRect(5, 23, 21, 7); - button_p.image_color.control="DkGray_66"; - button_p.image_unselected.name="Icon_Close_Foreground"; - button_p.image_selected.name="Icon_Close_Press"; - button_p.click_callback.function = boost::bind(&LLWindowShade::onCloseNotification, this); - - close_panel->addChild(LLUICtrlFactory::create(button_p)); + // question was "show again" so invert value to get "ignore" + check = !check; } + notify->setIgnored(check); +} + +void LLWindowShade::onClickNotificationButton(const std::string& name) +{ + LLNotificationPtr notify = getCurrentNotification(); + if (!notify) return; - LLSD payload = mNotification->getPayload(); + mNotificationResponse[name] = true; - LLNotificationFormPtr formp = mNotification->getForm(); + notify->respond(mNotificationResponse); +} + +void LLWindowShade::onEnterNotificationText(LLUICtrl* ctrl, const std::string& name) +{ + mNotificationResponse[name] = ctrl->getValue().asString(); +} + +void LLWindowShade::show(LLNotificationPtr notification) +{ + mNotifications.push_back(notification); + + displayLatestNotification(); +} + +void LLWindowShade::displayLatestNotification() +{ + if (mNotifications.empty()) return; + + LLNotificationPtr notification = mNotifications.back(); + + LLSD payload = notification->getPayload(); + + LLNotificationFormPtr formp = notification->getForm(); LLLayoutPanel& notification_area = getChildRef("notification_area"); - notification_area.getChild("notification_icon")->setValue(mNotification->getIcon()); - notification_area.getChild("notification_text")->setValue(mNotification->getMessage()); - notification_area.getChild("notification_text")->setToolTip(mNotification->getMessage()); + notification_area.getChild("notification_icon")->setValue(notification->getIcon()); + notification_area.getChild("notification_text")->setValue(notification->getMessage()); + notification_area.getChild("notification_text")->setToolTip(notification->getMessage()); LLNotificationForm::EIgnoreType ignore_type = formp->getIgnoreType(); LLLayoutPanel& form_elements = notification_area.getChildRef("form_elements"); form_elements.deleteAllChildren(); + form_elements.reshape(form_elements.getRect().getWidth(), MIN_NOTIFICATION_AREA_HEIGHT); const S32 FORM_PADDING_HORIZONTAL = 10; const S32 FORM_PADDING_VERTICAL = 3; @@ -229,7 +321,7 @@ void LLWindowShade::initFromParams(const LLWindowShade::Params& params) label_p.v_pad = 5; LLTextBox* textbox = LLUICtrlFactory::create(label_p); textbox->reshapeToFitText(); - textbox->reshape(textbox->getRect().getWidth(), form_elements.getRect().getHeight() - 2 * FORM_PADDING_VERTICAL); + textbox->reshape(textbox->getRect().getWidth(), MIN_NOTIFICATION_AREA_HEIGHT - 2 * FORM_PADDING_VERTICAL); form_elements.addChild(textbox); cur_x = textbox->getRect().mRight + FORM_PADDING_HORIZONTAL; @@ -249,7 +341,7 @@ void LLWindowShade::initFromParams(const LLWindowShade::Params& params) } } - mFormHeight = form_elements.getRect().getHeight() - (cur_y - FORM_PADDING_VERTICAL) + WIDGET_HEIGHT; + mFormHeight = form_elements.getRect().getHeight() - (cur_y - WIDGET_HEIGHT - FORM_PADDING_VERTICAL); form_elements.reshape(form_width, mFormHeight); form_elements.setMinDim(form_width); @@ -261,68 +353,33 @@ void LLWindowShade::initFromParams(const LLWindowShade::Params& params) { (*it)->translate(0, delta_y); } -} -void LLWindowShade::show() -{ getChildRef("notification_area").setVisible(true); getChildRef("background_area").setBackgroundVisible(mModal); setMouseOpaque(mModal); } -void LLWindowShade::draw() +void LLWindowShade::setBackgroundImage(LLUIImage* image) { - LLRect message_rect = getChild("notification_text")->getTextBoundingRect(); - - LLLayoutPanel* notification_area = getChild("notification_area"); - - notification_area->reshape(notification_area->getRect().getWidth(), - llclamp(message_rect.getHeight() + 10, - llmin(mFormHeight, MAX_NOTIFICATION_AREA_HEIGHT), - MAX_NOTIFICATION_AREA_HEIGHT)); - - LLUICtrl::draw(); - if (mNotification && !mNotification->isActive()) - { - hide(); - } + getChild("notification_area")->setTransparentImage(image); } -void LLWindowShade::hide() +void LLWindowShade::setTextColor(LLColor4 color) { - getChildRef("notification_area").setVisible(false); - getChildRef("background_area").setBackgroundVisible(false); - - setMouseOpaque(false); + getChild("notification_text")->setColor(color); } -void LLWindowShade::onCloseNotification() +void LLWindowShade::setCanClose(bool can_close) { - LLNotifications::instance().cancel(mNotification); + getChildView("close_panel")->setVisible(can_close); } -void LLWindowShade::onClickIgnore(LLUICtrl* ctrl) +LLNotificationPtr LLWindowShade::getCurrentNotification() { - bool check = ctrl->getValue().asBoolean(); - if (mNotification && mNotification->getForm()->getIgnoreType() == LLNotificationForm::IGNORE_SHOW_AGAIN) + if (mNotifications.empty()) { - // question was "show again" so invert value to get "ignore" - check = !check; + return LLNotificationPtr(); } - mNotification->setIgnored(check); -} - -void LLWindowShade::onClickNotificationButton(const std::string& name) -{ - if (!mNotification) return; - - mNotificationResponse[name] = true; - - mNotification->respond(mNotificationResponse); -} - -void LLWindowShade::onEnterNotificationText(LLUICtrl* ctrl, const std::string& name) -{ - mNotificationResponse[name] = ctrl->getValue().asString(); -} + return mNotifications.back(); +} \ No newline at end of file diff --git a/indra/llui/llwindowshade.h b/indra/llui/llwindowshade.h index 09ffc2cd54..1dcab4e32f 100644 --- a/indra/llui/llwindowshade.h +++ b/indra/llui/llwindowshade.h @@ -36,7 +36,6 @@ class LLWindowShade : public LLUICtrl public: struct Params : public LLInitParam::Block { - Mandatory notification; Optional bg_image; Optional text_color; Optional modal, @@ -45,11 +44,16 @@ public: Params(); }; - void show(); + void show(LLNotificationPtr); /*virtual*/ void draw(); void hide(); + void setBackgroundImage(LLUIImage* image); + void setTextColor(LLColor4 color); + void setCanClose(bool can_close); private: + void displayLatestNotification(); + LLNotificationPtr getCurrentNotification(); friend class LLUICtrlFactory; LLWindowShade(const Params& p); @@ -60,7 +64,7 @@ private: void onEnterNotificationText(LLUICtrl* ctrl, const std::string& name); void onClickIgnore(LLUICtrl* ctrl); - LLNotificationPtr mNotification; + std::vector mNotifications; LLSD mNotificationResponse; bool mModal; S32 mFormHeight; diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp index 74fa5d350a..7650fe9229 100644 --- a/indra/newview/llmediactrl.cpp +++ b/indra/newview/llmediactrl.cpp @@ -133,10 +133,15 @@ LLMediaCtrl::LLMediaCtrl( const Params& p) : navigateHome(); } - // FIXME: How do we create a bevel now? -// LLRect border_rect( 0, getRect().getHeight() + 2, getRect().getWidth() + 2, 0 ); -// mBorder = new LLViewBorder( std::string("web control border"), border_rect, LLViewBorder::BEVEL_IN ); -// addChild( mBorder ); + LLWindowShade::Params params; + params.name = "notification_shade"; + params.rect = getLocalRect(); + params.follows.flags = FOLLOWS_ALL; + params.modal = true; + + mWindowShade = LLUICtrlFactory::create(params); + + addChild(mWindowShade); } LLMediaCtrl::~LLMediaCtrl() @@ -1092,39 +1097,28 @@ void LLMediaCtrl::onPopup(const LLSD& notification, const LLSD& response) void LLMediaCtrl::showNotification(LLNotificationPtr notify) { - delete mWindowShade; + LLWindowShade* shade = getChild("notification_shade"); - LLWindowShade::Params params; - params.name = "notification_shade"; - params.rect = getLocalRect(); - params.follows.flags = FOLLOWS_ALL; - params.notification = notify; - params.modal = true; - //HACK: don't hardcode this if (notify->getIcon() == "Popup_Caution") { - params.bg_image.name = "Yellow_Gradient"; - params.text_color = LLColor4::black; + shade->setBackgroundImage(LLUI::getUIImage("Yellow_Gradient")); + shade->setTextColor(LLColor4::black); + shade->setCanClose(true); } - else - //HACK: another one since XUI doesn't support what we need right now - if (notify->getName() == "AuthRequest") + else if (notify->getName() == "AuthRequest") { - params.bg_image.name = "Yellow_Gradient"; - params.text_color = LLColor4::black; - params.can_close = false; + shade->setBackgroundImage(LLUI::getUIImage("Yellow_Gradient")); + shade->setTextColor(LLColor4::black); + shade->setCanClose(false); } else { //HACK: make this a property of the notification itself, "cancellable" - params.can_close = false; - params.text_color.control = "LabelTextColor"; + shade->setCanClose(false); + shade->setTextColor(LLUIColorTable::instance().getColor("LabelTextColor")); } - mWindowShade = LLUICtrlFactory::create(params); - - addChild(mWindowShade); - mWindowShade->show(); + mWindowShade->show(notify); } void LLMediaCtrl::hideNotification() diff --git a/indra/newview/llpanelprimmediacontrols.cpp b/indra/newview/llpanelprimmediacontrols.cpp index 933b40ec79..39c0628cbe 100644 --- a/indra/newview/llpanelprimmediacontrols.cpp +++ b/indra/newview/llpanelprimmediacontrols.cpp @@ -1351,7 +1351,6 @@ void LLPanelPrimMediaControls::showNotification(LLNotificationPtr notify) LLWindowShade::Params params; params.rect = mMediaRegion->getLocalRect(); params.follows.flags = FOLLOWS_ALL; - params.notification = notify; //HACK: don't hardcode this if (notify->getIcon() == "Popup_Caution") @@ -1369,7 +1368,7 @@ void LLPanelPrimMediaControls::showNotification(LLNotificationPtr notify) mWindowShade = LLUICtrlFactory::create(params); mMediaRegion->addChild(mWindowShade); - mWindowShade->show(); + mWindowShade->show(notify); } void LLPanelPrimMediaControls::hideNotification() -- cgit v1.2.3 From 35feb03d27036f82a6bca60c1be8d864de990646 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Mon, 12 Dec 2011 15:50:10 -0800 Subject: EXP-1711 FIX LLWindowShade doesn't stack multiple notifications added configurable shade color to window_shade --- indra/llui/llwindowshade.cpp | 3 ++- indra/llui/llwindowshade.h | 3 ++- indra/newview/skins/default/xui/en/widgets/window_shade.xml | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 indra/newview/skins/default/xui/en/widgets/window_shade.xml (limited to 'indra') diff --git a/indra/llui/llwindowshade.cpp b/indra/llui/llwindowshade.cpp index 0b4cfe68a6..1e8b47de29 100644 --- a/indra/llui/llwindowshade.cpp +++ b/indra/llui/llwindowshade.cpp @@ -43,6 +43,7 @@ LLWindowShade::Params::Params() : bg_image("bg_image"), modal("modal", false), text_color("text_color"), + shade_color("shade_color"), can_close("can_close", true) { changeDefault(mouse_opaque, false); @@ -90,7 +91,7 @@ void LLWindowShade::initFromParams(const LLWindowShade::Params& params) panel_p.name = "background_area"; panel_p.mouse_opaque = false; panel_p.background_visible = false; - panel_p.bg_alpha_color = LLColor4(0.f, 0.f, 0.f, 0.2f); + panel_p.bg_alpha_color = params.shade_color; LLLayoutPanel* dummy_panel = LLUICtrlFactory::create(panel_p); stackp->addChild(dummy_panel); diff --git a/indra/llui/llwindowshade.h b/indra/llui/llwindowshade.h index 1dcab4e32f..1ae84028dd 100644 --- a/indra/llui/llwindowshade.h +++ b/indra/llui/llwindowshade.h @@ -37,7 +37,8 @@ public: struct Params : public LLInitParam::Block { Optional bg_image; - Optional text_color; + Optional text_color, + shade_color; Optional modal, can_close; diff --git a/indra/newview/skins/default/xui/en/widgets/window_shade.xml b/indra/newview/skins/default/xui/en/widgets/window_shade.xml new file mode 100644 index 0000000000..23eb2f13fb --- /dev/null +++ b/indra/newview/skins/default/xui/en/widgets/window_shade.xml @@ -0,0 +1,2 @@ + + -- cgit v1.2.3 From e859c3446b5c631fe0a9806434aa19b64a0d9113 Mon Sep 17 00:00:00 2001 From: Leslie Linden Date: Mon, 12 Dec 2011 16:06:22 -0800 Subject: Added missing line end to satisfy coding policy --- indra/llui/llwindowshade.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/llui/llwindowshade.cpp b/indra/llui/llwindowshade.cpp index 1e8b47de29..ae8b30b1ba 100644 --- a/indra/llui/llwindowshade.cpp +++ b/indra/llui/llwindowshade.cpp @@ -383,4 +383,5 @@ LLNotificationPtr LLWindowShade::getCurrentNotification() return LLNotificationPtr(); } return mNotifications.back(); -} \ No newline at end of file +} + -- cgit v1.2.3 From aba090ab9027e5a5c1e9eb114ecca12b9eafa978 Mon Sep 17 00:00:00 2001 From: Paul ProductEngine Date: Tue, 13 Dec 2011 17:27:54 +0200 Subject: EXP-1599 FIXED (Sharing multiple selected inventory folders only shares one folder (no warning for user)) - In case of sharing multiple folders, make the confirmation dialog contain a warning that only one folder can be shared at a time. --- indra/newview/llavataractions.cpp | 19 ++++++++++++++++++- indra/newview/skins/default/xui/en/notifications.xml | 20 ++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp index 8ca621538f..7abecc643b 100755 --- a/indra/newview/llavataractions.cpp +++ b/indra/newview/llavataractions.cpp @@ -680,12 +680,29 @@ namespace action_give_inventory std::string items; build_items_string(inventory_selected_uuids, items); + int folders_count = 0; + std::set::const_iterator it = inventory_selected_uuids.begin(); + + //traverse through selected inventory items and count folders among them + for ( ; it != inventory_selected_uuids.end() && folders_count <=1 ; ++it) + { + LLViewerInventoryCategory* inv_cat = gInventory.getCategory(*it); + if (NULL != inv_cat) + { + folders_count++; + } + } + + // EXP-1599 + // In case of sharing multiple folders, make the confirmation + // dialog contain a warning that only one folder can be shared at a time. + std::string notification = (folders_count > 1) ? "ShareFolderConfirmation" : "ShareItemsConfirmation"; LLSD substitutions; substitutions["RESIDENTS"] = residents; substitutions["ITEMS"] = items; LLShareInfo::instance().mAvatarNames = avatar_names; LLShareInfo::instance().mAvatarUuids = avatar_uuids; - LLNotificationsUtil::add("ShareItemsConfirmation", substitutions, LLSD(), &give_inventory_cb); + LLNotificationsUtil::add(notification, substitutions, LLSD(), &give_inventory_cb); } } diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 0ba4b84abe..5b985c9981 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -6942,6 +6942,26 @@ With the following Residents: yestext="OK"/> + +Only one folder at a time can be shared. + +Are you sure you want to share the following items: + +<nolink>[ITEMS]</nolink> + +With the following Residents: + +[RESIDENTS] + confirm + + + Date: Tue, 13 Dec 2011 13:11:55 -0800 Subject: EXP-1551 FIX Ability to toggle button flashing added "EnableButtonFlashing" setting --- indra/llui/llbutton.cpp | 18 +++++++++++++----- indra/llui/lltabcontainer.cpp | 13 +++++++------ indra/newview/app_settings/settings.xml | 11 +++++++++++ 3 files changed, 31 insertions(+), 11 deletions(-) (limited to 'indra') diff --git a/indra/llui/llbutton.cpp b/indra/llui/llbutton.cpp index 93d8282aa7..f0d92d597a 100644 --- a/indra/llui/llbutton.cpp +++ b/indra/llui/llbutton.cpp @@ -589,15 +589,23 @@ void LLButton::getOverlayImageSize(S32& overlay_width, S32& overlay_height) // virtual void LLButton::draw() { + static LLCachedControl sEnableButtonFlashing(*LLUI::sSettingGroups["config"], "EnableButtonFlashing", true); F32 alpha = mUseDrawContextAlpha ? getDrawContext().mAlpha : getCurrentTransparency(); bool flash = FALSE; - if( mFlashing ) + if( mFlashing) { - F32 elapsed = mFlashingTimer.getElapsedTimeF32(); - S32 flash_count = S32(elapsed * mButtonFlashRate * 2.f); - // flash on or off? - flash = (flash_count % 2 == 0) || flash_count > S32((F32)mButtonFlashCount * 2.f); + if ( sEnableButtonFlashing) + { + F32 elapsed = mFlashingTimer.getElapsedTimeF32(); + S32 flash_count = S32(elapsed * mButtonFlashRate * 2.f); + // flash on or off? + flash = (flash_count % 2 == 0) || flash_count > S32((F32)mButtonFlashCount * 2.f); + } + else + { // otherwise just highlight button in flash color + flash = true; + } } bool pressed_by_keyboard = FALSE; diff --git a/indra/llui/lltabcontainer.cpp b/indra/llui/lltabcontainer.cpp index d5f8707381..5fc2cc350d 100644 --- a/indra/llui/lltabcontainer.cpp +++ b/indra/llui/lltabcontainer.cpp @@ -98,24 +98,25 @@ class LLCustomButtonIconCtrl : public LLButton { public: struct Params - : public LLInitParam::Block + : public LLInitParam::Block { // LEFT, RIGHT, TOP, BOTTOM paddings of LLIconCtrl in this class has same value Optional icon_ctrl_pad; - Params(): - icon_ctrl_pad("icon_ctrl_pad", 1) + Params() + : icon_ctrl_pad("icon_ctrl_pad", 1) {} }; protected: friend class LLUICtrlFactory; - LLCustomButtonIconCtrl(const Params& p): - LLButton(p), + + LLCustomButtonIconCtrl(const Params& p) + : LLButton(p), mIcon(NULL), mIconAlignment(LLFontGL::HCENTER), mIconCtrlPad(p.icon_ctrl_pad) - {} + {} public: diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index aa8ad53a3d..1ea623791d 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -1150,6 +1150,17 @@ Value 0 + EnableButtonFlashing + + Comment + Allow UI to flash buttons to get your attention + Persist + 1 + Type + Boolean + Value + 1 + ButtonHPad Comment -- cgit v1.2.3 From da94592d00ae5099c181050c7415a91ae0bff4f6 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Thu, 15 Dec 2011 15:39:54 -0800 Subject: dummy commit to fix TeamCity --- indra/newview/skins/paths.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/skins/paths.xml b/indra/newview/skins/paths.xml index e6d68488ea..3c0da041c7 100644 --- a/indra/newview/skins/paths.xml +++ b/indra/newview/skins/paths.xml @@ -1,4 +1,4 @@ - + xui en -- cgit v1.2.3 From 1a5194264451371270a7d94d528c2102be25c503 Mon Sep 17 00:00:00 2001 From: eli Date: Tue, 20 Dec 2011 16:50:23 -0800 Subject: sync with viewer-development --- .../skins/default/xui/en/floater_im_session.xml | 2 +- indra/newview/skins/default/xui/en/menu_viewer.xml | 24 +++++++++++----------- .../newview/skins/default/xui/en/notifications.xml | 9 ++++++++ .../default/xui/en/panel_adhoc_control_panel.xml | 6 +++--- .../skins/default/xui/en/panel_cof_wearables.xml | 1 + .../skins/default/xui/en/panel_edit_skin.xml | 12 +++++------ indra/newview/skins/default/xui/en/strings.xml | 5 +++++ 7 files changed, 37 insertions(+), 22 deletions(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/en/floater_im_session.xml b/indra/newview/skins/default/xui/en/floater_im_session.xml index 5fe8f3c114..a2739a8339 100644 --- a/indra/newview/skins/default/xui/en/floater_im_session.xml +++ b/indra/newview/skins/default/xui/en/floater_im_session.xml @@ -3,7 +3,7 @@ legacy_header_height="18" background_visible="true" default_tab_group="1" - height="350" + height="355" help_topic="floater_im_box" layout="topleft" name="panel_im" diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 1834be2d48..0aa5c72f2a 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -1713,7 +1713,17 @@ function="ToggleControl" parameter="MouseSmooth" /> - + + + + - - - - + + + funds +[MESSAGE] + + + top="0" /> + top="0"/> diff --git a/indra/newview/skins/default/xui/en/panel_cof_wearables.xml b/indra/newview/skins/default/xui/en/panel_cof_wearables.xml index beea53437a..aa8e3d07a6 100644 --- a/indra/newview/skins/default/xui/en/panel_cof_wearables.xml +++ b/indra/newview/skins/default/xui/en/panel_cof_wearables.xml @@ -37,6 +37,7 @@ top="0" width="311" /> + @@ -43,10 +43,10 @@ default_image_name="Default" follows="left|top" height="80" - label="Upper Tattoos" + label="Upper body" layout="topleft" left_pad="20" - name="Upper Tattoos" + name="Upper Body" tool_tip="Click to choose a picture" top="10" width="74" > @@ -59,10 +59,10 @@ default_image_name="Default" follows="left|top" height="80" - label="Lower Tattoos" + label="Lower body" layout="topleft" left_pad="20" - name="Lower Tattoos" + name="Lower Body" tool_tip="Click to choose a picture" top="10" width="74" > diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index c25d1f57d6..9752a07b66 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -2133,6 +2133,7 @@ Returns a string with the requested data about the region All No attachments worn + Attachments ([COUNT] slots remain) @@ -3358,6 +3359,10 @@ If you continue to receive this message, contact the [SUPPORT_SITE]. You paid L$[AMOUNT]. You paid [NAME] L$[AMOUNT]. You paid L$[AMOUNT] [REASON]. + You failed to pay [NAME] L$[AMOUNT] [REASON]. + You failed to pay L$[AMOUNT]. + You failed to pay [NAME] L$[AMOUNT]. + You failed to pay L$[AMOUNT] [REASON]. for [ITEM] for a parcel of land for a land access pass -- cgit v1.2.3 From 2455a4bb00b399e5cd5f22e9b177ca2aeaad2ba2 Mon Sep 17 00:00:00 2001 From: Seth ProductEngine Date: Wed, 21 Dec 2011 14:09:56 +0200 Subject: EXP-1695 FIXED currency format in Group Profile > Land/Asset and New Group. --- indra/newview/llpanelgrouplandmoney.cpp | 3 +-- indra/newview/skins/default/xui/en/panel_group_general.xml | 13 +++++++++++-- indra/newview/skins/default/xui/en/strings.xml | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) (limited to 'indra') diff --git a/indra/newview/llpanelgrouplandmoney.cpp b/indra/newview/llpanelgrouplandmoney.cpp index e66dd5690c..b6c0c2ee24 100644 --- a/indra/newview/llpanelgrouplandmoney.cpp +++ b/indra/newview/llpanelgrouplandmoney.cpp @@ -1447,8 +1447,7 @@ void LLGroupMoneyPlanningTabEventHandler::processReply(LLMessageSystem* msg, text.append(time_str); text.append(".\n\n"); - text.append(llformat("%-23sL$%6d\n", LLTrans::getString("GroupMoneyBalance").c_str(), balance )); - text.append(1, '\n'); + text.append(llformat("%-24s %6d L$\n\n", LLTrans::getString("GroupMoneyBalance").c_str(), balance )); } // [DEV-29503] Hide the individual info since diff --git a/indra/newview/skins/default/xui/en/panel_group_general.xml b/indra/newview/skins/default/xui/en/panel_group_general.xml index 38b680ba86..adde982c60 100644 --- a/indra/newview/skins/default/xui/en/panel_group_general.xml +++ b/indra/newview/skins/default/xui/en/panel_group_general.xml @@ -225,13 +225,22 @@ Hover your mouse over the options for more help. height="23" increment="1" label_width="15" - label="L$" layout="topleft" max_val="99999" left="30" name="spin_enrollment_fee" tool_tip="New members must pay this fee to join the group when Enrollment Fee is checked." - width="170" /> + width="150" /> + + L$ + [mthnum,datetime,utc]/[day,datetime,utc]/[year,datetime,utc] - + Balance Credits Debits -- cgit v1.2.3 From 0ccf2b5a1c08c897326c0ce47caa48e30ec4b5fa Mon Sep 17 00:00:00 2001 From: Seth ProductEngine Date: Wed, 21 Dec 2011 14:10:02 +0200 Subject: EXP-1693 FIXED the date localization in Item Profile window, Voice Morphs window and in scroll list widget in general. - Added a customizable date format string to be used for scroll list cell of "date" type. - The date localization does not change the value of a scroll list cell changing only its string representation. - Added using localized week days and month names from strings.xml for all locales not only Ja and Pl as it was before. - Changed the date format in Item Profile window (French locale) as noted in the issue description. - For this fix the French locale still needs the localization of the following strings in strings.xml: --- indra/llcommon/llstring.cpp | 5 +++++ indra/llui/llscrolllistcell.cpp | 10 +++++++++- indra/newview/llappviewer.cpp | 23 ++++++++-------------- indra/newview/skins/default/xui/en/strings.xml | 3 +++ .../skins/default/xui/fr/sidepanel_item_info.xml | 2 +- 5 files changed, 26 insertions(+), 17 deletions(-) (limited to 'indra') diff --git a/indra/llcommon/llstring.cpp b/indra/llcommon/llstring.cpp index e7fe656808..1193a4ef8d 100644 --- a/indra/llcommon/llstring.cpp +++ b/indra/llcommon/llstring.cpp @@ -1122,6 +1122,11 @@ bool LLStringUtil::formatDatetime(std::string& replacement, std::string token, struct tm * gmt = gmtime (&loc_seconds); replacement = LLStringOps::sMonthList[gmt->tm_mon]; } + else if(LLStringOps::sMonthShortList.size() == 12 && code == "%b") + { + struct tm * gmt = gmtime (&loc_seconds); + replacement = LLStringOps::sMonthShortList[gmt->tm_mon]; + } else if( !LLStringOps::sDayFormat.empty() && code == "%d" ) { struct tm * gmt = gmtime (&loc_seconds); diff --git a/indra/llui/llscrolllistcell.cpp b/indra/llui/llscrolllistcell.cpp index 9d25c7180d..786e18b187 100644 --- a/indra/llui/llscrolllistcell.cpp +++ b/indra/llui/llscrolllistcell.cpp @@ -29,6 +29,8 @@ #include "llscrolllistcell.h" +#include "lltrans.h" + #include "llcheckboxctrl.h" #include "llui.h" // LLUIImage #include "lluictrlfactory.h" @@ -428,7 +430,13 @@ LLScrollListDate::LLScrollListDate( const LLScrollListCell::Params& p) void LLScrollListDate::setValue(const LLSD& value) { mDate = value.asDate(); - LLScrollListText::setValue(mDate.asRFC1123()); + + std::string date_str = LLTrans::getString("ScrollListCellDateFormat"); + LLSD substitution; + substitution["datetime"] = mDate.secondsSinceEpoch(); + LLStringUtil::format(date_str, substitution); + + LLScrollListText::setValue(date_str); } const LLSD LLScrollListDate::getValue() const diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index b45f9c55fb..9595e82a07 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -1043,21 +1043,14 @@ bool LLAppViewer::init() LLTextUtil::TextHelpers::iconCallbackCreationFunction = create_text_segment_icon_from_url_match; - //EXT-7013 - On windows for some locale (Japanese) standard - //datetime formatting functions didn't support some parameters such as "weekday". - //Names for days and months localized in xml are also useful for Polish locale(STORM-107). - std::string language = gSavedSettings.getString("Language"); - if(language == "ja" || language == "pl") - { - LLStringOps::setupWeekDaysNames(LLTrans::getString("dateTimeWeekdaysNames")); - LLStringOps::setupWeekDaysShortNames(LLTrans::getString("dateTimeWeekdaysShortNames")); - LLStringOps::setupMonthNames(LLTrans::getString("dateTimeMonthNames")); - LLStringOps::setupMonthShortNames(LLTrans::getString("dateTimeMonthShortNames")); - LLStringOps::setupDayFormat(LLTrans::getString("dateTimeDayFormat")); - - LLStringOps::sAM = LLTrans::getString("dateTimeAM"); - LLStringOps::sPM = LLTrans::getString("dateTimePM"); - } + LLStringOps::setupWeekDaysNames(LLTrans::getString("dateTimeWeekdaysNames")); + LLStringOps::setupWeekDaysShortNames(LLTrans::getString("dateTimeWeekdaysShortNames")); + LLStringOps::setupMonthNames(LLTrans::getString("dateTimeMonthNames")); + LLStringOps::setupMonthShortNames(LLTrans::getString("dateTimeMonthShortNames")); + LLStringOps::setupDayFormat(LLTrans::getString("dateTimeDayFormat")); + + LLStringOps::sAM = LLTrans::getString("dateTimeAM"); + LLStringOps::sPM = LLTrans::getString("dateTimePM"); LLAgentLanguage::init(); diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index ac5b027ea1..e31fd167bc 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -3498,6 +3498,9 @@ Abuse Report [MDAY] AM PM + + + [wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local] US$ [AMOUNT] diff --git a/indra/newview/skins/default/xui/fr/sidepanel_item_info.xml b/indra/newview/skins/default/xui/fr/sidepanel_item_info.xml index 95649d3934..0b5333fc80 100644 --- a/indra/newview/skins/default/xui/fr/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/fr/sidepanel_item_info.xml @@ -13,7 +13,7 @@ Le propriétaire peut : - [wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local] + [wkday,datetime,local] [day,datetime,local] [mth,datetime,local] [year,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] (inventaire) -- cgit v1.2.3 From 62e77147b21bba59e7eda992f7f9c9052b6098d1 Mon Sep 17 00:00:00 2001 From: Seth ProductEngine Date: Thu, 22 Dec 2011 23:27:56 +0200 Subject: EXP-1632 FIXED Added checking for valid agent avatar before selecting the avatar gender and loading the initial outfit. --- indra/newview/llstartup.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 36d6ff3ef2..7e02a41e7e 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -2026,7 +2026,7 @@ bool idle_startup() const F32 wearables_time = wearables_timer.getElapsedTimeF32(); const F32 MAX_WEARABLES_TIME = 10.f; - if (!gAgent.isGenderChosen()) + if (!gAgent.isGenderChosen() && isAgentAvatarValid()) { // No point in waiting for clothing, we don't even // know what gender we are. Pop a dialog to ask and @@ -2541,6 +2541,12 @@ void LLStartUp::loadInitialOutfit( const std::string& outfit_folder_name, gender = SEX_FEMALE; } + if (!isAgentAvatarValid()) + { + llwarns << "Trying to load an initial outfit for an invalid agent avatar" << llendl; + return; + } + gAgentAvatarp->setSex(gender); // try to find the outfit - if not there, create some default -- cgit v1.2.3 From f6281d0d869c7f7248edcac015d48ae09a82b7ff Mon Sep 17 00:00:00 2001 From: Vadim ProductEngine Date: Fri, 23 Dec 2011 14:18:01 +0200 Subject: EXP-1744 FIXED URL-like group display name was shown as hyperlink in the Leave Group confirmation dialog. --- indra/newview/skins/default/xui/de/notifications.xml | 2 +- indra/newview/skins/default/xui/en/notifications.xml | 2 +- indra/newview/skins/default/xui/es/notifications.xml | 2 +- indra/newview/skins/default/xui/fr/notifications.xml | 2 +- indra/newview/skins/default/xui/it/notifications.xml | 2 +- indra/newview/skins/default/xui/ja/notifications.xml | 2 +- indra/newview/skins/default/xui/pl/notifications.xml | 2 +- indra/newview/skins/default/xui/pt/notifications.xml | 2 +- indra/newview/skins/default/xui/ru/notifications.xml | 2 +- indra/newview/skins/default/xui/tr/notifications.xml | 2 +- indra/newview/skins/default/xui/zh/notifications.xml | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml index 72e7ec8eb4..a5fcd3e0b4 100644 --- a/indra/newview/skins/default/xui/de/notifications.xml +++ b/indra/newview/skins/default/xui/de/notifications.xml @@ -1443,7 +1443,7 @@ Zur Installation des Updates muss [APP_NAME] neu gestartet werden. - Sie sind Mitglied der Gruppe [GROUP]. + Sie sind Mitglied der Gruppe <nolink>[GROUP]</nolink>. Diese Gruppe verlassen? diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 5b985c9981..b90acffbc9 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -3409,7 +3409,7 @@ Are you sure you want to return the selected objects to their owners? Transferab icon="alert.tga" name="GroupLeaveConfirmMember" type="alert"> -You are currently a member of the group [GROUP]. +You are currently a member of the group <nolink>[GROUP]</nolink>. Leave Group? group confirm diff --git a/indra/newview/skins/default/xui/es/notifications.xml b/indra/newview/skins/default/xui/es/notifications.xml index 9591b424fc..0de56f9b6d 100644 --- a/indra/newview/skins/default/xui/es/notifications.xml +++ b/indra/newview/skins/default/xui/es/notifications.xml @@ -1437,7 +1437,7 @@ Debemos reiniciar [APP_NAME] para instalar la actualización. - Actualmente, eres miembro del grupo [GROUP]. + Actualmente, eres miembro del grupo <nolink>[GROUP]</nolink>. ¿Dejar el grupo? diff --git a/indra/newview/skins/default/xui/fr/notifications.xml b/indra/newview/skins/default/xui/fr/notifications.xml index d8d79d8dde..be6f1f8c31 100644 --- a/indra/newview/skins/default/xui/fr/notifications.xml +++ b/indra/newview/skins/default/xui/fr/notifications.xml @@ -1428,7 +1428,7 @@ Version [VERSION] - Vous êtes actuellement membre du groupe [GROUP]. + Vous êtes actuellement membre du groupe <nolink>[GROUP]</nolink>. Quitter le groupe ? diff --git a/indra/newview/skins/default/xui/it/notifications.xml b/indra/newview/skins/default/xui/it/notifications.xml index 2db0892cd6..fce027da0c 100644 --- a/indra/newview/skins/default/xui/it/notifications.xml +++ b/indra/newview/skins/default/xui/it/notifications.xml @@ -1432,7 +1432,7 @@ Per installare l'aggiornamento è necessario riavviare [APP_NAME]. - Sei attualmente un membro del gruppo [GROUP]. + Sei attualmente un membro del gruppo <nolink>[GROUP]</nolink>. Vuoi lasciare il gruppo? diff --git a/indra/newview/skins/default/xui/ja/notifications.xml b/indra/newview/skins/default/xui/ja/notifications.xml index 7dfa6d2f7a..141f2c8071 100644 --- a/indra/newview/skins/default/xui/ja/notifications.xml +++ b/indra/newview/skins/default/xui/ja/notifications.xml @@ -1467,7 +1467,7 @@ http://secondlife.com/download から最新バージョンをダウンロード - 現在あなたは [GROUP] のメンバーです。 + 現在あなたは <nolink>[GROUP]</nolink> のメンバーです。 このグループを抜けますか? diff --git a/indra/newview/skins/default/xui/pl/notifications.xml b/indra/newview/skins/default/xui/pl/notifications.xml index e1fb6dd3f1..0194293642 100644 --- a/indra/newview/skins/default/xui/pl/notifications.xml +++ b/indra/newview/skins/default/xui/pl/notifications.xml @@ -1385,7 +1385,7 @@ W celu instalacji aktualizacji musi zostać wykonany restart [APP_NAME]. - Jesteś członkiem grupy [GROUP]. + Jesteś członkiem grupy <nolink>[GROUP]</nolink>. Chcesz opuścić grupę? diff --git a/indra/newview/skins/default/xui/pt/notifications.xml b/indra/newview/skins/default/xui/pt/notifications.xml index d3547beeb3..b53ebeb136 100644 --- a/indra/newview/skins/default/xui/pt/notifications.xml +++ b/indra/newview/skins/default/xui/pt/notifications.xml @@ -1419,7 +1419,7 @@ Para instalar a atualização, será preciso reiniciar o [APP_NAME]. - Você é atualmente um membro do grupo [GROUP]. + Você é atualmente um membro do grupo <nolink>[GROUP]</nolink>. Sair do grupo? diff --git a/indra/newview/skins/default/xui/ru/notifications.xml b/indra/newview/skins/default/xui/ru/notifications.xml index 1be14160ed..f121743fe9 100644 --- a/indra/newview/skins/default/xui/ru/notifications.xml +++ b/indra/newview/skins/default/xui/ru/notifications.xml @@ -1431,7 +1431,7 @@ http://secondlife.com/download. - Вы являетесь участником группы [GROUP]. + Вы являетесь участником группы <nolink>[GROUP]</nolink>. Хотите покинуть группу? diff --git a/indra/newview/skins/default/xui/tr/notifications.xml b/indra/newview/skins/default/xui/tr/notifications.xml index 6908f6867f..c0dc67ed34 100644 --- a/indra/newview/skins/default/xui/tr/notifications.xml +++ b/indra/newview/skins/default/xui/tr/notifications.xml @@ -1431,7 +1431,7 @@ Güncellemeyi kurmak için [APP_NAME] uygulamasını yeniden başlatmalısınız - Şu anda [GROUP] grubunun bir üyesisiniz. + Şu anda <nolink>[GROUP]</nolink> grubunun bir üyesisiniz. Gruptan ayrılmak istiyor musunuz? diff --git a/indra/newview/skins/default/xui/zh/notifications.xml b/indra/newview/skins/default/xui/zh/notifications.xml index 17ff6288a5..3fa8ff3f78 100644 --- a/indra/newview/skins/default/xui/zh/notifications.xml +++ b/indra/newview/skins/default/xui/zh/notifications.xml @@ -1418,7 +1418,7 @@ We must restart [APP_NAME] to install the update. - 你目前是 [GROUP] 群組的成員。 + 你目前是 <nolink>[GROUP]</nolink> 群組的成員。 是否要離開群組? -- cgit v1.2.3 From 4c4543a464ff9e59909404983b5c4ebac71df3b2 Mon Sep 17 00:00:00 2001 From: Vadim ProductEngine Date: Fri, 23 Dec 2011 17:44:59 +0200 Subject: EXP-1732 FIXED "Refresh to Save" message displayed in auto-refresh mode. --- indra/newview/llfloatersnapshot.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'indra') diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp index 1b3290d5a8..1fac8624cc 100644 --- a/indra/newview/llfloatersnapshot.cpp +++ b/indra/newview/llfloatersnapshot.cpp @@ -1490,6 +1490,12 @@ void LLFloaterSnapshot::Impl::setNeedRefresh(LLFloaterSnapshot* floater, bool ne { if (!floater) return; + // Don't display the "Refresh to save" message if we're in auto-refresh mode. + if (gSavedSettings.getBOOL("AutoSnapshot")) + { + need = false; + } + floater->mRefreshLabel->setVisible(need); floater->impl.mNeedRefresh = need; } -- cgit v1.2.3 From 8a3aa3f6cac3da0ee962dac211580a7987a4fc31 Mon Sep 17 00:00:00 2001 From: Jonathan Yap Date: Fri, 23 Dec 2011 12:06:36 -0500 Subject: STORM-1790 Provide a Develop sub-menu to change the default logging level co-authored with Zi Ree --- indra/llcommon/llerror.cpp | 6 +++ indra/llcommon/llerrorcontrol.h | 1 + indra/newview/llviewermenu.cpp | 27 +++++++++++ indra/newview/skins/default/xui/en/menu_login.xml | 53 +++++++++++++++++++++- indra/newview/skins/default/xui/en/menu_viewer.xml | 51 +++++++++++++++++++++ 5 files changed, 137 insertions(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/llcommon/llerror.cpp b/indra/llcommon/llerror.cpp index c35799bbb9..e4381dbbd6 100644 --- a/indra/llcommon/llerror.cpp +++ b/indra/llcommon/llerror.cpp @@ -617,6 +617,12 @@ namespace LLError s.defaultLevel = level; } + ELevel getDefaultLevel() + { + Settings& s = Settings::get(); + return s.defaultLevel; + } + void setFunctionLevel(const std::string& function_name, ELevel level) { Globals& g = Globals::get(); diff --git a/indra/llcommon/llerrorcontrol.h b/indra/llcommon/llerrorcontrol.h index fb75d45e2c..ed9de002f5 100644 --- a/indra/llcommon/llerrorcontrol.h +++ b/indra/llcommon/llerrorcontrol.h @@ -75,6 +75,7 @@ namespace LLError LL_COMMON_API void setPrintLocation(bool); LL_COMMON_API void setDefaultLevel(LLError::ELevel); + LL_COMMON_API ELevel getDefaultLevel(); LL_COMMON_API void setFunctionLevel(const std::string& function_name, LLError::ELevel); LL_COMMON_API void setClassLevel(const std::string& class_name, LLError::ELevel); LL_COMMON_API void setFileLevel(const std::string& file_name, LLError::ELevel); diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index 3a1b8d7623..0104d35e53 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -2203,6 +2203,30 @@ class LLAdvancedEnableToggleHackedGodmode : public view_listener_t //// Advanced menu ////------------------------------------------------------------------- + +////////////////// +// DEVELOP MENU // +////////////////// + +class LLDevelopCheckLoggingLevel : public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + U32 level = userdata.asInteger(); + return (static_cast(level) == LLError::getDefaultLevel()); + } +}; + +class LLDevelopSetLoggingLevel : public view_listener_t +{ + bool handleEvent(const LLSD& userdata) + { + U32 level = userdata.asInteger(); + LLError::setDefaultLevel(static_cast(level)); + return true; + } +}; + ////////////////// // ADMIN MENU // ////////////////// @@ -8195,6 +8219,9 @@ void initialize_menus() view_listener_t::addMenu(new LLAdvancedRequestAdminStatus(), "Advanced.RequestAdminStatus"); view_listener_t::addMenu(new LLAdvancedLeaveAdminStatus(), "Advanced.LeaveAdminStatus"); + // Develop >Set logging level + view_listener_t::addMenu(new LLDevelopCheckLoggingLevel(), "Develop.CheckLoggingLevel"); + view_listener_t::addMenu(new LLDevelopSetLoggingLevel(), "Develop.SetLoggingLevel"); // Admin >Object view_listener_t::addMenu(new LLAdminForceTakeCopy(), "Admin.ForceTakeCopy"); diff --git a/indra/newview/skins/default/xui/en/menu_login.xml b/indra/newview/skins/default/xui/en/menu_login.xml index 8ac1ac9e09..101e104eab 100644 --- a/indra/newview/skins/default/xui/en/menu_login.xml +++ b/indra/newview/skins/default/xui/en/menu_login.xml @@ -174,7 +174,58 @@ function="Advanced.WebContentTest" parameter="http://google.com"/> - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- cgit v1.2.3 From 8cf297ab48cb1c13cb76c462e1c3eed572b12738 Mon Sep 17 00:00:00 2001 From: Vadim ProductEngine Date: Fri, 23 Dec 2011 20:16:48 +0200 Subject: EXP-1762 FIXED Pre-select current window resolution. --- indra/newview/llfloatersnapshot.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'indra') diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp index 1fac8624cc..56d53ebdf0 100644 --- a/indra/newview/llfloatersnapshot.cpp +++ b/indra/newview/llfloatersnapshot.cpp @@ -2052,6 +2052,13 @@ BOOL LLFloaterSnapshot::postBuild() gFloaterView->removeChild(this); gSnapshotFloaterView->addChild(this); + // Pre-select "Current Window" resolution. + getChild("profile_size_combo")->selectNthItem(0); + getChild("postcard_size_combo")->selectNthItem(0); + getChild("texture_size_combo")->selectNthItem(0); + getChild("local_size_combo")->selectNthItem(0); + getChild("local_format_combo")->selectNthItem(0); + impl.mPreviewHandle = previewp->getHandle(); impl.updateControls(this); impl.updateLayout(this); -- cgit v1.2.3 From 032a5e45728597106e07d2d22de3799aaaaf4923 Mon Sep 17 00:00:00 2001 From: Ima Mechanique Date: Sun, 25 Dec 2011 23:09:32 +0000 Subject: Replacing file filter for windows that was mistakenly removed. --- indra/newview/llfilepicker.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'indra') diff --git a/indra/newview/llfilepicker.cpp b/indra/newview/llfilepicker.cpp index ceb4060bc2..8024755e86 100644 --- a/indra/newview/llfilepicker.cpp +++ b/indra/newview/llfilepicker.cpp @@ -502,6 +502,14 @@ BOOL LLFilePicker::getSaveFile(ESaveFilter filter, const std::string& filename) L"Compressed Images (*.j2c)\0*.j2c\0" \ L"\0"; break; + case FFSAVE_SCRIPT: + if (filename.empty()) + { + wcsncpy( mFilesW,L"untitled.lsl", FILENAME_BUFFER_SIZE); + } + mOFN.lpstrDefExt = L"txt"; + mOFN.lpstrFilter = L"LSL Files (*.lsl)\0*.lsl\0" L"\0"; + break; default: return FALSE; } -- cgit v1.2.3 From 1a537bb194279f448d343f83b653e1c200bb9041 Mon Sep 17 00:00:00 2001 From: Paul ProductEngine Date: Mon, 26 Dec 2011 15:57:42 +0200 Subject: EXP-1618 (Serious truncation in top-right status bar "Buy $S" and "Shop" buttons in many languages) - Adjusted width of "shop" button in all locales. Had to override width parameter in xml files of all locales. If to set one value with extra room space for all locales it will look rather ugly for many locales including EN. --- indra/newview/skins/default/xui/de/panel_status_bar.xml | 2 +- indra/newview/skins/default/xui/en/panel_status_bar.xml | 3 +-- indra/newview/skins/default/xui/es/panel_status_bar.xml | 2 +- indra/newview/skins/default/xui/fr/panel_status_bar.xml | 2 +- indra/newview/skins/default/xui/it/panel_status_bar.xml | 2 +- indra/newview/skins/default/xui/ja/panel_status_bar.xml | 2 +- indra/newview/skins/default/xui/pt/panel_status_bar.xml | 2 +- indra/newview/skins/default/xui/ru/panel_status_bar.xml | 2 +- indra/newview/skins/default/xui/tr/panel_status_bar.xml | 2 +- 9 files changed, 9 insertions(+), 10 deletions(-) (limited to 'indra') diff --git a/indra/newview/skins/default/xui/de/panel_status_bar.xml b/indra/newview/skins/default/xui/de/panel_status_bar.xml index d34fcf70bc..2493d60df6 100644 --- a/indra/newview/skins/default/xui/de/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/de/panel_status_bar.xml @@ -18,7 +18,7 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/indra/newview/skins/default/xui/en/panel_preferences_general.xml b/indra/newview/skins/default/xui/en/panel_preferences_general.xml index 4079a80924..9827180aa7 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_general.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_general.xml @@ -420,7 +420,7 @@ follows="left|top" height="29" layout="topleft" - left="50" + left="30" name="busy_response" width="470" word_wrap="true"> diff --git a/indra/newview/skins/default/xui/en/panel_script_ed.xml b/indra/newview/skins/default/xui/en/panel_script_ed.xml index 8d42024386..f6a8af0973 100644 --- a/indra/newview/skins/default/xui/en/panel_script_ed.xml +++ b/indra/newview/skins/default/xui/en/panel_script_ed.xml @@ -54,12 +54,22 @@ label="Save" layout="topleft" name="Save" /> - - + + + + + Logins are currently restricted to employees only. Check www.secondlife.com/status for updates. Second Life logins are temporarily restricted in order to make sure that those in-world have the best possible experience. - + People with free accounts will not be able to access Second Life during this time, to make room for those who have paid for Second Life. Second Life cannot be accessed from this computer. If you feel this is an error, please contact @@ -168,7 +168,7 @@ Please try logging in again in a minute. You are wearing one or more of these objects. Remove them from your avatar and try moving them again. This folder has too many levels of subfolders. Rearrange the interior folders to a maximum of 4 levels deep (Root Folder contains A contains B contains C). This folder contains more than 200 objects. Box some of the items to reduce the object count. - + Click to view this web page Click to view this location's information @@ -188,7 +188,7 @@ Please try logging in again in a minute. Click to view this object's description Click to view this location on a map Click to run the secondlife:// command - + Teleport to @@ -427,9 +427,10 @@ Please try logging in again in a minute. Compressed Images Load Files Choose Directory + Scripts - - + Sleeps script for [SLEEP_TIME] seconds. @@ -1950,7 +1951,7 @@ Returns a string with the requested data about the region Physics invalid none - + Shirt not worn Pants not worn @@ -1987,7 +1988,7 @@ Returns a string with the requested data about the region New [WEARABLE_ITEM] - + Next @@ -2314,7 +2315,7 @@ Returns a string with the requested data about the region Error: script information is only available in your current region Retrieving information... You do not have permission to examine this parcel - + Sitting On Chest Head @@ -2354,7 +2355,7 @@ Returns a string with the requested data about the region HUD Bottom Left HUD Bottom HUD Bottom Right - + Line [LINE], Column [COLUMN] @@ -2367,7 +2368,7 @@ Returns a string with the requested data about the region Content of object - New Script + New Script The Resident you messaged is in 'busy mode' which means they have requested not to be disturbed. Your message will still be shown in their IM panel for later viewing. @@ -2397,7 +2398,7 @@ Returns a string with the requested data about the region Clicks: [TELEPORT] teleport, [MAP] map, [PROFILE] profile (will update after publish) - + You haven't created any Picks or Classifieds. Click the Plus button below to create a Pick or Classified. User has no picks or classifieds @@ -3274,7 +3275,7 @@ If you continue to receive this message, contact the [SUPPORT_SITE]. You have blocked this Resident. Sending a message will automatically unblock them. @@ -3300,7 +3301,7 @@ If you continue to receive this message, contact the [SUPPORT_SITE]. You are not a session moderator. @@ -3313,12 +3314,12 @@ If you continue to receive this message, contact the [SUPPORT_SITE]. Unable to add users to chat session with [RECIPIENT]. Unable to send your message to the chat session with [RECIPIENT]. - + Unable to send your message to the chat session with [RECIPIENT]. @@ -3326,7 +3327,7 @@ If you continue to receive this message, contact the [SUPPORT_SITE]. Error while moderating. @@ -3347,9 +3348,9 @@ If you continue to receive this message, contact the [SUPPORT_SITE]. The session initialization is timed out - + Home position set. - + http://secondlife.com/landing/voicemorphing @@ -3371,20 +3372,20 @@ If you continue to receive this message, contact the [SUPPORT_SITE]. to join a group to upload to publish a classified ad - + Giving L$ [AMOUNT] Uploading costs L$ [AMOUNT] This costs L$ [AMOUNT] Buying selected land for L$ [AMOUNT] This object costs L$ [AMOUNT] - + Everyone Officers Owners Online Uploading... - + Abuse Report @@ -3478,23 +3479,23 @@ Abuse Report [mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt] - + none/none Can't load images larger than [WIDTH]*[HEIGHT] - + Despite our best efforts, something unexpected has gone wrong. - Please check status.secondlifegrid.net to see if there is a known problem with the service. + Please check status.secondlifegrid.net to see if there is a known problem with the service. If you continue to experience problems, please check your network and firewall setup. - Sunday:Monday:Tuesday:Wednesday:Thursday:Friday:Saturday Sun:Mon:Tue:Wed:Thu:Fri:Sat @@ -3527,7 +3528,7 @@ Abuse Report Delete selected item? There are no items in this outfit - + Select an editor using the ExternalEditor setting. Cannot find the external editor you specified. -- cgit v1.2.3 From 41ceee848bbbaec892471b6396bd2d2383d10aa3 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Mon, 9 Jan 2012 08:41:36 -0500 Subject: increment viewer version to 3.2.7 --- indra/llcommon/llversionviewer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h index ec378761c2..7bba3d298f 100644 --- a/indra/llcommon/llversionviewer.h +++ b/indra/llcommon/llversionviewer.h @@ -29,7 +29,7 @@ const S32 LL_VERSION_MAJOR = 3; const S32 LL_VERSION_MINOR = 2; -const S32 LL_VERSION_PATCH = 6; +const S32 LL_VERSION_PATCH = 7; const S32 LL_VERSION_BUILD = 0; const char * const LL_CHANNEL = "Second Life Developer"; -- cgit v1.2.3 From 1fb6dbbf8061c89131669286fef9940af5dffc76 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Mon, 9 Jan 2012 12:26:57 -0500 Subject: Backed out changeset 4fd359f2f1c3 --- indra/llcommon/llversionviewer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h index 7bba3d298f..ec378761c2 100644 --- a/indra/llcommon/llversionviewer.h +++ b/indra/llcommon/llversionviewer.h @@ -29,7 +29,7 @@ const S32 LL_VERSION_MAJOR = 3; const S32 LL_VERSION_MINOR = 2; -const S32 LL_VERSION_PATCH = 7; +const S32 LL_VERSION_PATCH = 6; const S32 LL_VERSION_BUILD = 0; const char * const LL_CHANNEL = "Second Life Developer"; -- cgit v1.2.3 From 3dfb1536fa3bb85f6648a76591e80c3feea9eb83 Mon Sep 17 00:00:00 2001 From: Oz Linden Date: Mon, 9 Jan 2012 08:41:36 -0500 Subject: increment viewer version to 3.2.7 --- indra/llcommon/llversionviewer.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra') diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h index ec378761c2..7bba3d298f 100644 --- a/indra/llcommon/llversionviewer.h +++ b/indra/llcommon/llversionviewer.h @@ -29,7 +29,7 @@ const S32 LL_VERSION_MAJOR = 3; const S32 LL_VERSION_MINOR = 2; -const S32 LL_VERSION_PATCH = 6; +const S32 LL_VERSION_PATCH = 7; const S32 LL_VERSION_BUILD = 0; const char * const LL_CHANNEL = "Second Life Developer"; -- cgit v1.2.3 From 651fdba651dc4ecbb9a40b7c841a13ac1b47e1cc Mon Sep 17 00:00:00 2001 From: eli Date: Mon, 9 Jan 2012 11:42:04 -0800 Subject: sync with viewer-development --- .../skins/default/xui/de/floater_chat_bar.xml | 2 +- .../newview/skins/default/xui/de/notifications.xml | 2 +- .../skins/default/xui/de/panel_status_bar.xml | 2 +- .../skins/default/xui/en/floater_chat_bar.xml | 2 ++ indra/newview/skins/default/xui/en/menu_edit.xml | 3 +++ indra/newview/skins/default/xui/en/menu_viewer.xml | 2 ++ .../newview/skins/default/xui/en/notifications.xml | 22 +++++++++++++++++++++- .../default/xui/en/panel_snapshot_postcard.xml | 8 -------- .../skins/default/xui/en/panel_status_bar.xml | 3 +-- .../skins/default/xui/en/widgets/window_shade.xml | 2 ++ .../skins/default/xui/es/floater_chat_bar.xml | 2 +- .../newview/skins/default/xui/es/notifications.xml | 2 +- .../skins/default/xui/es/panel_status_bar.xml | 2 +- .../skins/default/xui/fr/floater_chat_bar.xml | 2 +- .../newview/skins/default/xui/fr/notifications.xml | 2 +- .../skins/default/xui/fr/panel_status_bar.xml | 2 +- .../skins/default/xui/it/floater_chat_bar.xml | 2 +- .../newview/skins/default/xui/it/notifications.xml | 2 +- .../skins/default/xui/it/panel_status_bar.xml | 2 +- .../skins/default/xui/ja/floater_chat_bar.xml | 2 +- .../newview/skins/default/xui/ja/notifications.xml | 2 +- .../skins/default/xui/ja/panel_status_bar.xml | 2 +- .../newview/skins/default/xui/pl/notifications.xml | 2 +- .../skins/default/xui/pt/floater_chat_bar.xml | 2 +- .../newview/skins/default/xui/pt/notifications.xml | 2 +- .../skins/default/xui/pt/panel_status_bar.xml | 2 +- .../skins/default/xui/ru/floater_chat_bar.xml | 2 +- .../newview/skins/default/xui/ru/notifications.xml | 2 +- .../skins/default/xui/ru/panel_status_bar.xml | 2 +- .../skins/default/xui/tr/floater_chat_bar.xml | 2 +- .../newview/skins/default/xui/tr/notifications.xml | 2 +- .../skins/default/xui/tr/panel_status_bar.xml | 2 +- .../newview/skins/default/xui/zh/notifications.xml | 2 +- 33 files changed, 57 insertions(+), 37 deletions(-) create mode 100644 indra/newview/skins/default/xui/en/widgets/window_shade.xml (limited to 'indra') diff --git a/indra/newview/skins/default/xui/de/floater_chat_bar.xml b/indra/newview/skins/default/xui/de/floater_chat_bar.xml index dc5a7cd681..2464a55665 100644 --- a/indra/newview/skins/default/xui/de/floater_chat_bar.xml +++ b/indra/newview/skins/default/xui/de/floater_chat_bar.xml @@ -1,6 +1,6 @@ - +