meow-7.2.2
Tofu Linden 2010-05-08 13:15:47 +01:00
commit 2a032bda44
15 changed files with 163 additions and 69 deletions

View File

@ -3819,6 +3819,17 @@
<key>Value</key>
<real>1.0</real>
</map>
<key>InventoryLinking</key>
<map>
<key>Comment</key>
<string>Enable ability to create links to folders and items via "Paste as link".</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>InventorySortOrder</key>
<map>
<key>Comment</key>

View File

@ -70,43 +70,42 @@ ATI M56 .*ATI.*M56.* 1 1
ATI M71 .*ATI.*M71.* 1 1
ATI M72 .*ATI.*M72.* 1 1
ATI M76 .*ATI.*M76.* 3 1
ATI Mobility Radeon 7xxx .*ATI.*Mobility.*Radeon 7.* 0 1
ATI Mobility Radeon 8xxx .*ATI.*Mobility.*Radeon 8.* 0 1
ATI Mobility Radeon 9800 .*ATI.*Mobility.*98.* 0 1
ATI Mobility Radeon 9700 .*ATI.*Mobility.*97.* 0 1
ATI Mobility Radeon 9600 .*ATI.*Mobility.*96.* 0 1
ATI Mobility Radeon HD 2300 .*ATI.*Mobility.*HD.*23.* 1 1
ATI Mobility Radeon HD 2400 .*ATI.*Mobility.*HD.*24.* 1 1
ATI Mobility Radeon HD 2600 .*ATI.*Mobility.*HD.*26.* 3 1
ATI Mobility Radeon HD 3400 .*ATI.*Mobility.*HD.*34.* 1 1
ATI Mobility Radeon HD 3600 .*ATI.*Mobility.*HD.*36.* 3 1
ATI Mobility Radeon HD 3800 .*ATI.*Mobility.*HD.*38.* 3 1
ATI Mobility Radeon X1xxx .*ATI.*Mobility.*X1.* 0 1
ATI Mobility Radeon X2xxx .*ATI.*Mobility.*X2.* 0 1
ATI Mobility Radeon X3xx .*ATI.*Mobility.*X3.* 1 1
ATI Mobility Radeon X6xx .*ATI.*Mobility.*X6.* 1 1
ATI Mobility Radeon X7xx .*ATI.*Mobility.*X7.* 1 1
ATI Mobility Radeon Xxxx .*ATI.*Mobility.*X.* 0 1
ATI Mobility Radeon .*ATI.*Mobility.* 0 1
ATI Radeon HD 2300 .*ATI.*Radeon HD 23.* 0 1
ATI Radeon HD 2400 .*ATI.*Radeon HD.*24.* 1 1
ATI Radeon HD 2600 .*ATI.*Radeon HD 26.* 2 1
ATI Radeon HD 2900 .*ATI.*Radeon HD 29.* 3 1
ATI Radeon HD 3200 .*ATI.*Radeon.*HD.*32.* 1 1
ATI Radeon HD 3300 .*ATI.*Radeon HD.*33.* 1 1
ATI Radeon HD 3400 .*ATI.*Radeon HD.*34.* 1 1
ATI Radeon HD 3600 .*ATI.*Radeon HD.*36.* 3 1
ATI Radeon HD 3800 .*ATI.*Radeon HD.*38.* 3 1
ATI Radeon HD 4200 .*ATI.*Radeon HD 42.* 1 1
ATI Radeon HD 4300 .*ATI.*Radeon HD 43.* 1 1
ATI Radeon HD 4500 .*ATI.*Radeon HD 45.* 3 1
ATI Radeon HD 4600 .*ATI.*Radeon HD.*46.* 3 1
ATI Radeon HD 4700 .*ATI.*Radeon HD 47.* 3 1
ATI Radeon HD 4800 .*ATI.*Radeon.*HD.*48.* 3 1
ATI Radeon HD 5600 .*ATI.*Radeon.*HD.*56.* 3 1
ATI Radeon HD 5700 .*ATI.*Radeon.*HD.*57.* 3 1
ATI Radeon HD 5800 .*ATI.*Radeon.*HD.*58.* 3 1
ATI Radeon HD 5900 .*ATI.*Radeon.*HD.*59.* 3 1
ATI Mobility Radeon 7xxx .*ATI.*Mobility *Radeon 7.* 0 1
ATI Mobility Radeon 8xxx .*ATI.*Mobility *Radeon 8.* 0 1
ATI Mobility Radeon 9800 .*ATI.*Mobility *98.* 0 1
ATI Mobility Radeon 9700 .*ATI.*Mobility *97.* 0 1
ATI Mobility Radeon 9600 .*ATI.*Mobility *96.* 0 1
ATI Mobility Radeon HD 2300 .*ATI.*Mobility *HD *23.* 1 1
ATI Mobility Radeon HD 2400 .*ATI.*Mobility *HD *24.* 1 1
ATI Mobility Radeon HD 2600 .*ATI.*Mobility *HD *26.* 3 1
ATI Mobility Radeon HD 3400 .*ATI.*Mobility *HD *34.* 1 1
ATI Mobility Radeon HD 3600 .*ATI.*Mobility *HD *36.* 3 1
ATI Mobility Radeon HD 3800 .*ATI.*Mobility *HD *38.* 3 1
ATI Mobility Radeon X1xxx .*ATI.*Mobility *X1.* 0 1
ATI Mobility Radeon X2xxx .*ATI.*Mobility *X2.* 0 1
ATI Mobility Radeon X3xx .*ATI.*Mobility *X3.* 1 1
ATI Mobility Radeon X6xx .*ATI.*Mobility *X6.* 1 1
ATI Mobility Radeon X7xx .*ATI.*Mobility *X7.* 1 1
ATI Mobility Radeon Xxxx .*ATI.*Mobility *X.* 0 1
ATI Radeon HD 2300 .*ATI.*Radeon HD *23.* 0 1
ATI Radeon HD 2400 .*ATI.*Radeon HD *24.* 1 1
ATI Radeon HD 2600 .*ATI.*Radeon HD *26.* 2 1
ATI Radeon HD 2900 .*ATI.*Radeon HD *29.* 3 1
ATI Radeon HD 3200 .*ATI.*Radeon *HD *32.* 0 1
ATI Radeon HD 3300 .*ATI.*Radeon HD *33.* 1 1
ATI Radeon HD 3400 .*ATI.*Radeon HD *34.* 1 1
ATI Radeon HD 3600 .*ATI.*Radeon HD *36.* 3 1
ATI Radeon HD 3800 .*ATI.*Radeon HD *38.* 3 1
ATI Radeon HD 4200 .*ATI.*Radeon HD *42.* 1 1
ATI Radeon HD 4300 .*ATI.*Radeon HD *43.* 1 1
ATI Radeon HD 4500 .*ATI.*Radeon HD *45.* 3 1
ATI Radeon HD 4600 .*ATI.*Radeon HD *46.* 3 1
ATI Radeon HD 4700 .*ATI.*Radeon HD *47.* 3 1
ATI Radeon HD 4800 .*ATI.*Radeon.*HD *48.* 3 1
ATI Radeon HD 5600 .*ATI.*Radeon.*HD *56.* 3 1
ATI Radeon HD 5700 .*ATI.*Radeon.*HD *57.* 3 1
ATI Radeon HD 5800 .*ATI.*Radeon.*HD *58.* 3 1
ATI Radeon HD 5900 .*ATI.*Radeon.*HD *59.* 3 1
ATI Radeon OpenGL .*ATI.*Radeon OpenGL.* 0 0
ATI Radeon 2100 .*ATI.*Radeon 21.* 0 1
ATI Radeon 3100 .*ATI.*Radeon 31.* 1 1
@ -128,12 +127,12 @@ ATI Radeon VE .*ATI.*Radeon.*VE.* 0 0
ATI Radeon X1000 .*ATI.*Radeon *X10.* 0 1
ATI Radeon X1200 .*ATI.*Radeon *X12.* 0 1
ATI Radeon X1300 .*ATI.*Radeon *X13.* 1 1
ATI Radeon X1400 .*ATI.*Radeon X14.* 1 1
ATI Radeon X1500 .*ATI.*Radeon X15.* 1 1
ATI Radeon X1400 .*ATI.*Radeon *X14.* 1 1
ATI Radeon X1500 .*ATI.*Radeon *X15.* 1 1
ATI Radeon X1600 .*ATI.*Radeon *X16.* 1 1
ATI Radeon X1700 .*ATI.*Radeon X17.* 1 1
ATI Radeon X1800 .*ATI.*Radeon X18.* 3 1
ATI Radeon X1900 .*ATI.*Radeon X19.* 3 1
ATI Radeon X1700 .*ATI.*Radeon *X17.* 1 1
ATI Radeon X1800 .*ATI.*Radeon *X18.* 3 1
ATI Radeon X1900 .*ATI.*Radeon *X19.* 3 1
ATI Radeon X300 .*ATI.*Radeon *X3.* 0 1
ATI Radeon X400 .*ATI.*Radeon X4.* 0 1
ATI Radeon X500 .*ATI.*Radeon X5.* 0 1

View File

@ -645,10 +645,13 @@ void LLInvFVBridge::getClipboardEntries(bool show_asset_id,
disabled_items.push_back(std::string("Paste"));
}
items.push_back(std::string("Paste As Link"));
if (!isClipboardPasteableAsLink() || (flags & FIRST_SELECTED_ITEM) == 0)
if (gSavedSettings.getBOOL("InventoryLinking"))
{
disabled_items.push_back(std::string("Paste As Link"));
items.push_back(std::string("Paste As Link"));
if (!isClipboardPasteableAsLink() || (flags & FIRST_SELECTED_ITEM) == 0)
{
disabled_items.push_back(std::string("Paste As Link"));
}
}
items.push_back(std::string("Paste Separator"));
@ -1405,13 +1408,65 @@ BOOL LLItemBridge::removeItem()
{
return FALSE;
}
// move it to the trash
LLPreview::hide(mUUID, TRUE);
LLInventoryModel* model = getInventoryModel();
if(!model) return FALSE;
const LLUUID trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH);
const LLUUID& trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH);
LLViewerInventoryItem* item = getItem();
if (!item) return FALSE;
// Already in trash
if (model->isObjectDescendentOf(mUUID, trash_id)) return FALSE;
LLNotification::Params params("ConfirmItemDeleteHasLinks");
params.functor.function(boost::bind(&LLItemBridge::confirmRemoveItem, this, _1, _2));
// Check if this item has any links. If generic inventory linking is enabled,
// we can't do this check because we may have items in a folder somewhere that is
// not yet in memory, so we don't want false negatives. (If disabled, then we
// know we only have links in the Outfits folder which we explicitly fetch.)
if (!gSavedSettings.getBOOL("InventoryLinking"))
{
if (!item->getIsLinkType())
{
LLInventoryModel::cat_array_t cat_array;
LLInventoryModel::item_array_t item_array;
LLLinkedItemIDMatches is_linked_item_match(mUUID);
gInventory.collectDescendentsIf(gInventory.getRootFolderID(),
cat_array,
item_array,
LLInventoryModel::INCLUDE_TRASH,
is_linked_item_match);
const U32 num_links = cat_array.size() + item_array.size();
if (num_links > 0)
{
// Warn if the user is will break any links when deleting this item.
LLNotifications::instance().add(params);
return FALSE;
}
}
}
LLNotifications::instance().forceResponse(params, 0);
return TRUE;
}
BOOL LLItemBridge::confirmRemoveItem(const LLSD& notification, const LLSD& response)
{
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
if (option != 0) return FALSE;
LLInventoryModel* model = getInventoryModel();
if (!model) return FALSE;
LLViewerInventoryItem* item = getItem();
if (!item) return FALSE;
const LLUUID& trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH);
// if item is not already in trash
if(item && !model->isObjectDescendentOf(mUUID, trash_id))
{
@ -1420,11 +1475,7 @@ BOOL LLItemBridge::removeItem()
// delete was successful
return TRUE;
}
else
{
// tried to delete already item in trash (should purge?)
return FALSE;
}
return FALSE;
}
BOOL LLItemBridge::isItemCopyable() const
@ -1589,8 +1640,12 @@ BOOL LLFolderBridge::isUpToDate() const
BOOL LLFolderBridge::isItemCopyable() const
{
// Can copy folders to paste-as-link, but not for straight paste.
return TRUE;
if (gSavedSettings.getBOOL("InventoryLinking"))
{
// Can copy folders to paste-as-link, but not for straight paste.
return TRUE;
}
return FALSE;
}
BOOL LLFolderBridge::copyToClipboard() const

View File

@ -267,6 +267,8 @@ protected:
virtual BOOL isItemPermissive() const;
static void buildDisplayName(LLInventoryItem* item, std::string& name);
mutable std::string mDisplayName;
BOOL confirmRemoveItem(const LLSD& notification, const LLSD& response);
};
class LLFolderBridge : public LLInvFVBridge

View File

@ -91,6 +91,15 @@ BOOL LLPanelOutfitsInventory::postBuild()
initTabPanels();
initListCommandsHandlers();
// Fetch your outfits folder so that the links are in memory.
// ( This is only necessary if we want to show a warning if a user deletes an item that has a
// a link in an outfit, see "ConfirmItemDeleteHasLinks". )
const LLUUID &outfits_cat = gInventory.findCategoryUUIDForType(LLFolderType::FT_OUTFIT, false);
if (outfits_cat.notNull())
{
LLInventoryModelBackgroundFetch::instance().start(outfits_cat);
}
return TRUE;
}

View File

@ -6,6 +6,7 @@
</menu>
<menu label="Hjælp" name="Help">
<menu_item_call label="[SECOND_LIFE] hjælp" name="Second Life Help"/>
<menu_item_call label="Om [APP_NAME]" name="About Second Life"/>
</menu>
<menu_item_check label="Vis debug menu" name="Show Debug Menu"/>
<menu label="Debug" name="Debug">

View File

@ -2122,6 +2122,19 @@ Price to pay for listing must be at least L$[MIN_PRICE].
Please enter a higher price.
</notification>
<notification
icon="alertmodal.tga"
name="ConfirmItemDeleteHasLinks"
type="alertmodal">
At least one of the items you has link items that point to it. If you delete this item, its links will permanently stop working. It is strongly advised to delete the links first.
Are you sure you want to delete these items?
<usetemplate
name="okcancelbuttons"
notext="Cancel"
yestext="OK"/>
</notification>
<notification
icon="alertmodal.tga"
name="ConfirmObjectDeleteLock"

View File

@ -20,10 +20,10 @@
Venta de terreno
</text>
<text name="by_owner_label">
por el propietario
por el dueño
</text>
<text name="auction_label">
subasta de terreno
subasta
</text>
<button name="Go Home" tool_tip="Teleportar a mi Base"/>
<text name="Home_label">

View File

@ -6,6 +6,7 @@
</menu>
<menu label="Ayuda" name="Help">
<menu_item_call label="Ayuda de [SECOND_LIFE]" name="Second Life Help"/>
<menu_item_call label="Acerca de [APP_NAME]" name="About Second Life"/>
</menu>
<menu_item_check label="Mostrar el menú &apos;Debug&apos;" name="Show Debug Menu"/>
<menu label="Depurar" name="Debug">

View File

@ -6,6 +6,7 @@
</menu>
<menu label="Aiuto" name="Help">
<menu_item_call label="Aiuto di [SECOND_LIFE]" name="Second Life Help"/>
<menu_item_call label="Informazioni su [APP_NAME]" name="About Second Life"/>
</menu>
<menu_item_check label="Mostra menu Debug" name="Show Debug Menu"/>
<menu label="Debug" name="Debug">

View File

@ -403,7 +403,7 @@
<text name="glow label">
Gloed
</text>
<check_box label="Volledige &#10;helderheid" name="checkbox fullbright" bottom_delta="-21"/>
<check_box label="Volledige helderheid" name="checkbox fullbright"/>
<text name="tex gen">
Mapping
</text>

View File

@ -6,6 +6,7 @@
</menu>
<menu label="Pomoc" name="Help">
<menu_item_call label="[SECOND_LIFE]: Pomoc" name="Second Life Help"/>
<menu_item_call label="O [APP_NAME]" name="About Second Life"/>
</menu>
<menu label="Debug" name="Debug">
<menu label="Edytuj" name="Edit">

View File

@ -6,6 +6,7 @@
</menu>
<menu label="Ajuda" name="Help">
<menu_item_call label="Ajuda do [SECOND_LIFE]" name="Second Life Help"/>
<menu_item_call label="Sobre [APP_NAME]" name="About Second Life"/>
</menu>
<menu_item_check label="Exibir menu de depuração" name="Show Debug Menu"/>
<menu label="Depurar" name="Debug">

View File

@ -6,15 +6,15 @@
<text name="region_text">
desconhecido
</text>
<check_box label="Desabilitar Scripts" name="disable_scripts_check" tool_tip="Desabilitar todos os scripts nesta região"/>
<check_box label="Desativar scripts" name="disable_scripts_check" tool_tip="Desativar todos os scripts nesta região"/>
<button label="?" name="disable_scripts_help"/>
<check_box label="Desabilitar colisões" name="disable_collisions_check" tool_tip="Desabilitar colisões de não-avatares nessa região"/>
<check_box label="Desativar colisões" name="disable_collisions_check" tool_tip="Desabilitar colisões de não-avatares nessa região"/>
<button label="?" name="disable_collisions_help"/>
<check_box label="Desabilitar física" name="disable_physics_check" tool_tip="Desabilitar toda a físíca nesta região"/>
<check_box label="Desativar física" name="disable_physics_check" tool_tip="Desativar toda a físíca nesta região"/>
<button label="?" name="disable_physics_help"/>
<button label="Aplicar" name="apply_btn"/>
<text name="objret_text_lbl" width="130">
Retornar objeto
Devolver objeto
</text>
<text name="resident_text_lbl">
Residente:
@ -27,14 +27,14 @@
Opções:
</text>
<check_box label="Com scripts" name="return_scripts" tool_tip="Só devolver objetos com scripts"/>
<check_box label="No terreno de outra pessoa" name="return_other_land" tool_tip="Retornar apenas objetos que estejam na terra pertencente a alguém"/>
<check_box label="Em todas as regiões desta propriedade" name="return_estate_wide" tool_tip="Retornar objetos em todas as regiões que constituem esta propriedade"/>
<button label="Retornar" name="return_btn"/>
<button label="Pegar os principais colidentes..." name="top_colliders_btn" tool_tip="Lista dos objetos que experimentam as mais potenciais colisões" width="280"/>
<check_box label="No terreno de outra pessoa" name="return_other_land" tool_tip="Devolver apenas objetos que estejam em terrenos de outra pessoa"/>
<check_box label="Em todas as regiões desta propriedade" name="return_estate_wide" tool_tip="Devolver objetos em todas as regiões que constituem esta propriedade"/>
<button label="Devolver" name="return_btn"/>
<button label="Principais colidentes..." name="top_colliders_btn" tool_tip="Lista dos objetos com maior potencial de colisão" width="280"/>
<button label="?" left="297" name="top_colliders_help"/>
<button label="Pegar Principais Scripts..." name="top_scripts_btn" tool_tip="Lista de objetos gastando mais tempo rodando scripts" width="280"/>
<button label="Principais scripts..." name="top_scripts_btn" tool_tip="Lista de objetos que mais passam tempo executando scripts" width="280"/>
<button label="?" left="297" name="top_scripts_help"/>
<button label="Reiniciar a Região" name="restart_btn" tool_tip="Dar 2 minutos de contagem regressiva e reiniciar a região"/>
<button label="Reiniciar a região" name="restart_btn" tool_tip="Após 2 minutos de contagem regressiva, reiniciar a região"/>
<button label="?" name="restart_help"/>
<button label="Atrasar o Reinicio" name="cancel_restart_btn" tool_tip="Atrasar o reinicio da região por uma hora"/>
<button label="Adiar reinício" name="cancel_restart_btn" tool_tip="Adiar o reinício da região por uma hora"/>
</panel>

View File

@ -18,12 +18,12 @@
<text name="region_type">
(Desconhecido)
</text>
<check_box label="Bloquear terraplanagem" name="block_terraform_check"/>
<check_box label="Bloquear terraplanagens" name="block_terraform_check"/>
<check_box label="Bloquear voos" name="block_fly_check"/>
<check_box label="Permitir danos" name="allow_damage_check"/>
<check_box label="Limitar empurrões" name="restrict_pushobject"/>
<check_box label="Permitir revenda de terrenos" name="allow_land_resell_check"/>
<check_box label="Permitir junção e divisão de terrenos" name="allow_parcel_changes_check"/>
<check_box label="Permitir união e divisão de terrenos" name="allow_parcel_changes_check"/>
<check_box label="Não mostrar nos resultados de pesquisa" name="block_parcel_search_check" tool_tip="Mostrar esta região e lotes nos resultados de pesquisa"/>
<spinner label="Limite do agente" name="agent_limit_spin"/>
<spinner label="Bônus do objeto" name="object_bonus_spin"/>