Merge viewer-neko
commit
09ff4dba7a
|
|
@ -4742,6 +4742,7 @@ static LLNotificationFunctorRegistration finish_quit_reg("ConfirmQuit", finish_q
|
|||
|
||||
void LLAppViewer::userQuit()
|
||||
{
|
||||
LL_INFOS() << "User requested quit" << LL_ENDL;
|
||||
if (gDisconnected
|
||||
|| !gViewerWindow
|
||||
|| !gViewerWindow->getProgressView()
|
||||
|
|
|
|||
|
|
@ -52,10 +52,12 @@ LLAppViewerListener::LLAppViewerListener(const LLAppViewerGetter& getter):
|
|||
|
||||
void LLAppViewerListener::requestQuit(const LLSD& event)
|
||||
{
|
||||
LL_INFOS() << "Listener requested quit" << LL_ENDL;
|
||||
mAppViewerGetter()->requestQuit();
|
||||
}
|
||||
|
||||
void LLAppViewerListener::forceQuit(const LLSD& event)
|
||||
{
|
||||
LL_INFOS() << "Listener requested force quit" << LL_ENDL;
|
||||
mAppViewerGetter()->forceQuit();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -500,6 +500,10 @@ bool LLConversationLog::saveToFile(const std::string& filename)
|
|||
conv_it->getSessionID().toString(conversation_id);
|
||||
conv_it->getParticipantID().toString(participant_id);
|
||||
|
||||
bool is_adhoc = (conv_it->getConversationType() == LLIMModel::LLIMSession::ADHOC_SESSION);
|
||||
std::string conv_name = is_adhoc ? conv_it->getConversationName() : LLURI::escape(conv_it->getConversationName());
|
||||
std::string file_name = is_adhoc ? conv_it->getHistoryFileName() : LLURI::escape(conv_it->getHistoryFileName());
|
||||
|
||||
// examples of two file entries
|
||||
// [1343221177] 0 1 0 John Doe| 7e4ec5be-783f-49f5-71dz-16c58c64c145 4ec62a74-c246-0d25-2af6-846beac2aa55 john.doe|
|
||||
// [1343222639] 2 0 0 Ad-hoc Conference| c3g67c89-c479-4c97-b21d-32869bcfe8rc 68f1c33e-4135-3e3e-a897-8c9b23115c09 Ad-hoc Conference hash597394a0-9982-766d-27b8-c75560213b9a|
|
||||
|
|
@ -508,10 +512,10 @@ bool LLConversationLog::saveToFile(const std::string& filename)
|
|||
(S32)conv_it->getConversationType(),
|
||||
(S32)0,
|
||||
(S32)conv_it->hasOfflineMessages(),
|
||||
LLURI::escape(conv_it->getConversationName()).c_str(),
|
||||
conv_name.c_str(),
|
||||
participant_id.c_str(),
|
||||
conversation_id.c_str(),
|
||||
LLURI::escape(conv_it->getHistoryFileName()).c_str());
|
||||
file_name.c_str());
|
||||
}
|
||||
fclose(fp);
|
||||
return true;
|
||||
|
|
@ -567,14 +571,18 @@ bool LLConversationLog::loadFromFile(const std::string& filename)
|
|||
conv_id_buffer,
|
||||
history_file_name);
|
||||
|
||||
bool is_adhoc = ((SessionType)stype == LLIMModel::LLIMSession::ADHOC_SESSION);
|
||||
std::string conv_name = is_adhoc ? conv_name_buffer : LLURI::unescape(conv_name_buffer);
|
||||
std::string file_name = is_adhoc ? history_file_name : LLURI::unescape(history_file_name);
|
||||
|
||||
ConversationParams params;
|
||||
params.time(LLUnits::Seconds::fromValue(time))
|
||||
.conversation_type((SessionType)stype)
|
||||
.has_offline_ims(has_offline_ims)
|
||||
.conversation_name(LLURI::unescape(conv_name_buffer))
|
||||
.conversation_name(conv_name)
|
||||
.participant_id(LLUUID(part_id_buffer))
|
||||
.session_id(LLUUID(conv_id_buffer))
|
||||
.history_filename(LLURI::unescape(history_file_name));
|
||||
.history_filename(file_name);
|
||||
|
||||
LLConversation conversation(params);
|
||||
|
||||
|
|
|
|||
|
|
@ -299,21 +299,34 @@ bool LLInventoryFilter::checkAgainstFilterType(const LLFolderViewModelItemInvent
|
|||
// Pass if this item's type is of the correct filter type
|
||||
if (filterTypes & FILTERTYPE_OBJECT)
|
||||
{
|
||||
|
||||
// If it has no type, pass it, unless it's a link.
|
||||
if (object_type == LLInventoryType::IT_NONE)
|
||||
{
|
||||
if (object && object->getIsLinkType())
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
else if ((1LL << object_type & mFilterOps.mFilterObjectTypes) == U64(0))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
switch (object_type)
|
||||
{
|
||||
case LLInventoryType::IT_NONE:
|
||||
// If it has no type, pass it, unless it's a link.
|
||||
if (object && object->getIsLinkType())
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
case LLInventoryType::IT_UNKNOWN:
|
||||
{
|
||||
// Unknows are only shown when we show every type.
|
||||
// Unknows are 255 and won't fit in 64 bits.
|
||||
if (mFilterOps.mFilterObjectTypes != 0xffffffffffffffffULL)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
if ((1LL << object_type & mFilterOps.mFilterObjectTypes) == U64(0))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// <FS>
|
||||
//if(filterTypes & FILTERTYPE_WORN)
|
||||
//{
|
||||
|
|
@ -455,18 +468,32 @@ bool LLInventoryFilter::checkAgainstFilterType(const LLInventoryItem* item) cons
|
|||
// Pass if this item's type is of the correct filter type
|
||||
if (filterTypes & FILTERTYPE_OBJECT)
|
||||
{
|
||||
// If it has no type, pass it, unless it's a link.
|
||||
if (object_type == LLInventoryType::IT_NONE)
|
||||
{
|
||||
if (item && item->getIsLinkType())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if ((1LL << object_type & mFilterOps.mFilterObjectTypes) == U64(0))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
switch (object_type)
|
||||
{
|
||||
case LLInventoryType::IT_NONE:
|
||||
// If it has no type, pass it, unless it's a link.
|
||||
if (item && item->getIsLinkType())
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
case LLInventoryType::IT_UNKNOWN:
|
||||
{
|
||||
// Unknows are only shown when we show every type.
|
||||
// Unknows are 255 and won't fit in 64 bits.
|
||||
if (mFilterOps.mFilterObjectTypes != 0xffffffffffffffffULL)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
if ((1LL << object_type & mFilterOps.mFilterObjectTypes) == U64(0))
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ LLPanelOutfitsInventory::LLPanelOutfitsInventory() :
|
|||
mMyOutfitsPanel(NULL),
|
||||
mCurrentOutfitPanel(NULL),
|
||||
mActivePanel(NULL),
|
||||
mAppearanceTabs(NULL),
|
||||
mInitialized(false)
|
||||
{
|
||||
gAgentWearables.addLoadedCallback(boost::bind(&LLPanelOutfitsInventory::onWearablesLoaded, this));
|
||||
|
|
@ -352,6 +353,7 @@ void LLPanelOutfitsInventory::initTabPanels()
|
|||
|
||||
void LLPanelOutfitsInventory::onTabChange()
|
||||
{
|
||||
if (!mAppearanceTabs) return;
|
||||
mActivePanel = dynamic_cast<LLPanelAppearanceTab*>(mAppearanceTabs->getCurrentPanel());
|
||||
if (!mActivePanel) return;
|
||||
|
||||
|
|
|
|||
|
|
@ -404,6 +404,7 @@ void LLProgressView::onCancelButtonClicked(void*)
|
|||
// cancel is pressed while teleporting inside region (EXT-4911)
|
||||
if (LLStartUp::getStartupState() < STATE_STARTED)
|
||||
{
|
||||
LL_INFOS() << "User requesting quit during login" << LL_ENDL;
|
||||
LLAppViewer::instance()->requestQuit();
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -1742,6 +1742,8 @@ bool idle_startup()
|
|||
// Its either downloading or declined.
|
||||
// If optional was skipped this case shouldn't
|
||||
// be reached.
|
||||
|
||||
LL_INFOS() << "Forcing a quit due to update." << LL_ENDL;
|
||||
LLLoginInstance::getInstance()->disconnect();
|
||||
LLAppViewer::instance()->forceQuit();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1453,6 +1453,7 @@ BOOL LLViewerWindow::handleCloseRequest(LLWindow *window)
|
|||
|
||||
void LLViewerWindow::handleQuit(LLWindow *window)
|
||||
{
|
||||
LL_INFOS() << "Window forced quit" << LL_ENDL;
|
||||
LLAppViewer::instance()->forceQuit();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -4803,8 +4803,9 @@ BOOL LLVOVolume::lineSegmentIntersect(const LLVector4a& start, const LLVector4a&
|
|||
{
|
||||
U8 mode = mat->getDiffuseAlphaMode();
|
||||
|
||||
if (mode == LLMaterial::DIFFUSE_ALPHA_MODE_EMISSIVE ||
|
||||
mode == LLMaterial::DIFFUSE_ALPHA_MODE_NONE)
|
||||
if (mode == LLMaterial::DIFFUSE_ALPHA_MODE_EMISSIVE
|
||||
|| mode == LLMaterial::DIFFUSE_ALPHA_MODE_NONE
|
||||
|| (mode == LLMaterial::DIFFUSE_ALPHA_MODE_MASK && mat->getAlphaMaskCutoff() == 0))
|
||||
{
|
||||
ignore_alpha = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -122,8 +122,8 @@
|
|||
No parcel selected.
|
||||
</panel.string>
|
||||
<panel.string name="time_stamp_template">
|
||||
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
|
||||
</panel.string>
|
||||
[wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [year,datetime,slt]
|
||||
</panel.string>
|
||||
<panel.string name="error_resolving_uuid">
|
||||
The parcel ID could not be resolved.
|
||||
</panel.string>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
width="610">
|
||||
<floater.string
|
||||
name="timeStamp">
|
||||
[year,datetime,local] [mth,datetime,local] [day,datetime,local], [hour,datetime,local]:[min,datetime,local]:[second,datetime,local], [wkday,datetime,local]
|
||||
[year,datetime,slt] [mth,datetime,slt] [day,datetime,slt], [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt], [wkday,datetime,slt]
|
||||
</floater.string>
|
||||
<floater.string
|
||||
name="Group">
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@
|
|||
</string>
|
||||
<string
|
||||
name="acquired_date">
|
||||
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
|
||||
[wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [year,datetime,slt]
|
||||
</string>
|
||||
<string
|
||||
name="information_text">
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@
|
|||
</panel.string>
|
||||
<panel.string
|
||||
name="acquiredDate">
|
||||
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
|
||||
[wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [year,datetime,slt]
|
||||
</panel.string>
|
||||
<panel.string
|
||||
name="origin_inventory">
|
||||
|
|
|
|||
|
|
@ -121,7 +121,7 @@
|
|||
No parcel selected.
|
||||
</panel.string>
|
||||
<panel.string name="time_stamp_template">
|
||||
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
|
||||
[wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [year,datetime,slt]
|
||||
</panel.string>
|
||||
<panel.string name="error_resolving_uuid">
|
||||
The parcel ID could not be resolved.
|
||||
|
|
|
|||
|
|
@ -121,8 +121,8 @@
|
|||
No parcel selected.
|
||||
</panel.string>
|
||||
<panel.string name="time_stamp_template">
|
||||
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
|
||||
</panel.string>
|
||||
[wkday,datetime,slt] [mth,datetime,slt] [day,datetime,slt] [hour,datetime,slt]:[min,datetime,slt]:[second,datetime,slt] [year,datetime,slt]
|
||||
</panel.string>
|
||||
<panel.string name="error_resolving_uuid">
|
||||
The parcel ID could not be resolved.
|
||||
</panel.string>
|
||||
|
|
|
|||
Loading…
Reference in New Issue