parent
be04175579
commit
dcd9d368c2
|
|
@ -180,8 +180,15 @@ void LLFloaterMediaSettings::onClose(bool app_quitting)
|
|||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//static
|
||||
void LLFloaterMediaSettings::initValues( const LLSD& media_settings, bool editable )
|
||||
void LLFloaterMediaSettings::initValues( const LLSD& media_settings, bool editable, bool has_media_info, bool multiple_media, bool multiple_valid_media)
|
||||
{
|
||||
if (!sInstance)
|
||||
{
|
||||
return;
|
||||
}
|
||||
sInstance->mIdenticalHasMediaInfo = has_media_info;
|
||||
sInstance->mMultipleMedia = multiple_media;
|
||||
sInstance->mMultipleValidMedia = multiple_valid_media;
|
||||
if (sInstance->hasFocus()) return;
|
||||
|
||||
// Clear values
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ public:
|
|||
static LLFloaterMediaSettings* getInstance();
|
||||
static bool instanceExists();
|
||||
static void apply();
|
||||
static void initValues( const LLSD& media_settings , bool editable);
|
||||
static void initValues( const LLSD& media_settings , bool editable, bool has_media_info, bool multiple_media, bool multiple_valid_media);
|
||||
static void clearValues( bool editable);
|
||||
|
||||
LLPanelMediaSettingsSecurity* getPanelSecurity(){return mPanelMediaSettingsSecurity;};
|
||||
|
|
|
|||
|
|
@ -2209,7 +2209,7 @@ void LLPanelFace::refreshMedia()
|
|||
|
||||
|
||||
// check if all faces have media(or, all dont have media)
|
||||
LLFloaterMediaSettings::getInstance()->mIdenticalHasMediaInfo = selected_objects->getSelectedTEValue(&func, bool_has_media);
|
||||
bool identical_has_media_info = selected_objects->getSelectedTEValue(&func, bool_has_media);
|
||||
|
||||
const LLMediaEntry default_media_data;
|
||||
|
||||
|
|
@ -2231,7 +2231,8 @@ void LLPanelFace::refreshMedia()
|
|||
} func_media_data(default_media_data);
|
||||
|
||||
LLMediaEntry media_data_get;
|
||||
LLFloaterMediaSettings::getInstance()->mMultipleMedia = !(selected_objects->getSelectedTEValue(&func_media_data, media_data_get));
|
||||
bool multiple_media = !(selected_objects->getSelectedTEValue(&func_media_data, media_data_get));
|
||||
bool multiple_valid_media = false;
|
||||
|
||||
std::string multi_media_info_str = LLTrans::getString("Multiple Media");
|
||||
std::string media_title = "";
|
||||
|
|
@ -2240,12 +2241,12 @@ void LLPanelFace::refreshMedia()
|
|||
|
||||
mAddMedia->setEnabled(editable);
|
||||
// IF all the faces have media (or all dont have media)
|
||||
if (LLFloaterMediaSettings::getInstance()->mIdenticalHasMediaInfo)
|
||||
if (identical_has_media_info)
|
||||
{
|
||||
// TODO: get media title and set it.
|
||||
mTitleMediaText->clear();
|
||||
// if identical is set, all faces are same (whether all empty or has the same media)
|
||||
if (!(LLFloaterMediaSettings::getInstance()->mMultipleMedia))
|
||||
if (!multiple_media)
|
||||
{
|
||||
// Media data is valid
|
||||
if (media_data_get != default_media_data)
|
||||
|
|
@ -2266,9 +2267,9 @@ void LLPanelFace::refreshMedia()
|
|||
else // not all face has media but at least one does.
|
||||
{
|
||||
// seleted faces have not identical value
|
||||
LLFloaterMediaSettings::getInstance()->mMultipleValidMedia = selected_objects->isMultipleTEValue(&func_media_data, default_media_data);
|
||||
multiple_valid_media = selected_objects->isMultipleTEValue(&func_media_data, default_media_data);
|
||||
|
||||
if (LLFloaterMediaSettings::getInstance()->mMultipleValidMedia)
|
||||
if (multiple_valid_media)
|
||||
{
|
||||
media_title = multi_media_info_str;
|
||||
}
|
||||
|
|
@ -2305,7 +2306,7 @@ void LLPanelFace::refreshMedia()
|
|||
// load values for media settings
|
||||
updateMediaSettings();
|
||||
|
||||
LLFloaterMediaSettings::initValues(mMediaSettings, editable);
|
||||
LLFloaterMediaSettings::initValues(mMediaSettings, editable, identical_has_media_info, multiple_media, multiple_valid_media);
|
||||
}
|
||||
|
||||
void LLPanelFace::unloadMedia()
|
||||
|
|
@ -3378,6 +3379,7 @@ void LLPanelFace::onSelectNormalTexture(const LLSD& data)
|
|||
// TODO: test if there is media on the item and only allow editing if present
|
||||
void LLPanelFace::onClickBtnEditMedia()
|
||||
{
|
||||
LLFloaterMediaSettings::getInstance(); // make sure floater we are about to open exists before refreshMedia
|
||||
refreshMedia();
|
||||
LLFloaterReg::showInstance("media_settings");
|
||||
}
|
||||
|
|
@ -3396,6 +3398,7 @@ void LLPanelFace::onClickBtnAddMedia()
|
|||
// check if multiple faces are selected
|
||||
if (LLSelectMgr::getInstance()->getSelection()->isMultipleTESelected())
|
||||
{
|
||||
LLFloaterMediaSettings::getInstance(); // make sure floater we are about to open exists before refreshMedia
|
||||
refreshMedia();
|
||||
LLNotificationsUtil::add("MultipleFacesSelected", LLSD(), LLSD(), multipleFacesSelectedConfirm);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue