Merge viewer-lynx

master
Ansariel 2016-11-30 11:15:04 +01:00
commit e2919977d6
55 changed files with 219 additions and 373 deletions

View File

@ -212,6 +212,8 @@ Ansariel Hiller
STORM-2140
MAINT-6912
MAINT-6929
STORM-2141
MAINT-6953
Aralara Rajal
Arare Chantilly
CHUIBUG-191

View File

@ -166,10 +166,8 @@ LLLineEditor::LLLineEditor(const LLLineEditor::Params& p)
{
llassert( mMaxLengthBytes > 0 );
// <FS:Ansariel> Enabling LLLineEditor via XUI breaks enabled-state
LLUICtrl::setEnabled(TRUE);
setEnabled(p.enabled);
// </FS:Ansariel>
mScrollTimer.reset();
mTripleClickTimer.reset();
@ -240,14 +238,12 @@ LLLineEditor::~LLLineEditor()
gFocusMgr.releaseFocusIfNeeded( this );
}
// <FS:Ansariel> Enabling LLLineEditor via XUI breaks enabled-state
void LLLineEditor::initFromParams(const LLLineEditor::Params& params)
{
LLUICtrl::initFromParams(params);
LLUICtrl::setEnabled(TRUE);
setEnabled(params.enabled);
}
// </FS:Ansariel>
void LLLineEditor::onFocusReceived()
{

View File

@ -109,7 +109,6 @@ public:
Params();
};
// <FS:Ansariel> Enabling LLLineEditor via XUI breaks enabled-state
void initFromParams(const LLLineEditor::Params& params);
protected:

View File

@ -2134,6 +2134,17 @@ void LLVFS::dumpFiles()
LL_INFOS() << "Extracted " << files_extracted << " files out of " << mFileBlocks.size() << LL_ENDL;
}
time_t LLVFS::creationTime()
{
llstat data_file_stat;
int errors = LLFile::stat(mDataFilename, &data_file_stat);
if (0 == errors)
{
return data_file_stat.st_ctime;
}
return 0;
}
//============================================================================
// protected
//============================================================================

View File

@ -127,6 +127,7 @@ public:
void dumpStatistics();
void listFiles();
void dumpFiles();
time_t creationTime();
protected:
void removeFileBlock(LLVFSFileBlock *fileblock);

View File

@ -175,16 +175,10 @@ BOOL LLWindowCallbacks::handleDeviceChange(LLWindow *window)
return FALSE;
}
// <FS:Ansariel> FIRE-20416: Option for automatic UI scaling
//void LLWindowCallbacks::handleDPIChanged(LLWindow *window, F32 ui_scale_factor, S32 window_width, S32 window_height)
//{
//}
BOOL LLWindowCallbacks::handleDPIChanged(LLWindow *window, F32 ui_scale_factor, S32 window_width, S32 window_height)
{
return TRUE;
return FALSE;
}
// </FS:Ansariel>
void LLWindowCallbacks::handlePingWatchdog(LLWindow *window, const char * msg)
{

View File

@ -65,10 +65,7 @@ public:
virtual void handleDataCopy(LLWindow *window, S32 data_type, void *data);
virtual BOOL handleTimerEvent(LLWindow *window);
virtual BOOL handleDeviceChange(LLWindow *window);
// <FS:Ansariel> FIRE-20416: Option for automatic UI scaling
//virtual void handleDPIChanged(LLWindow *window, F32 ui_scale_factor, S32 window_width, S32 window_height);
virtual BOOL handleDPIChanged(LLWindow *window, F32 ui_scale_factor, S32 window_width, S32 window_height);
// </FS:Ansariel>
enum DragNDropAction {
DNDA_START_TRACKING = 0,// Start tracking an incoming drag

View File

@ -2644,25 +2644,21 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
case WM_DPICHANGED:
{
LPRECT lprc_new_scale;
// <FS:Ansariel> Fix DPI scaling
//F32 new_scale = LOWORD(w_param) / USER_DEFAULT_SCREEN_DPI;
F32 new_scale = F32(LOWORD(w_param)) / F32(USER_DEFAULT_SCREEN_DPI);
// </FS:Ansariel>
lprc_new_scale = (LPRECT)l_param;
S32 new_width = lprc_new_scale->right - lprc_new_scale->left;
S32 new_height = lprc_new_scale->bottom - lprc_new_scale->top;
// <FS:Ansariel> FIRE-20416: Option for automatic UI scaling
//window_imp->mCallbacks->handleDPIChanged(window_imp, new_scale, new_width, new_height);
if (window_imp->mCallbacks->handleDPIChanged(window_imp, new_scale, new_width, new_height))
// </FS:Ansariel>
SetWindowPos(h_wnd,
HWND_TOP,
lprc_new_scale->left,
lprc_new_scale->top,
new_width,
new_height,
SWP_NOZORDER | SWP_NOACTIVATE);
return 0;
{
SetWindowPos(h_wnd,
HWND_TOP,
lprc_new_scale->left,
lprc_new_scale->top,
new_width,
new_height,
SWP_NOZORDER | SWP_NOACTIVATE);
}
return 0;
}
case WM_SETFOCUS:
@ -4066,10 +4062,7 @@ F32 LLWindowWin32::getSystemUISize()
hr = pGDFM(hMonitor, MDT_EFFECTIVE_DPI, &dpix, &dpiy);
if (hr == S_OK)
{
// <FS:Ansariel> Fix DPI scaling
//scale_value = dpix / USER_DEFAULT_SCREEN_DPI;
scale_value = F32(dpix) / F32(USER_DEFAULT_SCREEN_DPI);
// </FS:Ansariel>
}
else
{
@ -4088,10 +4081,7 @@ F32 LLWindowWin32::getSystemUISize()
else
{
LL_WARNS() << "Could not load shcore.dll library (included by <ShellScalingAPI.h> from Win 8.1 SDK). Using legacy DPI awareness API of Win XP/7" << LL_ENDL;
// <FS:Ansariel> Fix DPI scaling
//scale_value = GetDeviceCaps(hdc, LOGPIXELSX) / USER_DEFAULT_SCREEN_DPI;
scale_value = F32(GetDeviceCaps(hdc, LOGPIXELSX)) / F32(USER_DEFAULT_SCREEN_DPI);
// </FS:Ansariel>
}
ReleaseDC(hWnd, hdc);

View File

@ -356,7 +356,6 @@ set(viewer_SOURCE_FILES
llfloaterimsession.cpp
llfloaterimcontainer.cpp
llfloaterinspect.cpp
llfloaterinventory.cpp
llfloaterjoystick.cpp
llfloaterlagmeter.cpp
llfloaterland.cpp
@ -1107,7 +1106,6 @@ set(viewer_HEADER_FILES
llfloaterimsession.h
llfloaterimcontainer.h
llfloaterinspect.h
llfloaterinventory.h
llfloaterjoystick.h
llfloaterlagmeter.h
llfloaterland.h

View File

@ -6666,6 +6666,17 @@
<key>Value</key>
<integer>1</integer>
</map>
<key>IgnoreFOVZoomForLODs</key>
<map>
<key>Comment</key>
<string>Ignore zoom effect(CTRL+0) when calculating lods.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
</map>
<key>IgnoreAllNotifications</key>
<map>
<key>Comment</key>

View File

@ -949,6 +949,7 @@ LLSD FSData::getSystemInfo()
sysinfo2 += llformat("RLVa: %s\n", info["RLV_VERSION"].asString().c_str());
sysinfo2 += llformat("Mode: %s\n", info["MODE"].asString().c_str());
sysinfo2 += llformat("Skin: %s (%s)\n", info["SKIN"].asString().c_str(), info["THEME"].asString().c_str());
sysinfo2 += llformat("Window Size: %sx%s px\n", info["WINDOW_WIDTH"].asString().c_str(), info["WINDOW_HEIGHT"].asString().c_str());
sysinfo2 += llformat("Font: %s\n", info["FONT"].asString().c_str());
sysinfo2 += llformat("Font Size Adjustment: %d pt\n", info["FONT_SIZE"].asInteger());
sysinfo2 += llformat("Font Screen DPI: %d\n", info["FONT_SCREEN_DPI"].asInteger());
@ -967,4 +968,3 @@ LLSD FSData::getSystemInfo()
return sysinfos;
}

View File

@ -225,7 +225,6 @@
#include "llfloaterreg.h"
#include "llfloateroutfitsnapshot.h"
#include "llfloatersnapshot.h"
//#include "llfloaterinventory.h"
#include "llsidepanelinventory.h"
// includes for idle() idleShutdown()
@ -3993,6 +3992,28 @@ LLSD LLAppViewer::getViewerInfo() const
// [/RLVa:KB]
info["OPENGL_VERSION"] = (const char*)(glGetString(GL_VERSION));
info["LIBCURL_VERSION"] = LLCore::LLHttp::getCURLVersion();
// Settings
LLRect window_rect = gViewerWindow->getWindowRectRaw();
info["WINDOW_WIDTH"] = window_rect.getWidth();
info["WINDOW_HEIGHT"] = window_rect.getHeight();
// <FS> Custom sysinfo
//info["FONT_SIZE_ADJUSTMENT"] = gSavedSettings.getF32("FontScreenDPI");
//info["UI_SCALE"] = gSavedSettings.getF32("UIScaleFactor");
//info["DRAW_DISTANCE"] = gSavedSettings.getF32("RenderFarClip");
//info["NET_BANDWITH"] = gSavedSettings.getF32("ThrottleBandwidthKBPS");
//info["LOD_FACTOR"] = gSavedSettings.getF32("RenderVolumeLODFactor");
//info["RENDER_QUALITY"] = (F32)gSavedSettings.getU32("RenderQualityPerformance");
//info["GPU_SHADERS"] = gSavedSettings.getBOOL("RenderDeferred") ? "Enabled" : "Disabled";
//info["TEXTURE_MEMORY"] = gSavedSettings.getS32("TextureMemory");
//LLSD substitution;
//substitution["datetime"] = (S32)(gVFS ? gVFS->creationTime() : 0);
//info["VFS_TIME"] = LLTrans::getString("AboutTime", substitution);
// </FS>
// Libraries
info["J2C_VERSION"] = LLImageJ2C::getEngineInfo();
bool want_fullname = true;
info["AUDIO_DRIVER_VERSION"] = gAudiop ? LLSD(gAudiop->getDriverName(want_fullname)) : LLSD();
@ -4178,11 +4199,15 @@ std::string LLAppViewer::getViewerInfoString() const
{
support << "\n" << LLTrans::getString("AboutDriver", args);
}
support << "\n" << LLTrans::getString("AboutLibs", args);
support << "\n" << LLTrans::getString("AboutOGL", args);
//support << "\n\n" << LLTrans::getString("AboutSettings", args); // <FS> Custom sysinfo
support << "\n\n" << LLTrans::getString("AboutLibs", args);
// <FS> Custom sysinfo
if (info.has("BANDWIDTH")) //For added info in help floater
{
support << "\n" << LLTrans::getString("AboutSettings", args);
}
// </FS>
if (info.has("COMPILER"))
{
support << "\n" << LLTrans::getString("AboutCompiler", args);
@ -6391,10 +6416,7 @@ void LLAppViewer::disconnectViewer()
}
// close inventory interface, close all windows
// <FS:Ansariel> Clean up inventory windows on shutdown
//LLFloaterInventory::cleanup();
LLSidepanelInventory::cleanup();
// </FS:Ansariel>
// [SL:KB] - Patch: Appearance-Misc | Checked: 2013-02-12 (Catznip-3.4)
// Destroying all objects below will trigger attachment detaching code and attempt to remove the COF links for them

View File

@ -676,13 +676,18 @@ bool LLEnvManagerNew::useRegionSky()
return true;
}
// *TODO: Support fixed sky from region.
// Otherwise apply region day cycle/skies.
// <FS:Ansariel> Quickprefs integration
FloaterQuickPrefs::updateParam(QP_PARAM_SKY, PRESET_NAME_REGION_DEFAULT);
// Otherwise apply region day cycle.
LL_DEBUGS("Windlight") << "Applying region sky" << LL_ENDL;
// *TODO: Support fixed sky from region. Just do sky reset for now.
if (region_settings.getSkyMap().size() == 1)
{
// Region is set to fixed sky. Reset.
useSkyParams(region_settings.getSkyMap().beginMap()->second);
}
return useDayCycleParams(
region_settings.getWLDayCycle(),
LLEnvKey::SCOPE_REGION,

View File

@ -667,40 +667,42 @@ void LLFloaterAvatarPicker::find()
url.reserve(128); // avoid a memory allocation or two
LLViewerRegion* region = gAgent.getRegion();
url = region->getCapability("AvatarPickerSearch");
// Prefer use of capabilities to search on both SLID and display name
if (!url.empty())
if(region)
{
// capability urls don't end in '/', but we need one to parse
// query parameters correctly
if (url.size() > 0 && url[url.size()-1] != '/')
url = region->getCapability("AvatarPickerSearch");
// Prefer use of capabilities to search on both SLID and display name
if (!url.empty())
{
url += "/";
// capability urls don't end in '/', but we need one to parse
// query parameters correctly
if (url.size() > 0 && url[url.size()-1] != '/')
{
url += "/";
}
url += "?page_size=100&names=";
std::replace(text.begin(), text.end(), '.', ' ');
url += LLURI::escape(text);
LL_INFOS() << "avatar picker " << url << LL_ENDL;
LLCoros::instance().launch("LLFloaterAvatarPicker::findCoro",
boost::bind(&LLFloaterAvatarPicker::findCoro, url, mQueryID, getKey().asString()));
}
url += "?page_size=100&names=";
std::replace(text.begin(), text.end(), '.', ' ');
url += LLURI::escape(text);
LL_INFOS() << "avatar picker " << url << LL_ENDL;
else
{
// <FS:Ansariel> FIRE-15194: Avatar picker doesn't work anymore when using legacy simulator messages
sQueryNameMap[mQueryID] = getKey().asString();
LLCoros::instance().launch("LLFloaterAvatarPicker::findCoro",
boost::bind(&LLFloaterAvatarPicker::findCoro, url, mQueryID, getKey().asString()));
LLMessageSystem* msg = gMessageSystem;
msg->newMessage("AvatarPickerRequest");
msg->nextBlock("AgentData");
msg->addUUID("AgentID", gAgent.getID());
msg->addUUID("SessionID", gAgent.getSessionID());
msg->addUUID("QueryID", mQueryID); // not used right now
msg->nextBlock("Data");
msg->addString("Name", text);
gAgent.sendReliableMessage();
}
}
else
{
// <FS:Ansariel> FIRE-15194: Avatar picker doesn't work anymore when using legacy simulator messages
sQueryNameMap[mQueryID] = getKey().asString();
LLMessageSystem* msg = gMessageSystem;
msg->newMessage("AvatarPickerRequest");
msg->nextBlock("AgentData");
msg->addUUID("AgentID", gAgent.getID());
msg->addUUID("SessionID", gAgent.getSessionID());
msg->addUUID("QueryID", mQueryID); // not used right now
msg->nextBlock("Data");
msg->addString("Name", text);
gAgent.sendReliableMessage();
}
getChild<LLScrollListCtrl>("SearchResults")->deleteAllItems();
getChild<LLScrollListCtrl>("SearchResults")->setCommentText(getString("searching"));

View File

@ -44,7 +44,6 @@
#include "llinventorymodel.h" // for gInventory
#include "llfirstuse.h"
#include "llfloaterreg.h"
#include "llfloaterinventory.h" // for LLInventoryIcon::getIcon
#include "llnotificationsutil.h"
#include "llselectmgr.h"
#include "llscrolllistctrl.h"

View File

@ -1,113 +0,0 @@
/**
* @file llfloaterinventory.cpp
* @brief Implementation of the inventory view and associated stuff.
*
* $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
#include "llfloaterinventory.h"
#include "llagentcamera.h"
//#include "llfirstuse.h"
#include "llfiltereditor.h"
#include "llfloaterreg.h"
#include "llinventorymodel.h"
#include "llpanelmaininventory.h"
#include "llresmgr.h"
#include "llviewerfoldertype.h"
#include "lltransientfloatermgr.h"
///----------------------------------------------------------------------------
/// LLFloaterInventory
///----------------------------------------------------------------------------
LLFloaterInventory::LLFloaterInventory(const LLSD& key)
: LLFloater(key)
{
LLTransientFloaterMgr::getInstance()->addControlView(this);
}
LLFloaterInventory::~LLFloaterInventory()
{
LLTransientFloaterMgr::getInstance()->removeControlView(this);
}
BOOL LLFloaterInventory::postBuild()
{
mPanelMainInventory = findChild<LLPanelMainInventory>("Inventory Panel");
return TRUE;
}
LLInventoryPanel* LLFloaterInventory::getPanel()
{
if (mPanelMainInventory)
return mPanelMainInventory->getPanel();
return NULL;
}
// static
LLFloaterInventory* LLFloaterInventory::showAgentInventory()
{
// Hack to generate semi-unique key for each inventory floater.
static S32 instance_num = 0;
instance_num = (instance_num + 1) % S32_MAX;
LLFloaterInventory* iv = NULL;
if (!gAgentCamera.cameraMouselook())
{
iv = LLFloaterReg::showTypedInstance<LLFloaterInventory>("inventory", LLSD(instance_num));
}
return iv;
}
// static
void LLFloaterInventory::cleanup()
{
LLFloaterReg::const_instance_list_t& inst_list = LLFloaterReg::getFloaterList("inventory");
for (LLFloaterReg::const_instance_list_t::const_iterator iter = inst_list.begin(); iter != inst_list.end();)
{
LLFloaterInventory* iv = dynamic_cast<LLFloaterInventory*>(*iter++);
if (iv)
{
iv->destroy();
}
}
}
void LLFloaterInventory::onOpen(const LLSD& key)
{
//LLFirstUse::useInventory();
// set focus on filter editor when floater inventory shows up
LLFilterEditor* filter_editor = mPanelMainInventory->getChild<LLFilterEditor>("inventory search editor");
filter_editor->setFocus(TRUE);
}
void LLFloaterInventory::onClose(bool app_quitting)
{
LLFloater::onClose(app_quitting);
if (mKey.asInteger() > 1)
{
destroy();
}
}

View File

@ -1,72 +0,0 @@
/**
* @file llfloaterinventory.h
* @brief LLFloaterInventory, LLInventoryFolder, and LLInventoryItem
* class definition
*
* $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
* Copyright (C) 2010, Linden Research, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation;
* version 2.1 of the License only.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#ifndef LL_LLFLOATERINVENTORY_H
#define LL_LLFLOATERINVENTORY_H
#include "llfloater.h"
#include "llfoldertype.h"
class LLInventoryPanel;
class LLPanelMainInventory;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Class LLFloaterInventory
//
// This deals with the buttons and views used to navigate as
// well as controlling the behavior of the overall object.
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class LLFloaterInventory : public LLFloater
{
public:
LLFloaterInventory(const LLSD& key);
~LLFloaterInventory();
BOOL postBuild();
// This method makes sure that an inventory view exists, is
// visible, and has focus. The view chosen is returned.
static LLFloaterInventory* showAgentInventory();
// Final cleanup, destroy all open inventory views.
static void cleanup();
// Inherited functionality
/*virtual*/ void onOpen(const LLSD& key);
/*virtual*/ void onClose(bool app_quitting);
LLInventoryPanel* getPanel();
LLPanelMainInventory* getMainInventoryPanel() { return mPanelMainInventory;}
private:
LLPanelMainInventory* mPanelMainInventory;
};
#endif // LL_LLFLOATERINVENTORY_H

View File

@ -39,7 +39,6 @@
#include "lltextbox.h"
#include "llinventorybridge.h"
#include "llfloaterinventory.h"
#include "llinventorymodel.h"
#include "llinventorypanel.h"
#include "llpanelobjectinventory.h"

View File

@ -85,12 +85,13 @@ void LLFloaterSidePanelContainer::closeFloater(bool app_quitting)
LLFloater::closeFloater(app_quitting);
// <FS:Ansariel> FIRE-7063: Memory is not released when closing secondary inventory floaters
// <FS:Ansariel> Special secondary inventory floaters
//if (getInstanceName() == "inventory" && !getKey().isUndefined())
if ((getInstanceName() == "inventory" && !getKey().isUndefined()) || getInstanceName() == "secondary_inventory")
// </FS:Ansariel>
{
destroy();
}
// </FS:Ansariel>
}
LLPanel* LLFloaterSidePanelContainer::openChildPanel(const std::string& panel_name, const LLSD& params)

View File

@ -53,7 +53,6 @@ public:
/*virtual*/ void closeFloater(bool app_quitting = false);
// <FS:Ansariel> Clean up inventory windows on shutdown
void cleanup() { destroy(); }
LLPanel* openChildPanel(const std::string& panel_name, const LLSD& params);

View File

@ -48,7 +48,6 @@
#include "llavataractions.h"
#include "llclipboard.h"
#include "lldonotdisturbnotificationstorage.h"
#include "llfloaterinventory.h"
#include "llfloatersidepanelcontainer.h"
#include "llfocusmgr.h"
#include "llfolderview.h"
@ -835,36 +834,13 @@ void show_item_original(const LLUUID& item_uuid)
void reset_inventory_filter()
{
//inventory floater
bool floater_inventory_visible = false;
LLFloaterReg::const_instance_list_t& inst_list = LLFloaterReg::getFloaterList("inventory");
for (LLFloaterReg::const_instance_list_t::const_iterator iter = inst_list.begin(); iter != inst_list.end(); ++iter)
LLSidepanelInventory *sidepanel_inventory = LLFloaterSidePanelContainer::getPanel<LLSidepanelInventory>("inventory");
if (sidepanel_inventory)
{
LLFloaterInventory* floater_inventory = dynamic_cast<LLFloaterInventory*>(*iter);
if (floater_inventory)
LLPanelMainInventory* main_inventory = sidepanel_inventory->getMainInventoryPanel();
if (main_inventory)
{
LLPanelMainInventory* main_inventory = floater_inventory->getMainInventoryPanel();
main_inventory->onFilterEdit("");
if(floater_inventory->getVisible())
{
floater_inventory_visible = true;
}
}
}
if(!floater_inventory_visible)
{
LLSidepanelInventory *sidepanel_inventory = LLFloaterSidePanelContainer::getPanel<LLSidepanelInventory>("inventory");
if (sidepanel_inventory)
{
LLPanelMainInventory* main_inventory = sidepanel_inventory->getMainInventoryPanel();
if (main_inventory)
{
main_inventory->onFilterEdit("");
}
}
}
}

View File

@ -34,7 +34,6 @@
#include "llappearancemgr.h"
#include "llavataractions.h"
#include "llclipboard.h"
#include "llfloaterinventory.h"
#include "llfloaterreg.h"
#include "llfloatersidepanelcontainer.h"
#include "llfolderview.h"

View File

@ -37,7 +37,6 @@
#include "llinventoryfunctions.h"
#include "llinventoryicon.h"
#include "llinventorymodel.h"
#include "llfloaterinventory.h"
#include "llagent.h"
#include "llagentui.h"

View File

@ -34,7 +34,6 @@
#include "lldndbutton.h"
#include "lleconomy.h"
#include "llfilepicker.h"
#include "llfloaterinventory.h"
#include "llinventorybridge.h"
#include "llinventoryfunctions.h"
#include "llinventorymodelbackgroundfetch.h"
@ -128,7 +127,6 @@ LLPanelMainInventory::LLPanelMainInventory(const LLPanel::Params& p)
mCommitCallbackRegistrar.add("Inventory.EmptyTrash", boost::bind(&LLInventoryModel::emptyFolderType, &gInventory, "ConfirmEmptyTrash", LLFolderType::FT_TRASH));
mCommitCallbackRegistrar.add("Inventory.EmptyLostAndFound", boost::bind(&LLInventoryModel::emptyFolderType, &gInventory, "ConfirmEmptyLostAndFound", LLFolderType::FT_LOST_AND_FOUND));
mCommitCallbackRegistrar.add("Inventory.DoCreate", boost::bind(&LLPanelMainInventory::doCreate, this, _2));
//mCommitCallbackRegistrar.add("Inventory.NewWindow", boost::bind(&LLPanelMainInventory::newWindow, this));
mCommitCallbackRegistrar.add("Inventory.ShowFilters", boost::bind(&LLPanelMainInventory::toggleFindOptions, this));
mCommitCallbackRegistrar.add("Inventory.ResetFilters", boost::bind(&LLPanelMainInventory::resetFilters, this));
//mCommitCallbackRegistrar.add("Inventory.SetSortBy", boost::bind(&LLPanelMainInventory::setSortBy, this, _2)); // <FS:Zi> Sort By menu handlers
@ -1663,6 +1661,18 @@ BOOL LLPanelMainInventory::isActionEnabled(const LLSD& userdata)
LLSidepanelInventory* parent = LLFloaterSidePanelContainer::getPanel<LLSidepanelInventory>("inventory");
return parent ? parent->canShare() : FALSE;
}
if (command_name == "empty_trash")
{
const LLUUID &trash_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_TRASH);
LLInventoryModel::EHasChildren children = gInventory.categoryHasChildren(trash_id);
return children != LLInventoryModel::CHILDREN_NO;
}
if (command_name == "empty_lostnfound")
{
const LLUUID &trash_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_LOST_AND_FOUND);
LLInventoryModel::EHasChildren children = gInventory.categoryHasChildren(trash_id);
return children != LLInventoryModel::CHILDREN_NO;
}
return TRUE;
}

View File

@ -94,7 +94,7 @@ public:
void setFocusFilterEditor();
static void newWindow(); // <FS:Ansariel> Changed to public static
static void newWindow();
// <FS:Zi> Filter dropdown
void onFilterTypeSelected(const std::string& filter_type_name);
@ -128,7 +128,6 @@ protected:
// menu callbacks
void doToSelected(const LLSD& userdata);
void closeAllFolders();
//void newWindow(); // <FS:Ansariel> Changed to public static
void doCreate(const LLSD& userdata);
// <FS:Ansariel> FIRE-19493: "Show Original" should open main inventory panel
//void resetFilters(); // Moved to public

View File

@ -51,7 +51,6 @@
#include "llbutton.h"
#include "llcombobox.h"
#include "llfiltereditor.h"
#include "llfloaterinventory.h"
#include "llinventorybridge.h"
#include "llinventorymodel.h"
#include "llinventorymodelbackgroundfetch.h"

View File

@ -30,7 +30,6 @@
#include "llplacesinventorybridge.h"
#include "llfloaterinventory.h" // for LLInventoryPanel
#include "llfolderview.h" // for FIRST_SELECTED_ITEM
#include "llinventorypanel.h"

View File

@ -27,7 +27,6 @@
#ifndef LL_LLINVENTORYSUBTREEPANEL_H
#define LL_LLINVENTORYSUBTREEPANEL_H
#include "llfloaterinventory.h"
#include "llinventorypanel.h"
class LLLandmarksPanel;

View File

@ -783,7 +783,6 @@ std::set<LLFolderViewItem*> LLSidepanelInventory::getInboxSelectionList()
return inventory_selected_uuids;
}
// <FS:Ansariel> Clean up inventory windows on shutdown
void LLSidepanelInventory::cleanup()
{
LLFloaterReg::const_instance_list_t& inst_list = LLFloaterReg::getFloaterList("inventory");
@ -796,6 +795,7 @@ void LLSidepanelInventory::cleanup()
}
}
// <FS:Ansariel> Secondary inventory floaters
LLFloaterReg::const_instance_list_t& secondary_inst_list = LLFloaterReg::getFloaterList("secondary_inventory");
for (LLFloaterReg::const_instance_list_t::const_iterator iter = secondary_inst_list.begin(); iter != secondary_inst_list.end();)
{
@ -805,5 +805,5 @@ void LLSidepanelInventory::cleanup()
iv->cleanup();
}
}
// </FS:Ansariel>
}
// </FS:Ansariel>

View File

@ -85,7 +85,6 @@ public:
void updateVerbs();
// <FS:Ansariel> Clean up inventory windows on shutdown
static void cleanup();
protected:

View File

@ -43,7 +43,6 @@
#include "llinventorymodelbackgroundfetch.h"
#include "llinventoryobserver.h"
#include "llinventorypanel.h"
#include "llfloaterinventory.h"
#include "lllineeditor.h"
#include "llui.h"
#include "llviewerinventory.h"

View File

@ -47,7 +47,6 @@
#include "llglheaders.h"
#include "llagent.h"
#include "llavatariconctrl.h"
#include "llfloaterinventory.h"
#include "llinventorytype.h"
#include "llgroupactions.h"

View File

@ -117,6 +117,7 @@ LLViewerCamera::LLViewerCamera() : LLCamera()
{
calcProjection(getFar());
mCameraFOVDefault = DEFAULT_FIELD_OF_VIEW;
mPrevCameraFOVDefault = DEFAULT_FIELD_OF_VIEW;
mCosHalfCameraFOV = cosf(mCameraFOVDefault * 0.5f);
mPixelMeterRatio = 0.f;
mScreenPixelArea = 0;
@ -897,6 +898,15 @@ void LLViewerCamera::setDefaultFOV(F32 vertical_fov_rads)
mCosHalfCameraFOV = cosf(mCameraFOVDefault * 0.5f);
}
BOOL LLViewerCamera::isDefaultFOVChanged()
{
if(mPrevCameraFOVDefault != mCameraFOVDefault)
{
mPrevCameraFOVDefault = mCameraFOVDefault;
return !gSavedSettings.getBOOL("IgnoreFOVZoomForLODs");
}
return FALSE;
}
// static
void LLViewerCamera::updateCameraAngle( void* user_data, const LLSD& value)

View File

@ -115,6 +115,8 @@ public:
void setDefaultFOV(F32 fov) ;
F32 getDefaultFOV() { return mCameraFOVDefault; }
BOOL isDefaultFOVChanged();
BOOL cameraUnderWater() const;
BOOL areVertsVisible(LLViewerObject* volumep, BOOL all_verts);
@ -138,6 +140,7 @@ protected:
mutable LLMatrix4 mProjectionMatrix; // Cache of perspective matrix
mutable LLMatrix4 mModelviewMatrix;
F32 mCameraFOVDefault;
F32 mPrevCameraFOVDefault;
F32 mCosHalfCameraFOV;
LLVector3 mLastPointOfInterest;
F32 mPixelMeterRatio; // Divide by distance from camera to get pixels per meter at that distance.

View File

@ -77,7 +77,6 @@
#include "llfloaterimagepreview.h"
#include "llfloaterimsession.h"
#include "llfloaterinspect.h"
#include "llfloaterinventory.h"
#include "llfloaterjoystick.h"
#include "llfloaterlagmeter.h"
#include "llfloaterland.h"

View File

@ -49,7 +49,6 @@
#include "llinventorybridge.h"
#include "llinventorypanel.h"
#include "llfloaterinventory.h"
#include "lllandmarkactions.h"
#include "llviewerassettype.h"

View File

@ -63,7 +63,6 @@
#include "llfloaterbuycontents.h"
#include "llbuycurrencyhtml.h"
#include "llfloatergodtools.h"
//#include "llfloaterinventory.h"
#include "llfloaterimcontainer.h"
#include "llfloaterland.h"
#include "llfloaterimnearbychat.h"
@ -1385,14 +1384,15 @@ void set_use_wireframe(BOOL useWireframe)
gUseWireframe = useWireframe;
// [/RLVa:KB]
// gUseWireframe = !(gUseWireframe);
gWindowResized = TRUE;
LLPipeline::updateRenderDeferred();
if (gUseWireframe)
{
gInitialDeferredModeForWireframe = LLPipeline::sRenderDeferred;
}
gWindowResized = TRUE;
LLPipeline::updateRenderDeferred();
gPipeline.resetVertexBuffers();
if (!gUseWireframe && !gInitialDeferredModeForWireframe && LLPipeline::sRenderDeferred != gInitialDeferredModeForWireframe && gPipeline.isInit())
@ -11462,8 +11462,6 @@ void initialize_menus()
view_listener_t::addMenu(new FSResetPerAccountControl(), "ResetPerAccountControl");
// </FS:Ansariel> Control enhancements
// <FS:Ansariel> LLFloaterInventory is unused (and dangerous) legacy code! See LLPanelMainInventory instead
//commit.add("Inventory.NewWindow", boost::bind(&LLFloaterInventory::showAgentInventory));
commit.add("Inventory.NewWindow", boost::bind(&LLPanelMainInventory::newWindow));
enable.add("EnablePayObject", boost::bind(&enable_pay_object));

View File

@ -1675,10 +1675,7 @@ BOOL LLViewerWindow::handleDeviceChange(LLWindow *window)
return FALSE;
}
// <FS:Ansariel> FIRE-20416: Option for automatic UI scaling
//void LLViewerWindow::handleDPIChanged(LLWindow *window, F32 ui_scale_factor, S32 window_width, S32 window_height)
BOOL LLViewerWindow::handleDPIChanged(LLWindow *window, F32 ui_scale_factor, S32 window_width, S32 window_height)
// </FS:Ansariel>
{
// <FS:Ansariel> FIRE-20416: Option for automatic UI scaling
if (!gSavedSettings.getBOOL("FSEnableAutomaticUIScaling"))
@ -1689,16 +1686,16 @@ BOOL LLViewerWindow::handleDPIChanged(LLWindow *window, F32 ui_scale_factor, S32
if (ui_scale_factor >= MIN_UI_SCALE && ui_scale_factor <= MAX_UI_SCALE)
{
gSavedSettings.setF32("LastSystemUIScaleFactor", ui_scale_factor); // <FS:Ansariel> Remember last used system UI scale factor
gSavedSettings.setF32("LastSystemUIScaleFactor", ui_scale_factor);
gSavedSettings.setF32("UIScaleFactor", ui_scale_factor);
LLViewerWindow::reshape(window_width, window_height);
mResDirty = true;
return TRUE; // <FS:Ansariel> FIRE-20416: Option for automatic UI scaling
return TRUE;
}
else
{
LL_WARNS() << "DPI change caused UI scale to go out of bounds: " << ui_scale_factor << LL_ENDL;
return FALSE; // <FS:Ansariel> FIRE-20416: Option for automatic UI scaling
return FALSE;
}
}

View File

@ -212,10 +212,7 @@ public:
/*virtual*/ void handleDataCopy(LLWindow *window, S32 data_type, void *data);
/*virtual*/ BOOL handleTimerEvent(LLWindow *window);
/*virtual*/ BOOL handleDeviceChange(LLWindow *window);
// <FS:Ansariel> FIRE-20416: Option for automatic UI scaling
/*virtual*/ //void handleDPIChanged(LLWindow *window, F32 ui_scale_factor, S32 window_width, S32 window_height);
/*virtual*/ BOOL handleDPIChanged(LLWindow *window, F32 ui_scale_factor, S32 window_width, S32 window_height);
// </FS:Ansariel>
/*virtual*/ void handlePingWatchdog(LLWindow *window, const char * msg);
/*virtual*/ void handlePauseWatchdog(LLWindow *window);

View File

@ -1258,18 +1258,18 @@ void LLVOVolume::sculpt()
}
}
S32 LLVOVolume::computeLODDetail(F32 distance, F32 radius)
S32 LLVOVolume::computeLODDetail(F32 distance, F32 radius, F32 lod_factor)
{
S32 cur_detail;
if (LLPipeline::sDynamicLOD)
{
// We've got LOD in the profile, and in the twist. Use radius.
F32 tan_angle = (LLVOVolume::sLODFactor*radius)/distance;
F32 tan_angle = (lod_factor*radius)/distance;
cur_detail = LLVolumeLODGroup::getDetailFromTan(ll_round(tan_angle, 0.01f));
}
else
{
cur_detail = llclamp((S32) (sqrtf(radius)*LLVOVolume::sLODFactor*4.f), 0, 3);
cur_detail = llclamp((S32) (sqrtf(radius)*lod_factor*4.f), 0, 3);
}
return cur_detail;
}
@ -1285,6 +1285,7 @@ BOOL LLVOVolume::calcLOD()
F32 radius;
F32 distance;
F32 lod_factor = LLVOVolume::sLODFactor;
if (mDrawable->isState(LLDrawable::RIGGED))
{
@ -1320,12 +1321,18 @@ BOOL LLVOVolume::calcLOD()
distance *= rampDist;
}
// DON'T Compensate for field of view changing on FOV zoom.
distance *= F_PI/3.f;
cur_detail = computeLODDetail(ll_round(distance, 0.01f),
ll_round(radius, 0.01f));
static LLCachedControl<bool> ignore_fov_zoom(gSavedSettings,"IgnoreFOVZoomForLODs");
if(!ignore_fov_zoom)
{
lod_factor *= DEFAULT_FIELD_OF_VIEW / LLViewerCamera::getInstance()->getDefaultFOV();
}
cur_detail = computeLODDetail(ll_round(distance, 0.01f),
ll_round(radius, 0.01f),
lod_factor);
// <FS> FIRE-20191 / STORM-2139 Render Metadata->LOD Info is broken on all "recent" viewer versions
//if (gPipeline.hasRenderDebugMask(LLPipeline::RENDER_DEBUG_LOD_INFO) &&

View File

@ -328,7 +328,7 @@ public:
void clearRiggedVolume();
protected:
S32 computeLODDetail(F32 distance, F32 radius);
S32 computeLODDetail(F32 distance, F32 radius, F32 lod_factor);
BOOL calcLOD();
LLFace* addFace(S32 face_index);
void updateTEData();

View File

@ -3516,6 +3516,7 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
if (LLViewerCamera::sCurCameraID == LLViewerCamera::CAMERA_WORLD)
{
LLSpatialGroup* last_group = NULL;
BOOL fov_changed = LLViewerCamera::getInstance()->isDefaultFOVChanged();
for (LLCullResult::bridge_iterator i = sCull->beginVisibleBridge(); i != sCull->endVisibleBridge(); ++i)
{
LLCullResult::bridge_iterator cur_iter = i;
@ -3529,7 +3530,7 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
if (!bridge->isDead() && group && !group->isOcclusionState(LLSpatialGroup::OCCLUDED))
{
stateSort(bridge, camera);
stateSort(bridge, camera, fov_changed);
}
if (LLViewerCamera::sCurCameraID == LLViewerCamera::CAMERA_WORLD &&
@ -3601,9 +3602,9 @@ void LLPipeline::stateSort(LLSpatialGroup* group, LLCamera& camera)
}
void LLPipeline::stateSort(LLSpatialBridge* bridge, LLCamera& camera)
void LLPipeline::stateSort(LLSpatialBridge* bridge, LLCamera& camera, BOOL fov_changed)
{
if (bridge->getSpatialGroup()->changeLOD())
if (bridge->getSpatialGroup()->changeLOD() || fov_changed)
{
bool force_update = false;
bridge->updateDistance(camera, force_update);

View File

@ -254,7 +254,7 @@ public:
void stateSort(LLCamera& camera, LLCullResult& result);
void stateSort(LLSpatialGroup* group, LLCamera& camera);
void stateSort(LLSpatialBridge* bridge, LLCamera& camera);
void stateSort(LLSpatialBridge* bridge, LLCamera& camera, BOOL fov_changed = FALSE);
void stateSort(LLDrawable* drawablep, LLCamera& camera);
void postSort(LLCamera& camera);
void forAllVisibleDrawables(void (*func)(LLDrawable*));

View File

@ -60,20 +60,13 @@ Grafikkarte: [GRAPHICS_CARD]
<string name="AboutDriver">
Windows-Grafiktreiberversion: [GRAPHICS_DRIVER_VERSION]
</string>
<string name="AboutLibs">
<string name="AboutOGL">
OpenGL-Version: [OPENGL_VERSION]
RestrainedLove API: [RLV_VERSION]
libcurl-Version: [LIBCURL_VERSION]
J2C-Decoderversion: [J2C_VERSION]
Audio-Treiberversion: [AUDIO_DRIVER_VERSION]
LLCEFLib/CEF-Version: [LLCEFLIB_VERSION]
LibVLC-Version: [LIBVLC_VERSION]
Voice-Serverversion: [VOICE_VERSION]
</string>
<string name="AboutSettings">
Modus: [MODE]
Oberflächendesign: [SKIN] ([THEME])
Fenstergröße: [WINDOW_WIDTH]x[WINDOW_HEIGHT] px
Schriftart: [FONT] ([FONT_SCREEN_DPI] dpi)
Schriftart Größenanpassung: [FONT_SIZE] pt
UI-Skalierung: [UI_SCALE_FACTOR]
@ -84,6 +77,15 @@ Darstellungsqualität: [RENDERQUALITY]
Erweitertes Beleuchtungsmodell: [ALMSTATUS]
Texturspeicher: [TEXTUREMEMORY] MB ([TEXTUREMEMORYMULTIPLIER])
VFS (Cache) Erstellungszeit: [VFS_DATE]
</string>
<string name="AboutLibs">
RestrainedLove API: [RLV_VERSION]
libcurl-Version: [LIBCURL_VERSION]
J2C-Decoderversion: [J2C_VERSION]
Audio-Treiberversion: [AUDIO_DRIVER_VERSION]
LLCEFLib/CEF-Version: [LLCEFLIB_VERSION]
LibVLC-Version: [LIBVLC_VERSION]
Voice-Serverversion: [VOICE_VERSION]
</string>
<string name="AboutTraffic">
Paketverlust: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)

View File

@ -194,6 +194,9 @@
<on_click
function="Inventory.GearDefault.Custom.Action"
parameter="empty_lostnfound" />
<on_enable
function="Inventory.GearDefault.Enable"
parameter="empty_lostnfound" />
</menu_item_call>
<menu_item_separator
layout="topleft" />
@ -293,5 +296,8 @@
<on_click
function="Inventory.GearDefault.Custom.Action"
parameter="empty_trash" />
<on_enable
function="Inventory.GearDefault.Enable"
parameter="empty_trash" />
</menu_item_call>
</toggleable_menu>

View File

@ -125,7 +125,7 @@
left_delta="50"
name="region_type"
top_delta="0"
width="200">
width="225">
unknown
</text>
<check_box

View File

@ -54,20 +54,11 @@ Graphics Card Vendor: [GRAPHICS_CARD_VENDOR]
Graphics Card: [GRAPHICS_CARD]
</string>
<string name="AboutDriver">Windows Graphics Driver Version: [GRAPHICS_DRIVER_VERSION]</string>
<string name="AboutLibs">
OpenGL Version: [OPENGL_VERSION]
RestrainedLove API: [RLV_VERSION]
libcurl Version: [LIBCURL_VERSION]
J2C Decoder Version: [J2C_VERSION]
Audio Driver Version: [AUDIO_DRIVER_VERSION]
LLCEFLib/CEF Version: [LLCEFLIB_VERSION]
LibVLC Version: [LIBVLC_VERSION]
Voice Server Version: [VOICE_VERSION]
</string>
<string name="AboutSettings">
<string name="AboutOGL">OpenGL Version: [OPENGL_VERSION]</string>
<string name="AboutSettings">
Settings mode: [MODE]
Viewer Skin: [SKIN] ([THEME])
Window size: [WINDOW_WIDTH]x[WINDOW_HEIGHT] px
Font Used: [FONT] ([FONT_SCREEN_DPI] dpi)
Font Size Adjustment: [FONT_SIZE] pt
UI Scaling: [UI_SCALE_FACTOR]
@ -78,8 +69,17 @@ Render quality: [RENDERQUALITY]
Advanced Lighting Model: [ALMSTATUS]
Texture memory: [TEXTUREMEMORY] MB ([TEXTUREMEMORYMULTIPLIER])
VFS (cache) creation time (UTC): [VFS_DATE]
</string>
<string name="AboutTraffic">Packets Lost: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)</string>
</string>
<string name="AboutLibs">
RestrainedLove API: [RLV_VERSION]
libcurl Version: [LIBCURL_VERSION]
J2C Decoder Version: [J2C_VERSION]
Audio Driver Version: [AUDIO_DRIVER_VERSION]
LLCEFLib/CEF Version: [LLCEFLIB_VERSION]
LibVLC Version: [LIBVLC_VERSION]
Voice Server Version: [VOICE_VERSION]
</string>
<string name="AboutTraffic">Packets Lost: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number,1]%)</string>
<string name="AboutTime">[month, datetime, slt] [day, datetime, slt] [year, datetime, slt] [hour, datetime, slt]:[min, datetime, slt]:[second,datetime,slt] SLT</string>
<string name="ErrorFetchingServerReleaseNotesURL">Error fetching server release notes URL.</string>
<string name="BuildConfiguration">Build Configuration</string>

View File

@ -57,9 +57,10 @@ Tarjeta gráfica: [GRAPHICS_CARD]
<string name="AboutDriver">
Versión de Windows Graphics Driver: [GRAPHICS_DRIVER_VERSION]
</string>
<string name="AboutLibs">
<string name="AboutOGL">
Versión de OpenGL: [OPENGL_VERSION]
</string>
<string name="AboutLibs">
Versión de libcurl: [LIBCURL_VERSION]
Versión de J2C Decoder: [J2C_VERSION]
Versión de Audio Driver: [AUDIO_DRIVER_VERSION]

View File

@ -52,9 +52,10 @@ Carte graphique : [GRAPHICS_CARD]
<string name="AboutDriver">
Version Windows Graphics Driver : [GRAPHICS_DRIVER_VERSION]
</string>
<string name="AboutLibs">
<string name="AboutOGL">
Version OpenGL : [OPENGL_VERSION]
</string>
<string name="AboutLibs">
Version libcurl : [LIBCURL_VERSION]
Version J2C Decoder : [J2C_VERSION]
Version Audio Driver : [AUDIO_DRIVER_VERSION]

View File

@ -49,9 +49,10 @@ Scheda grafica: [GRAPHICS_CARD]
<string name="AboutDriver">
Versione driver Windows per grafica: [GRAPHICS_DRIVER_VERSION]
</string>
<string name="AboutLibs">
<string name="AboutOGL">
Versione OpenGL: [OPENGL_VERSION]
</string>
<string name="AboutSettings">
Versione libcurl: [LIBCURL_VERSION]
Versione J2C Decoder: [J2C_VERSION]
Versione Driver audio: [AUDIO_DRIVER_VERSION]

View File

@ -52,9 +52,10 @@ Karta graficzna (Graphics Card): [GRAPHICS_CARD]
<string name="AboutDriver">
Sterownik karty graficznej Windows (Driver Version): [GRAPHICS_DRIVER_VERSION]
</string>
<string name="AboutLibs">
<string name="AboutOGL">
Wersja OpenGL: [OPENGL_VERSION]
</string>
<string name="AboutLibs">
RestrainedLove API: [RLV_VERSION]
Wersja libcurl: [LIBCURL_VERSION]
Wersja dekodera J2C: [J2C_VERSION]

View File

@ -49,9 +49,10 @@ Placa gráfica: [GRAPHICS_CARD]
<string name="AboutDriver">
Versão do driver de vídeo Windows: [GRAPHICS_CARD_VENDOR]
</string>
<string name="AboutLibs">
<string name="AboutOGL">
Versão OpenGL: [OPENGL_VERSION]
</string>
<string name="AboutLibs">
Versão libcurl: [LIBCURL_VERSION]
Versão J2C Decoder: [J2C_VERSION]
Versão do driver de áudio: [AUDIO_DRIVER_VERSION]

View File

@ -64,8 +64,10 @@ SLURL: &lt;nolink&gt;[SLURL]&lt;/nolink&gt;
<string name="AboutDriver">
Версия графического драйвера Windows: [GRAPHICS_DRIVER_VERSION]
</string>
<string name="AboutLibs">
<string name="AboutOGL">
Версия OpenGL: [OPENGL_VERSION]
</string>
<string name="AboutLibs">
Контроль скриптами (RLVa): [RLV_VERSION]
Версия libcurl: [LIBCURL_VERSION]
Версия декодера J2C: [J2C_VERSION]

View File

@ -61,9 +61,10 @@ Grafik Kartı: [GRAPHICS_CARD]
<string name="AboutDriver">
Windows Grafik Sürücüsü Sürümü: [GRAPHICS_DRIVER_VERSION]
</string>
<string name="AboutLibs">
<string name="AboutOGL">
OpenGL Sürümü: [OPENGL_VERSION]
</string>
<string name="AboutLibs">
libcurl Sürümü: [LIBCURL_VERSION]
J2C Kod Çözücü Sürümü: [J2C_VERSION]
Ses Sürücüsü Sürümü: [AUDIO_DRIVER_VERSION]

View File

@ -61,9 +61,10 @@
<string name="AboutDriver">
Windows 顯示驅動程式版本:[GRAPHICS_DRIVER_VERSION]
</string>
<string name="AboutLibs">
<string name="AboutOGL">
OpenGL 版本:[OPENGL_VERSION]
</string>
<string name="AboutLibs">
libcurl 版本: [LIBCURL_VERSION]
J2C 解碼器版本: [J2C_VERSION]
音效驅動程式版本: [AUDIO_DRIVER_VERSION]