diff options
16 files changed, 51 insertions, 69 deletions
diff --git a/indra/newview/llfloatersidetraytab.cpp b/indra/newview/llfloatersidetraytab.cpp index 94407e6da0..9f15e62d84 100644 --- a/indra/newview/llfloatersidetraytab.cpp +++ b/indra/newview/llfloatersidetraytab.cpp @@ -47,5 +47,6 @@ LLFloaterSideTrayTab::~LLFloaterSideTrayTab() void LLFloaterSideTrayTab::onClose(bool app_quitting) { - LLSideTray::getInstance()->setTabDocked(getName(), true); + // The floater is already being closed, so don't toggle it once more (that may crash viewer). + LLSideTray::getInstance()->setTabDocked(getName(), /* dock = */ true, /* toggle_floater = */ false); } diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp index e4c2293938..631b244785 100644 --- a/indra/newview/llsidetray.cpp +++ b/indra/newview/llsidetray.cpp @@ -127,8 +127,6 @@ protected: void undock(LLFloater* floater_tab); LLSideTray* getSideTray(); - - void onFloaterClose(LLSD::Boolean app_quitting); public: virtual ~LLSideTrayTab(); @@ -146,7 +144,7 @@ public: void onOpen (const LLSD& key); - void toggleTabDocked(); + void toggleTabDocked(bool toggle_floater = true); void setDocked(bool dock); bool isDocked() const; @@ -160,7 +158,6 @@ private: std::string mDescription; LLView* mMainPanel; - boost::signals2::connection mFloaterCloseConn; }; LLSideTrayTab::LLSideTrayTab(const Params& p) @@ -196,8 +193,8 @@ BOOL LLSideTrayTab::postBuild() title_panel->getChild<LLTextBox>(TAB_PANEL_CAPTION_TITLE_BOX)->setValue(mTabTitle); - getChild<LLButton>("undock")->setCommitCallback(boost::bind(&LLSideTrayTab::toggleTabDocked, this)); - getChild<LLButton>("dock")->setCommitCallback(boost::bind(&LLSideTrayTab::toggleTabDocked, this)); + getChild<LLButton>("undock")->setCommitCallback(boost::bind(&LLSideTrayTab::setDocked, this, false)); + getChild<LLButton>("dock")->setCommitCallback(boost::bind(&LLSideTrayTab::setDocked, this, true)); return true; } @@ -253,14 +250,16 @@ LLSideTray* LLSideTrayTab::getSideTray() return side_tray; } -void LLSideTrayTab::toggleTabDocked() +void LLSideTrayTab::toggleTabDocked(bool toggle_floater /* = true */) { + // *FIX: Calling this method twice per frame would crash the viewer. + std::string tab_name = getName(); LLFloater* floater_tab = LLFloaterReg::getInstance("side_bar_tab", tab_name); if (!floater_tab) return; - bool docking = LLFloater::isShown(floater_tab); + bool docking = !isDocked(); // Hide the "Tear Off" button when a tab gets undocked // and show "Dock" button instead. @@ -278,7 +277,10 @@ void LLSideTrayTab::toggleTabDocked() // Open/close the floater *after* we reparent the tab panel, // so that it doesn't receive redundant visibility change notifications. - LLFloaterReg::toggleInstance("side_bar_tab", tab_name); + if (toggle_floater) + { + LLFloaterReg::toggleInstance("side_bar_tab", tab_name); + } } // Same as toggleTabDocked() apart from making sure that we do exactly what we want. @@ -298,18 +300,6 @@ bool LLSideTrayTab::isDocked() const return dynamic_cast<LLSideTray*>(getParent()) != NULL; } -void LLSideTrayTab::onFloaterClose(LLSD::Boolean app_quitting) -{ - // If user presses Ctrl-Shift-W, handle that gracefully by docking all - // undocked tabs before their floaters get destroyed (STORM-1016). - - // Don't dock on quit for the current dock state to be correctly saved. - if (app_quitting) return; - - lldebugs << "Forcibly docking tab " << getName() << llendl; - setDocked(true); -} - BOOL LLSideTrayTab::handleScrollWheel(S32 x, S32 y, S32 clicks) { // Let children handle the event @@ -333,7 +323,6 @@ void LLSideTrayTab::dock(LLFloater* floater_tab) return; } - mFloaterCloseConn.disconnect(); setRect(side_tray->getLocalRect()); reshape(getRect().getWidth(), getRect().getHeight()); @@ -382,7 +371,6 @@ void LLSideTrayTab::undock(LLFloater* floater_tab) } floater_tab->addChild(this); - mFloaterCloseConn = floater_tab->setCloseCallback(boost::bind(&LLSideTrayTab::onFloaterClose, this, _2)); floater_tab->setTitle(mTabTitle); floater_tab->setName(getName()); @@ -510,7 +498,7 @@ public: LLSideTrayTab* tab = side_tray->getTab(getName()); if (!tab) return FALSE; - tab->toggleTabDocked(); + tab->setDocked(false); LLFloater* floater_tab = LLFloaterReg::getInstance("side_bar_tab", tab->getName()); if (!floater_tab) return FALSE; @@ -681,7 +669,7 @@ LLPanel* LLSideTray::openChildPanel(LLSideTrayTab* tab, const std::string& panel if (tab_attached && LLUI::sSettingGroups["config"]->getBOOL("OpenSidePanelsInFloaters")) { - tab->toggleTabDocked(); + tab->setDocked(false); tab_attached = false; } @@ -1102,7 +1090,7 @@ void LLSideTray::detachTabs() if (!is_visible) continue; llassert(isTabAttached(tab->getName())); - tab->toggleTabDocked(); + tab->setDocked(false); } } @@ -1354,8 +1342,9 @@ bool LLSideTray::isPanelActive(const std::string& panel_name) return (panel->getName() == panel_name); } -void LLSideTray::setTabDocked(const std::string& tab_name, bool dock) +void LLSideTray::setTabDocked(const std::string& tab_name, bool dock, bool toggle_floater /* = true*/) { + // Lookup tab by name. LLSideTrayTab* tab = getTab(tab_name); if (!tab) { // not a docked tab, look through detached tabs @@ -1372,20 +1361,12 @@ void LLSideTray::setTabDocked(const std::string& tab_name, bool dock) } - if (tab) - { - bool tab_attached = isTabAttached(tab_name); - LLFloater* floater_tab = LLFloaterReg::getInstance("side_bar_tab", tab_name); - if (!floater_tab) return; + llassert(tab != NULL); - if (dock && !tab_attached) - { - tab->dock(floater_tab); - } - else if (!dock && tab_attached) - { - tab->undock(floater_tab); - } + // Toggle its dock state. + if (tab && tab->isDocked() != dock) + { + tab->toggleTabDocked(toggle_floater); } } diff --git a/indra/newview/llsidetray.h b/indra/newview/llsidetray.h index 46765bfbcc..24882411f4 100644 --- a/indra/newview/llsidetray.h +++ b/indra/newview/llsidetray.h @@ -121,7 +121,7 @@ public: LLPanel* getActivePanel (); bool isPanelActive (const std::string& panel_name); - void setTabDocked(const std::string& tab_name, bool dock); + void setTabDocked(const std::string& tab_name, bool dock, bool toggle_floater = true); /* * get the panel of given type T (don't show it or do anything else with it) diff --git a/indra/newview/skins/default/xui/en/floater_preview_gesture.xml b/indra/newview/skins/default/xui/en/floater_preview_gesture.xml index a17cf8eea8..9f6199fada 100644 --- a/indra/newview/skins/default/xui/en/floater_preview_gesture.xml +++ b/indra/newview/skins/default/xui/en/floater_preview_gesture.xml @@ -120,14 +120,14 @@ font.style="BOLD" name="key_label" top_pad="10" - width="150"> + width="130"> Shortcut Key: </text> <combo_box height="20" label="None" layout="topleft" - left_delta="154" + left_delta="135" name="modifier_combo" top_delta="-4" width="55" /> diff --git a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml index 404537e1f2..cdc462109c 100644 --- a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml +++ b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml @@ -150,7 +150,7 @@ top_pad="20" left="30" height="10" - width="180"> + width="400"> Enable incoming chat popups: </text> <check_box diff --git a/indra/newview/skins/default/xui/es/floater_preview_gesture.xml b/indra/newview/skins/default/xui/es/floater_preview_gesture.xml index c58eb227aa..bd13262dcd 100644 --- a/indra/newview/skins/default/xui/es/floater_preview_gesture.xml +++ b/indra/newview/skins/default/xui/es/floater_preview_gesture.xml @@ -30,15 +30,15 @@ <text name="trigger_label"> Palabra clave: </text> - <text left="208" name="replace_text" tool_tip="Reemplaza la/s palabra/s clave con estas palabras. Por ejemplo, si cambia la palabra clave 'hola' por 'qué tal', se cambiará en el chat 'Quise decir hola' por 'Quise decir qué tal' en cuanto realice el gesto."> + <text name="replace_text" tool_tip="Reemplaza la/s palabra/s clave con estas palabras. Por ejemplo, si cambia la palabra clave 'hola' por 'qué tal', se cambiará en el chat 'Quise decir hola' por 'Quise decir qué tal' en cuanto realice el gesto."> Reemplazar por: </text> <line_editor name="replace_editor" tool_tip="Reemplaza la/s palabra/s clave con estas palabras. Por ejemplo, si cambia la palabra clave 'hola' por 'qué tal', se cambiará en el chat 'Quise decir hola' por 'Quise decir qué tal' en cuanto realice el gesto."/> <text name="key_label"> Atajo de teclado: </text> - <combo_box label="Ninguno" left="116" name="modifier_combo" width="76"/> - <combo_box label="Ninguno" left_delta="80" name="key_combo" width="76"/> + <combo_box label="Ninguno" name="modifier_combo" width="76"/> + <combo_box label="Ninguno" name="key_combo" width="50"/> <text name="library_label"> Biblioteca: </text> @@ -55,20 +55,20 @@ <button label="Arriba" name="up_btn"/> <button label="Abajo" name="down_btn"/> <button label="Quitar" name="delete_btn"/> - <text left="230" name="options_text" width="200"> + <text name="options_text" width="200"> (opciones) </text> <radio_group name="animation_trigger_type"> <radio_item label="Empezar" name="start"/> <radio_item label="Parar" name="stop"/> </radio_group> - <check_box bottom_delta="34" label="hasta que las animaciones estén hechas" name="wait_anim_check"/> - <check_box bottom_delta="-30" label="tiempo en segundos:" name="wait_time_check"/> - <line_editor left_delta="130" name="wait_time_editor"/> + <check_box label="hasta que las animaciones estén hechas" name="wait_anim_check"/> + <check_box label="tiempo en segundos:" name="wait_time_check"/> + <line_editor name="wait_time_editor"/> <text name="help_label"> Todos los pasos suceden a la vez, a menos que añadas pasos de espera. </text> - <check_box label="Disponible" left="130" name="active_check" tool_tip="Los gestos disponibles pueden realizarse escribiendo en el chat su frase clave o pulsando su tecla de acceso rápido. Generalmente, los gestos pasan a no disponibles cuando hay un conflicto de teclas."/> - <button label="Vista previa" name="preview_btn" width="85"/> + <check_box label="Disponible" name="active_check" tool_tip="Los gestos disponibles pueden realizarse escribiendo en el chat su frase clave o pulsando su tecla de acceso rápido. Generalmente, los gestos pasan a no disponibles cuando hay un conflicto de teclas."/> + <button label="Vista previa" name="preview_btn" width="82"/> <button label="Guardar" name="save_btn"/> </floater> diff --git a/indra/newview/skins/default/xui/es/menu_favorites.xml b/indra/newview/skins/default/xui/es/menu_favorites.xml index c8a7858ddb..85210d5c49 100644 --- a/indra/newview/skins/default/xui/es/menu_favorites.xml +++ b/indra/newview/skins/default/xui/es/menu_favorites.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="Popup"> - <menu_item_call label="Teleportarse" name="Teleport To Landmark"/> + <menu_item_call label="Teleportar" name="Teleport To Landmark"/> <menu_item_call label="Ver/Editar el hito" name="Landmark Open"/> <menu_item_call label="Copiar la SLurl" name="Copy slurl"/> <menu_item_call label="Mostrar en el mapa" name="Show On Map"/> diff --git a/indra/newview/skins/default/xui/es/menu_inspect_avatar_gear.xml b/indra/newview/skins/default/xui/es/menu_inspect_avatar_gear.xml index bee4c61da2..82fc8ddd39 100644 --- a/indra/newview/skins/default/xui/es/menu_inspect_avatar_gear.xml +++ b/indra/newview/skins/default/xui/es/menu_inspect_avatar_gear.xml @@ -4,7 +4,7 @@ <menu_item_call label="Añadir como amigo" name="add_friend"/> <menu_item_call label="MI" name="im"/> <menu_item_call label="Llamada" name="call"/> - <menu_item_call label="Teleportarse" name="teleport"/> + <menu_item_call label="Teleportar" name="teleport"/> <menu_item_call label="Invitar al grupo" name="invite_to_group"/> <menu_item_call label="Ignorar" name="block"/> <menu_item_call label="Designorar" name="unblock"/> diff --git a/indra/newview/skins/default/xui/es/menu_teleport_history_item.xml b/indra/newview/skins/default/xui/es/menu_teleport_history_item.xml index ed33c55aca..c482907812 100644 --- a/indra/newview/skins/default/xui/es/menu_teleport_history_item.xml +++ b/indra/newview/skins/default/xui/es/menu_teleport_history_item.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <context_menu name="Teleport History Item Context Menu"> - <menu_item_call label="Teleportarse" name="Teleport"/> + <menu_item_call label="Teleportar" name="Teleport"/> <menu_item_call label="Más información" name="More Information"/> <menu_item_call label="Copiar al portapapeles" name="CopyToClipboard"/> </context_menu> diff --git a/indra/newview/skins/default/xui/es/panel_region_terrain.xml b/indra/newview/skins/default/xui/es/panel_region_terrain.xml index 903b826a0b..98b10e4895 100644 --- a/indra/newview/skins/default/xui/es/panel_region_terrain.xml +++ b/indra/newview/skins/default/xui/es/panel_region_terrain.xml @@ -8,7 +8,7 @@ </text> <spinner label="Nivel del agua" name="water_height_spin"/> <button label="?" name="water_height_help"/> - <spinner label="Límite de elevación del terreno" name="terrain_raise_spin"/> + <spinner label="Límite de elevación del terreno" name="terrain_raise_spin"/> <button label="?" name="terrain_raise_help"/> <spinner label="Límite de bajada del terreno" name="terrain_lower_spin" bottom_delta="-34"/> <button label="?" name="terrain_lower_help"/> diff --git a/indra/newview/skins/default/xui/it/floater_preview_gesture.xml b/indra/newview/skins/default/xui/it/floater_preview_gesture.xml index 7e29db6336..2172b9848b 100644 --- a/indra/newview/skins/default/xui/it/floater_preview_gesture.xml +++ b/indra/newview/skins/default/xui/it/floater_preview_gesture.xml @@ -34,10 +34,10 @@ Sostituisci con: </text> <line_editor name="replace_editor" tool_tip="Sostituisci le parole chiave con questi termini. Per esempio, sostituire la parola chiave 'salve' con 'ciao' modificherà la chat 'Volevo solo dire salve' in 'Volevo solo dire ciao' e avvierà la gesture!"/> - <text name="key_label"> + <text name="key_label" width="147"> Scorciatoia da tastiera: </text> - <combo_box label="Nessuno" name="modifier_combo" /> + <combo_box left_delta="150" label="Nessuno" name="modifier_combo" /> <combo_box label="Nessuno" name="key_combo" /> <text name="library_label"> Libreria: diff --git a/indra/newview/skins/default/xui/pt/floater_pay.xml b/indra/newview/skins/default/xui/pt/floater_pay.xml index 26d5710c4a..8094ad376c 100644 --- a/indra/newview/skins/default/xui/pt/floater_pay.xml +++ b/indra/newview/skins/default/xui/pt/floater_pay.xml @@ -6,18 +6,18 @@ <string name="payee_resident"> Pagar residente </string> - <text left="5" name="payee_label" width="110"> + <text left="5" name="payee_label"> Pagar: </text> <icon name="icon_person" tool_tip="Pessoa"/> - <text left="115" name="payee_name"> + <text name="payee_name"> Test Name That Is Extremely Long To Check Clipping </text> - <button label="L$1" label_selected="L$1" left="112" name="fastpay 1"/> + <button label="L$1" label_selected="L$1" name="fastpay 1"/> <button label="L$5" label_selected="L$5" name="fastpay 5"/> - <button label="L$10" label_selected="L$10" left="112" name="fastpay 10"/> + <button label="L$10" label_selected="L$10" name="fastpay 10"/> <button label="L$20" label_selected="L$20" name="fastpay 20"/> - <text left="4" name="amount text"> + <text name="amount text"> Outro valor: </text> <button label="Pagar" label_selected="Pagar" name="pay btn"/> diff --git a/indra/newview/skins/default/xui/pt/notifications.xml b/indra/newview/skins/default/xui/pt/notifications.xml index 4adfe8e37f..0786a62f13 100644 --- a/indra/newview/skins/default/xui/pt/notifications.xml +++ b/indra/newview/skins/default/xui/pt/notifications.xml @@ -2730,7 +2730,7 @@ O botão será exibido quando houver espaço suficente. Selecione os residentes com quem compartilhar. </notification> <notification name="ShareItemsConfirmation"> - Tem certeza de que quer compartilhar os items abaixo? + Tem certeza de que quer compartilhar os itens abaixo? <nolink>[ITEMS]</nolink> diff --git a/indra/newview/skins/minimal/xui/es/menu_favorites.xml b/indra/newview/skins/minimal/xui/es/menu_favorites.xml index c8a7858ddb..85210d5c49 100644 --- a/indra/newview/skins/minimal/xui/es/menu_favorites.xml +++ b/indra/newview/skins/minimal/xui/es/menu_favorites.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <menu name="Popup"> - <menu_item_call label="Teleportarse" name="Teleport To Landmark"/> + <menu_item_call label="Teleportar" name="Teleport To Landmark"/> <menu_item_call label="Ver/Editar el hito" name="Landmark Open"/> <menu_item_call label="Copiar la SLurl" name="Copy slurl"/> <menu_item_call label="Mostrar en el mapa" name="Show On Map"/> diff --git a/indra/newview/skins/minimal/xui/es/menu_inspect_avatar_gear.xml b/indra/newview/skins/minimal/xui/es/menu_inspect_avatar_gear.xml index ebe33cea11..b4b964d096 100644 --- a/indra/newview/skins/minimal/xui/es/menu_inspect_avatar_gear.xml +++ b/indra/newview/skins/minimal/xui/es/menu_inspect_avatar_gear.xml @@ -3,7 +3,7 @@ <menu_item_call label="Ver el perfil" name="view_profile"/> <menu_item_call label="Añadir como amigo" name="add_friend"/> <menu_item_call label="MI" name="im"/> - <menu_item_call label="Teleportarse" name="teleport"/> + <menu_item_call label="Teleportar" name="teleport"/> <menu_item_call label="Ignorar" name="block"/> <menu_item_call label="Designorar" name="unblock"/> <menu_item_call label="Denunciar" name="report"/> diff --git a/indra/newview/skins/minimal/xui/es/menu_teleport_history_item.xml b/indra/newview/skins/minimal/xui/es/menu_teleport_history_item.xml index ed33c55aca..c482907812 100644 --- a/indra/newview/skins/minimal/xui/es/menu_teleport_history_item.xml +++ b/indra/newview/skins/minimal/xui/es/menu_teleport_history_item.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8" standalone="yes"?> <context_menu name="Teleport History Item Context Menu"> - <menu_item_call label="Teleportarse" name="Teleport"/> + <menu_item_call label="Teleportar" name="Teleport"/> <menu_item_call label="Más información" name="More Information"/> <menu_item_call label="Copiar al portapapeles" name="CopyToClipboard"/> </context_menu> |