diff options
author | andreykproductengine <andreykproductengine@lindenlab.com> | 2018-09-17 20:29:45 +0300 |
---|---|---|
committer | andreykproductengine <andreykproductengine@lindenlab.com> | 2018-09-17 20:29:45 +0300 |
commit | 53a93d3e73892f633b1d79de359924d733489bdb (patch) | |
tree | bee6598e4c7b976fa7f5f6f8364b1f6ee179a94a | |
parent | 8a65439c76437476d62b3f52fa26fea7ea1c6740 (diff) |
SL-9654 EEP Double click should apply instead of opening in settings picker
-rw-r--r-- | indra/newview/llfloatereditextdaycycle.cpp | 2 | ||||
-rw-r--r-- | indra/newview/llsettingspicker.cpp | 31 | ||||
-rw-r--r-- | indra/newview/llsettingspicker.h | 1 |
3 files changed, 33 insertions, 1 deletions
diff --git a/indra/newview/llfloatereditextdaycycle.cpp b/indra/newview/llfloatereditextdaycycle.cpp index 69623567d4..4be0e30c62 100644 --- a/indra/newview/llfloatereditextdaycycle.cpp +++ b/indra/newview/llfloatereditextdaycycle.cpp @@ -1332,7 +1332,7 @@ void LLFloaterEditExtDayCycle::doImportFromDisk() void LLFloaterEditExtDayCycle::loadSettingFromFile(const std::vector<std::string>& filenames) { - if (filenames.size() < 1) return;
+ if (filenames.size() < 1) return; std::string filename = filenames[0]; LL_WARNS("LAPRAS") << "Selected file: " << filename << LL_ENDL; LLSettingsDay::ptr_t legacyday = LLEnvironment::createDayCycleFromLegacyPreset(filename); diff --git a/indra/newview/llsettingspicker.cpp b/indra/newview/llsettingspicker.cpp index 06d54825e7..f72c7c5dcf 100644 --- a/indra/newview/llsettingspicker.cpp +++ b/indra/newview/llsettingspicker.cpp @@ -302,6 +302,37 @@ void LLFloaterSettingsPicker::onButtonSelect() closeFloater(); } +BOOL LLFloaterSettingsPicker::handleDoubleClick(S32 x, S32 y, MASK mask) +{ + if (mSettingAssetID.notNull() + && mInventoryPanel) + { + LLUUID item_id = findItemID(mSettingAssetID, FALSE); + S32 inventory_x = x - mInventoryPanel->getRect().mLeft; + S32 inventory_y = y - mInventoryPanel->getRect().mBottom; + if (item_id.notNull() + && mInventoryPanel->parentPointInView(inventory_x, inventory_y)) + { + // make sure item (not folder) is selected + LLFolderViewItem* item_viewp = mInventoryPanel->getItemByID(item_id); + if (item_viewp && item_viewp->isSelected()) + { + LLRect target_rect; + item_viewp->localRectToOtherView(item_viewp->getLocalRect(), &target_rect, this); + if (target_rect.pointInRect(x, y)) + { + // Quick-apply + if (mCommitSignal) + (*mCommitSignal)(this, LLSD(mSettingAssetID)); + closeFloater(); + return TRUE; + } + } + } + } + return LLFloater::handleDoubleClick(x, y, mask); +} + //========================================================================= void LLFloaterSettingsPicker::setActive(bool active) { diff --git a/indra/newview/llsettingspicker.h b/indra/newview/llsettingspicker.h index a58fa38ed0..2faefefd4a 100644 --- a/indra/newview/llsettingspicker.h +++ b/indra/newview/llsettingspicker.h @@ -96,6 +96,7 @@ private: void onSelectionChange(const itemlist_t &items, bool user_action); void onButtonCancel(); void onButtonSelect(); + virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask); LLHandle<LLView> mOwnerHandle; |