diff options
141 files changed, 1724 insertions, 851 deletions
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 5a142f23c9..faf9da8b14 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -231,7 +231,6 @@ elseif(LINUX) libstacktrace.so libtcmalloc.so libuuid.so.1 - libz.so libssl.so.0.9.7 ) diff --git a/indra/cmake/LLAudio.cmake b/indra/cmake/LLAudio.cmake index 89b790c6b0..7c248dfc72 100644 --- a/indra/cmake/LLAudio.cmake +++ b/indra/cmake/LLAudio.cmake @@ -6,4 +6,5 @@ set(LLAUDIO_INCLUDE_DIRS ${LIBS_OPEN_DIR}/llaudio ) -set(LLAUDIO_LIBRARIES llaudio ${OPENAL_LIBRARIES}) +# be exhaustive here +set(LLAUDIO_LIBRARIES llaudio ${VORBISFILE_LIBRARIES} ${VORBIS_LIBRARIES} ${VORBISENC_LIBRARIES} ${OGG_LIBRARIES} ${OPENAL_LIBRARIES}) diff --git a/indra/llcommon/lleventcoro.h b/indra/llcommon/lleventcoro.h index c6d9de171d..1981ae7482 100644 --- a/indra/llcommon/lleventcoro.h +++ b/indra/llcommon/lleventcoro.h @@ -203,9 +203,12 @@ LLSD postAndWait(SELF& self, const LLSD& event, const LLEventPumpOrPumpName& req // request event. LLSD modevent(event); LLEventDetail::storeToLLSDPath(modevent, replyPumpNamePath, replyPump.getPump().getName()); - LL_DEBUGS("lleventcoro") << "postAndWait(): coroutine " << listenerName + LL_DEBUGS("lleventcoro") << "postAndWait(): coroutine " << listenerName << " posting to " << requestPump.getPump().getName() - << ": " << modevent << LL_ENDL; + << LL_ENDL; + + // *NOTE:Mani - Removed because modevent could contain user's hashed passwd. + // << ": " << modevent << LL_ENDL; requestPump.getPump().post(modevent); } LL_DEBUGS("lleventcoro") << "postAndWait(): coroutine " << listenerName diff --git a/indra/llrender/llfontgl.cpp b/indra/llrender/llfontgl.cpp index 9ba0cfc6b8..a28ffbfdc0 100644 --- a/indra/llrender/llfontgl.cpp +++ b/indra/llrender/llfontgl.cpp @@ -446,7 +446,9 @@ F32 LLFontGL::getWidthF32(const llwchar* wchars, S32 begin_offset, S32 max_chars // for the last character we want to measure the greater of its width and xadvance values // so keep track of the difference between these values for the each character we measure // so we can fix things up at the end - width_padding = llmax(0.f, (F32)fgi->mWidth - advance); + width_padding = llmax( 0.f, // always use positive padding amount + width_padding - advance, // previous padding left over after advance of current character + (F32)(fgi->mWidth + fgi->mXBearing) - advance); // difference between width of this character and advance to next character cur_x += advance; llwchar next_char = wchars[i+1]; diff --git a/indra/llui/llflatlistview.cpp b/indra/llui/llflatlistview.cpp index 831ac66d06..64a4824a17 100644 --- a/indra/llui/llflatlistview.cpp +++ b/indra/llui/llflatlistview.cpp @@ -891,7 +891,13 @@ void LLFlatListView::setNoItemsCommentVisible(bool visible) const // We have to update child rect here because of issues with rect after reshaping while creating LLTextbox // It is possible to have invalid LLRect if Flat List is in LLAccordionTab LLRect comment_rect = getLocalRect(); - comment_rect.stretch(-getBorderWidth()); + + // To see comment correctly (EXT - 3244) in mNoItemsCommentTextbox we must get border width + // of LLFlatListView (@see getBorderWidth()) and stretch mNoItemsCommentTextbox to this width + // But getBorderWidth() returns 0 if LLFlatListView not visible. So we have to get border width + // from 'scroll_border' + LLViewBorder* scroll_border = getChild<LLViewBorder>("scroll border"); + comment_rect.stretch(-scroll_border->getBorderWidth()); mNoItemsCommentTextbox->setRect(comment_rect); } mNoItemsCommentTextbox->setVisible(visible); diff --git a/indra/llui/llscrollcontainer.cpp b/indra/llui/llscrollcontainer.cpp index f6caed4617..a5e47e8547 100644 --- a/indra/llui/llscrollcontainer.cpp +++ b/indra/llui/llscrollcontainer.cpp @@ -235,18 +235,37 @@ BOOL LLScrollContainer::handleKeyHere(KEY key, MASK mask) BOOL LLScrollContainer::handleScrollWheel( S32 x, S32 y, S32 clicks ) { - if(LLUICtrl::handleScrollWheel(x,y,clicks)) + // Give event to my child views - they may have scroll bars + // (Bad UI design, but technically possible.) + if (LLUICtrl::handleScrollWheel(x,y,clicks)) return TRUE; - for( S32 i = 0; i < SCROLLBAR_COUNT; i++ ) - { - // Note: tries vertical and then horizontal + // When the vertical scrollbar is visible, scroll wheel + // only affects vertical scrolling. It's confusing to have + // scroll wheel perform both vertical and horizontal in a + // single container. + LLScrollbar* vertical = mScrollbar[VERTICAL]; + if (vertical->getVisible() + && vertical->getEnabled()) + { // Pretend the mouse is over the scrollbar - if( mScrollbar[i]->handleScrollWheel( 0, 0, clicks ) ) + if (vertical->handleScrollWheel( 0, 0, clicks ) ) { updateScroll(); - return TRUE; } + // Always eat the event + return TRUE; + } + + LLScrollbar* horizontal = mScrollbar[HORIZONTAL]; + // Test enablement and visibility for consistency with + // LLView::childrenHandleScrollWheel(). + if (horizontal->getVisible() + && horizontal->getEnabled() + && horizontal->handleScrollWheel( 0, 0, clicks ) ) + { + updateScroll(); + return TRUE; } return FALSE; } diff --git a/indra/llui/lltextbase.cpp b/indra/llui/lltextbase.cpp index 82a3c5cf47..2a9515171a 100644 --- a/indra/llui/lltextbase.cpp +++ b/indra/llui/lltextbase.cpp @@ -194,7 +194,7 @@ LLTextBase::LLTextBase(const LLTextBase::Params &p) mHAlign(p.font_halign), mLineSpacingMult(p.line_spacing.multiple), mLineSpacingPixels(p.line_spacing.pixels), - mClipPartial(p.clip_partial), + mClipPartial(p.clip_partial && !p.allow_scroll), mTrackEnd( p.track_end ), mScrollIndex(-1), mSelectionStart( 0 ), @@ -529,11 +529,6 @@ void LLTextBase::drawText() S32 next_line = cur_line + 1; line_info& line = mLineInfoList[cur_line]; - if ((line.mRect.mTop - scrolled_view_rect.mBottom) < mTextRect.mBottom) - { - break; - } - S32 next_start = -1; S32 line_end = text_len; @@ -543,17 +538,9 @@ void LLTextBase::drawText() line_end = next_start; } - // A patch for EXT-1944 "Implement ellipses in message well" - // introduced a regression where text in SansSerif ending in the - // letter "r" is clipped. This may be due to an off-by-one in - // font width information out of FreeType with our fractional font - // sizes. For now, just make an extra pixel of space to resolve - // EXT-2971 "Letter R doesn't show when it's the last letter in a - // text block". See James/Richard for details. - const S32 FIX_CLIPPING_HACK = 1; LLRect text_rect(line.mRect.mLeft + mTextRect.mLeft - scrolled_view_rect.mLeft, line.mRect.mTop - scrolled_view_rect.mBottom + mTextRect.mBottom, - llmin(mDocumentView->getRect().getWidth(), line.mRect.mRight) - scrolled_view_rect.mLeft + FIX_CLIPPING_HACK, + llmin(mDocumentView->getRect().getWidth(), line.mRect.mRight) - scrolled_view_rect.mLeft, line.mRect.mBottom - scrolled_view_rect.mBottom + mTextRect.mBottom); // draw a single line of text @@ -1086,6 +1073,10 @@ void LLTextBase::reflow(S32 start_index) { mReflowNeeded = FALSE; + // shrink document to minimum size (visible portion of text widget) + // to force inlined widgets with follows set to shrink + mDocumentView->setShape(mTextRect); + bool scrolled_to_bottom = mScroller ? mScroller->isAtBottom() : false; LLRect old_cursor_rect = getLocalRectFromDocIndex(mCursorPos); @@ -1348,13 +1339,11 @@ std::pair<S32, S32> LLTextBase::getVisibleLines(bool fully_visible) if (fully_visible) { - // binary search for line that starts before top of visible buffer and starts before end of visible buffer first_iter = std::lower_bound(mLineInfoList.begin(), mLineInfoList.end(), visible_region.mTop, compare_top()); last_iter = std::lower_bound(mLineInfoList.begin(), mLineInfoList.end(), visible_region.mBottom, compare_bottom()); } else { - // binary search for line that starts before top of visible buffer and starts before end of visible buffer first_iter = std::lower_bound(mLineInfoList.begin(), mLineInfoList.end(), visible_region.mTop, compare_bottom()); last_iter = std::lower_bound(mLineInfoList.begin(), mLineInfoList.end(), visible_region.mBottom, compare_top()); } @@ -2105,7 +2094,7 @@ void LLTextBase::updateRects() LLRect doc_rect = mContentsRect; // use old mTextRect constraint document to width of viewable region doc_rect.mLeft = 0; - doc_rect.mRight = mTextRect.getWidth(); + doc_rect.mRight = llmax(mTextRect.getWidth(), mContentsRect.mRight); mDocumentView->setShape(doc_rect); @@ -2125,7 +2114,7 @@ void LLTextBase::updateRects() } // update document container again, using new mTextRect - doc_rect.mRight = doc_rect.mLeft + mTextRect.getWidth(); + doc_rect.mRight = llmax(mTextRect.getWidth(), mContentsRect.mRight); mDocumentView->setShape(doc_rect); } @@ -2218,6 +2207,12 @@ LLNormalTextSegment::LLNormalTextSegment( const LLStyleSP& style, S32 start, S32 mEditor(editor) { mFontHeight = llceil(mStyle->getFont()->getLineHeight()); + + LLUIImagePtr image = mStyle->getImage(); + if (image.notNull()) + { + mImageLoadedConnection = image->addLoadedCallback(boost::bind(&LLTextBase::needsReflow, &mEditor)); + } } LLNormalTextSegment::LLNormalTextSegment( const LLColor4& color, S32 start, S32 end, LLTextBase& editor, BOOL is_visible) @@ -2230,6 +2225,12 @@ LLNormalTextSegment::LLNormalTextSegment( const LLColor4& color, S32 start, S32 mFontHeight = llceil(mStyle->getFont()->getLineHeight()); } +LLNormalTextSegment::~LLNormalTextSegment() +{ + mImageLoadedConnection.disconnect(); +} + + F32 LLNormalTextSegment::draw(S32 start, S32 end, S32 selection_start, S32 selection_end, const LLRect& draw_rect) { if( end - start > 0 ) @@ -2243,7 +2244,7 @@ F32 LLNormalTextSegment::draw(S32 start, S32 end, S32 selection_start, S32 selec // Center the image vertically S32 image_bottom = draw_rect.getCenterY() - (style_image_height/2); image->draw(draw_rect.mLeft, image_bottom, - style_image_width, style_image_height); + style_image_width, style_image_height, color); } return drawClippedSegment( getStart() + start, getStart() + end, selection_start, selection_end, draw_rect); diff --git a/indra/llui/lltextbase.h b/indra/llui/lltextbase.h index c60b040655..0138ca3704 100644 --- a/indra/llui/lltextbase.h +++ b/indra/llui/lltextbase.h @@ -136,7 +136,6 @@ public: // TODO: move into LLTextSegment? void createUrlContextMenu(S32 x, S32 y, const std::string &url); // create a popup context menu for the given Url - // Text accessors // TODO: add optional style parameter virtual void setText(const LLStringExplicit &utf8str , const LLStyle::Params& input_params = LLStyle::Params()); // uses default style @@ -148,6 +147,8 @@ public: LLWString getWText() const; void appendText(const std::string &new_text, bool prepend_newline, const LLStyle::Params& input_params = LLStyle::Params()); + // force reflow of text + void needsReflow() { mReflowNeeded = TRUE; } S32 getLength() const { return getWText().length(); } S32 getLineCount() const { return mLineInfoList.size(); } @@ -162,7 +163,6 @@ public: S32 getVPad() { return mVPad; } S32 getHPad() { return mHPad; } - S32 getDocIndexFromLocalCoord( S32 local_x, S32 local_y, BOOL round ) const; LLRect getLocalRectFromDocIndex(S32 pos) const; LLRect getDocRectFromDocIndex(S32 pos) const; @@ -180,6 +180,7 @@ public: void changePage( S32 delta ); void changeLine( S32 delta ); + const LLFontGL* getDefaultFont() const { return mDefaultFont; } public: @@ -303,7 +304,6 @@ protected: // misc void updateRects(); - void needsReflow() { mReflowNeeded = TRUE; } void needsScroll() { mScrollNeeded = TRUE; } void replaceUrlLabel(const std::string &url, const std::string &label); @@ -426,6 +426,7 @@ class LLNormalTextSegment : public LLTextSegment public: LLNormalTextSegment( const LLStyleSP& style, S32 start, S32 end, LLTextBase& editor ); LLNormalTextSegment( const LLColor4& color, S32 start, S32 end, LLTextBase& editor, BOOL is_visible = TRUE); + ~LLNormalTextSegment(); /*virtual*/ bool getDimensions(S32 first_char, S32 num_chars, S32& width, S32& height) const; /*virtual*/ S32 getOffset(S32 segment_local_x_coord, S32 start_offset, S32 num_chars, bool round) const; @@ -457,6 +458,7 @@ protected: S32 mFontHeight; LLKeywordToken* mToken; std::string mTooltip; + boost::signals2::connection mImageLoadedConnection; }; class LLIndexSegment : public LLTextSegment diff --git a/indra/llui/llui.cpp b/indra/llui/llui.cpp index 4cf503b413..6603887905 100644 --- a/indra/llui/llui.cpp +++ b/indra/llui/llui.cpp @@ -1847,8 +1847,8 @@ LLControlGroup& LLUI::getControlControlGroup (const std::string& controlname) // spawn_x and spawn_y are top left corner of view in screen GL coordinates void LLUI::positionViewNearMouse(LLView* view, S32 spawn_x, S32 spawn_y) { - const S32 CURSOR_HEIGHT = 18; // Approximate "normal" cursor size - const S32 CURSOR_WIDTH = 9; + const S32 CURSOR_HEIGHT = 16; // Approximate "normal" cursor size + const S32 CURSOR_WIDTH = 8; LLView* parent = view->getParent(); @@ -1866,7 +1866,7 @@ void LLUI::positionViewNearMouse(LLView* view, S32 spawn_x, S32 spawn_y) LLRect virtual_window_rect = parent->getLocalRect(); LLRect mouse_rect; - const S32 MOUSE_CURSOR_PADDING = 5; + const S32 MOUSE_CURSOR_PADDING = 1; mouse_rect.setLeftTopAndSize(mouse_x - MOUSE_CURSOR_PADDING, mouse_y + MOUSE_CURSOR_PADDING, CURSOR_WIDTH + MOUSE_CURSOR_PADDING * 2, diff --git a/indra/llui/lluiimage.cpp b/indra/llui/lluiimage.cpp index a8683e55c3..f941f391eb 100644 --- a/indra/llui/lluiimage.cpp +++ b/indra/llui/lluiimage.cpp @@ -39,18 +39,20 @@ #include "lluiimage.h" #include "llui.h" -LLUIImage::LLUIImage(const std::string& name, LLPointer<LLTexture> image) : - mName(name), - mImage(image), - mScaleRegion(0.f, 1.f, 1.f, 0.f), - mClipRegion(0.f, 1.f, 1.f, 0.f), - mUniformScaling(TRUE), - mNoClip(TRUE) +LLUIImage::LLUIImage(const std::string& name, LLPointer<LLTexture> image) +: mName(name), + mImage(image), + mScaleRegion(0.f, 1.f, 1.f, 0.f), + mClipRegion(0.f, 1.f, 1.f, 0.f), + mUniformScaling(TRUE), + mNoClip(TRUE), + mImageLoaded(NULL) { } LLUIImage::~LLUIImage() { + delete mImageLoaded; } void LLUIImage::setClipRegion(const LLRectf& region) @@ -138,6 +140,25 @@ S32 LLUIImage::getTextureHeight() const return mImage->getHeight(0); } +boost::signals2::connection LLUIImage::addLoadedCallback( const image_loaded_signal_t::slot_type& cb ) +{ + if (!mImageLoaded) + { + mImageLoaded = new image_loaded_signal_t(); + } + return mImageLoaded->connect(cb); +} + + +void LLUIImage::onImageLoaded() +{ + if (mImageLoaded) + { + (*mImageLoaded)(); + } +} + + namespace LLInitParam { LLUIImage* TypedParam<LLUIImage*>::getValueFromBlock() const @@ -170,3 +191,4 @@ namespace LLInitParam return (a == b); } } + diff --git a/indra/llui/lluiimage.h b/indra/llui/lluiimage.h index 9d734bcfdf..5fa9610ab2 100644 --- a/indra/llui/lluiimage.h +++ b/indra/llui/lluiimage.h @@ -39,6 +39,7 @@ #include "llrefcount.h" #include "llrect.h" #include <boost/function.hpp> +#include <boost/signals2.hpp> #include "llinitparam.h" #include "lltexture.h" @@ -47,6 +48,8 @@ extern const LLColor4 UI_VERTEX_COLOR; class LLUIImage : public LLRefCount { public: + typedef boost::signals2::signal<void (void)> image_loaded_signal_t; + LLUIImage(const std::string& name, LLPointer<LLTexture> image); virtual ~LLUIImage(); @@ -77,7 +80,13 @@ public: S32 getTextureWidth() const; S32 getTextureHeight() const; + boost::signals2::connection addLoadedCallback( const image_loaded_signal_t::slot_type& cb ); + + void onImageLoaded(); + protected: + image_loaded_signal_t* mImageLoaded; + std::string mName; LLRectf mScaleRegion; LLRectf mClipRegion; diff --git a/indra/llwindow/llwindow.h b/indra/llwindow/llwindow.h index 8602225108..127dbf45e0 100644 --- a/indra/llwindow/llwindow.h +++ b/indra/llwindow/llwindow.h @@ -70,6 +70,8 @@ public: virtual BOOL getMinimized() = 0; virtual BOOL getMaximized() = 0; virtual BOOL maximize() = 0; + virtual void minimize() = 0; + virtual void restore() = 0; BOOL getFullscreen() { return mFullscreen; }; virtual BOOL getPosition(LLCoordScreen *position) = 0; virtual BOOL getSize(LLCoordScreen *size) = 0; diff --git a/indra/llwindow/llwindowheadless.h b/indra/llwindow/llwindowheadless.h index 3cffd2bbf6..59fc2ec657 100644 --- a/indra/llwindow/llwindowheadless.h +++ b/indra/llwindow/llwindowheadless.h @@ -45,6 +45,8 @@ public: /*virtual*/ BOOL getMinimized() {return FALSE;}; /*virtual*/ BOOL getMaximized() {return FALSE;}; /*virtual*/ BOOL maximize() {return FALSE;}; + /*virtual*/ void minimize() {}; + /*virtual*/ void restore() {}; /*virtual*/ BOOL getFullscreen() {return FALSE;}; /*virtual*/ BOOL getPosition(LLCoordScreen *position) {return FALSE;}; /*virtual*/ BOOL getSize(LLCoordScreen *size) {return FALSE;}; diff --git a/indra/llwindow/llwindowmacosx.cpp b/indra/llwindow/llwindowmacosx.cpp index 86bbb0bcf8..ed62faece6 100644 --- a/indra/llwindow/llwindowmacosx.cpp +++ b/indra/llwindow/llwindowmacosx.cpp @@ -1033,6 +1033,7 @@ void LLWindowMacOSX::hide() HideWindow(mWindow); } +//virtual void LLWindowMacOSX::minimize() { setMouseClipping(FALSE); @@ -1040,6 +1041,7 @@ void LLWindowMacOSX::minimize() CollapseWindow(mWindow, true); } +//virtual void LLWindowMacOSX::restore() { show(); diff --git a/indra/llwindow/llwindowmacosx.h b/indra/llwindow/llwindowmacosx.h index 17074080eb..fbfa07fab4 100644 --- a/indra/llwindow/llwindowmacosx.h +++ b/indra/llwindow/llwindowmacosx.h @@ -56,6 +56,8 @@ public: /*virtual*/ BOOL getMinimized(); /*virtual*/ BOOL getMaximized(); /*virtual*/ BOOL maximize(); + /*virtual*/ void minimize(); + /*virtual*/ void restore(); /*virtual*/ BOOL getFullscreen(); /*virtual*/ BOOL getPosition(LLCoordScreen *position); /*virtual*/ BOOL getSize(LLCoordScreen *size); @@ -139,9 +141,6 @@ protected: // Restore the display resolution to its value before we ran the app. BOOL resetDisplayResolution(); - void minimize(); - void restore(); - BOOL shouldPostQuit() { return mPostQuit; } diff --git a/indra/llwindow/llwindowmesaheadless.h b/indra/llwindow/llwindowmesaheadless.h index 46b62b914c..06146afde7 100644 --- a/indra/llwindow/llwindowmesaheadless.h +++ b/indra/llwindow/llwindowmesaheadless.h @@ -49,6 +49,8 @@ public: /*virtual*/ BOOL getMinimized() {return FALSE;}; /*virtual*/ BOOL getMaximized() {return FALSE;}; /*virtual*/ BOOL maximize() {return FALSE;}; + /*virtual*/ void minimize() {}; + /*virtual*/ void restore() {}; /*virtual*/ BOOL getFullscreen() {return FALSE;}; /*virtual*/ BOOL getPosition(LLCoordScreen *position) {return FALSE;}; /*virtual*/ BOOL getSize(LLCoordScreen *size) {return FALSE;}; diff --git a/indra/llwindow/llwindowsdl.cpp b/indra/llwindow/llwindowsdl.cpp index e671fc8a83..bfdf1147a1 100644 --- a/indra/llwindow/llwindowsdl.cpp +++ b/indra/llwindow/llwindowsdl.cpp @@ -839,11 +839,13 @@ void LLWindowSDL::hide() // *FIX: What to do with SDL? } +//virtual void LLWindowSDL::minimize() { // *FIX: What to do with SDL? } +//virtual void LLWindowSDL::restore() { // *FIX: What to do with SDL? diff --git a/indra/llwindow/llwindowsdl.h b/indra/llwindow/llwindowsdl.h index dcf41291ec..0ba1c861da 100644 --- a/indra/llwindow/llwindowsdl.h +++ b/indra/llwindow/llwindowsdl.h @@ -62,6 +62,8 @@ public: /*virtual*/ BOOL getMinimized(); /*virtual*/ BOOL getMaximized(); /*virtual*/ BOOL maximize(); + /*virtual*/ void minimize(); + /*virtual*/ void restore(); /*virtual*/ BOOL getFullscreen(); /*virtual*/ BOOL getPosition(LLCoordScreen *position); /*virtual*/ BOOL getSize(LLCoordScreen *size); @@ -165,9 +167,6 @@ protected: // Go back to last fullscreen display resolution. BOOL setFullscreenResolution(); - void minimize(); - void restore(); - BOOL shouldPostQuit() { return mPostQuit; } protected: diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp index c608c21d05..3b9c840e72 100644 --- a/indra/llwindow/llwindowwin32.cpp +++ b/indra/llwindow/llwindowwin32.cpp @@ -643,6 +643,7 @@ void LLWindowWin32::hide() ShowWindow(mWindowHandle, SW_HIDE); } +//virtual void LLWindowWin32::minimize() { setMouseClipping(FALSE); @@ -650,7 +651,7 @@ void LLWindowWin32::minimize() ShowWindow(mWindowHandle, SW_MINIMIZE); } - +//virtual void LLWindowWin32::restore() { ShowWindow(mWindowHandle, SW_RESTORE); diff --git a/indra/llwindow/llwindowwin32.h b/indra/llwindow/llwindowwin32.h index e14324c9f1..e4e9179db7 100644 --- a/indra/llwindow/llwindowwin32.h +++ b/indra/llwindow/llwindowwin32.h @@ -54,6 +54,8 @@ public: /*virtual*/ BOOL getMinimized(); /*virtual*/ BOOL getMaximized(); /*virtual*/ BOOL maximize(); + /*virtual*/ void minimize(); + /*virtual*/ void restore(); /*virtual*/ BOOL getFullscreen(); /*virtual*/ BOOL getPosition(LLCoordScreen *position); /*virtual*/ BOOL getSize(LLCoordScreen *size); @@ -137,9 +139,6 @@ protected: // Restore the display resolution to its value before we ran the app. BOOL resetDisplayResolution(); - void minimize(); - void restore(); - BOOL shouldPostQuit() { return mPostQuit; } void fillCompositionForm(const LLRect& bounds, COMPOSITIONFORM *form); diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 9f525d82b9..57d67bd560 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -448,6 +448,7 @@ set(viewer_SOURCE_FILES llurlsimstring.cpp llurlwhitelist.cpp llvectorperfoptions.cpp + llversioninfo.cpp llviewchildren.cpp llviewerassetstorage.cpp llviewerassettype.cpp @@ -497,7 +498,6 @@ set(viewer_SOURCE_FILES llviewertextureanim.cpp llviewertexturelist.cpp llviewerthrottle.cpp - llviewerversion.cpp llviewervisualparam.cpp llviewerwindow.cpp llviewerwindowlistener.cpp @@ -953,6 +953,7 @@ set(viewer_HEADER_FILES llurlsimstring.h llurlwhitelist.h llvectorperfoptions.h + llversioninfo.h llviewchildren.h llviewerassetstorage.h llviewerassettype.h @@ -999,7 +1000,6 @@ set(viewer_HEADER_FILES llviewertextureanim.h llviewertexturelist.h llviewerthrottle.h - llviewerversion.h llviewervisualparam.h llviewerwindow.h llviewerwindowlistener.h @@ -1523,7 +1523,7 @@ target_link_libraries(${VIEWER_BINARY_NAME} ${BOOST_REGEX_LIBRARY} ${DBUSGLIB_LIBRARIES} ${OPENGL_LIBRARIES} - ${FMODWRAPPER_LIBRARY} + ${FMODWRAPPER_LIBRARY} # must come after LLAudio ${OPENGL_LIBRARIES} ${SDL_LIBRARY} ${SMARTHEAP_LIBRARY} diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index a647bc09f2..5e2c6554d2 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -1044,7 +1044,7 @@ <key>Type</key> <string>S32</string> <key>Value</key> - <integer>10</integer> + <integer>4</integer> </map> <key>ButtonHeight</key> <map> @@ -1055,7 +1055,7 @@ <key>Type</key> <string>S32</string> <key>Value</key> - <integer>20</integer> + <integer>23</integer> </map> <key>ButtonHeightSmall</key> <map> @@ -1066,7 +1066,7 @@ <key>Type</key> <string>S32</string> <key>Value</key> - <integer>16</integer> + <integer>23</integer> </map> <key>ButtonVPad</key> <map> diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp index 9af25a90f1..9a1b749ba7 100644 --- a/indra/newview/llappviewer.cpp +++ b/indra/newview/llappviewer.cpp @@ -35,8 +35,7 @@ #include "llappviewer.h" // Viewer includes -#include "llversionviewer.h" -#include "llviewerversion.h" +#include "llversioninfo.h" #include "llfeaturemanager.h" #include "lluictrlfactory.h" #include "lltexteditor.h" @@ -652,7 +651,7 @@ bool LLAppViewer::init() // Build a string representing the current version number. gCurrentVersion = llformat("%s %s", gSavedSettings.getString("VersionChannelName").c_str(), - llGetViewerVersion().c_str()); + LLVersionInfo::getVersion().c_str()); ////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////// @@ -1873,7 +1872,7 @@ bool LLAppViewer::initConfiguration() gSavedSettings.setString("ClientSettingsFile", gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, getSettingsFilename("Default", "Global"))); - gSavedSettings.setString("VersionChannelName", LL_CHANNEL); + gSavedSettings.setString("VersionChannelName", LLVersionInfo::getChannel()); #ifndef LL_RELEASE_FOR_DOWNLOAD // provide developer build only overrides for these control variables that are not @@ -2484,10 +2483,10 @@ void LLAppViewer::writeSystemInfo() gDebugInfo["SLLog"] = LLError::logFileName(); gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("VersionChannelName"); - gDebugInfo["ClientInfo"]["MajorVersion"] = LL_VERSION_MAJOR; - gDebugInfo["ClientInfo"]["MinorVersion"] = LL_VERSION_MINOR; - gDebugInfo["ClientInfo"]["PatchVersion"] = LL_VERSION_PATCH; - gDebugInfo["ClientInfo"]["BuildVersion"] = LL_VERSION_BUILD; + gDebugInfo["ClientInfo"]["MajorVersion"] = LLVersionInfo::getMajor(); + gDebugInfo["ClientInfo"]["MinorVersion"] = LLVersionInfo::getMinor(); + gDebugInfo["ClientInfo"]["PatchVersion"] = LLVersionInfo::getPatch(); + gDebugInfo["ClientInfo"]["BuildVersion"] = LLVersionInfo::getBuild(); gDebugInfo["CAFilename"] = gDirUtilp->getCAFile(); @@ -2521,7 +2520,7 @@ void LLAppViewer::writeSystemInfo() // Dump some debugging info LL_INFOS("SystemInfo") << LLTrans::getString("APP_NAME") - << " version " << llGetViewerShortVersion() << LL_ENDL; + << " version " << LLVersionInfo::getShortVersion() << LL_ENDL; // Dump the local time and time zone time_t now; @@ -2575,10 +2574,10 @@ void LLAppViewer::handleViewerCrash() //to check against no matter what gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("VersionChannelName"); - gDebugInfo["ClientInfo"]["MajorVersion"] = LL_VERSION_MAJOR; - gDebugInfo["ClientInfo"]["MinorVersion"] = LL_VERSION_MINOR; - gDebugInfo["ClientInfo"]["PatchVersion"] = LL_VERSION_PATCH; - gDebugInfo["ClientInfo"]["BuildVersion"] = LL_VERSION_BUILD; + gDebugInfo["ClientInfo"]["MajorVersion"] = LLVersionInfo::getMajor(); + gDebugInfo["ClientInfo"]["MinorVersion"] = LLVersionInfo::getMinor(); + gDebugInfo["ClientInfo"]["PatchVersion"] = LLVersionInfo::getPatch(); + gDebugInfo["ClientInfo"]["BuildVersion"] = LLVersionInfo::getBuild(); LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); if ( parcel && parcel->getMusicURL()[0]) @@ -4161,10 +4160,10 @@ void LLAppViewer::handleLoginComplete() // Store some data to DebugInfo in case of a freeze. gDebugInfo["ClientInfo"]["Name"] = gSavedSettings.getString("VersionChannelName"); - gDebugInfo["ClientInfo"]["MajorVersion"] = LL_VERSION_MAJOR; - gDebugInfo["ClientInfo"]["MinorVersion"] = LL_VERSION_MINOR; - gDebugInfo["ClientInfo"]["PatchVersion"] = LL_VERSION_PATCH; - gDebugInfo["ClientInfo"]["BuildVersion"] = LL_VERSION_BUILD; + gDebugInfo["ClientInfo"]["MajorVersion"] = LLVersionInfo::getMajor(); + gDebugInfo["ClientInfo"]["MinorVersion"] = LLVersionInfo::getMinor(); + gDebugInfo["ClientInfo"]["PatchVersion"] = LLVersionInfo::getPatch(); + gDebugInfo["ClientInfo"]["BuildVersion"] = LLVersionInfo::getBuild(); LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); if ( parcel && parcel->getMusicURL()[0]) diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp index d90901612a..30967677e8 100644 --- a/indra/newview/llchiclet.cpp +++ b/indra/newview/llchiclet.cpp @@ -61,6 +61,7 @@ static LLDefaultChildRegistry::Register<LLIMP2PChiclet> t3("chiclet_im_p2p"); static LLDefaultChildRegistry::Register<LLIMGroupChiclet> t4("chiclet_im_group"); static LLDefaultChildRegistry::Register<LLAdHocChiclet> t5("chiclet_im_adhoc"); static LLDefaultChildRegistry::Register<LLScriptChiclet> t6("chiclet_script"); +static LLDefaultChildRegistry::Register<LLInvOfferChiclet> t7("chiclet_offer"); static const LLRect CHICLET_RECT(0, 25, 25, 0); static const LLRect CHICLET_ICON_RECT(0, 22, 22, 0); @@ -1010,12 +1011,34 @@ void im_chiclet_callback(LLChicletPanel* panel, const LLSD& data){ } } +void object_chiclet_callback(const LLSD& data) +{ + LLUUID object_id = data["object_id"]; + bool new_message = data["new_message"]; + + std::list<LLChiclet*> chiclets = LLIMChiclet::sFindChicletsSignal(object_id); + std::list<LLChiclet *>::iterator iter; + for (iter = chiclets.begin(); iter != chiclets.end(); iter++) + { + LLIMChiclet* chiclet = dynamic_cast<LLIMChiclet*>(*iter); + if (chiclet != NULL) + { + if(data.has("unread")) + { + chiclet->setCounter(data["unread"]); + } + chiclet->setShowNewMessagesIcon(new_message); + } + } +} BOOL LLChicletPanel::postBuild() { LLPanel::postBuild(); LLIMModel::instance().addNewMsgCallback(boost::bind(im_chiclet_callback, this, _1)); LLIMModel::instance().addNoUnreadMsgsCallback(boost::bind(im_chiclet_callback, this, _1)); + LLScriptFloaterManager::getInstance()->addNewObjectCallback(boost::bind(object_chiclet_callback, _1)); + LLScriptFloaterManager::getInstance()->addToggleObjectFloaterCallback(boost::bind(object_chiclet_callback, _1)); LLIMChiclet::sFindChicletsSignal.connect(boost::bind(&LLChicletPanel::findChiclet<LLChiclet>, this, _1)); LLVoiceChannel::setCurrentVoiceChannelChangedCallback(boost::bind(&LLChicletPanel::onCurrentVoiceChannelChanged, this, _1)); @@ -1616,6 +1639,11 @@ void LLScriptChiclet::setSessionId(const LLUUID& session_id) } } +void LLScriptChiclet::setCounter(S32 counter) +{ + setShowNewMessagesIcon( counter > 0 ); +} + void LLScriptChiclet::onMouseDown() { LLScriptFloaterManager::getInstance()->toggleScriptFloater(getSessionId()); @@ -1672,6 +1700,11 @@ void LLInvOfferChiclet::setSessionId(const LLUUID& session_id) } } +void LLInvOfferChiclet::setCounter(S32 counter) +{ + setShowNewMessagesIcon( counter > 0 ); +} + void LLInvOfferChiclet::onMouseDown() { LLScriptFloaterManager::instance().toggleScriptFloater(getSessionId()); diff --git a/indra/newview/llchiclet.h b/indra/newview/llchiclet.h index 06d25f081a..854907fb2d 100644 --- a/indra/newview/llchiclet.h +++ b/indra/newview/llchiclet.h @@ -389,7 +389,7 @@ public: * Made public so that it can be triggered from outside * (more specifically, from the Active IM window). */ - void onMouseDown(); + virtual void onMouseDown(); protected: @@ -594,7 +594,7 @@ public: /*virtual*/ void setSessionId(const LLUUID& session_id); - /*virtual*/ void setCounter(S32 counter){} + /*virtual*/ void setCounter(S32 counter); /*virtual*/ S32 getCounter() { return 0; } @@ -634,7 +634,7 @@ public: /*virtual*/ void setSessionId(const LLUUID& session_id); - /*virtual*/ void setCounter(S32 counter){} + /*virtual*/ void setCounter(S32 counter); /*virtual*/ S32 getCounter() { return 0; } diff --git a/indra/newview/llcurrencyuimanager.cpp b/indra/newview/llcurrencyuimanager.cpp index 544711a862..00c05445e1 100644 --- a/indra/newview/llcurrencyuimanager.cpp +++ b/indra/newview/llcurrencyuimanager.cpp @@ -36,7 +36,7 @@ #include "lltextbox.h" #include "lllineeditor.h" #include "llviewercontrol.h" -#include "llversionviewer.h" +#include "llversioninfo.h" #include "llcurrencyuimanager.h" @@ -170,10 +170,10 @@ void LLCurrencyUIManager::Impl::updateCurrencyInfo() gAgent.getSecureSessionID().asString()); keywordArgs.appendInt("currencyBuy", mUserCurrencyBuy); keywordArgs.appendString("viewerChannel", gSavedSettings.getString("VersionChannelName")); - keywordArgs.appendInt("viewerMajorVersion", LL_VERSION_MAJOR); - keywordArgs.appendInt("viewerMinorVersion", LL_VERSION_MINOR); - keywordArgs.appendInt("viewerPatchVersion", LL_VERSION_PATCH); - keywordArgs.appendInt("viewerBuildVersion", LL_VERSION_BUILD); + keywordArgs.appendInt("viewerMajorVersion", LLVersionInfo::getMajor()); + keywordArgs.appendInt("viewerMinorVersion", LLVersionInfo::getMinor()); + keywordArgs.appendInt("viewerPatchVersion", LLVersionInfo::getPatch()); + keywordArgs.appendInt("viewerBuildVersion", LLVersionInfo::getBuild()); LLXMLRPCValue params = LLXMLRPCValue::createArray(); params.append(keywordArgs); @@ -244,10 +244,10 @@ void LLCurrencyUIManager::Impl::startCurrencyBuy(const std::string& password) keywordArgs.appendString("password", password); } keywordArgs.appendString("viewerChannel", gSavedSettings.getString("VersionChannelName")); - keywordArgs.appendInt("viewerMajorVersion", LL_VERSION_MAJOR); - keywordArgs.appendInt("viewerMinorVersion", LL_VERSION_MINOR); - keywordArgs.appendInt("viewerPatchVersion", LL_VERSION_PATCH); - keywordArgs.appendInt("viewerBuildVersion", LL_VERSION_BUILD); + keywordArgs.appendInt("viewerMajorVersion", LLVersionInfo::getMajor()); + keywordArgs.appendInt("viewerMinorVersion", LLVersionInfo::getMinor()); + keywordArgs.appendInt("viewerPatchVersion", LLVersionInfo::getPatch()); + keywordArgs.appendInt("viewerBuildVersion", LLVersionInfo::getBuild()); LLXMLRPCValue params = LLXMLRPCValue::createArray(); params.append(keywordArgs); diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp index b2588cc01b..e80499688e 100644 --- a/indra/newview/llfloaterabout.cpp +++ b/indra/newview/llfloaterabout.cpp @@ -45,8 +45,7 @@ #include "llviewercontrol.h" #include "llviewerstats.h" #include "llviewerregion.h" -#include "llversionviewer.h" -#include "llviewerversion.h" +#include "llversioninfo.h" #include "llweb.h" // Linden library includes @@ -212,12 +211,12 @@ LLSD LLFloaterAbout::getInfo() // LLFloaterAbout. LLSD info; LLSD version; - version.append(LL_VERSION_MAJOR); - version.append(LL_VERSION_MINOR); - version.append(LL_VERSION_PATCH); - version.append(LL_VERSION_BUILD); + version.append(LLVersionInfo::getMajor()); + version.append(LLVersionInfo::getMinor()); + version.append(LLVersionInfo::getPatch()); + version.append(LLVersionInfo::getBuild()); info["VIEWER_VERSION"] = version; - info["VIEWER_VERSION_STR"] = llGetViewerVersion(); + info["VIEWER_VERSION_STR"] = LLVersionInfo::getVersion(); info["BUILD_DATE"] = __DATE__; info["BUILD_TIME"] = __TIME__; info["CHANNEL"] = gSavedSettings.getString("VersionChannelName"); @@ -285,7 +284,7 @@ static std::string get_viewer_release_notes_url() { LLSD query; query["channel"] = gSavedSettings.getString("VersionChannelName"); - query["version"] = llGetViewerVersion(); + query["version"] = LLVersionInfo::getVersion(); std::ostringstream url; url << LLTrans::getString("RELEASE_NOTES_BASE_URL") << LLURI::mapToQueryString(query); diff --git a/indra/newview/llfloateranimpreview.cpp b/indra/newview/llfloateranimpreview.cpp index eae2747cc9..9e6ef2fc4d 100644 --- a/indra/newview/llfloateranimpreview.cpp +++ b/indra/newview/llfloateranimpreview.cpp @@ -208,7 +208,12 @@ BOOL LLFloaterAnimPreview::postBuild() mPlayButton = getChild<LLButton>( "play_btn"); mPlayButton->setClickedCallback(onBtnPlay, this); + mPlayButton->setVisible(true); + mPauseButton = getChild<LLButton>( "pause_btn"); + mPauseButton->setClickedCallback(onBtnPause, this); + mPauseButton->setVisible(false); + mStopButton = getChild<LLButton>( "stop_btn"); mStopButton->setClickedCallback(onBtnStop, this); @@ -560,24 +565,60 @@ void LLFloaterAnimPreview::onBtnPlay(void* user_data) if (previewp->mMotionID.notNull() && previewp->mAnimPreview) { LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar(); - + if(!avatarp->isMotionActive(previewp->mMotionID)) { previewp->resetMotion(); previewp->mPauseRequest = NULL; + previewp->mPauseButton->setVisible(TRUE); + previewp->mPauseButton->setEnabled(TRUE); + previewp->mPlayButton->setVisible(FALSE); + previewp->mPlayButton->setEnabled(FALSE); } - else + else if (avatarp->areAnimationsPaused()) { - if (avatarp->areAnimationsPaused()) - { - previewp->mPauseRequest = NULL; - } - else + + previewp->mPauseRequest = NULL; + previewp->mPauseButton->setVisible(TRUE); + previewp->mPauseButton->setEnabled(TRUE); + previewp->mPlayButton->setVisible(FALSE); + previewp->mPlayButton->setEnabled(FALSE); + } + + } + + + +} + +//----------------------------------------------------------------------------- +// onBtnPause() +//----------------------------------------------------------------------------- +void LLFloaterAnimPreview::onBtnPause(void* user_data) +{ + LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)user_data; + if (!previewp->getEnabled()) + return; + + if (previewp->mMotionID.notNull() && previewp->mAnimPreview) + { + LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar(); + + if(avatarp->isMotionActive(previewp->mMotionID)) + { + if (!avatarp->areAnimationsPaused()) { previewp->mPauseRequest = avatarp->requestPause(); + + previewp->mPlayButton->setVisible(TRUE); + previewp->mPlayButton->setEnabled(TRUE); + previewp->mPauseButton->setVisible(FALSE); + previewp->mPauseButton->setEnabled(FALSE); } } } + + } //----------------------------------------------------------------------------- @@ -595,6 +636,10 @@ void LLFloaterAnimPreview::onBtnStop(void* user_data) previewp->resetMotion(); previewp->mPauseRequest = avatarp->requestPause(); } + previewp->mPlayButton->setVisible(TRUE); + previewp->mPlayButton->setEnabled(TRUE); + previewp->mPauseButton->setVisible(FALSE); + previewp->mPauseButton->setEnabled(FALSE); } //----------------------------------------------------------------------------- @@ -912,43 +957,38 @@ void LLFloaterAnimPreview::refresh() { childShow("bad_animation_text"); mPlayButton->setEnabled(FALSE); + mPlayButton->setVisible(TRUE); + mPauseButton->setVisible(FALSE); mStopButton->setEnabled(FALSE); childDisable("ok_btn"); } else { childHide("bad_animation_text"); - mPlayButton->setEnabled(TRUE); LLVOAvatar* avatarp = mAnimPreview->getDummyAvatar(); if (avatarp->isMotionActive(mMotionID)) { mStopButton->setEnabled(TRUE); LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(mMotionID); - if (avatarp->areAnimationsPaused()) - { - - mPlayButton->setImages(std::string("button_anim_play.tga"), - std::string("button_anim_play_selected.tga")); - - } - else + if (!avatarp->areAnimationsPaused()) { if (motionp) { F32 fraction_complete = motionp->getLastUpdateTime() / motionp->getDuration(); childSetValue("playback_slider", fraction_complete); } - mPlayButton->setImages(std::string("button_anim_pause.tga"), - std::string("button_anim_pause_selected.tga")); - + + mPlayButton->setVisible(FALSE); + mPauseButton->setVisible(TRUE); + } + } else { mPauseRequest = avatarp->requestPause(); - mPlayButton->setImages(std::string("button_anim_play.tga"), - std::string("button_anim_play_selected.tga")); - + //mPlayButton->setVisible(TRUE); + //mPlayButton->setEnabled(TRUE); mStopButton->setEnabled(TRUE); // stop also resets, leave enabled. } childEnable("ok_btn"); diff --git a/indra/newview/llfloateranimpreview.h b/indra/newview/llfloateranimpreview.h index f1c4a6b0d0..09b04f1f42 100644 --- a/indra/newview/llfloateranimpreview.h +++ b/indra/newview/llfloateranimpreview.h @@ -87,6 +87,7 @@ public: void refresh(); static void onBtnPlay(void*); + static void onBtnPause(void*); static void onBtnStop(void*); static void onSliderMove(LLUICtrl*, void*); static void onCommitBaseAnim(LLUICtrl*, void*); @@ -119,6 +120,7 @@ protected: S32 mLastMouseX; S32 mLastMouseY; LLButton* mPlayButton; + LLButton* mPauseButton; LLButton* mStopButton; LLRect mPreviewRect; LLRectf mPreviewImageRect; diff --git a/indra/newview/llfloaterchat.cpp b/indra/newview/llfloaterchat.cpp index 57bb93d81a..b9e0f928f1 100644 --- a/indra/newview/llfloaterchat.cpp +++ b/indra/newview/llfloaterchat.cpp @@ -41,6 +41,7 @@ // project include #include "llagent.h" +#include "llappviewer.h" #include "llbutton.h" #include "llcheckboxctrl.h" #include "llcombobox.h" @@ -142,6 +143,10 @@ BOOL LLFloaterChat::postBuild() void LLFloaterChat::updateConsoleVisibility() { + if(gDisconnected) + { + return; + } // determine whether we should show console due to not being visible gConsole->setVisible( !isInVisibleChain() // are we not in part of UI being drawn? || isMinimized() // are we minimized? diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index 1c1f27a259..ab27375b87 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -251,7 +251,7 @@ bool callback_skip_dialogs(const LLSD& notification, const LLSD& response, LLFlo { floater->setAllIgnored(); LLFirstUse::disableFirstUse(); - LLFloaterPreference::buildLists(floater); + floater->buildPopupLists(); } } return false; @@ -266,7 +266,7 @@ bool callback_reset_dialogs(const LLSD& notification, const LLSD& response, LLFl { floater->resetAllIgnored(); LLFirstUse::resetFirstUse(); - LLFloaterPreference::buildLists(floater); + floater->buildPopupLists(); } } return false; @@ -391,6 +391,7 @@ LLFloaterPreference::~LLFloaterPreference() ctrl_window_size->setCurrentByIndex(i); } } + void LLFloaterPreference::draw() { BOOL has_first_selected = (getChildRef<LLScrollListCtrl>("disabled_popups").getFirstSelected()!=NULL); @@ -548,17 +549,17 @@ void LLFloaterPreference::cancel() void LLFloaterPreference::onOpen(const LLSD& key) { gAgent.sendAgentUserInfoRequest(); + /////////////////////////// From LLPanelGeneral ////////////////////////// // if we have no agent, we can't let them choose anything // if we have an agent, then we only let them choose if they have a choice - bool canChoose = gAgent.getID().notNull() && - (gAgent.isMature() || gAgent.isGodlike()); + bool can_choose_maturity = + gAgent.getID().notNull() && (gAgent.isMature() || gAgent.isGodlike()); LLComboBox* maturity_combo = getChild<LLComboBox>("maturity_desired_combobox"); - if (canChoose) - { - + if (can_choose_maturity) + { // if they're not adult or a god, they shouldn't see the adult selection, so delete it if (!gAgent.isAdult() && !gAgent.isGodlike()) { @@ -568,8 +569,7 @@ void LLFloaterPreference::onOpen(const LLSD& key) maturity_combo->remove(0); } childSetVisible("maturity_desired_combobox", true); - childSetVisible("maturity_desired_textbox", false); - + childSetVisible("maturity_desired_textbox", false); } else { @@ -577,6 +577,10 @@ void LLFloaterPreference::onOpen(const LLSD& key) childSetVisible("maturity_desired_combobox", false); } + // Enabled/disabled popups, might have been changed by user actions + // while preferences floater was closed. + buildPopupLists(); + LLPanelLogin::setAlwaysRefresh(true); refresh(); @@ -717,14 +721,6 @@ void LLFloaterPreference::updateMeterText(LLUICtrl* ctrl) m1->setVisible(two_digits); m2->setVisible(!two_digits); } -/* -void LLFloaterPreference::onClickClearCache() -{ - // flag client cache for clearing next time the client runs - gSavedSettings.setBOOL("PurgeCacheOnNextStartup", TRUE); - LLNotificationsUtil::add("CacheWillClear"); -} -*/ void LLFloaterPreference::onClickBrowserClearCache() { @@ -794,12 +790,13 @@ void LLFloaterPreference::refreshSkin(void* data) self->getChild<LLRadioGroup>("skin_selection", true)->setValue(sSkin); } -// static -void LLFloaterPreference::buildLists(void* data) + +void LLFloaterPreference::buildPopupLists() { - LLPanel*self = (LLPanel*)data; - LLScrollListCtrl& disabled_popups = self->getChildRef<LLScrollListCtrl>("disabled_popups"); - LLScrollListCtrl& enabled_popups = self->getChildRef<LLScrollListCtrl>("enabled_popups"); + LLScrollListCtrl& disabled_popups = + getChildRef<LLScrollListCtrl>("disabled_popups"); + LLScrollListCtrl& enabled_popups = + getChildRef<LLScrollListCtrl>("enabled_popups"); disabled_popups.deleteAllItems(); enabled_popups.deleteAllItems(); @@ -861,8 +858,7 @@ void LLFloaterPreference::buildLists(void* data) } void LLFloaterPreference::refreshEnabledState() -{ - +{ LLCheckBoxCtrl* ctrl_reflections = getChild<LLCheckBoxCtrl>("Reflections"); LLRadioGroup* radio_reflection_detail = getChild<LLRadioGroup>("ReflectionDetailRadio"); @@ -1111,7 +1107,7 @@ void LLFloaterPreference::onClickEnablePopup() LLUI::sSettingGroups["ignores"]->setBOOL(notification_name, TRUE); } - buildLists(this); + buildPopupLists(); } void LLFloaterPreference::onClickDisablePopup() @@ -1128,8 +1124,9 @@ void LLFloaterPreference::onClickDisablePopup() LLUI::sSettingGroups["ignores"]->setBOOL(notification_name, FALSE); } - buildLists(this); + buildPopupLists(); } + void LLFloaterPreference::resetAllIgnored() { for (LLNotifications::TemplateMap::const_iterator iter = LLNotifications::instance().templatesBegin(); @@ -1428,17 +1425,11 @@ BOOL LLPanelPreference::postBuild() } } - ////////////////////////Panel Popups///////////////// - if(hasChild("disabled_popups") && hasChild("enabled_popups")) - { - LLFloaterPreference::buildLists(this); - } - ////// + if(hasChild("online_visibility") && hasChild("send_im_to_email")) { childSetText("email_address",getString("log_in_to_change") ); -// childSetText("busy_response", getString("log_in_to_change")); - +// childSetText("busy_response", getString("log_in_to_change")); } @@ -1573,8 +1564,7 @@ void LLPanelPreference::saveSettings() { view_stack.push_back(*iter); } - } - + } } void LLPanelPreference::cancel() @@ -1607,4 +1597,3 @@ void LLPanelPreference::setControlFalse(const LLSD& user_data) if (control) control->set(LLSD(FALSE)); } - diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h index a30422564a..d292f3bb7b 100644 --- a/indra/newview/llfloaterpreference.h +++ b/indra/newview/llfloaterpreference.h @@ -85,7 +85,6 @@ protected: void onBtnCancel(); void onBtnApply(); -// void onClickClearCache(); void onClickBrowserClearCache(); // if the custom settings box is clicked @@ -141,7 +140,7 @@ public: static void initWindowSizeControls(LLPanel* panelp); - static void buildLists(void* data); + void buildPopupLists(); static void refreshSkin(void* data); static void cleanupBadSetting(); static F32 sAspectRatio; @@ -153,7 +152,6 @@ private: bool mOriginalHideOnlineStatus; std::string mDirectoryVisibility; - }; class LLPanelPreference : public LLPanel diff --git a/indra/newview/llfloaterreporter.cpp b/indra/newview/llfloaterreporter.cpp index be821ad43b..408303a1e0 100644 --- a/indra/newview/llfloaterreporter.cpp +++ b/indra/newview/llfloaterreporter.cpp @@ -75,7 +75,7 @@ #include "llfloateravatarpicker.h" #include "lldir.h" #include "llselectmgr.h" -#include "llviewerversion.h" +#include "llversioninfo.h" #include "lluictrlfactory.h" #include "llviewernetwork.h" @@ -608,7 +608,7 @@ LLSD LLFloaterReporter::gatherReport() std::ostringstream details; - details << "V" << llGetViewerVersion() << std::endl << std::endl; // client version moved to body of email for abuse reports + details << "V" << LLVersionInfo::getVersion() << std::endl << std::endl; // client version moved to body of email for abuse reports std::string object_name = childGetText("object_name"); if (!object_name.empty() && !mOwnerName.empty()) @@ -626,7 +626,7 @@ LLSD LLFloaterReporter::gatherReport() std::string version_string; version_string = llformat( "%s %s %s %s %s", - llGetViewerShortVersion().c_str(), + LLVersionInfo::getShortVersion().c_str(), platform, gSysCPU.getFamily().c_str(), gGLManager.mGLRenderer.c_str(), diff --git a/indra/newview/llfloatersearch.cpp b/indra/newview/llfloatersearch.cpp index 4d3724a758..2c618263ec 100644 --- a/indra/newview/llfloatersearch.cpp +++ b/indra/newview/llfloatersearch.cpp @@ -144,6 +144,10 @@ void LLFloaterSearch::search(const LLSD &key) // add the current localization information url += "&lang=" + LLUI::getLanguage(); + // add the user's god status + std::string godlike = gAgent.isGodlike() ? "1" : "0"; + url += "&g=" + godlike; + // and load the URL in the web view mBrowser->navigateTo(url); } diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp index 63511301b3..5bef306485 100644 --- a/indra/newview/llfolderviewitem.cpp +++ b/indra/newview/llfolderviewitem.cpp @@ -62,6 +62,7 @@ const F32 LLFolderViewItem::FOLDER_OPEN_TIME_CONSTANT = 0.03f; const LLColor4U DEFAULT_WHITE(255, 255, 255); + //static LLFontGL* LLFolderViewItem::getLabelFontForStyle(U8 style) { @@ -387,7 +388,9 @@ BOOL LLFolderViewItem::addToFolder(LLFolderViewFolder* folder, LLFolderView* roo // makes sure that this view and it's children are the right size. S32 LLFolderViewItem::arrange( S32* width, S32* height, S32 filter_generation) { - mIndentation = getParentFolder() && getParentFolder()->getParentFolder() + mIndentation = (getParentFolder() + && getParentFolder()->getParentFolder() + && getParentFolder()->getParentFolder()->getParentFolder()) ? mParentFolder->getIndentation() + LEFT_INDENTATION : 0; if (mLabelWidthDirty) @@ -735,15 +738,6 @@ BOOL LLFolderViewItem::handleDoubleClick( S32 x, S32 y, MASK mask ) return TRUE; } -BOOL LLFolderViewItem::handleScrollWheel(S32 x, S32 y, S32 clicks) -{ - if (getParent()) - { - return getParent()->handleScrollWheel(x, y, clicks); - } - return FALSE; -} - BOOL LLFolderViewItem::handleMouseUp( S32 x, S32 y, MASK mask ) { if (LLView::childrenHandleMouseUp(x, y, mask)) @@ -2153,12 +2147,6 @@ BOOL LLFolderViewFolder::handleHover(S32 x, S32 y, MASK mask) handled = LLFolderViewItem::handleHover(x, y, mask); } - //if(x < LEFT_INDENTATION + mIndentation && x > mIndentation - LEFT_PAD && y > getRect().getHeight() - ) - //{ - // gViewerWindow->setCursor(UI_CURSOR_ARROW); - // mExpanderHighlighted = TRUE; - // handled = TRUE; - //} return handled; } @@ -2171,7 +2159,7 @@ BOOL LLFolderViewFolder::handleMouseDown( S32 x, S32 y, MASK mask ) } if( !handled ) { - if(x < LEFT_INDENTATION + mIndentation && x > mIndentation - LEFT_PAD) + if(mIndentation < x && x < mIndentation + ARROW_SIZE + TEXT_PAD) { toggleOpen(); handled = TRUE; @@ -2205,7 +2193,7 @@ BOOL LLFolderViewFolder::handleDoubleClick( S32 x, S32 y, MASK mask ) } if( !handled ) { - if(x < LEFT_INDENTATION + mIndentation && x > mIndentation - LEFT_PAD) + if(mIndentation < x && x < mIndentation + ARROW_SIZE + TEXT_PAD) { // don't select when user double-clicks plus sign // so as not to contradict single-click behavior diff --git a/indra/newview/llfolderviewitem.h b/indra/newview/llfolderviewitem.h index f6264ec968..0ea031108b 100644 --- a/indra/newview/llfolderviewitem.h +++ b/indra/newview/llfolderviewitem.h @@ -110,7 +110,7 @@ public: // layout constants static const S32 LEFT_PAD = 5; - static const S32 LEFT_INDENTATION = 8; + static const S32 LEFT_INDENTATION = 2; static const S32 ICON_PAD = 2; static const S32 ICON_WIDTH = 16; static const S32 TEXT_PAD = 1; @@ -319,7 +319,6 @@ public: virtual BOOL handleHover( S32 x, S32 y, MASK mask ); virtual BOOL handleMouseUp( S32 x, S32 y, MASK mask ); virtual BOOL handleDoubleClick( S32 x, S32 y, MASK mask ); - virtual BOOL handleScrollWheel(S32 x, S32 y, S32 clicks); // virtual void handleDropped(); virtual void draw(); diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp index 758d8ff903..98ca339f0c 100644 --- a/indra/newview/lllocationinputctrl.cpp +++ b/indra/newview/lllocationinputctrl.cpp @@ -810,13 +810,8 @@ void LLLocationInputCtrl::updateWidgetlayout() { const LLRect& rect = getLocalRect(); const LLRect& hist_btn_rect = mButton->getRect(); - LLRect info_btn_rect = mInfoBtn->getRect(); - // info button - info_btn_rect.setOriginAndSize( - 2, (rect.getHeight() - info_btn_rect.getHeight()) / 2, - info_btn_rect.getWidth(), info_btn_rect.getHeight()); - mInfoBtn->setRect(info_btn_rect); + // Info button is set in the XUI XML location_input.xml // "Add Landmark" button LLRect al_btn_rect = mAddLandmarkBtn->getRect(); diff --git a/indra/newview/llloginhandler.cpp b/indra/newview/llloginhandler.cpp index 2a1f42c3c4..1be3430e07 100644 --- a/indra/newview/llloginhandler.cpp +++ b/indra/newview/llloginhandler.cpp @@ -40,9 +40,12 @@ #include "llurlsimstring.h" #include "llviewercontrol.h" // gSavedSettings #include "llviewernetwork.h" // EGridInfo +#include "llviewerwindow.h" // getWindow() // library includes #include "llmd5.h" +#include "llweb.h" +#include "llwindow.h" // Must have instance to auto-register with LLCommandDispatcher @@ -174,6 +177,32 @@ bool LLLoginHandler::handle(const LLSD& tokens, return true; } + if (tokens.size() == 1 + && tokens[0].asString() == "reg") + { + LLWindow* window = gViewerWindow->getWindow(); + window->incBusyCount(); + window->setCursor(UI_CURSOR_ARROW); + + // Do this first, as it may be slow and we want to keep something + // on the user's screen as long as possible + LLWeb::loadURLExternal( "http://join.eniac15.lindenlab.com/" ); + + window->decBusyCount(); + window->setCursor(UI_CURSOR_ARROW); + + // Then hide the window + window->minimize(); + return true; + } + + // Make sure window is visible + LLWindow* window = gViewerWindow->getWindow(); + if (window->getMinimized()) + { + window->restore(); + } + parse(query_map); //if we haven't initialized stuff yet, this is diff --git a/indra/newview/llnavigationbar.cpp b/indra/newview/llnavigationbar.cpp index e65b7d8a0c..9797c01371 100644 --- a/indra/newview/llnavigationbar.cpp +++ b/indra/newview/llnavigationbar.cpp @@ -82,9 +82,24 @@ public: struct Params : public LLInitParam::Block<Params, LLMenuItemCallGL::Params> { - Mandatory<EType> item_type; - - Params() {} + Mandatory<EType> item_type; + Optional<const LLFontGL*> back_item_font, + current_item_font, + forward_item_font; + Optional<std::string> back_item_image, + forward_item_image; + Optional<S32> image_hpad, + image_vpad; + Params() + : item_type(), + back_item_font("back_item_font"), + current_item_font("current_item_font"), + forward_item_font("forward_item_font"), + back_item_image("back_item_image"), + forward_item_image("forward_item_image"), + image_hpad("image_hpad"), + image_vpad("image_vpad") + {} }; /*virtual*/ void draw(); @@ -97,33 +112,38 @@ private: static const S32 ICON_WIDTH = 16; static const S32 ICON_HEIGHT = 16; - static const std::string ICON_IMG_BACKWARD; - static const std::string ICON_IMG_FORWARD; LLIconCtrl* mArrowIcon; }; -const std::string LLTeleportHistoryMenuItem::ICON_IMG_BACKWARD("teleport_history_backward.tga"); -const std::string LLTeleportHistoryMenuItem::ICON_IMG_FORWARD("teleport_history_forward.tga"); +static LLDefaultChildRegistry::Register<LLTeleportHistoryMenuItem> r("teleport_history_menu_item"); + LLTeleportHistoryMenuItem::LLTeleportHistoryMenuItem(const Params& p) : LLMenuItemCallGL(p), mArrowIcon(NULL) { // Set appearance depending on the item type. - if (p.item_type == TYPE_CURRENT) + if (p.item_type == TYPE_BACKWARD) + { + setFont( p.back_item_font ); + setLabel(std::string(" ") + std::string(p.label)); + } + else if (p.item_type == TYPE_CURRENT) { - setFont(LLFontGL::getFontSansSerifBold()); + setFont( p.current_item_font ); } else { - setFont(LLFontGL::getFontSansSerif()); + setFont( p.forward_item_font ); setLabel(std::string(" ") + std::string(p.label)); } LLIconCtrl::Params icon_params; icon_params.name("icon"); - icon_params.rect(LLRect(0, ICON_HEIGHT, ICON_WIDTH, 0)); + LLRect rect(0, ICON_HEIGHT, ICON_WIDTH, 0); + rect.translate( p.image_hpad, p.image_vpad ); + icon_params.rect( rect ); icon_params.mouse_opaque(false); icon_params.follows.flags(FOLLOWS_LEFT | FOLLOWS_TOP); icon_params.visible(false); @@ -132,9 +152,9 @@ LLTeleportHistoryMenuItem::LLTeleportHistoryMenuItem(const Params& p) // no image for the current item if (p.item_type == TYPE_BACKWARD) - mArrowIcon->setValue(ICON_IMG_BACKWARD); + mArrowIcon->setValue( p.back_item_image() ); else if (p.item_type == TYPE_FORWARD) - mArrowIcon->setValue(ICON_IMG_FORWARD); + mArrowIcon->setValue( p.forward_item_image() ); addChild(mArrowIcon); } diff --git a/indra/newview/llnotificationhandler.h b/indra/newview/llnotificationhandler.h index 5c240aa54a..83a8dcd9f0 100644 --- a/indra/newview/llnotificationhandler.h +++ b/indra/newview/llnotificationhandler.h @@ -266,6 +266,11 @@ public: static bool canLogToIM(const LLNotificationPtr& notification); /** + * Checks sufficient conditions to log notification message to nearby chat session. + */ + static bool canLogToNearbyChat(const LLNotificationPtr& notification); + + /** * Checks sufficient conditions to spawn IM session. */ static bool canSpawnIMSession(const LLNotificationPtr& notification); @@ -287,6 +292,11 @@ public: * Writes group notice notification message to IM group session. */ static void logGroupNoticeToIMGroup(const LLNotificationPtr& notification); + + /** + * Writes notification message to nearby chat. + */ + static void logToNearbyChat(const LLNotificationPtr& notification, EChatSourceType type); }; } diff --git a/indra/newview/llnotificationhandlerutil.cpp b/indra/newview/llnotificationhandlerutil.cpp index 6748bd7982..749786a829 100644 --- a/indra/newview/llnotificationhandlerutil.cpp +++ b/indra/newview/llnotificationhandlerutil.cpp @@ -37,6 +37,8 @@ #include "llnotifications.h" #include "llimview.h" #include "llagent.h" +#include "llfloaterreg.h" +#include "llnearbychat.h" using namespace LLNotificationsUI; @@ -47,7 +49,8 @@ const static std::string GRANTED_MODIFY_RIGHTS("GrantedModifyRights"), ADD_FRIEND_WITH_MESSAGE("AddFriendWithMessage"), USER_GIVE_ITEM("UserGiveItem"), OFFER_FRIENDSHIP("OfferFriendship"), FRIENDSHIP_ACCEPTED("FriendshipAccepted"), - FRIENDSHIP_OFFERED("FriendshipOffered"); + FRIENDSHIP_OFFERED("FriendshipOffered"), + FRIEND_ONLINE("FriendOnline"), FRIEND_OFFLINE("FriendOffline"); // static bool LLHandlerUtil::canLogToIM(const LLNotificationPtr& notification) @@ -59,6 +62,14 @@ bool LLHandlerUtil::canLogToIM(const LLNotificationPtr& notification) } // static +bool LLHandlerUtil::canLogToNearbyChat(const LLNotificationPtr& notification) +{ + return notification->getType() == "notifytip" + && FRIEND_ONLINE != notification->getName() + && FRIEND_OFFLINE != notification->getName(); +} + +// static bool LLHandlerUtil::canSpawnIMSession(const LLNotificationPtr& notification) { return ADD_FRIEND_WITH_MESSAGE == notification->getName() @@ -144,3 +155,15 @@ void LLHandlerUtil::logGroupNoticeToIMGroup( payload["group_id"], sender_id); } +// static +void LLHandlerUtil::logToNearbyChat(const LLNotificationPtr& notification, EChatSourceType type) +{ + LLNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLNearbyChat>("nearby_chat", LLSD()); + if(nearby_chat) + { + LLChat chat_msg(notification->getMessage()); + chat_msg.mSourceType = type; + nearby_chat->addMessage(chat_msg); + } +} + diff --git a/indra/newview/llnotificationtiphandler.cpp b/indra/newview/llnotificationtiphandler.cpp index 95f5ec801c..9afaddae82 100644 --- a/indra/newview/llnotificationtiphandler.cpp +++ b/indra/newview/llnotificationtiphandler.cpp @@ -88,18 +88,17 @@ bool LLTipHandler::processNotification(const LLSD& notify) if(notify["sigtype"].asString() == "add" || notify["sigtype"].asString() == "change") { // archive message in nearby chat - LLNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance<LLNearbyChat>("nearby_chat", LLSD()); - if(nearby_chat) + if (LLHandlerUtil::canLogToNearbyChat(notification)) { - LLChat chat_msg(notification->getMessage()); - chat_msg.mSourceType = CHAT_SOURCE_SYSTEM; - nearby_chat->addMessage(chat_msg); + LLHandlerUtil::logToNearbyChat(notification, CHAT_SOURCE_SYSTEM); // don't show toast if Nearby Chat is opened + LLNearbyChat* nearby_chat = LLFloaterReg::getTypedInstance< + LLNearbyChat>("nearby_chat", LLSD()); if (nearby_chat->getVisible()) { return true; - } + } } LLToastNotifyPanel* notify_box = new LLToastNotifyPanel(notification); diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp index e73c65e252..a729b8c06f 100644 --- a/indra/newview/llpanellogin.cpp +++ b/indra/newview/llpanellogin.cpp @@ -39,7 +39,6 @@ #include "llfontgl.h" #include "llmd5.h" #include "llsecondlifeurls.h" -#include "llversionviewer.h" #include "v4color.h" #include "llbutton.h" @@ -57,7 +56,7 @@ #include "llui.h" #include "lluiconstants.h" #include "llurlsimstring.h" -#include "llviewerversion.h" +#include "llversioninfo.h" #include "llviewerhelp.h" #include "llviewertexturelist.h" #include "llviewermenu.h" // for handle_preferences() @@ -247,8 +246,9 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, getChild<LLPanel>("login_widgets")->setDefaultBtn("connect_btn"); std::string channel = gSavedSettings.getString("VersionChannelName"); - std::string version = llformat("%s (%s)", llGetViewerShortVersion().c_str(), - llGetViewerBuildVersion().c_str()); + std::string version = llformat("%s (%d)", + LLVersionInfo::getShortVersion().c_str(), + LLVersionInfo::getBuild()); LLTextBox* channel_text = getChild<LLTextBox>("channel_text"); channel_text->setTextArg("[CHANNEL]", channel); // though not displayed channel_text->setTextArg("[VERSION]", version); @@ -740,8 +740,9 @@ void LLPanelLogin::loadLoginPage() } // Channel and Version - std::string version = llformat("%s (%s)", llGetViewerShortVersion().c_str(), - llGetViewerBuildVersion().c_str()); + std::string version = llformat("%s (%d)", + LLVersionInfo::getShortVersion().c_str(), + LLVersionInfo::getBuild()); char* curl_channel = curl_escape(gSavedSettings.getString("VersionChannelName").c_str(), 0); char* curl_version = curl_escape(version.c_str(), 0); diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp index f7f3c5830d..4a554c1b2c 100644 --- a/indra/newview/llpanelplaces.cpp +++ b/indra/newview/llpanelplaces.cpp @@ -854,6 +854,7 @@ void LLPanelPlaces::updateVerbs() mCancelBtn->setVisible(isLandmarkEditModeOn); mCloseBtn->setVisible(is_create_landmark_visible && !isLandmarkEditModeOn); + mShowOnMapBtn->setEnabled(!is_create_landmark_visible && !isLandmarkEditModeOn); mOverflowBtn->setEnabled(is_place_info_visible && !is_create_landmark_visible); if (is_place_info_visible) diff --git a/indra/newview/llscreenchannel.cpp b/indra/newview/llscreenchannel.cpp index 222b462d1a..f66f725070 100644 --- a/indra/newview/llscreenchannel.cpp +++ b/indra/newview/llscreenchannel.cpp @@ -78,6 +78,22 @@ LLScreenChannelBase::~LLScreenChannelBase() { mWorldViewRectConnection.disconnect(); } + +bool LLScreenChannelBase::isHovering() +{ + bool res = mHoveredToast != NULL; + if (!res) + { + return res; + } + + S32 x, y; + mHoveredToast->screenPointToLocal(gViewerWindow->getCurrentMouseX(), + gViewerWindow->getCurrentMouseY(), &x, &y); + res = mHoveredToast->pointInView(x, y) == TRUE; + return res; +} + void LLScreenChannelBase::updatePositionAndSize(LLRect old_world_rect, LLRect new_world_rect) { S32 top_delta = old_world_rect.mTop - new_world_rect.mTop; @@ -644,7 +660,7 @@ void LLNotificationsUI::LLScreenChannel::startFadingToasts() if (!mToastList.size()) return; //because onMouseLeave is processed after onMouseEnter - if (mHoveredToast) return; + if (isHovering()) return; std::vector<ToastElem>::iterator it = mToastList.begin(); while (it != mToastList.end()) diff --git a/indra/newview/llscreenchannel.h b/indra/newview/llscreenchannel.h index b551732133..b8efbb148f 100644 --- a/indra/newview/llscreenchannel.h +++ b/indra/newview/llscreenchannel.h @@ -95,7 +95,7 @@ public: virtual void setControlHovering(bool control) { mControlHovering = control; } - bool isHovering() { return mHoveredToast != NULL; } + bool isHovering(); void setCanStoreToasts(bool store) { mCanStoreToasts = store; } diff --git a/indra/newview/llscriptfloater.cpp b/indra/newview/llscriptfloater.cpp index 8de99a48aa..5c4f6e8860 100644 --- a/indra/newview/llscriptfloater.cpp +++ b/indra/newview/llscriptfloater.cpp @@ -39,6 +39,7 @@ #include "llfloaterreg.h" #include "llnotifications.h" #include "llscreenchannel.h" +#include "llsyswellwindow.h" #include "lltoastnotifypanel.h" #include "llviewerwindow.h" #include "llimfloater.h" @@ -240,6 +241,14 @@ void LLScriptFloaterManager::onAddNotification(const LLUUID& notification_id) LLBottomTray::getInstance()->getChicletPanel()->createChiclet<LLScriptChiclet>(object_id); } + LLIMWellWindow::getInstance()->addObjectRow(object_id, set_new_message); + + LLSD data; + data["object_id"] = object_id; + data["new_message"] = set_new_message; + data["unread"] = 1; // each object has got only one floater + mNewObjectSignal(data); + toggleScriptFloater(object_id, set_new_message); } @@ -267,6 +276,8 @@ void LLScriptFloaterManager::onRemoveNotification(const LLUUID& notification_id) // remove related chiclet LLBottomTray::getInstance()->getChicletPanel()->removeChiclet(object_id); + LLIMWellWindow::getInstance()->removeObjectRow(object_id); + // close floater LLScriptFloater* floater = LLFloaterReg::findTypedInstance<LLScriptFloater>("script_floater", notification_id); if(floater) @@ -291,13 +302,6 @@ void LLScriptFloaterManager::removeNotificationByObjectId(const LLUUID& object_i void LLScriptFloaterManager::toggleScriptFloater(const LLUUID& object_id, bool set_new_message) { - // hide "new message" icon from chiclet - LLIMChiclet* chiclet = LLBottomTray::getInstance()->getChicletPanel()->findChiclet<LLIMChiclet>(object_id); - if(chiclet) - { - chiclet->setShowNewMessagesIcon(set_new_message); - } - // kill toast using namespace LLNotificationsUI; LLScreenChannel* channel = dynamic_cast<LLScreenChannel*>(LLChannelManager::getInstance()->findChannelByID( @@ -307,6 +311,11 @@ void LLScriptFloaterManager::toggleScriptFloater(const LLUUID& object_id, bool s channel->killToastByNotificationID(findNotificationToastId(object_id)); } + LLSD data; + data["object_id"] = object_id; + data["new_message"] = set_new_message; + mToggleFloaterSignal(data); + // toggle floater LLScriptFloater::toggle(object_id); } diff --git a/indra/newview/llscriptfloater.h b/indra/newview/llscriptfloater.h index 8de7a28d0f..95ec5a4d9c 100644 --- a/indra/newview/llscriptfloater.h +++ b/indra/newview/llscriptfloater.h @@ -88,6 +88,11 @@ public: */ static void onToastButtonClick(const LLSD¬ification, const LLSD&response); + typedef boost::signals2::signal<void(const LLSD&)> object_signal_t; + + boost::signals2::connection addNewObjectCallback(const object_signal_t::slot_type& cb) { return mNewObjectSignal.connect(cb); } + boost::signals2::connection addToggleObjectFloaterCallback(const object_signal_t::slot_type& cb) { return mToggleFloaterSignal.connect(cb); } + private: struct LLNotificationData @@ -100,6 +105,9 @@ private: typedef std::map<LLUUID, LLNotificationData> script_notification_map_t; script_notification_map_t mNotifications; + + object_signal_t mNewObjectSignal; + object_signal_t mToggleFloaterSignal; }; /** diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp index 58df2ffb19..be0c92a76d 100644 --- a/indra/newview/llstartup.cpp +++ b/indra/newview/llstartup.cpp @@ -77,7 +77,7 @@ #include "llsecondlifeurls.h" #include "llstring.h" #include "lluserrelations.h" -#include "llversionviewer.h" +#include "llversioninfo.h" #include "llviewercontrol.h" #include "llvfs.h" #include "llxorcipher.h" // saved password, MAC address @@ -542,9 +542,9 @@ bool idle_startup() if(!start_messaging_system( message_template_path, port, - LL_VERSION_MAJOR, - LL_VERSION_MINOR, - LL_VERSION_PATCH, + LLVersionInfo::getMajor(), + LLVersionInfo::getMinor(), + LLVersionInfo::getPatch(), FALSE, std::string(), responder, diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp index 28bdfbf271..5ea2ee65e4 100644 --- a/indra/newview/llsyswellwindow.cpp +++ b/indra/newview/llsyswellwindow.cpp @@ -34,10 +34,12 @@ #include "llflatlistview.h" #include "llfloaterreg.h" +#include "llnotifications.h" #include "llsyswellwindow.h" #include "llbottomtray.h" +#include "llscriptfloater.h" #include "llviewercontrol.h" #include "llviewerwindow.h" @@ -358,7 +360,148 @@ BOOL LLIMWellWindow::RowPanel::handleMouseDown(S32 x, S32 y, MASK mask) return LLPanel::handleMouseDown(x, y, mask); } +/************************************************************************/ +/* ObjectRowPanel implementation */ +/************************************************************************/ + +LLIMWellWindow::ObjectRowPanel::ObjectRowPanel(const LLUUID& object_id, bool new_message/* = false*/) + : LLPanel() + , mChiclet(NULL) +{ + LLUICtrlFactory::getInstance()->buildPanel(this, "panel_active_object_row.xml", NULL); + + initChiclet(object_id); + + LLTextBox* obj_name = getChild<LLTextBox>("object_name"); + obj_name->setValue(getObjectName(object_id)); + + mCloseBtn = getChild<LLButton>("hide_btn"); + mCloseBtn->setCommitCallback(boost::bind(&LLIMWellWindow::ObjectRowPanel::onClosePanel, this)); +} + +//--------------------------------------------------------------------------------- +LLIMWellWindow::ObjectRowPanel::~ObjectRowPanel() +{ +} + +std::string LLIMWellWindow::ObjectRowPanel::getObjectName(const LLUUID& object_id) +{ + using namespace LLNotificationsUI; + LLUUID notification_id = LLScriptFloaterManager::getInstance()->findNotificationId(object_id); + LLNotificationPtr notification = LLNotifications::getInstance()->find(notification_id); + if(!notification) + { + llwarns << "Invalid notification" << llendl; + return LLStringUtil::null; + } + + std::string text; + + switch(getObjectType(notification)) + { + case OBJ_SCRIPT: + text = notification->getSubstitutions()["TITLE"].asString(); + break; + case OBJ_LOAD_URL: + text = notification->getSubstitutions()["OBJECTNAME"].asString(); + break; + case OBJ_GIVE_INVENTORY: + text = notification->getSubstitutions()["NAME"].asString(); + break; + default: + text = getString("unknown_obj"); + break; + } + + return text; +} + +//--------------------------------------------------------------------------------- +void LLIMWellWindow::ObjectRowPanel::onClosePanel() +{ + LLScriptFloaterManager::getInstance()->removeNotificationByObjectId(mChiclet->getSessionId()); +} + +//static +LLIMWellWindow::ObjectRowPanel::object_type_map LLIMWellWindow::ObjectRowPanel::initObjectTypeMap() +{ + object_type_map type_map; + type_map["ScriptDialog"] = OBJ_SCRIPT; + type_map["LoadWebPage"] = OBJ_LOAD_URL; + type_map["ObjectGiveItem"] = OBJ_GIVE_INVENTORY; + return type_map; +} + +// static +LLIMWellWindow::ObjectRowPanel::EObjectType LLIMWellWindow::ObjectRowPanel::getObjectType(const LLNotificationPtr& notification) +{ + if(!notification) + { + llwarns << "Invalid notification" << llendl; + return OBJ_UNKNOWN; + } + + static object_type_map type_map = initObjectTypeMap(); + std::string name = notification->getName(); + object_type_map::const_iterator it = type_map.find(name); + if(it != type_map.end()) + { + return it->second; + } + llwarns << "Unknown object type" << llendl; + return OBJ_UNKNOWN; +} + +void LLIMWellWindow::ObjectRowPanel::initChiclet(const LLUUID& object_id, bool new_message/* = false*/) +{ + using namespace LLNotificationsUI; + LLUUID notification_id = LLScriptFloaterManager::getInstance()->findNotificationId(object_id); + LLNotificationPtr notification = LLNotifications::getInstance()->find(notification_id); + if(!notification) + { + llwarns << "Invalid notification" << llendl; + return; + } + + // Choose which of the pre-created chiclets to use. + switch(getObjectType(notification)) + { + case OBJ_GIVE_INVENTORY: + mChiclet = getChild<LLInvOfferChiclet>("inv_offer_chiclet"); + break; + default: + mChiclet = getChild<LLScriptChiclet>("object_chiclet"); + break; + } + + mChiclet->setVisible(true); + mChiclet->setSessionId(object_id); +// mChiclet->setShowNewMessagesIcon(new_message); +} + +//--------------------------------------------------------------------------------- +void LLIMWellWindow::ObjectRowPanel::onMouseEnter(S32 x, S32 y, MASK mask) +{ + setTransparentColor(LLUIColorTable::instance().getColor("SysWellItemSelected")); +} + +//--------------------------------------------------------------------------------- +void LLIMWellWindow::ObjectRowPanel::onMouseLeave(S32 x, S32 y, MASK mask) +{ + setTransparentColor(LLUIColorTable::instance().getColor("SysWellItemUnselected")); +} + +//--------------------------------------------------------------------------------- +// virtual +BOOL LLIMWellWindow::ObjectRowPanel::handleMouseDown(S32 x, S32 y, MASK mask) +{ + // Pass the mouse down event to the chiclet (EXT-596). + if (!mChiclet->pointInView(x, y) && !mCloseBtn->getRect().pointInRect(x, y)) // prevent double call of LLIMChiclet::onMouseDown() + mChiclet->onMouseDown(); + + return LLPanel::handleMouseDown(x, y, mask); +} /************************************************************************/ /* LLNotificationWellWindow implementation */ @@ -505,6 +648,7 @@ LLIMWellWindow::LLIMWellWindow(const LLSD& key) { LLIMMgr::getInstance()->addSessionObserver(this); LLIMChiclet::sFindChicletsSignal.connect(boost::bind(&LLIMWellWindow::findIMChiclet, this, _1)); + LLIMChiclet::sFindChicletsSignal.connect(boost::bind(&LLIMWellWindow::findObjectChiclet, this, _1)); } LLIMWellWindow::~LLIMWellWindow() @@ -559,6 +703,18 @@ void LLIMWellWindow::sessionIDUpdated(const LLUUID& old_session_id, const LLUUID } } +LLChiclet* LLIMWellWindow::findObjectChiclet(const LLUUID& object_id) +{ + LLChiclet* res = NULL; + ObjectRowPanel* panel = mMessageList->getTypedItemByValue<ObjectRowPanel>(object_id); + if (panel != NULL) + { + res = panel->mChiclet; + } + + return res; +} + ////////////////////////////////////////////////////////////////////////// // PRIVATE METHODS LLChiclet* LLIMWellWindow::findIMChiclet(const LLUUID& sessionId) @@ -617,4 +773,41 @@ void LLIMWellWindow::delIMRow(const LLUUID& sessionId) } } +void LLIMWellWindow::addObjectRow(const LLUUID& object_id, bool new_message/* = false*/) +{ + if (mMessageList->getItemByValue(object_id) == NULL) + { + ObjectRowPanel* item = new ObjectRowPanel(object_id, new_message); + if (mMessageList->insertItemAfter(mSeparator, item, object_id)) + { + handleItemAdded(IT_OBJECT); + } + else + { + llwarns << "Unable to add Object Row into the list, objectID: " << object_id << llendl; + item->die(); + } + reshapeWindow(); + } +} + +void LLIMWellWindow::removeObjectRow(const LLUUID& object_id) +{ + if (mMessageList->removeItemByValue(object_id)) + { + handleItemRemoved(IT_OBJECT); + } + else + { + llwarns << "Unable to remove Object Row from the list, objectID: " << object_id << llendl; + } + + reshapeWindow(); + // hide chiclet window if there are no items left + if(isWindowEmpty()) + { + setVisible(FALSE); + } +} + // EOF diff --git a/indra/newview/llsyswellwindow.h b/indra/newview/llsyswellwindow.h index adbc83677d..0e00236086 100644 --- a/indra/newview/llsyswellwindow.h +++ b/indra/newview/llsyswellwindow.h @@ -46,7 +46,7 @@ class LLFlatListView; class LLChiclet; class LLIMChiclet; - +class LLScriptChiclet; class LLSysWellWindow : public LLDockableFloater @@ -181,11 +181,16 @@ public: /*virtual*/ void sessionRemoved(const LLUUID& session_id); /*virtual*/ void sessionIDUpdated(const LLUUID& old_session_id, const LLUUID& new_session_id); + void addObjectRow(const LLUUID& object_id, bool new_message = false); + void removeObjectRow(const LLUUID& object_id); + protected: /*virtual*/ const std::string& getAnchorViewName() { return IM_WELL_ANCHOR_NAME; } private: LLChiclet * findIMChiclet(const LLUUID& sessionId); + LLChiclet* findObjectChiclet(const LLUUID& object_id); + void addIMRow(const LLUUID& sessionId, S32 chicletCounter, const std::string& name, const LLUUID& otherParticipantId); void delIMRow(const LLUUID& sessionId); @@ -210,6 +215,37 @@ private: LLButton* mCloseBtn; const LLSysWellWindow* mParent; }; + + class ObjectRowPanel: public LLPanel + { + typedef enum e_object_type + { + OBJ_UNKNOWN, + + OBJ_SCRIPT, + OBJ_GIVE_INVENTORY, + OBJ_LOAD_URL + }EObjectType; + + public: + ObjectRowPanel(const LLUUID& object_id, bool new_message = false); + virtual ~ObjectRowPanel(); + /*virtual*/ void onMouseEnter(S32 x, S32 y, MASK mask); + /*virtual*/ void onMouseLeave(S32 x, S32 y, MASK mask); + /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask); + private: + void onClosePanel(); + static EObjectType getObjectType(const LLNotificationPtr& notification); + void initChiclet(const LLUUID& object_id, bool new_message = false); + std::string getObjectName(const LLUUID& object_id); + + typedef std::map<std::string, EObjectType> object_type_map; + static object_type_map initObjectTypeMap(); + public: + LLIMChiclet* mChiclet; + private: + LLButton* mCloseBtn; + }; }; #endif // LL_LLSYSWELLWINDOW_H diff --git a/indra/newview/llversioninfo.cpp b/indra/newview/llversioninfo.cpp new file mode 100644 index 0000000000..148931d3ad --- /dev/null +++ b/indra/newview/llversioninfo.cpp @@ -0,0 +1,109 @@ +/** + * @file llversioninfo.cpp + * @brief Routines to access the viewer version and build information + * @author Martin Reddy + * + * $LicenseInfo:firstyear=2009&license=viewergpl$ + * + * Copyright (c) 2009, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ + +#include "llviewerprecompiledheaders.h" +#include "llversioninfo.h" + +#include "llversionviewer.h" + +// +// Set the version numbers in indra/llcommon/llversionviewer.h +// + +//static +S32 LLVersionInfo::getMajor() +{ + return LL_VERSION_MAJOR; +} + +//static +S32 LLVersionInfo::getMinor() +{ + return LL_VERSION_MINOR; +} + +//static +S32 LLVersionInfo::getPatch() +{ + return LL_VERSION_PATCH; +} + +//static +S32 LLVersionInfo::getBuild() +{ + return LL_VERSION_BUILD; +} + +//static +const std::string &LLVersionInfo::getVersion() +{ + static std::string version(""); + + if (version.empty()) + { + // cache the version string + std::ostringstream stream; + stream << LL_VERSION_MAJOR << "." + << LL_VERSION_MINOR << "." + << LL_VERSION_PATCH << "." + << LL_VERSION_BUILD; + version = stream.str(); + } + + return version; +} + +//static +const std::string &LLVersionInfo::getShortVersion() +{ + static std::string version(""); + + if (version.empty()) + { + // cache the version string + std::ostringstream stream; + stream << LL_VERSION_MAJOR << "." + << LL_VERSION_MINOR << "." + << LL_VERSION_PATCH; + version = stream.str(); + } + + return version; +} + +//static +const std::string &LLVersionInfo::getChannel() +{ + static std::string name(LL_CHANNEL); + return name; +} diff --git a/indra/newview/llversioninfo.h b/indra/newview/llversioninfo.h new file mode 100644 index 0000000000..b05109e478 --- /dev/null +++ b/indra/newview/llversioninfo.h @@ -0,0 +1,71 @@ +/** + * @file llversioninfo.h + * @brief Routines to access the viewer version and build information + * @author Martin Reddy + * + * $LicenseInfo:firstyear=2009&license=viewergpl$ + * + * Copyright (c) 2009, Linden Research, Inc. + * + * Second Life Viewer Source Code + * The source code in this file ("Source Code") is provided by Linden Lab + * to you under the terms of the GNU General Public License, version 2.0 + * ("GPL"), unless you have obtained a separate licensing agreement + * ("Other License"), formally executed by you and Linden Lab. Terms of + * the GPL can be found in doc/GPL-license.txt in this distribution, or + * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 + * + * There are special exceptions to the terms and conditions of the GPL as + * it is applied to this Source Code. View the full text of the exception + * in the file doc/FLOSS-exception.txt in this software distribution, or + * online at + * http://secondlifegrid.net/programs/open_source/licensing/flossexception + * + * By copying, modifying or distributing this software, you acknowledge + * that you have read and understood your obligations described above, + * and agree to abide by those obligations. + * + * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO + * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, + * COMPLETENESS OR PERFORMANCE. + * $/LicenseInfo$ + */ + +#ifndef LL_LLVERSIONINFO_H +#define LL_LLVERSIONINFO_H + +#include <string> + +/// +/// This API provides version information for the viewer. This +/// includes access to the major, minor, patch, and build integer +/// values, as well as human-readable string representations. All +/// viewer code that wants to query the current version should +/// use this API. +/// +class LLVersionInfo +{ +public: + /// return the major verion number as an integer + static S32 getMajor(); + + /// return the minor verion number as an integer + static S32 getMinor(); + + /// return the patch verion number as an integer + static S32 getPatch(); + + /// return the build number as an integer + static S32 getBuild(); + + /// return the full viewer version as a string like "2.0.0.200030" + static const std::string &getVersion(); + + /// return the viewer version as a string like "2.0.0" + static const std::string &getShortVersion(); + + /// return the channel name, e.g. "Second Life" + static const std::string &getChannel(); +}; + +#endif diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp index 5e23a7e114..6339d23fa7 100644 --- a/indra/newview/llviewercontrol.cpp +++ b/indra/newview/llviewercontrol.cpp @@ -67,7 +67,6 @@ #include "lloverlaybar.h" #include "llkeyboard.h" #include "llerrorcontrol.h" -#include "llversionviewer.h" #include "llappviewer.h" #include "llvosurfacepatch.h" #include "llvowlsky.h" diff --git a/indra/newview/llviewerhelp.cpp b/indra/newview/llviewerhelp.cpp index 056260791c..297c0cc111 100644 --- a/indra/newview/llviewerhelp.cpp +++ b/indra/newview/llviewerhelp.cpp @@ -37,7 +37,6 @@ #include "llfloaterreg.h" #include "llfocusmgr.h" #include "llviewercontrol.h" -#include "llversionviewer.h" #include "llappviewer.h" #include "lllogininstance.h" diff --git a/indra/newview/llviewerhelputil.cpp b/indra/newview/llviewerhelputil.cpp index 0a03012af6..df08470518 100644 --- a/indra/newview/llviewerhelputil.cpp +++ b/indra/newview/llviewerhelputil.cpp @@ -38,8 +38,7 @@ #include "llstring.h" #include "llsys.h" #include "lluri.h" -#include "llversionviewer.h" -#include "llviewerversion.h" +#include "llversioninfo.h" ////////////////////////////////////////////// @@ -78,11 +77,11 @@ std::string LLViewerHelpUtil::buildHelpURL( const std::string &topic, substitution["CHANNEL"] = helpURLEncode(savedSettings.getString("VersionChannelName")); - substitution["VERSION"] = helpURLEncode(llGetViewerVersion()); - substitution["VERSION_MAJOR"] = buildHelpVersion(LL_VERSION_MAJOR); - substitution["VERSION_MINOR"] = buildHelpVersion(LL_VERSION_MINOR); - substitution["VERSION_PATCH"] = buildHelpVersion(LL_VERSION_PATCH); - substitution["VERSION_BUILD"] = buildHelpVersion(LL_VERSION_BUILD); + substitution["VERSION"] = helpURLEncode(LLVersionInfo::getVersion()); + substitution["VERSION_MAJOR"] = buildHelpVersion(LLVersionInfo::getMajor()); + substitution["VERSION_MINOR"] = buildHelpVersion(LLVersionInfo::getMinor()); + substitution["VERSION_PATCH"] = buildHelpVersion(LLVersionInfo::getPatch()); + substitution["VERSION_BUILD"] = buildHelpVersion(LLVersionInfo::getBuild()); substitution["OS"] = helpURLEncode(osinfo.getOSStringSimple()); diff --git a/indra/newview/llviewerhome.cpp b/indra/newview/llviewerhome.cpp index 4556c3c5b1..58630978c4 100644 --- a/indra/newview/llviewerhome.cpp +++ b/indra/newview/llviewerhome.cpp @@ -38,7 +38,7 @@ #include "llui.h" #include "lluri.h" #include "llsd.h" -#include "llviewerversion.h" +#include "llversioninfo.h" #include "llviewercontrol.h" #include "llviewernetwork.h" @@ -49,7 +49,7 @@ std::string LLViewerHome::getHomeURL() // this value from settings.xml and support various substitutions LLSD substitution; - substitution["VERSION"] = llGetViewerVersion(); + substitution["VERSION"] = LLVersionInfo::getVersion(); substitution["CHANNEL"] = LLURI::escape(gSavedSettings.getString("VersionChannelName")); substitution["LANGUAGE"] = LLUI::getLanguage(); substitution["AUTH_KEY"] = LLURI::escape(getAuthKey()); diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp index a206768d33..952de00272 100644 --- a/indra/newview/llviewermedia.cpp +++ b/indra/newview/llviewermedia.cpp @@ -37,11 +37,11 @@ #include "llviewermediafocus.h" #include "llmimetypes.h" #include "llmediaentry.h" +#include "llversioninfo.h" #include "llviewercontrol.h" #include "llviewertexture.h" #include "llviewerparcelmedia.h" #include "llviewerparcelmgr.h" -#include "llviewerversion.h" #include "llviewertexturelist.h" #include "llvovolume.h" #include "llpluginclassmedia.h" @@ -446,7 +446,7 @@ std::string LLViewerMedia::getCurrentUserAgent() // http://www.mozilla.org/build/revised-user-agent-strings.html std::ostringstream codec; codec << "SecondLife/"; - codec << llGetViewerVersion(); + codec << LLVersionInfo::getVersion(); codec << " (" << channel << "; " << skin_name << " skin)"; llinfos << codec.str() << llendl; diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp index bf4d0c78e6..431b4d3c0a 100644 --- a/indra/newview/llviewermenu.cpp +++ b/indra/newview/llviewermenu.cpp @@ -45,6 +45,7 @@ #include "llagentwearables.h" #include "llagentpilot.h" #include "llcompilequeue.h" +#include "llconsole.h" #include "lldebugview.h" #include "llfilepicker.h" #include "llfirstuse.h" @@ -487,7 +488,7 @@ class LLAdvancedToggleConsole : public view_listener_t } else if ("debug" == console_type) { - toggle_visibility( (void*)((LLView*)gDebugView->mDebugConsolep) ); + toggle_visibility( (void*)static_cast<LLUICtrl*>(gDebugView->mDebugConsolep)); } else if (gTextureSizeView && "texture size" == console_type) { diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp index 2fae78cdfb..7a1abfd4e8 100644 --- a/indra/newview/llviewerparcelmgr.cpp +++ b/indra/newview/llviewerparcelmgr.cpp @@ -2525,7 +2525,8 @@ boost::signals2::connection LLViewerParcelMgr::setTeleportFailedCallback(parcel_ */ void LLViewerParcelMgr::onTeleportFinished(bool local, const LLVector3d& new_pos) { - if (local) + // Treat only teleports within the same parcel as local (EXT-3139). + if (local && LLViewerParcelMgr::getInstance()->inAgentParcel(new_pos)) { // Local teleport. We already have the agent parcel data. // Emit the signal immediately. @@ -2533,7 +2534,7 @@ void LLViewerParcelMgr::onTeleportFinished(bool local, const LLVector3d& new_pos } else { - // Non-local teleport. + // Non-local teleport (inter-region or between different parcels of the same region). // The agent parcel data has not been updated yet. // Let's wait for the update and then emit the signal. mTeleportInProgress = TRUE; diff --git a/indra/newview/llviewerprecompiledheaders.h b/indra/newview/llviewerprecompiledheaders.h index 86f59b6e2f..6a0ad5757f 100644 --- a/indra/newview/llviewerprecompiledheaders.h +++ b/indra/newview/llviewerprecompiledheaders.h @@ -109,7 +109,6 @@ #include "llthread.h" #include "lltimer.h" #include "lluuidhashmap.h" -//#include "llversionviewer.h" //#include "processor.h" #include "stdenums.h" #include "stdtypes.h" diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp index 5be7f2945f..e066546bd8 100644 --- a/indra/newview/llviewertexturelist.cpp +++ b/indra/newview/llviewertexturelist.cpp @@ -1454,6 +1454,8 @@ void LLUIImageList::onUIImageLoaded( BOOL success, LLViewerFetchedTexture *src_v llclamp((F32)scale_rect.mRight / (F32)imagep->getWidth(), 0.f, 1.f), llclamp((F32)scale_rect.mBottom / (F32)imagep->getHeight(), 0.f, 1.f))); } + + imagep->onImageLoaded(); } } } diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml index acb3262093..cdbeed111e 100644 --- a/indra/newview/skins/default/colors.xml +++ b/indra/newview/skins/default/colors.xml @@ -648,7 +648,7 @@ reference="LtGray" /> <color name="TextFgTentativeColor" - value="0 0 0 .33" /> + value="0.4 0.4 0.4 1" /> <color name="TimeTextColor" reference="LtGray" /> diff --git a/indra/newview/skins/default/textures/bottomtray/WellButton_Lit.png b/indra/newview/skins/default/textures/bottomtray/WellButton_Lit.png Binary files differnew file mode 100644 index 0000000000..60676b43fd --- /dev/null +++ b/indra/newview/skins/default/textures/bottomtray/WellButton_Lit.png diff --git a/indra/newview/skins/default/textures/bottomtray/WellButton_Lit_Selected.png b/indra/newview/skins/default/textures/bottomtray/WellButton_Lit_Selected.png Binary files differnew file mode 100644 index 0000000000..98cde96aff --- /dev/null +++ b/indra/newview/skins/default/textures/bottomtray/WellButton_Lit_Selected.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_BuildNo_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_BuildNo_Dark.png Binary files differnew file mode 100644 index 0000000000..fb1f7d3a6d --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_BuildNo_Dark.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_BuildNo_Light.png b/indra/newview/skins/default/textures/icons/Parcel_BuildNo_Light.png Binary files differnew file mode 100644 index 0000000000..e6f614b844 --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_BuildNo_Light.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_Build_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_Build_Dark.png Binary files differnew file mode 100644 index 0000000000..84a96a60cb --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_Build_Dark.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_DamageNo_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_DamageNo_Dark.png Binary files differnew file mode 100644 index 0000000000..d55ebd7c67 --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_DamageNo_Dark.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_Damage_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_Damage_Dark.png Binary files differnew file mode 100644 index 0000000000..ae4077488b --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_Damage_Dark.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_Exp_Color.png b/indra/newview/skins/default/textures/icons/Parcel_Exp_Color.png Binary files differnew file mode 100644 index 0000000000..4813d37198 --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_Exp_Color.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_FlyNo_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_FlyNo_Dark.png Binary files differnew file mode 100644 index 0000000000..0455a52fdc --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_FlyNo_Dark.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_FlyNo_Light.png b/indra/newview/skins/default/textures/icons/Parcel_FlyNo_Light.png Binary files differnew file mode 100644 index 0000000000..be0c379d84 --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_FlyNo_Light.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_Fly_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_Fly_Dark.png Binary files differnew file mode 100644 index 0000000000..ed4a512e04 --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_Fly_Dark.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_ForSale_Light.png b/indra/newview/skins/default/textures/icons/Parcel_ForSale_Light.png Binary files differnew file mode 100644 index 0000000000..d28e5357df --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_ForSale_Light.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_Health_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_Health_Dark.png Binary files differnew file mode 100644 index 0000000000..d72f02f708 --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_Health_Dark.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_M_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_M_Dark.png Binary files differnew file mode 100644 index 0000000000..2f5871b8ff --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_M_Dark.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_M_Light.png b/indra/newview/skins/default/textures/icons/Parcel_M_Light.png Binary files differnew file mode 100644 index 0000000000..724ac22744 --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_M_Light.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_NoScripts_Light.png b/indra/newview/skins/default/textures/icons/Parcel_NoScripts_Light.png Binary files differnew file mode 100644 index 0000000000..f82354959e --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_NoScripts_Light.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_PG_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_PG_Dark.png Binary files differnew file mode 100644 index 0000000000..f0565f02dd --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_PG_Dark.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_PG_Light.png b/indra/newview/skins/default/textures/icons/Parcel_PG_Light.png Binary files differnew file mode 100644 index 0000000000..f32b0570a1 --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_PG_Light.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_PushNo_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_PushNo_Dark.png Binary files differnew file mode 100644 index 0000000000..8f0fe6a04d --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_PushNo_Dark.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_PushNo_Light.png b/indra/newview/skins/default/textures/icons/Parcel_PushNo_Light.png Binary files differnew file mode 100644 index 0000000000..eba7070b4d --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_PushNo_Light.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_Push_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_Push_Dark.png Binary files differnew file mode 100644 index 0000000000..08c2a18ac3 --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_Push_Dark.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_R_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_R_Dark.png Binary files differnew file mode 100644 index 0000000000..e0e6e14cca --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_R_Dark.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_R_Light.png b/indra/newview/skins/default/textures/icons/Parcel_R_Light.png Binary files differnew file mode 100644 index 0000000000..efca6776da --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_R_Light.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_ScriptsNo_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_ScriptsNo_Dark.png Binary files differnew file mode 100644 index 0000000000..8f9f37a1bf --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_ScriptsNo_Dark.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_Scripts_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_Scripts_Dark.png Binary files differnew file mode 100644 index 0000000000..8b1d6c5e14 --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_Scripts_Dark.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_VoiceNo_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_VoiceNo_Dark.png Binary files differnew file mode 100644 index 0000000000..eace54ae79 --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_VoiceNo_Dark.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_VoiceNo_Light.png b/indra/newview/skins/default/textures/icons/Parcel_VoiceNo_Light.png Binary files differnew file mode 100644 index 0000000000..0d07e552b1 --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_VoiceNo_Light.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_Voice_Dark.png b/indra/newview/skins/default/textures/icons/Parcel_Voice_Dark.png Binary files differnew file mode 100644 index 0000000000..b36a9bd2f0 --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_Voice_Dark.png diff --git a/indra/newview/skins/default/textures/icons/Parcel_Voice_Light.png b/indra/newview/skins/default/textures/icons/Parcel_Voice_Light.png Binary files differnew file mode 100644 index 0000000000..86ce19474a --- /dev/null +++ b/indra/newview/skins/default/textures/icons/Parcel_Voice_Light.png diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml index 6f9801491a..3e0067bbd1 100644 --- a/indra/newview/skins/default/textures/textures.xml +++ b/indra/newview/skins/default/textures/textures.xml @@ -57,6 +57,9 @@ with the same filename but different name <texture name="Arrow_Small_Left" file_name="widgets/Arrow_Small_Left.png" preload="true" /> <texture name="Arrow_Small_Right" file_name="widgets/Arrow_Small_Right.png" preload="true" /> + <texture name="Arrow_Down" file_name="widgets/Arrow_Down.png" preload="true" /> + <texture name="Arrow_Up" file_name="widgets/Arrow_Up.png" preload="true" /> + <texture name="AudioMute_Off" file_name="icons/AudioMute_Off.png" preload="false" /> <texture name="AudioMute_Over" file_name="icons/AudioMute_Over.png" preload="false" /> <texture name="AudioMute_Press" file_name="icons/AudioMute_Press.png" preload="false" /> @@ -332,49 +335,49 @@ with the same filename but different name <texture name="Overhead_M" file_name="world/Overhead_M.png" preload="false" /> <texture name="Overhead_S" file_name="world/Overhead_S.png" preload="false" /> - <texture name="parcel_color_EVRY" file_name="icons/parcel_color_EVRY.png" preload="false" /> - <texture name="parcel_color_EXP" file_name="icons/parcel_color_EXP.png" preload="false" /> - <texture name="parcel_color_M" file_name="icons/parcel_color_M.png" preload="false" /> - - <texture name="parcel_drk_Build" file_name="icons/parcel_drk_Build.png" preload="false" /> - <texture name="parcel_drk_BuildNo" file_name="icons/parcel_drk_BuildNo.png" preload="false" /> - <texture name="parcel_drk_Damage" file_name="icons/parcel_drk_Damage.png" preload="false" /> - <texture name="parcel_drk_DamageNo" file_name="icons/parcel_drk_DamageNo.png" preload="false" /> - <texture name="parcel_drk_EVRY" file_name="icons/parcel_drk_EVRY.png" preload="false" /> - <texture name="parcel_drk_EXP" file_name="icons/parcel_drk_EXP.png" preload="false" /> - <texture name="parcel_drk_Fly" file_name="icons/parcel_drk_Fly.png" preload="false" /> - <texture name="parcel_drk_FlyNo" file_name="icons/parcel_drk_FlyNo.png" preload="false" /> - <texture name="parcel_drk_ForSale" file_name="icons/parcel_drk_ForSale.png" preload="false" /> - <texture name="parcel_drk_ForSaleNo" file_name="icons/parcel_drk_ForSaleNo.png" preload="false" /> - <texture name="parcel_drk_M" file_name="icons/parcel_drk_M.png" preload="false" /> - <texture name="parcel_drk_PG" file_name="icons/parcel_drk_PG.png" preload="false" /> - <texture name="parcel_drk_Push" file_name="icons/parcel_drk_Push.png" preload="false" /> - <texture name="parcel_drk_PushNo" file_name="icons/parcel_drk_PushNo.png" preload="false" /> - <texture name="parcel_drk_R" file_name="icons/parcel_drk_R.png" preload="false" /> - <texture name="parcel_drk_Scripts" file_name="icons/parcel_drk_Scripts.png" preload="false" /> - <texture name="parcel_drk_ScriptsNo" file_name="icons/parcel_drk_ScriptsNo.png" preload="false" /> - <texture name="parcel_drk_Voice" file_name="icons/parcel_drk_Voice.png" preload="false" /> - <texture name="parcel_drk_VoiceNo" file_name="icons/parcel_drk_VoiceNo.png" preload="false" /> - - <texture name="parcel_lght_Build" file_name="icons/parcel_lght_Build.png" preload="false" /> - <texture name="parcel_lght_BuildNo" file_name="icons/parcel_lght_BuildNo.png" preload="false" /> - <texture name="parcel_lght_Damage" file_name="icons/parcel_lght_Damage.png" preload="false" /> - <texture name="parcel_lght_DamageNo" file_name="icons/parcel_lght_DamageNo.png" preload="false" /> - <texture name="parcel_lght_EVRY" file_name="icons/parcel_lght_EVRY.png" preload="false" /> - <texture name="parcel_lght_EXP" file_name="icons/parcel_lght_EXP.png" preload="false" /> - <texture name="parcel_lght_Fly" file_name="icons/parcel_lght_Fly.png" preload="false" /> - <texture name="parcel_lght_FlyNo" file_name="icons/parcel_lght_FlyNo.png" preload="false" /> - <texture name="parcel_lght_ForSale" file_name="icons/parcel_lght_ForSale.png" preload="false" /> - <texture name="parcel_lght_ForSaleNo" file_name="icons/parcel_lght_ForSaleNo.png" preload="false" /> - <texture name="parcel_lght_M" file_name="icons/parcel_lght_M.png" preload="false" /> - <texture name="parcel_lght_PG" file_name="icons/parcel_lght_PG.png" preload="false" /> - <texture name="parcel_lght_Push" file_name="icons/parcel_lght_Push.png" preload="false" /> - <texture name="parcel_lght_PushNo" file_name="icons/parcel_lght_PushNo.png" preload="false" /> - <texture name="parcel_lght_R" file_name="icons/parcel_lght_R.png" preload="false" /> - <texture name="parcel_lght_Scripts" file_name="icons/parcel_lght_Scripts.png" preload="false" /> - <texture name="parcel_lght_ScriptsNo" file_name="icons/parcel_lght_ScriptsNo.png" preload="false" /> - <texture name="parcel_lght_Voice" file_name="icons/parcel_lght_Voice.png" preload="false" /> - <texture name="parcel_lght_VoiceNo" file_name="icons/parcel_lght_VoiceNo.png" preload="false" /> + <texture name="Parcel_Evry_Color" file_name="icons/Parcel_Evry_Color.png" preload="false" /> + <texture name="Parcel_Exp_Color" file_name="icons/Parcel_Exp_Color.png" preload="false" /> + <texture name="Parcel_M_Color" file_name="icons/Parcel_M_Color.png" preload="false" /> + + <texture name="Parcel_Build_Dark" file_name="icons/Parcel_Build_Dark.png" preload="false" /> + <texture name="Parcel_BuildNo_Dark" file_name="icons/Parcel_BuildNo_Dark.png" preload="false" /> + <texture name="Parcel_Damage_Dark" file_name="icons/Parcel_Damage_Dark.png" preload="false" /> + <texture name="Parcel_DamageNo_Dark" file_name="icons/Parcel_DamageNo_Dark.png" preload="false" /> + <texture name="Parcel_Evry_Dark" file_name="icons/Parcel_Evry_Dark.png" preload="false" /> + <texture name="Parcel_Exp_Dark" file_name="icons/Parcel_Exp_Dark.png" preload="false" /> + <texture name="Parcel_Fly_Dark" file_name="icons/Parcel_Fly_Dark.png" preload="false" /> + <texture name="Parcel_FlyNo_Dark" file_name="icons/Parcel_FlyNo_Dark.png" preload="false" /> + <texture name="Parcel_ForSale_Dark" file_name="icons/Parcel_ForSale_Dark.png" preload="false" /> + <texture name="Parcel_ForSaleNo_Dark" file_name="icons/Parcel_ForSaleNo_Dark.png" preload="false" /> + <texture name="Parcel_M_Dark" file_name="icons/Parcel_M_Dark.png" preload="false" /> + <texture name="Parcel_PG_Dark" file_name="icons/Parcel_PG_Dark.png" preload="false" /> + <texture name="Parcel_Push_Dark" file_name="icons/Parcel_Push_Dark.png" preload="false" /> + <texture name="Parcel_PushNo_Dark" file_name="icons/Parcel_PushNo_Dark.png" preload="false" /> + <texture name="Parcel_R_Dark" file_name="icons/Parcel_R_Dark.png" preload="false" /> + <texture name="Parcel_Scripts_Dark" file_name="icons/Parcel_Scripts_Dark.png" preload="false" /> + <texture name="Parcel_ScriptsNo_Dark" file_name="icons/Parcel_ScriptsNo_Dark.png" preload="false" /> + <texture name="Parcel_Voice_Dark" file_name="icons/Parcel_Voice_Dark.png" preload="false" /> + <texture name="Parcel_VoiceNo_Dark" file_name="icons/Parcel_VoiceNo_Dark.png" preload="false" /> + + <texture name="Parcel_Build_Light" file_name="icons/Parcel_Build_Light.png" preload="false" /> + <texture name="Parcel_BuildNo_Light" file_name="icons/Parcel_BuildNo_Light.png" preload="false" /> + <texture name="Parcel_Damage_Light" file_name="icons/Parcel_Damage_Light.png" preload="false" /> + <texture name="Parcel_DamageNo_Light" file_name="icons/Parcel_DamageNo_Light.png" preload="false" /> + <texture name="Parcel_Evry_Light" file_name="icons/Parcel_Evry_Light.png" preload="false" /> + <texture name="Parcel_Exp_Light" file_name="icons/Parcel_Exp_Light.png" preload="false" /> + <texture name="Parcel_Fly_Light" file_name="icons/Parcel_Fly_Light.png" preload="false" /> + <texture name="Parcel_FlyNo_Light" file_name="icons/Parcel_FlyNo_Light.png" preload="false" /> + <texture name="Parcel_ForSale_Light" file_name="icons/Parcel_ForSale_Light.png" preload="false" /> + <texture name="Parcel_ForSaleNo_Light" file_name="icons/Parcel_ForSaleNo_Light.png" preload="false" /> + <texture name="Parcel_M_Light" file_name="icons/Parcel_M_Light.png" preload="false" /> + <texture name="Parcel_PG_Light" file_name="icons/Parcel_PG_Light.png" preload="false" /> + <texture name="Parcel_Push_Light" file_name="icons/Parcel_Push_Light.png" preload="false" /> + <texture name="Parcel_PushNo_Light" file_name="icons/Parcel_PushNo_Light.png" preload="false" /> + <texture name="Parcel_R_Light" file_name="icons/Parcel_R_Light.png" preload="false" /> + <texture name="Parcel_Scripts_Light" file_name="icons/Parcel_Scripts_Light.png" preload="false" /> + <texture name="Parcel_ScriptsNo_Light" file_name="icons/Parcel_ScriptsNo_Light.png" preload="false" /> + <texture name="Parcel_Voice_Light" file_name="icons/Parcel_Voice_Light.png" preload="false" /> + <texture name="Parcel_VoiceNo_Light" file_name="icons/Parcel_VoiceNo_Light.png" preload="false" /> <texture name="Pause_Off" file_name="icons/Pause_Off.png" preload="false" /> <texture name="Pause_Over" file_name="icons/Pause_Over.png" preload="false" /> @@ -589,6 +592,9 @@ with the same filename but different name <texture name="Unread_IM" file_name="bottomtray/Unread_IM.png" preload="false" /> <texture name="Unread_Msg" file_name="bottomtray/Unread_Msg.png" preload="false" /> + + <texture name="WellButton_Lit" file_name="bottomtray/WellButton_Lit.png" /> + <texture name="WellButton_Lit_Selected" file_name="bottomtray/WellButton_Lit_Selected.png" /> <texture name="VoicePTT_Lvl1" file_name="bottomtray/VoicePTT_Lvl1.png" preload="false" /> <texture name="VoicePTT_Lvl2" file_name="bottomtray/VoicePTT_Lvl2.png" preload="false" /> diff --git a/indra/newview/skins/default/xui/en/floater_animation_preview.xml b/indra/newview/skins/default/xui/en/floater_animation_preview.xml index a8f875754e..4f4288b654 100644 --- a/indra/newview/skins/default/xui/en/floater_animation_preview.xml +++ b/indra/newview/skins/default/xui/en/floater_animation_preview.xml @@ -456,26 +456,43 @@ Maximum animation length is [MAX_LENGTH] seconds. image_overlay="Play_Over" image_unselected="SegmentedBtn_Left_Off" image_selected="SegmentedBtn_Left_On_Selected" - image_disabled_selected="SegmentedBtn_Left_Selected_Disabled" - image_disabled="SegmentedBtn_Left_Disabled" - image_pressed="SegmentedBtn_Left_Press" - image_pressed_selected="SegmentedBtn_Left_Selected_Press" + image_disabled_selected="SegmentedBtn_Left_Selected_Disabled" + image_disabled="SegmentedBtn_Left_Disabled" + image_pressed="SegmentedBtn_Left_Press" + image_pressed_selected="SegmentedBtn_Left_Selected_Press" layout="topleft" left="10" name="play_btn" - tool_tip="Play/pause your animation" + tool_tip="Play your animation" top_pad="0" width="23" /> <button + visible = "false" + follows="top|right" + height="23" + image_overlay="Pause_Over" + image_unselected="SegmentedBtn_Left_Off" + image_selected="SegmentedBtn_Left_On_Selected" + image_disabled_selected="SegmentedBtn_Left_Selected_Disabled" + image_disabled="SegmentedBtn_Left_Disabled" + image_pressed="SegmentedBtn_Left_Press" + image_pressed_selected="SegmentedBtn_Left_Selected_Press" + layout="topleft" + left="10" + name="pause_btn" + tool_tip="Pause your animation" + top_pad="-23" + width="23" /> + <button follows="top|right" height="23" image_overlay="StopReload_Over" image_unselected="SegmentedBtn_Right_Off" image_selected="SegmentedBtn_Right_On_Selected" - image_disabled_selected="SegmentedBtn_Right_Selected_Disabled" - image_disabled="SegmentedBtn_Right_Disabled" - image_pressed="SegmentedBtn_Right_Press" - image_pressed_selected="SegmentedBtn_Right_Selected_Press" + image_disabled_selected="SegmentedBtn_Right_Selected_Disabled" + image_disabled="SegmentedBtn_Right_Disabled" + image_pressed="SegmentedBtn_Right_Press" + image_pressed_selected="SegmentedBtn_Right_Selected_Press" layout="topleft" name="stop_btn" tool_tip="Stop animation playback" diff --git a/indra/newview/skins/default/xui/en/floater_lagmeter.xml b/indra/newview/skins/default/xui/en/floater_lagmeter.xml index 19f5155f88..b24c745bdd 100644 --- a/indra/newview/skins/default/xui/en/floater_lagmeter.xml +++ b/indra/newview/skins/default/xui/en/floater_lagmeter.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <floater legacy_header_height="18" - height="150" + height="170" layout="topleft" name="floater_lagmeter" help_topic="floater_lagmeter" @@ -328,7 +328,7 @@ left="10" name="minimize" tool_tip="Toggle floater size" - top_delta="4" + top_delta="24" width="40"> <button.commit_callback function="LagMeter.ClickShrink" /> diff --git a/indra/newview/skins/default/xui/en/floater_select_key.xml b/indra/newview/skins/default/xui/en/floater_select_key.xml index af4fdff044..6050aede79 100644 --- a/indra/newview/skins/default/xui/en/floater_select_key.xml +++ b/indra/newview/skins/default/xui/en/floater_select_key.xml @@ -4,30 +4,31 @@ border="false" can_close="false" can_minimize="false" - height="100" + height="90" layout="topleft" name="modal container" width="240"> - <button - height="20" - label="Cancel" - label_selected="Cancel" - layout="topleft" - left="138" - name="Cancel" - top="70" - width="82" /> <text type="string" + halign="center" length="1" follows="left|top" - font="SansSerif" - height="16" + height="30" layout="topleft" - left="20" + left="10" name="Save item as:" - top="10" - width="200"> - Press a key to select + top="25" + word_wrap="true" + width="220"> + Press a key to set your +Speak button toggle </text> + <button + height="23" + label="Cancel" + label_selected="Cancel" + layout="topleft" + right="-10" + name="Cancel" + width="100" /> </floater> diff --git a/indra/newview/skins/default/xui/en/floater_sell_land.xml b/indra/newview/skins/default/xui/en/floater_sell_land.xml index e6a78563f3..409f46b960 100644 --- a/indra/newview/skins/default/xui/en/floater_sell_land.xml +++ b/indra/newview/skins/default/xui/en/floater_sell_land.xml @@ -182,7 +182,7 @@ width="130"> <combo_box.item enabled="false" - label="-- select one --" + label="- Select one -" name="--selectone--" value="select" /> <combo_box.item diff --git a/indra/newview/skins/default/xui/en/floater_telehub.xml b/indra/newview/skins/default/xui/en/floater_telehub.xml index 374f014908..bb463edd4d 100644 --- a/indra/newview/skins/default/xui/en/floater_telehub.xml +++ b/indra/newview/skins/default/xui/en/floater_telehub.xml @@ -6,7 +6,7 @@ name="telehub" help_topic="telehub" title="TELEHUB" - width="280"> + width="330"> <text type="string" length="1" @@ -16,7 +16,7 @@ left="10" name="status_text_connected" top="24" - width="200"> + width="315"> Telehub connected to object [OBJECT] </text> <text @@ -28,7 +28,7 @@ left_delta="0" name="status_text_not_connected" top_delta="0" - width="200"> + width="315"> No telehub connected. </text> <text @@ -40,7 +40,7 @@ left_delta="0" name="help_text_connected" top_delta="16" - width="260"> + width="315"> To remove, click Disconnect. </text> <text @@ -52,78 +52,73 @@ left_delta="0" name="help_text_not_connected" top_delta="0" - width="260"> + width="315"> Select object and click Connect Telehub. </text> <button follows="top|left" - height="20" + height="23" label="Connect Telehub" layout="topleft" left_delta="0" name="connect_btn" top_delta="20" - width="110" /> + width="130" /> <button follows="top|left" - height="20" + height="23" label="Disconnect" layout="topleft" left_pad="10" name="disconnect_btn" top_delta="0" - width="110" /> + width="130" /> <text type="string" length="1" follows="left|top" - height="16" + height="14" layout="topleft" left="10" name="spawn_points_text" top="84" - width="200"> + width="315"> Spawn Points (positions, not objects): </text> <scroll_list follows="left|top" height="60" layout="topleft" - left_delta="0" name="spawn_points_list" - top_delta="16" - width="230" /> + width="315" /> <button follows="top|left" - height="20" + height="23" label="Add Spawn" layout="topleft" - left_delta="0" name="add_spawn_point_btn" - top_pad="5" - width="110" /> + width="130" /> <button follows="top|left" - height="20" + height="23" label="Remove Spawn" layout="topleft" left_pad="10" name="remove_spawn_point_btn" - top_delta="0" - width="110" /> + width="130" /> <text type="string" length="1" follows="top|left" - height="80" + height="56" layout="topleft" left="10" name="spawn_point_help" - top="190" - width="260"> - Select object and click Add to specify position. -You may then move or delete the object. + word_wrap="true" + width="317"> + Select object and click "Add Spawn" to specify position. +You can then move or delete the object. Positions are relative to the telehub center. -Select item in list to show position in world. +Select an item in list to highlight it inworld. </text> </floater> diff --git a/indra/newview/skins/default/xui/en/floater_test_text_editor.xml b/indra/newview/skins/default/xui/en/floater_test_text_editor.xml index b0aa5c7c4f..8be0c28c5c 100644 --- a/indra/newview/skins/default/xui/en/floater_test_text_editor.xml +++ b/indra/newview/skins/default/xui/en/floater_test_text_editor.xml @@ -9,7 +9,6 @@ <text_editor height="50" follows="top|left|bottom" - layout="topleft" left="10" name="test_text_editor" tool_tip="text editor" @@ -17,4 +16,15 @@ width="200"> Text Editor </text_editor> + <text_editor + height="50" + follows="top|left|bottom" + font="SansSerif" + left="10" + name="test_text_editor" + tool_tip="text editor" + top_pad="10" + width="200"> + This contains long text and should scroll horizontally to the right + </text_editor> </floater> diff --git a/indra/newview/skins/default/xui/en/floater_top_objects.xml b/indra/newview/skins/default/xui/en/floater_top_objects.xml index d2db26daec..68bb500c78 100644 --- a/indra/newview/skins/default/xui/en/floater_top_objects.xml +++ b/indra/newview/skins/default/xui/en/floater_top_objects.xml @@ -8,7 +8,7 @@ min_width="450" name="top_objects" help_topic="top_objects" - title="LOADING..." + title="Top Objects" width="550"> <floater.string name="top_scripts_title"> @@ -46,24 +46,24 @@ type="string" length="1" follows="left|top" - font="SansSerif" height="20" layout="topleft" left="10" name="title_text" - top="30" + top="20" + text_color="EmphasisColor" width="400"> Loading... </text> <scroll_list draw_heading="true" - follows="left|top|bottom|right" - height="150" + follows="all" + height="170" layout="topleft" left_delta="0" multi_select="true" name="objects_list" - top_delta="20" + top_delta="17" width="530"> <scroll_list.columns label="Score" @@ -109,16 +109,16 @@ follows="left|bottom|right" height="20" layout="topleft" - left_delta="70" + left_pad="3" name="id_editor" top_delta="-3" - width="350" /> + width="325" /> <button follows="bottom|right" - height="20" + height="23" label="Show Beacon" layout="topleft" - left_pad="10" + left_pad="5" name="show_beacon_btn" top_delta="0" width="100"> @@ -132,25 +132,25 @@ height="20" layout="topleft" left="10" + top_pad="5" name="obj_name_text" - top="237" width="100"> - Object Name: + Object name: </text> <line_editor follows="left|bottom|right" height="20" layout="topleft" - left_delta="70" + left_pad="3" name="object_name_editor" top_delta="-3" - width="350" /> + width="325" /> <button follows="bottom|right" - height="20" + height="23" label="Filter" layout="topleft" - left_pad="10" + left_pad="5" name="filter_object_btn" top_delta="0" width="100"> @@ -164,25 +164,25 @@ height="20" layout="topleft" left="10" + top_pad="5" name="owner_name_text" - top="264" width="100"> - Owner Name: + Owner: </text> <line_editor follows="left|bottom|right" height="20" layout="topleft" - left_delta="70" + left_pad="3" name="owner_name_editor" top_delta="-3" - width="350" /> + width="325" /> <button follows="bottom|right" - height="20" + height="23" label="Filter" layout="topleft" - left_pad="10" + left_pad="5" name="filter_owner_btn" top_delta="0" width="100"> @@ -190,20 +190,32 @@ function="TopObjects.GetByOwnerName" /> </button> <button + follows="top|left" + height="22" + image_overlay="Refresh_Off" + layout="topleft" + name="refresh_btn" + right="-8" + top_pad="5" + width="23"> + <button.commit_callback + function="TopObjects.Refresh" /> + </button> + <button follows="bottom|left" - height="20" + height="23" label="Return Selected" layout="topleft" - left="10" + left="112" + top_delta="0" name="return_selected_btn" - top="295" width="130"> <button.commit_callback function="TopObjects.ReturnSelected" /> </button> <button follows="bottom|left" - height="20" + height="23" label="Return All" layout="topleft" left_pad="10" @@ -215,19 +227,19 @@ </button> <button follows="bottom|left" - height="20" + height="23" label="Disable Selected" layout="topleft" - left="10" + + left="112" name="disable_selected_btn" - top="320" width="130"> <button.commit_callback function="TopObjects.DisableSelected" /> </button> <button follows="bottom|left" - height="20" + height="23" label="Disable All" layout="topleft" left_pad="10" @@ -237,16 +249,4 @@ <button.commit_callback function="TopObjects.DisableAll" /> </button> - <button - bottom="315" - follows="bottom|right" - height="20" - label="Refresh" - layout="topleft" - name="refresh_btn" - right="-10" - width="100"> - <button.commit_callback - function="TopObjects.Refresh" /> - </button> </floater> diff --git a/indra/newview/skins/default/xui/en/floater_water.xml b/indra/newview/skins/default/xui/en/floater_water.xml index b13a11c05d..89492d8abc 100644 --- a/indra/newview/skins/default/xui/en/floater_water.xml +++ b/indra/newview/skins/default/xui/en/floater_water.xml @@ -116,7 +116,7 @@ layout="topleft" left="10" name="WaterFogDensText" - top="74" + top="84" width="200"> Fog Density Exponent </text> @@ -130,7 +130,7 @@ left="24" max_val="10" name="WaterFogDensity" - top="110" + top="124" width="200" /> <text type="string" @@ -141,7 +141,7 @@ layout="topleft" left_delta="-14" name="WaterUnderWaterFogModText" - top_delta="4" + top="124" width="200"> Underwater Fog Modifier </text> @@ -155,7 +155,7 @@ left="24" max_val="2" name="WaterUnderWaterFogMod" - top="150" + top="164" width="200" /> <text type="string" @@ -180,7 +180,7 @@ layout="topleft" max_val="10" name="WaterNormalScaleX" - top_pad="20" + top_pad="24" width="200" /> <slider control_name="WaterNormalScaleY" @@ -192,7 +192,7 @@ layout="topleft" max_val="10" name="WaterNormalScaleY" - top_pad="0" + top_pad="4" width="200" /> <slider control_name="WaterNormalScaleZ" @@ -204,7 +204,7 @@ layout="topleft" max_val="10" name="WaterNormalScaleZ" - top_pad="0" + top_pad="4" width="200" /> <text type="string" @@ -214,7 +214,7 @@ height="16" layout="topleft" name="HDText" - top_pad="-10" + top="84" width="200"> Fresnel Scale </text> @@ -227,7 +227,7 @@ initial_value="0.7" layout="topleft" name="WaterFresnelScale" - top_pad="20" + top="124" width="200" /> <text type="string" @@ -237,7 +237,7 @@ height="16" layout="topleft" name="FresnelOffsetText" - top_pad="-10" + top="124" width="200"> Fresnel Offset </text> @@ -250,7 +250,7 @@ initial_value="0.7" layout="topleft" name="WaterFresnelOffset" - top_pad="20" + top="164" width="200" /> <text type="string" @@ -275,7 +275,7 @@ layout="topleft" left="494" name="WaterScaleAbove" - top="40" + top="44" width="200" /> <text type="string" @@ -286,7 +286,7 @@ layout="topleft" left_delta="-14" name="WaterScaleBelowText" - top_delta="-3" + top="44" width="200"> Refract Scale Below </text> @@ -300,7 +300,7 @@ layout="topleft" left="494" name="WaterScaleBelow" - top="73" + top="84" width="200" /> <text type="string" @@ -311,7 +311,7 @@ layout="topleft" left_delta="-14" name="MaxAltText" - top_delta="-2" + top="84" width="200"> Blur Multiplier </text> @@ -325,7 +325,7 @@ left="494" max_val="0.16" name="WaterBlurMult" - top="107" + top="124" width="200" /> </panel> <panel diff --git a/indra/newview/skins/default/xui/en/floater_world_map.xml b/indra/newview/skins/default/xui/en/floater_world_map.xml index 9c11a88c34..e632b67d11 100644 --- a/indra/newview/skins/default/xui/en/floater_world_map.xml +++ b/indra/newview/skins/default/xui/en/floater_world_map.xml @@ -62,7 +62,7 @@ left="4" layout="topleft" name="Show My Location" - tool_tip="Center map on your avatar's location" + tool_tip="Center map on my avatar's location" top="6" width="24" > <button.commit_callback @@ -235,7 +235,7 @@ left="136" top="6" name="Go Home" - tool_tip="Teleport home" + tool_tip="Teleport to my home location" width="24" > <button.commit_callback function="WMap.GoHome" /> diff --git a/indra/newview/skins/default/xui/en/inspect_remote_object.xml b/indra/newview/skins/default/xui/en/inspect_remote_object.xml index b5f2abf52a..ef3dd844cd 100644 --- a/indra/newview/skins/default/xui/en/inspect_remote_object.xml +++ b/indra/newview/skins/default/xui/en/inspect_remote_object.xml @@ -6,10 +6,10 @@ <floater legacy_header_height="18" bevel_style="in" - bg_opaque_image="Inspector_Background" + bg_opaque_image="Inspector_Background" can_close="false" can_minimize="false" - height="145" + height="130" layout="topleft" name="inspect_remote_object" single_instance="true" @@ -18,79 +18,78 @@ width="300"> <text follows="all" - font="SansSerifLargeBold" - height="16" + font="SansSerifLarge" + font_style="BOLD" + height="30" left="8" name="object_name" text_color="White" top="5" use_ellipses="true" - width="290"> - Test Object Name That Is Really Long + word_wrap="true" + width="291"> + Test Object Name That Is Really Long OMG so long I can't believe how long the name of this object is, I mean really. </text> <text - follows="all" - font="SansSerif" - height="20" + follows="top|left" + font="SansSerifSmall" + height="16" left="8" name="object_owner_label" width="55" - top_pad="20"> + top_pad="12"> Owner: </text> <text follows="top|left" - font="SansSerif" - height="20" - left_pad="10" + height="16" + left_pad="5" name="object_owner" use_ellipses="true" - width="200" + width="230" word_wrap="false"> Longavatarname Johnsonlongstonnammer </text> - <text + <!--<text follows="top|left" - font="SansSerif" - height="20" + height="16" left="8" name="object_slurl_label" - top_pad="10" + top_pad="5" width="55"> Location: - </text> + </text>--> <text follows="top|left" - height="20" - left_pad="10" + height="16" + left="8" name="object_slurl" - width="240" + width="290" use_ellipses="true" word_wrap="false"> http://slurl.com/Ahern/50/50/50 </text> <button follows="top|left" - height="20" + height="23" label="Map" - left="10" + left="8" + top_pad="8" name="map_btn" - top="114" - width="75" /> + width="90" /> <button follows="top|left" - height="20" + height="23" label="Block" - left_pad="5" + left_pad="8" name="block_btn" - top_delta="0" - width="75" /> + width="90" /> <button follows="top|left" - height="20" + height="23" label="Close" - right="-10" + right="-8" name="close_btn" - top_delta="0" - width="75" /> + left_pad="5" + width="90" /> </floater> diff --git a/indra/newview/skins/default/xui/en/main_view.xml b/indra/newview/skins/default/xui/en/main_view.xml index a11ebf5af8..65a545d2ed 100644 --- a/indra/newview/skins/default/xui/en/main_view.xml +++ b/indra/newview/skins/default/xui/en/main_view.xml @@ -19,6 +19,7 @@ mouse_opaque="false" name="nav_bar_container" width="1024" + user_resize="false" visible="false"> </layout_panel> <layout_panel auto_resize="true" @@ -43,7 +44,7 @@ layout="topleft" mouse_opaque="false" name="non_side_tray_view" - user_resize="true" + user_resize="false" width="500"> <view bottom="500" follows="all" diff --git a/indra/newview/skins/default/xui/en/menu_avatar_icon.xml b/indra/newview/skins/default/xui/en/menu_avatar_icon.xml index df510d68eb..50910dff32 100644 --- a/indra/newview/skins/default/xui/en/menu_avatar_icon.xml +++ b/indra/newview/skins/default/xui/en/menu_avatar_icon.xml @@ -9,7 +9,7 @@ visible="false" width="128"> <menu_item_call - label="Show Profile..." + label="View Profile" layout="topleft" name="Show Profile"> <menu_item_call.on_click diff --git a/indra/newview/skins/default/xui/en/menu_imchiclet_p2p.xml b/indra/newview/skins/default/xui/en/menu_imchiclet_p2p.xml index 6891aaca32..038b8328cb 100644 --- a/indra/newview/skins/default/xui/en/menu_imchiclet_p2p.xml +++ b/indra/newview/skins/default/xui/en/menu_imchiclet_p2p.xml @@ -9,7 +9,7 @@ visible="false" width="128"> <menu_item_call - label="Show Profile" + label="View Profile" layout="topleft" name="Show Profile"> <menu_item_call.on_click diff --git a/indra/newview/skins/default/xui/en/menu_participant_list.xml b/indra/newview/skins/default/xui/en/menu_participant_list.xml index c3283c6014..5ab327a182 100644 --- a/indra/newview/skins/default/xui/en/menu_participant_list.xml +++ b/indra/newview/skins/default/xui/en/menu_participant_list.xml @@ -2,6 +2,67 @@ <context_menu layout="topleft" name="Participant List Context Menu"> + <menu_item_call + label="View Profile" + layout="topleft" + name="View Profile"> + <menu_item_call.on_click + function="Avatar.Profile" /> + </menu_item_call> + <menu_item_call + label="Add Friend" + layout="topleft" + name="Add Friend"> + <menu_item_call.on_click + function="Avatar.AddFriend" /> + <menu_item_call.on_enable + function="Avatar.EnableItem" + parameter="can_add" /> + </menu_item_call> + <menu_item_call + label="IM" + layout="topleft" + name="IM"> + <menu_item_call.on_click + function="Avatar.IM" /> + </menu_item_call> + <menu_item_call + label="Call" + layout="topleft" + name="Call"> + <menu_item_call.on_click + function="Avatar.Call" /> + </menu_item_call> + <menu_item_call + enabled="false" + label="Share" + layout="topleft" + name="Share"> + <menu_item_call.on_click + function="Avatar.Share" /> + </menu_item_call> + <menu_item_call + label="Pay" + layout="topleft" + name="Pay"> + <menu_item_call.on_click + function="Avatar.Pay" /> + </menu_item_call> + <menu_item_check + label="Block/Unblock" + layout="topleft" + name="Block/Unblock"> + <menu_item_check.on_click + function="Avatar.BlockUnblock" /> + <menu_item_check.on_check + function="Avatar.CheckItem" + parameter="is_blocked" /> + <menu_item_check.on_enable + function="Avatar.EnableItem" + parameter="can_block" /> + </menu_item_check> + <menu_item_separator + layout="topleft" /> <menu_item_check label="Mute Text" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 2b3f3c79e0..861b0de2cf 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -68,7 +68,7 @@ parameter="inventory" /> </menu_item_check> <menu_item_call - label="Show Sidetray Inventory" + label="Show Inventory in Side Tray" name="ShowSidetrayInventory" shortcut="control|I" visible="false"> @@ -433,6 +433,8 @@ </menu_item_check> <menu_item_separator layout="topleft" />--> + <menu_item_separator + layout="topleft" /> <menu_item_call label="Snapshot" layout="topleft" @@ -442,6 +444,8 @@ function="Floater.Show" parameter="snapshot" /> </menu_item_call> + <menu_item_separator + layout="topleft" /> <menu create_jump_keys="true" label="Sun" @@ -3422,7 +3426,7 @@ name="Parcel" tear_off="true"> <menu_item_call - label="Owner To Me" + label="Force Owner To Me" layout="topleft" name="Owner To Me"> <menu_item_call.on_click diff --git a/indra/newview/skins/default/xui/en/panel_active_object_row.xml b/indra/newview/skins/default/xui/en/panel_active_object_row.xml new file mode 100644 index 0000000000..7657fb8055 --- /dev/null +++ b/indra/newview/skins/default/xui/en/panel_active_object_row.xml @@ -0,0 +1,81 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<panel + name="panel_activeim_row" + layout="topleft" + follows="left|right" + top="0" + left="0" + height="35" + width="318" + background_opaque="false" + background_visible="true" + bg_alpha_color="0.0 0.0 0.0 0.0" > + <string + name="unknown_obj"> + Unknown Object + </string> + <chiclet_script + name="object_chiclet" + layout="topleft" + follows="left" + top="3" + left="5" + height="25" + width="25" + visible="false" + speaker.name="speaker_p2p" + speaker.width="20" + speaker.height="25" + speaker.left="25" + speaker.top="25" + speaker.auto_update="true" + speaker.draw_border="false" + speaker.visible="false"> + </chiclet_script> + <chiclet_offer + name="inv_offer_chiclet" + layout="topleft" + follows="left" + top="3" + left="5" + height="25" + width="25" + visible="false" + speaker.name="speaker_p2p" + speaker.width="20" + speaker.height="25" + speaker.left="25" + speaker.top="25" + speaker.auto_update="true" + speaker.draw_border="false" + speaker.visible="false"> + </chiclet_offer> + <text + type="string" + name="object_name" + layout="topleft" + top="10" + left_pad="20" + height="14" + width="245" + length="1" + follows="right|left" + use_ellipses="true" + font="SansSerifBold"> + Unnamed Object + </text> + <button + top="10" + right="-5" + width="17" + height="17" + layout="topleft" + follows="right" + name="hide_btn" + mouse_opaque="true" + label="" + tab_stop="false" + image_unselected="Toast_CloseBtn" + image_selected="Toast_CloseBtn" + /> +</panel>
\ No newline at end of file diff --git a/indra/newview/skins/default/xui/en/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/en/panel_block_list_sidetray.xml index 3842c2a8db..970a2e6a8a 100644 --- a/indra/newview/skins/default/xui/en/panel_block_list_sidetray.xml +++ b/indra/newview/skins/default/xui/en/panel_block_list_sidetray.xml @@ -8,31 +8,31 @@ min_height="350" min_width="240" width="280"> - <text + <button + follows="top|left" + height="25" + image_overlay="BackArrow_Off" + layout="topleft" + name="back" + left="10" + tab_stop="false" + top="0" + width="25"/> + <text follows="top|left|right" - font="SansSerifHugeBold" + font="SansSerifLargeBold" height="20" layout="topleft" - left="10" + left_pad="10" name="title_text" text_color="white" - top="0" + top="5" width="250"> Blocked List </text> - <button - follows="top|right" - height="25" - image_overlay="BackArrow_Off" - layout="topleft" - name="back" - right="-9" - tab_stop="false" - top="0" - width="25"/> <scroll_list - follows="left|top|right|bottom" - height="200" + follows="all" + height="190" layout="topleft" left="5" name="blocked" @@ -41,9 +41,8 @@ width="270" /> <button follows="left|bottom" - height="20" - label="Block Resident..." - label_selected="Block Resident..." + height="23" + label="Block person" layout="topleft" left_delta="0" name="Block resident..." @@ -55,9 +54,8 @@ </button> <button follows="left|bottom" - height="20" - label="Block object by name..." - label_selected="Block object by name..." + height="23" + label="Block object by name" layout="topleft" left_delta="0" name="Block object by name..." @@ -70,9 +68,8 @@ <button enabled="false" follows="left|bottom" - height="20" + height="23" label="Unblock" - label_selected="Unblock" layout="topleft" left_delta="0" name="Unblock" diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml index e77960f200..a41d492624 100644 --- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml +++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml @@ -348,8 +348,8 @@ image_pressed_selected "Lit" + "Selected" - there are new messages and the Well height="23" image_overlay="Notices_Unread" image_overlay_alignment="center" - image_pressed="PushButton_Press" - image_pressed_selected="PushButton_Selected_Press" + image_pressed="WellButton_Lit" + image_pressed_selected="WellButton_Lit_Selected" image_selected="PushButton_Selected_Press" left="0" max_displayed_count="99" @@ -386,8 +386,8 @@ image_pressed_selected "Lit" + "Selected" - there are new messages and the Well width="34"> <button image_selected="PushButton_Selected_Press" - image_pressed="PushButton_Press" - image_pressed_selected="PushButton_Selected_Press" + image_pressed="WellButton_Lit" + image_pressed_selected="WellButton_Lit_Selected" auto_resize="true" halign="center" height="23" diff --git a/indra/newview/skins/default/xui/en/panel_classified.xml b/indra/newview/skins/default/xui/en/panel_classified.xml index 9622313786..c8293d3663 100644 --- a/indra/newview/skins/default/xui/en/panel_classified.xml +++ b/indra/newview/skins/default/xui/en/panel_classified.xml @@ -107,7 +107,7 @@ top="48" width="130"> <combo_box.item - label="- Select Mature -" + label="- Select one -" name="select_mature" value="Select" /> <combo_box.item diff --git a/indra/newview/skins/default/xui/en/panel_friends.xml b/indra/newview/skins/default/xui/en/panel_friends.xml index 3a35465df2..ac731bcdf0 100644 --- a/indra/newview/skins/default/xui/en/panel_friends.xml +++ b/indra/newview/skins/default/xui/en/panel_friends.xml @@ -8,7 +8,7 @@ width="100"> <panel.string name="Multiple"> - Multiple friends... + Multiple friends </panel.string> <scroll_list bottom="337" @@ -84,7 +84,7 @@ <button follows="top|right" height="22" - label="Teleport..." + label="Teleport" layout="topleft" left_delta="0" name="offer_teleport_btn" @@ -94,7 +94,7 @@ <button follows="top|right" height="22" - label="Pay..." + label="Pay" layout="topleft" left_delta="0" name="pay_btn" @@ -104,7 +104,7 @@ <button follows="top|right" height="22" - label="Remove..." + label="Remove" layout="topleft" left_delta="0" name="remove_btn" @@ -114,7 +114,7 @@ <button follows="top|right" height="22" - label="Add..." + label="Add" layout="topleft" left_delta="0" name="add_btn" diff --git a/indra/newview/skins/default/xui/en/panel_group_control_panel.xml b/indra/newview/skins/default/xui/en/panel_group_control_panel.xml index 889f29fc53..a5445a5783 100644 --- a/indra/newview/skins/default/xui/en/panel_group_control_panel.xml +++ b/indra/newview/skins/default/xui/en/panel_group_control_panel.xml @@ -1,14 +1,13 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel border="false" - follows="left|top|right|bottom" + follows="all" height="238" name="panel_im_control_panel" width="180"> - <avatar_list color="DkGray2" - follows="left|top|right|bottom" + follows="all" height="100" ignore_online_status="true" layout="topleft" @@ -19,20 +18,18 @@ show_profile_btn="false" show_speaking_indicator="false" top="10" - width="180"/> - + width="180" /> <button bottom_pad="0" - follows="left|right|bottom" - height="20" - label="Group Info" + follows="left|right|bottom" + height="23" + label="Group Profile" left_delta="28" name="group_info_btn" - width="125"/> - + width="125" /> <panel background_visible="true" - bg_alpha_color="0.2 0.2 0.2 1" + bg_alpha_color="DkGray2" border="false" follows="left|right|bottom" height="70" @@ -41,34 +38,29 @@ name="panel_call_buttons" top_pad="0" width="180"> - <button bottom="10" - follows="all" - height="20" + follows="all" + height="23" label="Call Group" left_delta="28" name="call_btn" - width="125"/> - + width="125" /> <button bottom="40" - follows="all" - height="20" + follows="all" + height="23" label="Leave Call" name="end_call_btn" visible="false" - width="125"/> - + width="125" /> <button bottom="10" - follows="all" - height="20" + follows="all" + height="23" label="Open Voice Controls" name="voice_ctrls_btn" visible="false" - width="125"/> - + width="125" /> </panel> - </panel> 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 4b459c9c58..af73faf9a1 100644 --- a/indra/newview/skins/default/xui/en/panel_group_general.xml +++ b/indra/newview/skins/default/xui/en/panel_group_general.xml @@ -145,7 +145,7 @@ Hover your mouse over the options for more help. layout="topleft" left="10" name="group_mature_check" - tool_tip="Sets whether your group information is considered moderate" + tool_tip="Sets whether your group contains information rated as Moderate" top_pad="0" width="190"> <combo_box.item diff --git a/indra/newview/skins/default/xui/en/panel_group_notices.xml b/indra/newview/skins/default/xui/en/panel_group_notices.xml index 0dea81eefe..1b70b95a93 100644 --- a/indra/newview/skins/default/xui/en/panel_group_notices.xml +++ b/indra/newview/skins/default/xui/en/panel_group_notices.xml @@ -10,11 +10,9 @@ width="310"> <panel.string name="help_text"> - Notices let you send a message and -an optionally attached item. Notices only go to -group members in Roles with the ability to -receive Notices. You can turn off Notices on -the General tab. + Notices let you send a message and an optionally attached item. +Notices only go to group members in Roles with the ability to receive Notices. +You can turn off Notices on the General tab. </panel.string> <panel.string name="no_notices_text"> @@ -31,7 +29,7 @@ the General tab. name="lbl2" top="5" width="300"> - Notices are kept for 14 days + Notices are kept for 14 days. Maximum 200 per group daily </text> <scroll_list @@ -93,6 +91,7 @@ Maximum 200 per group daily layout="topleft" name="refresh_notices" right="-5" + tool_tip="Refresh list of notices" top_delta="0" width="23" /> <panel @@ -192,7 +191,7 @@ Maximum 200 per group daily top_pad="15" word_wrap="true" width="150"> - Drag here to attach something -- > + Drag and drop item here to attach it: </text> <icon height="72" @@ -228,7 +227,7 @@ Maximum 200 per group daily left="10" layout="topleft" name="drop_target" - tool_tip="Drag an inventory item onto the message box to send it with the notice. You must have permission to copy and transfer the object to send it with the notice." + tool_tip="Drag an inventory item onto this target box to send it with this notice. You must have permission to copy and transfer the item in order to attach it." width="280" /> </panel> <panel diff --git a/indra/newview/skins/default/xui/en/panel_group_roles.xml b/indra/newview/skins/default/xui/en/panel_group_roles.xml index a5bab3232c..9548119d58 100644 --- a/indra/newview/skins/default/xui/en/panel_group_roles.xml +++ b/indra/newview/skins/default/xui/en/panel_group_roles.xml @@ -258,7 +258,7 @@ things in this group. There's a broad variety of Abilities. name="static" top_pad="5" width="300"> - Assigned Roles + Assigned Members </text> <scroll_list draw_stripes="true" diff --git a/indra/newview/skins/default/xui/en/panel_landmark_info.xml b/indra/newview/skins/default/xui/en/panel_landmark_info.xml index a219e30b8b..68e58b27ec 100644 --- a/indra/newview/skins/default/xui/en/panel_landmark_info.xml +++ b/indra/newview/skins/default/xui/en/panel_landmark_info.xml @@ -46,13 +46,13 @@ <!-- Texture names for rating icons --> <string name="icon_PG" - value="parcel_drk_PG" /> + value="Parcel_PG_Dark" /> <string name="icon_M" - value="parcel_drk_M" /> + value="Parcel_M_Dark" /> <string name="icon_R" - value="parcel_drk_R" /> + value="Parcel_R_Dark" /> <button follows="top|right" height="23" diff --git a/indra/newview/skins/default/xui/en/panel_main_inventory.xml b/indra/newview/skins/default/xui/en/panel_main_inventory.xml index 37d59de66f..aeb28e4c60 100644 --- a/indra/newview/skins/default/xui/en/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/en/panel_main_inventory.xml @@ -30,13 +30,16 @@ layout="topleft" left_delta="-4" name="inventory filter tabs" + tab_min_width="70" + tab_height="30" tab_position="top" - top_pad="4" + top_pad="10" + halign="center" width="305"> <inventory_panel follows="left|top|right|bottom" height="295" - label="All Items" + label="ALL ITEMS" layout="topleft" left="1" name="All Items" @@ -45,7 +48,7 @@ <inventory_panel follows="left|top|right|bottom" height="295" - label="Recent Items" + label="RECENT ITEMS" layout="topleft" left_delta="0" name="Recent Items" diff --git a/indra/newview/skins/default/xui/en/panel_media_settings_security.xml b/indra/newview/skins/default/xui/en/panel_media_settings_security.xml index 7d9350b45f..6e82713f06 100644 --- a/indra/newview/skins/default/xui/en/panel_media_settings_security.xml +++ b/indra/newview/skins/default/xui/en/panel_media_settings_security.xml @@ -35,10 +35,10 @@ right="-35" width="16" height="16" - image_name="parcel_color_EXP" + image_name="Parcel_Exp_Color" mouse_opaque="true" follows="top|left" - name="parcel_color_EXP" + name="Parcel_Exp_Color" /> <text visible="true" diff --git a/indra/newview/skins/default/xui/en/panel_my_profile.xml b/indra/newview/skins/default/xui/en/panel_my_profile.xml index 3c87331199..d51893793c 100644 --- a/indra/newview/skins/default/xui/en/panel_my_profile.xml +++ b/indra/newview/skins/default/xui/en/panel_my_profile.xml @@ -27,7 +27,7 @@ <string name="no_partner_text" value="None" /> - <string + <string name="RegisterDateFormat"> [REG_DATE] ([AGE]) </string> @@ -156,8 +156,8 @@ Lorem ipsum dolor sit amet, consectetur adlkjpiscing elit moose moose. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet. adipiscing elit. Aenean rigviverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet sorbet ipsum. adipiscing elit. Aenean viverra orci et justo sagittis aliquet. Nullam malesuada mauris sit amet ipsum. </expandable_text> </panel> - - + + <!-- <panel name="lifes_images_panel" follows="left|top|right" @@ -207,10 +207,10 @@ top="25" width="18" /> </panel> --> - - - - + + + + <text type="string" follows="left|top" @@ -254,7 +254,7 @@ layout="topleft" left="10" name="register_date" - value="05/31/1976" + value="05/31/2376" width="280" word_wrap="true" /> <text @@ -351,11 +351,11 @@ name="profile_buttons_panel" top_pad="2" bottom="10" - height="19" + height="23" width="303"> <button follows="bottom|left" - height="19" + height="23" label="Add Friend" layout="topleft" left="0" @@ -365,7 +365,7 @@ width="75" /> <button follows="bottom|left" - height="19" + height="23" label="IM" layout="topleft" name="im" @@ -374,7 +374,7 @@ width="45" /> <button follows="bottom|left" - height="19" + height="23" label="Call" layout="topleft" name="call" @@ -384,7 +384,7 @@ <button enabled="false" follows="bottom|left" - height="19" + height="23" label="Map" layout="topleft" name="show_on_map_btn" @@ -393,7 +393,7 @@ width="45" /> <button follows="bottom|left" - height="19" + height="23" label="Teleport" layout="topleft" name="teleport" @@ -408,11 +408,11 @@ top_pad="-17" name="profile_me_buttons_panel" visible="false" - height="19" + height="23" width="303"> <button follows="bottom|right" - height="19" + height="23" left="10" label="Edit Profile" name="edit_profile_btn" @@ -420,7 +420,7 @@ width="130" /> <button follows="bottom|right" - height="19" + height="23" label="Edit Appearance" left_pad="10" name="edit_appearance_btn" diff --git a/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml b/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml index de612fbbc3..2543656a8b 100644 --- a/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_nearby_chat_bar.xml @@ -22,6 +22,7 @@ label="Click here to chat." layout="topleft" left_delta="7" + text_pad_right="25" left="0" max_length="512" name="chat_box" @@ -37,7 +38,7 @@ left_pad="-24" mouse_opaque="true" name="chat_zone_indicator" - top="1" + top="6" visible="true" width="20" /> <button diff --git a/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml b/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml index 51997a2813..0567d722d5 100644 --- a/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml +++ b/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml @@ -1,56 +1,52 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> -<panel name="Outfits" - bottom="0" - height="326" - left="0" - width="310" - border="true" - follows="left|top|right|bottom"> +<panel name="Outfits" + follows="all" +border="false"> <accordion - follows="left|top|right|bottom" - height="315" - layout="topleft" + single_expansion="true" + follows="top|left|bottom" + height="460" + layout="topleft" left="0" name="outfits_accordion" - top="2" - width="310"> - <accordion_tab + top="0" + width="333"> + <accordion_tab layout="topleft" - name="tab_outfits" - title="Outfits"> - <inventory_panel - allow_multi_select="true" - border="true" + name="tab_cof" + title="Current Outfit"> + <inventory_panel + allow_multi_select="true" + border="false" bottom="0" - follows="left|top|right|bottom" - height="326" - left="0" + follows="all" + height="416" + left="0" mouse_opaque="true" - name="outfitslist_accordionpanel" - width="310" - start_folder="My Outfits"/> + name="cof_accordionpanel" + width="333" + start_folder="Current Outfit" /> </accordion_tab> <accordion_tab layout="topleft" - name="tab_cof" - title="Current Outfit"> - <inventory_panel - allow_multi_select="true" - border="true" + name="tab_outfits" + title="My Outfits"> + <inventory_panel + allow_multi_select="true" + border="false" bottom="0" - follows="left|top|right|bottom" - height="326" - left="0" + follows="all" + height="415" + left="0" mouse_opaque="true" - name="cof_accordionpanel" - width="310" - start_folder="Current Outfit"/> + name="outfitslist_accordionpanel" + width="333" + start_folder="My Outfits" /> </accordion_tab> </accordion> - - <button bottom="0" + <!--<button bottom="0" halign="center" - height="16" + height="23" label=">" enabled="false" mouse_opaque="false" @@ -59,54 +55,5 @@ left="0" visible="false" follows="right|bottom" - tool_tip="View outfit properties"/> - <panel - background_visible="true" - bevel_style="none" - bottom="0" - follows="left|right|bottom" - height="30" - layout="bottomleft" - left="0" - visible="true" - name="bottom_panel" - width="310"> - <button - follows="bottom|left" - tool_tip="Show additional options" - height="18" - image_disabled="OptionsMenu_Disabled" - image_selected="OptionsMenu_Press" - image_unselected="OptionsMenu_Off" - layout="topleft" - left="10" - name="options_gear_btn" - picture_style="true" - top="6" - width="18" /> - <button - follows="bottom|left" - height="18" - image_selected="AddItem_Press" - image_unselected="AddItem_Off" - image_disabled="AddItem_Disabled" - layout="topleft" - left_pad="5" - name="add_btn" - picture_style="true" - tool_tip="Add new item" - width="18" /> - <dnd_button - follows="bottom|right" - height="18" - image_selected="TrashItem_Press" - image_unselected="TrashItem_Off" - layout="topleft" - right="-5" - name="trash_btn" - picture_style="true" - tool_tip="Remove selected item" - top="6" - width="18" /> - </panel> + tool_tip="View outfit properties" />--> </panel> diff --git a/indra/newview/skins/default/xui/en/panel_picks.xml b/indra/newview/skins/default/xui/en/panel_picks.xml index 52bc72fe86..4facedc7ea 100644 --- a/indra/newview/skins/default/xui/en/panel_picks.xml +++ b/indra/newview/skins/default/xui/en/panel_picks.xml @@ -106,7 +106,7 @@ layout="topleft" left_pad="15" name="new_btn" - tool_tip="Create new pick or classified at current location" + tool_tip="Create a new pick or classified at the current location" top="5" width="18" /> <button @@ -138,7 +138,7 @@ left="5" name="info_btn" tab_stop="false" - tool_tip="Show pic information" + tool_tip="Show pick information" top="0" width="55" /> <button @@ -162,7 +162,7 @@ left_pad="5" name="show_on_map_btn" tab_stop="false" - tool_tip="Show corresponding area on the world map" + tool_tip="Show the corresponding area on the World Map" top="0" width="50" /> </panel> diff --git a/indra/newview/skins/default/xui/en/panel_place_profile.xml b/indra/newview/skins/default/xui/en/panel_place_profile.xml index 3f5da66dce..b25d9a7dfc 100644 --- a/indra/newview/skins/default/xui/en/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/en/panel_place_profile.xml @@ -95,49 +95,49 @@ <!-- Texture names for parcel permissions icons --> <string name="icon_PG" - value="parcel_drk_PG" /> + value="Parcel_PG_Dark" /> <string name="icon_M" - value="parcel_drk_M" /> + value="Parcel_M_Dark" /> <string name="icon_R" - value="parcel_drk_R" /> + value="Parcel_R_Dark" /> <string name="icon_Voice" - value="parcel_drk_Voice" /> + value="Parcel_Voice_Dark" /> <string name="icon_VoiceNo" - value="parcel_drk_VoiceNo" /> + value="Parcel_VoiceNo_Dark" /> <string name="icon_Fly" - value="parcel_drk_Fly" /> + value="Parcel_Fly_Dark" /> <string name="icon_FlyNo" - value="parcel_drk_FlyNo" /> + value="Parcel_FlyNo_Dark" /> <string name="icon_Push" - value="parcel_drk_Push" /> + value="Parcel_Push_Dark" /> <string name="icon_PushNo" - value="parcel_drk_PushNo" /> + value="Parcel_PushNo_Dark" /> <string name="icon_Build" - value="parcel_drk_Build" /> + value="Parcel_Build_Dark" /> <string name="icon_BuildNo" - value="parcel_drk_BuildNo" /> + value="Parcel_BuildNo_Dark" /> <string name="icon_Scripts" - value="parcel_drk_Scripts" /> + value="Parcel_Scripts_Dark" /> <string name="icon_ScriptsNo" - value="parcel_drk_ScriptsNo" /> + value="Parcel_ScriptsNo_Dark" /> <string name="icon_Damage" - value="parcel_drk_Damage" /> + value="Parcel_Damage_Dark" /> <string name="icon_DamageNo" - value="parcel_drk_DamageNo" /> + value="Parcel_DamageNo_Dark" /> <button follows="top|right" height="23" @@ -335,7 +335,7 @@ <icon follows="top|left" height="16" - image_name="parcel_drk_PG" + image_name="Parcel_PG_Dark" layout="topleft" left="10" name="rating_icon" @@ -361,7 +361,7 @@ <icon follows="top|left" height="18" - image_name="parcel_drk_Voice" + image_name="Parcel_Voice_Dark" layout="topleft" left="10" name="voice_icon" @@ -388,7 +388,7 @@ <icon follows="top|left" height="18" - image_name="parcel_drk_Fly" + image_name="Parcel_Fly_Dark" layout="topleft" left="10" name="fly_icon" @@ -414,7 +414,7 @@ <icon follows="top|left" height="18" - image_name="parcel_drk_Push" + image_name="Parcel_Push_Dark" layout="topleft" left="10" name="push_icon" @@ -440,7 +440,7 @@ <icon follows="top|left" height="18" - image_name="parcel_drk_Build" + image_name="Parcel_Build_Dark" layout="topleft" left="10" name="build_icon" @@ -466,7 +466,7 @@ <icon follows="top|left" height="18" - image_name="parcel_drk_Scripts" + image_name="Parcel_Scripts_Dark" layout="topleft" left="10" name="scripts_icon" @@ -492,7 +492,7 @@ <icon follows="top|left" height="18" - image_name="parcel_drk_Damage" + image_name="Parcel_Damage_Dark" layout="topleft" left="10" name="damage_icon" @@ -591,7 +591,7 @@ <icon follows="top|left" height="16" - image_name="parcel_drk_PG" + image_name="Parcel_PG_Dark" layout="topleft" left_pad="0" name="region_rating_icon" diff --git a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml index 3aa5d3fae4..fff53c1de2 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml @@ -332,7 +332,7 @@ control_name="ChatWindow" name="chat_window" top_pad="10" - tool_tip="Show chat in multiple windows(by default) or in one multi-tabbed window (requires restart)" + tool_tip="Show your Instant Messages in separate windows, or in one window with many tabs (Requires restart)" width="331"> <radio_item height="16" diff --git a/indra/newview/skins/default/xui/en/panel_preferences_sound.xml b/indra/newview/skins/default/xui/en/panel_preferences_sound.xml index 8ef2cdfc37..854227619b 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_sound.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_sound.xml @@ -23,7 +23,7 @@ name="System Volume" show_text="false" slider_label.halign="right" - top_pad="5" + top="10" volume="true" width="350"> <slider.commit_callback @@ -34,8 +34,8 @@ control_name="MuteAudio" follows="top|right" height="18" - image_selected="parcel_drk_VoiceNo" - image_unselected="parcel_drk_Voice" + image_selected="Parcel_VoiceNo_Dark" + image_unselected="Parcel_Voice_Dark" is_toggle="true" layout="topleft" left_pad="16" @@ -79,8 +79,8 @@ disabled_control="MuteAudio" follows="top|right" height="18" - image_selected="parcel_drk_VoiceNo" - image_unselected="parcel_drk_Voice" + image_selected="Parcel_VoiceNo_Dark" + image_unselected="Parcel_Voice_Dark" is_toggle="true" layout="topleft" left_pad="16" @@ -114,8 +114,8 @@ disabled_control="MuteAudio" follows="top|right" height="18" - image_selected="parcel_drk_VoiceNo" - image_unselected="parcel_drk_Voice" + image_selected="Parcel_VoiceNo_Dark" + image_unselected="Parcel_Voice_Dark" is_toggle="true" layout="topleft" left_pad="16" @@ -149,8 +149,8 @@ disabled_control="MuteAudio" follows="top|right" height="18" - image_selected="parcel_drk_VoiceNo" - image_unselected="parcel_drk_Voice" + image_selected="Parcel_VoiceNo_Dark" + image_unselected="Parcel_Voice_Dark" is_toggle="true" layout="topleft" left_pad="16" @@ -184,8 +184,8 @@ disabled_control="MuteAudio" follows="top|right" height="18" - image_selected="parcel_drk_VoiceNo" - image_unselected="parcel_drk_Voice" + image_selected="Parcel_VoiceNo_Dark" + image_unselected="Parcel_Voice_Dark" is_toggle="true" layout="topleft" left_pad="16" @@ -219,8 +219,8 @@ disabled_control="MuteAudio" follows="top|right" height="18" - image_selected="parcel_drk_VoiceNo" - image_unselected="parcel_drk_Voice" + image_selected="Parcel_VoiceNo_Dark" + image_unselected="Parcel_Voice_Dark" is_toggle="true" layout="topleft" left_pad="16" @@ -230,12 +230,13 @@ width="22" /> <check_box label_text.halign="left" - follows="right|top" - height="16" - control_name ="EnableVoiceChat" - disabled_control="CmdLineDisableVoice" - label="Voice" - left="50" + follows="left|top" + height="16" + control_name ="EnableVoiceChat" + disabled_control="CmdLineDisableVoice" + label="Enable voice" + layout="topleft" + left="28" name="enable_voice_check" top_pad="5" width="110" @@ -249,15 +250,16 @@ height="15" increment="0.05" initial_value="0.5" - label_width="0" + label="Voice" + label_width="160" layout="topleft" - left="165" - top_delta="0" + left="0" + top_delta="20" name="Voice Volume" show_text="false" slider_label.halign="right" volume="true" - width="185"> + width="350"> <slider.commit_callback function="Pref.setControlFalse" parameter="MuteVoice" /> @@ -268,8 +270,8 @@ disabled_control="MuteAudio" follows="top|right" height="18" - image_selected="parcel_drk_VoiceNo" - image_unselected="parcel_drk_Voice" + image_selected="Parcel_VoiceNo_Dark" + image_unselected="Parcel_Voice_Dark" is_toggle="true" layout="topleft" left_pad="16" @@ -283,63 +285,70 @@ follows="left|top" height="13" layout="topleft" - left="170" + left="30" name="Listen from" - width="200"> + width="200" + top="205"> Listen from: </text> <icon - follows="left" + follows="left|top" height="18" image_name="Cam_FreeCam_Off" + layout="topleft" name="camera_icon" mouse_opaque="false" visible="true" - width="18" /> + width="18" + left="80" + top="219"/> <icon - follows="left" + follows="left|top" height="18" image_name="Move_Walk_Off" + layout="topleft" name="avatar_icon" mouse_opaque="false" visible="true" - width="18" /> + width="18" + top="239" + left="80" + /> <radio_group enabled_control="EnableVoiceChat" control_name="VoiceEarLocation" draw_border="false" - follows="left" - left_delta="20" - top = "210" - width="221" - height="38" - name="ear_location"> - <radio_item - height="16" - label="Camera position" - left_pad="1" - follows="topleft" - name="0" - top_delta="-30" - width="200" /> - <radio_item - height="16" - follows="topleft" - label="Avatar position" - left_delta="0" - name="1" - top_delta="19" - width="200" /> - </radio_group> + follows="left|top" + layout="topleft" + left="100" + width="221" + height="38" + name="ear_location" + top="218"> + <radio_item + height="16" + label="Camera position" + follows="left|top" + layout="topleft" + name="0" + width="200"/> + <radio_item + height="16" + follows="left|top" + label="Avatar position" + layout="topleft" + name="1" + width="200" /> + </radio_group> <button control_name="ShowDeviceSettings" - follows="left|bottom" + follows="left|top" height="19" is_toggle="true" - label="Input/Output Devices" + label="Input/Output devices" layout="topleft" - left="165" - top_pad="12" + left="30" + top="270" name="device_settings_btn" width="190"> </button> @@ -475,7 +484,7 @@ </text>--> <icon height="18" - image_name="parcel_lght_Voice" + image_name="Parcel_Voice_Light" left="80" name="speaker_icon" mouse_opaque="false" diff --git a/indra/newview/skins/default/xui/en/panel_status_bar.xml b/indra/newview/skins/default/xui/en/panel_status_bar.xml index 5dcee9e965..57b090e5b4 100644 --- a/indra/newview/skins/default/xui/en/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml @@ -72,8 +72,8 @@ <button follows="right|bottom" height="16" - image_selected="parcel_drk_VoiceNo" - image_unselected="parcel_drk_Voice" + image_selected="Parcel_VoiceNo_Dark" + image_unselected="Parcel_Voice_Dark" is_toggle="true" left_pad="18" top="1" diff --git a/indra/newview/skins/default/xui/en/panel_toast.xml b/indra/newview/skins/default/xui/en/panel_toast.xml index 6479fc91ca..707b24c92c 100644 --- a/indra/newview/skins/default/xui/en/panel_toast.xml +++ b/indra/newview/skins/default/xui/en/panel_toast.xml @@ -46,7 +46,7 @@ </text> <button layout="topleft" - top="-6" + top="-14" left="293" width="17" height="17" diff --git a/indra/newview/skins/default/xui/en/sidepanel_appearance.xml b/indra/newview/skins/default/xui/en/sidepanel_appearance.xml index 4dae8e48a0..886887c2b5 100644 --- a/indra/newview/skins/default/xui/en/sidepanel_appearance.xml +++ b/indra/newview/skins/default/xui/en/sidepanel_appearance.xml @@ -1,111 +1,177 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel - background_visible="true" - follows="all" - height="400" - label="Appearance" - layout="topleft" - min_height="350" - min_width="240" - name="appearance panel" - width="333"> - <string - name="No Outfit" - value="No Outfit" /> - <panel - left="5" width="320" height="55" - background_visible="true" - background_opaque="false" - bg_alpha_color="0.2 0.2 0.2 1.0" - name="panel_currentlook" - follows="left|top|right"> - <button - follows="left|right|top" - font="SansSerif" - top="28" right="-10" width="60" height="20" - layout="topleft" - label="Edit" - name="editappearance_btn"/> - <button - follows="left|right|top" - top="28" left="5" width="25" height="22" - image_overlay="Inv_LookFolderOpen" - layout="topleft" - name="openoutfit_btn" - picture_style="true" /> - <text - top="10" width="150" left="5" height="15" follows="left|right|top" - layout="topleft" - font="SansSerif" text_color="LtGray" word_wrap="true" - mouse_opaque="false" name="currentlook_title"> - Current Outfit: - </text> - <text - top="32" width="150" left="32" height="15" follows="left|right|top" - layout="topleft" - font="SansSerifBold" text_color="white" word_wrap="true" - mouse_opaque="false" name="currentlook_name" > - MyOutfit - </text> - </panel> - +background_visible="true" + follows="all" + height="570" + label="My Appearance" + layout="topleft" + min_height="350" + name="appearance panel" + width="333"> + <string +name="No Outfit" +value="No Outfit" /> +<panel + left="0" + top="0" + follows="top|left" +layout="topleft" + width="333" + height="45" + background_visible="true" + background_opaque="false" + bg_alpha_color="MouseGray" + name="panel_currentlook" + > +<button + follows="left|top" + top="0" width="1" height="1" + layout="topleft" + left="0" + name="editappearance_btn" /> + <button + follows="left|top" + top="0" width="1" height="1" + layout="topleft" + left="3" + name="openoutfit_btn" /> +<icon + follows="top|left" + height="30" + image_name="TabIcon_Appearance_Off" + name="outfit_icon" + mouse_opaque="false" + visible="true" + left="5" + top="0" + width="30" /> +<text + width="292" + height="22" +follows="top|left" + layout="topleft" + left_pad="5" +font="SansSerifLarge" +font.style="BOLD" +word_wrap="false" +use_ellipses="true" +mouse_opaque="false" + text_color="white" + name="currentlook_name"> +MyOutfit With a really Long Name like MOOSE + </text> + <text +width="290" +left="40" +height="1" +follows="top|left" + layout="topleft" + top_pad="-2" +mouse_opaque="false" + name="currentlook_title" > +(now wearing) + </text> +</panel> <filter_editor - follows="left|top|right" - font="SansSerif" - label="Filter" - layout="topleft" - left="15" - width="313" - height="20" - name="Filter" /> + follows="top|left" + height="23" + layout="topleft" + left="15" + label="Filter" + max_length="300" + name="Filter" + top_pad="7" + width="303" /> <panel - class="panel_outfits_inventory" - filename="panel_outfits_inventory.xml" - name="panel_outfits_inventory" - follows="all" - height="271" - halign="center" - layout="topleft" - left="10" - top_pad="19" - width="313" /> - <button - follows="bottom|left" - height="25" - label="Wear" - layout="topleft" - left="10" - name="wear_btn" - top_pad="0" - width="80" /> + follows="top|left" + halign="center" + height="500" + layout="topleft" + class="panel_outfits_inventory" + filename="panel_outfits_inventory.xml" + name="panel_outfits_inventory" + min_height="300" + left="0" + top_pad="3" + width="333" + /> + <panel + background_visible="true" + follows="top|left" + height="19" + layout="topleft" + left="0" + visible="true" + name="bottom_panel" + width="333"> + <button + follows="bottom|left" + tool_tip="Show additional options" + height="18" + image_disabled="OptionsMenu_Disabled" + image_selected="OptionsMenu_Press" + image_unselected="OptionsMenu_Off" + layout="topleft" + left="10" + name="options_gear_btn" + top="6" + width="18" /> + <button + follows="bottom|left" + height="18" + image_selected="AddItem_Press" + image_unselected="AddItem_Off" + image_disabled="AddItem_Disabled" + layout="topleft" + left_pad="5" + name="add_btn" + tool_tip="Add new item" + width="18" /> + <dnd_button + follows="bottom|left" + height="18" + image_selected="TrashItem_Press" + image_unselected="TrashItem_Off" + layout="topleft" + right="-5" + name="trash_btn" + tool_tip="Remove selected item" + top="6" + width="18" /> <button - follows="bottom|left" - height="25" - label="New Outfit" - layout="topleft" - left_pad="0" - name="newlook_btn" - top_delta="0" - width="90" /> - - <panel - class="panel_look_info" - filename="panel_look_info.xml" - follows="all" - layout="topleft" - left="0" - name="panel_look_info" - top="-200" - visible="false" /> - - <panel - class="panel_edit_wearable" - filename="panel_edit_wearable.xml" - follows="all" - layout="topleft" - left="0" - name="panel_edit_wearable" - top="-200" - visible="false" - width="333" /> + follows="top|left" + height="23" + label="Wear" + layout="topleft" + name="wear_btn" + right="-5" + top_pad="0" + width="90" /> + </panel> + <!-- <button + follows="bottom|left" + height="23" + label="New outfit" + layout="topleft" + left_pad="5" + right="-10" + name="newlook_btn" + width="100" />--> +<panel + class="panel_look_info" + filename="panel_look_info.xml" + follows="all" + layout="topleft" + left="0" + name="panel_look_info" + visible="false" /> +<panel + class="panel_edit_wearable" + filename="panel_edit_wearable.xml" + follows="all" + layout="topleft" + left="0" + name="panel_edit_wearable" + visible="false" + width="333" /> </panel> diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 75af881e93..9703373c7f 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -1770,7 +1770,8 @@ Clears (deletes) the media and all params from the given face. <string name="tattoo">Tattoo</string> <string name="invalid">invalid</string> - <!-- notify --> + <!-- LLGroupNotify --> + <!-- used in the construction of a Group Notice blue dialog box, buttons, tooltip etc. Seems to be no longer utilized by code in Viewer 2.0 --> <string name="next">Next</string> <string name="ok">OK</string> <string name="GroupNotifyGroupNotice">Group Notice</string> @@ -1780,6 +1781,7 @@ Clears (deletes) the media and all params from the given face. <string name="GroupNotifyViewPastNotices">View past notices or opt-out of receiving these messages here.</string> <string name="GroupNotifyOpenAttachment">Open Attachment</string> <string name="GroupNotifySaveAttachment">Save Attachment</string> + <string name="TeleportOffer">Teleport offering</string> <!-- start-up toast's string--> <string name="StartUpNotifications">New notifications arrived while you were away.</string> diff --git a/indra/newview/skins/default/xui/en/widgets/filter_editor.xml b/indra/newview/skins/default/xui/en/widgets/filter_editor.xml index 0e34243349..48baa2812d 100644 --- a/indra/newview/skins/default/xui/en/widgets/filter_editor.xml +++ b/indra/newview/skins/default/xui/en/widgets/filter_editor.xml @@ -4,6 +4,7 @@ search_button_visible="true" text_pad_left="7" select_on_focus="true" + text_tentative_color="TextFgTentativeColor" background_image="TextField_Search_Off" background_image_disabled="TextField_Search_Disabled" background_image_focused="TextField_Search_Active"> diff --git a/indra/newview/skins/default/xui/en/widgets/location_input.xml b/indra/newview/skins/default/xui/en/widgets/location_input.xml index 0e2700cb80..7ac44b412d 100644 --- a/indra/newview/skins/default/xui/en/widgets/location_input.xml +++ b/indra/newview/skins/default/xui/en/widgets/location_input.xml @@ -22,9 +22,12 @@ > <!-- *NOTE: Tooltips are in strings.xml so they can be localized. See LocationCtrlAddLandmarkTooltip etc. --> - <info_button name="Place Information" - width="16" - height="16" + <info_button + name="Place Information" + width="16" + height="16" + left="4" + top="20" follows="left|top" hover_glow_amount="0.15" image_unselected="Info_Off" @@ -43,8 +46,8 @@ left="-3" /> <for_sale_button name="for_sale_btn" - image_unselected="parcel_lght_ForSale" - image_selected="parcel_lght_ForSale" + image_unselected="Parcel_ForSale_Light" + image_selected="Parcel_ForSale_Light" width="22" height="18" follows="right|top" @@ -58,7 +61,7 @@ height="18" top="21" follows="right|top" - image_name="parcel_lght_VoiceNo" + image_name="Parcel_VoiceNo_Light" /> <fly_icon name="fly_icon" @@ -66,7 +69,7 @@ height="18" top="21" follows="right|top" - image_name="parcel_lght_FlyNo" + image_name="Parcel_FlyNo_Light" /> <push_icon name="push_icon" @@ -74,7 +77,7 @@ height="18" top="21" follows="right|top" - image_name="parcel_lght_PushNo" + image_name="Parcel_PushNo_Light" /> <build_icon name="build_icon" @@ -82,7 +85,7 @@ height="18" top="21" follows="right|top" - image_name="parcel_lght_BuildNo" + image_name="Parcel_BuildNo_Light" /> <scripts_icon name="scripts_icon" @@ -90,7 +93,7 @@ height="18" top="21" follows="right|top" - image_name="parcel_lght_ScriptsNo" + image_name="Parcel_ScriptsNo_Light" /> <!-- NOTE: Placeholder icon, there is no dark grayscale version --> <damage_icon @@ -99,7 +102,7 @@ height="18" top="21" follows="right|top" - image_name="parcel_lght_Damage" + image_name="Parcel_Damage_Light" /> <!-- Default text color is invisible on top of nav bar background --> <damage_text diff --git a/indra/newview/skins/default/xui/en/widgets/output_monitor.xml b/indra/newview/skins/default/xui/en/widgets/output_monitor.xml index 98b3e2faaa..21b957d089 100644 --- a/indra/newview/skins/default/xui/en/widgets/output_monitor.xml +++ b/indra/newview/skins/default/xui/en/widgets/output_monitor.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <output_monitor - image_mute="parcel_lght_VoiceNo" + image_mute="Parcel_VoiceNo_Light" image_off="VoicePTT_Off" image_on="VoicePTT_On" image_level_1="VoicePTT_Lvl1" diff --git a/indra/newview/skins/default/xui/en/widgets/search_combo_box.xml b/indra/newview/skins/default/xui/en/widgets/search_combo_box.xml index c2a70d4b39..5d429d5b5b 100644 --- a/indra/newview/skins/default/xui/en/widgets/search_combo_box.xml +++ b/indra/newview/skins/default/xui/en/widgets/search_combo_box.xml @@ -13,7 +13,8 @@ <combo_editor name="child1" select_on_focus="true" - text_pad_left="30" + text_pad_left="30" + text_tentative_color="TextFgTentativeColor" background_image="TextField_Search_Off" background_image_disabled="TextField_Search_Disabled" background_image_focused="TextField_Search_Active"/> diff --git a/indra/newview/skins/default/xui/en/widgets/search_editor.xml b/indra/newview/skins/default/xui/en/widgets/search_editor.xml index f644a710b2..1616e4c3f7 100644 --- a/indra/newview/skins/default/xui/en/widgets/search_editor.xml +++ b/indra/newview/skins/default/xui/en/widgets/search_editor.xml @@ -4,6 +4,7 @@ search_button_visible="true" text_pad_left="6" select_on_focus="true" + text_tentative_color="TextFgTentativeColor" background_image="TextField_Search_Off" background_image_disabled="TextField_Search_Disabled" background_image_focused="TextField_Search_Active" > diff --git a/indra/newview/skins/default/xui/en/widgets/spinner.xml b/indra/newview/skins/default/xui/en/widgets/spinner.xml index ab3f8df5f8..d7af6077e5 100644 --- a/indra/newview/skins/default/xui/en/widgets/spinner.xml +++ b/indra/newview/skins/default/xui/en/widgets/spinner.xml @@ -1,7 +1,7 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <spinner text_enabled_color="LabelTextColor" text_disabled_color="LabelDisabledColor" - font="SansSerif" + font="SansSerifSmall" decimal_digits="3" label_width="40" > <spinner.up_button name="SpinCtrl Up" diff --git a/indra/newview/skins/default/xui/en/widgets/teleport_history_menu_item.xml b/indra/newview/skins/default/xui/en/widgets/teleport_history_menu_item.xml new file mode 100644 index 0000000000..eaa68f5690 --- /dev/null +++ b/indra/newview/skins/default/xui/en/widgets/teleport_history_menu_item.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes" ?> +<!-- Menu items for the back button drop-down menu of locations. + Based on menu_item_call.xml --> +<teleport_history_menu_item + back_item_font="SansSerif" + current_item_font="SansSerifBold" + forward_item_font="SansSerif" + back_item_image="teleport_history_backward.tga" + forward_item_image="teleport_history_forward.tga" + image_hpad="1" + image_vpad="0" + /> diff --git a/indra/newview/tests/llviewerhelputil_test.cpp b/indra/newview/tests/llviewerhelputil_test.cpp index 90e3e7a7e0..68743357a6 100644 --- a/indra/newview/tests/llviewerhelputil_test.cpp +++ b/indra/newview/tests/llviewerhelputil_test.cpp @@ -36,7 +36,7 @@ #include "../test/lltut.h" #include "../llviewerhelputil.h" -#include "../llviewerversion.h" +#include "../llversioninfo.h" #include "llcontrol.h" #include "llsys.h" @@ -76,7 +76,11 @@ std::string LLControlGroup::getString(const std::string& name) return test_stringvec[name]; } -const std::string &llGetViewerVersion() +S32 LLVersionInfo::getMajor() { return 2; } +S32 LLVersionInfo::getMinor() { return 0; } +S32 LLVersionInfo::getPatch() { return 0; } +S32 LLVersionInfo::getBuild() { return 200099; } +const std::string &LLVersionInfo::getVersion() { static std::string version = "2.0.0.200099"; return version; diff --git a/indra/viewer_components/login/lllogin.cpp b/indra/viewer_components/login/lllogin.cpp index b14c59ab9a..02c13716ed 100644 --- a/indra/viewer_components/login/lllogin.cpp +++ b/indra/viewer_components/login/lllogin.cpp @@ -133,9 +133,16 @@ void LLLogin::Impl::connect(const std::string& uri, const LLSD& credentials) void LLLogin::Impl::login_(LLCoros::self& self, std::string uri, LLSD credentials) { - LL_INFOS("LLLogin") << "Entering coroutine " << LLCoros::instance().getName(self) - << " with uri '" << uri << "', credentials " << credentials << LL_ENDL; - // Arriving in SRVRequest state + LLSD printable_credentials = credentials; + if(printable_credentials.has("params") + && printable_credentials["params"].has("passwd")) + { + printable_credentials["params"]["passwd"] = "*******"; + } + LL_DEBUGS("LLLogin") << "Entering coroutine " << LLCoros::instance().getName(self) + << " with uri '" << uri << "', credentials " << printable_credentials << LL_ENDL; + + // Arriving in SRVRequest state LLEventStream replyPump("reply", true); // Should be an array of one or more uri strings. LLSD rewrittenURIs; @@ -144,7 +151,7 @@ void LLLogin::Impl::login_(LLCoros::self& self, std::string uri, LLSD credential sendProgressEvent("offline", "srvrequest"); // Request SRV record. - LL_INFOS("LLLogin") << "Requesting SRV record from " << uri << LL_ENDL; + LL_DEBUGS("LLLogin") << "Requesting SRV record from " << uri << LL_ENDL; // *NOTE:Mani - Completely arbitrary default timeout value for SRV request. F32 seconds_to_timeout = 5.0f; @@ -193,6 +200,11 @@ void LLLogin::Impl::login_(LLCoros::self& self, std::string uri, LLSD credential LLSD progress_data; progress_data["attempt"] = attempts; progress_data["request"] = request; + if(progress_data["request"].has("params") + && progress_data["request"]["params"].has("passwd")) + { + progress_data["request"]["params"]["passwd"] = "*******"; + } sendProgressEvent("offline", "authenticating", progress_data); // We expect zero or more "Downloading" status events, followed by diff --git a/install.xml b/install.xml index c76217426c..2d60f07c11 100644 --- a/install.xml +++ b/install.xml @@ -1367,23 +1367,23 @@ anguage Infrstructure (CLI) international standard</string> <key>darwin</key> <map> <key>md5sum</key> - <string>dd66471b31d369bb7bcbcc1a833d9070</string> + <string>90a08e3a1dffa2ea45c1227c4d4d01f7</string> <key>url</key> - <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-3.0.0006.7653-darwin-20091126.tar.bz2</uri> + <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-3.0.0006.7714-darwin-20091208.tar.bz2</uri> </map> <key>linux</key> <map> <key>md5sum</key> - <string>e56745bc71fc22fc90f80cb359db7022</string> + <string>390fe4ed062cfb05bbc534772837ce5e</string> <key>url</key> - <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-3.0.0006.7653-linux-20091126.tar.bz2</uri> + <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-3.0.0006.7714-linux-20091208.tar.bz2</uri> </map> <key>windows</key> <map> <key>md5sum</key> - <string>3081bcc821cdc016aa4127cb026e4311</string> + <string>0232fb487bd31ea756604d139b2a2e34</string> <key>url</key> - <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-3.0.0006.7653-windows-20091126.tar.bz2</uri> + <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-3.0.0006.7714-windows-20091208.tar.bz2</uri> </map> </map> </map> @@ -1447,9 +1447,9 @@ anguage Infrstructure (CLI) international standard</string> <key>linux</key> <map> <key>md5sum</key> - <string>1804b54034ef7f82832506a44acb06b8</string> + <string>26fe88213c213dc6153690ab142c25ca</string> <key>url</key> - <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/zlib-1.2.3-linux-20090603.tar.bz2</uri> + <uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/zlib-1.2.3dfsg-linux-20091208.tar.bz2</uri> </map> <key>linux64</key> <map> |