Ansariel 2020-05-28 22:07:28 +02:00
commit fe10e1ac46
21 changed files with 148 additions and 88 deletions

View File

@ -838,9 +838,9 @@
<key>archive</key>
<map>
<key>hash</key>
<string>9fad2e6e1fb3c698afa2b9094deb8422</string>
<string>b92c2efe8e3802a26209a4ebe2f840ba</string>
<key>url</key>
<string>http://downloads.phoenixviewer.com/dullahan-1.6.4.202005232231_81.3.3_g072a5f5_chromium-81.0.4044.147-linux64-201442030.tar.bz2</string>
<string>http://downloads.phoenixviewer.com/dullahan-1.6.4.202005241618_81.3.10_gb223419_chromium-81.0.4044.138-linux64-201451417.tar.bz2</string>
</map>
<key>name</key>
<string>linux64</string>

View File

@ -659,7 +659,8 @@ void LLConsole::Paragraph::updateLines(F32 screen_width, const LLFontGL* font, L
// <FS> FIRE-8257: Sometimes text is cut off on left side of console
else
{
break;
mLines.push_back(Line());
skip_chars = 1;
}
// </FS>
paragraph_offset += (drawable + skip_chars);

View File

@ -120,9 +120,6 @@ MediaPluginBase(host_send_func, host_user_data)
mPluginsEnabled = false;
mJavascriptEnabled = true;
mDisableGPU = false;
#ifdef LL_LINUX // <FS:ND> Do not use GPU on Linux, using GPU messes with some window managers (https://bitbucket.org/NickyD/phoenix-firestorm-lgpl-linux/commits/14c936db5a02cf0f3ff24eb7f1c92136#comment-6048984)
mDisableGPU = true;
#endif
mUserAgentSubtring = "";
mAuthUsername = "";
mAuthPassword = "";

View File

@ -131,12 +131,6 @@ void FloaterAO::updateList()
mReloadButton->setEnabled(TRUE);
mImportRunning = FALSE;
std::string currentSetName = mSetSelector->getSelectedItemLabel();
if (currentSetName.empty())
{
currentSetName = AOEngine::instance().getCurrentSetName();
}
// Lambda provides simple Alpha sorting, note this is case sensitive.
auto sortRuleLambda = [](const AOSet* s1, const AOSet* s2) -> bool
{
@ -146,6 +140,9 @@ void FloaterAO::updateList()
mSetList=AOEngine::instance().getSetList();
std::sort(mSetList.begin(), mSetList.end(), sortRuleLambda);
// remember currently selected animation set name
std::string currentSetName = mSetSelector->getSelectedItemLabel();
mSetSelector->removeall();
mSetSelectorSmall->removeall();
mSetSelector->clear();
@ -166,6 +163,21 @@ void FloaterAO::updateList()
return;
}
// make sure we have an animation set name to display
if (currentSetName.empty())
{
// selected animation set was empty, get the currently active animation set from the engine
currentSetName = AOEngine::instance().getCurrentSetName();
LL_DEBUGS("AOEngine") << "Current set name was empty, fetched name \"" << currentSetName << "\" from AOEngine" << LL_ENDL;
if(currentSetName.empty())
{
// selected animation set was empty, get the name of the first animation set in the list
currentSetName = mSetList[0]->getName();
LL_DEBUGS("AOEngine") << "Current set name still empty, fetched first set's name \"" << currentSetName << "\"" << LL_ENDL;
}
}
for (U32 index = 0; index < mSetList.size(); ++index)
{
std::string setName = mSetList[index]->getName();

View File

@ -16417,17 +16417,6 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>Value</key>
<real>1.0</real>
</map>
<key>HUDScaleFactor</key>
<map>
<key>Comment</key>
<string>Scale of HUD attachments</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
<string>F32</string>
<key>Value</key>
<real>1.0</real>
</map>
<key>UIScaleFactor</key>
<map>
<key>Comment</key>

View File

@ -1161,13 +1161,6 @@ void LLAgent::removeRegionChangedCallback(boost::signals2::connection callback)
mRegionChangedSignal.disconnect(callback);
}
// <FS:Ansariel> Aurora sim windlight refresh
void LLAgent::changeRegion()
{
mRegionChangedSignal();
}
// </FS:Ansariel>
//-----------------------------------------------------------------------------
// inPrelude()
//-----------------------------------------------------------------------------

View File

@ -280,9 +280,6 @@ public:
// Capability
std::string getRegionCapability(const std::string &name); // short hand for if (getRegion()) { getRegion()->getCapability(name) }
// <FS:Ansariel> Aurora sim windlight refresh
void changeRegion();
/**
* Register a boost callback to be called when the agent changes regions
* Note that if you need to access a capability for the region, you may need to wait

View File

@ -157,8 +157,9 @@ namespace
sBugSplatSender->setDefaultUserEmail( WCSTR(STRINGIZE(LLOSInfo::instance().getOSStringSimple() << " (" << ADDRESS_SIZE << "-bit, flavor " << flavor <<")")));
// </FS:ND>
//<FS:ND/> Clear out username first, as we get some crashes that has the OS set as username, let's see if this fixes it.
sBugSplatSender->setDefaultUserName( WCSTR("<unset>") );
//<FS:ND/> Clear out username first, as we get some crashes that has the OS set as username, let's see if this fixes it. Use Crash.Linden as a usr can never have a "Linden"
// name and on the other hand a Linden will not likely ever crash on Firestom.
sBugSplatSender->setDefaultUserName( WCSTR("Crash.Linden") );
// <FS:ND> Only send avatar name if enabled via prefs
if (gCrashSettings.getBOOL("CrashSubmitName"))
@ -679,6 +680,7 @@ LLAppViewerWin32::~LLAppViewerWin32()
bool LLAppViewerWin32::init()
{
bool success{ false }; // <FS:ND/> For BugSplat we need to call base::init() early on or there's no access to settings.
// Platform specific initialization.
// Turn off Windows Error Reporting
@ -702,7 +704,21 @@ bool LLAppViewerWin32::init()
#else // LL_BUGSPLAT
#pragma message("Building with BugSplat")
// <FS:ND> Pre BugSplat dance, make sure settings are valid, query crash behavior and then set up Bugsplat accordingly"
success = LLAppViewer::init();
if (!success)
return false;
S32 nCrashSubmitBehavior = gCrashSettings.getS32("CrashSubmitBehavior");
// Don't ever send? bail out!
if (nCrashSubmitBehavior == 2 /*CRASH_BEHAVIOR_NEVER_SEND*/)
return success;
DWORD dwAsk{ MDSF_NONINTERACTIVE };
if (nCrashSubmitBehavior == 0 /*CRASH_BEHAVIOR_ASK*/)
dwAsk = 0;
// </FS:ND>
std::string build_data_fname(
gDirUtilp->getExpandedFilename(LL_PATH_EXECUTABLE, "build_data.json"));
// Use llifstream instead of std::ifstream because LL_PATH_EXECUTABLE
@ -740,13 +756,26 @@ bool LLAppViewerWin32::init()
LL_VIEWER_VERSION_BUILD));
// have to convert normal wide strings to strings of __wchar_t
// <FS:ND> Set up Bugsplat to ask or always send
// sBugSplatSender = new MiniDmpSender(
// WCSTR(BugSplat_DB.asString()),
// WCSTR(LL_TO_WSTRING(LL_VIEWER_CHANNEL)),
// WCSTR(version_string),
// nullptr, // szAppIdentifier -- set later
// MDSF_NONINTERACTIVE | // automatically submit report without prompting
// MDSF_PREVENTHIJACKING); // disallow swiping Exception filter
sBugSplatSender = new MiniDmpSender(
WCSTR(BugSplat_DB.asString()),
WCSTR(LL_TO_WSTRING(LL_VIEWER_CHANNEL)),
WCSTR(version_string),
nullptr, // szAppIdentifier -- set later
MDSF_NONINTERACTIVE | // automatically submit report without prompting
dwAsk |
MDSF_PREVENTHIJACKING); // disallow swiping Exception filter
// </FS:ND>
sBugSplatSender->setCallback(bugsplatSendLog);
// engage stringize() overload that converts from wstring
@ -759,7 +788,12 @@ bool LLAppViewerWin32::init()
#endif // LL_BUGSPLAT
#endif // LL_SEND_CRASH_REPORTS
bool success = LLAppViewer::init();
// <FS:ND> base::init() was potentially called earlier.
// bool success = LLAppViewer::init();
// </FS:ND>
if( !success )
success = LLAppViewer::init();
return success;
}

View File

@ -4975,6 +4975,10 @@ BOOL LLPanelPreferenceCrashReports::postBuild()
getChild<LLTextBox>("textInformation4")->setTextArg("[URL]", getString("PrivacyPolicyUrl"));
#if LL_SEND_CRASH_REPORTS && defined(LL_BUGSPLAT)
childSetVisible("textRestartRequired", true);
#endif
refresh();
return LLPanelPreference::postBuild();
@ -4989,13 +4993,6 @@ void LLPanelPreferenceCrashReports::refresh()
getChild<LLUICtrl>("checkSendCrashReportsAlwaysAsk")->setEnabled(fEnable);
getChild<LLUICtrl>("checkSendSettings")->setEnabled(fEnable);
getChild<LLUICtrl>("checkSendName")->setEnabled(fEnable);
// <FS:ND> Disable options not available when compiling with Bugsplat and set those to default values.
#ifdef LL_BUGSPLAT
getChild<LLUICtrl>("checkSendCrashReportsAlwaysAsk")->setEnabled(false);
getChild<LLUICtrl>("checkSendCrashReportsAlwaysAsk")->setValue(false);
#endif
// </FS:ND>
}
void LLPanelPreferenceCrashReports::apply()

View File

@ -90,10 +90,9 @@ void LLFloaterPreferenceViewAdvanced::onSavePreset()
LLFloaterReg::hideInstance("load_pref_preset", PRESETS_CAMERA);
LLSD key;
key["subdirectory"] = PRESETS_CAMERA;
std::string current_preset = gSavedSettings.getString("PresetCameraActive");
bool is_custom_preset = current_preset != "" && !LLPresetsManager::getInstance()->isDefaultCameraPreset(current_preset);
key["index"] = is_custom_preset ? 1 : 0;
LLFloaterReg::showInstance("save_pref_preset", key);
LLFloaterReg::showInstance("save_camera_preset", key);
}
// </FS:Ansariel>

View File

@ -4381,6 +4381,7 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items
const LLUUID &lost_and_found_id = model->findCategoryUUIDForType(LLFolderType::FT_LOST_AND_FOUND);
const LLUUID &favorites = model->findCategoryUUIDForType(LLFolderType::FT_FAVORITE);
const LLUUID &marketplace_listings_id = model->findCategoryUUIDForType(LLFolderType::FT_MARKETPLACE_LISTINGS, false);
const LLUUID &outfits_id = model->findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS, false); // <FS:Ansariel> Fix "outfits" context menu
// <FS:Ansariel> FIRE-11628: Option to delete broken links from AO folder
if (mUUID == AOEngine::instance().getAOFolder())
@ -4388,6 +4389,12 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items
items.push_back(std::string("Cleanup broken Links"));
}
// </FS:Ansariel>
// <FS:Ansariel> Fix "outfits" context menu
if (outfits_id == mUUID)
{
items.push_back(std::string("New Outfit"));
}
// </FS:Ansariel>
if (lost_and_found_id == mUUID)
{
// This is the lost+found folder.
@ -4489,7 +4496,10 @@ void LLFolderBridge::buildContextMenuOptions(U32 flags, menuentry_vec_t& items
// Not sure what the right thing is to do here.
if (!isCOFFolder() && cat && (cat->getPreferredType() != LLFolderType::FT_OUTFIT))
{
if (!isInboxFolder()) // don't allow creation in inbox
// <FS:Ansariel> Fix "outfits" context menu
//if (!isInboxFolder()) // don't allow creation in inbox
if (!isInboxFolder() && outfits_id != mUUID) // don't allow creation in inbox
// </FS:Ansariel>
{
// Do not allow to create 2-level subfolder in the Calling Card/Friends folder. EXT-694.
if (!LLFriendCardsManager::instance().isCategoryInFriendFolder(cat))
@ -8540,6 +8550,7 @@ void LLWornItemsFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
items.erase(std::remove(items.begin(), items.end(), std::string("New Gesture")), items.end());
items.erase(std::remove(items.begin(), items.end(), std::string("New Script")), items.end());
items.erase(std::remove(items.begin(), items.end(), std::string("New Folder")), items.end());
items.erase(std::remove(items.begin(), items.end(), std::string("New Settings")), items.end()); // <FS:Ansariel> Don't allow creating settings on the "worn" tab
hide_context_entries(menu, items, disabled_items);
}

View File

@ -5237,8 +5237,10 @@ void handle_reset_view()
}
// <FS:Zi> Added optional V1 behavior so the avatar turns into camera direction after hitting ESC
if(gSavedSettings.getBOOL("ResetViewTurnsAvatar"))
gAgentCamera.resetView();
if (!gSavedSettings.getBOOL("ResetViewTurnsAvatar"))
{
gAgentCamera.setFocusOnAvatar(TRUE, FALSE, FALSE);
}
// </FS:Zi>
reset_view_final( TRUE );

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<floater name="Delete Pref Preset" title="Voreinstellung löschen">
<floater name="delete_pref_preset" title="Voreinstellung löschen">
<string name="title_graphic">
Grafik-Voreinstellung löschen
</string>

View File

@ -18,6 +18,7 @@
<menu_item_call label="Papierkorb ausleeren" name="Empty Trash"/>
<menu_item_call label="Fundstücke ausleeren" name="Empty Lost And Found"/>
<menu_item_call label="Neuer Ordner" name="New Folder"/>
<menu_item_call label="Neues Outfit" name="New Outfit"/>
<menu_item_call label="Neues Skript" name="New Script"/>
<menu_item_call label="Neue Notizkarte" name="New Note"/>
<menu_item_call label="Neue Geste" name="New Gesture"/>

View File

@ -10,6 +10,9 @@
<text name="textSendName">
(für eventuelle Rückfragen)
</text>
<text name="textRestartRequired">
Änderungen an jeglichen Einstellungen werden erst nach einem Neustart aktiv.
</text>
<text name="textInformation1">
Sofern nicht ausgewählt, enthalten die Meldungen nur absturzrelevante Informationen.
</text>

View File

@ -7,7 +7,7 @@
name="delete_pref_preset"
save_rect="true"
title="Delete Pref Preset"
width="300">
width="240">
<string name="title_graphic">Delete Graphic Preset</string>
<string name="title_camera">Delete Camera Preset</string>
@ -16,7 +16,7 @@
follows="top|left|right"
height="10"
layout="topleft"
left="20"
left="10"
name="Preset"
top="30"
width="200">
@ -25,19 +25,19 @@
<combo_box
follows="top|left"
layout="topleft"
left="20"
left="10"
name="preset_combo"
top_delta="20"
width="200"/>
width="220"/>
<button
follows="top|left"
height="23"
label="Delete"
layout="topleft"
top_delta="40"
left="20"
left="10"
name="delete"
width="70"/>
width="100"/>
<button
follows="top|left"
height="23"
@ -45,5 +45,5 @@
layout="topleft"
left_pad="20"
name="cancel"
width="70"/>
width="100"/>
</floater>

View File

@ -1,20 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<floater
legacy_header_height="18"
height="185"
height="180"
help_topic="floater_save_preset"
layout="topleft"
name="save_camera_preset"
save_rect="true"
title="Save Camera Preset"
width="280">
width="240">
<string name="btn_label_save">Save</string>
<string name="btn_label_replace">Replace</string>
<radio_group
height="85"
layout="topleft"
left="20"
left="5"
top="15"
width="150"
name="radio_save_preset">
@ -38,7 +38,7 @@
follows="top|left"
height="23"
layout="topleft"
left="41"
left="26"
name="preset_txt_editor"
width="200"
top="45"/>
@ -48,9 +48,9 @@
label="Save"
layout="topleft"
top="145"
left="25"
left="10"
name="save"
width="110"/>
width="100"/>
<button
follows="bottom|right"
height="25"
@ -58,12 +58,12 @@
layout="topleft"
left_pad="20"
name="cancel"
width="110"/>
width="100"/>
<!-- *HACK to correctly draw drop-down list over the buttons-->
<combo_box
follows="top|left"
layout="topleft"
left="41"
left="26"
name="preset_combo"
top_delta="-40"
width="200"/>

View File

@ -1,42 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<floater
legacy_header_height="18"
height="145"
height="140"
help_topic="floater_save_preset"
layout="topleft"
name="save_pref_preset"
save_rect="true"
title="Save Graphic Preset"
width="300">
width="245">
<text
follows="top|left|right"
height="32"
layout="topleft"
word_wrap="true"
left="20"
left="10"
name="Preset"
top="30"
width="200">
width="220">
Type a name for the preset or choose an existing preset.
</text>
<combo_box
follows="top|left"
layout="topleft"
left="20"
left="10"
name="preset_combo"
top_delta="35"
allow_text_entry="true"
width="200"/>
width="220"/>
<button
follows="top|left"
height="23"
label="Save"
layout="topleft"
top_delta="40"
left="20"
left="10"
name="save"
width="70"/>
width="100"/>
<button
follows="bottom|right"
height="23"
@ -44,5 +44,5 @@
layout="topleft"
left_pad="20"
name="cancel"
width="70"/>
width="100"/>
</floater>

View File

@ -151,6 +151,14 @@
function="Inventory.DoCreate"
parameter="category" />
</menu_item_call>
<menu_item_call
label="New Outfit"
layout="topleft"
name="New Outfit">
<menu_item_call.on_click
function="Inventory.DoCreate"
parameter="outfit" />
</menu_item_call>
<menu_item_call
label="New Script"
layout="topleft"

View File

@ -52,7 +52,7 @@
height="20"
width="230"
text_color="White_25">
(contains Second Life name)
(contains username)
</text>
<check_box
@ -61,7 +61,7 @@
left="60"
top_pad="0"
height="16"
label="Include Second Life name"
label="Include username"
name="checkSendName"
width="160"
enabled="false" />
@ -77,6 +77,21 @@
(used to ask for additional information if needed)
</text>
<text
layout="topleft"
follows="top|left"
left="30"
type="string"
length="1"
height="10"
mouse_opaque="false"
name="textRestartRequired"
top_pad="10"
visible="false"
width="475">
Changes made to any setting require a restart to become effective.
</text>
<text
layout="topleft"
follows="top|left"
@ -86,7 +101,7 @@
height="10"
mouse_opaque="false"
name="textInformation1"
top_pad="30"
top_pad="20"
width="475">
Unless checked above crash reports only contain information relevant to the crash.
</text>
@ -100,7 +115,7 @@
mouse_opaque="false"
name="textInformation2"
width="475" >
Second Life logs are not sent, please review the contents and email separately
Logs are not sent, please review the contents and email separately
</text>
<text
layout="topleft"

View File

@ -254,10 +254,8 @@ class ViewerManifest(LLManifest,FSViewerManifest):
#<FS:TS> Somehow, we started leaving the - separating the variant from the app name
# on the beginning of the channel qualifier. This screws up later processing that
# depends on the channel type. If it's there, we chop it off.
#<FS:TS> Well, not for 6.3.9...this is broken elsewhere and we're too rushed to fix
# it properly, so we kludge our way around it elsewhere.
#if channel_qualifier[0] == '-':
# channel_qualifier = channel_qualifier[1:]
if channel_qualifier[0] == '-':
channel_qualifier = channel_qualifier[1:]
if channel_qualifier.startswith('release'):
channel_type='release'
elif channel_qualifier.startswith('beta'):
@ -277,8 +275,9 @@ class ViewerManifest(LLManifest,FSViewerManifest):
# get any part of the channel name after the CHANNEL_VENDOR_BASE
suffix=self.channel_variant()
# by ancient convention, we don't use Release in the app name
if self.channel_type() == 'release':
suffix=suffix.replace('Release', '').strip()
#<FS:TS> Well, LL doesn't, but we do. Don't remove it.
#if self.channel_type() == 'release':
# suffix=suffix.replace('Release', '').strip()
# for the base release viewer, suffix will now be null - for any other, append what remains
if suffix:
#suffix = "_".join([''] + suffix.split())
@ -308,10 +307,12 @@ class ViewerManifest(LLManifest,FSViewerManifest):
def app_name(self):
global CHANNEL_VENDOR_BASE
channel_type=self.channel_type()
if channel_type == 'release':
app_suffix='Viewer'
else:
app_suffix=self.channel_variant()
#<FS:TS> LL uses "Viewer" in the name of their release package. We use "Release".
#if channel_type == 'release':
# app_suffix='Viewer'
#else:
# app_suffix=self.channel_variant()
app_suffix=self.channel_variant()
#<FS:ND> tag "OS" after CHANNEL_VENDOR_BASE and before any suffix
if self.fs_is_opensim():