From 6fe00fd9adb967ff4da8b1ee53030a7f2e0ff052 Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Wed, 6 Dec 2017 19:40:58 +0200 Subject: MAINT-8058 Fixed background requests on every prim edit --- indra/newview/llfloatertools.cpp | 49 +++++++++++++++++++++++++++------------- 1 file changed, 33 insertions(+), 16 deletions(-) (limited to 'indra/newview/llfloatertools.cpp') diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp index 2869256d09..9c3f0922b8 100644 --- a/indra/newview/llfloatertools.cpp +++ b/indra/newview/llfloatertools.cpp @@ -1317,7 +1317,6 @@ void LLFloaterTools::getMediaState() std::string multi_media_info_str = LLTrans::getString("Multiple Media"); std::string media_title = ""; - mNeedMediaTitle = false; // update UI depending on whether "object" (prim or face) has media // and whether or not you are allowed to edit it. @@ -1335,17 +1334,18 @@ void LLFloaterTools::getMediaState() { // initial media title is the media URL (until we get the name) media_title = media_data_get.getHomeURL(); - - // kick off a navigate and flag that we need to update the title - navigateToTitleMedia( media_data_get.getHomeURL() ); - mNeedMediaTitle = true; + navigateToTitleMedia(media_title); + } + else + { + // all faces might be empty. Make sure we will navigate next time. + navigateToTitleMedia(std::string()); } - // else all faces might be empty. } else // there' re Different Medias' been set on on the faces. { media_title = multi_media_info_str; - mNeedMediaTitle = false; + navigateToTitleMedia(media_title); } getChildView("media_tex")->setEnabled(bool_has_media && editable); @@ -1362,7 +1362,7 @@ void LLFloaterTools::getMediaState() if(LLFloaterMediaSettings::getInstance()->mMultipleValidMedia) { media_title = multi_media_info_str; - mNeedMediaTitle = false; + navigateToTitleMedia(media_title); } else { @@ -1371,10 +1371,12 @@ void LLFloaterTools::getMediaState() { // initial media title is the media URL (until we get the name) media_title = media_data_get.getHomeURL(); - - // kick off a navigate and flag that we need to update the title - navigateToTitleMedia( media_data_get.getHomeURL() ); - mNeedMediaTitle = true; + navigateToTitleMedia(media_title); + } + else + { + // Make sure we will navigate next time. + navigateToTitleMedia(std::string()); } } @@ -1472,16 +1474,31 @@ void LLFloaterTools::clearMediaSettings() // void LLFloaterTools::navigateToTitleMedia( const std::string url ) { - if ( mTitleMedia ) + std::string multi_media_info_str = LLTrans::getString("Multiple Media"); + if (url.empty() || multi_media_info_str == url) + { + // nothing to show + mNeedMediaTitle = false; + } + else if (mTitleMedia) { LLPluginClassMedia* media_plugin = mTitleMedia->getMediaPlugin(); - if ( media_plugin ) + + if ( media_plugin ) // Shouldn't this be after navigateTo creates plugin? { // if it's a movie, we don't want to hear it media_plugin->setVolume( 0 ); }; - mTitleMedia->navigateTo( url ); - }; + + // check if url changed or if we need a new media source + if (mTitleMedia->getCurrentNavUrl() != url || media_plugin == NULL) + { + mTitleMedia->navigateTo( url ); + } + + // flag that we need to update the title (even if no request were made) + mNeedMediaTitle = true; + } } ////////////////////////////////////////////////////////////////////////////// -- cgit v1.2.3 From 72b0ce5cb081c400972b01b1fbe23cba4b95b007 Mon Sep 17 00:00:00 2001 From: andreykproductengine Date: Wed, 6 Dec 2017 19:40:58 +0200 Subject: MAINT-8058 Simplification --- indra/newview/llfloatertools.cpp | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) (limited to 'indra/newview/llfloatertools.cpp') diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp index 9c3f0922b8..c9d664c7c4 100644 --- a/indra/newview/llfloatertools.cpp +++ b/indra/newview/llfloatertools.cpp @@ -1334,18 +1334,12 @@ void LLFloaterTools::getMediaState() { // initial media title is the media URL (until we get the name) media_title = media_data_get.getHomeURL(); - navigateToTitleMedia(media_title); - } - else - { - // all faces might be empty. Make sure we will navigate next time. - navigateToTitleMedia(std::string()); } + // else all faces might be empty. } else // there' re Different Medias' been set on on the faces. { media_title = multi_media_info_str; - navigateToTitleMedia(media_title); } getChildView("media_tex")->setEnabled(bool_has_media && editable); @@ -1362,7 +1356,6 @@ void LLFloaterTools::getMediaState() if(LLFloaterMediaSettings::getInstance()->mMultipleValidMedia) { media_title = multi_media_info_str; - navigateToTitleMedia(media_title); } else { @@ -1371,12 +1364,6 @@ void LLFloaterTools::getMediaState() { // initial media title is the media URL (until we get the name) media_title = media_data_get.getHomeURL(); - navigateToTitleMedia(media_title); - } - else - { - // Make sure we will navigate next time. - navigateToTitleMedia(std::string()); } } @@ -1385,6 +1372,8 @@ void LLFloaterTools::getMediaState() getChildView("delete_media")->setEnabled(TRUE); getChildView("add_media")->setEnabled(editable); } + + navigateToTitleMedia(media_title); media_info->setText(media_title); // load values for media settings -- cgit v1.2.3