diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index c3243b7dae..7aafed1f42 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -26379,5 +26379,271 @@ Change of this parameter will affect the layout of buttons in notification toast
Value
0
+
+ FSAreaSearch_ExcludeAttachments
+
+ FSAreaSearch_ExcludeChildPrims
+
+ FSAreaSearch_ExcludeNeighborRegions
+
+ FSAreaSearch_ExcludePhysical
+
+ FSAreaSearch_ExcludeReflectionProbes
+
+ FSAreaSearch_ExcludeTemporary
+
+ FSAreaSearch_FilterDistance
+
+ FSAreaSearch_FilterForSale
+
+ FSAreaSearch_MaximumDistance
+
+ FSAreaSearch_MaximumPrice
+
+ FSAreaSearch_MinimumDistance
+
+ FSAreaSearch_MinimumPrice
+
+ FSAreaSearch_OnlyAttachments
+
+ FSAreaSearch_OnlyCopiable
+
+ FSAreaSearch_OnlyCurrentParcel
+
+ FSAreaSearch_OnlyForSale
+
+ FSAreaSearch_OnlyLocked
+
+ FSAreaSearch_OnlyMOAP
+
+ FSAreaSearch_OnlyModifiable
+
+ FSAreaSearch_OnlyPhantom
+
+ FSAreaSearch_OnlyPhysical
+
+ FSAreaSearch_OnlyReflectionProbes
+
+ FSAreaSearch_OnlyTemporary
+
+ FSAreaSearch_OnlyTransferable
+
+
diff --git a/indra/newview/fsareasearch.cpp b/indra/newview/fsareasearch.cpp
index ef4efc84fc..41d18a00f5 100644
--- a/indra/newview/fsareasearch.cpp
+++ b/indra/newview/fsareasearch.cpp
@@ -2188,89 +2188,109 @@ FSPanelAreaSearchFilter::FSPanelAreaSearchFilter(FSAreaSearch* pointer)
bool FSPanelAreaSearchFilter::postBuild()
{
mCheckboxLocked = getChild("filter_locked");
+ mCheckboxLocked->set(gSavedSettings.getBOOL("FSAreaSearch_OnlyLocked"));
mCheckboxLocked->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
mCheckboxPhysical = getChild("filter_physical");
- mCheckboxPhysical->setEnabled(false);
+ mCheckboxPhysical->set(gSavedSettings.getBOOL("FSAreaSearch_OnlyPhysical"));
mCheckboxPhysical->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
mCheckboxTemporary = getChild("filter_temporary");
- mCheckboxTemporary->setEnabled(false);
+ mCheckboxTemporary->set(gSavedSettings.getBOOL("FSAreaSearch_OnlyTemporary"));
mCheckboxTemporary->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
mCheckboxPhantom = getChild("filter_phantom");
+ mCheckboxPhantom->set(gSavedSettings.getBOOL("FSAreaSearch_OnlyPhantom"));
mCheckboxPhantom->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
mCheckboxForSale = getChild("filter_for_sale");
+ mCheckboxForSale->set(gSavedSettings.getBOOL("FSAreaSearch_FilterForSale"));
mCheckboxForSale->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
mCheckboxAttachment = getChild("filter_attachment");
- mCheckboxAttachment->setEnabled(false);
+ mCheckboxAttachment->set(gSavedSettings.getBOOL("FSAreaSearch_OnlyAttachments"));
mCheckboxAttachment->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
mSpinForSaleMinValue= getChild("min_price");
+ mSpinForSaleMinValue->set(gSavedSettings.getS32("FSAreaSearch_MinimumPrice"));
mSpinForSaleMinValue->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitSpin, this));
mSpinForSaleMaxValue= getChild("max_price");
+ mSpinForSaleMaxValue->set(gSavedSettings.getS32("FSAreaSearch_MaximumPrice"));
mSpinForSaleMaxValue->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitSpin, this));
mComboClickAction = getChild("click_action");
+ mComboClickAction->setValue(gSavedSettings.getS32("FSAreaSearch_ClickAction"));
mComboClickAction->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCombo, this));
mCheckboxExcludeAttachment = getChild("exclude_attachment");
- mCheckboxExcludeAttachment->set(true);
+ mCheckboxExcludeAttachment->set(gSavedSettings.getBOOL("FSAreaSearch_ExcludeAttachments"));
mCheckboxExcludeAttachment->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
mCheckboxExcludePhysics = getChild("exclude_physical");
- mCheckboxExcludePhysics->set(true);
+ mCheckboxExcludePhysics->set(gSavedSettings.getBOOL("FSAreaSearch_ExcludePhysical"));
mCheckboxExcludePhysics->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
mCheckboxExcludetemporary = getChild("exclude_temporary");
- mCheckboxExcludetemporary->set(true);
+ mCheckboxExcludetemporary->set(gSavedSettings.getBOOL("FSAreaSearch_ExcludeTemporary"));
mCheckboxExcludetemporary->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
mCheckboxExcludeReflectionProbes = getChild("exclude_reflection_probes");
- mCheckboxExcludeReflectionProbes->set(false);
+ mCheckboxExcludeReflectionProbes->set(gSavedSettings.getBOOL("FSAreaSearch_ExcludeReflectionProbes"));
mCheckboxExcludeReflectionProbes->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
mCheckboxExcludeChildPrim = getChild("exclude_childprim");
- mCheckboxExcludeChildPrim->set(true);
+ mCheckboxExcludeChildPrim->set(gSavedSettings.getBOOL("FSAreaSearch_ExcludeChildPrims"));
mCheckboxExcludeChildPrim->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
mCheckboxExcludeNeighborRegions = getChild("exclude_neighbor_region");
- mCheckboxExcludeNeighborRegions->set(true);
+ mCheckboxExcludeNeighborRegions->set(gSavedSettings.getBOOL("FSAreaSearch_ExcludeNeighborRegions"));
mCheckboxExcludeNeighborRegions->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
mButtonApply = getChild("apply");
mButtonApply->setClickedCallback(boost::bind(&FSAreaSearch::onButtonClickedSearch, mFSAreaSearch));
+ mButtonApply = getChild("save_as_default");
+ mButtonApply->setClickedCallback(boost::bind(&FSPanelAreaSearchFilter::onButtonClickedSaveAsDefault, this));
+
mCheckboxDistance = getChild("filter_distance");
+ mCheckboxExcludeAttachment->set(gSavedSettings.getBOOL("FSAreaSearch_FilterDistance"));
mCheckboxDistance->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
mSpinDistanceMinValue = getChild("min_distance");
+ mCheckboxDistance->set(gSavedSettings.getS32("FSAreaSearch_MinimumDistance"));
mSpinDistanceMinValue->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitSpin, this));
mSpinDistanceMaxValue= getChild("max_distance");
+ mSpinDistanceMaxValue->set(gSavedSettings.getS32("FSAreaSearch_MaximumDistance"));
mSpinDistanceMaxValue->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitSpin, this));
mCheckboxMoaP = getChild("filter_moap");
+ mCheckboxMoaP->set(gSavedSettings.getBOOL("FSAreaSearch_OnlyMOAP"));
mCheckboxMoaP->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
mCheckboxReflectionProbe = getChild("filter_reflection_probe");
+ mCheckboxReflectionProbe->set(gSavedSettings.getBOOL("FSAreaSearch_OnlyReflectionProbes"));
mCheckboxReflectionProbe->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
mCheckboxPermCopy = getChild("filter_perm_copy");
+ mCheckboxPermCopy->set(gSavedSettings.getBOOL("FSAreaSearch_OnlyCopiable"));
mCheckboxPermCopy->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
mCheckboxPermModify = getChild("filter_perm_modify");
+ mCheckboxPermModify->set(gSavedSettings.getBOOL("FSAreaSearch_OnlyModifiable"));
mCheckboxPermModify->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
mCheckboxPermTransfer = getChild("filter_perm_transfer");
+ mCheckboxPermModify->set(gSavedSettings.getBOOL("FSAreaSearch_OnlyTransferable"));
mCheckboxPermTransfer->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
mCheckboxAgentParcelOnly = getChild("filter_agent_parcel_only");
+ mCheckboxAgentParcelOnly->set(gSavedSettings.getBOOL("FSAreaSearch_OnlyCurrentParcel"));
mCheckboxAgentParcelOnly->setCommitCallback(boost::bind(&FSPanelAreaSearchFilter::onCommitCheckbox, this));
+ onCommitCheckbox();
+
return LLPanel::postBuild();
}
@@ -2278,8 +2298,6 @@ void FSPanelAreaSearchFilter::onCommitCheckbox()
{
mFSAreaSearch->setFilterLocked(mCheckboxLocked->get());
mFSAreaSearch->setFilterPhantom(mCheckboxPhantom->get());
- mFSAreaSearch->setFilterForSale(mCheckboxForSale->get());
- mFSAreaSearch->setFilterDistance(mCheckboxDistance->get());
mFSAreaSearch->setFilterMoaP(mCheckboxMoaP->get());
mFSAreaSearch->setFilterReflectionProbe(mCheckboxReflectionProbe->get());
@@ -2338,6 +2356,14 @@ void FSPanelAreaSearchFilter::onCommitCheckbox()
}
mFSAreaSearch->setFilterAttachment(mCheckboxAttachment->get());
+ mFSAreaSearch->setFilterForSale(mCheckboxForSale->get());
+ mSpinForSaleMinValue->setEnabled(mCheckboxForSale->get());
+ mSpinForSaleMaxValue->setEnabled(mCheckboxForSale->get());
+
+ mFSAreaSearch->setFilterDistance(mCheckboxDistance->get());
+ mSpinDistanceMinValue->setEnabled(mCheckboxDistance->get());
+ mSpinDistanceMaxValue->setEnabled(mCheckboxDistance->get());
+
mFSAreaSearch->setExcludeChildPrims(mCheckboxExcludeChildPrim->get());
mFSAreaSearch->setExcludeNeighborRegions(mCheckboxExcludeNeighborRegions->get());
@@ -2372,6 +2398,34 @@ void FSPanelAreaSearchFilter::onCommitCombo()
}
}
+void FSPanelAreaSearchFilter::onButtonClickedSaveAsDefault()
+{
+ gSavedSettings.setBOOL("FSAreaSearch_OnlyLocked", mCheckboxLocked->get());
+ gSavedSettings.setBOOL("FSAreaSearch_OnlyPhysical", mCheckboxPhysical->get());
+ gSavedSettings.setBOOL("FSAreaSearch_OnlyTemporary", mCheckboxTemporary->get());
+ gSavedSettings.setBOOL("FSAreaSearch_OnlyPhantom", mCheckboxPhantom->get());
+ gSavedSettings.setBOOL("FSAreaSearch_FilterForSale", mCheckboxForSale->get());
+ gSavedSettings.setBOOL("FSAreaSearch_OnlyAttachments", mCheckboxAttachment->get());
+ gSavedSettings.setS32("FSAreaSearch_MinimumPrice", mSpinForSaleMinValue->get());
+ gSavedSettings.setS32("FSAreaSearch_MaximumPrice", mSpinForSaleMaxValue->get());
+ gSavedSettings.setS32("FSAreaSearch_ClickAction", mComboClickAction->getValue());
+ gSavedSettings.setBOOL("FSAreaSearch_ExcludeAttachments", mCheckboxExcludeAttachment->get());
+ gSavedSettings.setBOOL("FSAreaSearch_ExcludePhysical", mCheckboxExcludePhysics->get());
+ gSavedSettings.setBOOL("FSAreaSearch_ExcludeTemporary", mCheckboxExcludetemporary->get());
+ gSavedSettings.setBOOL("FSAreaSearch_ExcludeReflectionProbes", mCheckboxExcludeReflectionProbes->get());
+ gSavedSettings.setBOOL("FSAreaSearch_ExcludeChildPrims", mCheckboxExcludeChildPrim->get());
+ gSavedSettings.setBOOL("FSAreaSearch_ExcludeNeighborRegions", mCheckboxExcludeNeighborRegions->get());
+ gSavedSettings.setBOOL("FSAreaSearch_FilterDistance", mCheckboxExcludeAttachment->get());
+ gSavedSettings.setS32("FSAreaSearch_MinimumDistance", mCheckboxDistance->get());
+ gSavedSettings.setS32("FSAreaSearch_MaximumDistance", mSpinDistanceMaxValue->get());
+ gSavedSettings.setBOOL("FSAreaSearch_OnlyMOAP", mCheckboxMoaP->get());
+ gSavedSettings.setBOOL("FSAreaSearch_OnlyReflectionProbes", mCheckboxReflectionProbe->get());
+ gSavedSettings.setBOOL("FSAreaSearch_OnlyCopiable", mCheckboxPermCopy->get());
+ gSavedSettings.setBOOL("FSAreaSearch_OnlyModifiable", mCheckboxPermModify->get());
+ gSavedSettings.setBOOL("FSAreaSearch_OnlyTransferable", mCheckboxPermModify->get());
+ gSavedSettings.setBOOL("FSAreaSearch_OnlyCurrentParcel", mCheckboxAgentParcelOnly->get());
+}
+
//---------------------------------------------------------------------------
// Options tab
//---------------------------------------------------------------------------
diff --git a/indra/newview/fsareasearch.h b/indra/newview/fsareasearch.h
index a4bb89c2b0..3ad77fd36e 100644
--- a/indra/newview/fsareasearch.h
+++ b/indra/newview/fsareasearch.h
@@ -378,6 +378,7 @@ private:
void onCommitCheckbox();
void onCommitSpin();
void onCommitCombo();
+ void onButtonClickedSaveAsDefault();
FSAreaSearch* mFSAreaSearch;
LLCheckBoxCtrl* mCheckboxForSale;
diff --git a/indra/newview/skins/default/xui/en/floater_fs_area_search.xml b/indra/newview/skins/default/xui/en/floater_fs_area_search.xml
index 7fb90bee9f..71c8ddd66e 100644
--- a/indra/newview/skins/default/xui/en/floater_fs_area_search.xml
+++ b/indra/newview/skins/default/xui/en/floater_fs_area_search.xml
@@ -612,6 +612,14 @@
left="10"
bottom="-6"
follows="left|bottom"/>
+