diff options
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/llpanelavatar.cpp | 18 | ||||
-rw-r--r-- | indra/newview/llremoteparcelrequest.cpp | 13 | ||||
-rw-r--r-- | indra/newview/llsidepaneliteminfo.cpp | 9 | ||||
-rw-r--r-- | indra/newview/llsidepaneliteminfo.h | 1 | ||||
-rw-r--r-- | indra/newview/skins/default/xui/en/menu_viewer.xml | 23 |
5 files changed, 49 insertions, 15 deletions
diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp index 1249d5d856..a9bcdef47c 100644 --- a/indra/newview/llpanelavatar.cpp +++ b/indra/newview/llpanelavatar.cpp @@ -341,10 +341,11 @@ LLPanelAvatarNotes::~LLPanelAvatarNotes() if(getAvatarId().notNull()) { LLAvatarTracker::instance().removeParticularFriendObserver(getAvatarId(), this); - if(LLVoiceClient::instanceExists()) - { - LLVoiceClient::getInstance()->removeObserver((LLVoiceClientStatusObserver*)this); - } + } + + if(LLVoiceClient::instanceExists()) + { + LLVoiceClient::getInstance()->removeObserver((LLVoiceClientStatusObserver*)this); } } @@ -758,10 +759,11 @@ LLPanelAvatarProfile::~LLPanelAvatarProfile() if(getAvatarId().notNull()) { LLAvatarTracker::instance().removeParticularFriendObserver(getAvatarId(), this); - if(LLVoiceClient::instanceExists()) - { - LLVoiceClient::getInstance()->removeObserver((LLVoiceClientStatusObserver*)this); - } + } + + if(LLVoiceClient::instanceExists()) + { + LLVoiceClient::getInstance()->removeObserver((LLVoiceClientStatusObserver*)this); } } diff --git a/indra/newview/llremoteparcelrequest.cpp b/indra/newview/llremoteparcelrequest.cpp index 0dff087553..e5ef51bdd1 100644 --- a/indra/newview/llremoteparcelrequest.cpp +++ b/indra/newview/llremoteparcelrequest.cpp @@ -140,22 +140,25 @@ void LLRemoteParcelInfoProcessor::processParcelInfoReply(LLMessageSystem* msg, v typedef std::vector<observer_multimap_t::iterator> deadlist_t; deadlist_t dead_iters; - observer_multimap_t::iterator oi; - observer_multimap_t::iterator start = observers.lower_bound(parcel_data.parcel_id); + observer_multimap_t::iterator oi = observers.lower_bound(parcel_data.parcel_id); observer_multimap_t::iterator end = observers.upper_bound(parcel_data.parcel_id); - for (oi = start; oi != end; ++oi) + while (oi != end) { - LLRemoteParcelInfoObserver * observer = oi->second.get(); + // increment the loop iterator now since it may become invalid below + observer_multimap_t::iterator cur_oi = oi++; + + LLRemoteParcelInfoObserver * observer = cur_oi->second.get(); if(observer) { + // may invalidate cur_oi if the observer removes itself observer->processParcelInfo(parcel_data); } else { // the handle points to an expired observer, so don't keep it // around anymore - dead_iters.push_back(oi); + dead_iters.push_back(cur_oi); } } diff --git a/indra/newview/llsidepaneliteminfo.cpp b/indra/newview/llsidepaneliteminfo.cpp index be797ea937..c8c6858b81 100644 --- a/indra/newview/llsidepaneliteminfo.cpp +++ b/indra/newview/llsidepaneliteminfo.cpp @@ -71,12 +71,12 @@ void LLItemPropertiesObserver::changed(U32 mask) const std::set<LLUUID>& mChangedItemIDs = gInventory.getChangedIDs(); std::set<LLUUID>::const_iterator it; - const LLUUID& object_id = mFloater->getObjectID(); + const LLUUID& item_id = mFloater->getItemID(); for (it = mChangedItemIDs.begin(); it != mChangedItemIDs.end(); it++) { // set dirty for 'item profile panel' only if changed item is the item for which 'item profile panel' is shown (STORM-288) - if (*it == object_id) + if (*it == item_id) { // if there's a change we're interested in. if((mask & (LLInventoryObserver::LABEL | LLInventoryObserver::INTERNAL | LLInventoryObserver::REMOVE)) != 0) @@ -196,6 +196,11 @@ const LLUUID& LLSidepanelItemInfo::getObjectID() const return mObjectID; } +const LLUUID& LLSidepanelItemInfo::getItemID() const +{ + return mItemID; +} + void LLSidepanelItemInfo::reset() { LLSidepanelInventorySubpanel::reset(); diff --git a/indra/newview/llsidepaneliteminfo.h b/indra/newview/llsidepaneliteminfo.h index 6416e2cfe4..25be145f64 100644 --- a/indra/newview/llsidepaneliteminfo.h +++ b/indra/newview/llsidepaneliteminfo.h @@ -55,6 +55,7 @@ public: void setEditMode(BOOL edit); const LLUUID& getObjectID() const; + const LLUUID& getItemID() const; protected: /*virtual*/ void refresh(); diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml index 907f68dc06..3b1ebc64ab 100644 --- a/indra/newview/skins/default/xui/en/menu_viewer.xml +++ b/indra/newview/skins/default/xui/en/menu_viewer.xml @@ -976,6 +976,29 @@ parameter="perm_prefs" /> </menu_item_call> </menu> + <menu_item_separator/> + <menu_item_call + enabled="false" + label="Undo" + name="Undo" + shortcut="control|Z"> + <on_click + function="Edit.Undo" + userdata="" /> + <on_enable + function="Edit.EnableUndo" /> + </menu_item_call> + <menu_item_call + enabled="false" + label="Redo" + name="Redo" + shortcut="control|Y"> + <on_click + function="Edit.Redo" + userdata="" /> + <on_enable + function="Edit.EnableRedo" /> + </menu_item_call> </menu> <menu create_jump_keys="true" |