From c5d21cfb1c4758f08b2a36dab194af65a26b20eb Mon Sep 17 00:00:00 2001 From: Lirusaito Date: Sat, 15 Jun 2013 06:10:31 -0400 Subject: [PATCH] Updated pick panel code, removed dead stuff including xmls. --- indra/newview/llpanelavatar.cpp | 6 +- indra/newview/llpanelpick.cpp | 277 ++++-------------- indra/newview/llpanelpick.h | 44 +-- .../default/xui/en-us/panel_avatar_pick.xml | 8 - .../default/xui/en-us/panel_top_pick.xml | 29 -- .../skins/default/xui/es/panel_top_pick.xml | 10 - .../skins/default/xui/fr/panel_top_pick.xml | 10 - .../skins/default/xui/pt/panel_top_pick.xml | 10 - 8 files changed, 76 insertions(+), 318 deletions(-) delete mode 100644 indra/newview/skins/default/xui/en-us/panel_top_pick.xml delete mode 100644 indra/newview/skins/default/xui/es/panel_top_pick.xml delete mode 100644 indra/newview/skins/default/xui/fr/panel_top_pick.xml delete mode 100644 indra/newview/skins/default/xui/pt/panel_top_pick.xml diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp index 3915aab8f..bd0f62603 100644 --- a/indra/newview/llpanelavatar.cpp +++ b/indra/newview/llpanelavatar.cpp @@ -1214,7 +1214,7 @@ void LLPanelAvatarPicks::processProperties(void* data, EAvatarProcessorType type for(LLAvatarPicks::picks_list_t::iterator it = picks->picks_list.begin(); it != picks->picks_list.end(); ++it) { - LLPanelPick* panel_pick = new LLPanelPick(FALSE); + LLPanelPick* panel_pick = new LLPanelPick(); panel_pick->setPickID(it->first, mAvatarID); // This will request data from the server when the pick is first @@ -1259,7 +1259,7 @@ void LLPanelAvatarPicks::onClickNew(void* data) } // [/RLVa:KB] LLPanelAvatarPicks* self = (LLPanelAvatarPicks*)data; - LLPanelPick* panel_pick = new LLPanelPick(FALSE); + LLPanelPick* panel_pick = new LLPanelPick(); LLTabContainer* tabs = self->getChild("picks tab"); panel_pick->initNewPick(); @@ -1275,7 +1275,7 @@ void LLPanelAvatarPicks::onClickNew(void* data) void LLPanelAvatarPicks::onClickImport(void* data) { LLPanelAvatarPicks* self = (LLPanelAvatarPicks*)data; - self->mPanelPick = new LLPanelPick(FALSE); + self->mPanelPick = new LLPanelPick(); self->mPanelPick->importNewPick(&LLPanelAvatarPicks::onClickImport_continued, data); } diff --git a/indra/newview/llpanelpick.cpp b/indra/newview/llpanelpick.cpp index f599fc915..2f4261be9 100644 --- a/indra/newview/llpanelpick.cpp +++ b/indra/newview/llpanelpick.cpp @@ -73,9 +73,8 @@ //static std::list LLPanelPick::sAllPanels; -LLPanelPick::LLPanelPick(BOOL top_pick) +LLPanelPick::LLPanelPick() : LLPanel(std::string("Top Picks Panel")), - mTopPick(top_pick), mPickID(), mCreatorID(), mParcelID(), @@ -86,26 +85,12 @@ LLPanelPick::LLPanelPick(BOOL top_pick) mNameEditor(NULL), mDescEditor(NULL), mLocationEditor(NULL), - mTeleportBtn(NULL), - mMapBtn(NULL), - //mLandmarkBtn(NULL), - mSortOrderText(NULL), - mSortOrderEditor(NULL), - mEnabledCheck(NULL), mSetBtn(NULL), mImporting(0) { sAllPanels.push_back(this); - std::string pick_def_file; - if (top_pick) - { - LLUICtrlFactory::getInstance()->buildPanel(this, "panel_top_pick.xml"); - } - else - { - LLUICtrlFactory::getInstance()->buildPanel(this, "panel_avatar_pick.xml"); - } + LLUICtrlFactory::getInstance()->buildPanel(this, "panel_avatar_pick.xml"); } @@ -142,83 +127,52 @@ void LLPanelPick::reset() BOOL LLPanelPick::postBuild() { mSnapshotCtrl = getChild("snapshot_ctrl"); - mSnapshotCtrl->setCommitCallback(onCommitAny); - mSnapshotCtrl->setCallbackUserData(this); + mSnapshotCtrl->setCommitCallback(boost::bind(&LLPanelPick::onCommitAny, this)); mNameEditor = getChild("given_name_editor"); mNameEditor->setCommitOnFocusLost(TRUE); - mNameEditor->setCommitCallback(onCommitAny); - mNameEditor->setCallbackUserData(this); + mNameEditor->setCommitCallback(boost::bind(&LLPanelPick::onCommitAny, this)); mDescEditor = getChild("desc_editor"); mDescEditor->setCommitOnFocusLost(TRUE); - mDescEditor->setCommitCallback(onCommitAny); - mDescEditor->setCallbackUserData(this); + mDescEditor->setCommitCallback(boost::bind(&LLPanelPick::onCommitAny, this)); mDescEditor->setTabsToNextField(TRUE); mLocationEditor = getChild("location_editor"); mSetBtn = getChild( "set_location_btn"); - mSetBtn->setClickedCallback(boost::bind(&LLPanelPick::onClickSet,this)); + mSetBtn->setCommitCallback(boost::bind(&LLPanelPick::onClickSet,this)); - mTeleportBtn = getChild( "pick_teleport_btn"); - mTeleportBtn->setClickedCallback(boost::bind(&LLPanelPick::onClickTeleport,this)); - - mMapBtn = getChild( "pick_map_btn"); - mMapBtn->setClickedCallback(boost::bind(&LLPanelPick::onClickMap,this)); - - mSortOrderText = getChild("sort_order_text"); - - mSortOrderEditor = getChild("sort_order_editor"); - mSortOrderEditor->setPrevalidate(LLLineEditor::prevalidateInt); - mSortOrderEditor->setCommitOnFocusLost(TRUE); - mSortOrderEditor->setCommitCallback(onCommitAny); - mSortOrderEditor->setCallbackUserData(this); - - mEnabledCheck = getChild( "enabled_check"); - mEnabledCheck->setCommitCallback(onCommitAny); - mEnabledCheck->setCallbackUserData(this); + getChild("pick_teleport_btn")->setCommitCallback(boost::bind(&LLPanelPick::onClickTeleport,this)); + getChild("pick_map_btn")->setCommitCallback(boost::bind(&LLPanelPick::onClickMap,this)); return TRUE; } void LLPanelPick::processProperties(void* data, EAvatarProcessorType type) { - if(APT_PICK_INFO != type) - { - return; - } + if (!data || APT_PICK_INFO != type) return; LLPickData* pick_info = static_cast(data); - //llassert_always(pick_info->creator_id != gAgent.getID()); - //llassert_always(mCreatorID != gAgent.getID()); - if(!pick_info - || pick_info->creator_id != mCreatorID - || pick_info->pick_id != mPickID) - { + if (pick_info->creator_id != mCreatorID || pick_info->pick_id != mPickID) return; - } LLAvatarPropertiesProcessor::getInstance()->removeObserver(mCreatorID, this); // "Location text" is actually the owner name, the original // name that owner gave the parcel, and the location. std::string location_text = pick_info->user_name + ", "; - if (!pick_info->original_name.empty()) { - location_text.append(pick_info->original_name); - location_text.append(", "); + location_text += pick_info->original_name + ", "; } - - location_text.append(pick_info->sim_name); - location_text.append(" "); + location_text += pick_info->sim_name + " "; //Fix for location text importing - RK for (panel_list_t::iterator iter = sAllPanels.begin(); iter != sAllPanels.end(); ++iter) { LLPanelPick* self = *iter; - if(!self->mImporting) self->mLocationText = location_text; + if (!self->mImporting) self->mLocationText = location_text; else location_text = self->mLocationText; self->mImporting = false; } @@ -226,7 +180,6 @@ void LLPanelPick::processProperties(void* data, EAvatarProcessorType type) S32 region_x = llround((F32)pick_info->pos_global.mdV[VX]) % REGION_WIDTH_UNITS; S32 region_y = llround((F32)pick_info->pos_global.mdV[VY]) % REGION_WIDTH_UNITS; S32 region_z = llround((F32)pick_info->pos_global.mdV[VZ]); - location_text.append(llformat("(%d, %d, %d)", region_x, region_y, region_z)); mDataReceived = TRUE; @@ -243,24 +196,17 @@ void LLPanelPick::processProperties(void* data, EAvatarProcessorType type) mDescEditor->setText(pick_info->desc); mSnapshotCtrl->setImageAssetID(pick_info->snapshot_id); mLocationEditor->setText(location_text); - mEnabledCheck->set(pick_info->enabled); - - mSortOrderEditor->setText(llformat("%d", pick_info->sort_order)); - } // Fill in some reasonable defaults for a new pick. void LLPanelPick::initNewPick() { mPickID.generate(); - - mCreatorID = gAgent.getID(); - + mCreatorID = gAgentID; mPosGlobal = gAgent.getPositionGlobal(); // Try to fill in the current parcel - LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); - if (parcel) + if (LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel()) { mNameEditor->setText(parcel->getName()); mDescEditor->setText(parcel->getDesc()); @@ -284,21 +230,14 @@ void LLPanelPick::importNewPick_continued(void (*callback)(void*, bool), void* d bool result = false; if (filepicker->hasFilename()) { - std::string file = filepicker->getFilename(); - - llifstream importer(file); + llifstream importer(filepicker->getFilename()); LLSD data; LLSDSerialize::fromXMLDocument(data, importer); - LLSD file_data = data["Data"]; - data = LLSD(); mPickID.generate(); - - mCreatorID = gAgent.getID(); - + mCreatorID = gAgentID; mPosGlobal = LLVector3d(file_data["globalPos"]); - mNameEditor->setText(file_data["name"].asString()); mDescEditor->setText(file_data["desc"].asString()); mSnapshotCtrl->setImageAssetID(file_data["snapshotID"].asUUID()); @@ -325,10 +264,10 @@ void LLPanelPick::exportPick_continued(AIFilePicker* filepicker) if (!filepicker->hasFilename()) return; - std::string destination = filepicker->getFilename(); + LLSD header; + header["Version"] = 2; LLSD datas; - datas["name"] = mNameEditor->getText(); datas["desc"] = mDescEditor->getText(); datas["parcelID"] = mParcelID; @@ -337,16 +276,12 @@ void LLPanelPick::exportPick_continued(AIFilePicker* filepicker) datas["locationText"] = mLocationText; LLSD file; - LLSD header; - header["Version"] = 2; file["Header"] = header; - std::string grid_uri = gHippoGridManager->getConnectedGrid()->getLoginUri(); - //LLStringUtil::toLower(uris[0]); - file["Grid"] = grid_uri; + file["Grid"] = gHippoGridManager->getConnectedGrid()->getLoginUri(); file["Data"] = datas; // Create a file stream and write to it - llofstream export_file(destination); + llofstream export_file(filepicker->getFilename()); LLSDSerialize::toPrettyXML(file, export_file); // Open the file save dialog export_file.close(); @@ -369,15 +304,8 @@ void LLPanelPick::markForServerRequest() } -std::string LLPanelPick::getPickName() -{ - return mNameEditor->getText(); -} - - void LLPanelPick::sendPickInfoRequest() { - //llassert_always(mCreatorID != gAgent.getID()); LLAvatarPropertiesProcessor::getInstance()->addObserver(mCreatorID, this); LLAvatarPropertiesProcessor::getInstance()->sendPickInfoRequest(mCreatorID, mPickID); @@ -396,24 +324,18 @@ void LLPanelPick::sendPickInfoUpdate() mPickID.generate(); } - pick_data.agent_id = gAgent.getID(); - pick_data.session_id = gAgent.getSessionID(); + pick_data.agent_id = gAgentID; + pick_data.session_id = gAgentSessionID; pick_data.pick_id = mPickID; - pick_data.creator_id = gAgent.getID(); - - //legacy var need to be deleted - pick_data.top_pick = mTopPick; + pick_data.creator_id = gAgentID; + pick_data.top_pick = false; //legacy var need to be deleted pick_data.parcel_id = mParcelID; pick_data.name = mNameEditor->getText(); pick_data.desc = mDescEditor->getText(); pick_data.snapshot_id = mSnapshotCtrl->getImageAssetID(); pick_data.pos_global = mPosGlobal; - if(mTopPick) - pick_data.sort_order = atoi(mSortOrderEditor->getText().c_str()); - else - pick_data.sort_order = 0; - - pick_data.enabled = mEnabledCheck->get(); + pick_data.sort_order = 0; + pick_data.enabled = true; LLAvatarPropertiesProcessor::getInstance()->sendPickInfoUpdate(&pick_data); } @@ -421,106 +343,49 @@ void LLPanelPick::sendPickInfoUpdate() void LLPanelPick::draw() -{ - refresh(); - - LLPanel::draw(); -} - - -void LLPanelPick::refresh() { if (!mDataRequested) { sendPickInfoRequest(); } - // Check for god mode - BOOL godlike = gAgent.isGodlike(); - BOOL is_self = (gAgent.getID() == mCreatorID); - // Set button visibility/enablement appropriately - if (mTopPick) - { - mSnapshotCtrl->setEnabled(godlike); - mNameEditor->setEnabled(godlike); - mDescEditor->setEnabled(godlike); - - mSortOrderText->setVisible(godlike); - - mSortOrderEditor->setVisible(godlike); - mSortOrderEditor->setEnabled(godlike); - - mEnabledCheck->setVisible(godlike); - mEnabledCheck->setEnabled(godlike); - - mSetBtn->setVisible(godlike); - //mSetBtn->setEnabled(godlike); + bool is_self = gAgentID == mCreatorID; + mSnapshotCtrl->setEnabled(is_self); + mNameEditor->setEnabled(is_self); + mDescEditor->setEnabled(is_self); + mSetBtn->setVisible(is_self); + //mSetBtn->setEnabled(is_self); // [RLVa:KB] - Checked: 2009-07-04 (RLVa-1.0.0a) - mSetBtn->setEnabled(godlike && (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) ); -// [/RLVa:KB] - } - - - - else - { - mSnapshotCtrl->setEnabled(is_self); - mNameEditor->setEnabled(is_self); - mDescEditor->setEnabled(is_self); - - mSortOrderText->setVisible(FALSE); - - mSortOrderEditor->setVisible(FALSE); - mSortOrderEditor->setEnabled(FALSE); - - mEnabledCheck->setVisible(FALSE); - mEnabledCheck->setEnabled(FALSE); - - mSetBtn->setVisible(is_self); - //mSetBtn->setEnabled(is_self); -// [RLVa:KB] - Checked: 2009-07-04 (RLVa-1.0.0a) - mSetBtn->setEnabled(is_self && (!gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) ); + mSetBtn->setEnabled(is_self && !gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)); // [/RLVa] - } + + LLPanel::draw(); } - - - - -// static -void LLPanelPick::onClickTeleport(void* data) +void LLPanelPick::onClickTeleport() { - LLPanelPick* self = (LLPanelPick*)data; - - if (!self->mPosGlobal.isExactlyZero()) + if (!mPosGlobal.isExactlyZero()) { - gAgent.teleportViaLocation(self->mPosGlobal); - gFloaterWorldMap->trackLocation(self->mPosGlobal); + gAgent.teleportViaLocation(mPosGlobal); + gFloaterWorldMap->trackLocation(mPosGlobal); } } - -// static -void LLPanelPick::onClickMap(void* data) +void LLPanelPick::onClickMap() { - LLPanelPick* self = (LLPanelPick*)data; - gFloaterWorldMap->trackLocation(self->mPosGlobal); + gFloaterWorldMap->trackLocation(mPosGlobal); LLFloaterWorldMap::show(true); } -// static /* -void LLPanelPick::onClickLandmark(void* data) +void LLPanelPick::onClickLandmark() { - LLPanelPick* self = (LLPanelPick*)data; - create_landmark(self->mNameEditor->getText(), "", self->mPosGlobal); + create_landmark(mNameEditor->getText(), "", mPosGlobal); } */ -// static -void LLPanelPick::onClickSet(void* data) +void LLPanelPick::onClickSet() { // [RLVa:KB] - Checked: 2009-07-04 (RLVa-1.0.0a) if (gRlvHandler.hasBehaviour(RLV_BHVR_SHOWLOC)) @@ -528,63 +393,41 @@ void LLPanelPick::onClickSet(void* data) return; } // [/RLVa:KB] - LLPanelPick* self = (LLPanelPick*)data; // Save location for later. - self->mPosGlobal = gAgent.getPositionGlobal(); + mPosGlobal = gAgent.getPositionGlobal(); - std::string location_text; - location_text.assign("(will update after save)"); - location_text.append(", "); + std::string location_text("(will update after save), " + mSimName); - S32 region_x = llround((F32)self->mPosGlobal.mdV[VX]) % REGION_WIDTH_UNITS; - S32 region_y = llround((F32)self->mPosGlobal.mdV[VY]) % REGION_WIDTH_UNITS; - S32 region_z = llround((F32)self->mPosGlobal.mdV[VZ]); - - location_text.append(self->mSimName); + S32 region_x = llround((F32)mPosGlobal.mdV[VX]) % REGION_WIDTH_UNITS; + S32 region_y = llround((F32)mPosGlobal.mdV[VY]) % REGION_WIDTH_UNITS; + S32 region_z = llround((F32)mPosGlobal.mdV[VZ]); location_text.append(llformat(" (%d, %d, %d)", region_x, region_y, region_z)); // if sim name in pick is different from current sim name // make sure it's clear that all that's being changed // is the location and nothing else - if ( gAgent.getRegion ()->getName () != self->mSimName ) + if (gAgent.getRegion()->getName() != mSimName) { LLNotificationsUtil::add("SetPickLocation"); - }; + } - self->mLocationEditor->setText(location_text); + mLocationEditor->setText(location_text); - onCommitAny(NULL, data); + onCommitAny(); } - -// static -void LLPanelPick::onCommitAny(LLUICtrl* ctrl, void* data) +void LLPanelPick::onCommitAny() { - LLPanelPick* self = (LLPanelPick*)data; - - if(self->mCreatorID != gAgent.getID()) - return; + if (mCreatorID != gAgentID) return; // have we received up to date data for this pick? - if (self->mDataReceived) + if (mDataReceived) { - self->sendPickInfoUpdate(); - - // Big hack - assume that top picks are always in a browser, - // and non-top-picks are always in a tab container. - /*if (self->mTopPick) + sendPickInfoUpdate(); + if (LLTabContainer* tab = dynamic_cast(getParent())) { - LLPanelDirPicks* panel = (LLPanelDirPicks*)self->getParent(); - panel->renamePick(self->mPickID, self->mNameEditor->getText()); + tab->setCurrentTabName(mNameEditor->getText()); } - else - {*/ - LLTabContainer* tab = (LLTabContainer*)self->getParent(); - if (tab) - { - if(tab) tab->setCurrentTabName(self->mNameEditor->getText()); - } - //} } } diff --git a/indra/newview/llpanelpick.h b/indra/newview/llpanelpick.h index 84f41b8da..be8fa660a 100644 --- a/indra/newview/llpanelpick.h +++ b/indra/newview/llpanelpick.h @@ -30,43 +30,32 @@ * $/LicenseInfo$ */ -// Display of a "Top Pick" used both for the global top picks in the -// Find directory, and also for each individual user's picks in their -// profile. +// Display of each individual user's picks in their profile. #ifndef LL_LLPANELPICK_H #define LL_LLPANELPICK_H #include "llpanel.h" -#include "v3dmath.h" -#include "lluuid.h" #include "llavatarpropertiesprocessor.h" class LLButton; -class LLCheckBoxCtrl; -class LLIconCtrl; class LLLineEditor; class LLTextBox; class LLTextEditor; class LLTextureCtrl; -class LLUICtrl; -class LLMessageSystem; class AIFilePicker; class LLPanelPick : public LLPanel, public LLAvatarPropertiesObserver { public: - LLPanelPick(BOOL top_pick); + LLPanelPick(); /*virtual*/ ~LLPanelPick(); void reset(); /*virtual*/ BOOL postBuild(); - /*virtual*/ void draw(); - /*virtual*/ void refresh(); - /*virtual*/ void processProperties(void* data, EAvatarProcessorType type); // Setup a new pick, including creating an id, giving a sane @@ -87,7 +76,7 @@ public: // from the server next time it is drawn. void markForServerRequest(); - std::string getPickName(); + const std::string& getPickName() const { return mNameEditor->getText(); } const LLUUID& getPickID() const { return mPickID; } const LLUUID& getPickCreatorID() const { return mCreatorID; } @@ -95,26 +84,24 @@ public: void sendPickInfoUpdate(); protected: - static void onClickTeleport(void* data); - static void onClickMap(void* data); - //static void onClickLandmark(void* data); - static void onClickSet(void* data); + void onClickTeleport(); + void onClickMap(); + //void onClickLandmark(); + void onClickSet(); - static void onCommitAny(LLUICtrl* ctrl, void* data); + void onCommitAny(); -protected: //Pick import and export - RK - BOOL mImporting; + bool mImporting; std::string mLocationText; - BOOL mTopPick; LLUUID mPickID; LLUUID mCreatorID; LLUUID mParcelID; // Data will be requested on first draw - BOOL mDataRequested; - BOOL mDataReceived; + bool mDataRequested; + bool mDataReceived; std::string mSimName; LLVector3d mPosGlobal; @@ -124,13 +111,8 @@ protected: LLTextEditor* mDescEditor; LLLineEditor* mLocationEditor; - LLButton* mTeleportBtn; - LLButton* mMapBtn; - - LLTextBox* mSortOrderText; - LLLineEditor* mSortOrderEditor; - LLCheckBoxCtrl* mEnabledCheck; - LLButton* mSetBtn; + LLButton* mTeleportBtn; + LLButton* mSetBtn; typedef std::list panel_list_t; static panel_list_t sAllPanels; diff --git a/indra/newview/skins/default/xui/en-us/panel_avatar_pick.xml b/indra/newview/skins/default/xui/en-us/panel_avatar_pick.xml index b43b2718d..2739e0f06 100644 --- a/indra/newview/skins/default/xui/en-us/panel_avatar_pick.xml +++ b/indra/newview/skins/default/xui/en-us/panel_avatar_pick.xml @@ -18,12 +18,4 @@ name="pick_teleport_btn" width="70" />