diff options
author | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2023-07-21 00:47:14 +0300 |
---|---|---|
committer | Andrey Kleshchev <andreykproductengine@lindenlab.com> | 2023-07-21 00:48:29 +0300 |
commit | 0941fcd5a48e9d4d95fb88750db3b964aa983486 (patch) | |
tree | 993ee26823fa7082de4814106d9353135729788d /indra | |
parent | 4fb9a3f469c2cb0197d686acb68827f0fa32b451 (diff) |
SL-20047 Indicate when gallery items are being cut
Diffstat (limited to 'indra')
-rw-r--r-- | indra/newview/llinventorygallery.cpp | 40 | ||||
-rw-r--r-- | indra/newview/llinventorygallery.h | 4 |
2 files changed, 37 insertions, 7 deletions
diff --git a/indra/newview/llinventorygallery.cpp b/indra/newview/llinventorygallery.cpp index ca1b2eb09e..99bd772773 100644 --- a/indra/newview/llinventorygallery.cpp +++ b/indra/newview/llinventorygallery.cpp @@ -2230,7 +2230,9 @@ LLInventoryGalleryItem::LLInventoryGalleryItem(const Params& p) mHidden(false), mGallery(NULL), mType(LLAssetType::AT_NONE), - mSortGroup(SG_ITEM) + mSortGroup(SG_ITEM), + mCutGeneration(0), + mSelectedForCut(false) { buildFromFile("panel_inventory_gallery_item.xml"); } @@ -2328,13 +2330,24 @@ void LLInventoryGalleryItem::setThumbnail(LLUUID id) void LLInventoryGalleryItem::draw() { - LLPanel::draw(); + if (isFadeItem()) + { + // Fade out to indicate it's being cut + LLViewDrawContext context(0.5f); + LLPanel::draw(); + } + else + { + LLPanel::draw(); + + // Draw border + LLUIColor border_color = LLUIColorTable::instance().getColor(mSelected ? "MenuItemHighlightBgColor" : "TextFgTentativeColor", LLColor4::white); + LLRect border = getChildView("preview_thumbnail")->getRect(); + border.mRight = border.mRight + 1; + gl_rect_2d(border, border_color.get(), FALSE); + } + - // Draw border - LLUIColor border_color = LLUIColorTable::instance().getColor(mSelected ? "MenuItemHighlightBgColor" : "TextFgTentativeColor", LLColor4::white); - LLRect border = getChildView("preview_thumbnail")->getRect(); - border.mRight = border.mRight + 1; - gl_rect_2d(border, border_color.get(), FALSE); } void LLInventoryGalleryItem::setItemName(std::string name) @@ -2543,6 +2556,19 @@ void LLInventoryGalleryItem::updateNameText() getChild<LLThumbnailCtrl>("preview_thumbnail")->setToolTip(mItemName + mPermSuffix + mWornSuffix); } +bool LLInventoryGalleryItem::isFadeItem() +{ + LLClipboard& clipboard = LLClipboard::instance(); + if (mCutGeneration == clipboard.getGeneration()) + { + return mSelectedForCut; + } + + mCutGeneration = clipboard.getGeneration(); + mSelectedForCut = clipboard.isCutMode() && clipboard.isOnClipboard(mUUID); + return mSelectedForCut; +} + //----------------------------- // LLThumbnailsObserver //----------------------------- diff --git a/indra/newview/llinventorygallery.h b/indra/newview/llinventorygallery.h index 42bda59c5a..f2e5e38940 100644 --- a/indra/newview/llinventorygallery.h +++ b/indra/newview/llinventorygallery.h @@ -335,6 +335,8 @@ public: void updateNameText(); private: + bool isFadeItem(); + LLUUID mUUID; LLTextBox* mNameText; LLPanel* mTextBgPanel; @@ -344,6 +346,8 @@ private: bool mHidden; bool mIsFolder; bool mIsLink; + S32 mCutGeneration; + bool mSelectedForCut; std::string mAssetIDStr; std::string mDesc; |