From 997fb0cbf21cc6b2f2ff8c8381de488eafff4c8d Mon Sep 17 00:00:00 2001 From: Aimee Trescothick Date: Mon, 22 Sep 2008 02:01:57 -0500 Subject: VWR-8430: Usability improvements to the land tools floater. --- linden/doc/contributions.txt | 1 + linden/indra/newview/app_settings/settings.xml | 2 +- linden/indra/newview/llfloatertools.cpp | 44 ++---- linden/indra/newview/llfloatertools.h | 3 +- linden/indra/newview/llpanelland.cpp | 26 +++- linden/indra/newview/llpanelland.h | 3 + linden/indra/newview/lltoolbrush.cpp | 4 +- .../newview/skins/default/xui/en-us/alerts.xml | 13 ++ .../skins/default/xui/en-us/floater_tools.xml | 149 +++++++++++++-------- 9 files changed, 152 insertions(+), 93 deletions(-) (limited to 'linden') diff --git a/linden/doc/contributions.txt b/linden/doc/contributions.txt index 9efcd03..de87457 100644 --- a/linden/doc/contributions.txt +++ b/linden/doc/contributions.txt @@ -14,6 +14,7 @@ Adam Marker Aimee Trescothick VWR-3903 VWR-4083 + VWR-8430 Alejandro Rosenthal VWR-1184 Alissa Sabre diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml index fa0d21e..cdf9fb4 100644 --- a/linden/indra/newview/app_settings/settings.xml +++ b/linden/indra/newview/app_settings/settings.xml @@ -5569,7 +5569,7 @@ Value 0 - RadioLandBrushSize + LandBrushSize Comment Size of land modification brush (0 = small, 1 = medium, 2 = large) diff --git a/linden/indra/newview/llfloatertools.cpp b/linden/indra/newview/llfloatertools.cpp index 8d4d6e2..9ce5d35 100644 --- a/linden/indra/newview/llfloatertools.cpp +++ b/linden/indra/newview/llfloatertools.cpp @@ -106,9 +106,8 @@ void click_popup_rotate_left(void*); void click_popup_rotate_reset(void*); void click_popup_rotate_right(void*); void click_popup_dozer_mode(LLUICtrl *, void *user); -void click_popup_dozer_size(LLUICtrl *, void *user); +void commit_slider_dozer_size(LLUICtrl *, void*); void commit_slider_dozer_force(LLUICtrl *, void*); -void click_dozer_size(LLUICtrl *, void*); void click_apply_to_selection(void*); void commit_radio_zoom(LLUICtrl *, void*); void commit_radio_orbit(LLUICtrl *, void*); @@ -303,14 +302,13 @@ BOOL LLFloaterTools::postBuild() childSetCommitCallback("radio noise",click_popup_dozer_mode, (void*)4); mRadioDozerRevert = getChild("radio revert"); childSetCommitCallback("radio revert",click_popup_dozer_mode, (void*)5); - mComboDozerSize = getChild("combobox brush size"); - childSetCommitCallback("combobox brush size",click_dozer_size, (void*)0); - if(mComboDozerSize) mComboDozerSize->setCurrentByIndex(0); mBtnApplyToSelection = getChild("button apply to selection"); childSetAction("button apply to selection",click_apply_to_selection, (void*)0); - mCheckShowOwners = getChild("checkbox show owners"); - childSetValue("checkbox show owners",gSavedSettings.getBOOL("ShowParcelOwners")); + mSliderDozerSize = getChild("slider brush size"); + childSetCommitCallback("slider brush size", commit_slider_dozer_size, (void*)0); + childSetValue( "slider brush size", gSavedSettings.getS32("LandBrushSize")); + mSliderDozerForce = getChild("slider force"); childSetCommitCallback("slider force",commit_slider_dozer_force, (void*)0); // the setting stores the actual force multiplier, but the slider is logarithmic, so we convert here @@ -391,10 +389,9 @@ LLFloaterTools::LLFloaterTools() mRadioDozerSmooth(NULL), mRadioDozerNoise(NULL), mRadioDozerRevert(NULL), - mComboDozerSize(NULL), + mSliderDozerSize(NULL), + mSliderDozerForce(NULL), mBtnApplyToSelection(NULL), - mCheckShowOwners(NULL), - mTab(NULL), mPanelPermissions(NULL), @@ -702,7 +699,6 @@ void LLFloaterTools::updatePopup(LLCoordGL center, MASK mask) if (mRadioSelectLand) mRadioSelectLand->setVisible( land_visible ); S32 dozer_mode = gSavedSettings.getS32("RadioLandBrushAction"); - S32 dozer_size = gSavedSettings.getS32("RadioLandBrushSize"); if (mRadioDozerFlatten) { @@ -734,20 +730,16 @@ void LLFloaterTools::updatePopup(LLCoordGL center, MASK mask) mRadioDozerRevert ->set( tool == LLToolBrushLand::getInstance() && dozer_mode == 5); mRadioDozerRevert ->setVisible( land_visible ); } - if (mComboDozerSize) - { - mComboDozerSize ->setCurrentByIndex(dozer_size); - mComboDozerSize ->setVisible( land_visible ); - mComboDozerSize ->setEnabled( tool == LLToolBrushLand::getInstance() ); - } if (mBtnApplyToSelection) { mBtnApplyToSelection->setVisible( land_visible ); mBtnApplyToSelection->setEnabled( land_visible && !LLViewerParcelMgr::getInstance()->selectionEmpty() && tool != LLToolSelectLand::getInstance()); } - if (mCheckShowOwners) + if (mSliderDozerSize) { - mCheckShowOwners ->setVisible( land_visible ); + mSliderDozerSize ->setVisible( land_visible ); + childSetVisible("Brush:", land_visible); + childSetVisible("Brush Size:", land_visible); } if (mSliderDozerForce) { @@ -933,23 +925,15 @@ void click_popup_rotate_right(void*) void click_popup_dozer_mode(LLUICtrl *, void *user) { - S32 show_owners = gSavedSettings.getBOOL("ShowParcelOwners"); S32 mode = (S32)(intptr_t) user; gFloaterTools->setEditTool( LLToolBrushLand::getInstance() ); gSavedSettings.setS32("RadioLandBrushAction", mode); - gSavedSettings.setBOOL("ShowParcelOwners", show_owners); -} - -void click_popup_dozer_size(LLUICtrl *, void *user) -{ - S32 size = (S32)(intptr_t) user; - gSavedSettings.setS32("RadioLandBrushSize", size); } -void click_dozer_size(LLUICtrl *ctrl, void *user) +void commit_slider_dozer_size(LLUICtrl *ctrl, void*) { - S32 size = ((LLComboBox*) ctrl)->getCurrentIndex(); - gSavedSettings.setS32("RadioLandBrushSize", size); + S32 size = (S32)ctrl->getValue().asInteger(); + gSavedSettings.setS32("LandBrushSize", size); } void commit_slider_dozer_force(LLUICtrl *ctrl, void*) diff --git a/linden/indra/newview/llfloatertools.h b/linden/indra/newview/llfloatertools.h index a75aa87..3d8a144 100644 --- a/linden/indra/newview/llfloatertools.h +++ b/linden/indra/newview/llfloatertools.h @@ -168,11 +168,10 @@ public: LLCheckBoxCtrl *mRadioDozerSmooth; LLCheckBoxCtrl *mRadioDozerNoise; LLCheckBoxCtrl *mRadioDozerRevert; + LLSlider *mSliderDozerSize; LLSlider *mSliderDozerForce; - LLComboBox *mComboDozerSize; LLButton *mBtnApplyToSelection; - LLCheckBoxCtrl *mCheckShowOwners; std::vector mButtons;//[ 15 ]; diff --git a/linden/indra/newview/llpanelland.cpp b/linden/indra/newview/llpanelland.cpp index be05703..1a7892d 100644 --- a/linden/indra/newview/llpanelland.cpp +++ b/linden/indra/newview/llpanelland.cpp @@ -37,10 +37,13 @@ #include "llagent.h" #include "llbutton.h" +#include "llcheckboxctrl.h" #include "llfloaterland.h" #include "lltextbox.h" +#include "llviewercontrol.h" #include "llviewerparcelmgr.h" #include "llviewerregion.h" +#include "llviewerwindow.h" #include "roles_constants.h" #include "lluictrlfactory.h" @@ -65,6 +68,10 @@ BOOL LLPanelLandInfo::postBuild() childSetAction("button subdivide land",onClickDivide,this); childSetAction("button join land",onClickJoin,this); childSetAction("button about land",onClickAbout,this); + childSetAction("button show owners help", onShowOwnersHelp, this); + + mCheckShowOwners = getChild("checkbox show owners"); + childSetValue("checkbox show owners", gSavedSettings.getBOOL("ShowParcelOwners")); return TRUE; } @@ -72,7 +79,8 @@ BOOL LLPanelLandInfo::postBuild() // Methods // LLPanelLandInfo::LLPanelLandInfo(const std::string& name) -: LLPanel(name) +: LLPanel(name), + mCheckShowOwners(NULL) { if (!sInstance) { @@ -255,3 +263,19 @@ void LLPanelLandInfo::onClickAbout(void*) LLFloaterLand::showInstance(); } + +void LLPanelLandInfo::onShowOwnersHelp(void* user_data) +{ + LLPanelLandInfo* self = static_cast(user_data); + + const char* xml_alert = "ShowOwnersHelp"; + LLAlertDialog* dialogp = gViewerWindow->alertXml(xml_alert); + if (dialogp) + { + LLFloater* root_floater = gFloaterView->getParentFloater(self); + if (root_floater) + { + root_floater->addDependentFloater(dialogp); + } + } +} diff --git a/linden/indra/newview/llpanelland.h b/linden/indra/newview/llpanelland.h index c83bf2c..c44cb9d 100644 --- a/linden/indra/newview/llpanelland.h +++ b/linden/indra/newview/llpanelland.h @@ -50,6 +50,8 @@ public: void refresh(); static void refreshAll(); + + LLCheckBoxCtrl *mCheckShowOwners; protected: static void onClickClaim(void*); @@ -57,6 +59,7 @@ protected: static void onClickDivide(void*); static void onClickJoin(void*); static void onClickAbout(void*); + static void onShowOwnersHelp(void*); protected: //LLTextBox* mTextPriceLabel; diff --git a/linden/indra/newview/lltoolbrush.cpp b/linden/indra/newview/lltoolbrush.cpp index fdd7b66..0291eab 100644 --- a/linden/indra/newview/lltoolbrush.cpp +++ b/linden/indra/newview/lltoolbrush.cpp @@ -96,7 +96,7 @@ LLToolBrushLand::LLToolBrushLand() mGotHover(FALSE), mBrushSelected(FALSE) { - mBrushIndex = gSavedSettings.getS32("RadioLandBrushSize"); + mBrushIndex = gSavedSettings.getS32("LandBrushSize"); } void LLToolBrushLand::modifyLandAtPointGlobal(const LLVector3d &pos_global, @@ -447,7 +447,7 @@ void LLToolBrushLand::render() spot.mdV[VX] = floor( spot.mdV[VX] + 0.5 ); spot.mdV[VY] = floor( spot.mdV[VY] + 0.5 ); - mBrushIndex = gSavedSettings.getS32("RadioLandBrushSize"); + mBrushIndex = gSavedSettings.getS32("LandBrushSize"); region_list_t regions; determineAffectedRegions(regions, spot); diff --git a/linden/indra/newview/skins/default/xui/en-us/alerts.xml b/linden/indra/newview/skins/default/xui/en-us/alerts.xml index c7ec62f..4bf5ff1 100644 --- a/linden/indra/newview/skins/default/xui/en-us/alerts.xml +++ b/linden/indra/newview/skins/default/xui/en-us/alerts.xml @@ -1996,6 +1996,19 @@ Join land? Cancel + + + If this box is checked, land parcels will be +overlaid with a color indicating their status. + +Red: Land owned by others. +Green: Your land. +Aqua: Land owned by a group that you are a member of. +Yellow: For sale. +Purple: Land in the auction system. +Grey: Rare public land. + + This notecard needs to be saved before the item can be copied or viewed. Save notecard? diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml b/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml index 3ae37ea..1817d8c 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_tools.xml @@ -245,55 +245,65 @@ - - - - - - - - - - Small - - - Medium - - - Large - - -