diff options
-rw-r--r-- | indra/newview/llpanellandmarks.cpp | 53 | ||||
-rw-r--r-- | indra/newview/llpanellandmarks.h | 2 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/notifications.xml | 16 |
3 files changed, 62 insertions, 9 deletions
diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp index f1cb6e87a3..40ea75ea7a 100644 --- a/indra/newview/llpanellandmarks.cpp +++ b/indra/newview/llpanellandmarks.cpp @@ -111,25 +111,76 @@ void LLCheckFolderState::doFolder(LLFolderViewFolder* folder) } } +// Functor searching and opening a folder specified by UUID +// in a folder view tree. +class LLOpenFolderByID : public LLFolderViewFunctor +{ +public: + LLOpenFolderByID(const LLUUID& folder_id) + : mFolderID(folder_id) + , mIsFolderOpen(false) + {} + virtual ~LLOpenFolderByID() {} + /*virtual*/ void doFolder(LLFolderViewFolder* folder); + /*virtual*/ void doItem(LLFolderViewItem* item) {} + + bool isFolderOpen() { return mIsFolderOpen; } + +private: + bool mIsFolderOpen; + LLUUID mFolderID; +}; + +// virtual +void LLOpenFolderByID::doFolder(LLFolderViewFolder* folder) +{ + if (folder->getListener() && folder->getListener()->getUUID() == mFolderID) + { + if (!folder->isOpen()) + { + folder->setOpen(TRUE); + mIsFolderOpen = true; + } + } +} + /** * Bridge to support knowing when the inventory has changed to update Landmarks tab * ShowFolderState filter setting to show all folders when the filter string is empty and * empty folder message when Landmarks inventory category has no children. + * Ensures that "Landmarks" folder in the Library is open on strart up. */ class LLLandmarksPanelObserver : public LLInventoryObserver { public: - LLLandmarksPanelObserver(LLLandmarksPanel* lp) : mLP(lp) {} + LLLandmarksPanelObserver(LLLandmarksPanel* lp) + : mLP(lp), + mIsLibraryLandmarksOpen(false) + {} virtual ~LLLandmarksPanelObserver() {} /*virtual*/ void changed(U32 mask); private: LLLandmarksPanel* mLP; + bool mIsLibraryLandmarksOpen; }; void LLLandmarksPanelObserver::changed(U32 mask) { mLP->updateShowFolderState(); + + LLPlacesInventoryPanel* library = mLP->getLibraryInventoryPanel(); + if (!mIsLibraryLandmarksOpen && library) + { + // Search for "Landmarks" folder in the Library and open it once on start up. See EXT-4827. + const LLUUID &landmarks_cat = gInventory.findCategoryUUIDForType(LLFolderType::FT_LANDMARK, false, true); + if (landmarks_cat.notNull()) + { + LLOpenFolderByID opener(landmarks_cat); + library->getRootFolder()->applyFunctorRecursively(opener); + mIsLibraryLandmarksOpen = opener.isFolderOpen(); + } + } } LLLandmarksPanel::LLLandmarksPanel() diff --git a/indra/newview/llpanellandmarks.h b/indra/newview/llpanellandmarks.h index cbbd10ac26..6358bd6f23 100644 --- a/indra/newview/llpanellandmarks.h +++ b/indra/newview/llpanellandmarks.h @@ -78,6 +78,8 @@ public: */ void setItemSelected(const LLUUID& obj_id, BOOL take_keyboard_focus); + LLPlacesInventoryPanel* getLibraryInventoryPanel() { return mLibraryInventoryPanel; } + protected: /** * @return true - if current selected panel is not null and selected item is a landmark diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 51f0f6839c..0fbd860648 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -19,7 +19,7 @@ <button default="true" index="0" - name="OK" + name="OK_okbutton" text="$yestext"/> </form> </template> @@ -29,7 +29,7 @@ <button default="true" index="0" - name="OK" + name="OK_okignore" text="$yestext"/> <ignore text="$ignoretext"/> </form> @@ -40,11 +40,11 @@ <button default="true" index="0" - name="OK" + name="OK_okcancelbuttons" text="$yestext"/> <button index="1" - name="Cancel" + name="Cancel_okcancelbuttons" text="$notext"/> </form> </template> @@ -54,11 +54,11 @@ <button default="true" index="0" - name="OK" + name="OK_okcancelignore" text="$yestext"/> <button index="1" - name="Cancel" + name="Cancel_okcancelignore" text="$notext"/> <ignore text="$ignoretext"/> </form> @@ -69,7 +69,7 @@ <button default="true" index="0" - name="OK" + name="OK_okhelpbuttons" text="$yestext"/> <button index="1" @@ -91,7 +91,7 @@ text="$notext"/> <button index="2" - name="Cancel" + name="Cancel_yesnocancelbuttons" text="$canceltext"/> </form> </template> |