Compare commits

..

6 Commits

6 changed files with 39 additions and 63 deletions

View File

@@ -103,11 +103,7 @@ void LLFloaterPostcard::init()
if(!gAgent.getID().isNull()) if(!gAgent.getID().isNull())
{ {
// we're logged in, so we can get this info. // we're logged in, so we can get this info.
gMessageSystem->newMessageFast(_PREHASH_UserInfoRequest); gAgent.sendAgentUserInfoRequest();
gMessageSystem->nextBlockFast(_PREHASH_AgentData);
gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
gMessageSystem->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
gAgent.sendReliableMessage();
} }
sInstances.insert(this); sInstances.insert(this);
@@ -233,7 +229,7 @@ void LLFloaterPostcard::onClose(bool app_quitting)
destroy(); destroy();
} }
class LLSendPostcardResponder : public LLAssetUploadResponder class LLSendPostcardResponder final : public LLAssetUploadResponder
{ {
private: private:
int mSnapshotIndex; int mSnapshotIndex;
@@ -248,22 +244,22 @@ public:
{ {
} }
// *TODO define custom uploadFailed here so it's not such a generic message // *TODO define custom uploadFailed here so it's not such a generic message
/*virtual*/ void uploadComplete(const LLSD& content) void uploadComplete(const LLSD& content) override final
{ {
// we don't care about what the server returns from this post, just clean up the UI // we don't care about what the server returns from this post, just clean up the UI
LLFloaterSnapshot::savePostcardDone(true, mSnapshotIndex); LLFloaterSnapshot::savePostcardDone(true, mSnapshotIndex);
} }
/*virtual*/ void uploadFailure(const LLSD& content) void uploadFailure(const LLSD& content) override final
{ {
LLAssetUploadResponder::uploadFailure(content); LLAssetUploadResponder::uploadFailure(content);
LLFloaterSnapshot::savePostcardDone(false, mSnapshotIndex); LLFloaterSnapshot::savePostcardDone(false, mSnapshotIndex);
} }
/*virtual*/ void httpFailure(void) void httpFailure(void) override final
{ {
LLAssetUploadResponder::httpFailure(); LLAssetUploadResponder::httpFailure();
LLFloaterSnapshot::savePostcardDone(false, mSnapshotIndex); LLFloaterSnapshot::savePostcardDone(false, mSnapshotIndex);
} }
/*virtual*/ char const* getName(void) const { return "LLSendPostcardResponder"; } char const* getName(void) const override final { return "LLSendPostcardResponder"; }
}; };
// static // static
@@ -273,7 +269,6 @@ void LLFloaterPostcard::onClickSend(void* data)
{ {
LLFloaterPostcard *self = (LLFloaterPostcard *)data; LLFloaterPostcard *self = (LLFloaterPostcard *)data;
std::string from(self->childGetValue("from_form").asString());
std::string to(self->childGetValue("to_form").asString()); std::string to(self->childGetValue("to_form").asString());
boost::regex emailFormat("[A-Za-z0-9.%+-_]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}(,[ \t]*[A-Za-z0-9.%+-_]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,})*"); boost::regex emailFormat("[A-Za-z0-9.%+-_]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}(,[ \t]*[A-Za-z0-9.%+-_]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,})*");
@@ -284,12 +279,6 @@ void LLFloaterPostcard::onClickSend(void* data)
return; return;
} }
if (from.empty() || !boost::regex_match(from, emailFormat))
{
LLNotificationsUtil::add("PromptSelfEmail");
return;
}
std::string subject(self->childGetValue("subject_form").asString()); std::string subject(self->childGetValue("subject_form").asString());
if(subject.empty() || !self->mHasFirstMsgFocus) if(subject.empty() || !self->mHasFirstMsgFocus)
{ {
@@ -349,10 +338,8 @@ void LLFloaterPostcard::uploadCallback(const LLUUID& asset_id, void *user_data,
// static // static
void LLFloaterPostcard::updateUserInfo(const std::string& email) void LLFloaterPostcard::updateUserInfo(const std::string& email)
{ {
for (instance_list_t::iterator iter = sInstances.begin(); for (auto& instance : sInstances)
iter != sInstances.end(); ++iter)
{ {
LLFloaterPostcard *instance = *iter;
const std::string& text = instance->childGetValue("from_form").asString(); const std::string& text = instance->childGetValue("from_form").asString();
if (text.empty()) if (text.empty())
{ {
@@ -416,7 +403,6 @@ void LLFloaterPostcard::sendPostcard()
// the capability already encodes: agent ID, region ID // the capability already encodes: agent ID, region ID
body["pos-global"] = mPosTakenGlobal.getValue(); body["pos-global"] = mPosTakenGlobal.getValue();
body["to"] = childGetValue("to_form").asString(); body["to"] = childGetValue("to_form").asString();
body["from"] = childGetValue("from_form").asString();
body["name"] = childGetValue("name_form").asString(); body["name"] = childGetValue("name_form").asString();
body["subject"] = childGetValue("subject_form").asString(); body["subject"] = childGetValue("subject_form").asString();
body["msg"] = childGetValue("msg_form").asString(); body["msg"] = childGetValue("msg_form").asString();

View File

@@ -46,17 +46,17 @@ class LLLineEditor;
class LLButton; class LLButton;
class LLImageJPEG; class LLImageJPEG;
class LLFloaterPostcard class LLFloaterPostcard final
: public LLFloater : public LLFloater
{ {
public: public:
LLFloaterPostcard(LLImageJPEG* jpeg, LLViewerTexture *img, const LLVector2& img_scale, const LLVector3d& pos_taken_global, int index); LLFloaterPostcard(LLImageJPEG* jpeg, LLViewerTexture *img, const LLVector2& img_scale, const LLVector3d& pos_taken_global, int index);
/*virtual*/ ~LLFloaterPostcard(); /*virtual*/ ~LLFloaterPostcard() override;
/*virtual*/ void init(); void init();
/*virtual*/ BOOL postBuild(); /*virtual*/ BOOL postBuild() override;
/*virtual*/ void draw(); /*virtual*/ void draw() override;
/*virtual*/ void onClose(bool app_quitting); /*virtual*/ void onClose(bool app_quitting) override;
static LLFloaterPostcard* showFromSnapshot(LLImageJPEG *jpeg, LLViewerTexture *img, const LLVector2& img_scale, const LLVector3d& pos_taken_global, int index); static LLFloaterPostcard* showFromSnapshot(LLImageJPEG *jpeg, LLViewerTexture *img, const LLVector2& img_scale, const LLVector3d& pos_taken_global, int index);

View File

@@ -302,10 +302,10 @@ void LLFloaterWindLight::syncMenu()
// blue horizon // blue horizon
param_mgr->mBlueHorizon = cur_params.getVector(param_mgr->mBlueHorizon.mName, err); param_mgr->mBlueHorizon = cur_params.getVector(param_mgr->mBlueHorizon.mName, err);
//setColorSwatch("WLBlueHorizon", param_mgr->mBlueHorizon, WL_BLUE_HORIZON_DENSITY_SCALE); //setColorSwatch("WLBlueHorizon", param_mgr->mBlueHorizon, WL_BLUE_HORIZON_DENSITY_SCALE);
childSetValue("WLBlueHorizonR", param_mgr->mBlueHorizon.r); childSetValue("WLBlueHorizonR", param_mgr->mBlueHorizon.r / WL_BLUE_HORIZON_DENSITY_SCALE);
childSetValue("WLBlueHorizonG", param_mgr->mBlueHorizon.g); childSetValue("WLBlueHorizonG", param_mgr->mBlueHorizon.g / WL_BLUE_HORIZON_DENSITY_SCALE);
childSetValue("WLBlueHorizonB", param_mgr->mBlueHorizon.b); childSetValue("WLBlueHorizonB", param_mgr->mBlueHorizon.b / WL_BLUE_HORIZON_DENSITY_SCALE);
childSetValue("WLBlueHorizonI", param_mgr->mBlueHorizon.i); childSetValue("WLBlueHorizonI", param_mgr->mBlueHorizon.i / WL_BLUE_HORIZON_DENSITY_SCALE);
// haze density, horizon, mult, and altitude // haze density, horizon, mult, and altitude
param_mgr->mHazeDensity = cur_params.getFloat(param_mgr->mHazeDensity.mName, err); param_mgr->mHazeDensity = cur_params.getFloat(param_mgr->mHazeDensity.mName, err);
@@ -320,20 +320,20 @@ void LLFloaterWindLight::syncMenu()
// blue density // blue density
param_mgr->mBlueDensity = cur_params.getVector(param_mgr->mBlueDensity.mName, err); param_mgr->mBlueDensity = cur_params.getVector(param_mgr->mBlueDensity.mName, err);
//setColorSwatch("WLBlueDensity", param_mgr->mBlueDensity, WL_BLUE_HORIZON_DENSITY_SCALE); //setColorSwatch("WLBlueDensity", param_mgr->mBlueDensity, WL_BLUE_HORIZON_DENSITY_SCALE);
childSetValue("WLBlueDensityR", param_mgr->mBlueDensity.r); childSetValue("WLBlueDensityR", param_mgr->mBlueDensity.r / WL_BLUE_HORIZON_DENSITY_SCALE);
childSetValue("WLBlueDensityG", param_mgr->mBlueDensity.g); childSetValue("WLBlueDensityG", param_mgr->mBlueDensity.g / WL_BLUE_HORIZON_DENSITY_SCALE);
childSetValue("WLBlueDensityB", param_mgr->mBlueDensity.b); childSetValue("WLBlueDensityB", param_mgr->mBlueDensity.b / WL_BLUE_HORIZON_DENSITY_SCALE);
childSetValue("WLBlueDensityI", param_mgr->mBlueDensity.i); childSetValue("WLBlueDensityI", param_mgr->mBlueDensity.i / WL_BLUE_HORIZON_DENSITY_SCALE);
// Lighting // Lighting
// sunlight // sunlight
param_mgr->mSunlight = cur_params.getVector(param_mgr->mSunlight.mName, err); param_mgr->mSunlight = cur_params.getVector(param_mgr->mSunlight.mName, err);
//setColorSwatch("WLSunlight", param_mgr->mSunlight, WL_SUN_AMBIENT_SLIDER_SCALE); //setColorSwatch("WLSunlight", param_mgr->mSunlight, WL_SUN_AMBIENT_SLIDER_SCALE);
childSetValue("WLSunlightR", param_mgr->mSunlight.r); childSetValue("WLSunlightR", param_mgr->mSunlight.r / WL_SUN_AMBIENT_SLIDER_SCALE);
childSetValue("WLSunlightG", param_mgr->mSunlight.g); childSetValue("WLSunlightG", param_mgr->mSunlight.g / WL_SUN_AMBIENT_SLIDER_SCALE);
childSetValue("WLSunlightB", param_mgr->mSunlight.b); childSetValue("WLSunlightB", param_mgr->mSunlight.b / WL_SUN_AMBIENT_SLIDER_SCALE);
childSetValue("WLSunlightI", param_mgr->mSunlight.i); childSetValue("WLSunlightI", param_mgr->mSunlight.i / WL_SUN_AMBIENT_SLIDER_SCALE);
// glow // glow
param_mgr->mGlow = cur_params.getVector(param_mgr->mGlow.mName, err); param_mgr->mGlow = cur_params.getVector(param_mgr->mGlow.mName, err);
@@ -343,10 +343,10 @@ void LLFloaterWindLight::syncMenu()
// ambient // ambient
param_mgr->mAmbient = cur_params.getVector(param_mgr->mAmbient.mName, err); param_mgr->mAmbient = cur_params.getVector(param_mgr->mAmbient.mName, err);
//setColorSwatch("WLAmbient", param_mgr->mAmbient, WL_SUN_AMBIENT_SLIDER_SCALE); //setColorSwatch("WLAmbient", param_mgr->mAmbient, WL_SUN_AMBIENT_SLIDER_SCALE);
childSetValue("WLAmbientR", param_mgr->mAmbient.r); childSetValue("WLAmbientR", param_mgr->mAmbient.r / WL_SUN_AMBIENT_SLIDER_SCALE);
childSetValue("WLAmbientG", param_mgr->mAmbient.g); childSetValue("WLAmbientG", param_mgr->mAmbient.g / WL_SUN_AMBIENT_SLIDER_SCALE);
childSetValue("WLAmbientB", param_mgr->mAmbient.b); childSetValue("WLAmbientB", param_mgr->mAmbient.b / WL_SUN_AMBIENT_SLIDER_SCALE);
childSetValue("WLAmbientI", param_mgr->mAmbient.i); childSetValue("WLAmbientI", param_mgr->mAmbient.i / WL_SUN_AMBIENT_SLIDER_SCALE);
childSetValue("WLSunAngle", param_mgr->mCurParams.getFloat("sun_angle",err) / F_TWO_PI); childSetValue("WLSunAngle", param_mgr->mCurParams.getFloat("sun_angle",err) / F_TWO_PI);
childSetValue("WLEastAngle", param_mgr->mCurParams.getFloat("east_angle",err) / F_TWO_PI); childSetValue("WLEastAngle", param_mgr->mCurParams.getFloat("east_angle",err) / F_TWO_PI);
@@ -356,10 +356,10 @@ void LLFloaterWindLight::syncMenu()
// Cloud Color // Cloud Color
param_mgr->mCloudColor = cur_params.getVector(param_mgr->mCloudColor.mName, err); param_mgr->mCloudColor = cur_params.getVector(param_mgr->mCloudColor.mName, err);
//setColorSwatch("WLCloudColor", param_mgr->mCloudColor, WL_CLOUD_SLIDER_SCALE); //setColorSwatch("WLCloudColor", param_mgr->mCloudColor, WL_CLOUD_SLIDER_SCALE);
childSetValue("WLCloudColorR", param_mgr->mCloudColor.r); childSetValue("WLCloudColorR", param_mgr->mCloudColor.r / WL_CLOUD_SLIDER_SCALE);
childSetValue("WLCloudColorG", param_mgr->mCloudColor.g); childSetValue("WLCloudColorG", param_mgr->mCloudColor.g / WL_CLOUD_SLIDER_SCALE);
childSetValue("WLCloudColorB", param_mgr->mCloudColor.b); childSetValue("WLCloudColorB", param_mgr->mCloudColor.b / WL_CLOUD_SLIDER_SCALE);
childSetValue("WLCloudColorI", param_mgr->mCloudColor.i); childSetValue("WLCloudColorI", param_mgr->mCloudColor.i / WL_CLOUD_SLIDER_SCALE);
// Cloud // Cloud
param_mgr->mCloudMain = cur_params.getVector(param_mgr->mCloudMain.mName, err); param_mgr->mCloudMain = cur_params.getVector(param_mgr->mCloudMain.mName, err);
@@ -513,18 +513,7 @@ void LLFloaterWindLight::onColorControlRMoved(LLUICtrl* ctrl, void* userdata)
std::string name = color_ctrl->mSliderName; std::string name = color_ctrl->mSliderName;
name.append("I"); name.append("I");
if (color_ctrl->isSunOrAmbientColor) childSetValue(name, sldr_ctrl->getValueF32());
{
childSetValue(name, color_ctrl->r / WL_SUN_AMBIENT_SLIDER_SCALE);
}
else if (color_ctrl->isBlueHorizonOrDensity)
{
childSetValue(name, color_ctrl->r / WL_BLUE_HORIZON_DENSITY_SCALE);
}
else
{
childSetValue(name, color_ctrl->r);
}
} }
color_ctrl->update(LLWLParamManager::getInstance()->mCurParams); color_ctrl->update(LLWLParamManager::getInstance()->mCurParams);

View File

@@ -1651,6 +1651,7 @@ Note: OTHER_TYPING_TIMEOUT must be > ME_TYPING_TIMEOUT for proper operation of t
{ {
speaker_mgr->setSpeakerTyping(from_id, TRUE); speaker_mgr->setSpeakerTyping(from_id, TRUE);
} }
mOtherTyping = true; // addHistoryLine clears this flag. Set it again.
} }
} }

View File

@@ -3889,6 +3889,9 @@ void build_context_menu_folder_options(LLInventoryModel* model, const LLUUID& mU
const LLInventoryCategory* category = model->getCategory(mUUID); const LLInventoryCategory* category = model->getCategory(mUUID);
if(!category) return; if(!category) return;
items.push_back(std::string("Open Folder In New Window"));
items.push_back(std::string("Copy Folder UUID"));
const LLUUID trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH); const LLUUID trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH);
if (trash_id == mUUID) return; if (trash_id == mUUID) return;
if (model->isObjectDescendentOf(mUUID, trash_id)) return; if (model->isObjectDescendentOf(mUUID, trash_id)) return;
@@ -3902,9 +3905,6 @@ void build_context_menu_folder_options(LLInventoryModel* model, const LLUUID& mU
const LLUUID listings_folder = gInventory.findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false); const LLUUID listings_folder = gInventory.findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false);
if (listings_folder.notNull() && gInventory.isObjectDescendentOf(mUUID, listings_folder)) return; if (listings_folder.notNull() && gInventory.isObjectDescendentOf(mUUID, listings_folder)) return;
items.push_back(std::string("Open Folder In New Window"));
items.push_back(std::string("Copy Folder UUID"));
LLFolderType::EType type = category->getPreferredType(); LLFolderType::EType type = category->getPreferredType();
const bool is_system_folder = LLFolderType::lookupIsProtectedType(type); const bool is_system_folder = LLFolderType::lookupIsProtectedType(type);
// calling card related functionality for folders. // calling card related functionality for folders.

View File

@@ -389,7 +389,7 @@ void LLViewerOctreeEntryData::shift(const LLVector4a &shift_vector)
LLViewerOctreeGroup* LLViewerOctreeEntryData::getGroup()const LLViewerOctreeGroup* LLViewerOctreeEntryData::getGroup()const
{ {
return mEntry.notNull() ? mEntry->mGroup : NULL; return mEntry.notNull() ? mEntry->mGroup : LLPointer<LLViewerOctreeGroup>();
} }
const LLVector4a& LLViewerOctreeEntryData::getPositionGroup() const const LLVector4a& LLViewerOctreeEntryData::getPositionGroup() const