diff options
64 files changed, 284 insertions, 298 deletions
diff --git a/indra/llui/llfloater.cpp b/indra/llui/llfloater.cpp index 9a56372e68..39a6855273 100644 --- a/indra/llui/llfloater.cpp +++ b/indra/llui/llfloater.cpp @@ -2754,10 +2754,10 @@ void LLFloater::initFromParams(const LLFloater::Params& p) LLFastTimer::DeclareTimer POST_BUILD("Floater Post Build"); -bool LLFloater::initFloaterXML(LLXMLNodePtr node, LLView *parent, LLXMLNodePtr output_node) +bool LLFloater::initFloaterXML(LLXMLNodePtr node, LLView *parent, const std::string& filename, LLXMLNodePtr output_node) { Params params(LLUICtrlFactory::getDefaultParams<LLFloater>()); - LLXUIParser::instance().readXUI(node, params); // *TODO: Error checking + LLXUIParser::instance().readXUI(node, params, filename); // *TODO: Error checking if (output_node) { diff --git a/indra/llui/llfloater.h b/indra/llui/llfloater.h index 654164ddc0..3ea035777c 100644 --- a/indra/llui/llfloater.h +++ b/indra/llui/llfloater.h @@ -149,7 +149,7 @@ public: static void setupParamsForExport(Params& p, LLView* parent); void initFromParams(const LLFloater::Params& p); - bool initFloaterXML(LLXMLNodePtr node, LLView *parent, LLXMLNodePtr output_node = NULL); + bool initFloaterXML(LLXMLNodePtr node, LLView *parent, const std::string& filename, LLXMLNodePtr output_node = NULL); /*virtual*/ void handleReshape(const LLRect& new_rect, bool by_user = false); /*virtual*/ BOOL canSnapTo(const LLView* other_view); diff --git a/indra/llui/llmenugl.cpp b/indra/llui/llmenugl.cpp index b77126996e..b4a1bcb7c5 100644 --- a/indra/llui/llmenugl.cpp +++ b/indra/llui/llmenugl.cpp @@ -139,6 +139,7 @@ LLMenuItemGL::Params::Params() : shortcut("shortcut"), jump_key("jump_key", KEY_NONE), use_mac_ctrl("use_mac_ctrl", false), + allow_key_repeat("allow_key_repeat", false), rect("rect"), left("left"), top("top"), @@ -160,7 +161,7 @@ LLMenuItemGL::Params::Params() LLMenuItemGL::LLMenuItemGL(const LLMenuItemGL::Params& p) : LLUICtrl(p), mJumpKey(p.jump_key), - mAllowKeyRepeat(FALSE), + mAllowKeyRepeat(p.allow_key_repeat), mHighlight( FALSE ), mGotHover( FALSE ), mBriefItem( FALSE ), diff --git a/indra/llui/llmenugl.h b/indra/llui/llmenugl.h index 6f0f83d4b9..7668f301ea 100644 --- a/indra/llui/llmenugl.h +++ b/indra/llui/llmenugl.h @@ -61,7 +61,8 @@ public: { Optional<std::string> shortcut; Optional<KEY> jump_key; - Optional<bool> use_mac_ctrl; + Optional<bool> use_mac_ctrl, + allow_key_repeat; Ignored rect, left, diff --git a/indra/llui/llpanel.cpp b/indra/llui/llpanel.cpp index 0cd052eefa..9ebdcb87c6 100644 --- a/indra/llui/llpanel.cpp +++ b/indra/llui/llpanel.cpp @@ -508,16 +508,19 @@ BOOL LLPanel::initPanelXML(LLXMLNodePtr node, LLView *parent, LLXMLNodePtr outpu if (xml_filename.empty()) { node->getAttributeString("filename", xml_filename); + setXMLFilename(xml_filename); } if (!xml_filename.empty()) { + LLUICtrlFactory::instance().pushFileName(xml_filename); + LLFastTimer timer(FTM_EXTERNAL_PANEL_LOAD); if (output_node) { //if we are exporting, we want to export the current xml //not the referenced xml - LLXUIParser::instance().readXUI(node, params, xml_filename); + LLXUIParser::instance().readXUI(node, params, LLUICtrlFactory::getInstance()->getCurFileName()); Params output_params(params); setupParamsForExport(output_params, parent); output_node->setName(node->getName()->mString); @@ -533,13 +536,13 @@ BOOL LLPanel::initPanelXML(LLXMLNodePtr node, LLView *parent, LLXMLNodePtr outpu return FALSE; } - LLXUIParser::instance().readXUI(referenced_xml, params, xml_filename); + LLXUIParser::instance().readXUI(referenced_xml, params, LLUICtrlFactory::getInstance()->getCurFileName()); // add children using dimensions from referenced xml for consistent layout setShape(params.rect); LLUICtrlFactory::createChildren(this, referenced_xml, child_registry_t::instance()); - setXMLFilename(xml_filename); + LLUICtrlFactory::instance().popFileName(); } // ask LLUICtrlFactory for filename, since xml_filename might be empty diff --git a/indra/llui/llui.cpp b/indra/llui/llui.cpp index bf12384a28..dff1cb93e7 100644 --- a/indra/llui/llui.cpp +++ b/indra/llui/llui.cpp @@ -1752,6 +1752,33 @@ std::string LLUI::getLanguage() return language; } +struct SubDir : public LLInitParam::Block<SubDir> +{ + Mandatory<std::string> value; + + SubDir() + : value("value") + {} +}; + +struct Directory : public LLInitParam::Block<Directory> +{ + Multiple<SubDir, AtLeast<1> > subdirs; + + Directory() + : subdirs("subdir") + {} +}; + +struct Paths : public LLInitParam::Block<Paths> +{ + Multiple<Directory, AtLeast<1> > directories; + + Paths() + : directories("directory") + {} +}; + //static void LLUI::setupPaths() { @@ -1759,21 +1786,36 @@ void LLUI::setupPaths() LLXMLNodePtr root; BOOL success = LLXMLNode::parseFile(filename, root, NULL); + Paths paths; + LLXUIParser::instance().readXUI(root, paths, filename); + sXUIPaths.clear(); - if (success) + if (success && paths.validateBlock()) { LLStringUtil::format_map_t path_args; path_args["[LANGUAGE]"] = LLUI::getLanguage(); - for (LLXMLNodePtr path = root->getFirstChild(); path.notNull(); path = path->getNextSibling()) + for (LLInitParam::ParamIterator<Directory>::const_iterator it = paths.directories().begin(), + end_it = paths.directories().end(); + it != end_it; + ++it) { - std::string path_val_ui(path->getValue()); + std::string path_val_ui; + for (LLInitParam::ParamIterator<SubDir>::const_iterator subdir_it = it->subdirs().begin(), + subdir_end_it = it->subdirs().end(); + subdir_it != subdir_end_it;) + { + path_val_ui += subdir_it->value(); + if (++subdir_it != subdir_end_it) + path_val_ui += gDirUtilp->getDirDelimiter(); + } LLStringUtil::format(path_val_ui, path_args); if (std::find(sXUIPaths.begin(), sXUIPaths.end(), path_val_ui) == sXUIPaths.end()) { sXUIPaths.push_back(path_val_ui); } + } } else // parsing failed diff --git a/indra/llui/lluictrlfactory.cpp b/indra/llui/lluictrlfactory.cpp index 930dadc377..6b337e0d74 100644 --- a/indra/llui/lluictrlfactory.cpp +++ b/indra/llui/lluictrlfactory.cpp @@ -101,7 +101,9 @@ void LLUICtrlFactory::loadWidgetTemplate(const std::string& widget_tag, LLInitPa if (LLUICtrlFactory::getLayeredXMLNode(filename, root_node)) { + LLUICtrlFactory::instance().pushFileName(filename); LLXUIParser::instance().readXUI(root_node, block, filename); + LLUICtrlFactory::instance().popFileName(); } } @@ -211,7 +213,7 @@ bool LLUICtrlFactory::buildFloater(LLFloater* floaterp, const std::string& filen bool res = true; lldebugs << "Building floater " << filename << llendl; - mFileNames.push_back(gDirUtilp->findSkinnedFilename(LLUI::getSkinPath(), filename)); + pushFileName(filename); { if (!floaterp->getFactoryMap().empty()) { @@ -222,7 +224,7 @@ bool LLUICtrlFactory::buildFloater(LLFloater* floaterp, const std::string& filen floaterp->getCommitCallbackRegistrar().pushScope(); floaterp->getEnableCallbackRegistrar().pushScope(); - res = floaterp->initFloaterXML(root, floaterp->getParent(), output_node); + res = floaterp->initFloaterXML(root, floaterp->getParent(), filename, output_node); floaterp->setXMLFilename(filename); @@ -234,7 +236,7 @@ bool LLUICtrlFactory::buildFloater(LLFloater* floaterp, const std::string& filen mFactoryStack.pop_front(); } } - mFileNames.pop_back(); + popFileName(); return res; } @@ -283,7 +285,7 @@ BOOL LLUICtrlFactory::buildPanel(LLPanel* panelp, const std::string& filename, L lldebugs << "Building panel " << filename << llendl; - mFileNames.push_back(gDirUtilp->findSkinnedFilename(LLUI::getSkinPath(), filename)); + pushFileName(filename); { if (!panelp->getFactoryMap().empty()) { @@ -306,7 +308,7 @@ BOOL LLUICtrlFactory::buildPanel(LLPanel* panelp, const std::string& filename, L mFactoryStack.pop_front(); } } - mFileNames.pop_back(); + popFileName(); return didPost; } @@ -364,6 +366,23 @@ LLPanel* LLUICtrlFactory::createFactoryPanel(const std::string& name) return create<LLPanel>(panel_p); } +std::string LLUICtrlFactory::getCurFileName() +{ + return mFileNames.empty() ? "" : gDirUtilp->getWorkingDir() + gDirUtilp->getDirDelimiter() + mFileNames.back(); +} + + +void LLUICtrlFactory::pushFileName(const std::string& name) +{ + mFileNames.push_back(gDirUtilp->findSkinnedFilename(LLUI::getSkinPath(), name)); +} + +void LLUICtrlFactory::popFileName() +{ + mFileNames.pop_back(); +} + + //----------------------------------------------------------------------------- //static diff --git a/indra/llui/lluictrlfactory.h b/indra/llui/lluictrlfactory.h index b1fa6add67..7da96ffce3 100644 --- a/indra/llui/lluictrlfactory.h +++ b/indra/llui/lluictrlfactory.h @@ -170,7 +170,9 @@ public: // Returns 0 on success S32 saveToXML(LLView* viewp, const std::string& filename); - std::string getCurFileName() { return mFileNames.empty() ? "" : mFileNames.back(); } + std::string getCurFileName(); + void pushFileName(const std::string& name); + void popFileName(); static BOOL getAttributeColor(LLXMLNodePtr node, const std::string& name, LLColor4& color); @@ -229,7 +231,7 @@ public: T* widget = NULL; std::string skinned_filename = findSkinnedFilename(filename); - getInstance()->mFileNames.push_back(skinned_filename); + instance().pushFileName(filename); { LLXMLNodePtr root_node; @@ -263,7 +265,7 @@ public: } } fail: - getInstance()->mFileNames.pop_back(); + instance().popFileName(); return widget; } diff --git a/indra/llui/llview.cpp b/indra/llui/llview.cpp index bd56da9121..394ec957d5 100644 --- a/indra/llui/llview.cpp +++ b/indra/llui/llview.cpp @@ -111,6 +111,8 @@ LLView::Params::Params() user_resize("user_resize"), auto_resize("auto_resize"), needs_translate("translate"), + min_width("min_width"), + max_width("max_width"), xmlns("xmlns"), xmlns_xsi("xmlns:xsi"), xsi_schemaLocation("xsi:schemaLocation"), diff --git a/indra/llui/llview.h b/indra/llui/llview.h index 3779fedf34..9ff6a4e1a0 100644 --- a/indra/llui/llview.h +++ b/indra/llui/llview.h @@ -148,6 +148,8 @@ public: Ignored user_resize, auto_resize, needs_translate, + min_width, + max_width, xmlns, xmlns_xsi, xsi_schemaLocation, @@ -634,7 +636,7 @@ template <class T> T* LLView::getChild(const std::string& name, BOOL recurse) co // did we find *something* with that name? if (child) { - llwarns << "Found child named " << name << " but of wrong type " << typeid(*child).name() << ", expecting " << typeid(T*).name() << llendl; + llwarns << "Found child named \"" << name << "\" but of wrong type " << typeid(*child).name() << ", expecting " << typeid(T*).name() << llendl; } result = getDefaultWidget<T>(name); if (!result) diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp index 76263a4307..98f940c233 100644 --- a/indra/newview/llfloaterland.cpp +++ b/indra/newview/llfloaterland.cpp @@ -1940,8 +1940,6 @@ BOOL LLPanelLandOptions::postBuild() mLandingTypeCombo = getChild<LLComboBox>( "landing type"); childSetCommitCallback("landing type", onCommitAny, this); - getChild<LLTextureCtrl>("snapshot_ctrl")->setFallbackImageName("default_land_picture.j2c"); - return TRUE; } diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp index f450b199c8..3ce1b46a4c 100644 --- a/indra/newview/llfloaterpreference.cpp +++ b/indra/newview/llfloaterpreference.cpp @@ -70,6 +70,7 @@ #include "llscrolllistctrl.h" #include "llscrolllistitem.h" #include "llsliderctrl.h" +#include "llsidetray.h" #include "lltabcontainer.h" #include "lltrans.h" #include "llviewercontrol.h" @@ -309,6 +310,7 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key) mCommitCallbackRegistrar.add("Pref.applyUIColor", boost::bind(&LLFloaterPreference::applyUIColor, this ,_1, _2)); mCommitCallbackRegistrar.add("Pref.getUIColor", boost::bind(&LLFloaterPreference::getUIColor, this ,_1, _2)); mCommitCallbackRegistrar.add("Pref.MaturitySettings", boost::bind(&LLFloaterPreference::onChangeMaturity, this)); + mCommitCallbackRegistrar.add("Pref.BlockList", boost::bind(&LLFloaterPreference::onClickBlockList, this)); sSkin = gSavedSettings.getString("SkinCurrent"); } @@ -1225,6 +1227,17 @@ void LLFloaterPreference::onChangeMaturity() getChild<LLIconCtrl>("rating_icon_adult")->setVisible(sim_access == SIM_ACCESS_ADULT); } +// FIXME: this will stop you from spawning the sidetray from preferences dialog on login screen +// but the UI for this will still be enabled +void LLFloaterPreference::onClickBlockList() +{ + // don't create side tray on demand + if (LLSideTray::instanceCreated()) + { + LLSideTray::getInstance()->showPanel("panel_block_list_sidetray"); + } +} + void LLFloaterPreference::applyUIColor(LLUICtrl* ctrl, const LLSD& param) { diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h index b45e09db7d..0df1b61dcb 100644 --- a/indra/newview/llfloaterpreference.h +++ b/indra/newview/llfloaterpreference.h @@ -141,6 +141,7 @@ public: void onCommitMusicEnabled(); void applyResolution(); void onChangeMaturity(); + void onClickBlockList(); void applyUIColor(LLUICtrl* ctrl, const LLSD& param); void getUIColor(LLUICtrl* ctrl, const LLSD& param); diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp index a42f6ee00f..565f0619a5 100644 --- a/indra/newview/llfloatertools.cpp +++ b/indra/newview/llfloatertools.cpp @@ -235,7 +235,6 @@ BOOL LLFloaterTools::postBuild() childSetValue("checkbox uniform",(BOOL)gSavedSettings.getBOOL("ScaleUniform")); mCheckStretchTexture = getChild<LLCheckBoxCtrl>("checkbox stretch textures"); childSetValue("checkbox stretch textures",(BOOL)gSavedSettings.getBOOL("ScaleStretchTextures")); - mTextGridMode = getChild<LLTextBox>("text ruler mode"); mComboGridMode = getChild<LLComboBox>("combobox grid mode"); mCheckStretchUniformLabel = getChild<LLTextBox>("checkbox uniform label"); @@ -313,7 +312,6 @@ LLFloaterTools::LLFloaterTools(const LLSD& key) mCheckSnapToGrid(NULL), mBtnGridOptions(NULL), mTitleMedia(NULL), - mTextGridMode(NULL), mComboGridMode(NULL), mCheckStretchUniform(NULL), mCheckStretchTexture(NULL), @@ -625,8 +623,6 @@ void LLFloaterTools::updatePopup(LLCoordGL center, MASK mask) mComboGridMode->setCurrentByIndex(index); } - if (mTextGridMode) mTextGridMode->setVisible( edit_visible ); - // Snap to grid disabled for grab tool - very confusing if (mCheckSnapToGrid) mCheckSnapToGrid->setVisible( edit_visible /* || tool == LLToolGrab::getInstance() */ ); if (mBtnGridOptions) mBtnGridOptions->setVisible( edit_visible /* || tool == LLToolGrab::getInstance() */ ); diff --git a/indra/newview/llfloatertools.h b/indra/newview/llfloatertools.h index 91431969bb..7aa319a441 100644 --- a/indra/newview/llfloatertools.h +++ b/indra/newview/llfloatertools.h @@ -144,7 +144,6 @@ public: LLCheckBoxCtrl* mCheckSnapToGrid; LLButton* mBtnGridOptions; - LLTextBox* mTextGridMode; LLComboBox* mComboGridMode; LLCheckBoxCtrl* mCheckStretchUniform; LLCheckBoxCtrl* mCheckStretchTexture; diff --git a/indra/newview/llfloaterworldmap.cpp b/indra/newview/llfloaterworldmap.cpp index 152360a96e..fbe77047e3 100644 --- a/indra/newview/llfloaterworldmap.cpp +++ b/indra/newview/llfloaterworldmap.cpp @@ -56,7 +56,7 @@ #include "llinventorymodelbackgroundfetch.h" #include "llinventoryobserver.h" #include "lllandmarklist.h" -#include "lllineeditor.h" +#include "llsearcheditor.h" #include "llnotificationsutil.h" #include "llregionhandle.h" #include "llscrolllistctrl.h" @@ -229,30 +229,20 @@ BOOL LLFloaterWorldMap::postBuild() mPanel = getChild<LLPanel>("objects_mapview"); LLComboBox *avatar_combo = getChild<LLComboBox>("friend combo"); - if (avatar_combo) - { - avatar_combo->selectFirstItem(); - avatar_combo->setPrearrangeCallback( boost::bind(&LLFloaterWorldMap::onAvatarComboPrearrange, this) ); - avatar_combo->setTextEntryCallback( boost::bind(&LLFloaterWorldMap::onComboTextEntry, this) ); - } + avatar_combo->selectFirstItem(); + avatar_combo->setPrearrangeCallback( boost::bind(&LLFloaterWorldMap::onAvatarComboPrearrange, this) ); + avatar_combo->setTextEntryCallback( boost::bind(&LLFloaterWorldMap::onComboTextEntry, this) ); - getChild<LLScrollListCtrl>("location")->setFocusChangedCallback(boost::bind(&LLFloaterWorldMap::onLocationFocusChanged, this, _1)); - - LLLineEditor *location_editor = getChild<LLLineEditor>("location"); - if (location_editor) - { - location_editor->setKeystrokeCallback( boost::bind(&LLFloaterWorldMap::onSearchTextEntry, this, _1), NULL ); - } + LLSearchEditor *location_editor = getChild<LLSearchEditor>("location"); + location_editor->setFocusChangedCallback(boost::bind(&LLFloaterWorldMap::onLocationFocusChanged, this, _1)); + location_editor->setKeystrokeCallback( boost::bind(&LLFloaterWorldMap::onSearchTextEntry, this)); getChild<LLScrollListCtrl>("search_results")->setDoubleClickCallback( boost::bind(&LLFloaterWorldMap::onClickTeleportBtn, this)); LLComboBox *landmark_combo = getChild<LLComboBox>( "landmark combo"); - if (landmark_combo) - { - landmark_combo->selectFirstItem(); - landmark_combo->setPrearrangeCallback( boost::bind(&LLFloaterWorldMap::onLandmarkComboPrearrange, this) ); - landmark_combo->setTextEntryCallback( boost::bind(&LLFloaterWorldMap::onComboTextEntry, this) ); - } + landmark_combo->selectFirstItem(); + landmark_combo->setPrearrangeCallback( boost::bind(&LLFloaterWorldMap::onLandmarkComboPrearrange, this) ); + landmark_combo->setTextEntryCallback( boost::bind(&LLFloaterWorldMap::onComboTextEntry, this) ); mCurZoomVal = log(LLWorldMapView::sMapScale)/log(2.f); childSetValue("zoom slider", LLWorldMapView::sMapScale); @@ -1003,7 +993,7 @@ void LLFloaterWorldMap::onComboTextEntry() LLTracker::clearFocus(); } -void LLFloaterWorldMap::onSearchTextEntry( LLLineEditor* ctrl ) +void LLFloaterWorldMap::onSearchTextEntry( ) { onComboTextEntry(); updateSearchEnabled(); diff --git a/indra/newview/llfloaterworldmap.h b/indra/newview/llfloaterworldmap.h index 52809ff830..de515c689e 100644 --- a/indra/newview/llfloaterworldmap.h +++ b/indra/newview/llfloaterworldmap.h @@ -123,7 +123,7 @@ protected: void onAvatarComboCommit(); void onComboTextEntry( ); - void onSearchTextEntry( LLLineEditor* ctrl ); + void onSearchTextEntry( ); void onClearBtn(); void onClickTeleportBtn(); diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp index 0b31ffc9a0..534bb6e3fc 100644 --- a/indra/newview/llpanelavatar.cpp +++ b/indra/newview/llpanelavatar.cpp @@ -513,12 +513,6 @@ BOOL LLPanelAvatarProfile::postBuild() mProfileMenu = LLUICtrlFactory::getInstance()->createFromFile<LLToggleableMenu>("menu_profile_overflow.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance()); - LLTextureCtrl* pic = getChild<LLTextureCtrl>("2nd_life_pic"); - pic->setFallbackImageName("default_profile_picture.j2c"); - - pic = getChild<LLTextureCtrl>("real_world_pic"); - pic->setFallbackImageName("default_profile_picture.j2c"); - LLVoiceClient::getInstance()->addObserver((LLVoiceClientStatusObserver*)this); resetControls(); @@ -843,9 +837,6 @@ BOOL LLPanelMyProfile::postBuild() { LLPanelAvatarProfile::postBuild(); - mStatusCombobox = getChild<LLComboBox>("status_combo"); - - childSetCommitCallback("status_combo", boost::bind(&LLPanelMyProfile::onStatusChanged, this), NULL); childSetCommitCallback("status_me_message_text", boost::bind(&LLPanelMyProfile::onStatusMessageChanged, this), NULL); resetControls(); @@ -865,30 +856,9 @@ void LLPanelMyProfile::processProfileProperties(const LLAvatarData* avatar_data) fillPartnerData(avatar_data); - fillStatusData(avatar_data); - fillAccountStatus(avatar_data); } -void LLPanelMyProfile::fillStatusData(const LLAvatarData* avatar_data) -{ - std::string status; - if (gAgent.getAFK()) - { - status = "away"; - } - else if (gAgent.getBusy()) - { - status = "busy"; - } - else - { - status = "online"; - } - - mStatusCombobox->setValue(status); -} - void LLPanelMyProfile::resetControls() { childSetVisible("status_panel", false); @@ -899,27 +869,6 @@ void LLPanelMyProfile::resetControls() childSetVisible("profile_me_buttons_panel", true); } -void LLPanelMyProfile::onStatusChanged() -{ - LLSD::String status = mStatusCombobox->getValue().asString(); - - if ("online" == status) - { - gAgent.clearAFK(); - gAgent.clearBusy(); - } - else if ("away" == status) - { - gAgent.clearBusy(); - gAgent.setAFK(); - } - else if ("busy" == status) - { - gAgent.clearAFK(); - gAgent.setBusy(); - LLNotificationsUtil::add("BusyModeSet"); - } -} void LLPanelMyProfile::onStatusMessageChanged() { diff --git a/indra/newview/llpanelavatar.h b/indra/newview/llpanelavatar.h index bb8df2ff9c..ac2765df28 100644 --- a/indra/newview/llpanelavatar.h +++ b/indra/newview/llpanelavatar.h @@ -240,21 +240,10 @@ protected: /*virtual*/ void processProfileProperties(const LLAvatarData* avatar_data); - /** - * Fills Avatar status data. - */ - virtual void fillStatusData(const LLAvatarData* avatar_data); - /*virtual*/ void resetControls(); protected: - - void onStatusChanged(); void onStatusMessageChanged(); - -private: - - LLComboBox* mStatusCombobox; }; /** diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp index b50c6442e1..7d5be39074 100644 --- a/indra/newview/llpanelface.cpp +++ b/indra/newview/llpanelface.cpp @@ -790,7 +790,6 @@ void LLPanelFace::getState() if(texture_ctrl) { texture_ctrl->setImageAssetID( LLUUID::null ); - texture_ctrl->setFallbackImageName( "locked_image.j2c" ); texture_ctrl->setEnabled( FALSE ); // this is a LLUICtrl, but we don't want it to have keyboard focus so we add it as a child, not a ctrl. // texture_ctrl->setValid(FALSE); } diff --git a/indra/newview/llpanelnearbymedia.cpp b/indra/newview/llpanelnearbymedia.cpp index 6411cd802d..7f4609b83e 100644 --- a/indra/newview/llpanelnearbymedia.cpp +++ b/indra/newview/llpanelnearbymedia.cpp @@ -224,8 +224,8 @@ void LLPanelNearByMedia::reshape(S32 width, S32 height, BOOL called_from_parent) { LLPanel::reshape(width, height, called_from_parent); - LLButton* more_less_btn = getChild<LLButton>("more_less_btn"); - if (more_less_btn->getValue().asBoolean()) + LLButton* more_btn = findChild<LLButton>("more_btn"); + if (more_btn && more_btn->getValue().asBoolean()) { mMoreRect = getRect(); } diff --git a/indra/newview/llpanelobject.cpp b/indra/newview/llpanelobject.cpp index 30221da12a..a1b3114bb4 100644 --- a/indra/newview/llpanelobject.cpp +++ b/indra/newview/llpanelobject.cpp @@ -172,7 +172,6 @@ BOOL LLPanelObject::postBuild() //-------------------------------------------------------- // material type popup - mLabelMaterial = getChild<LLTextBox>("label material"); mComboMaterial = getChild<LLComboBox>("material"); childSetCommitCallback("material",onCommitMaterial,this); mComboMaterial->removeall(); @@ -189,7 +188,6 @@ BOOL LLPanelObject::postBuild() mComboMaterialItemCount = mComboMaterial->getItemCount(); // Base Type - mLabelBaseType = getChild<LLTextBox>("label basetype"); mComboBaseType = getChild<LLComboBox>("comboBaseType"); childSetCommitCallback("comboBaseType",onCommitParametric,this); @@ -548,7 +546,6 @@ void LLPanelObject::getState( ) if (editable && single_volume && material_same) { mComboMaterial->setEnabled( TRUE ); - mLabelMaterial->setEnabled( TRUE ); if (material_code == LL_MCODE_LIGHT) { if (mComboMaterial->getItemCount() == mComboMaterialItemCount) @@ -570,7 +567,6 @@ void LLPanelObject::getState( ) else { mComboMaterial->setEnabled( FALSE ); - mLabelMaterial->setEnabled( FALSE ); } //---------------------------------------------------------------------------- @@ -979,7 +975,6 @@ void LLPanelObject::getState( ) } // Update field enablement - mLabelBaseType ->setEnabled( enabled ); mComboBaseType ->setEnabled( enabled ); mLabelCut ->setEnabled( enabled ); @@ -1910,12 +1905,10 @@ void LLPanelObject::clearCtrls() mCheckCastShadows->setEnabled( FALSE ); #endif mComboMaterial ->setEnabled( FALSE ); - mLabelMaterial ->setEnabled( FALSE ); // Disable text labels mLabelPosition ->setEnabled( FALSE ); mLabelSize ->setEnabled( FALSE ); mLabelRotation ->setEnabled( FALSE ); - mLabelBaseType ->setEnabled( FALSE ); mLabelCut ->setEnabled( FALSE ); mLabelHollow ->setEnabled( FALSE ); mLabelHoleType ->setEnabled( FALSE ); diff --git a/indra/newview/llpanelobject.h b/indra/newview/llpanelobject.h index 58d9fe9b76..b4e1eee8fb 100644 --- a/indra/newview/llpanelobject.h +++ b/indra/newview/llpanelobject.h @@ -101,11 +101,9 @@ protected: protected: S32 mComboMaterialItemCount; - LLTextBox* mLabelMaterial; LLComboBox* mComboMaterial; // Per-object options - LLTextBox* mLabelBaseType; LLComboBox* mComboBaseType; LLTextBox* mLabelCut; diff --git a/indra/newview/llpanelplace.cpp b/indra/newview/llpanelplace.cpp index 6985b73200..1446088c4f 100644 --- a/indra/newview/llpanelplace.cpp +++ b/indra/newview/llpanelplace.cpp @@ -342,7 +342,6 @@ void LLPanelPlace::displayParcelInfo(const LLVector3& pos_region, mDescEditor->setText(getString("server_update_text")); } mSnapshotCtrl->setImageAssetID(LLUUID::null); - mSnapshotCtrl->setFallbackImageName("default_land_picture.j2c"); } // static diff --git a/indra/newview/llpanelplaceinfo.cpp b/indra/newview/llpanelplaceinfo.cpp index f6133d4446..db305b25fa 100644 --- a/indra/newview/llpanelplaceinfo.cpp +++ b/indra/newview/llpanelplaceinfo.cpp @@ -110,7 +110,6 @@ void LLPanelPlaceInfo::resetLocation() mDescEditor->setText(loading); mSnapshotCtrl->setImageAssetID(LLUUID::null); - mSnapshotCtrl->setFallbackImageName("default_land_picture.j2c"); } //virtual diff --git a/indra/newview/llpanelvolumepulldown.cpp b/indra/newview/llpanelvolumepulldown.cpp index ae52bd3703..7d70a8a891 100644 --- a/indra/newview/llpanelvolumepulldown.cpp +++ b/indra/newview/llpanelvolumepulldown.cpp @@ -44,7 +44,7 @@ #include "lltabcontainer.h" #include "llfloaterreg.h" #include "llfloaterpreference.h" -#include "llslider.h" +#include "llsliderctrl.h" /* static */ const F32 LLPanelVolumePulldown::sAutoCloseFadeStartTimeSec = 4.0f; /* static */ const F32 LLPanelVolumePulldown::sAutoCloseTotalTimeSec = 5.0f; @@ -66,7 +66,7 @@ LLPanelVolumePulldown::LLPanelVolumePulldown() BOOL LLPanelVolumePulldown::postBuild() { // set the initial volume-slider's position to reflect reality - LLSlider* volslider = getChild<LLSlider>( "mastervolume" ); + LLSliderCtrl* volslider = getChild<LLSliderCtrl>( "mastervolume" ); volslider->setValue(gSavedSettings.getF32("AudioLevelMaster")); return LLPanel::postBuild(); diff --git a/indra/newview/llsidepaneliteminfo.cpp b/indra/newview/llsidepaneliteminfo.cpp index 0ec351965a..6ccd89dddb 100644 --- a/indra/newview/llsidepaneliteminfo.cpp +++ b/indra/newview/llsidepaneliteminfo.cpp @@ -131,7 +131,6 @@ BOOL LLSidepanelItemInfo::postBuild() getChild<LLUICtrl>("CheckNextOwnerTransfer")->setCommitCallback(boost::bind(&LLSidepanelItemInfo::onCommitPermissions, this)); // Mark for sale or not, and sale info getChild<LLUICtrl>("CheckPurchase")->setCommitCallback(boost::bind(&LLSidepanelItemInfo::onCommitSaleInfo, this)); - getChild<LLUICtrl>("RadioSaleType")->setCommitCallback(boost::bind(&LLSidepanelItemInfo::onCommitSaleType, this)); // "Price" label for edit getChild<LLUICtrl>("Edit Cost")->setCommitCallback(boost::bind(&LLSidepanelItemInfo::onCommitSaleInfo, this)); refresh(); @@ -189,7 +188,6 @@ void LLSidepanelItemInfo::refresh() "CheckNextOwnerCopy", "CheckNextOwnerTransfer", "CheckPurchase", - "RadioSaleType", "Edit Cost" }; @@ -364,7 +362,6 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item) "CheckNextOwnerTransfer", "CheckPurchase", "SaleLabel", - "RadioSaleType", "combobox sale copy", "Edit Cost", "TextPrice" @@ -559,7 +556,6 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item) childSetEnabled("CheckNextOwnerCopy",(base_mask & PERM_COPY) && !cannot_restrict_permissions); childSetEnabled("CheckNextOwnerTransfer",(next_owner_mask & PERM_COPY) && !cannot_restrict_permissions); - childSetEnabled("RadioSaleType",is_complete && is_for_sale); childSetEnabled("TextPrice",is_complete && is_for_sale); childSetEnabled("Edit Cost",is_complete && is_for_sale); } @@ -573,7 +569,6 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item) childSetEnabled("CheckNextOwnerCopy",FALSE); childSetEnabled("CheckNextOwnerTransfer",FALSE); - childSetEnabled("RadioSaleType",FALSE); childSetEnabled("TextPrice",FALSE); childSetEnabled("Edit Cost",FALSE); } @@ -586,17 +581,14 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item) childSetValue("CheckNextOwnerCopy",LLSD(BOOL(next_owner_mask & PERM_COPY))); childSetValue("CheckNextOwnerTransfer",LLSD(BOOL(next_owner_mask & PERM_TRANSFER))); - LLRadioGroup* radioSaleType = getChild<LLRadioGroup>("RadioSaleType"); if (is_for_sale) { - radioSaleType->setSelectedIndex((S32)sale_info.getSaleType() - 1); S32 numerical_price; numerical_price = sale_info.getSalePrice(); childSetText("Edit Cost",llformat("%d",numerical_price)); } else { - radioSaleType->setSelectedIndex(-1); childSetText("Edit Cost",llformat("%d",0)); } } diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index 8c8fbdc88c..c02559b209 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -121,7 +121,6 @@ const U32 LLStatusBar::MAX_DATE_STRING_LENGTH = 2000; LLStatusBar::LLStatusBar(const LLRect& rect) : LLPanel(), - mTextHealth(NULL), mTextTime(NULL), mSGBandwidth(NULL), mSGPacketLoss(NULL), @@ -181,11 +180,8 @@ BOOL LLStatusBar::postBuild() // build date necessary data (must do after panel built) setupDate(); - mTextHealth = getChild<LLTextBox>("HealthText" ); mTextTime = getChild<LLTextBox>("TimeText" ); - getChild<LLUICtrl>("buycurrency")->setCommitCallback( - boost::bind(&LLStatusBar::onClickBuyCurrency, this)); getChild<LLUICtrl>("buyL")->setCommitCallback( boost::bind(&LLStatusBar::onClickBuyCurrency, this)); @@ -328,24 +324,12 @@ void LLStatusBar::refresh() BOOL flash = S32(mHealthTimer->getElapsedSeconds() * ICON_FLASH_FREQUENCY) & 1; childSetVisible("health", flash); } - mTextHealth->setVisible(TRUE); // Health childGetRect( "health", buttonRect ); r.setOriginAndSize( x, y, buttonRect.getWidth(), buttonRect.getHeight()); childSetRect("health", r); x += buttonRect.getWidth(); - - const S32 health_width = S32( LLFontGL::getFontSansSerifSmall()->getWidth(std::string("100%")) ); - r.set(x, y+TEXT_HEIGHT - 2, x+health_width, y); - mTextHealth->setRect(r); - x += health_width; - } - else - { - // invisible if region doesn't allow damage - childSetVisible("health", false); - mTextHealth->setVisible(FALSE); } mSGBandwidth->setVisible(net_stats_visible); @@ -444,8 +428,6 @@ void LLStatusBar::sendMoneyBalanceRequest() void LLStatusBar::setHealth(S32 health) { //llinfos << "Setting health to: " << buffer << llendl; - mTextHealth->setText(llformat("%d%%", health)); - if( mHealth > health ) { if (mHealth > (health + gSavedSettings.getF32("UISndHealthReductionThreshold"))) diff --git a/indra/newview/llstatusbar.h b/indra/newview/llstatusbar.h index e5240fcc3e..32f29e9e1c 100644 --- a/indra/newview/llstatusbar.h +++ b/indra/newview/llstatusbar.h @@ -105,7 +105,6 @@ private: static void onClickMediaToggle(void* data); private: - LLTextBox *mTextHealth; LLTextBox *mTextTime; LLStatGraph *mSGBandwidth; diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp index a1ab051021..f3530b69db 100644 --- a/indra/newview/lltexturectrl.cpp +++ b/indra/newview/lltexturectrl.cpp @@ -100,7 +100,7 @@ public: PermissionMask immediate_filter_perm_mask, PermissionMask non_immediate_filter_perm_mask, BOOL can_apply_immediately, - const std::string& fallback_image_name); + LLUIImagePtr fallback_image_name); virtual ~LLFloaterTexturePicker(); @@ -153,7 +153,7 @@ protected: LLTextureCtrl* mOwner; LLUUID mImageAssetID; // Currently selected texture - std::string mFallbackImageName; // What to show if currently selected texture is null. + LLUIImagePtr mFallbackImage; // What to show if currently selected texture is null. LLUUID mWhiteImageAssetID; LLUUID mSpecialCurrentImageAssetID; // Used when the asset id has no corresponding texture in the user's inventory. @@ -183,11 +183,11 @@ LLFloaterTexturePicker::LLFloaterTexturePicker( PermissionMask immediate_filter_perm_mask, PermissionMask non_immediate_filter_perm_mask, BOOL can_apply_immediately, - const std::string& fallback_image_name) + LLUIImagePtr fallback_image) : LLFloater(LLSD()), mOwner( owner ), mImageAssetID( owner->getImageAssetID() ), - mFallbackImageName( fallback_image_name ), + mFallbackImage( fallback_image ), mWhiteImageAssetID( gSavedSettings.getString( "UIImgWhiteUUID" ) ), mOriginalImageAssetID(owner->getImageAssetID()), mLabel(label), @@ -533,11 +533,6 @@ void LLFloaterTexturePicker::draw() mTexturep = LLViewerTextureManager::getFetchedTexture(mImageAssetID, MIPMAP_YES); mTexturep->setBoostLevel(LLViewerTexture::BOOST_PREVIEW); } - else if (!mFallbackImageName.empty()) - { - mTexturep = LLViewerTextureManager::getFetchedTextureFromFile(mFallbackImageName); - mTexturep->setBoostLevel(LLViewerTexture::BOOST_PREVIEW); - } if (mTentativeLabel) { @@ -578,13 +573,10 @@ void LLFloaterTexturePicker::draw() // Pump the priority mTexturep->addTextureStats( (F32)(interior.getWidth() * interior.getHeight()) ); - - // Draw Tentative Label over the image - if( mOwner->getTentative() && !mViewModel->isDirty() ) - { - mTentativeLabel->setVisible( TRUE ); - drawChild(mTentativeLabel); - } + } + else if (!mFallbackImage.isNull()) + { + mFallbackImage->draw(interior); } else { @@ -593,6 +585,13 @@ void LLFloaterTexturePicker::draw() // Draw X gl_draw_x(interior, LLColor4::black ); } + + // Draw Tentative Label over the image + if( mOwner->getTentative() && !mViewModel->isDirty() ) + { + mTentativeLabel->setVisible( TRUE ); + drawChild(mTentativeLabel); + } } } @@ -875,7 +874,8 @@ LLTextureCtrl::LLTextureCtrl(const LLTextureCtrl::Params& p) mShowLoadingPlaceholder( TRUE ), mImageAssetID(p.image_id), mDefaultImageAssetID(p.default_image_id), - mDefaultImageName(p.default_image_name) + mDefaultImageName(p.default_image_name), + mFallbackImage(p.fallback_image) { setAllowNoTexture(p.allow_no_texture); setCanApplyImmediately(p.can_apply_immediately); @@ -1019,7 +1019,7 @@ void LLTextureCtrl::showPicker(BOOL take_focus) mImmediateFilterPermMask, mNonImmediateFilterPermMask, mCanApplyImmediately, - mFallbackImageName); + mFallbackImage); mFloaterHandle = floaterp->getHandle(); @@ -1223,12 +1223,6 @@ void LLTextureCtrl::draw() mTexturep = texture; } - else if (!mFallbackImageName.empty()) - { - // Show fallback image. - mTexturep = LLViewerTextureManager::getFetchedTextureFromFile(mFallbackImageName); - mTexturep->setBoostLevel(LLViewerTexture::BOOST_PREVIEW); - } else//mImageAssetID == LLUUID::null { mTexturep = NULL; @@ -1252,6 +1246,10 @@ void LLTextureCtrl::draw() gl_draw_scaled_image( interior.mLeft, interior.mBottom, interior.getWidth(), interior.getHeight(), mTexturep); mTexturep->addTextureStats( (F32)(interior.getWidth() * interior.getHeight()) ); } + else if (!mFallbackImage.isNull()) + { + mFallbackImage->draw(interior); + } else { gl_rect_2d( interior, LLColor4::grey, TRUE ); diff --git a/indra/newview/lltexturectrl.h b/indra/newview/lltexturectrl.h index bcd0a083f2..b5dfa1b948 100644 --- a/indra/newview/lltexturectrl.h +++ b/indra/newview/lltexturectrl.h @@ -78,6 +78,7 @@ public: // only on DnD or when OK is pressed in the picker Optional<S32> label_width; Optional<LLUIColor> border_color; + Optional<LLUIImage*> fallback_image; Optional<LLTextBox::Params> multiselect_text, caption_text; @@ -93,6 +94,7 @@ public: no_commit_on_selection("no_commit_on_selection", false), label_width("label_width", -1), border_color("border_color"), + fallback_image("fallback_image"), multiselect_text("multiselect_text"), caption_text("caption_text"), border("border") @@ -152,9 +154,6 @@ public: const std::string& getDefaultImageName() const { return mDefaultImageName; } - void setFallbackImageName( const std::string& name ) { mFallbackImageName = name; } - const std::string& getFallbackImageName() const { return mFallbackImageName; } - void setCaption(const std::string& caption); void setCanApplyImmediately(BOOL b); @@ -192,32 +191,32 @@ private: BOOL doDrop(LLInventoryItem* item); private: - drag_n_drop_callback mDragCallback; - drag_n_drop_callback mDropCallback; - commit_callback_t mOnCancelCallback; - commit_callback_t mOnSelectCallback; + drag_n_drop_callback mDragCallback; + drag_n_drop_callback mDropCallback; + commit_callback_t mOnCancelCallback; + commit_callback_t mOnSelectCallback; LLPointer<LLViewerFetchedTexture> mTexturep; - LLUIColor mBorderColor; - LLUUID mImageItemID; - LLUUID mImageAssetID; - LLUUID mDefaultImageAssetID; - std::string mFallbackImageName; - std::string mDefaultImageName; - LLHandle<LLFloater> mFloaterHandle; - LLTextBox* mTentativeLabel; - LLTextBox* mCaption; - std::string mLabel; - BOOL mAllowNoTexture; // If true, the user can select "none" as an option - PermissionMask mImmediateFilterPermMask; - PermissionMask mNonImmediateFilterPermMask; - BOOL mCanApplyImmediately; - BOOL mCommitOnSelection; - BOOL mNeedsRawImageData; - LLViewBorder* mBorder; - BOOL mValid; - BOOL mShowLoadingPlaceholder; - std::string mLoadingPlaceholderString; - S32 mLabelWidth; + LLUIColor mBorderColor; + LLUUID mImageItemID; + LLUUID mImageAssetID; + LLUUID mDefaultImageAssetID; + LLUIImagePtr mFallbackImage; + std::string mDefaultImageName; + LLHandle<LLFloater> mFloaterHandle; + LLTextBox* mTentativeLabel; + LLTextBox* mCaption; + std::string mLabel; + BOOL mAllowNoTexture; // If true, the user can select "none" as an option + PermissionMask mImmediateFilterPermMask; + PermissionMask mNonImmediateFilterPermMask; + BOOL mCanApplyImmediately; + BOOL mCommitOnSelection; + BOOL mNeedsRawImageData; + LLViewBorder* mBorder; + BOOL mValid; + BOOL mShowLoadingPlaceholder; + std::string mLoadingPlaceholderString; + S32 mLabelWidth; }; // XUI HACK: When floaters converted, switch this file to lltexturepicker.h/cpp diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp index 6e220cac39..316588c982 100644 --- a/indra/newview/llvoavatar.cpp +++ b/indra/newview/llvoavatar.cpp @@ -2076,7 +2076,8 @@ void LLVOAvatar::computeBodySize() ankle.mV[VZ] * knee_scale.mV[VZ] - foot.mV[VZ] * ankle_scale.mV[VZ]; - mBodySize.mV[VZ] = mPelvisToFoot + + LLVector3 new_body_size; + new_body_size.mV[VZ] = mPelvisToFoot + // the sqrt(2) correction below is an approximate // correction to get to the top of the head F_SQRT2 * (skull.mV[VZ] * head_scale.mV[VZ]) + @@ -2086,8 +2087,17 @@ void LLVOAvatar::computeBodySize() torso.mV[VZ] * pelvis_scale.mV[VZ]; // TODO -- measure the real depth and width - mBodySize.mV[VX] = DEFAULT_AGENT_DEPTH; - mBodySize.mV[VY] = DEFAULT_AGENT_WIDTH; + new_body_size.mV[VX] = DEFAULT_AGENT_DEPTH; + new_body_size.mV[VY] = DEFAULT_AGENT_WIDTH; + + if (new_body_size != mBodySize) + { + mBodySize = new_body_size; + if (isSelf()) + { // notify simulator of change in size + gAgent.sendAgentSetAppearance(); + } + } /* debug spam std::cout << "skull = " << skull << std::endl; // adebug diff --git a/indra/newview/llwearabletype.cpp b/indra/newview/llwearabletype.cpp index 2a14ace38c..b9b48fd55a 100644 --- a/indra/newview/llwearabletype.cpp +++ b/indra/newview/llwearabletype.cpp @@ -85,7 +85,6 @@ LLWearableDictionary::LLWearableDictionary() addEntry(LLWearableType::WT_TATTOO, new WearableEntry("tattoo", "New Tattoo", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_TATTOO)); addEntry(LLWearableType::WT_INVALID, new WearableEntry("invalid", "Invalid Wearable", LLAssetType::AT_NONE, LLInventoryIcon::ICONNAME_NONE)); addEntry(LLWearableType::WT_NONE, new WearableEntry("none", "Invalid Wearable", LLAssetType::AT_NONE, LLInventoryIcon::ICONNAME_NONE)); - addEntry(LLWearableType::WT_COUNT, new WearableEntry("count", "Invalid Wearable", LLAssetType::AT_NONE, LLInventoryIcon::ICONNAME_NONE)); } // static diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml index 043077db13..40e882757f 100644 --- a/indra/newview/skins/default/textures/textures.xml +++ b/indra/newview/skins/default/textures/textures.xml @@ -579,6 +579,10 @@ with the same filename but different name <texture name="scrollbutton_left_in_blue.tga" file_name="widgets/ScrollArrow_Left_Over_Opaque.png" /> <texture name="scrollbutton_right_out_blue.tga" file_name="widgets/ScrollArrow_Right_Opaque.png" /> <texture name="scrollbutton_right_in_blue.tga" file_name="widgets/ScrollArrow_Right_Over_Opaque.png" /> + <texture name="scrollbutton_up_out_blue.tga" file_name="widgets/ScrollArrow_Up_Opaque.png" /> + <texture name="scrollbutton_up_in_blue.tga" file_name="widgets/ScrollArrow_Up_Over_Opaque.png" /> + <texture name="scrollbutton_down_out_blue.tga" file_name="widgets/ScrollArrow_Down_Opaque.png" /> + <texture name="scrollbutton_down_in_blue.tga" file_name="widgets/ScrollArrow_Down_Over_Opaque.png" /> <texture name="up_arrow.tga" file_name="up_arrow.png" /> <texture name="down_arrow.tga" file_name="down_arrow.png" /> diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Opaque.png Binary files differnew file mode 100644 index 0000000000..a396380fb2 --- /dev/null +++ b/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Opaque.png diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Over_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Over_Opaque.png Binary files differnew file mode 100644 index 0000000000..9568dea78a --- /dev/null +++ b/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Over_Opaque.png diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Opaque.png Binary files differnew file mode 100644 index 0000000000..67a7a5568b --- /dev/null +++ b/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Opaque.png diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Over_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Over_Opaque.png Binary files differnew file mode 100644 index 0000000000..0cc8c4404b --- /dev/null +++ b/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Over_Opaque.png diff --git a/indra/newview/skins/default/xui/en/alert_button.xml b/indra/newview/skins/default/xui/en/alert_button.xml index 632564d793..a60e9afab1 100644 --- a/indra/newview/skins/default/xui/en/alert_button.xml +++ b/indra/newview/skins/default/xui/en/alert_button.xml @@ -5,7 +5,7 @@ label_shadow="true" auto_resize="false" image_overlay_alignment="center" - use_ellipses="flse" + use_ellipses="false" pad_right="10" pad_left="10" is_toggle="false" diff --git a/indra/newview/skins/default/xui/en/floater_about_land.xml b/indra/newview/skins/default/xui/en/floater_about_land.xml index b9489895ae..14aacafa9f 100644 --- a/indra/newview/skins/default/xui/en/floater_about_land.xml +++ b/indra/newview/skins/default/xui/en/floater_about_land.xml @@ -1489,6 +1489,7 @@ Only large parcels can be listed in search. layout="topleft" left="14" name="snapshot_ctrl" + fallback_image="default_land_picture.j2c" tool_tip="Click to choose a picture" width="195" /> <text diff --git a/indra/newview/skins/default/xui/en/floater_buy_land.xml b/indra/newview/skins/default/xui/en/floater_buy_land.xml index acaa508792..0ad4fbc967 100644 --- a/indra/newview/skins/default/xui/en/floater_buy_land.xml +++ b/indra/newview/skins/default/xui/en/floater_buy_land.xml @@ -380,6 +380,7 @@ supports [AMOUNT2] objects width="275" /> <texture_picker enabled="false" + fallback_image="default_land_picture.j2c" follows="top|left" height="135" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/floater_event.xml b/indra/newview/skins/default/xui/en/floater_event.xml index d9c9d63c72..887cedc33f 100644 --- a/indra/newview/skins/default/xui/en/floater_event.xml +++ b/indra/newview/skins/default/xui/en/floater_event.xml @@ -266,7 +266,6 @@ layout="topleft" left="6" name="create_event_btn" - picture_style="true" tool_tip="Create Event" width="18" /> <button @@ -280,7 +279,6 @@ left="6" top_pad="-7" name="god_delete_event_btn" - picture_style="true" tool_tip="Delete Event" width="18" /> <button diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml index efc1a66d95..34c1b25f8c 100644 --- a/indra/newview/skins/default/xui/en/floater_tools.xml +++ b/indra/newview/skins/default/xui/en/floater_tools.xml @@ -335,7 +335,6 @@ </combo_box> <button left_pad="0" - image_disabled="ForwardArrow_Disabled" image_selected="ForwardArrow_Press" image_unselected="ForwardArrow_Off" layout="topleft" @@ -1012,7 +1011,7 @@ follows="left|top" allow_text_entry="false" height="23" - intial_value="2" + initial_value="2" max_chars="20" mouse_opaque="true" name="sale type" @@ -2176,8 +2175,6 @@ even though the user gets a free copy. width="60" /> <color_swatch can_apply_immediately="true" - bevel_style="none" - border_style="line" color="0.5 0.5 0.5 1" border.border_thickness="0" follows="left|top" @@ -2212,43 +2209,71 @@ even though the user gets a free copy. name="Light Intensity" top_pad="3" width="128" /> - <spinner bottom_delta="0" decimal_digits="3" follows="left|top" height="16" - increment="0.1" initial_val="0.5" label="FOV" label_width="55" - left="144" max_val="3" min_val="0" mouse_opaque="true" - name="Light FOV" width="120" /> - <spinner - follows="left|top" - height="19" - initial_value="5" - label="Radius" - label_width="70" - layout="topleft" - left="10" - max_val="20" - name="Light Radius" - top_pad="3" - width="128" /> - <spinner bottom_delta="0" decimal_digits="3" follows="left|top" height="16" - increment="0.5" initial_val="0.5" label="Focus" label_width="55" - left="144" max_val="20" min_val="-20" mouse_opaque="true" - name="Light Focus" width="120" /> - <spinner - follows="left|top" - height="19" - increment="0.25" - initial_value="1" - label="Falloff" - label_width="70" - layout="topleft" - left="10" - max_val="2" - name="Light Falloff" - top_pad="3" - width="128" /> - <spinner bottom_delta="0" decimal_digits="3" follows="left|top" height="16" - increment="0.05" initial_val="1" label="Ambiance" label_width="55" - left="144" max_val="1" min_val="0" mouse_opaque="true" - name="Light Ambiance" width="120" /> + <spinner bottom_delta="0" + decimal_digits="3" + follows="left|top" + height="16" + increment="0.1" + initial_value="0.5" + label="FOV" + label_width="55" + left="144" + max_val="3" + min_val="0" + mouse_opaque="true" + name="Light FOV" + width="120" /> + <spinner follows="left|top" + height="19" + initial_value="5" + label="Radius" + label_width="70" + layout="topleft" + left="10" + max_val="20" + name="Light Radius" + top_pad="3" + width="128" /> + <spinner bottom_delta="0" + decimal_digits="3" + follows="left|top" + height="16" + increment="0.5" + initial_value="0.5" + label="Focus" + label_width="55" + left="144" + max_val="20" + min_val="-20" + mouse_opaque="true" + name="Light Focus" + width="120" /> + <spinner follows="left|top" + height="19" + increment="0.25" + initial_value="1" + label="Falloff" + label_width="70" + layout="topleft" + left="10" + max_val="2" + name="Light Falloff" + top_pad="3" + width="128" /> + <spinner bottom_delta="0" + decimal_digits="3" + follows="left|top" + height="16" + increment="0.05" + initial_value="1" + label="Ambiance" + label_width="55" + left="144" + max_val="1" + min_val="0" + mouse_opaque="true" + name="Light Ambiance" + width="120" /> </panel> <panel border="false" @@ -2273,6 +2298,7 @@ even though the user gets a free copy. <texture_picker can_apply_immediately="true" default_image_name="Default" + fallback_image="locked_image.j2c" follows="left|top" height="80" label="Texture" diff --git a/indra/newview/skins/default/xui/en/menu_edit.xml b/indra/newview/skins/default/xui/en/menu_edit.xml index 68f3cb532c..fab76c497c 100644 --- a/indra/newview/skins/default/xui/en/menu_edit.xml +++ b/indra/newview/skins/default/xui/en/menu_edit.xml @@ -52,6 +52,7 @@ <menu_item_call label="Delete" name="Delete" + allow_key_repeat="true" shortcut="Del"> <menu_item_call.on_click function="Edit.Delete" /> diff --git a/indra/newview/skins/default/xui/en/panel_classified_info.xml b/indra/newview/skins/default/xui/en/panel_classified_info.xml index 976f6d6cd0..b7fd9773f2 100644 --- a/indra/newview/skins/default/xui/en/panel_classified_info.xml +++ b/indra/newview/skins/default/xui/en/panel_classified_info.xml @@ -46,7 +46,6 @@ image_unselected="BackButton_Off" layout="topleft" name="back_btn" - picture_style="true" left="10" tab_stop="false" top="2" diff --git a/indra/newview/skins/default/xui/en/panel_edit_classified.xml b/indra/newview/skins/default/xui/en/panel_edit_classified.xml index 6744a7b9c2..3f41973b72 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_classified.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_classified.xml @@ -30,7 +30,6 @@ image_unselected="BackButton_Off" layout="topleft" name="back_btn" - picture_style="true" left="10" tab_stop="false" top="2" diff --git a/indra/newview/skins/default/xui/en/panel_edit_profile.xml b/indra/newview/skins/default/xui/en/panel_edit_profile.xml index dff2b9a214..5072ec3a66 100644 --- a/indra/newview/skins/default/xui/en/panel_edit_profile.xml +++ b/indra/newview/skins/default/xui/en/panel_edit_profile.xml @@ -118,6 +118,7 @@ allow_no_texture="true" default_image_name="None" enabled="false" + fallback_image="default_profile_picture.j2c" follows="top|left" height="124" layout="topleft" @@ -174,6 +175,7 @@ allow_no_texture="true" default_image_name="None" enabled="false" + fallback_image="Generic_Person_Large" follows="top|left" height="124" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/panel_landmark_info.xml b/indra/newview/skins/default/xui/en/panel_landmark_info.xml index 55fef5aaf7..a0a1e2963a 100644 --- a/indra/newview/skins/default/xui/en/panel_landmark_info.xml +++ b/indra/newview/skins/default/xui/en/panel_landmark_info.xml @@ -103,7 +103,8 @@ width="310"> <texture_picker enabled="false" - follows="left|top|right" + fallback_image="default_land_picture.j2c" + follows="left|top|right" height="197" layout="topleft" left="11" diff --git a/indra/newview/skins/default/xui/en/panel_main_inventory.xml b/indra/newview/skins/default/xui/en/panel_main_inventory.xml index 2a53b3e2fa..16529f4064 100644 --- a/indra/newview/skins/default/xui/en/panel_main_inventory.xml +++ b/indra/newview/skins/default/xui/en/panel_main_inventory.xml @@ -104,8 +104,6 @@ </tab_container> <layout_stack animate="false" - background_visible="true" - bevel_style="none" border_size="0" follows="left|right|bottom" height="25" diff --git a/indra/newview/skins/default/xui/en/panel_my_profile.xml b/indra/newview/skins/default/xui/en/panel_my_profile.xml index 841a4f5713..1083f4d467 100644 --- a/indra/newview/skins/default/xui/en/panel_my_profile.xml +++ b/indra/newview/skins/default/xui/en/panel_my_profile.xml @@ -83,6 +83,7 @@ allow_no_texture="true" default_image_name="None" enabled="false" + fallback_image="Generic_Person_Large" follows="top|left" height="124" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml index 96c76576c0..00b1fdd843 100644 --- a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml @@ -113,10 +113,6 @@ <!-- top_delta="0" --> <!-- width="168" /> --> <search_combo_box - bevel_style="none" - border_style="line" - border.border_thickness="0" - commit_on_focus_lost="false" follows="right|top" halign="right" height="23" diff --git a/indra/newview/skins/default/xui/en/panel_nearby_media.xml b/indra/newview/skins/default/xui/en/panel_nearby_media.xml index f5a78fc929..d8675b3512 100644 --- a/indra/newview/skins/default/xui/en/panel_nearby_media.xml +++ b/indra/newview/skins/default/xui/en/panel_nearby_media.xml @@ -1,7 +1,5 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel - can_resize="true" - can_close="false" bg_opaque_image="Volume_Background" bg_alpha_image="Volume_Background" background_opaque="true" @@ -58,7 +56,6 @@ top_delta="0" left_pad="4" height="22" - min_width="28" width="28"> <button.commit_callback function="MediaListCtrl.GoMediaPrefs" /> diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml index b79ef1e287..7cd0d5b5f0 100644 --- a/indra/newview/skins/default/xui/en/panel_people.xml +++ b/indra/newview/skins/default/xui/en/panel_people.xml @@ -95,8 +95,6 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M width="313"> <avatar_list allow_select="true" - bg_alpha_color="DkGray2" - bg_opaque_color="DkGray2" follows="all" height="356" ignore_online_status="true" @@ -300,16 +298,11 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M --> <group_list allow_select="true" - background_visible="true" - bg_alpha_color="DkGray2" - bg_opaque_color="DkGray2" follows="all" height="356" layout="topleft" left="3" name="group_list" - no_filtered_groups_msg="[secondlife:///app/search/groups Try finding the group in search?]" - no_groups_msg="[secondlife:///app/search/groups Try searching for some groups to join.]" top="0" width="307" /> <panel @@ -386,9 +379,6 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M width="313"> <avatar_list allow_select="true" - background_visible="true" - bg_alpha_color="DkGray2" - bg_opaque_color="DkGray2" follows="all" height="356" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/panel_picks.xml b/indra/newview/skins/default/xui/en/panel_picks.xml index 0093a08e15..a815cdf7f0 100644 --- a/indra/newview/skins/default/xui/en/panel_picks.xml +++ b/indra/newview/skins/default/xui/en/panel_picks.xml @@ -38,7 +38,6 @@ bg_opaque_color="DkGray2" single_expansion="true" width="313"> <accordion_tab - can_resize="false" layout="topleft" height="235" min_height="150" @@ -56,7 +55,6 @@ bg_opaque_color="DkGray2" width="313" /> </accordion_tab> <accordion_tab - can_resize="false" layout="topleft" height="235" name="tab_classifieds" diff --git a/indra/newview/skins/default/xui/en/panel_place_profile.xml b/indra/newview/skins/default/xui/en/panel_place_profile.xml index 55e0184282..35e8075896 100644 --- a/indra/newview/skins/default/xui/en/panel_place_profile.xml +++ b/indra/newview/skins/default/xui/en/panel_place_profile.xml @@ -200,7 +200,8 @@ width="310"> <texture_picker enabled="false" - follows="left|top|right" + fallback_image="default_land_picture.j2c" + follows="left|top|right" height="197" layout="topleft" left="11" diff --git a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml index fca9b4bca1..4ebd4c76f8 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml @@ -162,8 +162,9 @@ name="block_list" top_pad="20" width="145"> - <button.commit_callback - function="SideTray.ShowPanel" - parameter="panel_block_list_sidetray" /> + <!--<button.commit_callback + function="SideTray.ShowPanel"--> + <button.commit_callback + function="Pref.BlockList"/> </button> </panel> diff --git a/indra/newview/skins/default/xui/en/panel_profile.xml b/indra/newview/skins/default/xui/en/panel_profile.xml index d7a601d7a3..fc33836c79 100644 --- a/indra/newview/skins/default/xui/en/panel_profile.xml +++ b/indra/newview/skins/default/xui/en/panel_profile.xml @@ -83,6 +83,7 @@ allow_no_texture="true" default_image_name="None" enabled="false" + fallback_image="Generic_Person_Large" follows="top|left" height="124" layout="topleft" @@ -130,6 +131,7 @@ allow_no_texture="true" default_image_name="None" enabled="false" + fallback_image="Generic_Person_Large" follows="top|left" height="124" layout="topleft" diff --git a/indra/newview/skins/default/xui/en/panel_toast.xml b/indra/newview/skins/default/xui/en/panel_toast.xml index 92b4c17247..42f64c3a76 100644 --- a/indra/newview/skins/default/xui/en/panel_toast.xml +++ b/indra/newview/skins/default/xui/en/panel_toast.xml @@ -31,8 +31,6 @@ can_close="false" can_dock="false" border_visible = "false" - border_drop_shadow_visible = "false" - drop_shadow_visible = "false" border = "false" > <panel diff --git a/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml b/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml index d3fb77f135..d8f4297e0c 100644 --- a/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml @@ -10,7 +10,6 @@ name="topinfo_bar" width="1024"> <button - border="true" follows="left|top" height="16" hover_glow_amount="0.15" diff --git a/indra/newview/skins/default/xui/en/sidepanel_item_info.xml b/indra/newview/skins/default/xui/en/sidepanel_item_info.xml index 185e7ebafc..f3912b5133 100644 --- a/indra/newview/skins/default/xui/en/sidepanel_item_info.xml +++ b/indra/newview/skins/default/xui/en/sidepanel_item_info.xml @@ -1,11 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel - auto_tile="true" height="570" layout="topleft" name="item properties" help_topic="item_properties" - save_rect="true" title="Item Profile" width="333"> <panel.string diff --git a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml index faa1ae4e8b..ef7ec74b5a 100644 --- a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml +++ b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml @@ -1,11 +1,9 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <panel - auto_tile="true" height="570" layout="topleft" name="object properties" help_topic="object_properties" - save_rect="true" title="Object Profile" width="333"> <panel.string @@ -219,7 +217,6 @@ left_pad="0" top_delta="0" name="button set group" - picture_style="true" tab_stop="false" tool_tip="Choose a group to share this object's permissions" width="10" /> diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 68eea8dc9a..e30c081ba1 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -1812,7 +1812,8 @@ Clears (deletes) the media and all params from the given face. <string name="skirt">Skirt</string> <string name="alpha">Alpha</string> <string name="tattoo">Tattoo</string> - <string name="invalid">invalid</string> + <string name="invalid">invalid</string> + <string name="none">none</string> <!-- Not Worn Wearable Types --> <string name="shirt_not_worn">Shirt not worn</string> diff --git a/indra/newview/skins/default/xui/en/widgets/search_combo_box.xml b/indra/newview/skins/default/xui/en/widgets/search_combo_box.xml index 5d429d5b5b..ce84cfedc0 100644 --- a/indra/newview/skins/default/xui/en/widgets/search_combo_box.xml +++ b/indra/newview/skins/default/xui/en/widgets/search_combo_box.xml @@ -1,15 +1,12 @@ <?xml version="1.0" encoding="utf-8" standalone="yes" ?> <search_combo_box allow_text_entry="true" - list_position="BELOW" + list_position="below" show_text_as_tentative="false" dropdown_button_visible="false" max_chars="256" name="parent" - allow_new_values="true" - background_image="TextField_Search_Off" - background_image_disabled="TextField_Search_Disabled" - background_image_focused="TextField_Search_Active"> + allow_new_values="true"> <combo_editor name="child1" select_on_focus="true" diff --git a/indra/newview/skins/paths.xml b/indra/newview/skins/paths.xml index 3b91a904b0..e6d68488ea 100644 --- a/indra/newview/skins/paths.xml +++ b/indra/newview/skins/paths.xml @@ -1,4 +1,10 @@ <paths> - <directory>xui/en</directory> - <directory>xui/[LANGUAGE]</directory> + <directory> + <subdir>xui</subdir> + <subdir>en</subdir> + </directory> + <directory> + <subdir>xui</subdir> + <subdir>[LANGUAGE]</subdir> + </directory> </paths>
\ No newline at end of file |