MAINT-9039 Don't show environment editor floaters in multi-preview

meow-7.2.2
maxim_productengine 2018-08-27 16:53:45 +03:00
parent 06a77dd5fe
commit edda833a35
2 changed files with 24 additions and 3 deletions

View File

@ -109,6 +109,7 @@ public:
virtual void closeItem() {}
virtual void showProperties();
virtual BOOL isItemRenameable() const { return TRUE; }
virtual BOOL isMultiPreviewAllowed() { return TRUE; }
//virtual BOOL renameItem(const std::string& new_name) {}
virtual BOOL isItemRemovable() const;
virtual BOOL isItemMovable() const;
@ -621,6 +622,7 @@ public:
virtual LLUIImagePtr getIcon() const;
virtual void performAction(LLInventoryModel* model, std::string action);
virtual void openItem();
virtual BOOL isMultiPreviewAllowed() { return FALSE; }
virtual void buildContextMenu(LLMenuGL& menu, U32 flags);
virtual BOOL renameItem(const std::string& new_name);
virtual LLSettingsType::type_e getSettingsType() const { return mSettingsType; }

View File

@ -2395,10 +2395,29 @@ void LLInventoryAction::doToSelected(LLInventoryModel* model, LLFolderView* root
if (("task_open" == action || "open" == action) && selected_items.size() > 1)
{
multi_previewp = new LLMultiPreview();
gFloaterView->addChild(multi_previewp);
bool open_multi_preview = true;
LLFloater::setFloaterHost(multi_previewp);
for (std::set<LLFolderViewItem*>::iterator set_iter = selected_items.begin(); set_iter != selected_items.end(); ++set_iter)
{
LLFolderViewItem* folder_item = *set_iter;
if (folder_item)
{
LLInvFVBridge* bridge = (LLInvFVBridge*)folder_item->getViewModelItem();
if (!bridge || !bridge->isMultiPreviewAllowed())
{
open_multi_preview = false;
break;
}
}
}
if (open_multi_preview)
{
multi_previewp = new LLMultiPreview();
gFloaterView->addChild(multi_previewp);
LLFloater::setFloaterHost(multi_previewp);
}
}
else if (("task_properties" == action || "properties" == action) && selected_items.size() > 1)