Nicky 2014-04-06 19:15:45 +02:00
commit 5d6b81f360
24 changed files with 162 additions and 98 deletions

View File

@ -47,23 +47,21 @@ BOOL FloaterMediaLists::postBuild()
childSetAction("remove_whitelist", boost::bind(&FloaterMediaLists::onWhitelistRemove, this));
childSetAction("add_blacklist", boost::bind(&FloaterMediaLists::onBlacklistAdd, this));
childSetAction("remove_blacklist", boost::bind(&FloaterMediaLists::onBlacklistRemove, this));
if (!mWhitelistSLC || !mBlacklistSLC)
{
return TRUE;
}
for(S32 i = 0;i<(S32)LLViewerParcelMedia::sMediaFilterList.size();i++)
for (LLSD::array_iterator p_itr = LLViewerParcelMedia::sMediaFilterList.beginArray();
p_itr != LLViewerParcelMedia::sMediaFilterList.endArray();
++p_itr)
{
LLSD itr = (*p_itr);
LLSD element;
element["columns"][0]["column"] = "list";
element["columns"][0]["value"] = LLViewerParcelMedia::sMediaFilterList[i]["domain"].asString();
if (LLViewerParcelMedia::sMediaFilterList[i]["action"].asString() == "allow")
element["columns"][0]["value"] = itr["domain"].asString();
if (itr["action"].asString() == "allow")
{
mWhitelistSLC->addElement(element);
mWhitelistSLC->sortByColumn("list", TRUE);
}
else if (LLViewerParcelMedia::sMediaFilterList[i]["action"].asString() == "deny")
else if (itr["action"].asString() == "deny")
{
mBlacklistSLC->addElement(element);
mBlacklistSLC->sortByColumn("list", TRUE);

View File

@ -60,6 +60,9 @@
#include <fstream>
#include <streambuf>
#if OPENSIM
#include "llviewernetwork.h"
#endif
const std::string FS_BRIDGE_FOLDER = "#LSL Bridge";
const std::string FS_BRIDGE_CONTAINER_FOLDER = "Landscaping";
@ -111,7 +114,7 @@ FSLSLBridge::~FSLSLBridge()
{
}
bool FSLSLBridge::lslToViewer(std::string message, LLUUID fromID, LLUUID ownerID)
bool FSLSLBridge::lslToViewer(const std::string& message, const LLUUID& fromID, const LLUUID& ownerID)
{
if (!gSavedSettings.getBOOL("UseLSLBridge"))
{
@ -275,9 +278,15 @@ bool FSLSLBridge::lslToViewer(std::string message, LLUUID fromID, LLUUID ownerID
return status;
}
bool FSLSLBridge::viewerToLSL(std::string message, FSLSLBridgeRequestResponder* responder)
bool FSLSLBridge::canUseBridge()
{
if (!gSavedSettings.getBOOL("UseLSLBridge"))
static LLCachedControl<bool> sUseLSLBridge(gSavedSettings, "UseLSLBridge");
return (isBridgeValid() && sUseLSLBridge);
}
bool FSLSLBridge::viewerToLSL(const std::string& message, FSLSLBridgeRequestResponder* responder)
{
if (!canUseBridge())
{
return false;
}
@ -291,7 +300,7 @@ bool FSLSLBridge::viewerToLSL(std::string message, FSLSLBridgeRequestResponder*
return true;
}
bool FSLSLBridge::updateBoolSettingValue(std::string msgVal)
bool FSLSLBridge::updateBoolSettingValue(const std::string& msgVal)
{
std::string boolVal = "0";
@ -303,7 +312,7 @@ bool FSLSLBridge::updateBoolSettingValue(std::string msgVal)
return viewerToLSL(msgVal + "|" + boolVal, new FSLSLBridgeRequestResponder());
}
bool FSLSLBridge::updateBoolSettingValue(std::string msgVal, bool contentVal)
bool FSLSLBridge::updateBoolSettingValue(const std::string& msgVal, bool contentVal)
{
std::string boolVal = "0";
@ -356,7 +365,7 @@ void FSLSLBridge::recreateBridge()
}
}
// clear the stored bridge ID - we are starting over.
mpBridge = 0; //the object itself will get cleaned up when new one is created.
mpBridge = NULL; //the object itself will get cleaned up when new one is created.
initCreationStep();
}
@ -438,6 +447,11 @@ void FSLSLBridge::startCreation()
void FSLSLBridge::initCreationStep()
{
// Don't create on OpenSim. We need to fallback to another creation process there, unfortunately.
// There is no way to ensure a rock object will ever be in a grid's Library.
#if OPENSIM
if (LLGridManager::getInstance()->isInOpenSim()) return;
#endif
mBridgeCreating = true;
//announce yourself
reportToNearbyChat(LLTrans::getString("fsbridge_creating"));
@ -715,7 +729,7 @@ void FSLSLBridge::setupBridgePrim(LLViewerObject* object)
object->setVolume(LLVolumeParams(profParams, pathParams), 0);
object->setScale(LLVector3(10.0f, 10.0f, 10.0f), TRUE);
for (int i = 0; i < object->getNumTEs(); i++)
for (S32 i = 0; i < object->getNumTEs(); i++)
{
LLViewerTexture* image = LLViewerTextureManager::getFetchedTexture( IMG_INVISIBLE );
object->setTEImage(i, image); //transparent texture
@ -904,8 +918,8 @@ void FSLSLBridgeScriptCallback::fire(const LLUUID& inv_item)
std::string FSLSLBridgeScriptCallback::prepUploadFile()
{
std::string fName = gDirUtilp->getExpandedFilename(LL_PATH_FS_RESOURCES, UPLOAD_SCRIPT_CURRENT);
std::string fNew = gDirUtilp->getExpandedFilename(LL_PATH_CACHE,UPLOAD_SCRIPT_CURRENT);
const std::string fName = gDirUtilp->getExpandedFilename(LL_PATH_FS_RESOURCES, UPLOAD_SCRIPT_CURRENT);
const std::string fNew = gDirUtilp->getExpandedFilename(LL_PATH_CACHE,UPLOAD_SCRIPT_CURRENT);
LLFILE* fpIn = LLFile::fopen(fName, "rt");
if (!fpIn)
@ -928,7 +942,7 @@ std::string FSLSLBridgeScriptCallback::prepUploadFile()
std::string bridgeScript( (char const*)&vctData[0] );
std::string bridgekey = "BRIDGEKEY";
const std::string bridgekey = "BRIDGEKEY";
bridgeScript.replace(bridgeScript.find(bridgekey), bridgekey.length(), FSLSLBridge::getInstance()->findFSCategory().asString());
LLFILE *fpOut = LLFile::fopen(fNew, "wt");
@ -947,9 +961,9 @@ std::string FSLSLBridgeScriptCallback::prepUploadFile()
return fNew;
}
void FSLSLBridge :: checkBridgeScriptName(std::string fileName)
void FSLSLBridge::checkBridgeScriptName(const std::string& fileName)
{
if ((fileName.length() == 0) || !mBridgeCreating)
if ((fileName.empty()) || !mBridgeCreating)
{
LL_WARNS("FSLSLBridge") << "Bridge script length was zero, or bridge was not marked as under creation. Aborting." << LL_ENDL;
return;
@ -963,7 +977,7 @@ void FSLSLBridge :: checkBridgeScriptName(std::string fileName)
}
//need to parse out the last length of a GUID and compare to saved possible names.
std::string fileOnly = fileName.substr(fileName.length() - UPLOAD_SCRIPT_CURRENT.length(), UPLOAD_SCRIPT_CURRENT.length());
const std::string fileOnly = fileName.substr(fileName.length() - UPLOAD_SCRIPT_CURRENT.length(), UPLOAD_SCRIPT_CURRENT.length());
if (fileOnly == UPLOAD_SCRIPT_CURRENT)
{
@ -1022,7 +1036,7 @@ void FSLSLBridge::finishBridge()
//
// Helper functions
///
bool FSLSLBridge::isItemAttached(LLUUID iID)
bool FSLSLBridge::isItemAttached(const LLUUID& iID)
{
return (isAgentAvatarValid() && gAgentAvatarp->isWearingAttachment(iID));
}
@ -1122,7 +1136,7 @@ LLUUID FSLSLBridge::findFSBridgeContainerCategory()
return LLUUID();
}
LLViewerInventoryItem* FSLSLBridge::findInvObject(std::string obj_name, LLUUID catID, LLAssetType::EType type)
LLViewerInventoryItem* FSLSLBridge::findInvObject(const std::string& obj_name, const LLUUID& catID, LLAssetType::EType type)
{
LLViewerInventoryCategory::cat_array_t cats;
LLViewerInventoryItem::item_array_t items;
@ -1151,7 +1165,7 @@ LLViewerInventoryItem* FSLSLBridge::findInvObject(std::string obj_name, LLUUID c
return NULL;
}
void FSLSLBridge::cleanUpBridgeFolder(std::string nameToCleanUp)
void FSLSLBridge::cleanUpBridgeFolder(const std::string& nameToCleanUp)
{
LL_INFOS("FSLSLBridge") << "Cleaning leftover scripts and bridges for folder " << nameToCleanUp << LL_ENDL;

View File

@ -58,11 +58,11 @@ public:
FSLSLBridge();
~FSLSLBridge();
bool lslToViewer(std::string message, LLUUID fromID, LLUUID ownerID);
bool viewerToLSL(std::string message, FSLSLBridgeRequestResponder* responder = NULL);
bool lslToViewer(const std::string& message, const LLUUID& fromID, const LLUUID& ownerID);
bool viewerToLSL(const std::string& message, FSLSLBridgeRequestResponder* responder = NULL);
bool updateBoolSettingValue(std::string msgVal);
bool updateBoolSettingValue(std::string msgVal, bool contentVal);
bool updateBoolSettingValue(const std::string& msgVal);
bool updateBoolSettingValue(const std::string& msgVal, bool contentVal);
void initBridge();
void recreateBridge();
@ -74,9 +74,9 @@ public:
void setBridge(LLViewerInventoryItem* item) { mpBridge = item; };
LLViewerInventoryItem* getBridge() { return mpBridge; };
bool isBridgeValid() const { return NULL != mpBridge; }
bool canUseBridge();
void checkBridgeScriptName(std::string fileName);
void checkBridgeScriptName(const std::string& fileName);
std::string currentFullName() { return mCurrentFullName; }
LLUUID getBridgeFolder() { return mBridgeFolderID; }
@ -100,18 +100,19 @@ private:
LLUUID mBridgeUUID;
bool mIsFirstCallDone; //initialization conversation
bool isBridgeValid() const { return NULL != mpBridge; }
protected:
LLViewerInventoryItem* findInvObject(std::string obj_name, LLUUID catID, LLAssetType::EType type);
LLViewerInventoryItem* findInvObject(const std::string& obj_name, const LLUUID& catID, LLAssetType::EType type);
LLUUID findFSCategory();
LLUUID findFSBridgeContainerCategory();
bool isItemAttached(LLUUID iID);
bool isItemAttached(const LLUUID& iID);
void createNewBridge();
void create_script_inner(LLViewerObject* object);
bool isOldBridgeVersion(LLInventoryItem* item);
void cleanUpBridgeFolder();
void cleanUpBridgeFolder(std::string nameToCleanUp);
void cleanUpBridgeFolder(const std::string& nameToCleanUp);
void setupBridgePrim(LLViewerObject* object);
void initCreationStep();
void cleanUpBridge();

View File

@ -169,10 +169,10 @@ void FSRadar::updateRadarList()
static LLCachedControl<bool> RadarLeaveChannelAlert(gSavedSettings, "RadarLeaveChannelAlert");
static LLCachedControl<F32> nearMeRange(gSavedSettings, "NearMeRange");
static LLCachedControl<bool> limitRange(gSavedSettings, "LimitRadarByRange");
static LLCachedControl<bool> sUseLSLBridge(gSavedSettings, "UseLSLBridge");
static LLCachedControl<F32> RenderFarClip(gSavedSettings, "RenderFarClip");
static LLCachedControl<bool> sFSLegacyRadarFriendColoring(gSavedSettings, "FSLegacyRadarFriendColoring");
static LLCachedControl<bool> sRadarColorNamesByDistance(gSavedSettings, "FSRadarColorNamesByDistance", false);
bool sUseLSLBridge = FSLSLBridge::instance().canUseBridge();
F32 drawRadius(RenderFarClip);
const LLVector3d& posSelf = gAgent.getPositionGlobal();

View File

@ -4731,7 +4731,7 @@ void LLAgent::doTeleportViaLocation(const LLVector3d& pos_global)
sendReliableMessage();
}
// <FS:TT> Client LSL Bridge
if (gSavedSettings.getBOOL("UseLSLBridge") && isLocal)
if (FSLSLBridge::instance().canUseBridge() && isLocal)
{
teleportBridgeGlobal(pos_global);
}
@ -4771,7 +4771,7 @@ void LLAgent::doTeleportViaLocationLookAt(const LLVector3d& pos_global)
teleportRequest(region_handle, pos_local, getTeleportKeepsLookAt());
// <FS:TT> Client LSL Bridge
if (gSavedSettings.getBOOL("UseLSLBridge"))
if (FSLSLBridge::instance().canUseBridge())
{
if (region_handle == to_region_handle(getPositionGlobal()))
{

View File

@ -1493,7 +1493,7 @@ void LLAppearanceMgr::takeOffOutfit(const LLUUID& cat_id)
gInventory.collectDescendentsIf(cat_id, cats, items, FALSE, collector);
// <FS:TT> Client LSL Bridge
if (gSavedSettings.getBOOL("UseLSLBridge"))
if (FSLSLBridge::instance().canUseBridge())
{
//if replacing - make sure bridge stays.
if (FSLSLBridge::instance().getBridge())
@ -2034,7 +2034,7 @@ void LLAppearanceMgr::updateCOF(LLInventoryModel::item_array_t& body_items_new,
obj_items.insert(obj_items.end(), obj_items_new.begin(), obj_items_new.end());
// [/RLVa:KB]
//-TT Client LSL Bridge
if (gSavedSettings.getBOOL("UseLSLBridge"))
if (FSLSLBridge::instance().canUseBridge())
{
//if replacing - make sure bridge stays.
if (!append && FSLSLBridge::instance().getBridge())
@ -3893,6 +3893,12 @@ void LLAppearanceMgr::removeItemsFromAvatar(const uuid_vec_t& ids_to_remove)
{
continue;
}
// <FS:Ansariel> LSL Bridge
if (FSLSLBridge::instance().canUseBridge() && linked_item == FSLSLBridge::instance().getBridge())
{
continue;
}
// </FS:Ansariel>
fUpdateAppearance = true;
const LLUUID& linked_item_id = gInventory.getLinkedItemID(*it);

View File

@ -610,7 +610,7 @@ void LLUpdateAgentInventoryResponder::uploadComplete(const LLSD& content)
}
}
// <FS:TT> Client LSL Bridge
if (gSavedSettings.getBOOL("UseLSLBridge"))
if (FSLSLBridge::instance().canUseBridge())
{
FSLSLBridge::instance().checkBridgeScriptName(mFileName);
}

View File

@ -257,6 +257,20 @@ bool callback_clear_inventory_cache(const LLSD& notification, const LLSD& respon
}
// </FS:Ansariel>
// <FS:Ansariel> Clear inventory cache button
bool callback_clear_web_browser_cache(const LLSD& notification, const LLSD& response)
{
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
if ( option == 0 ) // YES
{
LLViewerMedia::clearAllCaches();
LLViewerMedia::clearAllCookies();
}
return false;
}
// </FS:Ansariel>
bool callback_clear_cache(const LLSD& notification, const LLSD& response)
{
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
@ -450,6 +464,9 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key)
// <FS:Ansariel> Clear inventory cache button
mCommitCallbackRegistrar.add("Pref.InvClearCache", boost::bind(&LLFloaterPreference::onClickInventoryClearCache, this));
// </FS:Ansariel>
// <FS:Ansariel> Clear web browser cache button
mCommitCallbackRegistrar.add("Pref.WebBrowserClearCache", boost::bind(&LLFloaterPreference::onClickWebBrowserClearCache, this));
// </FS:Ansariel>
mCommitCallbackRegistrar.add("Pref.SetCache", boost::bind(&LLFloaterPreference::onClickSetCache, this));
mCommitCallbackRegistrar.add("Pref.ResetCache", boost::bind(&LLFloaterPreference::onClickResetCache, this));
// mCommitCallbackRegistrar.add("Pref.ClickSkin", boost::bind(&LLFloaterPreference::onClickSkin, this,_1, _2));
@ -1210,6 +1227,13 @@ void LLFloaterPreference::onClickInventoryClearCache()
}
// </FS:Ansariel>
// <FS:Ansariel> Clear web browser cache button
void LLFloaterPreference::onClickWebBrowserClearCache()
{
LLNotificationsUtil::add("ConfirmClearWebBrowserCache", LLSD(), LLSD(), callback_clear_web_browser_cache);
}
// </FS:Ansariel>
// Called when user changes language via the combobox.
void LLFloaterPreference::onLanguageChange()
{
@ -2227,6 +2251,9 @@ void LLFloaterPreference::setPersonalInfo(const std::string& visibility, bool im
// <FS:Ansariel> Clear inventory cache button
getChildView("ClearInventoryCache")->setEnabled(TRUE);
// <FS:Ansariel> Clear web browser cache button
getChildView("ClearWebBrowserCache")->setEnabled(TRUE);
}
void LLFloaterPreference::refreshUI()
@ -2689,15 +2716,6 @@ BOOL LLPanelPreference::postBuild()
}
// </FS:Ansariel>
#ifdef OPENSIM // <FS:AW optional opensim support/>
// <FS:AW Disable LSL bridge on opensim>
if(LLGridManager::getInstance()->isInOpenSim() && !LLGridManager::getInstance()->isInAuroraSim() && hasChild("UseLSLBridge", TRUE))
{
getChild<LLCheckBoxCtrl>("UseLSLBridge")->setEnabled(FALSE);
}
// </FS:AW Disable LSL bridge on opensim>
#endif // OPENSIM // <FS:AW optional opensim support/>
apply();
return true;
}

View File

@ -204,6 +204,8 @@ public:
//void callback_clear_settings(const LLSD& notification, const LLSD& response);
// <FS:Ansariel> Clear inventory cache button
void onClickInventoryClearCache();
// <FS:Ansariel> Clear web browser cache button
void onClickWebBrowserClearCache();
void updateSliderText(LLSliderCtrl* ctrl, LLTextBox* text_box);
void refreshUI();

View File

@ -2579,15 +2579,6 @@ LLWorld::getInstance()->addRegion(gFirstSimHandle, gFirstSim, first_sim_size_x,
set_startup_status(1.0, "", "");
display_startup();
// <FS:AW Disable LSL bridge on opensim>
#ifdef OPENSIM // <FS:AW optional opensim support/>
if (LLGridManager::getInstance()->isInOpenSim() && !LLGridManager::getInstance()->isInAuroraSim())
{
gSavedSettings.setBOOL("UseLSLBridge", FALSE);
}
#endif // OPENSIM // <FS:AW optional opensim support/>
// </FS:AW Disable LSL bridge on opensim>
// <FS:TT> Client LSL Bridge
if (gSavedSettings.getBOOL("UseLSLBridge"))
{

View File

@ -4295,12 +4295,7 @@ class FSSelfCheckMoveLock : public view_listener_t
bool enable_bridge_function()
{
#ifdef OPENSIM
if (LLGridManager::getInstance()->isInOpenSim() && !LLGridManager::getInstance()->isInAuroraSim())
// No bridge on OpenSim yet.
return false;
#endif // OPENSIM
return (gSavedSettings.getBOOL("UseLSLBridge") && FSLSLBridge::instance().isBridgeValid());
return FSLSLBridge::instance().canUseBridge();
}
bool enable_move_lock()

View File

@ -4426,8 +4426,7 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
case CHAT_TYPE_OWNER:
// <FS:TT> Client LSL Bridge
{
static LLCachedControl<bool> sUseLSLBridge(gSavedSettings, "UseLSLBridge");
if (sUseLSLBridge && FSLSLBridge::instance().lslToViewer(mesg, from_id, owner_id))
if (FSLSLBridge::instance().lslToViewer(mesg, from_id, owner_id))
{
return;
}
@ -8367,7 +8366,7 @@ void process_teleport_failed(LLMessageSystem *msg, void**)
gAgent.stopTyping();
llinfos << "Teleport error, reason=" << reason << llendl;
if ((!gSavedSettings.getBOOL("UseLSLBridge")) ||
if (!FSLSLBridge::instance().canUseBridge() ||
(reason != "Could not teleport closer to destination"))
{
LLNotificationsUtil::add("CouldNotTeleportReason", args);

View File

@ -1939,38 +1939,33 @@ void callback_MOAP_alert2(const LLSD &notification, const LLSD &response, LLMedi
}
}
bool LLViewerParcelMedia::saveDomainFilterList()
void LLViewerParcelMedia::saveDomainFilterList()
{
std::string medialist_filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "medialist.xml");
const std::string medialist_filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "medialist.xml");
llofstream medialistFile(medialist_filename);
LLSDSerialize::toPrettyXML(sMediaFilterList, medialistFile);
medialistFile.close();
return true;
llofstream medialist;
medialist.open(medialist_filename);
LLSDSerialize::toPrettyXML(sMediaFilterList, medialist);
medialist.close();
}
bool LLViewerParcelMedia::loadDomainFilterList()
void LLViewerParcelMedia::loadDomainFilterList()
{
std::string medialist_filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "medialist.xml");
const std::string medialist_filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "medialist.xml");
if(!LLFile::isfile(medialist_filename))
{
LLSD emptyllsd;
llofstream medialistFile(medialist_filename);
LLSDSerialize::toPrettyXML(emptyllsd, medialistFile);
medialistFile.close();
}
if(LLFile::isfile(medialist_filename))
if (LLFile::isfile(medialist_filename))
{
llifstream medialistFile(medialist_filename);
LLSDSerialize::fromXML(sMediaFilterList, medialistFile);
medialistFile.close();
return true;
}
else
{
return false;
LLSD emptyllsd;
llofstream medialist;
medialist.open(medialist_filename);
LLSDSerialize::toPrettyXML(emptyllsd, medialist);
medialist.close();
}
}

View File

@ -59,8 +59,8 @@ class LLViewerParcelMedia : public LLViewerMediaObserver
// user has media filter enabled and play requested
static std::string extractDomain(std::string url);
// helper function to extract domain from url and conve
static bool loadDomainFilterList();
static bool saveDomainFilterList();
static void loadDomainFilterList();
static void saveDomainFilterList();
static void stop();
// user clicked stop button in media transport controls

View File

@ -2293,6 +2293,10 @@ Möchten Sie den Nicht-stören-Modus deaktivieren, bevor Sie diese Transaktion a
Möchten Sie Ihren Inventar-Cache wirklich leeren?
<usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
</notification>
<notification name="ConfirmClearWebBrowserCache">
Möchten Sie Ihren Webbrowser-Cache wirklich leeren?
<usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
</notification>
<notification name="ConfirmClearCookies">
Sind Sie sicher, dass Sie Ihre Cookies löschen möchten?
<usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="Ja"/>

View File

@ -69,6 +69,7 @@
<combo_box.item label="Fünf Fenster" name="web_5"/>
<combo_box.item label="Zehn Fenster" name="web_10"/>
</combo_box>
<button label="Webbrowser-Cache löschen" name="ClearWebBrowserCache" width="160"/>
<check_box initial_value="true" label="Plugins aktivieren" name="browser_plugins_enabled"/>
<check_box initial_value="true" label="Cookies annehmen" name="cookies_enabled"/>
<check_box initial_value="true" label="Javascript aktivieren" name="browser_javascript_enabled"/>

View File

@ -6,6 +6,8 @@
can_resize="true"
height="254"
name="floatermedialists"
positioning="centered"
save_rect="true"
title="Media Lists"
width="460"
min_height="300"

View File

@ -5662,6 +5662,18 @@ Are you sure you want to clear your inventory cache?
notext="Cancel"
yestext="OK"/>
</notification>
<notification
icon="alertmodal.tga"
name="ConfirmClearWebBrowserCache"
type="alertmodal">
Are you sure you want to clear your web browser cache?
<tag>confirm</tag>
<usetemplate
name="okcancelbuttons"
notext="Cancel"
yestext="OK"/>
</notification>
<notification
icon="alertmodal.tga"

View File

@ -524,6 +524,20 @@
value="10" />
</combo_box>
<button
enabled="false"
follows="right|top"
height="23"
label="Clear Browser Cache"
layout="topleft"
right="-10"
name="ClearWebBrowserCache"
top_delta="0"
width="140">
<button.commit_callback
function="Pref.WebBrowserClearCache" />
</button>
<check_box
enabled="true"
follows="left|top"
@ -531,7 +545,7 @@
initial_value="true"
control_name="BrowserPluginsEnabled"
label="Enable plugins"
left_delta="0"
left="25"
mouse_opaque="true"
name="browser_plugins_enabled"
radio_style="false"

View File

@ -12,7 +12,7 @@
<panel label="Kolory" name="colors"/>
<panel label="Grafika" name="display"/>
<panel label="Dźwięk i media" name="audio"/>
<panel label="Sieć i cache" name="input"/>
<panel label="Sieć i bufory" name="input"/>
<panel label="Ruch i widok" name="move"/>
<panel label="Powiadomienia" name="msgs"/>
<panel label="Prywatność" name="im"/>

View File

@ -390,6 +390,9 @@ Czy na pewno chcesz kontynuować?
Bufor danych zostanie przeniesiony po restarcie aplikacji [APP_NAME].
Pamiętaj: Opcja ta wyczyszcza bufor danych.
</notification>
<notification name="SoundCacheWillBeMoved">
Bufor dźwięków zostanie przeniesiony po restarcie aplikacji [APP_NAME].
</notification>
<notification name="ChangeConnectionPort">
Ustawienia portu zostają zaktualizowane po restarcie aplikacji [APP_NAME].
</notification>
@ -3739,7 +3742,7 @@ Obecne ustawienie: [CURRENT_VALUE]
Nie można śledzić tego awatara, ponieważ jest poza zasięgiem radaru.
</notification>
<notification name="CacheEmpty">
Pamięć podręczna Twojej Przeglądarki jest pusta. Miej na uwadze, że możesz przez jakiś czas odczuwać obniżoną wydajność i spowolnione doczytywanie obiektów z Szafy.
Pamięć podręczna (bufor danych) Twojej Przeglądarki jest pusta. Miej na uwadze, że możesz przez jakiś czas odczuwać obniżoną wydajność i spowolnione doczytywanie obiektów z Szafy.
</notification>
<notification name="FirstJoinSupportGroup">
Witaj w grupie wsparcia Phoenix/Firestorm!

View File

@ -5,7 +5,7 @@
<panel.string name="log_in_to_change">
Zaloguj się, by zmienić
</panel.string>
<button label="Wyczyść historię" tool_tip="Wyczyść zapisane obrazy, ostatnią lokalizację, historię teleportów, bufor stron internetowych i cache tekstur" name="clear_cache"/>
<button label="Wyczyść historię" tool_tip="Wyczyść zapisane obrazy, ostatnią lokalizację, historię teleportów, bufor stron internetowych i bufor danych tekstur" name="clear_cache"/>
<text name="cache_size_label">
(miejsca, obrazy, strony web, historia wyszukiwarki)
</text>

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Sieć/cache" name="Input panel">
<panel label="Sieć i bufory" name="Input panel">
<layout_stack name="max_bandwidth_layout">
<layout_panel name="bandwidth_panel">
<text name="Maximum bandwidth">
@ -15,16 +15,23 @@
<check_box label="Własny port" name="connection_port_enabled"/>
<spinner label="Numer portu:" name="connection_port"/>
<text name="cache_size_label_l">
Rozmiar cache
Rozmiar pamięci podr.
</text>
<button label="Wyczyść cache Szafy" name="ClearInventoryCache"/>
<button label="Wyczyść bufor Szafy" name="ClearInventoryCache"/>
<text name="Cache location">
Położenie cache:
Położenie głównego buforu pamięci podr. (cache):
</text>
<button label="Pokaż" label_selected="Pokaż" name="open_cache"/>
<button label="Ustaw" label_selected="Ustaw" name="set_cache"/>
<button label="Resetuj" label_selected="Resetuj" name="reset_cache"/>
<button label="Wyczyść" label_selected="Wyczyść" name="clear_cache"/>
<text name="Sound Cache location">
Położenie buforu pamięci podręcznej dźwięków:
</text>
<button label="Pokaż" label_selected="Pokaż" name="open_sound_cache"/>
<button label="Ustaw" label_selected="Ustaw" name="set_sound_cache"/>
<button label="Resetuj" label_selected="Resetuj" name="reset_sound_cache"/>
<check_box label="Nie usuwaj wypakowanych plików DSF (dźwięków) z buforu podczas wylogowywania" tool_tip="Gdy zaznaczysz tą opcję, to przeglądarka nie będzie usuwać wypakowanych plików dźwiękowych z pamięci podręcznej podczas wylogowywania, co może poprawić wydajność podczas odtwarzania ich w świecie. Pamiętaj proszę, że włączenie tej opcji spowoduje bardzo szybkie zapełnienie się katalogu pamięci podręcznej, a także że nie obowiązuje w jej wypadku ustawienie maksymalnego jej limitu. Może to doprowadzić do wykorzystywania powierzchni dyskowej ponad miarę. Ta opcja jest domyślnie wyłączona." name="keep_unpacked_cache"/>
<text name="log_path_desc">
Położenie dzienników i logów czatów:
</text>
@ -33,7 +40,6 @@
<button label="Resetuj" label_selected="Resetuj" name="reset_logpath"/>
<button label="Logi błędów" label_selected="Logi błędów" name="browse_crashlogs"/>
<button label="Folder ustawień" label_selected="Folder ustawień" name="browse_settingsdir"/>
<check_box label="Nie usuwaj wypakowanych plików DSF (dźwięków) z cache podczas wylogowywania" tool_tip="Gdy zaznaczysz tą opcję, to przeglądarka nie będzie usuwać wypakowanych plików dźwiękowych z pamięci podręcznej podczas wylogowywania, co może poprawić wydajność podczas odtwarzania ich w świecie. Pamiętaj proszę, że włączenie tej opcji spowoduje bardzo szybkie zapełnienie się katalogu pamięci podręcznej, a także że nie obowiązuje w jej wypadku ustawienie maksymalnego jej limitu. Może to doprowadzić do wykorzystywania powierzchni dyskowej ponad miarę. Ta opcja jest domyślnie wyłączona." name="keep_unpacked_cache"/>
<text name="Web:">
Przeglądarka internetowa:
</text>
@ -54,7 +60,7 @@
<check_box label="Akceptuj ciasteczka" name="cookies_enabled"/>
<check_box label="Włącz Javascript" name="browser_javascript_enabled"/>
<check_box label="Włącz wyskakujące okienka przeglądarki mediów" name="media_popup_enabled"/>
<text name="Proxy Settings:">
<text name="Proxy Settings:" width="95">
Ustawienia proxy:
</text>
<button label="Dostosuj ustawienia" label_selected="Przeglądaj" name="set_proxy"/>

View File

@ -12,6 +12,9 @@
<string name="StartupClearingCache">
Czyszczenie bufora danych...
</string>
<string name="StartupClearingTextureCache">
Czyszczenie bufora tekstur...
</string>
<string name="StartupInitializingTextureCache">
Inicjowanie bufora danych tekstur...
</string>