From acb6e12135452d8d4e53a9a61e1fb50cdeec2469 Mon Sep 17 00:00:00 2001 From: Andrey Kleshchev Date: Mon, 30 Mar 2020 16:47:54 +0300 Subject: SL-379 Remake Overrides tab into Avatar --- indra/newview/llfloatermodelpreview.cpp | 44 ++-- indra/newview/llfloatermodelpreview.h | 1 - .../skins/default/xui/en/floater_model_preview.xml | 222 ++++++++++----------- 3 files changed, 136 insertions(+), 131 deletions(-) (limited to 'indra') diff --git a/indra/newview/llfloatermodelpreview.cpp b/indra/newview/llfloatermodelpreview.cpp index d53b0c1155..f99b42ab2c 100644 --- a/indra/newview/llfloatermodelpreview.cpp +++ b/indra/newview/llfloatermodelpreview.cpp @@ -346,6 +346,10 @@ BOOL LLFloaterModelPreview::postBuild() childSetVisible("skin_too_many_joints", false); childSetVisible("skin_unknown_joint", false); + childSetVisible("warning_title", false); + childSetVisible("warning_message", false); + childSetVisible("status", false); + initDecompControls(); LLView* preview_panel = getChild("preview_panel"); @@ -656,6 +660,7 @@ void LLFloaterModelPreview::onJointListSelection() joint_pos_descr->setTextArg("[JOINT]", label); } + // Note: We can make a version of renderBones() to highlight selected joint } void LLFloaterModelPreview::onDescriptionKeystroke(LLUICtrl* ctrl) @@ -1440,21 +1445,22 @@ void LLFloaterModelPreview::clearOverridesTab() LLPanel *panel = mTabContainer->getPanelByName("overrides_panel"); LLScrollListCtrl *joints_list = panel->getChild("joints_list"); joints_list->deleteAllItems(); + LLScrollListCtrl *joints_pos = panel->getChild("pos_overrides_list"); + joints_pos->deleteAllItems(); + for (U32 i = 0; i < LLModel::NUM_LODS; ++i) { mJointOverrides[i].clear(); } -} -void LLFloaterModelPreview::resetOverridesTab() -{ - clearOverridesTab(); + LLTextBox *joint_total_descr = panel->getChild("conflicts_description"); + joint_total_descr->setTextArg("[CONFLICTS]", llformat("%d", 0)); + joint_total_descr->setTextArg("[JOINTS_COUNT]", llformat("%d", 0)); - for (U32 i = 0; i < LLModel::NUM_LODS; ++i) - { - mJointOverrides[i].clear(); - } + + LLTextBox *joint_pos_descr = panel->getChild("pos_overrides_descr"); + joint_pos_descr->setTextArg("[JOINT]", std::string("mPelvis")); // Might be better to hide it } void LLFloaterModelPreview::updateOverridesTab() @@ -1507,6 +1513,10 @@ void LLFloaterModelPreview::updateOverridesTab() if (joints_list->isEmpty()) { // Populate table + + std::map joint_alias_map; + mModelPreview->getJointAliases(joint_alias_map); + S32 conflicts = 0; joint_override_data_map_t::iterator joint_iter = mJointOverrides[display_lod].begin(); joint_override_data_map_t::iterator joint_end = mJointOverrides[display_lod].end(); @@ -1520,8 +1530,14 @@ void LLFloaterModelPreview::updateOverridesTab() LLScrollListCell::Params cell_params; cell_params.font = LLFontGL::getFontSansSerif(); cell_params.value = listName; + if (joint_alias_map.find(listName) == joint_alias_map.end()) + { + // Missing names + cell_params.color = LLColor4::red; + } if (joint_iter->second.mHasConflicts) { + // Conflicts cell_params.color = LLColor4::orange; conflicts++; } @@ -1533,9 +1549,9 @@ void LLFloaterModelPreview::updateOverridesTab() } joints_list->selectFirstItem(); - LLTextBox *joint_pos_descr = panel->getChild("conflicts_description"); - joint_pos_descr->setTextArg("[CONFLICTS]", llformat("%d", conflicts)); - joint_pos_descr->setTextArg("[JOINTS_COUNT]", llformat("%d", mJointOverrides[display_lod].size())); + LLTextBox *joint_conf_descr = panel->getChild("conflicts_description"); + joint_conf_descr->setTextArg("[CONFLICTS]", llformat("%d", conflicts)); + joint_conf_descr->setTextArg("[JOINTS_COUNT]", llformat("%d", mJointOverrides[display_lod].size())); } } @@ -2466,7 +2482,7 @@ void LLModelPreview::loadModelCallback(S32 loaded_lod) } else { - fmp->resetOverridesTab(); + fmp->clearOverridesTab(); } if (lock_scale_if_joint_position) @@ -4226,7 +4242,7 @@ BOOL LLModelPreview::render() mFMP->childSetValue("lock_scale_if_joint_position", false); if (fmp) { - fmp->resetOverridesTab(); + fmp->clearOverridesTab(); } } @@ -4868,7 +4884,7 @@ void LLFloaterModelPreview::onReset(void* user_data) LLFloaterModelPreview* fmp = (LLFloaterModelPreview*) user_data; fmp->childDisable("reset_btn"); fmp->clearLogTab(); - fmp->resetOverridesTab(); + fmp->clearOverridesTab(); LLModelPreview* mp = fmp->mModelPreview; std::string filename = mp->mLODFile[LLModel::LOD_HIGH]; diff --git a/indra/newview/llfloatermodelpreview.h b/indra/newview/llfloatermodelpreview.h index f64a7b6feb..d079a3d782 100644 --- a/indra/newview/llfloatermodelpreview.h +++ b/indra/newview/llfloatermodelpreview.h @@ -109,7 +109,6 @@ public: static void addStringToLog(const std::string& str, bool flash); static void addStringToLog(const std::ostringstream& strm, bool flash); void clearOverridesTab(); // clears table - void resetOverridesTab(); // clears table and cleans all data void updateOverridesTab(); // populates table and data as nessesary void setDetails(F32 x, F32 y, F32 z, F32 streaming_cost, F32 physics_cost); diff --git a/indra/newview/skins/default/xui/en/floater_model_preview.xml b/indra/newview/skins/default/xui/en/floater_model_preview.xml index 9ebcb0c09d..053c482831 100644 --- a/indra/newview/skins/default/xui/en/floater_model_preview.xml +++ b/indra/newview/skins/default/xui/en/floater_model_preview.xml @@ -47,12 +47,12 @@ + width="635"> + width="628" /> + width="614" /> + width="628"/> + width="628"/> - - - For avatar models only: - - - - Too many skinned joints - - - Model has an unknown joint(s) - - - - - Z offset (raise or lower avatar): - - + title="Avatar"> + width="628" /> + + + + + Z offset (raise or lower avatar): + + + + Too many skinned joints + + + Model has an unknown joint(s) + + top="73" + width="150"> Joints: @@ -1299,7 +1284,7 @@ height="15" left_pad="5" name="pos_overrides_descr" - top="4" + top="73" width="300"> Position overrides for joint '[JOINT]': @@ -1314,23 +1299,23 @@ height="100" left_delta="0" top_pad="0" - width="330"> + width="385"> + relative_width="0.49" /> + relative_width="0.17" /> + relative_width="0.17" /> + relative_width="0.17" /> + width="628" /> NOTE: @@ -1622,13 +1607,18 @@ Analysed: left_pad="1" name="warning_message" parse_urls="true" - top_delta="2" + top_delta="1" wrap="true" width="462" - visible="false"> + visible="true"> You dont have rights to upload mesh models. [[VURL] Find out how] to get certified. - + [STATUS] -- cgit v1.2.3