diff options
Diffstat (limited to '')
84 files changed, 1974 insertions, 510 deletions
diff --git a/linden/doc/contributions.txt b/linden/doc/contributions.txt index a48730e..4915406 100644 --- a/linden/doc/contributions.txt +++ b/linden/doc/contributions.txt | |||
@@ -530,6 +530,7 @@ Robin Cornelius | |||
530 | SNOW-108 | 530 | SNOW-108 |
531 | SNOW-196 | 531 | SNOW-196 |
532 | SNOW-422 | 532 | SNOW-422 |
533 | SNOW-466 | ||
533 | SNOW-485 | 534 | SNOW-485 |
534 | VWR-2488 | 535 | VWR-2488 |
535 | VWR-9557 | 536 | VWR-9557 |
diff --git a/linden/indra/llinventory/llparcel.cpp b/linden/indra/llinventory/llparcel.cpp index 39605eb..4cbb83a 100644 --- a/linden/indra/llinventory/llparcel.cpp +++ b/linden/indra/llinventory/llparcel.cpp | |||
@@ -195,8 +195,6 @@ void LLParcel::init(const LLUUID &owner_id, | |||
195 | mMediaID.setNull(); | 195 | mMediaID.setNull(); |
196 | mMediaAutoScale = 0; | 196 | mMediaAutoScale = 0; |
197 | mMediaLoop = TRUE; | 197 | mMediaLoop = TRUE; |
198 | mObscureMedia = 1; | ||
199 | mObscureMusic = 1; | ||
200 | mMediaWidth = 0; | 198 | mMediaWidth = 0; |
201 | mMediaHeight = 0; | 199 | mMediaHeight = 0; |
202 | setMediaCurrentURL(LLStringUtil::null); | 200 | setMediaCurrentURL(LLStringUtil::null); |
@@ -691,8 +689,8 @@ void LLParcel::packMessage(LLSD& msg) | |||
691 | msg["auto_scale"] = getMediaAutoScale(); | 689 | msg["auto_scale"] = getMediaAutoScale(); |
692 | msg["media_loop"] = getMediaLoop(); | 690 | msg["media_loop"] = getMediaLoop(); |
693 | msg["media_current_url"] = getMediaCurrentURL(); | 691 | msg["media_current_url"] = getMediaCurrentURL(); |
694 | msg["obscure_media"] = getObscureMedia(); | 692 | msg["obscure_media"] = FALSE; // OBSOLETE - no longer used |
695 | msg["obscure_music"] = getObscureMusic(); | 693 | msg["obscure_music"] = FALSE; // OBSOLETE - no longer used |
696 | msg["media_id"] = getMediaID(); | 694 | msg["media_id"] = getMediaID(); |
697 | msg["media_allow_navigate"] = getMediaAllowNavigate(); | 695 | msg["media_allow_navigate"] = getMediaAllowNavigate(); |
698 | msg["media_prevent_camera_zoom"] = getMediaPreventCameraZoom(); | 696 | msg["media_prevent_camera_zoom"] = getMediaPreventCameraZoom(); |
@@ -757,8 +755,6 @@ void LLParcel::unpackMessage(LLMessageSystem* msg) | |||
757 | msg->getS32("MediaData", "MediaWidth", mMediaWidth); | 755 | msg->getS32("MediaData", "MediaWidth", mMediaWidth); |
758 | msg->getS32("MediaData", "MediaHeight", mMediaHeight); | 756 | msg->getS32("MediaData", "MediaHeight", mMediaHeight); |
759 | msg->getU8 ( "MediaData", "MediaLoop", mMediaLoop ); | 757 | msg->getU8 ( "MediaData", "MediaLoop", mMediaLoop ); |
760 | msg->getU8 ( "MediaData", "ObscureMedia", mObscureMedia ); | ||
761 | msg->getU8 ( "MediaData", "ObscureMusic", mObscureMusic ); | ||
762 | } | 758 | } |
763 | else | 759 | else |
764 | { | 760 | { |
@@ -766,8 +762,6 @@ void LLParcel::unpackMessage(LLMessageSystem* msg) | |||
766 | // thats what we want -- AW | 762 | // thats what we want -- AW |
767 | setMediaDesc(std::string("No Description available without Server Upgrade")); | 763 | setMediaDesc(std::string("No Description available without Server Upgrade")); |
768 | mMediaLoop = true; | 764 | mMediaLoop = true; |
769 | mObscureMedia = true; | ||
770 | mObscureMusic = true; | ||
771 | } | 765 | } |
772 | 766 | ||
773 | if(msg->getNumberOfBlocks("MediaLinkSharing") > 0) | 767 | if(msg->getNumberOfBlocks("MediaLinkSharing") > 0) |
@@ -1233,8 +1227,6 @@ void LLParcel::clearParcel() | |||
1233 | setMediaDesc(LLStringUtil::null); | 1227 | setMediaDesc(LLStringUtil::null); |
1234 | setMediaAutoScale(0); | 1228 | setMediaAutoScale(0); |
1235 | setMediaLoop(TRUE); | 1229 | setMediaLoop(TRUE); |
1236 | mObscureMedia = 1; | ||
1237 | mObscureMusic = 1; | ||
1238 | mMediaWidth = 0; | 1230 | mMediaWidth = 0; |
1239 | mMediaHeight = 0; | 1231 | mMediaHeight = 0; |
1240 | setMediaCurrentURL(LLStringUtil::null); | 1232 | setMediaCurrentURL(LLStringUtil::null); |
diff --git a/linden/indra/llinventory/llparcel.h b/linden/indra/llinventory/llparcel.h index 1a1205b..2b6eb12 100644 --- a/linden/indra/llinventory/llparcel.h +++ b/linden/indra/llinventory/llparcel.h | |||
@@ -244,8 +244,6 @@ public: | |||
244 | void setMediaID(const LLUUID& id) { mMediaID = id; } | 244 | void setMediaID(const LLUUID& id) { mMediaID = id; } |
245 | void setMediaAutoScale ( U8 flagIn ) { mMediaAutoScale = flagIn; } | 245 | void setMediaAutoScale ( U8 flagIn ) { mMediaAutoScale = flagIn; } |
246 | void setMediaLoop (U8 loop) { mMediaLoop = loop; } | 246 | void setMediaLoop (U8 loop) { mMediaLoop = loop; } |
247 | void setObscureMedia( U8 flagIn ) { mObscureMedia = flagIn; } | ||
248 | void setObscureMusic( U8 flagIn ) { mObscureMusic = flagIn; } | ||
249 | void setMediaWidth(S32 width); | 247 | void setMediaWidth(S32 width); |
250 | void setMediaHeight(S32 height); | 248 | void setMediaHeight(S32 height); |
251 | void setMediaCurrentURL(const std::string& url); | 249 | void setMediaCurrentURL(const std::string& url); |
@@ -352,8 +350,6 @@ public: | |||
352 | U8 getMediaAutoScale() const { return mMediaAutoScale; } | 350 | U8 getMediaAutoScale() const { return mMediaAutoScale; } |
353 | U8 getMediaLoop() const { return mMediaLoop; } | 351 | U8 getMediaLoop() const { return mMediaLoop; } |
354 | const std::string& getMediaCurrentURL() const { return mMediaCurrentURL; } | 352 | const std::string& getMediaCurrentURL() const { return mMediaCurrentURL; } |
355 | U8 getObscureMedia() const { return mObscureMedia; } | ||
356 | U8 getObscureMusic() const { return mObscureMusic; } | ||
357 | U8 getMediaURLFilterEnable() const { return mMediaURLFilterEnable; } | 353 | U8 getMediaURLFilterEnable() const { return mMediaURLFilterEnable; } |
358 | LLSD getMediaURLFilterList() const { return mMediaURLFilterList; } | 354 | LLSD getMediaURLFilterList() const { return mMediaURLFilterList; } |
359 | U8 getMediaAllowNavigate() const { return mMediaAllowNavigate; } | 355 | U8 getMediaAllowNavigate() const { return mMediaAllowNavigate; } |
@@ -645,8 +641,6 @@ protected: | |||
645 | U8 mMediaAutoScale; | 641 | U8 mMediaAutoScale; |
646 | U8 mMediaLoop; | 642 | U8 mMediaLoop; |
647 | std::string mMediaCurrentURL; | 643 | std::string mMediaCurrentURL; |
648 | U8 mObscureMedia; | ||
649 | U8 mObscureMusic; | ||
650 | LLUUID mMediaID; | 644 | LLUUID mMediaID; |
651 | U8 mMediaURLFilterEnable; | 645 | U8 mMediaURLFilterEnable; |
652 | LLSD mMediaURLFilterList; | 646 | LLSD mMediaURLFilterList; |
diff --git a/linden/indra/llmessage/llpartdata.cpp b/linden/indra/llmessage/llpartdata.cpp index a2811ab..4012d2c 100644 --- a/linden/indra/llmessage/llpartdata.cpp +++ b/linden/indra/llmessage/llpartdata.cpp | |||
@@ -363,14 +363,14 @@ LLSD LLPartSysData::asLLSD() const | |||
363 | sd["LL_PART_EMISSIVE_MASK"] = (LLPartData::LL_PART_EMISSIVE_MASK & mPartData.mFlags) ? 1 : 0; | 363 | sd["LL_PART_EMISSIVE_MASK"] = (LLPartData::LL_PART_EMISSIVE_MASK & mPartData.mFlags) ? 1 : 0; |
364 | sd["LL_PART_BEAM_MASK"] = (LLPartData::LL_PART_BEAM_MASK & mPartData.mFlags) ? 1 : 0; | 364 | sd["LL_PART_BEAM_MASK"] = (LLPartData::LL_PART_BEAM_MASK & mPartData.mFlags) ? 1 : 0; |
365 | 365 | ||
366 | sd["SourceMaxage"] = mPartData.mMaxAge; | 366 | sd["ParticleMaxAge"] = mPartData.mMaxAge; |
367 | sd["Startcolor"] = ll_sd_from_color4(mPartData.mStartColor); | 367 | sd["StartColor"] = ll_sd_from_color4(mPartData.mStartColor); |
368 | sd["Endcolor"] = ll_sd_from_color4(mPartData.mEndColor); | 368 | sd["EndColor"] = ll_sd_from_color4(mPartData.mEndColor); |
369 | sd["Startscale"] = ll_sd_from_vector2(mPartData.mStartScale); | 369 | sd["StartScale"] = ll_sd_from_vector2(mPartData.mStartScale); |
370 | sd["Endscale"] = ll_sd_from_vector2(mPartData.mEndScale); | 370 | sd["EndScale"] = ll_sd_from_vector2(mPartData.mEndScale); |
371 | 371 | ||
372 | sd["ParticleMaxAge"] = mMaxAge; | 372 | sd["SourceMaxAge"] = mMaxAge; |
373 | sd["ParticleStartAge"] = mStartAge; | 373 | sd["SourceStartAge"] = mStartAge; |
374 | 374 | ||
375 | 375 | ||
376 | sd["LL_PART_SRC_PATTERN_DROP"] = ( mPattern & LL_PART_SRC_PATTERN_DROP) ? 1 : 0; | 376 | sd["LL_PART_SRC_PATTERN_DROP"] = ( mPattern & LL_PART_SRC_PATTERN_DROP) ? 1 : 0; |
@@ -406,14 +406,14 @@ bool LLPartSysData::fromLLSD(LLSD& sd) | |||
406 | if (sd["LL_PART_EMISSIVE_MASK"]) mPartData.mFlags |= LLPartData::LL_PART_EMISSIVE_MASK; | 406 | if (sd["LL_PART_EMISSIVE_MASK"]) mPartData.mFlags |= LLPartData::LL_PART_EMISSIVE_MASK; |
407 | if (sd["LL_PART_BEAM_MASK"]) mPartData.mFlags |= LLPartData::LL_PART_BEAM_MASK; | 407 | if (sd["LL_PART_BEAM_MASK"]) mPartData.mFlags |= LLPartData::LL_PART_BEAM_MASK; |
408 | 408 | ||
409 | mPartData.mMaxAge = (F32)sd["SourceMaxage"].asReal(); | 409 | mPartData.mMaxAge = (F32)sd["ParticleMaxAge"].asReal(); |
410 | mPartData.mStartColor = ll_color4_from_sd(sd["Startcolor"]); | 410 | mPartData.mStartColor = ll_color4_from_sd(sd["StartColor"]); |
411 | mPartData.mEndColor = ll_color4_from_sd(sd["Endcolor"]); | 411 | mPartData.mEndColor = ll_color4_from_sd(sd["EndColor"]); |
412 | mPartData.mStartScale = ll_vector2_from_sd(sd["Startscale"]); | 412 | mPartData.mStartScale = ll_vector2_from_sd(sd["StartScale"]); |
413 | mPartData.mEndScale = ll_vector2_from_sd(sd["Endscale"]); | 413 | mPartData.mEndScale = ll_vector2_from_sd(sd["EndScale"]); |
414 | 414 | ||
415 | mMaxAge = (F32)sd["ParticleMaxAge"].asReal(); | 415 | mMaxAge = (F32)sd["SourceMaxAge"].asReal(); |
416 | mStartAge = (F32)sd["ParticleStartAge"].asReal(); | 416 | mStartAge = (F32)sd["SourceStartAge"].asReal(); |
417 | 417 | ||
418 | mPattern = 0; | 418 | mPattern = 0; |
419 | if (sd["LL_PART_SRC_PATTERN_DROP"]) mPattern |= LL_PART_SRC_PATTERN_DROP; | 419 | if (sd["LL_PART_SRC_PATTERN_DROP"]) mPattern |= LL_PART_SRC_PATTERN_DROP; |
diff --git a/linden/indra/llrender/llfontgl.cpp b/linden/indra/llrender/llfontgl.cpp index 7baec81..306c6b9 100644 --- a/linden/indra/llrender/llfontgl.cpp +++ b/linden/indra/llrender/llfontgl.cpp | |||
@@ -242,7 +242,8 @@ BOOL LLFontGL::initDefaultFonts(F32 screen_dpi, F32 x_scale, F32 y_scale, | |||
242 | // This is primarily for error detection purposes. | 242 | // This is primarily for error detection purposes. |
243 | succ &= (NULL != getFontSansSerifSmall()); | 243 | succ &= (NULL != getFontSansSerifSmall()); |
244 | succ &= (NULL != getFontSansSerif()); | 244 | succ &= (NULL != getFontSansSerif()); |
245 | succ &= (NULL != getFontSansSerifBig()); | 245 | succ &= (NULL != getFontSansSerifBigger()); |
246 | succ &= (NULL != getFontSansSerifLarge()); | ||
246 | succ &= (NULL != getFontSansSerifHuge()); | 247 | succ &= (NULL != getFontSansSerifHuge()); |
247 | succ &= (NULL != getFontSansSerifBold()); | 248 | succ &= (NULL != getFontSansSerifBold()); |
248 | succ &= (NULL != getFontMonospace()); | 249 | succ &= (NULL != getFontMonospace()); |
@@ -313,7 +314,13 @@ LLFontGL* LLFontGL::getFontSansSerif() | |||
313 | } | 314 | } |
314 | 315 | ||
315 | //static | 316 | //static |
316 | LLFontGL* LLFontGL::getFontSansSerifBig() | 317 | LLFontGL* LLFontGL::getFontSansSerifBigger() |
318 | { | ||
319 | return getFont(LLFontDescriptor("SansSerif","Bigger",0)); | ||
320 | } | ||
321 | |||
322 | //static | ||
323 | LLFontGL* LLFontGL::getFontSansSerifLarge() | ||
317 | { | 324 | { |
318 | return getFont(LLFontDescriptor("SansSerif","Large",0)); | 325 | return getFont(LLFontDescriptor("SansSerif","Large",0)); |
319 | } | 326 | } |
diff --git a/linden/indra/llrender/llfontgl.h b/linden/indra/llrender/llfontgl.h index 6cb1727..e3a953b 100644 --- a/linden/indra/llrender/llfontgl.h +++ b/linden/indra/llrender/llfontgl.h | |||
@@ -233,7 +233,8 @@ public: | |||
233 | static LLFontGL* getFontMonospace(); | 233 | static LLFontGL* getFontMonospace(); |
234 | static LLFontGL* getFontSansSerifSmall(); | 234 | static LLFontGL* getFontSansSerifSmall(); |
235 | static LLFontGL* getFontSansSerif(); | 235 | static LLFontGL* getFontSansSerif(); |
236 | static LLFontGL* getFontSansSerifBig(); | 236 | static LLFontGL* getFontSansSerifBigger(); |
237 | static LLFontGL* getFontSansSerifLarge(); | ||
237 | static LLFontGL* getFontSansSerifHuge(); | 238 | static LLFontGL* getFontSansSerifHuge(); |
238 | static LLFontGL* getFontSansSerifBold(); | 239 | static LLFontGL* getFontSansSerifBold(); |
239 | static LLFontGL* getFontExtChar(); | 240 | static LLFontGL* getFontExtChar(); |
diff --git a/linden/indra/llui/llcombobox.cpp b/linden/indra/llui/llcombobox.cpp index be34325..a93dc9b 100644 --- a/linden/indra/llui/llcombobox.cpp +++ b/linden/indra/llui/llcombobox.cpp | |||
@@ -43,6 +43,7 @@ | |||
43 | 43 | ||
44 | // newview includes | 44 | // newview includes |
45 | #include "llbutton.h" | 45 | #include "llbutton.h" |
46 | #include "llfont.h" | ||
46 | #include "llkeyboard.h" | 47 | #include "llkeyboard.h" |
47 | #include "llscrolllistctrl.h" | 48 | #include "llscrolllistctrl.h" |
48 | #include "llwindow.h" | 49 | #include "llwindow.h" |
@@ -60,7 +61,7 @@ S32 MAX_COMBO_WIDTH = 500; | |||
60 | 61 | ||
61 | static LLRegisterWidget<LLComboBox> r1("combo_box"); | 62 | static LLRegisterWidget<LLComboBox> r1("combo_box"); |
62 | 63 | ||
63 | LLComboBox::LLComboBox( const std::string& name, const LLRect &rect, const std::string& label, | 64 | LLComboBox::LLComboBox( const std::string& name, const LLRect &rect, const std::string& label, const LLFontGL* font, |
64 | void (*commit_callback)(LLUICtrl*,void*), | 65 | void (*commit_callback)(LLUICtrl*,void*), |
65 | void *callback_userdata | 66 | void *callback_userdata |
66 | ) | 67 | ) |
@@ -76,6 +77,15 @@ LLComboBox::LLComboBox( const std::string& name, const LLRect &rect, const std:: | |||
76 | mTextEntryCallback( NULL ), | 77 | mTextEntryCallback( NULL ), |
77 | mLabel(label) | 78 | mLabel(label) |
78 | { | 79 | { |
80 | if (font) | ||
81 | { | ||
82 | mGLFont = font; | ||
83 | } | ||
84 | else | ||
85 | { | ||
86 | mGLFont = LLFontGL::getFontSansSerifSmall(); | ||
87 | } | ||
88 | |||
79 | // Always use text box | 89 | // Always use text box |
80 | // Text label button | 90 | // Text label button |
81 | mButton = new LLButton(mLabel, | 91 | mButton = new LLButton(mLabel, |
@@ -89,14 +99,14 @@ LLComboBox::LLComboBox( const std::string& name, const LLRect &rect, const std:: | |||
89 | mButton->setScaleImage(TRUE); | 99 | mButton->setScaleImage(TRUE); |
90 | 100 | ||
91 | mButton->setMouseDownCallback(onButtonDown); | 101 | mButton->setMouseDownCallback(onButtonDown); |
92 | mButton->setFont(LLFontGL::getFontSansSerifSmall()); | 102 | mButton->setFont(mGLFont); |
93 | mButton->setFollows(FOLLOWS_LEFT | FOLLOWS_BOTTOM | FOLLOWS_RIGHT); | 103 | mButton->setFollows(FOLLOWS_LEFT | FOLLOWS_BOTTOM | FOLLOWS_RIGHT); |
94 | mButton->setHAlign( LLFontGL::LEFT ); | 104 | mButton->setHAlign( LLFontGL::LEFT ); |
95 | mButton->setRightHPad(2); | 105 | mButton->setRightHPad(2); |
96 | addChild(mButton); | 106 | addChild(mButton); |
97 | 107 | ||
98 | // disallow multiple selection | 108 | // disallow multiple selection |
99 | mList = new LLScrollListCtrl(std::string("ComboBox"), LLRect(), | 109 | mList = new LLScrollListCtrl(std::string("ComboBox"), LLRect(), mGLFont, |
100 | &LLComboBox::onItemSelected, this, FALSE); | 110 | &LLComboBox::onItemSelected, this, FALSE); |
101 | mList->setVisible(FALSE); | 111 | mList->setVisible(FALSE); |
102 | mList->setBgWriteableColor( LLColor4(1,1,1,1) ); | 112 | mList->setBgWriteableColor( LLColor4(1,1,1,1) ); |
@@ -167,11 +177,14 @@ LLView* LLComboBox::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFactory * | |||
167 | S32 max_chars = 20; | 177 | S32 max_chars = 20; |
168 | node->getAttributeS32("max_chars", max_chars); | 178 | node->getAttributeS32("max_chars", max_chars); |
169 | 179 | ||
180 | LLFontGL* font = LLView::selectFont(node); | ||
181 | |||
170 | LLUICtrlCallback callback = NULL; | 182 | LLUICtrlCallback callback = NULL; |
171 | 183 | ||
172 | LLComboBox* combo_box = new LLComboBox(name, | 184 | LLComboBox* combo_box = new LLComboBox(name, |
173 | rect, | 185 | rect, |
174 | label, | 186 | label, |
187 | font, | ||
175 | callback, | 188 | callback, |
176 | NULL); | 189 | NULL); |
177 | combo_box->setAllowTextEntry(allow_text_entry, max_chars); | 190 | combo_box->setAllowTextEntry(allow_text_entry, max_chars); |
@@ -540,7 +553,7 @@ void LLComboBox::updateLayout() | |||
540 | mTextEntry = new LLLineEditor(std::string("combo_text_entry"), | 553 | mTextEntry = new LLLineEditor(std::string("combo_text_entry"), |
541 | text_entry_rect, | 554 | text_entry_rect, |
542 | LLStringUtil::null, | 555 | LLStringUtil::null, |
543 | LLFontGL::getFontSansSerifSmall(), | 556 | mGLFont, |
544 | mMaxChars, | 557 | mMaxChars, |
545 | onTextCommit, | 558 | onTextCommit, |
546 | onTextEntry, | 559 | onTextEntry, |
@@ -1153,7 +1166,7 @@ LLFlyoutButton::LLFlyoutButton( | |||
1153 | const std::string& label, | 1166 | const std::string& label, |
1154 | void (*commit_callback)(LLUICtrl*, void*) , | 1167 | void (*commit_callback)(LLUICtrl*, void*) , |
1155 | void *callback_userdata) | 1168 | void *callback_userdata) |
1156 | : LLComboBox(name, rect, LLStringUtil::null, commit_callback, callback_userdata), | 1169 | : LLComboBox(name, rect, LLStringUtil::null, NULL, commit_callback, callback_userdata), |
1157 | mToggleState(FALSE), | 1170 | mToggleState(FALSE), |
1158 | mActionButton(NULL) | 1171 | mActionButton(NULL) |
1159 | { | 1172 | { |
@@ -1214,6 +1227,8 @@ LLXMLNodePtr LLFlyoutButton::getXML(bool save_children) const | |||
1214 | } | 1227 | } |
1215 | } | 1228 | } |
1216 | 1229 | ||
1230 | node->createChild("font", TRUE)->setStringValue(LLFontGL::nameFromFont(mGLFont)); | ||
1231 | |||
1217 | return node; | 1232 | return node; |
1218 | } | 1233 | } |
1219 | 1234 | ||
diff --git a/linden/indra/llui/llcombobox.h b/linden/indra/llui/llcombobox.h index 95ad17a..596f659 100644 --- a/linden/indra/llui/llcombobox.h +++ b/linden/indra/llui/llcombobox.h | |||
@@ -67,7 +67,8 @@ public: | |||
67 | LLComboBox( | 67 | LLComboBox( |
68 | const std::string& name, | 68 | const std::string& name, |
69 | const LLRect &rect, | 69 | const LLRect &rect, |
70 | const std::string& label, | 70 | const std::string& label, |
71 | const LLFontGL* font = NULL, | ||
71 | void (*commit_callback)(LLUICtrl*, void*) = NULL, | 72 | void (*commit_callback)(LLUICtrl*, void*) = NULL, |
72 | void *callback_userdata = NULL | 73 | void *callback_userdata = NULL |
73 | ); | 74 | ); |
@@ -190,6 +191,7 @@ protected: | |||
190 | EPreferredPosition mListPosition; | 191 | EPreferredPosition mListPosition; |
191 | LLPointer<LLUIImage> mArrowImage; | 192 | LLPointer<LLUIImage> mArrowImage; |
192 | std::string mLabel; | 193 | std::string mLabel; |
194 | const LLFontGL* mGLFont; | ||
193 | 195 | ||
194 | private: | 196 | private: |
195 | S32 mButtonPadding; | 197 | S32 mButtonPadding; |
diff --git a/linden/indra/llui/lllineeditor.cpp b/linden/indra/llui/lllineeditor.cpp index 76b8927..a21ad5d 100644 --- a/linden/indra/llui/lllineeditor.cpp +++ b/linden/indra/llui/lllineeditor.cpp | |||
@@ -2696,7 +2696,6 @@ BOOL LLLineEditor::prevalidatePrintableNotPipe(const LLWString &str) | |||
2696 | return rv; | 2696 | return rv; |
2697 | } | 2697 | } |
2698 | 2698 | ||
2699 | |||
2700 | // static | 2699 | // static |
2701 | BOOL LLLineEditor::prevalidatePrintableNoSpace(const LLWString &str) | 2700 | BOOL LLLineEditor::prevalidatePrintableNoSpace(const LLWString &str) |
2702 | { | 2701 | { |
@@ -2721,6 +2720,25 @@ BOOL LLLineEditor::prevalidatePrintableNoSpace(const LLWString &str) | |||
2721 | } | 2720 | } |
2722 | 2721 | ||
2723 | // static | 2722 | // static |
2723 | BOOL LLLineEditor::prevalidatePrintableSpace(const LLWString &str) | ||
2724 | { | ||
2725 | BOOL rv = TRUE; | ||
2726 | S32 len = str.length(); | ||
2727 | if(len == 0) return rv; | ||
2728 | while(len--) | ||
2729 | { | ||
2730 | if( !(LLStringOps::isAlnum((char)str[len]) || | ||
2731 | LLStringOps::isPunct((char)str[len]) || | ||
2732 | ' ' == str[len]) ) | ||
2733 | { | ||
2734 | rv = FALSE; | ||
2735 | break; | ||
2736 | } | ||
2737 | } | ||
2738 | return rv; | ||
2739 | } | ||
2740 | |||
2741 | // static | ||
2724 | BOOL LLLineEditor::prevalidateASCII(const LLWString &str) | 2742 | BOOL LLLineEditor::prevalidateASCII(const LLWString &str) |
2725 | { | 2743 | { |
2726 | BOOL rv = TRUE; | 2744 | BOOL rv = TRUE; |
diff --git a/linden/indra/llui/lllineeditor.h b/linden/indra/llui/lllineeditor.h index d217859..43ce869 100644 --- a/linden/indra/llui/lllineeditor.h +++ b/linden/indra/llui/lllineeditor.h | |||
@@ -253,6 +253,7 @@ public: | |||
253 | static BOOL prevalidateAlphaNumSpace(const LLWString &str ); | 253 | static BOOL prevalidateAlphaNumSpace(const LLWString &str ); |
254 | static BOOL prevalidatePrintableNotPipe(const LLWString &str); | 254 | static BOOL prevalidatePrintableNotPipe(const LLWString &str); |
255 | static BOOL prevalidatePrintableNoSpace(const LLWString &str); | 255 | static BOOL prevalidatePrintableNoSpace(const LLWString &str); |
256 | static BOOL prevalidatePrintableSpace(const LLWString &str); | ||
256 | static BOOL prevalidateASCII(const LLWString &str); | 257 | static BOOL prevalidateASCII(const LLWString &str); |
257 | 258 | ||
258 | static BOOL postvalidateFloat(const std::string &str); | 259 | static BOOL postvalidateFloat(const std::string &str); |
diff --git a/linden/indra/llui/llresmgr.cpp b/linden/indra/llui/llresmgr.cpp index 32d3d1f..22610ca 100644 --- a/linden/indra/llui/llresmgr.cpp +++ b/linden/indra/llui/llresmgr.cpp | |||
@@ -58,7 +58,8 @@ LLResMgr::LLResMgr() | |||
58 | mUSAFonts[ LLFONT_OCRA ] = LLFontGL::getFontMonospace(); | 58 | mUSAFonts[ LLFONT_OCRA ] = LLFontGL::getFontMonospace(); |
59 | mUSAFonts[ LLFONT_SANSSERIF ] = LLFontGL::getFontSansSerif(); | 59 | mUSAFonts[ LLFONT_SANSSERIF ] = LLFontGL::getFontSansSerif(); |
60 | mUSAFonts[ LLFONT_SANSSERIF_SMALL ] = LLFontGL::getFontSansSerifSmall(); | 60 | mUSAFonts[ LLFONT_SANSSERIF_SMALL ] = LLFontGL::getFontSansSerifSmall(); |
61 | mUSAFonts[ LLFONT_SANSSERIF_BIG ] = LLFontGL::getFontSansSerifBig(); | 61 | mUSAFonts[ LLFONT_SANSSERIF_BIGGER ]= LLFontGL::getFontSansSerifBigger(); |
62 | mUSAFonts[ LLFONT_SANSSERIF_LARGE ] = LLFontGL::getFontSansSerifLarge(); | ||
62 | mUSAFonts[ LLFONT_SMALL ] = LLFontGL::getFontMonospace(); | 63 | mUSAFonts[ LLFONT_SMALL ] = LLFontGL::getFontMonospace(); |
63 | /* | 64 | /* |
64 | // USA Strings | 65 | // USA Strings |
@@ -421,7 +422,8 @@ const std::string LLFONT_ID_NAMES[] = | |||
421 | std::string("OCRA"), | 422 | std::string("OCRA"), |
422 | std::string("SANSSERIF"), | 423 | std::string("SANSSERIF"), |
423 | std::string("SANSSERIF_SMALL"), | 424 | std::string("SANSSERIF_SMALL"), |
424 | std::string("SANSSERIF_BIG"), | 425 | std::string("SANSSERIF_BIGGER"), |
426 | std::string("SANSSERIF_LARGE"), | ||
425 | std::string("SMALL"), | 427 | std::string("SMALL"), |
426 | }; | 428 | }; |
427 | 429 | ||
diff --git a/linden/indra/llui/llresmgr.h b/linden/indra/llui/llresmgr.h index d54505c..3008244 100644 --- a/linden/indra/llui/llresmgr.h +++ b/linden/indra/llui/llresmgr.h | |||
@@ -51,7 +51,8 @@ enum LLFONT_ID | |||
51 | LLFONT_OCRA, | 51 | LLFONT_OCRA, |
52 | LLFONT_SANSSERIF, | 52 | LLFONT_SANSSERIF, |
53 | LLFONT_SANSSERIF_SMALL, | 53 | LLFONT_SANSSERIF_SMALL, |
54 | LLFONT_SANSSERIF_BIG, | 54 | LLFONT_SANSSERIF_BIGGER, |
55 | LLFONT_SANSSERIF_LARGE, | ||
55 | LLFONT_SMALL, | 56 | LLFONT_SMALL, |
56 | LLFONT_COUNT // Number of values in this enum. Keep at end. | 57 | LLFONT_COUNT // Number of values in this enum. Keep at end. |
57 | }; | 58 | }; |
diff --git a/linden/indra/llui/llscrolllistctrl.cpp b/linden/indra/llui/llscrolllistctrl.cpp index 1248a9a..1b93abf 100644 --- a/linden/indra/llui/llscrolllistctrl.cpp +++ b/linden/indra/llui/llscrolllistctrl.cpp | |||
@@ -570,7 +570,7 @@ void LLScrollListItemSeparator::draw(const LLRect& rect, const LLColor4& fg_colo | |||
570 | // LLScrollListCtrl | 570 | // LLScrollListCtrl |
571 | //--------------------------------------------------------------------------- | 571 | //--------------------------------------------------------------------------- |
572 | 572 | ||
573 | LLScrollListCtrl::LLScrollListCtrl(const std::string& name, const LLRect& rect, | 573 | LLScrollListCtrl::LLScrollListCtrl(const std::string& name, const LLRect& rect, const LLFontGL* font, |
574 | void (*commit_callback)(LLUICtrl* ctrl, void* userdata), | 574 | void (*commit_callback)(LLUICtrl* ctrl, void* userdata), |
575 | void* callback_user_data, | 575 | void* callback_user_data, |
576 | BOOL allow_multiple_selection, | 576 | BOOL allow_multiple_selection, |
@@ -619,6 +619,15 @@ LLScrollListCtrl::LLScrollListCtrl(const std::string& name, const LLRect& rect, | |||
619 | mOriginalSelection(-1), | 619 | mOriginalSelection(-1), |
620 | mDrewSelected(FALSE) | 620 | mDrewSelected(FALSE) |
621 | { | 621 | { |
622 | if (font) | ||
623 | { | ||
624 | mGLFont = font; | ||
625 | } | ||
626 | else | ||
627 | { | ||
628 | mGLFont = LLFontGL::getFontSansSerifSmall(); | ||
629 | } | ||
630 | |||
622 | mItemListRect.setOriginAndSize( | 631 | mItemListRect.setOriginAndSize( |
623 | mBorderThickness, | 632 | mBorderThickness, |
624 | mBorderThickness, | 633 | mBorderThickness, |
@@ -987,14 +996,14 @@ void LLScrollListCtrl::calcColumnWidths() | |||
987 | column->setWidth(new_width); | 996 | column->setWidth(new_width); |
988 | 997 | ||
989 | // update max content width for this column, by looking at all items | 998 | // update max content width for this column, by looking at all items |
990 | column->mMaxContentWidth = column->mHeader ? LLFontGL::getFontSansSerifSmall()->getWidth(column->mLabel) + mColumnPadding + HEADING_TEXT_PADDING : 0; | 999 | column->mMaxContentWidth = column->mHeader ? mGLFont->getWidth(column->mLabel) + mColumnPadding + HEADING_TEXT_PADDING : 0; |
991 | item_list::iterator iter; | 1000 | item_list::iterator iter; |
992 | for (iter = mItemList.begin(); iter != mItemList.end(); iter++) | 1001 | for (iter = mItemList.begin(); iter != mItemList.end(); iter++) |
993 | { | 1002 | { |
994 | LLScrollListCell* cellp = (*iter)->getColumn(column->mIndex); | 1003 | LLScrollListCell* cellp = (*iter)->getColumn(column->mIndex); |
995 | if (!cellp) continue; | 1004 | if (!cellp) continue; |
996 | 1005 | ||
997 | column->mMaxContentWidth = llmax(LLFontGL::getFontSansSerifSmall()->getWidth(cellp->getValue().asString()) + mColumnPadding + COLUMN_TEXT_PADDING, column->mMaxContentWidth); | 1006 | column->mMaxContentWidth = llmax(mGLFont->getWidth(cellp->getValue().asString()) + mColumnPadding + COLUMN_TEXT_PADDING, column->mMaxContentWidth); |
998 | } | 1007 | } |
999 | 1008 | ||
1000 | max_item_width += column->mMaxContentWidth; | 1009 | max_item_width += column->mMaxContentWidth; |
@@ -1642,7 +1651,7 @@ LLScrollListItem* LLScrollListCtrl::addStringUUIDItem(const std::string& item_te | |||
1642 | if (getItemCount() < mMaxItemCount) | 1651 | if (getItemCount() < mMaxItemCount) |
1643 | { | 1652 | { |
1644 | item = new LLScrollListItem( enabled, NULL, id ); | 1653 | item = new LLScrollListItem( enabled, NULL, id ); |
1645 | item->addColumn(item_text, LLResMgr::getInstance()->getRes(LLFONT_SANSSERIF_SMALL), column_width); | 1654 | item->addColumn(item_text, mGLFont, column_width); |
1646 | addItem( item, pos ); | 1655 | addItem( item, pos ); |
1647 | } | 1656 | } |
1648 | return item; | 1657 | return item; |
@@ -2900,6 +2909,7 @@ LLView* LLScrollListCtrl::fromXML(LLXMLNodePtr node, LLView *parent, LLUICtrlFac | |||
2900 | LLScrollListCtrl* scroll_list = new LLScrollListCtrl( | 2909 | LLScrollListCtrl* scroll_list = new LLScrollListCtrl( |
2901 | name, | 2910 | name, |
2902 | rect, | 2911 | rect, |
2912 | NULL, | ||
2903 | callback, | 2913 | callback, |
2904 | NULL, | 2914 | NULL, |
2905 | multi_select, | 2915 | multi_select, |
@@ -3374,7 +3384,11 @@ LLScrollListItem* LLScrollListCtrl::addElement(const LLSD& value, EAddPosition p | |||
3374 | const LLFontGL *font = LLResMgr::getInstance()->getRes(fontname); | 3384 | const LLFontGL *font = LLResMgr::getInstance()->getRes(fontname); |
3375 | if (!font) | 3385 | if (!font) |
3376 | { | 3386 | { |
3377 | font = LLResMgr::getInstance()->getRes( LLFONT_SANSSERIF_SMALL ); | 3387 | font = mGLFont; |
3388 | if (!font) | ||
3389 | { | ||
3390 | font = LLResMgr::getInstance()->getRes( LLFONT_SANSSERIF_SMALL ); | ||
3391 | } | ||
3378 | } | 3392 | } |
3379 | U8 font_style = LLFontGL::getStyleFromString(fontstyle); | 3393 | U8 font_style = LLFontGL::getStyleFromString(fontstyle); |
3380 | 3394 | ||
@@ -3446,7 +3460,7 @@ LLScrollListItem* LLScrollListCtrl::addElement(const LLSD& value, EAddPosition p | |||
3446 | if (new_item->getColumn(column_idx) == NULL) | 3460 | if (new_item->getColumn(column_idx) == NULL) |
3447 | { | 3461 | { |
3448 | LLScrollListColumn* column_ptr = &column_it->second; | 3462 | LLScrollListColumn* column_ptr = &column_it->second; |
3449 | new_item->setColumn(column_idx, new LLScrollListText(LLStringUtil::null, LLResMgr::getInstance()->getRes( LLFONT_SANSSERIF_SMALL ), column_ptr->getWidth(), LLFontGL::NORMAL)); | 3463 | new_item->setColumn(column_idx, new LLScrollListText(LLStringUtil::null, mGLFont, column_ptr->getWidth(), LLFontGL::NORMAL)); |
3450 | } | 3464 | } |
3451 | } | 3465 | } |
3452 | 3466 | ||
@@ -3466,7 +3480,7 @@ LLScrollListItem* LLScrollListCtrl::addSimpleElement(const std::string& value, E | |||
3466 | 3480 | ||
3467 | LLScrollListItem *new_item = new LLScrollListItem(entry_id); | 3481 | LLScrollListItem *new_item = new LLScrollListItem(entry_id); |
3468 | 3482 | ||
3469 | const LLFontGL *font = LLResMgr::getInstance()->getRes( LLFONT_SANSSERIF_SMALL ); | 3483 | const LLFontGL *font = mGLFont; |
3470 | 3484 | ||
3471 | new_item->addColumn(value, font, getRect().getWidth()); | 3485 | new_item->addColumn(value, font, getRect().getWidth()); |
3472 | 3486 | ||
diff --git a/linden/indra/llui/llscrolllistctrl.h b/linden/indra/llui/llscrolllistctrl.h index 4be7ff7..1b7105f 100644 --- a/linden/indra/llui/llscrolllistctrl.h +++ b/linden/indra/llui/llscrolllistctrl.h | |||
@@ -353,6 +353,7 @@ public: | |||
353 | LLScrollListCtrl( | 353 | LLScrollListCtrl( |
354 | const std::string& name, | 354 | const std::string& name, |
355 | const LLRect& rect, | 355 | const LLRect& rect, |
356 | const LLFontGL* font, | ||
356 | void (*commit_callback)(LLUICtrl*, void*), | 357 | void (*commit_callback)(LLUICtrl*, void*), |
357 | void* callback_userdata, | 358 | void* callback_userdata, |
358 | BOOL allow_multiple_selection, | 359 | BOOL allow_multiple_selection, |
@@ -694,6 +695,8 @@ private: | |||
694 | 695 | ||
695 | // HACK: Did we draw one selected item this frame? | 696 | // HACK: Did we draw one selected item this frame? |
696 | BOOL mDrewSelected; | 697 | BOOL mDrewSelected; |
698 | |||
699 | const LLFontGL* mGLFont; | ||
697 | }; // end class LLScrollListCtrl | 700 | }; // end class LLScrollListCtrl |
698 | 701 | ||
699 | 702 | ||
diff --git a/linden/indra/llui/llstyle.cpp b/linden/indra/llui/llstyle.cpp index a716cbb..61a025e 100644 --- a/linden/indra/llui/llstyle.cpp +++ b/linden/indra/llui/llstyle.cpp | |||
@@ -128,9 +128,13 @@ void LLStyle::setFontName(const std::string& fontname) | |||
128 | { | 128 | { |
129 | mFontID = LLFONT_SMALL; | 129 | mFontID = LLFONT_SMALL; |
130 | } | 130 | } |
131 | else if ((fontname_lc == "sansserifbig")) | 131 | else if ((fontname_lc == "sansserifbigger")) |
132 | { | 132 | { |
133 | mFontID = LLFONT_SANSSERIF_BIG; | 133 | mFontID = LLFONT_SANSSERIF_BIGGER; |
134 | } | ||
135 | else if ((fontname_lc == "sansserifhuge")) | ||
136 | { | ||
137 | mFontID = LLFONT_SANSSERIF_LARGE; | ||
134 | } | 138 | } |
135 | else if (fontname_lc == "small") | 139 | else if (fontname_lc == "small") |
136 | { | 140 | { |
diff --git a/linden/indra/llwindow/llwindowsdl.cpp b/linden/indra/llwindow/llwindowsdl.cpp index 5828da3..58090b3 100644 --- a/linden/indra/llwindow/llwindowsdl.cpp +++ b/linden/indra/llwindow/llwindowsdl.cpp | |||
@@ -632,6 +632,15 @@ BOOL LLWindowSDL::createContext(int x, int y, int width, int height, int bits, B | |||
632 | mWindow = SDL_SetVideoMode(width, height, bits, sdlflags); | 632 | mWindow = SDL_SetVideoMode(width, height, bits, sdlflags); |
633 | } | 633 | } |
634 | 634 | ||
635 | while (!mWindow && mFSAASamples > 0) | ||
636 | { | ||
637 | llwarns << "Window creating failed with " << mFSAASamples << "x FSAA."<<llendl; | ||
638 | mFSAASamples = mFSAASamples>>1; | ||
639 | SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, mFSAASamples ? 1 : 0); | ||
640 | SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, mFSAASamples); | ||
641 | mWindow = SDL_SetVideoMode(width, height, bits, sdlflags); | ||
642 | } | ||
643 | |||
635 | if (!mWindow) | 644 | if (!mWindow) |
636 | { | 645 | { |
637 | llwarns << "createContext: window creation failure. SDL: " << SDL_GetError() << llendl; | 646 | llwarns << "createContext: window creation failure. SDL: " << SDL_GetError() << llendl; |
diff --git a/linden/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp b/linden/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp index 6835d0f..12bbf90 100755 --- a/linden/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp +++ b/linden/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp | |||
@@ -1409,6 +1409,16 @@ void MediaPluginGStreamer010::receiveMessage(const char *message_string) | |||
1409 | // We're building without GStreamer enabled. Just refuse to initialize. | 1409 | // We're building without GStreamer enabled. Just refuse to initialize. |
1410 | int init_media_plugin(LLPluginInstance::sendMessageFunction host_send_func, void *host_user_data, LLPluginInstance::sendMessageFunction *plugin_send_func, void **plugin_user_data) | 1410 | int init_media_plugin(LLPluginInstance::sendMessageFunction host_send_func, void *host_user_data, LLPluginInstance::sendMessageFunction *plugin_send_func, void **plugin_user_data) |
1411 | { | 1411 | { |
1412 | // init log file so we know what happened | ||
1413 | LLFILE* fp = LLFile::fopen("media_plugin_gstreamer010.log", "w"); | ||
1414 | if (fp) | ||
1415 | { | ||
1416 | time_t timeptr = time(NULL); | ||
1417 | fprintf(fp, "%s", asctime(localtime(&timeptr))); | ||
1418 | fprintf(fp, "media_plugin_gstreamer010 installed but not built with GStreamer support! It must be recompiled to work!\n"); | ||
1419 | fclose(fp); | ||
1420 | } | ||
1421 | |||
1412 | return -1; | 1422 | return -1; |
1413 | } | 1423 | } |
1414 | 1424 | ||
diff --git a/linden/indra/newview/English.lproj/InfoPlist.strings b/linden/indra/newview/English.lproj/InfoPlist.strings index 17a0b7c..3027772 100644 --- a/linden/indra/newview/English.lproj/InfoPlist.strings +++ b/linden/indra/newview/English.lproj/InfoPlist.strings | |||
@@ -1,5 +1,6 @@ | |||
1 | /* Localized versions of Info.plist keys */ | 1 | /* Localized versions of Info.plist keys */ |
2 | 2 | ||
3 | CFBundleName = "meta-impy"; | 3 | CFBundleName = "meta-impy"; |
4 | CFBundleShortVersionString = "meta-impy Experimental 2010.09.04"; | 4 | CFBundleShortVersionString = "meta-impy Experimental 2011.04.02"; |
5 | CFBundleGetInfoString = "meta-impy Experimental 2010.09.04"; | 5 | CFBundleGetInfoString = "meta-impy Experimental 2011.04.02"; |
6 | |||
diff --git a/linden/indra/newview/Info-meta-impy.plist b/linden/indra/newview/Info-meta-impy.plist index c5b413e..3469e5c 100644 --- a/linden/indra/newview/Info-meta-impy.plist +++ b/linden/indra/newview/Info-meta-impy.plist | |||
@@ -32,7 +32,7 @@ | |||
32 | </dict> | 32 | </dict> |
33 | </array> | 33 | </array> |
34 | <key>CFBundleVersion</key> | 34 | <key>CFBundleVersion</key> |
35 | <string>Experimental 2010.10.23</string> | 35 | <string>Experimental 2011.04.02</string> |
36 | <key>CSResourcesFileMapped</key> | 36 | <key>CSResourcesFileMapped</key> |
37 | <true/> | 37 | <true/> |
38 | </dict> | 38 | </dict> |
diff --git a/linden/indra/newview/app_settings/cloud.xml b/linden/indra/newview/app_settings/cloud.xml index ff9492b..e62bcf1 100644 --- a/linden/indra/newview/app_settings/cloud.xml +++ b/linden/indra/newview/app_settings/cloud.xml | |||
@@ -1,33 +1,87 @@ | |||
1 | <llsd> | 1 | <llsd> |
2 | <map> | 2 | <map> |
3 | |||
4 | |||
5 | <!-- Settings for the whole particle system --> | ||
6 | |||
7 | <key>SourceMaxAge</key><!-- how long the source can live with 0 forever --> | ||
8 | <real>0</real> | ||
9 | <key>SourceStartAge</key> | ||
10 | <real>0</real> | ||
11 | |||
3 | <key>AngularVelocity</key> | 12 | <key>AngularVelocity</key> |
4 | <array> | 13 | <array> |
5 | <real>0</real> | 14 | <real>0</real> |
6 | <real>0</real> | 15 | <real>0</real> |
7 | <real>0</real> | 16 | <real>0</real> |
8 | </array> | 17 | </array> |
18 | <key>InnerAngle</key> | ||
19 | <real>3.1415927410125732421875</real> | ||
20 | <key>OuterAngle</key> | ||
21 | <real>0</real> | ||
22 | |||
9 | <key>BurstPartCount</key> | 23 | <key>BurstPartCount</key> |
10 | <integer>1</integer> | 24 | <integer>1</integer> |
11 | <key>BurstRadius</key> | 25 | <key>BurstRadius</key> |
12 | <real>0.3</real> | 26 | <real>0.3</real> |
13 | <key>BurstRate</key> | 27 | <key>BurstRate</key> |
14 | <real>0.02</real> | 28 | <real>0.02</real> |
29 | <key>BurstSpeedMin</key> | ||
30 | <real>0.1</real> | ||
15 | <key>BurstSpeedMax</key> | 31 | <key>BurstSpeedMax</key> |
16 | <real>1</real> | 32 | <real>1</real> |
17 | <key>Endcolor</key> | 33 | |
34 | <!-- pattern flags set to 1 for true and 0 for false --> | ||
35 | <key>LL_PART_SRC_PATTERN_ANGLE</key> | ||
36 | <integer>0</integer> | ||
37 | <key>LL_PART_SRC_PATTERN_ANGLE_CONE</key> | ||
38 | <integer>1</integer> | ||
39 | <key>LL_PART_SRC_PATTERN_ANGLE_CONE_EMPTY</key> | ||
40 | <integer>0</integer> | ||
41 | <key>LL_PART_SRC_PATTERN_DROP</key> | ||
42 | <integer>0</integer> | ||
43 | <key>LL_PART_SRC_PATTERN_EXPLODE</key> | ||
44 | <integer>0</integer> | ||
45 | <!-- end of pattern flags --> | ||
46 | |||
47 | <!-- Settings for single particles within the system --> | ||
48 | |||
49 | <key>ParticleMaxAge</key><!-- how long a single particle can live with 0 forever --> | ||
50 | <real>4</real> | ||
51 | |||
52 | <key>PartImageID</key> <!--This setting is ignored for the cloud, used instead for now is the hardcoded --> | ||
53 | <string>0000000000000-0000-0000-000000000000</string><!-- skins/default/textures/cloud-particle.j2c --> | ||
54 | |||
55 | <key>StartColor</key><!-- RGBA --> | ||
56 | <array> | ||
57 | <real>0.9</real> | ||
58 | <real>0.0</real> | ||
59 | <real>0.8</real> | ||
60 | <real>0.7</real> | ||
61 | </array> | ||
62 | <key>EndColor</key><!-- RGBA --> | ||
18 | <array> | 63 | <array> |
19 | <real>0.75</real> | 64 | <real>0.75</real> |
20 | <real>0.47</real> | 65 | <real>0.47</real> |
21 | <real>0.81</real> | 66 | <real>0.81</real> |
22 | <real>0</real> | 67 | <real>0</real> |
23 | </array> | 68 | </array> |
24 | <key>Endscale</key> | 69 | |
70 | <key>StartScale</key> | ||
71 | <array> | ||
72 | <real>0.8</real> | ||
73 | <real>0.8</real> | ||
74 | </array> | ||
75 | <key>EndScale</key> | ||
25 | <array> | 76 | <array> |
26 | <real>0.02</real> | 77 | <real>0.02</real> |
27 | <real>0.02</real> | 78 | <real>0.02</real> |
28 | </array> | 79 | </array> |
29 | <key>InnerAngle</key> | 80 | |
30 | <real>3.1415927410125732421875</real> | 81 | <key>TargetId</key><!-- This setting is ignored for the cloud --> |
82 | <string>00000000-0000-0000-0000-000000000000</string> | ||
83 | |||
84 | <!-- masks flags set to 1 for true and 0 for false--> | ||
31 | <key>LL_PART_BEAM_MASK</key> | 85 | <key>LL_PART_BEAM_MASK</key> |
32 | <integer>0</integer> | 86 | <integer>0</integer> |
33 | <key>LL_PART_BOUNCE_MASK</key> | 87 | <key>LL_PART_BOUNCE_MASK</key> |
@@ -42,47 +96,13 @@ | |||
42 | <integer>1</integer> | 96 | <integer>1</integer> |
43 | <key>LL_PART_INTERP_SCALE_MASK</key> | 97 | <key>LL_PART_INTERP_SCALE_MASK</key> |
44 | <integer>1</integer> | 98 | <integer>1</integer> |
45 | <key>LL_PART_SRC_PATTERN_ANGLE</key> | ||
46 | <integer>0</integer> | ||
47 | <key>LL_PART_SRC_PATTERN_ANGLE_CONE</key> | ||
48 | <integer>1</integer> | ||
49 | <key>LL_PART_SRC_PATTERN_ANGLE_CONE_EMPTY</key> | ||
50 | <integer>0</integer> | ||
51 | <key>LL_PART_SRC_PATTERN_DROP</key> | ||
52 | <integer>0</integer> | ||
53 | <key>LL_PART_SRC_PATTERN_EXPLODE</key> | ||
54 | <integer>0</integer> | ||
55 | <key>LL_PART_TARGET_LINEAR_MASK</key> | 99 | <key>LL_PART_TARGET_LINEAR_MASK</key> |
56 | <integer>0</integer> | 100 | <integer>0</integer> |
57 | <key>LL_PART_TARGET_POS_MASK</key> | 101 | <key>LL_PART_TARGET_POS_MASK</key> |
58 | <integer>1</integer> | 102 | <integer>1</integer> |
59 | <key>LL_PART_WIND_MASK</key> | 103 | <key>LL_PART_WIND_MASK</key> |
60 | <integer>0</integer> | 104 | <integer>0</integer> |
61 | <key>OuterAngle</key> | 105 | <!-- end of mask flags --> |
62 | <real>0</real> | 106 | |
63 | <key>PartImageID</key> | ||
64 | <string>0000000000000-0000-0000-000000000000</string> | ||
65 | <key>ParticleMaxAge</key> | ||
66 | <real>0</real> | ||
67 | <key>ParticleStartAge</key> | ||
68 | <real>0</real> | ||
69 | <key>SourceMaxage</key> | ||
70 | <real>4</real> | ||
71 | <key>Startcolor</key> | ||
72 | <array> | ||
73 | <real>0.9</real> | ||
74 | <real>0.0</real> | ||
75 | <real>0.8</real> | ||
76 | <real>0.7</real> | ||
77 | </array> | ||
78 | <key>Startscale</key> | ||
79 | <array> | ||
80 | <real>0.8</real> | ||
81 | <real>0.8</real> | ||
82 | </array> | ||
83 | <key>TargetId</key> | ||
84 | <string>00000000-0000-0000-0000-000000000000</string> | ||
85 | <key>BurstSpeedMin</key> | ||
86 | <real>0.1</real> | ||
87 | </map> | 107 | </map> |
88 | </llsd> | 108 | </llsd> |
diff --git a/linden/indra/newview/app_settings/settings.xml b/linden/indra/newview/app_settings/settings.xml index b7e7196..024296b 100644 --- a/linden/indra/newview/app_settings/settings.xml +++ b/linden/indra/newview/app_settings/settings.xml | |||
@@ -717,6 +717,17 @@ | |||
717 | <key>Value</key> | 717 | <key>Value</key> |
718 | <string>Random</string> | 718 | <string>Random</string> |
719 | </map> | 719 | </map> |
720 | <key>LastConnectedGrid</key> | ||
721 | <map> | ||
722 | <key>Comment</key> | ||
723 | <string>Last grid actually connected to</string> | ||
724 | <key>Persist</key> | ||
725 | <integer>1</integer> | ||
726 | <key>Type</key> | ||
727 | <string>String</string> | ||
728 | <key>Value</key> | ||
729 | <string /> | ||
730 | </map> | ||
720 | <key>LastSelectedGrid</key> | 731 | <key>LastSelectedGrid</key> |
721 | <map> | 732 | <map> |
722 | <key>Comment</key> | 733 | <key>Comment</key> |
@@ -2340,6 +2351,41 @@ | |||
2340 | <key>Value</key> | 2351 | <key>Value</key> |
2341 | <integer>0</integer> | 2352 | <integer>0</integer> |
2342 | </map> | 2353 | </map> |
2354 | |||
2355 | <key>XMLRPCProxyAddress</key> | ||
2356 | <map> | ||
2357 | <key>Comment</key> | ||
2358 | <string>Address for the XMLRPC Web Proxy</string> | ||
2359 | <key>Persist</key> | ||
2360 | <integer>1</integer> | ||
2361 | <key>Type</key> | ||
2362 | <string>String</string> | ||
2363 | <key>Value</key> | ||
2364 | <string /> | ||
2365 | </map> | ||
2366 | <key>XMLRPCProxyEnabled</key> | ||
2367 | <map> | ||
2368 | <key>Comment</key> | ||
2369 | <string>Use XMLRPC Proxy</string> | ||
2370 | <key>Persist</key> | ||
2371 | <integer>1</integer> | ||
2372 | <key>Type</key> | ||
2373 | <string>Boolean</string> | ||
2374 | <key>Value</key> | ||
2375 | <integer>0</integer> | ||
2376 | </map> | ||
2377 | <key>XMLRPCProxyPort</key> | ||
2378 | <map> | ||
2379 | <key>Comment</key> | ||
2380 | <string>Port of the XMLRPC Proxy</string> | ||
2381 | <key>Persist</key> | ||
2382 | <integer>1</integer> | ||
2383 | <key>Type</key> | ||
2384 | <string>S32</string> | ||
2385 | <key>Value</key> | ||
2386 | <integer>3128</integer> | ||
2387 | </map> | ||
2388 | |||
2343 | <key>AllowIdleAFK</key> | 2389 | <key>AllowIdleAFK</key> |
2344 | <map> | 2390 | <map> |
2345 | <key>Comment</key> | 2391 | <key>Comment</key> |
@@ -8080,6 +8126,17 @@ | |||
8080 | <integer>100</integer> | 8126 | <integer>100</integer> |
8081 | </array> | 8127 | </array> |
8082 | </map> | 8128 | </map> |
8129 | <key>MediaFilterOnlyRemoteCommands</key> | ||
8130 | <map> | ||
8131 | <key>Comment</key> | ||
8132 | <string>Whether Media Filter should only filter actions initiated remotely</string> | ||
8133 | <key>Persist</key> | ||
8134 | <integer>1</integer> | ||
8135 | <key>Type</key> | ||
8136 | <string>Boolean</string> | ||
8137 | <key>Value</key> | ||
8138 | <integer>1</integer> | ||
8139 | </map> | ||
8083 | <key>MediaOnAPrimUI</key> | 8140 | <key>MediaOnAPrimUI</key> |
8084 | <map> | 8141 | <map> |
8085 | <key>Comment</key> | 8142 | <key>Comment</key> |
diff --git a/linden/indra/newview/app_settings/viewerversion.xml b/linden/indra/newview/app_settings/viewerversion.xml index bb1b996..a220cf2 100644 --- a/linden/indra/newview/app_settings/viewerversion.xml +++ b/linden/indra/newview/app_settings/viewerversion.xml | |||
@@ -20,6 +20,6 @@ need to be changed manually - MC | |||
20 | <viewer version_patch="0" /> | 20 | <viewer version_patch="0" /> |
21 | 21 | ||
22 | <!--string--> | 22 | <!--string--> |
23 | <viewer version_test="Experimental 2011.03.11" /> | 23 | <viewer version_test="Experimental 2011.04.02" /> |
24 | 24 | ||
25 | </viewer_version> | 25 | </viewer_version> |
diff --git a/linden/indra/newview/gpu_table.txt b/linden/indra/newview/gpu_table.txt index d2092c5..51bc0f2 100644 --- a/linden/indra/newview/gpu_table.txt +++ b/linden/indra/newview/gpu_table.txt | |||
@@ -73,51 +73,54 @@ ATI M71 .*ATI.*M71.* 1 1 | |||
73 | ATI M72 .*ATI.*M72.* 1 1 | 73 | ATI M72 .*ATI.*M72.* 1 1 |
74 | ATI M76 .*ATI.*M76.* 3 1 | 74 | ATI M76 .*ATI.*M76.* 3 1 |
75 | ATI Mobility Radeon 4100 .*ATI.*Mobility *41.* 0 1 | 75 | ATI Mobility Radeon 4100 .*ATI.*Mobility *41.* 0 1 |
76 | ATI Mobility Radeon 7xxx .*ATI.*Mobility *Radeon 7.* 0 1 | 76 | ATI Mobility Radeon 7xxx .*ATI.*Mobility.*Radeon 7.* 0 1 |
77 | ATI Mobility Radeon 8xxx .*ATI.*Mobility *Radeon 8.* 0 1 | 77 | ATI Mobility Radeon 8xxx .*ATI.*Mobility.*Radeon 8.* 0 1 |
78 | ATI Mobility Radeon 9800 .*ATI.*Mobility *98.* 0 1 | 78 | ATI Mobility Radeon 9800 .*ATI.*Mobility.*98.* 1 1 |
79 | ATI Mobility Radeon 9700 .*ATI.*Mobility *97.* 0 1 | 79 | ATI Mobility Radeon 9700 .*ATI.*Mobility.*97.* 1 1 |
80 | ATI Mobility Radeon 9600 .*ATI.*Mobility *96.* 0 1 | 80 | ATI Mobility Radeon 9600 .*ATI.*Mobility.*96.* 0 1 |
81 | ATI Mobility Radeon HD 2300 .*ATI.*Mobility *HD *23.* 1 1 | 81 | ATI Mobility Radeon HD 2300 .*ATI.*Mobility.*HD.*23.* 1 1 |
82 | ATI Mobility Radeon HD 2400 .*ATI.*Mobility *HD *24.* 1 1 | 82 | ATI Mobility Radeon HD 2400 .*ATI.*Mobility.*HD.*24.* 1 1 |
83 | ATI Mobility Radeon HD 2600 .*ATI.*Mobility *HD *26.* 3 1 | 83 | ATI Mobility Radeon HD 2600 .*ATI.*Mobility.*HD.*26.* 3 1 |
84 | ATI Mobility Radeon HD 3400 .*ATI.*Mobility *HD *34.* 1 1 | 84 | ATI Mobility Radeon HD 3400 .*ATI.*Mobility.*HD.*34.* 1 1 |
85 | ATI Mobility Radeon HD 3600 .*ATI.*Mobility *HD *36.* 3 1 | 85 | ATI Mobility Radeon HD 3600 .*ATI.*Mobility.*HD.*36.* 3 1 |
86 | ATI Mobility Radeon HD 3800 .*ATI.*Mobility *HD *38.* 3 1 | 86 | ATI Mobility Radeon HD 3800 .*ATI.*Mobility.*HD.*38.* 3 1 |
87 | ATI Mobility Radeon HD 4200 .*ATI.*Mobility.*HD.*42.* 3 1 | ||
87 | ATI Mobility Radeon HD 5400 .*ATI.*Mobility *HD *54.* 1 1 | 88 | ATI Mobility Radeon HD 5400 .*ATI.*Mobility *HD *54.* 1 1 |
88 | ATI Mobility Radeon HD 5500 .*ATI.*Mobility *HD *55.* 1 1 | 89 | ATI Mobility Radeon HD 5500 .*ATI.*Mobility *HD *55.* 1 1 |
89 | ATI Mobility Radeon X1xxx .*ATI.*Mobility *X1.* 0 1 | 90 | ATI Mobility Radeon X1xxx .*ATI.*Mobility.*X1.* 0 1 |
90 | ATI Mobility Radeon X2xxx .*ATI.*Mobility *X2.* 0 1 | 91 | ATI Mobility Radeon X2xxx .*ATI.*Mobility.*X2.* 0 1 |
91 | ATI Mobility Radeon X3xx .*ATI.*Mobility *X3.* 1 1 | 92 | ATI Mobility Radeon X3xx .*ATI.*Mobility.*X3.* 1 1 |
92 | ATI Mobility Radeon X6xx .*ATI.*Mobility *X6.* 1 1 | 93 | ATI Mobility Radeon X6xx .*ATI.*Mobility.*X6.* 1 1 |
93 | ATI Mobility Radeon X7xx .*ATI.*Mobility *X7.* 1 1 | 94 | ATI Mobility Radeon X7xx .*ATI.*Mobility.*X7.* 1 1 |
94 | ATI Mobility Radeon Xxxx .*ATI.*Mobility *X.* 0 1 | 95 | ATI Mobility Radeon Xxxx .*ATI.*Mobility.*X.* 0 1 |
95 | ATI Mobility Radeon .*ATI.*Mobility.* 0 1 | 96 | ATI Mobility Radeon .*ATI.*Mobility.* 0 1 |
96 | ATI Radeon HD 2300 .*ATI.*Radeon HD *23.* 0 1 | 97 | ATI Radeon HD 2300 .*ATI.*Radeon HD 23.* 0 1 |
97 | ATI Radeon HD 2400 .*ATI.*Radeon HD *24.* 1 1 | 98 | ATI Radeon HD 2400 .*ATI.*Radeon HD.*24.* 1 1 |
98 | ATI Radeon HD 2600 .*ATI.*Radeon HD *26.* 2 1 | 99 | ATI Radeon HD 2600 .*ATI.*Radeon HD 26.* 2 1 |
99 | ATI Radeon HD 2900 .*ATI.*Radeon HD *29.* 3 1 | 100 | ATI Radeon HD 2900 .*ATI.*Radeon HD 29.* 3 1 |
100 | ATI Radeon HD 3200 .*ATI.*Radeon *HD *32.* 0 1 | 101 | ATI Radeon HD 3200 .*ATI.*Radeon.*HD.*32.* 1 1 |
101 | ATI Radeon HD 3300 .*ATI.*Radeon HD *33.* 1 1 | 102 | ATI Radeon HD 3300 .*ATI.*Radeon HD.*33.* 1 1 |
102 | ATI Radeon HD 3400 .*ATI.*Radeon HD *34.* 1 1 | 103 | ATI Radeon HD 3400 .*ATI.*Radeon HD.*34.* 1 1 |
103 | ATI Radeon HD 3600 .*ATI.*Radeon HD *36.* 3 1 | 104 | ATI Radeon HD 3600 .*ATI.*Radeon HD.*36.* 3 1 |
104 | ATI Radeon HD 3800 .*ATI.*Radeon HD *38.* 3 1 | 105 | ATI Radeon HD 3800 .*ATI.*Radeon HD.*38.* 3 1 |
105 | ATI Radeon HD 4200 .*ATI.*Radeon HD *42.* 1 1 | 106 | ATI Radeon HD 4200 .*ATI.*Radeon HD *42.* 1 1 |
106 | ATI Radeon HD 4300 .*ATI.*Radeon HD *43.* 1 1 | 107 | ATI Radeon HD 4300 .*ATI.*Radeon HD 43.* 1 1 |
107 | ATI Radeon HD 4500 .*ATI.*Radeon HD *45.* 2 1 | 108 | ATI Radeon HD 4500 .*ATI.*Radeon HD 45.* 2 1 |
108 | ATI Radeon HD 4600 .*ATI.*Radeon HD *46.* 3 1 | 109 | ATI Radeon HD 4600 .*ATI.*Radeon HD 46.* 3 1 |
109 | ATI Radeon HD 4700 .*ATI.*Radeon HD *47.* 3 1 | 110 | ATI Radeon HD 4700 .*ATI.*Radeon HD *47.* 3 1 |
110 | ATI Radeon HD 4800 .*ATI.*Radeon.*HD *48.* 3 1 | 111 | ATI Radeon HD 4800 .*ATI.*Radeon.*HD.*48.* 3 1 |
111 | ATI Radeon HD 5400 .*ATI.*Radeon.*HD *54.* 3 1 | 112 | ATI Radeon HD 5400 .*ATI.*Radeon.*HD.*54.* 2 1 |
112 | ATI Radeon HD 5500 .*ATI.*Radeon.*HD *55.* 3 1 | 113 | ATI Radeon HD 5500 .*ATI.*Radeon.*HD.*55.* 2 1 |
113 | ATI Radeon HD 5600 .*ATI.*Radeon.*HD *56.* 3 1 | 114 | ATI Radeon HD 5600 .*ATI.*Radeon.*HD.*56.* 3 1 |
114 | ATI Radeon HD 5700 .*ATI.*Radeon.*HD *57.* 3 1 | 115 | ATI Radeon HD 5700 .*ATI.*Radeon.*HD.*57.* 3 1 |
115 | ATI Radeon HD 5800 .*ATI.*Radeon.*HD *58.* 3 1 | 116 | ATI Radeon HD 5800 .*ATI.*Radeon.*HD.*58.* 3 1 |
116 | ATI Radeon HD 5900 .*ATI.*Radeon.*HD *59.* 3 1 | 117 | ATI Radeon HD 5900 .*ATI.*Radeon.*HD.*59.* 3 1 |
118 | ATI Radeon HD 6800 .*ATI.*Radeon.*HD.*68.* 3 1 | ||
119 | ATI Radeon HD 6900 .*ATI.*Radeon.*HD.*69.* 3 1 | ||
117 | ATI Radeon OpenGL .*ATI.*Radeon OpenGL.* 0 0 | 120 | ATI Radeon OpenGL .*ATI.*Radeon OpenGL.* 0 0 |
118 | ATI Radeon 2100 .*ATI.*Radeon 21.* 0 1 | 121 | ATI Radeon 2100 .*ATI.*Radeon 21.* 0 1 |
119 | ATI Radeon 3000 .*ATI.*Radeon 30.* 0 1 | 122 | ATI Radeon 3000 .*ATI.*Radeon 30.* 0 1 |
120 | ATI Radeon 3100 .*ATI.*Radeon 31.* 0 1 | 123 | ATI Radeon 3100 .*ATI.*Radeon 31.* 1 1 |
121 | ATI Radeon 7xxx .*ATI.*Radeon 7.* 0 1 | 124 | ATI Radeon 7xxx .*ATI.*Radeon 7.* 0 1 |
122 | ATI Radeon 8xxx .*ATI.*Radeon 8.* 0 1 | 125 | ATI Radeon 8xxx .*ATI.*Radeon 8.* 0 1 |
123 | ATI Radeon 9000 .*ATI.*Radeon 90.* 0 1 | 126 | ATI Radeon 9000 .*ATI.*Radeon 90.* 0 1 |
@@ -136,12 +139,12 @@ ATI Radeon VE .*ATI.*Radeon.*VE.* 0 0 | |||
136 | ATI Radeon X1000 .*ATI.*Radeon *X10.* 0 1 | 139 | ATI Radeon X1000 .*ATI.*Radeon *X10.* 0 1 |
137 | ATI Radeon X1200 .*ATI.*Radeon *X12.* 0 1 | 140 | ATI Radeon X1200 .*ATI.*Radeon *X12.* 0 1 |
138 | ATI Radeon X1300 .*ATI.*Radeon *X13.* 1 1 | 141 | ATI Radeon X1300 .*ATI.*Radeon *X13.* 1 1 |
139 | ATI Radeon X1400 .*ATI.*Radeon *X14.* 1 1 | 142 | ATI Radeon X1400 .*ATI.*Radeon X14.* 1 1 |
140 | ATI Radeon X1500 .*ATI.*Radeon *X15.* 1 1 | 143 | ATI Radeon X1500 .*ATI.*Radeon X15.* 1 1 |
141 | ATI Radeon X1600 .*ATI.*Radeon *X16.* 1 1 | 144 | ATI Radeon X1600 .*ATI.*Radeon *X16.* 1 1 |
142 | ATI Radeon X1700 .*ATI.*Radeon *X17.* 1 1 | 145 | ATI Radeon X1700 .*ATI.*Radeon X17.* 1 1 |
143 | ATI Radeon X1800 .*ATI.*Radeon *X18.* 3 1 | 146 | ATI Radeon X1800 .*ATI.*Radeon X18.* 3 1 |
144 | ATI Radeon X1900 .*ATI.*Radeon *X19.* 3 1 | 147 | ATI Radeon X1900 .*ATI.*Radeon X19.* 3 1 |
145 | ATI Radeon X300 .*ATI.*Radeon *X3.* 0 1 | 148 | ATI Radeon X300 .*ATI.*Radeon *X3.* 0 1 |
146 | ATI Radeon X400 .*ATI.*Radeon X4.* 0 1 | 149 | ATI Radeon X400 .*ATI.*Radeon X4.* 0 1 |
147 | ATI Radeon X500 .*ATI.*Radeon X5.* 0 1 | 150 | ATI Radeon X500 .*ATI.*Radeon X5.* 0 1 |
@@ -184,10 +187,7 @@ Intel Pineview .*Intel.*Pineview.* 0 1 | |||
184 | Intel Springdale .*Intel.*Springdale.* 0 0 | 187 | Intel Springdale .*Intel.*Springdale.* 0 0 |
185 | Matrox .*Matrox.* 0 0 | 188 | Matrox .*Matrox.* 0 0 |
186 | Mesa .*Mesa.* 0 0 | 189 | Mesa .*Mesa.* 0 0 |
187 | NVIDIA 210 .*NVIDIA.*GeForce.*210.* 3 1 | 190 | NVIDIA 210 .*NVIDIA.*GeForce.*21.* 2 1 |
188 | NVIDIA 310 .*NVIDIA.*GeForce.*310.* 3 1 | ||
189 | NVIDIA 315 .*NVIDIA.*GeForce.*315.* 3 1 | ||
190 | NVIDIA G100 .*NVIDIA.*GeForce G *100.* 2 1 | ||
191 | NVIDIA 310M .*NVIDIA.*GeForce 310M.* 0 1 | 191 | NVIDIA 310M .*NVIDIA.*GeForce 310M.* 0 1 |
192 | NVIDIA 310 .*NVIDIA.*GeForce 310.* 0 1 | 192 | NVIDIA 310 .*NVIDIA.*GeForce 310.* 0 1 |
193 | NVIDIA 320M .*NVIDIA.*GeForce 320M.* 0 1 | 193 | NVIDIA 320M .*NVIDIA.*GeForce 320M.* 0 1 |
@@ -196,27 +196,33 @@ NVIDIA G102M .*NVIDIA.*GeForce G *102M.* 0 1 | |||
196 | NVIDIA G103M .*NVIDIA.*GeForce G *103M.* 0 1 | 196 | NVIDIA G103M .*NVIDIA.*GeForce G *103M.* 0 1 |
197 | NVIDIA G105M .*NVIDIA.*GeForce G *105M.* 0 1 | 197 | NVIDIA G105M .*NVIDIA.*GeForce G *105M.* 0 1 |
198 | NVIDIA G210M .*NVIDIA.*GeForce G210M.* 0 1 | 198 | NVIDIA G210M .*NVIDIA.*GeForce G210M.* 0 1 |
199 | NVIDIA GT 120 .*NVIDIA.*GeForce GT 12.* 0 1 | 199 | NVIDIA GT 120 .*NVIDIA.*GeForce.*GT.*12.* 2 1 |
200 | NVIDIA GT 130 .*NVIDIA.*GeForce GT 13.* 1 1 | 200 | NVIDIA GT 130 .*NVIDIA.*GeForce.*GT.*13.* 2 1 |
201 | NVIDIA GT 220 .*NVIDIA.*GeForce GT 22.* 0 1 | 201 | NVIDIA GT 220 .*NVIDIA.*GeForce.*GT.*22.* 2 1 |
202 | NVIDIA GT 230 .*NVIDIA.*GeForce GT 23.* 1 1 | 202 | NVIDIA GT 230 .*NVIDIA.*GeForce.*GT.*23.* 2 1 |
203 | NVIDIA GT 240 .*NVIDIA.*GeForce GT 24.* 1 1 | 203 | NVIDIA GT 240 .*NVIDIA.*GeForce.*GT.*24.* 2 1 |
204 | NVIDIA GT 320 .*NVIDIA.*GeForce GT 32.* 0 1 | 204 | NVIDIA GT 320 .*NVIDIA.*GeForce GT 32.* 0 1 |
205 | NVIDIA GT 330 .*NVIDIA.*GeForce GT 33.* 3 1 | ||
206 | NVIDIA GT 340 .*NVIDIA.*GeForce GT 34.* 3 1 | ||
207 | NVIDIA GT 330M .*NVIDIA.*GeForce GT 330M.* 1 1 | 205 | NVIDIA GT 330M .*NVIDIA.*GeForce GT 330M.* 1 1 |
208 | NVIDIA GTS 150 .*NVIDIA.*GeForce GTS 15.* 3 1 | 206 | NVIDIA GT 430 .*NVIDIA.*GeForce.*GT.*43.* 3 1 |
209 | NVIDIA GTS 205 .*NVIDIA.*GeForce GTS 10.* 3 1 | 207 | NVIDIA GT 520 .*NVIDIA.*GeForce.*GT.*52.* 2 1 |
210 | NVIDIA GTS 240 .*NVIDIA.*GeForce GTS 24.* 1 1 | 208 | NVIDIA GT 540 .*NVIDIA.*GeForce.*GT.*54.* 3 1 |
211 | NVIDIA GTS 250 .*NVIDIA.*GeForce GTS 25.* 3 1 | 209 | NVIDIA GTS 240 .*NVIDIA.*GeForce *GTS.*24.* 3 1 |
210 | NVIDIA GTS 250 .*NVIDIA.*GeForce.*GTS.*25.* 3 1 | ||
211 | NVIDIA GTS 450 .*NVIDIA.*GeForce.*GTS.*45.* 3 1 | ||
212 | NVIDIA GTX 260 .*NVIDIA.*GeForce.*GTX.*26.* 3 1 | ||
213 | NVIDIA GTX 270 .*NVIDIA.*GeForce.*GTX.*27.* 3 1 | ||
214 | NVIDIA GTX 280 .*NVIDIA.*GeForce.*GTX.*28.* 3 1 | ||
215 | NVIDIA GTX 285 .*NVIDIA.*GeForce.*GTX.*28.* 3 1 | ||
216 | NVIDIA GTX 290 .*NVIDIA.*GeForce.*GTX.*29.* 3 1 | ||
217 | NVIDIA GTX 295 .*NVIDIA.*GeForce.*GTX.*29.* 3 1 | ||
212 | NVIDIA GTS 360M .*NVIDIA.*GeForce GTS 360M.* 3 1 | 218 | NVIDIA GTS 360M .*NVIDIA.*GeForce GTS 360M.* 3 1 |
213 | NVIDIA GTX 260 .*NVIDIA.*GeForce GTX 26.* 3 1 | 219 | NVIDIA GTX 460 .*NVIDIA.*GeForce.*GTX.*46.* 3 1 |
214 | NVIDIA GTX 270 .*NVIDIA.*GeForce GTX 27.* 3 1 | 220 | NVIDIA GTX 465 .*NVIDIA.*GeForce.*GTX.*46.* 3 1 |
215 | NVIDIA GTX 280 .*NVIDIA.*GeForce GTX 28.* 3 1 | 221 | NVIDIA GTX 470 .*NVIDIA.*GeForce.*GTX.*47.* 3 1 |
216 | NVIDIA GTX 290 .*NVIDIA.*GeForce GTX 29.* 3 1 | 222 | NVIDIA GTX 480 .*NVIDIA.*GeForce.*GTX.*48.* 3 1 |
217 | NVIDIA GTX 465 .*NVIDIA.*GeForce GTX 46.* 3 1 | 223 | NVIDIA GTX 560 .*NVIDIA.*GeForce.*GTX.*56.* 3 1 |
218 | NVIDIA GTX 470 .*NVIDIA.*GeForce GTX 47.* 3 1 | 224 | NVIDIA GTX 570 .*NVIDIA.*GeForce.*GTX.*57.* 3 1 |
219 | NVIDIA GTX 480 .*NVIDIA.*GeForce GTX 48.* 3 1 | 225 | NVIDIA GTX 580 .*NVIDIA.*GeForce.*GTX.*58.* 3 1 |
220 | NVIDIA C51 .*NVIDIA.*C51.* 0 1 | 226 | NVIDIA C51 .*NVIDIA.*C51.* 0 1 |
221 | NVIDIA G72 .*NVIDIA.*G72.* 1 1 | 227 | NVIDIA G72 .*NVIDIA.*G72.* 1 1 |
222 | NVIDIA G73 .*NVIDIA.*G73.* 1 1 | 228 | NVIDIA G73 .*NVIDIA.*G73.* 1 1 |
@@ -240,29 +246,31 @@ NVIDIA GeForce 7100 .*NVIDIA.*GeForce 71.* 0 1 | |||
240 | NVIDIA GeForce 7200 .*NVIDIA.*GeForce 72.* 1 1 | 246 | NVIDIA GeForce 7200 .*NVIDIA.*GeForce 72.* 1 1 |
241 | NVIDIA GeForce 7300 .*NVIDIA.*GeForce 73.* 1 1 | 247 | NVIDIA GeForce 7300 .*NVIDIA.*GeForce 73.* 1 1 |
242 | NVIDIA GeForce 7500 .*NVIDIA.*GeForce 75.* 1 1 | 248 | NVIDIA GeForce 7500 .*NVIDIA.*GeForce 75.* 1 1 |
243 | NVIDIA GeForce 7600 .*NVIDIA.*GeForce 76.* 1 1 | 249 | NVIDIA GeForce 7600 .*NVIDIA.*GeForce 76.* 2 1 |
244 | NVIDIA GeForce 7800 .*NVIDIA.*GeForce 78.* 1 1 | 250 | NVIDIA GeForce 7800 .*NVIDIA.*GeForce.*78.* 2 1 |
245 | NVIDIA GeForce 7900 .*NVIDIA.*GeForce 79.* 1 1 | 251 | NVIDIA GeForce 7900 .*NVIDIA.*GeForce.*79.* 2 1 |
246 | NVIDIA GeForce 8100 .*NVIDIA.*GeForce 81.* 1 1 | 252 | NVIDIA GeForce 8100 .*NVIDIA.*GeForce 81.* 1 1 |
247 | NVIDIA GeForce 8200 .*NVIDIA.*GeForce 82.* 1 1 | 253 | NVIDIA GeForce 8200 .*NVIDIA.*GeForce 82.* 1 1 |
248 | NVIDIA GeForce 8300 .*NVIDIA.*GeForce 83.* 1 1 | 254 | NVIDIA GeForce 8300 .*NVIDIA.*GeForce 83.* 1 1 |
249 | NVIDIA GeForce 8400 .*NVIDIA.*GeForce 84.* 1 1 | 255 | NVIDIA GeForce 8400 .*NVIDIA.*GeForce 84.* 1 1 |
250 | NVIDIA GeForce 8500 .*GeForce 85.* 1 1 | 256 | NVIDIA GeForce 8500 .*GeForce 85.* 3 1 |
251 | NVIDIA GeForce 8600M .*NVIDIA.*GeForce.*8600M.* 1 1 | 257 | NVIDIA GeForce 8600M .*NVIDIA.*GeForce.*8600M.* 1 1 |
252 | NVIDIA GeForce 8600 .*NVIDIA.*GeForce 86.* 3 1 | 258 | NVIDIA GeForce 8600 .*NVIDIA.*GeForce 86.* 3 1 |
253 | NVIDIA GeForce 8700 .*NVIDIA.*GeForce 87.* 3 1 | 259 | NVIDIA GeForce 8700 .*NVIDIA.*GeForce 87.* 3 1 |
254 | NVIDIA GeForce 8800 .*NVIDIA.*GeForce 88.* 3 1 | 260 | NVIDIA GeForce 8800 .*NVIDIA.*GeForce 88.* 3 1 |
255 | NVIDIA GeForce 9100 .*NVIDIA.*GeForce 9100.* 0 1 | 261 | NVIDIA GeForce 9100 .*NVIDIA.*GeForce 9100.* 0 1 |
256 | NVIDIA GeForce 9200 .*NVIDIA.*GeForce 9200.* 0 1 | 262 | NVIDIA GeForce 9200 .*NVIDIA.*GeForce 9200.* 0 1 |
263 | NVIDIA GeForce 9200M .*NVIDIA.*GeForce 9200M.* 1 1 | ||
257 | NVIDIA GeForce 9300M .*NVIDIA.*GeForce 9300M.* 1 1 | 264 | NVIDIA GeForce 9300M .*NVIDIA.*GeForce 9300M.* 1 1 |
258 | NVIDIA GeForce 9400M .*NVIDIA.*GeForce 9400M.* 1 1 | 265 | NVIDIA GeForce 9400M .*NVIDIA.*GeForce 9400M.* 1 1 |
259 | NVIDIA GeForce 9500M .*NVIDIA.*GeForce 9500M.* 2 1 | 266 | NVIDIA GeForce 9500M .*NVIDIA.*GeForce 9500M.* 2 1 |
260 | NVIDIA GeForce 9600M .*NVIDIA.*GeForce 9600M.* 2 1 | 267 | NVIDIA GeForce 9600M .*NVIDIA.*GeForce 9600M.* 2 1 |
261 | NVIDIA GeForce 9700M .*NVIDIA.*GeForce 9700M.* 2 1 | 268 | NVIDIA GeForce 9700M .*NVIDIA.*GeForce 9700M.* 2 1 |
269 | NVIDIA GeForce 9200 .*NVIDIA.*GeForce 92.* 1 1 | ||
262 | NVIDIA GeForce 9300 .*NVIDIA.*GeForce 93.* 1 1 | 270 | NVIDIA GeForce 9300 .*NVIDIA.*GeForce 93.* 1 1 |
263 | NVIDIA GeForce 9400 .*GeForce 94.* 1 1 | 271 | NVIDIA GeForce 9400 .*GeForce 94.* 1 1 |
264 | NVIDIA GeForce 9500 .*NVIDIA.*GeForce 95.* 2 1 | 272 | NVIDIA GeForce 9500 .*NVIDIA.*GeForce 95.* 2 1 |
265 | NVIDIA GeForce 9600 .*NVIDIA.*GeForce.*96.* 3 1 | 273 | NVIDIA GeForce 9600 .*NVIDIA.*GeForce.*96.* 2 1 |
266 | NVIDIA GeForce 9800 .*NVIDIA.*GeForce.*98.* 3 1 | 274 | NVIDIA GeForce 9800 .*NVIDIA.*GeForce.*98.* 3 1 |
267 | NVIDIA GeForce FX 5100 .*NVIDIA.*GeForce FX 51.* 0 1 | 275 | NVIDIA GeForce FX 5100 .*NVIDIA.*GeForce FX 51.* 0 1 |
268 | NVIDIA GeForce FX 5200 .*NVIDIA.*GeForce FX 52.* 0 1 | 276 | NVIDIA GeForce FX 5200 .*NVIDIA.*GeForce FX 52.* 0 1 |
@@ -299,6 +307,7 @@ NVIDIA G92 .*G92.* 3 1 | |||
299 | NVIDIA G94 .*G94.* 3 1 | 307 | NVIDIA G94 .*G94.* 3 1 |
300 | NVIDIA GeForce Go 6 .*GeForce Go 6.* 1 1 | 308 | NVIDIA GeForce Go 6 .*GeForce Go 6.* 1 1 |
301 | NVIDIA ION .*NVIDIA ION.* 1 1 | 309 | NVIDIA ION .*NVIDIA ION.* 1 1 |
310 | NVIDIA ION 2 .*NVIDIA ION 2.* 1 1 | ||
302 | NVIDIA NB9M .*GeForce NB9M.* 1 1 | 311 | NVIDIA NB9M .*GeForce NB9M.* 1 1 |
303 | NVIDIA NB9P .*GeForce NB9P.* 1 1 | 312 | NVIDIA NB9P .*GeForce NB9P.* 1 1 |
304 | NVIDIA GeForce PCX .*GeForce PCX.* 0 1 | 313 | NVIDIA GeForce PCX .*GeForce PCX.* 0 1 |
diff --git a/linden/indra/newview/hippogridmanager.cpp b/linden/indra/newview/hippogridmanager.cpp index 5e13ed8..c08709d 100644 --- a/linden/indra/newview/hippogridmanager.cpp +++ b/linden/indra/newview/hippogridmanager.cpp | |||
@@ -165,6 +165,13 @@ const std::string& HippoGridInfo::getRealCurrencySymbol() const | |||
165 | return mRealCurrencySymbol; | 165 | return mRealCurrencySymbol; |
166 | } | 166 | } |
167 | 167 | ||
168 | bool HippoGridInfo::isUsernameCompat() const | ||
169 | { | ||
170 | // currently only SecondLife grids support username-style logins | ||
171 | // but Aurora is working on implementing it -- MC | ||
172 | return (mPlatform == HippoGridInfo::PLATFORM_SECONDLIFE); | ||
173 | } | ||
174 | |||
168 | 175 | ||
169 | 176 | ||
170 | // ******************************************************************** | 177 | // ******************************************************************** |
@@ -802,7 +809,17 @@ void HippoGridManager::loadFromFile() | |||
802 | parseFile(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "default_grids.xml"), !mGridInfo.empty()); | 809 | parseFile(gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "default_grids.xml"), !mGridInfo.empty()); |
803 | // merge grid info from web site, if newer. Force load, if list of grids is empty. | 810 | // merge grid info from web site, if newer. Force load, if list of grids is empty. |
804 | if (gSavedSettings.getBOOL("CheckForGridUpdates")) | 811 | if (gSavedSettings.getBOOL("CheckForGridUpdates")) |
805 | parseUrl(gSavedSettings.getString("GridUpdateList"), !mGridInfo.empty()); | 812 | { |
813 | std::string update_list = gSavedSettings.getString("GridUpdateList"); | ||
814 | if (!update_list.empty()) | ||
815 | { | ||
816 | parseUrl(update_list, !mGridInfo.empty()); | ||
817 | } | ||
818 | else | ||
819 | { | ||
820 | llwarns << "\"CheckForGridUpdates\" is set to true, but \"GridUpdateList\" contains no URL to fetch the grid info from. Skipping." << llendl; | ||
821 | } | ||
822 | } | ||
806 | 823 | ||
807 | std::string last_grid = gSavedSettings.getString("LastSelectedGrid"); | 824 | std::string last_grid = gSavedSettings.getString("LastSelectedGrid"); |
808 | if (last_grid.empty()) last_grid = gSavedSettings.getString("DefaultGrid"); | 825 | if (last_grid.empty()) last_grid = gSavedSettings.getString("DefaultGrid"); |
diff --git a/linden/indra/newview/hippogridmanager.h b/linden/indra/newview/hippogridmanager.h index 8429dba..1b6fbc5 100644 --- a/linden/indra/newview/hippogridmanager.h +++ b/linden/indra/newview/hippogridmanager.h | |||
@@ -55,6 +55,7 @@ public: | |||
55 | const std::string& getVoiceConnector() const { return mVoiceConnector; } | 55 | const std::string& getVoiceConnector() const { return mVoiceConnector; } |
56 | std::string getSearchUrl(SearchType ty, bool is_web) const; | 56 | std::string getSearchUrl(SearchType ty, bool is_web) const; |
57 | bool isRenderCompat() const; | 57 | bool isRenderCompat() const; |
58 | bool isUsernameCompat() const; | ||
58 | int getMaxAgentGroups() const { return mMaxAgentGroups; } | 59 | int getMaxAgentGroups() const { return mMaxAgentGroups; } |
59 | 60 | ||
60 | const std::string& getCurrencySymbol() const; | 61 | const std::string& getCurrencySymbol() const; |
diff --git a/linden/indra/newview/installers/windows/imprudence_installer_script.iss b/linden/indra/newview/installers/windows/imprudence_installer_script.iss new file mode 100644 index 0000000..17428eb --- /dev/null +++ b/linden/indra/newview/installers/windows/imprudence_installer_script.iss | |||
@@ -0,0 +1,193 @@ | |||
1 | ; Script generated by the Inno Setup Script Wizard. | ||
2 | ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! | ||
3 | |||
4 | [Setup] | ||
5 | ; NOTE: The value of AppId uniquely identifies this application. | ||
6 | ; Do not use the same AppId value in installers for other applications. | ||
7 | ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) | ||
8 | |||
9 | ; These will change | ||
10 | AppId={{D7736EE8-AFCE-4735-BBE3-652CDFBBFCA8} | ||
11 | AppName=Imprudence | ||
12 | AppVerName=Imprudence Viewer 1.3.0 RC2 (SSE2 optimized) | ||
13 | DefaultDirName={pf}\Imprudence | ||
14 | DefaultGroupName=Imprudence Viewer | ||
15 | VersionInfoProductName=Imprudence Viewer | ||
16 | OutputBaseFilename=Imprudence-1.3.0-RC2-(SSE2-optimized)-Setup | ||
17 | VersionInfoVersion=1.3.0 | ||
18 | VersionInfoTextVersion=1.3.0 | ||
19 | VersionInfoProductVersion=1.3.0 | ||
20 | VersionInfoCopyright=2010 | ||
21 | AppCopyright=2010 | ||
22 | |||
23 | ; These won't change | ||
24 | VersionInfoCompany=Imprudence | ||
25 | AppPublisher=The Imprudence Project | ||
26 | AppPublisherURL=http://www.imprudenceviewer.org | ||
27 | AppSupportURL=http://www.imprudenceviewer.org | ||
28 | AppUpdatesURL=http://www.imprudenceviewer.org | ||
29 | AllowNoIcons=true | ||
30 | InfoAfterFile=..\windows\README.txt | ||
31 | OutputDir=C:\ | ||
32 | SetupIconFile=..\windows\imp_icon.ico | ||
33 | Compression=lzma2/ultra64 | ||
34 | InternalCompressLevel=ultra64 | ||
35 | SolidCompression=true | ||
36 | PrivilegesRequired=poweruser | ||
37 | AllowRootDirectory=true | ||
38 | WizardImageFile=..\windows\imprudence_installer_icon_left.bmp | ||
39 | WizardSmallImageFile=..\windows\imprudence_installer_icon_right.bmp | ||
40 | SetupLogging=true | ||
41 | |||
42 | [Languages] | ||
43 | Name: english; MessagesFile: compiler:Default.isl | ||
44 | |||
45 | [Tasks] | ||
46 | Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkedonce | ||
47 | Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkedonce | ||
48 | Name: slurlassociate; Description: Associate Imprudence with SLURLs; GroupDescription: Associations:; Languages: ; Flags: checkedonce | ||
49 | ; TODO: use scripting for something like this on uninstall: | ||
50 | ; Name: uninstallsettings; Description: Remove user settings; Flags: checkablealone; Languages: ; GroupDescription: Uninstall: | ||
51 | |||
52 | [Files] | ||
53 | Source: C:\imp_1.3\imprudence.exe; DestDir: {app}; Flags: ignoreversion | ||
54 | Source: C:\imp_1.3\character\*; DestDir: {app}\character; Flags: ignoreversion recursesubdirs createallsubdirs | ||
55 | Source: C:\imp_1.3\fonts\*; DestDir: {app}\fonts; Flags: ignoreversion recursesubdirs createallsubdirs | ||
56 | Source: C:\imp_1.3\app_settings\*; DestDir: {app}\app_settings; Flags: ignoreversion recursesubdirs createallsubdirs | ||
57 | Source: C:\imp_1.3\skins\*; DestDir: {app}\skins; Flags: ignoreversion recursesubdirs createallsubdirs | ||
58 | Source: C:\imp_1.3\doc\*; DestDir: {app}\doc; Flags: ignoreversion recursesubdirs createallsubdirs | ||
59 | Source: C:\imp_1.3\lib\*; DestDir: {app}\lib; Flags: ignoreversion recursesubdirs createallsubdirs | ||
60 | Source: C:\imp_1.3\alut.dll; DestDir: {app}; Flags: ignoreversion | ||
61 | Source: C:\imp_1.3\ChangeLog.txt; DestDir: {app}; Flags: ignoreversion | ||
62 | Source: C:\imp_1.3\charset.dll; DestDir: {app}; Flags: ignoreversion | ||
63 | Source: C:\imp_1.3\dbghelp.dll; DestDir: {app}; Flags: ignoreversion | ||
64 | Source: C:\imp_1.3\featuretable.txt; DestDir: {app}; Flags: ignoreversion | ||
65 | Source: C:\imp_1.3\freebl3.dll; DestDir: {app}; Flags: ignoreversion | ||
66 | Source: C:\imp_1.3\glew32.dll; DestDir: {app}; Flags: ignoreversion | ||
67 | Source: C:\imp_1.3\gpu_table.txt; DestDir: {app}; Flags: ignoreversion | ||
68 | Source: C:\imp_1.3\iconv.dll; DestDir: {app}; Flags: ignoreversion | ||
69 | Source: C:\imp_1.3\imprudence.exe.config; DestDir: {app}; Flags: ignoreversion | ||
70 | Source: C:\imp_1.3\imprudence.url; DestDir: {app}; Flags: ignoreversion | ||
71 | Source: C:\imp_1.3\intl.dll; DestDir: {app}; Flags: ignoreversion | ||
72 | Source: C:\imp_1.3\js3250.dll; DestDir: {app}; Flags: ignoreversion | ||
73 | Source: C:\imp_1.3\libcairo-2.dll; DestDir: {app}; Flags: ignoreversion | ||
74 | Source: C:\imp_1.3\libfaad-2.dll; DestDir: {app}; Flags: ignoreversion | ||
75 | Source: C:\imp_1.3\libgcrypt-11.dll; DestDir: {app}; Flags: ignoreversion | ||
76 | Source: C:\imp_1.3\libgio-2.0-0.dll; DestDir: {app}; Flags: ignoreversion | ||
77 | Source: C:\imp_1.3\libglib-2.0-0.dll; DestDir: {app}; Flags: ignoreversion | ||
78 | Source: C:\imp_1.3\libgmodule-2.0-0.dll; DestDir: {app}; Flags: ignoreversion | ||
79 | Source: C:\imp_1.3\libgnutls-26.dll; DestDir: {app}; Flags: ignoreversion | ||
80 | Source: C:\imp_1.3\libgobject-2.0-0.dll; DestDir: {app}; Flags: ignoreversion | ||
81 | Source: C:\imp_1.3\libgpg-error-0.dll; DestDir: {app}; Flags: ignoreversion | ||
82 | Source: C:\imp_1.3\libgstapp.dll; DestDir: {app}; Flags: ignoreversion | ||
83 | Source: C:\imp_1.3\libgstaudio.dll; DestDir: {app}; Flags: ignoreversion | ||
84 | Source: C:\imp_1.3\libgstaudio-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
85 | Source: C:\imp_1.3\libgstbase-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
86 | Source: C:\imp_1.3\libgstcdda.dll; DestDir: {app}; Flags: ignoreversion | ||
87 | Source: C:\imp_1.3\libgstcontroller-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
88 | Source: C:\imp_1.3\libgstdataprotocol-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
89 | Source: C:\imp_1.3\libgstdshow.dll; DestDir: {app}; Flags: ignoreversion | ||
90 | Source: C:\imp_1.3\libgstfft.dll; DestDir: {app}; Flags: ignoreversion | ||
91 | Source: C:\imp_1.3\libgstinterfaces.dll; DestDir: {app}; Flags: ignoreversion | ||
92 | Source: C:\imp_1.3\libgstnet-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
93 | Source: C:\imp_1.3\libgstnetbuffer.dll; DestDir: {app}; Flags: ignoreversion | ||
94 | Source: C:\imp_1.3\libgstpbutils.dll; DestDir: {app}; Flags: ignoreversion | ||
95 | Source: C:\imp_1.3\libgstreamer-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
96 | Source: C:\imp_1.3\libgstriff.dll; DestDir: {app}; Flags: ignoreversion | ||
97 | Source: C:\imp_1.3\libgstrtp.dll; DestDir: {app}; Flags: ignoreversion | ||
98 | Source: C:\imp_1.3\libgstrtsp.dll; DestDir: {app}; Flags: ignoreversion | ||
99 | Source: C:\imp_1.3\libgstsdp.dll; DestDir: {app}; Flags: ignoreversion | ||
100 | Source: C:\imp_1.3\libgsttag.dll; DestDir: {app}; Flags: ignoreversion | ||
101 | Source: C:\imp_1.3\libgstvideo.dll; DestDir: {app}; Flags: ignoreversion | ||
102 | Source: C:\imp_1.3\libgthread-2.0-0.dll; DestDir: {app}; Flags: ignoreversion | ||
103 | Source: C:\imp_1.3\libjpeg.dll; DestDir: {app}; Flags: ignoreversion | ||
104 | Source: C:\imp_1.3\libmp3lame-0.dll; DestDir: {app}; Flags: ignoreversion | ||
105 | Source: C:\imp_1.3\libneon-27.dll; DestDir: {app}; Flags: ignoreversion | ||
106 | Source: C:\imp_1.3\libogg-0.dll; DestDir: {app}; Flags: ignoreversion | ||
107 | Source: C:\imp_1.3\liboil-0.3-0.dll; DestDir: {app}; Flags: ignoreversion | ||
108 | Source: C:\imp_1.3\libopenjpeg-2.dll; DestDir: {app}; Flags: ignoreversion | ||
109 | Source: C:\imp_1.3\libpng12-0.dll; DestDir: {app}; Flags: ignoreversion | ||
110 | Source: C:\imp_1.3\libschroedinger-1.0-0.dll; DestDir: {app}; Flags: ignoreversion | ||
111 | Source: C:\imp_1.3\libspeex-1.dll; DestDir: {app}; Flags: ignoreversion | ||
112 | Source: C:\imp_1.3\libtheora-0.dll; DestDir: {app}; Flags: ignoreversion | ||
113 | Source: C:\imp_1.3\libvorbis-0.dll; DestDir: {app}; Flags: ignoreversion | ||
114 | Source: C:\imp_1.3\libvorbisenc-2.dll; DestDir: {app}; Flags: ignoreversion | ||
115 | Source: C:\imp_1.3\libxml2-2.dll; DestDir: {app}; Flags: ignoreversion | ||
116 | Source: C:\imp_1.3\libxml2.dll; DestDir: {app}; Flags: ignoreversion | ||
117 | Source: C:\imp_1.3\llkdu.dll.2.config; DestDir: {app}; Flags: ignoreversion | ||
118 | Source: C:\imp_1.3\Microsoft.VC80.CRT.manifest; DestDir: {app}; Flags: ignoreversion | ||
119 | Source: C:\imp_1.3\msvcp80.dll; DestDir: {app}; Flags: ignoreversion | ||
120 | Source: C:\imp_1.3\msvcr80.dll; DestDir: {app}; Flags: ignoreversion | ||
121 | Source: C:\imp_1.3\nspr4.dll; DestDir: {app}; Flags: ignoreversion | ||
122 | Source: C:\imp_1.3\nss3.dll; DestDir: {app}; Flags: ignoreversion | ||
123 | Source: C:\imp_1.3\nssckbi.dll; DestDir: {app}; Flags: ignoreversion | ||
124 | Source: C:\imp_1.3\openal32.dll; DestDir: {app}; Flags: ignoreversion | ||
125 | Source: C:\imp_1.3\OpenJPEG.dll; DestDir: {app}; Flags: ignoreversion | ||
126 | Source: C:\imp_1.3\plc4.dll; DestDir: {app}; Flags: ignoreversion | ||
127 | Source: C:\imp_1.3\plds4.dll; DestDir: {app}; Flags: ignoreversion | ||
128 | Source: C:\imp_1.3\smime3.dll; DestDir: {app}; Flags: ignoreversion | ||
129 | Source: C:\imp_1.3\softokn3.dll; DestDir: {app}; Flags: ignoreversion | ||
130 | Source: C:\imp_1.3\ssl3.dll; DestDir: {app}; Flags: ignoreversion | ||
131 | Source: C:\imp_1.3\xpcom.dll; DestDir: {app}; Flags: ignoreversion | ||
132 | Source: C:\imp_1.3\xul.dll; DestDir: {app}; Flags: ignoreversion | ||
133 | Source: C:\imp_1.3\xvidcore.dll; DestDir: {app}; Flags: ignoreversion | ||
134 | Source: C:\imp_1.3\zlib1.dll; DestDir: {app}; Flags: ignoreversion | ||
135 | |||
136 | ; Voice files | ||
137 | Source: C:\imp_1.3\ortp.dll; DestDir: {app}; Flags: ignoreversion | ||
138 | Source: C:\imp_1.3\SLVoice.exe; DestDir: {app}; Flags: ignoreversion | ||
139 | Source: C:\imp_1.3\vivoxsdk.dll; DestDir: {app}; Flags: ignoreversion | ||
140 | Source: C:\imp_1.3\wrap_oal.dll; DestDir: {app}; Flags: ignoreversion | ||
141 | |||
142 | ; Old files we don't use anymore | ||
143 | ; Source: C:\imp_1.3\dronesettings.xml; DestDir: {app}; Flags: ignoreversion | ||
144 | ; Source: C:\imp_1.3\volume_settings.xml; DestDir: {app}; Flags: ignoreversion | ||
145 | ; Source: C:\imp_1.3\srtp.dll; DestDir: {app}; Flags: ignoreversion | ||
146 | ; Source: C:\imp_1.3\ssleay32.dll; DestDir: {app}; Flags: ignoreversion | ||
147 | ; Source: C:\imp_1.3\tntk.dll; DestDir: {app}; Flags: ignoreversion | ||
148 | ; Source: C:\imp_1.3\libeay32.dll; DestDir: {app}; Flags: ignoreversion | ||
149 | ; Source: C:\imp_1.3\lsl_guide.html; DestDir: {app}; Flags: ignoreversion | ||
150 | |||
151 | ; NOTE: Don't use "Flags: ignoreversion" on any shared system files | ||
152 | ;Source: C:\imp_1.3\msvcr71.dll; DestDir: {app}; Flags: ignoreversion; MinVersion: 0,6.01; Tasks: ; Languages: | ||
153 | |||
154 | [Registry] | ||
155 | Root: HKCR; Subkey: secondlife; ValueType: string; Flags: uninsdeletekey deletekey; Tasks: slurlassociate; ValueName: (default); ValueData: URL:Second Life | ||
156 | Root: HKCR; Subkey: secondlife; ValueType: string; Flags: uninsdeletekey deletekey; Tasks: slurlassociate; ValueName: URL Protocol | ||
157 | Root: HKCR; Subkey: secondlife\DefaultIcon; Flags: uninsdeletekey deletekey; ValueType: string; Tasks: slurlassociate; ValueData: {app}\imprudence.exe | ||
158 | Root: HKCR; Subkey: secondlife\shell\open\command; ValueType: expandsz; Flags: uninsdeletekey deletekey; Tasks: slurlassociate; ValueData: "{app}\imprudence.exe --settings settings_imprudence.xml -url ""%1"""; Languages: | ||
159 | ; Root: HKCU; Subkey: Environment; ValueType: string; ValueName: GST_PLUGIN_PATH; Flags: deletevalue uninsdeletevalue; ValueData: {app}\lib | ||
160 | ; Root: HKCU; Subkey: Environment; ValueType: expandsz; ValueName: PATH; ValueData: {app} | ||
161 | |||
162 | [Icons] | ||
163 | Name: {group}\{cm:UninstallProgram,Imprudence}; Filename: {uninstallexe} | ||
164 | Name: {commondesktop}\Imprudence; Filename: {app}\imprudence.exe; Tasks: desktopicon; Parameters: --settings settings_imprudence.xml; WorkingDir: {app}; IconIndex: 0 | ||
165 | Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\Imprudence; Filename: {app}\imprudence.exe; Tasks: quicklaunchicon; Parameters: --settings settings_imprudence.xml; WorkingDir: {app} | ||
166 | Name: {group}\Imprudence; Filename: {app}\imprudence.exe; WorkingDir: {app}; Comment: imprudence; IconIndex: 0; Parameters: --settings settings_imprudence.xml | ||
167 | |||
168 | [Run] | ||
169 | Filename: {app}\imprudence.exe; WorkingDir: {app}; Flags: nowait postinstall | ||
170 | Filename: {app}\imprudence.url; WorkingDir: {app}; Flags: nowait postinstall shellexec; Description: See what makes Imprudence different | ||
171 | |||
172 | [UninstallDelete] | ||
173 | Name: {userappdata}\Imprudence\user_settings\password.dat; Type: files; Languages: | ||
174 | Name: {userappdata}\Imprudence\user_settings\settings.xml; Type: files; Languages: | ||
175 | Name: {userappdata}\Imprudence\user_settings\settings_imprudence.xml; Type: files; Languages: | ||
176 | ; 1.2 and lower cache location: | ||
177 | Name: {userappdata}\Imprudence\cache; Type: filesandordirs | ||
178 | ; 1.3 and higher cache location: | ||
179 | Name: {localappdata}\Imprudence\cache; Type: filesandordirs | ||
180 | Name: {userappdata}\Imprudence\logs; Type: filesandordirs | ||
181 | Name: {userappdata}\Imprudence\browser_profile; Type: filesandordirs | ||
182 | Name: C:\Users\{username}\.gstreamer-0.10; Type: filesandordirs | ||
183 | Name: C:\Documents and Settings\{username}\.gstreamer-0.10; Type: filesandordirs | ||
184 | |||
185 | [InstallDelete] | ||
186 | ; Name: {app}\*.dll; Type: files; Tasks: ; Languages: | ||
187 | Name: {app}\lib\gstreamer-plugins\*; Type: filesandordirs; Tasks: ; Languages: | ||
188 | ; Name: {app}\skins\default\xui\*; Type: filesandordirs; Tasks: ; Languages: | ||
189 | ; Name: {app}\skins\silver\xui\*; Type: filesandordirs; Tasks: ; Languages: | ||
190 | Name: C:\Documents and Settings\{username}\.gstreamer-0.10\*; Type: filesandordirs | ||
191 | Name: C:\Users\{username}\.gstreamer-0.10\*; Type: filesandordirs | ||
192 | ; Breaks the browser if installing on top of 1.1: | ||
193 | Name: {app}\gksvggdiplus.dll; Type: files; Tasks: ; Languages: | ||
diff --git a/linden/indra/newview/installers/windows/imprudence_installer_script_experimental.iss b/linden/indra/newview/installers/windows/imprudence_installer_script_experimental.iss new file mode 100644 index 0000000..d89a074 --- /dev/null +++ b/linden/indra/newview/installers/windows/imprudence_installer_script_experimental.iss | |||
@@ -0,0 +1,263 @@ | |||
1 | ; Script generated by the Inno Setup Script Wizard. | ||
2 | ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! | ||
3 | |||
4 | [Setup] | ||
5 | ; NOTE: The value of AppId uniquely identifies this application. | ||
6 | ; Do not use the same AppId value in installers for other applications. | ||
7 | ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) | ||
8 | |||
9 | ; These will change | ||
10 | AppId={{1B3E68BC-13EB-4277-9439-CB5FF9259460} | ||
11 | AppName=Imprudence Viewer Experimental Release | ||
12 | AppVerName=Imprudence Viewer 1.4.0 Experimental 2011.03.20 | ||
13 | DefaultDirName={pf}\ImprudenceExperimental | ||
14 | DefaultGroupName=Imprudence Viewer Experimental Release | ||
15 | VersionInfoProductName=Imprudence Viewer Experimental Release | ||
16 | OutputBaseFilename=Imprudence-1.4.0-Experimental-2011.03.20-Setup | ||
17 | VersionInfoVersion=1.4.0 | ||
18 | VersionInfoTextVersion=1.4.0 | ||
19 | VersionInfoProductVersion=1.4.0 | ||
20 | VersionInfoCopyright=2011 | ||
21 | AppCopyright=2011 | ||
22 | |||
23 | ; These won't change | ||
24 | VersionInfoCompany=Imprudence | ||
25 | AppPublisher=The Imprudence Project | ||
26 | AppPublisherURL=http://kokuaviewer.org | ||
27 | AppSupportURL=http://kokuaviewer.org | ||
28 | AppUpdatesURL=http://kokuaviewer.org | ||
29 | AllowNoIcons=true | ||
30 | InfoAfterFile=..\windows\README.txt | ||
31 | OutputDir=C:\imprudence_installers | ||
32 | SetupIconFile=..\windows\imp_icon.ico | ||
33 | Compression=lzma2/ultra64 | ||
34 | InternalCompressLevel=ultra64 | ||
35 | SolidCompression=true | ||
36 | ;PrivilegesRequired=poweruser | ||
37 | AllowRootDirectory=true | ||
38 | WizardImageFile=..\windows\imprudence_installer_icon_left.bmp | ||
39 | WizardSmallImageFile=..\windows\imprudence_installer_icon_right.bmp | ||
40 | SetupLogging=true | ||
41 | |||
42 | [Languages] | ||
43 | Name: english; MessagesFile: compiler:Default.isl | ||
44 | |||
45 | [Tasks] | ||
46 | Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkedonce | ||
47 | Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: checkedonce | ||
48 | Name: slurlassociate; Description: Associate Imprudence with SLURLs; GroupDescription: Associations:; Languages: ; Flags: checkedonce | ||
49 | ; TODO: use scripting for something like this on uninstall: | ||
50 | ; Name: uninstallsettings; Description: Remove user settings; Flags: checkablealone; Languages: ; GroupDescription: Uninstall: | ||
51 | |||
52 | [Files] | ||
53 | Source: ..\..\..\build-vc80\newview\release\package\imprudence.exe; DestDir: {app}; Flags: ignoreversion | ||
54 | Source: ..\..\..\build-vc80\newview\release\package\character\*; DestDir: {app}\character; Flags: ignoreversion recursesubdirs createallsubdirs | ||
55 | Source: ..\..\..\build-vc80\newview\release\package\fonts\*; DestDir: {app}\fonts; Flags: ignoreversion recursesubdirs createallsubdirs | ||
56 | Source: ..\..\..\build-vc80\newview\release\package\app_settings\*; DestDir: {app}\app_settings; Flags: ignoreversion recursesubdirs createallsubdirs | ||
57 | Source: ..\..\..\build-vc80\newview\release\package\skins\*; DestDir: {app}\skins; Flags: ignoreversion recursesubdirs createallsubdirs | ||
58 | Source: ..\..\..\build-vc80\newview\release\package\doc\*; DestDir: {app}\doc; Flags: ignoreversion recursesubdirs createallsubdirs | ||
59 | Source: ..\..\..\build-vc80\newview\release\package\llplugin\*; DestDir: {app}\llplugin; Flags: ignoreversion recursesubdirs createallsubdirs | ||
60 | Source: ..\..\..\build-vc80\newview\release\package\alut.dll; DestDir: {app}; Flags: ignoreversion | ||
61 | Source: ..\..\..\build-vc80\newview\release\package\ChangeLog.txt; DestDir: {app}; Flags: ignoreversion | ||
62 | Source: ..\..\..\build-vc80\newview\release\package\dbghelp.dll; DestDir: {app}; Flags: ignoreversion | ||
63 | Source: ..\..\..\build-vc80\newview\release\package\featuretable.txt; DestDir: {app}; Flags: ignoreversion | ||
64 | Source: ..\..\..\build-vc80\newview\release\package\gpu_table.txt; DestDir: {app}; Flags: ignoreversion | ||
65 | Source: ..\..\..\build-vc80\newview\release\package\imprudence.url; DestDir: {app}; Flags: ignoreversion | ||
66 | Source: ..\..\..\build-vc80\newview\release\package\libapr-1.dll; DestDir: {app}; Flags: ignoreversion | ||
67 | Source: ..\..\..\build-vc80\newview\release\package\libapriconv-1.dll; DestDir: {app}; Flags: ignoreversion | ||
68 | Source: ..\..\..\build-vc80\newview\release\package\libaprutil-1.dll; DestDir: {app}; Flags: ignoreversion | ||
69 | Source: ..\..\..\build-vc80\newview\release\package\libhunspell.dll; DestDir: {app}; Flags: ignoreversion | ||
70 | Source: ..\..\..\build-vc80\newview\release\package\llcommon.dll; DestDir: {app}; Flags: ignoreversion | ||
71 | Source: ..\..\..\build-vc80\newview\release\package\llkdu.dll.2.config; DestDir: {app}; Flags: ignoreversion | ||
72 | Source: ..\..\..\build-vc80\newview\release\package\openal32.dll; DestDir: {app}; Flags: ignoreversion | ||
73 | Source: ..\..\..\build-vc80\newview\release\package\OpenJPEG.dll; DestDir: {app}; Flags: ignoreversion | ||
74 | Source: ..\..\..\build-vc80\newview\release\package\SLPlugin.exe; DestDir: {app}; Flags: ignoreversion | ||
75 | |||
76 | ; Gstreamer-specific files below | ||
77 | Source: ..\..\..\build-vc80\newview\release\package\lib\*; DestDir: {app}\lib; Flags: ignoreversion recursesubdirs createallsubdirs | ||
78 | Source: ..\..\..\build-vc80\newview\release\package\avcodec-gpl-52.dll; DestDir: {app}; Flags: ignoreversion | ||
79 | Source: ..\..\..\build-vc80\newview\release\package\avdevice-gpl-52.dll; DestDir: {app}; Flags: ignoreversion | ||
80 | Source: ..\..\..\build-vc80\newview\release\package\avfilter-gpl-1.dll; DestDir: {app}; Flags: ignoreversion | ||
81 | Source: ..\..\..\build-vc80\newview\release\package\avformat-gpl-52.dll; DestDir: {app}; Flags: ignoreversion | ||
82 | Source: ..\..\..\build-vc80\newview\release\package\avutil-gpl-50.dll; DestDir: {app}; Flags: ignoreversion | ||
83 | Source: ..\..\..\build-vc80\newview\release\package\iconv.dll; DestDir: {app}; Flags: ignoreversion | ||
84 | Source: ..\..\..\build-vc80\newview\release\package\liba52-0.dll; DestDir: {app}; Flags: ignoreversion | ||
85 | Source: ..\..\..\build-vc80\newview\release\package\libbz2.dll; DestDir: {app}; Flags: ignoreversion | ||
86 | Source: ..\..\..\build-vc80\newview\release\package\libcelt-0.dll; DestDir: {app}; Flags: ignoreversion | ||
87 | Source: ..\..\..\build-vc80\newview\release\package\libdca-0.dll; DestDir: {app}; Flags: ignoreversion | ||
88 | Source: ..\..\..\build-vc80\newview\release\package\libexpat-1.dll; DestDir: {app}; Flags: ignoreversion | ||
89 | Source: ..\..\..\build-vc80\newview\release\package\libfaad-2.dll; DestDir: {app}; Flags: ignoreversion | ||
90 | Source: ..\..\..\build-vc80\newview\release\package\libFLAC-8.dll; DestDir: {app}; Flags: ignoreversion | ||
91 | Source: ..\..\..\build-vc80\newview\release\package\libgcrypt-11.dll; DestDir: {app}; Flags: ignoreversion | ||
92 | Source: ..\..\..\build-vc80\newview\release\package\libgio-2.0-0.dll; DestDir: {app}; Flags: ignoreversion | ||
93 | Source: ..\..\..\build-vc80\newview\release\package\libglib-2.0-0.dll; DestDir: {app}; Flags: ignoreversion | ||
94 | Source: ..\..\..\build-vc80\newview\release\package\libgmodule-2.0-0.dll; DestDir: {app}; Flags: ignoreversion | ||
95 | Source: ..\..\..\build-vc80\newview\release\package\libgnutls-26.dll; DestDir: {app}; Flags: ignoreversion | ||
96 | Source: ..\..\..\build-vc80\newview\release\package\libgobject-2.0-0.dll; DestDir: {app}; Flags: ignoreversion | ||
97 | Source: ..\..\..\build-vc80\newview\release\package\libgpg-error-0.dll; DestDir: {app}; Flags: ignoreversion | ||
98 | Source: ..\..\..\build-vc80\newview\release\package\libgstapp-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
99 | Source: ..\..\..\build-vc80\newview\release\package\libgstaudio-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
100 | Source: ..\..\..\build-vc80\newview\release\package\libgstbase-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
101 | Source: ..\..\..\build-vc80\newview\release\package\libgstcontroller-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
102 | Source: ..\..\..\build-vc80\newview\release\package\libgstdataprotocol-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
103 | Source: ..\..\..\build-vc80\newview\release\package\libgstfft-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
104 | Source: ..\..\..\build-vc80\newview\release\package\libgstinterfaces-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
105 | Source: ..\..\..\build-vc80\newview\release\package\libgstnet-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
106 | Source: ..\..\..\build-vc80\newview\release\package\libgstnetbuffer-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
107 | Source: ..\..\..\build-vc80\newview\release\package\libgstpbutils-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
108 | Source: ..\..\..\build-vc80\newview\release\package\libgstphotography-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
109 | Source: ..\..\..\build-vc80\newview\release\package\libgstreamer-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
110 | Source: ..\..\..\build-vc80\newview\release\package\libgstriff-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
111 | Source: ..\..\..\build-vc80\newview\release\package\libgstrtp-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
112 | Source: ..\..\..\build-vc80\newview\release\package\libgstrtsp-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
113 | Source: ..\..\..\build-vc80\newview\release\package\libgstsdp-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
114 | Source: ..\..\..\build-vc80\newview\release\package\libgstsignalprocessor-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
115 | Source: ..\..\..\build-vc80\newview\release\package\libgsttag-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
116 | Source: ..\..\..\build-vc80\newview\release\package\libgstvideo-0.10.dll; DestDir: {app}; Flags: ignoreversion | ||
117 | Source: ..\..\..\build-vc80\newview\release\package\libgthread-2.0-0.dll; DestDir: {app}; Flags: ignoreversion | ||
118 | Source: ..\..\..\build-vc80\newview\release\package\libmms-0.dll; DestDir: {app}; Flags: ignoreversion | ||
119 | Source: ..\..\..\build-vc80\newview\release\package\libmpeg2-0.dll; DestDir: {app}; Flags: ignoreversion | ||
120 | Source: ..\..\..\build-vc80\newview\release\package\libneon-27.dll; DestDir: {app}; Flags: ignoreversion | ||
121 | Source: ..\..\..\build-vc80\newview\release\package\libogg-0.dll; DestDir: {app}; Flags: ignoreversion | ||
122 | Source: ..\..\..\build-vc80\newview\release\package\liboil-0.3-0.dll; DestDir: {app}; Flags: ignoreversion | ||
123 | Source: ..\..\..\build-vc80\newview\release\package\libsoup-2.4-1.dll; DestDir: {app}; Flags: ignoreversion | ||
124 | Source: ..\..\..\build-vc80\newview\release\package\libtasn1-3.dll; DestDir: {app}; Flags: ignoreversion | ||
125 | Source: ..\..\..\build-vc80\newview\release\package\libtheora-0.dll; DestDir: {app}; Flags: ignoreversion | ||
126 | Source: ..\..\..\build-vc80\newview\release\package\libtheoradec-1.dll; DestDir: {app}; Flags: ignoreversion | ||
127 | Source: ..\..\..\build-vc80\newview\release\package\libvorbis-0.dll; DestDir: {app}; Flags: ignoreversion | ||
128 | Source: ..\..\..\build-vc80\newview\release\package\libvorbisenc-2.dll; DestDir: {app}; Flags: ignoreversion | ||
129 | Source: ..\..\..\build-vc80\newview\release\package\libvorbisfile-3.dll; DestDir: {app}; Flags: ignoreversion | ||
130 | Source: ..\..\..\build-vc80\newview\release\package\libwavpack-1.dll; DestDir: {app}; Flags: ignoreversion | ||
131 | Source: ..\..\..\build-vc80\newview\release\package\libx264-67.dll; DestDir: {app}; Flags: ignoreversion | ||
132 | Source: ..\..\..\build-vc80\newview\release\package\libxml2-2.dll; DestDir: {app}; Flags: ignoreversion | ||
133 | Source: ..\..\..\build-vc80\newview\release\package\libxml2.dll; DestDir: {app}; Flags: ignoreversion | ||
134 | Source: ..\..\..\build-vc80\newview\release\package\SDL.dll; DestDir: {app}; Flags: ignoreversion | ||
135 | Source: ..\..\..\build-vc80\newview\release\package\xvidcore.dll; DestDir: {app}; Flags: ignoreversion | ||
136 | Source: ..\..\..\build-vc80\newview\release\package\z.dll; DestDir: {app}; Flags: ignoreversion | ||
137 | |||
138 | ; Voice files | ||
139 | Source: ..\..\..\build-vc80\newview\release\package\ortp.dll; DestDir: {app}; Flags: ignoreversion | ||
140 | Source: ..\..\..\build-vc80\newview\release\package\SLVoice.exe; DestDir: {app}; Flags: ignoreversion | ||
141 | Source: ..\..\..\build-vc80\newview\release\package\vivoxsdk.dll; DestDir: {app}; Flags: ignoreversion | ||
142 | Source: ..\..\..\build-vc80\newview\release\package\wrap_oal.dll; DestDir: {app}; Flags: ignoreversion | ||
143 | |||
144 | ; VC++ 2005 x86 redist | ||
145 | Source: ..\windows\vcredist_x86_VS2005.exe; DestDir: {tmp}; DestName: vcredist_x86_2005.exe | ||
146 | |||
147 | ; Old files we don't use anymore: | ||
148 | ; Source: ..\..\..\build-vc80\newview\release\package\dronesettings.xml; DestDir: {app}; Flags: ignoreversion | ||
149 | ; Source: ..\..\..\build-vc80\newview\release\package\volume_settings.xml; DestDir: {app}; Flags: ignoreversion | ||
150 | ; Source: ..\..\..\build-vc80\newview\release\package\srtp.dll; DestDir: {app}; Flags: ignoreversion | ||
151 | ; Source: ..\..\..\build-vc80\newview\release\package\ssleay32.dll; DestDir: {app}; Flags: ignoreversion | ||
152 | ; Source: ..\..\..\build-vc80\newview\release\package\tntk.dll; DestDir: {app}; Flags: ignoreversion | ||
153 | ; Source: ..\..\..\build-vc80\newview\release\package\libeay32.dll; DestDir: {app}; Flags: ignoreversion | ||
154 | ; Source: ..\..\..\build-vc80\newview\release\package\lsl_guide.html; DestDir: {app}; Flags: ignoreversion | ||
155 | |||
156 | ; NOTE: Don't use "Flags: ignoreversion" on any shared system files | ||
157 | ;Source: ..\..\..\build-vc80\newview\release\package\msvcr71.dll; DestDir: {app}; Flags: ignoreversion; MinVersion: 0,6.01; Tasks: ; Languages: | ||
158 | |||
159 | [Icons] | ||
160 | Name: {group}\{cm:UninstallProgram,Imprudence Experimental}; Filename: {uninstallexe} | ||
161 | Name: {commondesktop}\Imprudence Experimental; Filename: {app}\imprudence.exe; Tasks: desktopicon; WorkingDir: {app}; IconIndex: 0 | ||
162 | Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\Imprudence Experimental; Filename: {app}\imprudence.exe; Tasks: quicklaunchicon; WorkingDir: {app} | ||
163 | Name: {group}\Imprudence Experimental; Filename: {app}\imprudence.exe; WorkingDir: {app}; Comment: imprudence; IconIndex: 0 | ||
164 | |||
165 | [Run] | ||
166 | Filename: {app}\imprudence.exe; WorkingDir: {app}; Flags: nowait postinstall | ||
167 | Filename: {app}\imprudence.url; WorkingDir: {app}; Flags: nowait postinstall shellexec; Description: See what makes Imprudence different | ||
168 | Filename: {tmp}\vcredist_x86_2005.exe; Parameters: "/q:a /c:""VCREDI~1.EXE /q:a /c:""""msiexec /i vcredist.msi /qn"""" """; Flags: runhidden | ||
169 | |||
170 | [UninstallDelete] | ||
171 | Name: {userappdata}\Imprudence\user_settings\password.dat; Type: files; Languages: | ||
172 | Name: {userappdata}\Imprudence\user_settings\settings.xml; Type: files; Languages: | ||
173 | Name: {userappdata}\Imprudence\user_settings\settings_imprudence_experimental.xml; Type: files; Languages: | ||
174 | ; 1.2 and lower cache location: | ||
175 | Name: {userappdata}\Imprudence\cache; Type: filesandordirs | ||
176 | ; 1.3 and higher cache location: | ||
177 | Name: {localappdata}\Imprudence\cache; Type: filesandordirs | ||
178 | Name: {userappdata}\Imprudence\logs; Type: filesandordirs | ||
179 | Name: {userappdata}\Imprudence\browser_profile; Type: filesandordirs | ||
180 | Name: C:\Users\{username}\.gstreamer-0.10; Type: filesandordirs | ||
181 | Name: C:\Documents and Settings\{username}\.gstreamer-0.10; Type: filesandordirs | ||
182 | |||
183 | [InstallDelete] | ||
184 | ; Name: {app}\*.dll; Type: files; Tasks: ; Languages: | ||
185 | Name: {app}\lib\gstreamer-plugins\*; Type: filesandordirs; Tasks: ; Languages: | ||
186 | ; Name: {app}\skins\default\xui\*; Type: filesandordirs; Tasks: ; Languages: | ||
187 | ; Name: {app}\skins\silver\xui\*; Type: filesandordirs; Tasks: ; Languages: | ||
188 | Name: C:\Documents and Settings\{username}\.gstreamer-0.10\*; Type: filesandordirs | ||
189 | Name: C:\Users\{username}\.gstreamer-0.10\*; Type: filesandordirs | ||
190 | ; Breaks the browser if installing on top of 1.1: | ||
191 | Name: {app}\gksvggdiplus.dll; Type: files; Tasks: ; Languages: | ||
192 | |||
193 | ; Pre-plugin files: | ||
194 | Name: {app}\charset.dll; Type: files; Tasks: ; Languages: | ||
195 | Name: {app}\freebl3.dll; Type: files; Tasks: ; Languages: | ||
196 | Name: {app}\glew32.dll; Type: files; Tasks: ; Languages: | ||
197 | Name: {app}\iconv.dll; Type: files; Tasks: ; Languages: | ||
198 | Name: {app}\intl.dll; Type: files; Tasks: ; Languages: | ||
199 | Name: {app}\js3250.dll; Type: files; Tasks: ; Languages: | ||
200 | Name: {app}\libcairo-2.dll; Type: files; Tasks: ; Languages: | ||
201 | Name: {app}\libfaad-2.dll; Type: files; Tasks: ; Languages: | ||
202 | Name: {app}\libgcrypt-11.dll; Type: files; Tasks: ; Languages: | ||
203 | Name: {app}\libgio-2.0-0.dll; Type: files; Tasks: ; Languages: | ||
204 | Name: {app}\libglib-2.0-0.dll; Type: files; Tasks: ; Languages: | ||
205 | Name: {app}\libgmodule-2.0-0.dll; Type: files; Tasks: ; Languages: | ||
206 | Name: {app}\libgnutls-26.dll; Type: files; Tasks: ; Languages: | ||
207 | Name: {app}\libgobject-2.0-0.dll; Type: files; Tasks: ; Languages: | ||
208 | Name: {app}\libgpg-error-0.dll; Type: files; Tasks: ; Languages: | ||
209 | Name: {app}\libgstapp.dll; Type: files; Tasks: ; Languages: | ||
210 | Name: {app}\libgstaudio.dll; Type: files; Tasks: ; Languages: | ||
211 | Name: {app}\libgstaudio-0.10.dll; Type: files; Tasks: ; Languages: | ||
212 | Name: {app}\libgstbase-0.10.dll; Type: files; Tasks: ; Languages: | ||
213 | Name: {app}\libgstcdda.dll; Type: files; Tasks: ; Languages: | ||
214 | Name: {app}\libgstcontroller-0.10.dll; Type: files; Tasks: ; Languages: | ||
215 | Name: {app}\libgstdataprotocol-0.10.dll; Type: files; Tasks: ; Languages: | ||
216 | Name: {app}\libgstdshow.dll; Type: files; Tasks: ; Languages: | ||
217 | Name: {app}\libgstfft.dll; Type: files; Tasks: ; Languages: | ||
218 | Name: {app}\libgstinterfaces.dll; Type: files; Tasks: ; Languages: | ||
219 | Name: {app}\libgstnet-0.10.dll; Type: files; Tasks: ; Languages: | ||
220 | Name: {app}\libgstnetbuffer.dll; Type: files; Tasks: ; Languages: | ||
221 | Name: {app}\libgstpbutils.dll; Type: files; Tasks: ; Languages: | ||
222 | Name: {app}\libgstreamer-0.10.dll; Type: files; Tasks: ; Languages: | ||
223 | Name: {app}\libgstriff.dll; Type: files; Tasks: ; Languages: | ||
224 | Name: {app}\libgstrtp.dll; Type: files; Tasks: ; Languages: | ||
225 | Name: {app}\libgstrtsp.dll; Type: files; Tasks: ; Languages: | ||
226 | Name: {app}\libgstsdp.dll; Type: files; Tasks: ; Languages: | ||
227 | Name: {app}\libgsttag.dll; Type: files; Tasks: ; Languages: | ||
228 | Name: {app}\libgstvideo.dll; Type: files; Tasks: ; Languages: | ||
229 | Name: {app}\libgthread-2.0-0.dll; Type: files; Tasks: ; Languages: | ||
230 | Name: {app}\libjpeg.dll; Type: files; Tasks: ; Languages: | ||
231 | Name: {app}\libmp3lame-0.dll; Type: files; Tasks: ; Languages: | ||
232 | Name: {app}\libneon-27.dll; Type: files; Tasks: ; Languages: | ||
233 | Name: {app}\libogg-0.dll; Type: files; Tasks: ; Languages: | ||
234 | Name: {app}\liboil-0.3-0.dll; Type: files; Tasks: ; Languages: | ||
235 | Name: {app}\libopenjpeg-2.dll; Type: files; Tasks: ; Languages: | ||
236 | Name: {app}\libpng12-0.dll; Type: files; Tasks: ; Languages: | ||
237 | Name: {app}\libschroedinger-1.0-0.dll; Type: files; Tasks: ; Languages: | ||
238 | Name: {app}\libspeex-1.dll; Type: files; Tasks: ; Languages: | ||
239 | Name: {app}\libtheora-0.dll; Type: files; Tasks: ; Languages: | ||
240 | Name: {app}\libvorbis-0.dll; Type: files; Tasks: ; Languages: | ||
241 | Name: {app}\libvorbisenc-2.dll; Type: files; Tasks: ; Languages: | ||
242 | Name: {app}\libxml2-2.dll; Type: files; Tasks: ; Languages: | ||
243 | Name: {app}\libxml2.dll; Type: files; Tasks: ; Languages: | ||
244 | Name: {app}\nspr4.dll; Type: files; Tasks: ; Languages: | ||
245 | Name: {app}\nss3.dll; Type: files; Tasks: ; Languages: | ||
246 | Name: {app}\nssckbi.dll; Type: files; Tasks: ; Languages: | ||
247 | Name: {app}\plc4.dll; Type: files; Tasks: ; Languages: | ||
248 | Name: {app}\plds4.dll; Type: files; Tasks: ; Languages: | ||
249 | Name: {app}\RELEASE_NOTES.txt; Type: files; Tasks: ; Languages: | ||
250 | Name: {app}\smime3.dll; Type: files; Tasks: ; Languages: | ||
251 | Name: {app}\softokn3.dll; Type: files; Tasks: ; Languages: | ||
252 | Name: {app}\ssl3.dll; Type: files; Tasks: ; Languages: | ||
253 | Name: {app}\xpcom.dll; Type: files; Tasks: ; Languages: | ||
254 | Name: {app}\xul.dll; Type: files; Tasks: ; Languages: | ||
255 | Name: {app}\xvidcore.dll; Type: files; Tasks: ; Languages: | ||
256 | Name: {app}\zlib1.dll; Type: files; Tasks: ; Languages: | ||
257 | |||
258 | ; We don't distribute the CRT like this anymore; kill old files | ||
259 | Name: {app}\SLPlugin.exe.config; Type: files; Tasks: ; Languages: | ||
260 | Name: {app}\Microsoft.VC80.CRT.manifest; Type: files; Tasks: ; Languages: | ||
261 | Name: {app}\msvcp80.dll; Type: files; Tasks: ; Languages: | ||
262 | Name: {app}\msvcr80.dll; Type: files; Tasks: ; Languages: | ||
263 | Name: {app}\imprudence.exe.config; Type: files; Tasks: ; Languages: | ||
diff --git a/linden/indra/newview/llconsole.cpp b/linden/indra/newview/llconsole.cpp index 4b3bac3..e2f620a 100644 --- a/linden/indra/newview/llconsole.cpp +++ b/linden/indra/newview/llconsole.cpp | |||
@@ -117,7 +117,7 @@ void LLConsole::setFontSize(S32 size_index) | |||
117 | } | 117 | } |
118 | else if (1 == size_index) | 118 | else if (1 == size_index) |
119 | { | 119 | { |
120 | mFont = LLFontGL::getFontSansSerifBig(); | 120 | mFont = LLFontGL::getFontSansSerifLarge(); |
121 | } | 121 | } |
122 | else | 122 | else |
123 | { | 123 | { |
diff --git a/linden/indra/newview/llfloaterpreference.cpp b/linden/indra/newview/llfloaterpreference.cpp index 46e6104..40f18e8 100644 --- a/linden/indra/newview/llfloaterpreference.cpp +++ b/linden/indra/newview/llfloaterpreference.cpp | |||
@@ -369,6 +369,7 @@ void LLPreferenceCore::setPersonalInfo(const std::string& visibility, bool im_vi | |||
369 | void LLPreferenceCore::updateIsLoggedIn(bool enable) | 369 | void LLPreferenceCore::updateIsLoggedIn(bool enable) |
370 | { | 370 | { |
371 | mPrefsIM->preparePerAccountPrefs(enable); | 371 | mPrefsIM->preparePerAccountPrefs(enable); |
372 | mAudioPanel->updateIsLoggedIn(enable); | ||
372 | } | 373 | } |
373 | 374 | ||
374 | void LLPreferenceCore::refreshEnabledGraphics() | 375 | void LLPreferenceCore::refreshEnabledGraphics() |
@@ -465,6 +466,25 @@ void LLFloaterPreference::show(void*) | |||
465 | } | 466 | } |
466 | 467 | ||
467 | 468 | ||
469 | // static | ||
470 | void LLFloaterPreference::onClickResetPrefs(void* user_data) | ||
471 | { | ||
472 | LLFloaterPreference* self = (LLFloaterPreference*)user_data; | ||
473 | LLNotifications::instance().add("ConfirmResetAllPreferences", LLSD(), LLSD(), boost::bind(callbackReset, _1, _2, self)); | ||
474 | } | ||
475 | |||
476 | // static | ||
477 | bool LLFloaterPreference::callbackReset(const LLSD& notification, const LLSD& response, LLFloaterPreference *self) | ||
478 | { | ||
479 | S32 option = LLNotification::getSelectedOption(notification, response); | ||
480 | if ( option == 0 ) | ||
481 | { | ||
482 | gSavedSettings.setBOOL("ResetAllPreferences", TRUE); | ||
483 | } | ||
484 | return false; | ||
485 | } | ||
486 | |||
487 | |||
468 | // static | 488 | // static |
469 | void LLFloaterPreference::onBtnOK( void* userdata ) | 489 | void LLFloaterPreference::onBtnOK( void* userdata ) |
470 | { | 490 | { |
diff --git a/linden/indra/newview/llfloaterpreference.h b/linden/indra/newview/llfloaterpreference.h index 931c8b6..d5eccbc 100644 --- a/linden/indra/newview/llfloaterpreference.h +++ b/linden/indra/newview/llfloaterpreference.h | |||
@@ -133,6 +133,9 @@ protected: | |||
133 | static void onBtnCancel(void*); | 133 | static void onBtnCancel(void*); |
134 | static void onBtnApply(void*); | 134 | static void onBtnApply(void*); |
135 | 135 | ||
136 | static void onClickResetPrefs(void* user_data); | ||
137 | static bool callbackReset(const LLSD& notification, const LLSD& response, LLFloaterPreference* self); | ||
138 | |||
136 | static LLFloaterPreference* sInstance; | 139 | static LLFloaterPreference* sInstance; |
137 | }; | 140 | }; |
138 | 141 | ||
diff --git a/linden/indra/newview/llfloatertest.cpp b/linden/indra/newview/llfloatertest.cpp index e9aada3..1934dcc 100644 --- a/linden/indra/newview/llfloatertest.cpp +++ b/linden/indra/newview/llfloatertest.cpp | |||
@@ -228,7 +228,9 @@ LLFloaterTestImpl::LLFloaterTestImpl() | |||
228 | combo = new LLComboBox(std::string("combo"), | 228 | combo = new LLComboBox(std::string("combo"), |
229 | LLRect(LEFT, y, LEFT+100, y-LLCOMBOBOX_HEIGHT), | 229 | LLRect(LEFT, y, LEFT+100, y-LLCOMBOBOX_HEIGHT), |
230 | std::string("Combobox Label"), | 230 | std::string("Combobox Label"), |
231 | onCommitCombo, this); | 231 | NULL, |
232 | onCommitCombo, | ||
233 | this); | ||
232 | combo->add(std::string("first item")); | 234 | combo->add(std::string("first item")); |
233 | combo->add(std::string("second item")); | 235 | combo->add(std::string("second item")); |
234 | combo->add(std::string("should go to the top"), ADD_TOP); | 236 | combo->add(std::string("should go to the top"), ADD_TOP); |
diff --git a/linden/indra/newview/llgroupnotify.cpp b/linden/indra/newview/llgroupnotify.cpp index 8e98cbc..81e6c21 100644 --- a/linden/indra/newview/llgroupnotify.cpp +++ b/linden/indra/newview/llgroupnotify.cpp | |||
@@ -186,7 +186,7 @@ LLGroupNotifyBox::LLGroupNotifyBox(const std::string& subject, | |||
186 | LLFontGL::getFontSansSerif(), | 186 | LLFontGL::getFontSansSerif(), |
187 | FALSE); | 187 | FALSE); |
188 | 188 | ||
189 | static const LLStyleSP headerstyle(new LLStyle(true,LLColor4::black,"SansSerifBig")); | 189 | static const LLStyleSP headerstyle(new LLStyle(true,LLColor4::black,"SansSerifLarge")); |
190 | static const LLStyleSP datestyle(new LLStyle(true,LLColor4::black,"serif")); | 190 | static const LLStyleSP datestyle(new LLStyle(true,LLColor4::black,"serif")); |
191 | 191 | ||
192 | text->appendStyledText(subject + "\n",false,false,headerstyle); | 192 | text->appendStyledText(subject + "\n",false,false,headerstyle); |
diff --git a/linden/indra/newview/llloginhandler.cpp b/linden/indra/newview/llloginhandler.cpp index 30b05ef..c35ba04 100644 --- a/linden/indra/newview/llloginhandler.cpp +++ b/linden/indra/newview/llloginhandler.cpp | |||
@@ -35,6 +35,7 @@ | |||
35 | #include "llloginhandler.h" | 35 | #include "llloginhandler.h" |
36 | 36 | ||
37 | // viewer includes | 37 | // viewer includes |
38 | #include "hippogridmanager.h" | ||
38 | #include "llpanellogin.h" // save_password_to_disk() | 39 | #include "llpanellogin.h" // save_password_to_disk() |
39 | #include "llstartup.h" // getStartupState() | 40 | #include "llstartup.h" // getStartupState() |
40 | #include "llurlsimstring.h" | 41 | #include "llurlsimstring.h" |
@@ -141,10 +142,27 @@ bool LLLoginHandler::handle(const LLSD& tokens, | |||
141 | 142 | ||
142 | if (LLStartUp::getStartupState() < STATE_LOGIN_CLEANUP) //on splash page | 143 | if (LLStartUp::getStartupState() < STATE_LOGIN_CLEANUP) //on splash page |
143 | { | 144 | { |
145 | // if we ever support saving names based on grid, we'll have to support saving usernames too -- MC | ||
146 | LLPanelLogin::loadLoginForm(); | ||
147 | |||
144 | if (!mFirstName.empty() || !mLastName.empty()) | 148 | if (!mFirstName.empty() || !mLastName.empty()) |
145 | { | 149 | { |
146 | // Fill in the name, and maybe the password | 150 | // Fill in the name, and maybe the password |
147 | LLPanelLogin::setFields(mFirstName, mLastName, password); | 151 | if (gHippoGridManager && gHippoGridManager->getCurrentGrid()->isUsernameCompat()) |
152 | { | ||
153 | if (mLastName == "resident" || mLastName == "Resident") | ||
154 | { | ||
155 | LLPanelLogin::setFields(mFirstName, password); | ||
156 | } | ||
157 | else | ||
158 | { | ||
159 | LLPanelLogin::setFields(mFirstName+"."+ mLastName, password); | ||
160 | } | ||
161 | } | ||
162 | else | ||
163 | { | ||
164 | LLPanelLogin::setFields(mFirstName, mLastName, password); | ||
165 | } | ||
148 | } | 166 | } |
149 | 167 | ||
150 | if (mWebLoginKey.isNull()) | 168 | if (mWebLoginKey.isNull()) |
diff --git a/linden/indra/newview/llmediaremotectrl.cpp b/linden/indra/newview/llmediaremotectrl.cpp index 8186293..2f6dbdf 100644 --- a/linden/indra/newview/llmediaremotectrl.cpp +++ b/linden/indra/newview/llmediaremotectrl.cpp | |||
@@ -172,7 +172,7 @@ void LLMediaRemoteCtrl::enableMediaButtons() | |||
172 | { | 172 | { |
173 | // Set the tooltip | 173 | // Set the tooltip |
174 | // Put this text into xui file | 174 | // Put this text into xui file |
175 | media_url = parcel->getObscureMedia() ? mControls->getString("media_hidden_label") : parcel->getMediaURL(); | 175 | media_url = parcel->getMediaURL(); |
176 | media_type = parcel->getMediaType(); | 176 | media_type = parcel->getMediaType(); |
177 | 177 | ||
178 | play_media_enabled = true; | 178 | play_media_enabled = true; |
diff --git a/linden/indra/newview/llnamelistctrl.cpp b/linden/indra/newview/llnamelistctrl.cpp index e30c129..935e6ac 100644 --- a/linden/indra/newview/llnamelistctrl.cpp +++ b/linden/indra/newview/llnamelistctrl.cpp | |||
@@ -54,7 +54,7 @@ LLNameListCtrl::LLNameListCtrl(const std::string& name, | |||
54 | BOOL draw_border, | 54 | BOOL draw_border, |
55 | S32 name_column_index, | 55 | S32 name_column_index, |
56 | const std::string& tooltip) | 56 | const std::string& tooltip) |
57 | : LLScrollListCtrl(name, rect, cb, userdata, allow_multiple_selection, | 57 | : LLScrollListCtrl(name, rect, NULL, cb, userdata, allow_multiple_selection, |
58 | draw_border), | 58 | draw_border), |
59 | mNameColumnIndex(name_column_index), | 59 | mNameColumnIndex(name_column_index), |
60 | mAllowCallingCardDrop(FALSE), | 60 | mAllowCallingCardDrop(FALSE), |
diff --git a/linden/indra/newview/llpanelaudioprefs.cpp b/linden/indra/newview/llpanelaudioprefs.cpp index 426f85e..e1ffe0d 100644 --- a/linden/indra/newview/llpanelaudioprefs.cpp +++ b/linden/indra/newview/llpanelaudioprefs.cpp | |||
@@ -55,12 +55,14 @@ | |||
55 | #include "llslider.h" | 55 | #include "llslider.h" |
56 | #include "llsliderctrl.h" | 56 | #include "llsliderctrl.h" |
57 | #include "llspinctrl.h" | 57 | #include "llspinctrl.h" |
58 | #include "llstartup.h" | ||
58 | #include "lltextbox.h" | 59 | #include "lltextbox.h" |
59 | #include "llui.h" | 60 | #include "llui.h" |
60 | #include "llviewerparcelmgr.h" | 61 | #include "llviewerparcelmgr.h" |
61 | #include "lluictrlfactory.h" | 62 | #include "lluictrlfactory.h" |
62 | #include "llviewerwindow.h" | 63 | #include "llviewerwindow.h" |
63 | #include "llviewercontrol.h" | 64 | #include "llviewercontrol.h" |
65 | #include "slfloatermediafilter.h" | ||
64 | 66 | ||
65 | #include "hippogridmanager.h" | 67 | #include "hippogridmanager.h" |
66 | 68 | ||
@@ -92,6 +94,8 @@ BOOL LLPanelAudioPrefs::postBuild() | |||
92 | refreshValues(); // initialize member data from saved settings | 94 | refreshValues(); // initialize member data from saved settings |
93 | childSetLabelArg("L$ Change Threshold", "[CURRENCY]", gHippoGridManager->getConnectedGrid()->getCurrencySymbol()); | 95 | childSetLabelArg("L$ Change Threshold", "[CURRENCY]", gHippoGridManager->getConnectedGrid()->getCurrencySymbol()); |
94 | childSetValue("mute_wind_check", !gSavedSettings.getBOOL("MuteWind")); | 96 | childSetValue("mute_wind_check", !gSavedSettings.getBOOL("MuteWind")); |
97 | childSetAction("show_media_filter", onShowMediaFilter, this); | ||
98 | updateIsLoggedIn(LLStartUp::isLoggedIn()); | ||
95 | 99 | ||
96 | return TRUE; | 100 | return TRUE; |
97 | } | 101 | } |
@@ -112,7 +116,8 @@ void LLPanelAudioPrefs::refreshValues() | |||
112 | 116 | ||
113 | mPreviousStreamingMusic = gSavedSettings.getBOOL("AudioStreamingMusic"); | 117 | mPreviousStreamingMusic = gSavedSettings.getBOOL("AudioStreamingMusic"); |
114 | mPreviousStreamingVideo = gSavedSettings.getBOOL("AudioStreamingVideo"); | 118 | mPreviousStreamingVideo = gSavedSettings.getBOOL("AudioStreamingVideo"); |
115 | 119 | mPreviousHelperWidget = gSavedSettings.getBOOL("MediaOnAPrimUI"); | |
120 | mPreviousEnableMediaFilter = gSavedSettings.getBOOL("MediaEnableFilter"); | ||
116 | mPreviousMuteAudio = gSavedSettings.getBOOL("MuteAudio"); | 121 | mPreviousMuteAudio = gSavedSettings.getBOOL("MuteAudio"); |
117 | mPreviousMuteWhenMinimized = gSavedSettings.getBOOL("MuteWhenMinimized"); | 122 | mPreviousMuteWhenMinimized = gSavedSettings.getBOOL("MuteWhenMinimized"); |
118 | } | 123 | } |
@@ -140,8 +145,19 @@ void LLPanelAudioPrefs::cancel() | |||
140 | 145 | ||
141 | gSavedSettings.setBOOL("AudioStreamingMusic", mPreviousStreamingMusic ); | 146 | gSavedSettings.setBOOL("AudioStreamingMusic", mPreviousStreamingMusic ); |
142 | gSavedSettings.setBOOL("AudioStreamingVideo", mPreviousStreamingVideo ); | 147 | gSavedSettings.setBOOL("AudioStreamingVideo", mPreviousStreamingVideo ); |
143 | 148 | gSavedSettings.setBOOL("MediaOnAPrimUI", mPreviousHelperWidget ); | |
144 | 149 | gSavedSettings.setBOOL("MediaEnableFilter", mPreviousEnableMediaFilter ); | |
145 | gSavedSettings.setBOOL("MuteAudio", mPreviousMuteAudio ); | 150 | gSavedSettings.setBOOL("MuteAudio", mPreviousMuteAudio ); |
146 | gSavedSettings.setBOOL("MuteWhenMinimized", mPreviousMuteWhenMinimized ); | 151 | gSavedSettings.setBOOL("MuteWhenMinimized", mPreviousMuteWhenMinimized ); |
147 | } | 152 | } |
153 | |||
154 | //static | ||
155 | void LLPanelAudioPrefs::onShowMediaFilter(void* data) | ||
156 | { | ||
157 | SLFloaterMediaFilter::toggleInstance(); | ||
158 | } | ||
159 | |||
160 | void LLPanelAudioPrefs::updateIsLoggedIn(const bool enable) | ||
161 | { | ||
162 | childSetEnabled("show_media_filter", enable); | ||
163 | } | ||
diff --git a/linden/indra/newview/llpanelaudioprefs.h b/linden/indra/newview/llpanelaudioprefs.h index 21d2f59..a47a83e 100644 --- a/linden/indra/newview/llpanelaudioprefs.h +++ b/linden/indra/newview/llpanelaudioprefs.h | |||
@@ -54,6 +54,9 @@ public: | |||
54 | virtual BOOL postBuild(); | 54 | virtual BOOL postBuild(); |
55 | 55 | ||
56 | static void* createVolumePanel(void* data); | 56 | static void* createVolumePanel(void* data); |
57 | static void onShowMediaFilter(void* data); | ||
58 | |||
59 | void updateIsLoggedIn(const bool); | ||
57 | 60 | ||
58 | private: | 61 | private: |
59 | void refreshValues(); | 62 | void refreshValues(); |
@@ -75,6 +78,8 @@ private: | |||
75 | 78 | ||
76 | BOOL mPreviousStreamingMusic; | 79 | BOOL mPreviousStreamingMusic; |
77 | BOOL mPreviousStreamingVideo; | 80 | BOOL mPreviousStreamingVideo; |
81 | BOOL mPreviousHelperWidget; | ||
82 | BOOL mPreviousEnableMediaFilter; | ||
78 | BOOL mPreviousMuteAudio; | 83 | BOOL mPreviousMuteAudio; |
79 | BOOL mPreviousMuteWhenMinimized; | 84 | BOOL mPreviousMuteWhenMinimized; |
80 | }; | 85 | }; |
diff --git a/linden/indra/newview/llpanellandaudio.cpp b/linden/indra/newview/llpanellandaudio.cpp index 0247009..8d902b6 100644 --- a/linden/indra/newview/llpanellandaudio.cpp +++ b/linden/indra/newview/llpanellandaudio.cpp | |||
@@ -91,9 +91,6 @@ BOOL LLPanelLandAudio::postBuild() | |||
91 | mMusicURLEdit = getChild<LLLineEditor>("music_url"); | 91 | mMusicURLEdit = getChild<LLLineEditor>("music_url"); |
92 | childSetCommitCallback("music_url", onCommitAny, this); | 92 | childSetCommitCallback("music_url", onCommitAny, this); |
93 | 93 | ||
94 | mMusicUrlCheck = getChild<LLCheckBoxCtrl>("hide_music_url"); | ||
95 | childSetCommitCallback("hide_music_url", onCommitAny, this); | ||
96 | |||
97 | return TRUE; | 94 | return TRUE; |
98 | } | 95 | } |
99 | 96 | ||
@@ -117,9 +114,6 @@ void LLPanelLandAudio::refresh() | |||
117 | mMusicURLEdit->setText(parcel->getMusicURL()); | 114 | mMusicURLEdit->setText(parcel->getMusicURL()); |
118 | mMusicURLEdit->setEnabled( can_change_media ); | 115 | mMusicURLEdit->setEnabled( can_change_media ); |
119 | 116 | ||
120 | mMusicUrlCheck->set( parcel->getObscureMusic() ); | ||
121 | mMusicUrlCheck->setEnabled( can_change_media ); | ||
122 | |||
123 | mCheckSoundLocal->set( parcel->getSoundLocal() ); | 117 | mCheckSoundLocal->set( parcel->getSoundLocal() ); |
124 | mCheckSoundLocal->setEnabled( can_change_media ); | 118 | mCheckSoundLocal->setEnabled( can_change_media ); |
125 | 119 | ||
@@ -154,7 +148,6 @@ void LLPanelLandAudio::onCommitAny(LLUICtrl*, void *userdata) | |||
154 | BOOL sound_local = self->mCheckSoundLocal->get(); | 148 | BOOL sound_local = self->mCheckSoundLocal->get(); |
155 | int voice_setting = self->mRadioVoiceChat->getSelectedIndex(); | 149 | int voice_setting = self->mRadioVoiceChat->getSelectedIndex(); |
156 | std::string music_url = self->mMusicURLEdit->getText(); | 150 | std::string music_url = self->mMusicURLEdit->getText(); |
157 | U8 obscure_music = self->mMusicUrlCheck->get(); | ||
158 | 151 | ||
159 | 152 | ||
160 | BOOL voice_enabled; | 153 | BOOL voice_enabled; |
@@ -185,7 +178,6 @@ void LLPanelLandAudio::onCommitAny(LLUICtrl*, void *userdata) | |||
185 | parcel->setParcelFlag(PF_USE_ESTATE_VOICE_CHAN, voice_estate_chan); | 178 | parcel->setParcelFlag(PF_USE_ESTATE_VOICE_CHAN, voice_estate_chan); |
186 | parcel->setParcelFlag(PF_SOUND_LOCAL, sound_local); | 179 | parcel->setParcelFlag(PF_SOUND_LOCAL, sound_local); |
187 | parcel->setMusicURL(music_url); | 180 | parcel->setMusicURL(music_url); |
188 | parcel->setObscureMusic(obscure_music); | ||
189 | 181 | ||
190 | // Send current parcel data upstream to server | 182 | // Send current parcel data upstream to server |
191 | LLViewerParcelMgr::getInstance()->sendParcelPropertiesUpdate( parcel ); | 183 | LLViewerParcelMgr::getInstance()->sendParcelPropertiesUpdate( parcel ); |
diff --git a/linden/indra/newview/llpanellandaudio.h b/linden/indra/newview/llpanellandaudio.h index 3d5d633..82e27f6 100644 --- a/linden/indra/newview/llpanellandaudio.h +++ b/linden/indra/newview/llpanellandaudio.h | |||
@@ -55,7 +55,6 @@ private: | |||
55 | LLCheckBoxCtrl* mCheckSoundLocal; | 55 | LLCheckBoxCtrl* mCheckSoundLocal; |
56 | LLRadioGroup* mRadioVoiceChat; | 56 | LLRadioGroup* mRadioVoiceChat; |
57 | LLLineEditor* mMusicURLEdit; | 57 | LLLineEditor* mMusicURLEdit; |
58 | LLCheckBoxCtrl* mMusicUrlCheck; | ||
59 | 58 | ||
60 | LLSafeHandle<LLParcelSelection>& mParcel; | 59 | LLSafeHandle<LLParcelSelection>& mParcel; |
61 | }; | 60 | }; |
diff --git a/linden/indra/newview/llpanellandmedia.cpp b/linden/indra/newview/llpanellandmedia.cpp index b7df164..8a0be86 100644 --- a/linden/indra/newview/llpanellandmedia.cpp +++ b/linden/indra/newview/llpanellandmedia.cpp | |||
@@ -80,9 +80,7 @@ LLPanelLandMedia::LLPanelLandMedia(LLParcelSelectionHandle& parcel) | |||
80 | mMediaSizeCtrlLabel(NULL), | 80 | mMediaSizeCtrlLabel(NULL), |
81 | mMediaTextureCtrl(NULL), | 81 | mMediaTextureCtrl(NULL), |
82 | mMediaAutoScaleCheck(NULL), | 82 | mMediaAutoScaleCheck(NULL), |
83 | mMediaLoopCheck(NULL), | 83 | mMediaLoopCheck(NULL) |
84 | mMediaUrlCheck(NULL), | ||
85 | mMusicUrlCheck(NULL) | ||
86 | { | 84 | { |
87 | } | 85 | } |
88 | 86 | ||
@@ -132,12 +130,6 @@ BOOL LLPanelLandMedia::postBuild() | |||
132 | mMediaLoopCheck = getChild<LLCheckBoxCtrl>("media_loop"); | 130 | mMediaLoopCheck = getChild<LLCheckBoxCtrl>("media_loop"); |
133 | childSetCommitCallback("media_loop", onCommitAny, this); | 131 | childSetCommitCallback("media_loop", onCommitAny, this); |
134 | 132 | ||
135 | mMediaUrlCheck = getChild<LLCheckBoxCtrl>("hide_media_url"); | ||
136 | childSetCommitCallback("hide_media_url", onCommitAny, this); | ||
137 | |||
138 | mMusicUrlCheck = getChild<LLCheckBoxCtrl>("hide_music_url"); | ||
139 | childSetCommitCallback("hide_music_url", onCommitAny, this); | ||
140 | |||
141 | mMediaURLEdit = getChild<LLLineEditor>("media_url"); | 133 | mMediaURLEdit = getChild<LLLineEditor>("media_url"); |
142 | childSetCommitCallback("media_url", onCommitAny, this); | 134 | childSetCommitCallback("media_url", onCommitAny, this); |
143 | 135 | ||
@@ -243,30 +235,6 @@ void LLPanelLandMedia::refresh() | |||
243 | mMediaTypeCombo->setEnabled( can_change_media ); | 235 | mMediaTypeCombo->setEnabled( can_change_media ); |
244 | childSetText("mime_type", mime_type); | 236 | childSetText("mime_type", mime_type); |
245 | 237 | ||
246 | mMediaUrlCheck->set( parcel->getObscureMedia() ); | ||
247 | mMediaUrlCheck->setEnabled( can_change_media ); | ||
248 | |||
249 | mMusicUrlCheck->set( parcel->getObscureMusic() ); | ||
250 | mMusicUrlCheck->setEnabled( can_change_media ); | ||
251 | |||
252 | // don't display urls if you're not able to change it | ||
253 | // much requested change in forums so people can't 'steal' urls | ||
254 | // NOTE: bug#2009 means this is still vunerable - however, bug | ||
255 | // should be closed since this bug opens up major security issues elsewhere. | ||
256 | bool obscure_media = ! can_change_media && parcel->getObscureMedia(); | ||
257 | bool obscure_music = ! can_change_media && parcel->getObscureMusic(); | ||
258 | |||
259 | // Special code to disable asterixes for html type | ||
260 | if(mime_type == "text/html") | ||
261 | { | ||
262 | obscure_media = false; | ||
263 | mMediaUrlCheck->set( 0 ); | ||
264 | mMediaUrlCheck->setEnabled( false ); | ||
265 | } | ||
266 | |||
267 | mMusicURLEdit->setDrawAsterixes( obscure_music ); | ||
268 | mMediaURLEdit->setDrawAsterixes( obscure_media ); | ||
269 | |||
270 | mMediaAutoScaleCheck->set( parcel->getMediaAutoScale () ); | 238 | mMediaAutoScaleCheck->set( parcel->getMediaAutoScale () ); |
271 | mMediaAutoScaleCheck->setEnabled ( can_change_media ); | 239 | mMediaAutoScaleCheck->setEnabled ( can_change_media ); |
272 | 240 | ||
@@ -413,8 +381,6 @@ void LLPanelLandMedia::onCommitAny(LLUICtrl*, void *userdata) | |||
413 | std::string mime_type = self->childGetText("mime_type"); | 381 | std::string mime_type = self->childGetText("mime_type"); |
414 | U8 media_auto_scale = self->mMediaAutoScaleCheck->get(); | 382 | U8 media_auto_scale = self->mMediaAutoScaleCheck->get(); |
415 | U8 media_loop = self->mMediaLoopCheck->get(); | 383 | U8 media_loop = self->mMediaLoopCheck->get(); |
416 | U8 obscure_media = self->mMediaUrlCheck->get(); | ||
417 | U8 obscure_music = self->mMusicUrlCheck->get(); | ||
418 | S32 media_width = (S32)self->mMediaWidthCtrl->get(); | 384 | S32 media_width = (S32)self->mMediaWidthCtrl->get(); |
419 | S32 media_height = (S32)self->mMediaHeightCtrl->get(); | 385 | S32 media_height = (S32)self->mMediaHeightCtrl->get(); |
420 | LLUUID media_id = self->mMediaTextureCtrl->getImageAssetID(); | 386 | LLUUID media_id = self->mMediaTextureCtrl->getImageAssetID(); |
@@ -441,8 +407,6 @@ void LLPanelLandMedia::onCommitAny(LLUICtrl*, void *userdata) | |||
441 | parcel->setMediaID(media_id); | 407 | parcel->setMediaID(media_id); |
442 | parcel->setMediaAutoScale ( media_auto_scale ); | 408 | parcel->setMediaAutoScale ( media_auto_scale ); |
443 | parcel->setMediaLoop ( media_loop ); | 409 | parcel->setMediaLoop ( media_loop ); |
444 | parcel->setObscureMedia( obscure_media ); | ||
445 | parcel->setObscureMusic( obscure_music ); | ||
446 | 410 | ||
447 | // Send current parcel data upstream to server | 411 | // Send current parcel data upstream to server |
448 | LLViewerParcelMgr::getInstance()->sendParcelPropertiesUpdate( parcel ); | 412 | LLViewerParcelMgr::getInstance()->sendParcelPropertiesUpdate( parcel ); |
diff --git a/linden/indra/newview/llpanellogin.cpp b/linden/indra/newview/llpanellogin.cpp index d00ccd9..cb61647 100644 --- a/linden/indra/newview/llpanellogin.cpp +++ b/linden/indra/newview/llpanellogin.cpp | |||
@@ -81,6 +81,8 @@ | |||
81 | 81 | ||
82 | #include "llglheaders.h" | 82 | #include "llglheaders.h" |
83 | 83 | ||
84 | #include <boost/algorithm/string.hpp> | ||
85 | |||
84 | // [RLVa:KB] | 86 | // [RLVa:KB] |
85 | #include "rlvhandler.h" | 87 | #include "rlvhandler.h" |
86 | // [/RLVa:KB] | 88 | // [/RLVa:KB] |
@@ -208,6 +210,7 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, | |||
208 | #if !USE_VIEWER_AUTH | 210 | #if !USE_VIEWER_AUTH |
209 | childSetPrevalidate("first_name_edit", LLLineEditor::prevalidatePrintableNoSpace); | 211 | childSetPrevalidate("first_name_edit", LLLineEditor::prevalidatePrintableNoSpace); |
210 | childSetPrevalidate("last_name_edit", LLLineEditor::prevalidatePrintableNoSpace); | 212 | childSetPrevalidate("last_name_edit", LLLineEditor::prevalidatePrintableNoSpace); |
213 | childSetPrevalidate("username_edit", LLLineEditor::prevalidatePrintableSpace); | ||
211 | 214 | ||
212 | childSetCommitCallback("password_edit", mungePassword); | 215 | childSetCommitCallback("password_edit", mungePassword); |
213 | childSetKeystrokeCallback("password_edit", onPassKey, this); | 216 | childSetKeystrokeCallback("password_edit", onPassKey, this); |
@@ -327,6 +330,8 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect, | |||
327 | refreshLocation( false ); | 330 | refreshLocation( false ); |
328 | #endif | 331 | #endif |
329 | 332 | ||
333 | loadLoginForm(); | ||
334 | // loadNewsBar(); | ||
330 | LLFirstUse::useLoginScreen(); | 335 | LLFirstUse::useLoginScreen(); |
331 | } | 336 | } |
332 | 337 | ||
@@ -553,6 +558,26 @@ void LLPanelLogin::show(const LLRect &rect, | |||
553 | LLPanelLogin::addServer(LLViewerLogin::getInstance()->getGridLabel()); | 558 | LLPanelLogin::addServer(LLViewerLogin::getInstance()->getGridLabel()); |
554 | } | 559 | } |
555 | 560 | ||
561 | |||
562 | // static | ||
563 | void LLPanelLogin::setFields(const std::string& username, const std::string& password) | ||
564 | { | ||
565 | if (!sInstance) | ||
566 | { | ||
567 | llwarns << "Attempted fillFields with no login view shown" << llendl; | ||
568 | return; | ||
569 | } | ||
570 | |||
571 | if (!gHippoGridManager->getCurrentGrid()->isUsernameCompat()) | ||
572 | { | ||
573 | llwarns << "Trying to set a username for an incompatible grid!" << llendl; | ||
574 | return; | ||
575 | } | ||
576 | |||
577 | sInstance->childSetText("username_edit", username); | ||
578 | setPassword(password); | ||
579 | } | ||
580 | |||
556 | // static | 581 | // static |
557 | void LLPanelLogin::setFields(const std::string& firstname, | 582 | void LLPanelLogin::setFields(const std::string& firstname, |
558 | const std::string& lastname, | 583 | const std::string& lastname, |
@@ -566,7 +591,13 @@ void LLPanelLogin::setFields(const std::string& firstname, | |||
566 | 591 | ||
567 | sInstance->childSetText("first_name_edit", firstname); | 592 | sInstance->childSetText("first_name_edit", firstname); |
568 | sInstance->childSetText("last_name_edit", lastname); | 593 | sInstance->childSetText("last_name_edit", lastname); |
594 | setPassword(password); | ||
595 | } | ||
596 | |||
569 | 597 | ||
598 | // static | ||
599 | void LLPanelLogin::setPassword(const std::string& password) | ||
600 | { | ||
570 | // Max "actual" password length is 16 characters. | 601 | // Max "actual" password length is 16 characters. |
571 | // Hex digests are always 32 characters. | 602 | // Hex digests are always 32 characters. |
572 | if (password.length() == 32) | 603 | if (password.length() == 32) |
@@ -665,11 +696,25 @@ void LLPanelLogin::getFields(std::string *firstname, | |||
665 | return; | 696 | return; |
666 | } | 697 | } |
667 | 698 | ||
668 | *firstname = sInstance->childGetText("first_name_edit"); | 699 | // SL grids use a generic one-line text entry field for logins |
669 | LLStringUtil::trim(*firstname); | 700 | std::string username = sInstance->childGetText("username_edit"); |
701 | if (!username.empty() && gHippoGridManager->getConnectedGrid()->isUsernameCompat()) | ||
702 | { | ||
703 | // no need to trim here, spaces are removed | ||
704 | if (!convertUsernameToLegacy(username, *firstname, *lastname)) | ||
705 | { | ||
706 | llerrs << "Invalid username accepted! Cannot proceed!" << llendl; | ||
707 | return; | ||
708 | } | ||
709 | } | ||
710 | else | ||
711 | { | ||
712 | *firstname = sInstance->childGetText("first_name_edit"); | ||
713 | LLStringUtil::trim(*firstname); | ||
670 | 714 | ||
671 | *lastname = sInstance->childGetText("last_name_edit"); | 715 | *lastname = sInstance->childGetText("last_name_edit"); |
672 | LLStringUtil::trim(*lastname); | 716 | LLStringUtil::trim(*lastname); |
717 | } | ||
673 | 718 | ||
674 | *password = sInstance->mMungedPassword; | 719 | *password = sInstance->mMungedPassword; |
675 | } | 720 | } |
@@ -817,6 +862,54 @@ void LLPanelLogin::refreshLoginPage() | |||
817 | } | 862 | } |
818 | 863 | ||
819 | 864 | ||
865 | // static | ||
866 | void LLPanelLogin::loadLoginForm() | ||
867 | { | ||
868 | if (!sInstance) return; | ||
869 | |||
870 | // toggle between username/first+last login based on grid -- MC | ||
871 | LLTextBox* firstnamet = sInstance->getChild<LLTextBox>("first_name_text"); | ||
872 | LLTextBox* lastnamet = sInstance->getChild<LLTextBox>("last_name_text"); | ||
873 | LLTextBox* usernamet = sInstance->getChild<LLTextBox>("username_text"); | ||
874 | |||
875 | LLLineEditor* firstnamel = sInstance->getChild<LLLineEditor>("first_name_edit"); | ||
876 | LLLineEditor* lastnamel = sInstance->getChild<LLLineEditor>("last_name_edit"); | ||
877 | LLLineEditor* usernamel = sInstance->getChild<LLLineEditor>("username_edit"); | ||
878 | |||
879 | firstnamet->setVisible(!gHippoGridManager->getCurrentGrid()->isUsernameCompat()); | ||
880 | lastnamet->setVisible(!gHippoGridManager->getCurrentGrid()->isUsernameCompat()); | ||
881 | usernamet->setVisible(gHippoGridManager->getCurrentGrid()->isUsernameCompat()); | ||
882 | |||
883 | firstnamel->setVisible(!gHippoGridManager->getCurrentGrid()->isUsernameCompat()); | ||
884 | lastnamel->setVisible(!gHippoGridManager->getCurrentGrid()->isUsernameCompat()); | ||
885 | usernamel->setVisible(gHippoGridManager->getCurrentGrid()->isUsernameCompat()); | ||
886 | |||
887 | // these should really REALLY be stored in the grid info -- MC | ||
888 | std::string firstnames = gSavedSettings.getString("FirstName"); | ||
889 | std::string lastnames = gSavedSettings.getString("LastName"); | ||
890 | if (!firstnames.empty() && !lastnames.empty()) | ||
891 | { | ||
892 | if (gHippoGridManager->getCurrentGrid()->isUsernameCompat()) | ||
893 | { | ||
894 | if (lastnames == "resident" || lastnames == "Resident") | ||
895 | { | ||
896 | usernamel->setText(firstnames); | ||
897 | } | ||
898 | else | ||
899 | { | ||
900 | usernamel->setText(firstnames+"."+lastnames); | ||
901 | } | ||
902 | } | ||
903 | else | ||
904 | { | ||
905 | firstnamel->setText(firstnames); | ||
906 | lastnamel->setText(lastnames); | ||
907 | } | ||
908 | } | ||
909 | } | ||
910 | |||
911 | |||
912 | // static | ||
820 | void LLPanelLogin::loadLoginPage() | 913 | void LLPanelLogin::loadLoginPage() |
821 | { | 914 | { |
822 | if (!sInstance) return; | 915 | if (!sInstance) return; |
@@ -987,6 +1080,64 @@ void LLPanelLogin::handleMediaEvent(LLPluginClassMedia* /*self*/, EMediaEvent ev | |||
987 | //--------------------------------------------------------------------------- | 1080 | //--------------------------------------------------------------------------- |
988 | 1081 | ||
989 | // static | 1082 | // static |
1083 | bool LLPanelLogin::convertUsernameToLegacy(std::string& username, std::string& firstname, std::string& lastname) | ||
1084 | { | ||
1085 | if (!username.empty()) | ||
1086 | { | ||
1087 | // trim beginning and end | ||
1088 | LLStringUtil::trim(username); | ||
1089 | |||
1090 | // minimum length for an SL grid | ||
1091 | if (username.length() < 5) | ||
1092 | { | ||
1093 | return false; | ||
1094 | } | ||
1095 | } | ||
1096 | else | ||
1097 | { | ||
1098 | return false; | ||
1099 | } | ||
1100 | |||
1101 | std::vector<std::string> names; | ||
1102 | boost::algorithm::split(names, username, | ||
1103 | boost::is_any_of(std::string(" ."))); | ||
1104 | |||
1105 | // maybe they typed in a few too many spaces? | ||
1106 | if (names.size() > 2) | ||
1107 | { | ||
1108 | std::vector<std::string>::iterator vIt = names.begin(); | ||
1109 | while (vIt != names.end()) | ||
1110 | { | ||
1111 | if ((*vIt).empty()) | ||
1112 | { | ||
1113 | vIt = names.erase(vIt); | ||
1114 | } | ||
1115 | else | ||
1116 | { | ||
1117 | ++vIt; | ||
1118 | } | ||
1119 | } | ||
1120 | } | ||
1121 | |||
1122 | if (names.size() == 1) // username | ||
1123 | { | ||
1124 | firstname = names[0]; | ||
1125 | lastname = "Resident"; | ||
1126 | return true; | ||
1127 | } | ||
1128 | else if (names.size() == 2) // first.last or first+" "+last | ||
1129 | { | ||
1130 | firstname = names[0]; | ||
1131 | lastname = names[1]; | ||
1132 | return true; | ||
1133 | } | ||
1134 | else | ||
1135 | { | ||
1136 | return false; | ||
1137 | } | ||
1138 | } | ||
1139 | |||
1140 | // static | ||
990 | void LLPanelLogin::onClickConnect(void *) | 1141 | void LLPanelLogin::onClickConnect(void *) |
991 | { | 1142 | { |
992 | if (sInstance && sInstance->mCallback) | 1143 | if (sInstance && sInstance->mCallback) |
@@ -998,17 +1149,48 @@ void LLPanelLogin::onClickConnect(void *) | |||
998 | // JC - Make sure the fields all get committed. | 1149 | // JC - Make sure the fields all get committed. |
999 | sInstance->setFocus(FALSE); | 1150 | sInstance->setFocus(FALSE); |
1000 | 1151 | ||
1001 | std::string first = sInstance->childGetText("first_name_edit"); | 1152 | // Note: valid logins are username or Username or First.Last or First Last -- MC |
1002 | std::string last = sInstance->childGetText("last_name_edit"); | 1153 | if (gHippoGridManager->getCurrentGrid()->isUsernameCompat()) |
1003 | if (!first.empty() && !last.empty()) | ||
1004 | { | 1154 | { |
1005 | // has both first and last name typed | 1155 | std::string username = sInstance->childGetText("username_edit"); |
1006 | sInstance->mCallback(0, sInstance->mCallbackData); | 1156 | if (!username.empty()) |
1157 | { | ||
1158 | // todo: make this two functions, one for validating the other for converting | ||
1159 | std::string temp1; | ||
1160 | std::string temp2; | ||
1161 | if (convertUsernameToLegacy(username, temp1, temp2)) | ||
1162 | { | ||
1163 | // has username typed, make sure we're just using that | ||
1164 | sInstance->childSetText("first_name_edit", LLStringUtil::null); | ||
1165 | sInstance->childSetText("last_name_edit", LLStringUtil::null); | ||
1166 | sInstance->mCallback(0, sInstance->mCallbackData); | ||
1167 | } | ||
1168 | else | ||
1169 | { | ||
1170 | LLNotifications::instance().add("InvalidLogInSecondLife", LLSD(), LLSD(), | ||
1171 | LLPanelLogin::newAccountAlertCallback); | ||
1172 | } | ||
1173 | } | ||
1174 | else | ||
1175 | { | ||
1176 | LLNotifications::instance().add("MustHaveAccountToLogIn", LLSD(), LLSD(), | ||
1177 | LLPanelLogin::newAccountAlertCallback); | ||
1178 | } | ||
1007 | } | 1179 | } |
1008 | else | 1180 | else |
1009 | { | 1181 | { |
1010 | LLNotifications::instance().add("MustHaveAccountToLogIn", LLSD(), LLSD(), | 1182 | std::string first = sInstance->childGetText("first_name_edit"); |
1011 | LLPanelLogin::newAccountAlertCallback); | 1183 | std::string last = sInstance->childGetText("last_name_edit"); |
1184 | if (!first.empty() && !last.empty()) | ||
1185 | { | ||
1186 | // has both first and last name typed | ||
1187 | sInstance->mCallback(0, sInstance->mCallbackData); | ||
1188 | } | ||
1189 | else | ||
1190 | { | ||
1191 | LLNotifications::instance().add("MustHaveAccountToLogIn", LLSD(), LLSD(), | ||
1192 | LLPanelLogin::newAccountAlertCallback); | ||
1193 | } | ||
1012 | } | 1194 | } |
1013 | } | 1195 | } |
1014 | } | 1196 | } |
@@ -1138,6 +1320,9 @@ void LLPanelLogin::updateGridCombo(std::string grid_nick) | |||
1138 | 1320 | ||
1139 | llinfos << "current grid set to " << grid_nick << llendl; | 1321 | llinfos << "current grid set to " << grid_nick << llendl; |
1140 | 1322 | ||
1323 | // switch between username/first+last name based on grid | ||
1324 | loadLoginForm(); | ||
1325 | |||
1141 | // grid changed so show new splash screen (possibly) | 1326 | // grid changed so show new splash screen (possibly) |
1142 | loadLoginPage(); | 1327 | loadLoginPage(); |
1143 | 1328 | ||
diff --git a/linden/indra/newview/llpanellogin.h b/linden/indra/newview/llpanellogin.h index c99fa30..d077f32 100644 --- a/linden/indra/newview/llpanellogin.h +++ b/linden/indra/newview/llpanellogin.h | |||
@@ -59,9 +59,9 @@ public: | |||
59 | void (*callback)(S32 option, void* user_data), | 59 | void (*callback)(S32 option, void* user_data), |
60 | void* callback_data); | 60 | void* callback_data); |
61 | 61 | ||
62 | // Remember password checkbox is set via gSavedSettings "RememberPassword" | 62 | // Sets the login screen's name and password editors. Remember password checkbox is set via gSavedSettings "RememberPassword" |
63 | static void setFields(const std::string& firstname, const std::string& lastname, | 63 | static void setFields(const std::string& firstname, const std::string& lastname, const std::string& password); |
64 | const std::string& password); | 64 | static void setFields(const std::string& username, const std::string& password); |
65 | 65 | ||
66 | static void addServer(const std::string& server); | 66 | static void addServer(const std::string& server); |
67 | static void refreshLocation( bool force_visible ); | 67 | static void refreshLocation( bool force_visible ); |
@@ -78,6 +78,7 @@ public: | |||
78 | 78 | ||
79 | void setSiteIsAlive( bool alive ); | 79 | void setSiteIsAlive( bool alive ); |
80 | 80 | ||
81 | static void loadLoginForm(); | ||
81 | static void loadLoginPage(); | 82 | static void loadLoginPage(); |
82 | static void refreshLoginPage(); | 83 | static void refreshLoginPage(); |
83 | static void giveFocus(); | 84 | static void giveFocus(); |
@@ -98,8 +99,19 @@ private: | |||
98 | static void onPassKey(LLLineEditor* caller, void* user_data); | 99 | static void onPassKey(LLLineEditor* caller, void* user_data); |
99 | static void onSelectServer(LLUICtrl*, void*); | 100 | static void onSelectServer(LLUICtrl*, void*); |
100 | static void onServerComboLostFocus(LLFocusableElement*, void*); | 101 | static void onServerComboLostFocus(LLFocusableElement*, void*); |
102 | |||
103 | // converts the following login name formats into valid firstname lastname combos: | ||
104 | // username | ||
105 | // username.Resident | ||
106 | // first.last | ||
107 | // first+" "+last | ||
108 | // " "+first+" "+last+" " | ||
109 | // returns true if name conversion successful | ||
110 | static bool convertUsernameToLegacy(std::string& username, std::string& firstname, std::string& lastname); | ||
111 | |||
112 | // set the password for the login screen | ||
113 | static void setPassword(const std::string& password); | ||
101 | 114 | ||
102 | private: | ||
103 | LLPointer<LLUIImage> mLogoImage; | 115 | LLPointer<LLUIImage> mLogoImage; |
104 | 116 | ||
105 | void (*mCallback)(S32 option, void *userdata); | 117 | void (*mCallback)(S32 option, void *userdata); |
diff --git a/linden/indra/newview/llpanelnetwork.cpp b/linden/indra/newview/llpanelnetwork.cpp index ec0b6ee..ebe1d53 100644 --- a/linden/indra/newview/llpanelnetwork.cpp +++ b/linden/indra/newview/llpanelnetwork.cpp | |||
@@ -64,6 +64,14 @@ BOOL LLPanelNetwork::postBuild() | |||
64 | childSetValue("connection_port_enabled", gSavedSettings.getBOOL("ConnectionPortEnabled")); | 64 | childSetValue("connection_port_enabled", gSavedSettings.getBOOL("ConnectionPortEnabled")); |
65 | childSetValue("connection_port", (F32)gSavedSettings.getU32("ConnectionPort")); | 65 | childSetValue("connection_port", (F32)gSavedSettings.getU32("ConnectionPort")); |
66 | 66 | ||
67 | childSetCommitCallback("xmlrpc_proxy_enabled", onCommitXMLRPCProxyEnabled, this); | ||
68 | childSetValue("xmlrpc_proxy_enabled", gSavedSettings.getBOOL("XMLRPCProxyEnabled")); | ||
69 | childSetValue("xmlrpc_proxy_editor", gSavedSettings.getString("XMLRPCProxyAddress")); | ||
70 | childSetValue("xmlrpc_proxy_port", gSavedSettings.getS32("XMLRPCProxyPort")); | ||
71 | childSetEnabled("xmlrpc_proxy_text_label", gSavedSettings.getBOOL("XMLRPCProxyEnabled")); | ||
72 | childSetEnabled("xmlrpc_proxy_editor", gSavedSettings.getBOOL("XMLRPCProxyEnabled")); | ||
73 | childSetEnabled("xmlrpc_proxy_port", gSavedSettings.getBOOL("XMLRPCProxyEnabled")); | ||
74 | |||
67 | return TRUE; | 75 | return TRUE; |
68 | } | 76 | } |
69 | 77 | ||
@@ -79,6 +87,10 @@ void LLPanelNetwork::apply() | |||
79 | gSavedSettings.setF32("ThrottleBandwidthKBPS", childGetValue("max_bandwidth").asReal()); | 87 | gSavedSettings.setF32("ThrottleBandwidthKBPS", childGetValue("max_bandwidth").asReal()); |
80 | gSavedSettings.setBOOL("ConnectionPortEnabled", childGetValue("connection_port_enabled")); | 88 | gSavedSettings.setBOOL("ConnectionPortEnabled", childGetValue("connection_port_enabled")); |
81 | gSavedSettings.setU32("ConnectionPort", childGetValue("connection_port").asInteger()); | 89 | gSavedSettings.setU32("ConnectionPort", childGetValue("connection_port").asInteger()); |
90 | |||
91 | gSavedSettings.setBOOL("XMLRPCProxyEnabled", childGetValue("xmlrpc_proxy_enabled")); | ||
92 | gSavedSettings.setString("XMLRPCProxyAddress", childGetValue("xmlrpc_proxy_editor")); | ||
93 | gSavedSettings.setS32("XMLRPCProxyPort", childGetValue("xmlrpc_proxy_port")); | ||
82 | } | 94 | } |
83 | 95 | ||
84 | void LLPanelNetwork::cancel() | 96 | void LLPanelNetwork::cancel() |
@@ -144,3 +156,15 @@ void LLPanelNetwork::onCommitPort(LLUICtrl* ctrl, void* data) | |||
144 | self->childSetEnabled("connection_port", check->get()); | 156 | self->childSetEnabled("connection_port", check->get()); |
145 | LLNotifications::instance().add("ChangeConnectionPort"); | 157 | LLNotifications::instance().add("ChangeConnectionPort"); |
146 | } | 158 | } |
159 | |||
160 | // static | ||
161 | void LLPanelNetwork::onCommitXMLRPCProxyEnabled(LLUICtrl* ctrl, void* data) | ||
162 | { | ||
163 | LLPanelNetwork* self = (LLPanelNetwork*)data; | ||
164 | LLCheckBoxCtrl* check = (LLCheckBoxCtrl*)ctrl; | ||
165 | |||
166 | if (!self || !check) return; | ||
167 | self->childSetEnabled("xmlrpc_proxy_editor", check->get()); | ||
168 | self->childSetEnabled("xmlrpc_proxy_port", check->get()); | ||
169 | self->childSetEnabled("xmlrpc_proxy_text_label", check->get()); | ||
170 | } | ||
diff --git a/linden/indra/newview/llpanelnetwork.h b/linden/indra/newview/llpanelnetwork.h index 3a3d857..900158a 100644 --- a/linden/indra/newview/llpanelnetwork.h +++ b/linden/indra/newview/llpanelnetwork.h | |||
@@ -51,6 +51,7 @@ private: | |||
51 | static void onClickSetCache(void*); | 51 | static void onClickSetCache(void*); |
52 | static void onClickResetCache(void*); | 52 | static void onClickResetCache(void*); |
53 | static void onCommitPort(LLUICtrl* ctrl, void*); | 53 | static void onCommitPort(LLUICtrl* ctrl, void*); |
54 | static void onCommitXMLRPCProxyEnabled(LLUICtrl* ctrl, void* data); | ||
54 | }; | 55 | }; |
55 | 56 | ||
56 | #endif | 57 | #endif |
diff --git a/linden/indra/newview/llpanelweb.cpp b/linden/indra/newview/llpanelweb.cpp index 6f9bd7a..93441dd 100644 --- a/linden/indra/newview/llpanelweb.cpp +++ b/linden/indra/newview/llpanelweb.cpp | |||
@@ -69,6 +69,7 @@ BOOL LLPanelWeb::postBuild() | |||
69 | childSetValue("use_external_browser", value); | 69 | childSetValue("use_external_browser", value); |
70 | 70 | ||
71 | childSetValue("cookies_enabled", gSavedSettings.getBOOL("BrowserCookiesEnabled")); | 71 | childSetValue("cookies_enabled", gSavedSettings.getBOOL("BrowserCookiesEnabled")); |
72 | childSetAction("clear_cookies", onClickClearCookies,this); | ||
72 | 73 | ||
73 | childSetValue("web_proxy_enabled", gSavedSettings.getBOOL("BrowserProxyEnabled")); | 74 | childSetValue("web_proxy_enabled", gSavedSettings.getBOOL("BrowserProxyEnabled")); |
74 | childSetValue("web_proxy_editor", gSavedSettings.getString("BrowserProxyAddress")); | 75 | childSetValue("web_proxy_editor", gSavedSettings.getString("BrowserProxyAddress")); |
@@ -102,9 +103,15 @@ LLPanelWeb::~LLPanelWeb() | |||
102 | void LLPanelWeb::apply() | 103 | void LLPanelWeb::apply() |
103 | { | 104 | { |
104 | gSavedSettings.setBOOL("BrowserCookiesEnabled", childGetValue("cookies_enabled")); | 105 | gSavedSettings.setBOOL("BrowserCookiesEnabled", childGetValue("cookies_enabled")); |
105 | gSavedSettings.setBOOL("BrowserProxyEnabled", childGetValue("web_proxy_enabled")); | 106 | |
106 | gSavedSettings.setString("BrowserProxyAddress", childGetValue("web_proxy_editor")); | 107 | bool proxy_enable = childGetValue("web_proxy_enabled"); |
107 | gSavedSettings.setS32("BrowserProxyPort", childGetValue("web_proxy_port")); | 108 | std::string proxy_address = childGetValue("web_proxy_editor"); |
109 | int proxy_port = childGetValue("web_proxy_port"); | ||
110 | gSavedSettings.setBOOL("BrowserProxyEnabled", proxy_enable); | ||
111 | gSavedSettings.setString("BrowserProxyAddress", proxy_address); | ||
112 | gSavedSettings.setS32("BrowserProxyPort", proxy_port); | ||
113 | LLViewerMedia::setProxyConfig(proxy_enable, proxy_address, proxy_port); | ||
114 | |||
108 | if (gHippoGridManager->getConnectedGrid()->isSecondLife()) | 115 | if (gHippoGridManager->getConnectedGrid()->isSecondLife()) |
109 | { | 116 | { |
110 | gSavedSettings.setString("SearchURLQuery", childGetValue("world_search_editor")); | 117 | gSavedSettings.setString("SearchURLQuery", childGetValue("world_search_editor")); |
diff --git a/linden/indra/newview/llprefsadvanced.cpp b/linden/indra/newview/llprefsadvanced.cpp index 17f7b09..38e6745 100644 --- a/linden/indra/newview/llprefsadvanced.cpp +++ b/linden/indra/newview/llprefsadvanced.cpp | |||
@@ -62,7 +62,6 @@ LLPrefsAdvanced::LLPrefsAdvanced() | |||
62 | childSetCommitCallback("speed_rez_check", onCommitCheckBox, this); | 62 | childSetCommitCallback("speed_rez_check", onCommitCheckBox, this); |
63 | childSetCommitCallback("command_line_check", onCommitCheckBox, this); | 63 | childSetCommitCallback("command_line_check", onCommitCheckBox, this); |
64 | 64 | ||
65 | childSetAction("reset_btn", onClickResetPrefs, this); | ||
66 | childSetAction("command_line_btn", onClickCommandLine, this); | 65 | childSetAction("command_line_btn", onClickCommandLine, this); |
67 | } | 66 | } |
68 | 67 | ||
@@ -286,24 +285,6 @@ void LLPrefsAdvanced::onCommitCheckBox(LLUICtrl* ctrl, void* user_data) | |||
286 | self->refresh(); | 285 | self->refresh(); |
287 | } | 286 | } |
288 | 287 | ||
289 | // static | ||
290 | void LLPrefsAdvanced::onClickResetPrefs(void* user_data) | ||
291 | { | ||
292 | LLPrefsAdvanced* self = (LLPrefsAdvanced*)user_data; | ||
293 | LLNotifications::instance().add("ConfirmResetAllPreferences", LLSD(), LLSD(), boost::bind(callbackReset, _1, _2, self)); | ||
294 | } | ||
295 | |||
296 | // static | ||
297 | bool LLPrefsAdvanced::callbackReset(const LLSD& notification, const LLSD& response, LLPrefsAdvanced *self) | ||
298 | { | ||
299 | S32 option = LLNotification::getSelectedOption(notification, response); | ||
300 | if ( option == 0 ) | ||
301 | { | ||
302 | gSavedSettings.setBOOL("ResetAllPreferences", TRUE); | ||
303 | } | ||
304 | return false; | ||
305 | } | ||
306 | |||
307 | void LLPrefsAdvanced::onSpellAdd(void* data) | 288 | void LLPrefsAdvanced::onSpellAdd(void* data) |
308 | { | 289 | { |
309 | LLPrefsAdvanced* panel = (LLPrefsAdvanced*)data; | 290 | LLPrefsAdvanced* panel = (LLPrefsAdvanced*)data; |
diff --git a/linden/indra/newview/llprefsadvanced.h b/linden/indra/newview/llprefsadvanced.h index 9dfe617..d75dcd3 100644 --- a/linden/indra/newview/llprefsadvanced.h +++ b/linden/indra/newview/llprefsadvanced.h | |||
@@ -50,11 +50,8 @@ private: | |||
50 | static LLPrefsAdvanced* sInstance; | 50 | static LLPrefsAdvanced* sInstance; |
51 | 51 | ||
52 | static void onCommitCheckBox(LLUICtrl* ctrl, void* user_data); | 52 | static void onCommitCheckBox(LLUICtrl* ctrl, void* user_data); |
53 | static void onClickResetPrefs(void* user_data); | ||
54 | static void onClickCommandLine(void* data); | 53 | static void onClickCommandLine(void* data); |
55 | 54 | ||
56 | static bool callbackReset(const LLSD& notification, const LLSD& response, LLPrefsAdvanced *self); | ||
57 | |||
58 | static void onSpellAdd(void* data); | 55 | static void onSpellAdd(void* data); |
59 | static void onSpellRemove(void* data); | 56 | static void onSpellRemove(void* data); |
60 | static void onSpellGetMore(void* data); | 57 | static void onSpellGetMore(void* data); |
diff --git a/linden/indra/newview/llstartup.cpp b/linden/indra/newview/llstartup.cpp index d13e112..9906cbf 100644 --- a/linden/indra/newview/llstartup.cpp +++ b/linden/indra/newview/llstartup.cpp | |||
@@ -817,8 +817,23 @@ bool idle_startup() | |||
817 | // Show the login dialog | 817 | // Show the login dialog |
818 | login_show(); | 818 | login_show(); |
819 | // connect dialog is already shown, so fill in the names | 819 | // connect dialog is already shown, so fill in the names |
820 | LLPanelLogin::setFields( firstname, lastname, password); | 820 | // icky how usernames get bolted on here as a kind of hack -- MC |
821 | 821 | if (gHippoGridManager && gHippoGridManager->getCurrentGrid()->isUsernameCompat()) | |
822 | { | ||
823 | if (lastname == "resident" || lastname == "Resident") | ||
824 | { | ||
825 | LLPanelLogin::setFields(firstname, password); | ||
826 | } | ||
827 | else | ||
828 | { | ||
829 | LLPanelLogin::setFields(firstname+"."+lastname, password); | ||
830 | } | ||
831 | } | ||
832 | else | ||
833 | { | ||
834 | LLPanelLogin::setFields(firstname, lastname, password); | ||
835 | } | ||
836 | |||
822 | LLPanelLogin::giveFocus(); | 837 | LLPanelLogin::giveFocus(); |
823 | 838 | ||
824 | gSavedSettings.setBOOL("FirstRunThisInstall", FALSE); | 839 | gSavedSettings.setBOOL("FirstRunThisInstall", FALSE); |
@@ -1247,6 +1262,20 @@ bool idle_startup() | |||
1247 | hashed_mac.finalize(); | 1262 | hashed_mac.finalize(); |
1248 | hashed_mac.hex_digest(hashed_mac_string); | 1263 | hashed_mac.hex_digest(hashed_mac_string); |
1249 | 1264 | ||
1265 | // Don't report crashes if the grid we crashed in | ||
1266 | // is different from the grid we log in | ||
1267 | eLastExecEvent last_exec_event = LAST_EXEC_NORMAL; | ||
1268 | { | ||
1269 | std::string current_grid = gHippoGridManager->getCurrentGrid()->getGridNick(); | ||
1270 | std::string last_grid = gSavedSettings.getString("LastConnectedGrid"); | ||
1271 | LL_DEBUGS("AppInit") << "current grid: " << current_grid | ||
1272 | << " Last Connected Grid: " << last_grid << LL_ENDL; | ||
1273 | if( last_grid == current_grid ) | ||
1274 | { | ||
1275 | last_exec_event = gLastExecEvent; | ||
1276 | } | ||
1277 | } | ||
1278 | |||
1250 | // TODO if statement here to use web_login_key | 1279 | // TODO if statement here to use web_login_key |
1251 | if(web_login_key.isNull()){ | 1280 | if(web_login_key.isNull()){ |
1252 | sAuthUriNum = llclamp(sAuthUriNum, 0, (S32)sAuthUris.size()-1); | 1281 | sAuthUriNum = llclamp(sAuthUriNum, 0, (S32)sAuthUris.size()-1); |
@@ -1261,7 +1290,7 @@ bool idle_startup() | |||
1261 | gSkipOptionalUpdate, | 1290 | gSkipOptionalUpdate, |
1262 | gAcceptTOS, | 1291 | gAcceptTOS, |
1263 | gAcceptCriticalMessage, | 1292 | gAcceptCriticalMessage, |
1264 | gLastExecEvent, | 1293 | last_exec_event, |
1265 | requested_options, | 1294 | requested_options, |
1266 | hashed_mac_string, | 1295 | hashed_mac_string, |
1267 | LLAppViewer::instance()->getSerialNumber()); | 1296 | LLAppViewer::instance()->getSerialNumber()); |
@@ -1276,7 +1305,7 @@ bool idle_startup() | |||
1276 | gSkipOptionalUpdate, | 1305 | gSkipOptionalUpdate, |
1277 | gAcceptTOS, | 1306 | gAcceptTOS, |
1278 | gAcceptCriticalMessage, | 1307 | gAcceptCriticalMessage, |
1279 | gLastExecEvent, | 1308 | last_exec_event, |
1280 | requested_options, | 1309 | requested_options, |
1281 | hashed_mac_string, | 1310 | hashed_mac_string, |
1282 | LLAppViewer::instance()->getSerialNumber()); | 1311 | LLAppViewer::instance()->getSerialNumber()); |
@@ -1514,6 +1543,11 @@ bool idle_startup() | |||
1514 | 1543 | ||
1515 | if(successful_login) | 1544 | if(successful_login) |
1516 | { | 1545 | { |
1546 | { | ||
1547 | std::string current_grid = gHippoGridManager->getConnectedGrid()->getGridNick(); | ||
1548 | gSavedSettings.setString("LastConnectedGrid", current_grid); | ||
1549 | } | ||
1550 | |||
1517 | std::string text; | 1551 | std::string text; |
1518 | text = LLUserAuth::getInstance()->getResponse("udp_blacklist"); | 1552 | text = LLUserAuth::getInstance()->getResponse("udp_blacklist"); |
1519 | if(!text.empty()) | 1553 | if(!text.empty()) |
diff --git a/linden/indra/newview/lltexturectrl.cpp b/linden/indra/newview/lltexturectrl.cpp index 38849f9..ccc3ab2 100644 --- a/linden/indra/newview/lltexturectrl.cpp +++ b/linden/indra/newview/lltexturectrl.cpp | |||
@@ -1514,7 +1514,7 @@ void LLTextureCtrl::draw() | |||
1514 | (mTexturep->getDiscardLevel() != 1) && | 1514 | (mTexturep->getDiscardLevel() != 1) && |
1515 | (mTexturep->getDiscardLevel() != 0)) | 1515 | (mTexturep->getDiscardLevel() != 0)) |
1516 | { | 1516 | { |
1517 | LLFontGL* font = LLFontGL::getFontSansSerifBig(); | 1517 | LLFontGL* font = LLFontGL::getFontSansSerifLarge(); |
1518 | font->renderUTF8( | 1518 | font->renderUTF8( |
1519 | mLoadingPlaceholderString, 0, | 1519 | mLoadingPlaceholderString, 0, |
1520 | llfloor(interior.mLeft+10), | 1520 | llfloor(interior.mLeft+10), |
diff --git a/linden/indra/newview/lltoolpie.cpp b/linden/indra/newview/lltoolpie.cpp index 34735a3..b7d762c 100644 --- a/linden/indra/newview/lltoolpie.cpp +++ b/linden/indra/newview/lltoolpie.cpp | |||
@@ -800,6 +800,14 @@ BOOL LLToolPie::handleDoubleClick(S32 x, S32 y, MASK mask) | |||
800 | LL_DEBUGS("DoubleClicks") << "Double clicked a touch-scripted object" << LL_ENDL; | 800 | LL_DEBUGS("DoubleClicks") << "Double clicked a touch-scripted object" << LL_ENDL; |
801 | return FALSE; | 801 | return FALSE; |
802 | } | 802 | } |
803 | |||
804 | const LLTextureEntry* tep = object->getTE(mPick.mObjectFace); | ||
805 | viewer_media_t media_impl = LLViewerMedia::getMediaImplFromTextureID(tep->getID()); | ||
806 | if (tep && media_impl.notNull() && media_impl->hasMedia()) | ||
807 | { | ||
808 | LL_DEBUGS("DoubleClicks") << "Double clicked running parcel media" << LL_ENDL; | ||
809 | return FALSE; | ||
810 | } | ||
803 | } | 811 | } |
804 | 812 | ||
805 | std::string action = gSavedSettings.getString("DoubleClickAction"); | 813 | std::string action = gSavedSettings.getString("DoubleClickAction"); |
@@ -938,19 +946,16 @@ static bool handle_media_click(const LLPickInfo& pick) | |||
938 | if (tep | 946 | if (tep |
939 | && media_impl.notNull() | 947 | && media_impl.notNull() |
940 | && media_impl->hasMedia() | 948 | && media_impl->hasMedia() |
941 | && gSavedSettings.getBOOL("MediaOnAPrimUI")) | 949 | /*&& gSavedSettings.getBOOL("MediaOnAPrimUI")*/) |
942 | { | 950 | { |
943 | LLObjectSelectionHandle selection = LLViewerMediaFocus::getInstance()->getSelection(); | 951 | LLObjectSelectionHandle selection = LLViewerMediaFocus::getInstance()->getSelection(); |
944 | if (! selection->contains(pick.getObject(), pick.mObjectFace)) | 952 | if (! selection->contains(pick.getObject(), pick.mObjectFace)) |
945 | { | 953 | { |
946 | LLViewerMediaFocus::getInstance()->setFocusFace(TRUE, pick.getObject(), pick.mObjectFace, media_impl); | 954 | LLViewerMediaFocus::getInstance()->setFocusFace(TRUE, pick.getObject(), pick.mObjectFace, media_impl); |
947 | } | 955 | } |
948 | else | ||
949 | { | ||
950 | media_impl->mouseDown(pick.mXYCoords.mX, pick.mXYCoords.mY); | ||
951 | media_impl->mouseCapture(); // the mouse-up will happen when capture is lost | ||
952 | } | ||
953 | 956 | ||
957 | media_impl->mouseDown(pick.mXYCoords.mX, pick.mXYCoords.mY); | ||
958 | media_impl->mouseCapture(); // the mouse-up will happen when capture is lost | ||
954 | return true; | 959 | return true; |
955 | } | 960 | } |
956 | 961 | ||
diff --git a/linden/indra/newview/llviewermedia.cpp b/linden/indra/newview/llviewermedia.cpp index 417f5ff..2ba6b50 100644 --- a/linden/indra/newview/llviewermedia.cpp +++ b/linden/indra/newview/llviewermedia.cpp | |||
@@ -267,6 +267,23 @@ std::string LLViewerMedia::getCurrentUserAgent() | |||
267 | 267 | ||
268 | return codec.str(); | 268 | return codec.str(); |
269 | } | 269 | } |
270 | |||
271 | ///////////////////////////////////////////////////////////////////////////////////////// | ||
272 | // static | ||
273 | void LLViewerMedia::setProxyConfig(bool enable, const std::string &host, int port) | ||
274 | { | ||
275 | // Set the proxy config for all loaded plugins | ||
276 | impl_list::iterator iter = sViewerMediaImplList.begin(); | ||
277 | impl_list::iterator end = sViewerMediaImplList.end(); | ||
278 | for (; iter != end; iter++) | ||
279 | { | ||
280 | LLViewerMediaImpl* pimpl = *iter; | ||
281 | if(pimpl->mMediaSource) | ||
282 | { | ||
283 | pimpl->mMediaSource->proxy_setup(enable, host, port); | ||
284 | } | ||
285 | } | ||
286 | } | ||
270 | 287 | ||
271 | ////////////////////////////////////////////////////////////////////////////////////////// | 288 | ////////////////////////////////////////////////////////////////////////////////////////// |
272 | // static | 289 | // static |
@@ -395,6 +412,19 @@ LLViewerMediaImpl::~LLViewerMediaImpl() | |||
395 | LLViewerMedia::removeMedia(this); | 412 | LLViewerMedia::removeMedia(this); |
396 | } | 413 | } |
397 | 414 | ||
415 | //static | ||
416 | void LLViewerMediaImpl::setProxy(LLPluginClassMedia* media_source) | ||
417 | { | ||
418 | // pass proxy settings to browser | ||
419 | bool proxy_enabled = gSavedSettings.getBOOL( "BrowserProxyEnabled" ); | ||
420 | std::string proxy_address = gSavedSettings.getString("BrowserProxyAddress"); | ||
421 | S32 proxy_port = gSavedSettings.getS32("BrowserProxyPort"); | ||
422 | media_source->proxy_setup(proxy_enabled, proxy_address, proxy_port); | ||
423 | LL_DEBUGS("Media") << "Proxy: " << (proxy_enabled ? "enabled" : "not enabled") | ||
424 | << " Address: " << proxy_address | ||
425 | << " Port: " << proxy_port << LL_ENDL; | ||
426 | } | ||
427 | |||
398 | ////////////////////////////////////////////////////////////////////////////////////////// | 428 | ////////////////////////////////////////////////////////////////////////////////////////// |
399 | bool LLViewerMediaImpl::initializeMedia(const std::string& mime_type) | 429 | bool LLViewerMediaImpl::initializeMedia(const std::string& mime_type) |
400 | { | 430 | { |
@@ -411,6 +441,11 @@ bool LLViewerMediaImpl::initializeMedia(const std::string& mime_type) | |||
411 | } | 441 | } |
412 | } | 442 | } |
413 | 443 | ||
444 | if(mMediaSource) | ||
445 | { | ||
446 | setProxy(mMediaSource); | ||
447 | } | ||
448 | |||
414 | // play(); | 449 | // play(); |
415 | return (mMediaSource != NULL); | 450 | return (mMediaSource != NULL); |
416 | } | 451 | } |
@@ -508,6 +543,8 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_ | |||
508 | bool javascript_enabled = gSavedSettings.getBOOL( "BrowserJavascriptEnabled" ); | 543 | bool javascript_enabled = gSavedSettings.getBOOL( "BrowserJavascriptEnabled" ); |
509 | media_source->setJavascriptEnabled( javascript_enabled ); | 544 | media_source->setJavascriptEnabled( javascript_enabled ); |
510 | 545 | ||
546 | setProxy(media_source); | ||
547 | |||
511 | if (media_source->init(launcher_name, plugin_name, gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins"))) | 548 | if (media_source->init(launcher_name, plugin_name, gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins"))) |
512 | { | 549 | { |
513 | return media_source; | 550 | return media_source; |
@@ -741,6 +778,7 @@ void LLViewerMediaImpl::navigateHome() | |||
741 | ////////////////////////////////////////////////////////////////////////////////////////// | 778 | ////////////////////////////////////////////////////////////////////////////////////////// |
742 | void LLViewerMediaImpl::navigateTo(const std::string& url, const std::string& mime_type, bool rediscover_type) | 779 | void LLViewerMediaImpl::navigateTo(const std::string& url, const std::string& mime_type, bool rediscover_type) |
743 | { | 780 | { |
781 | |||
744 | if(rediscover_type) | 782 | if(rediscover_type) |
745 | { | 783 | { |
746 | 784 | ||
diff --git a/linden/indra/newview/llviewermedia.h b/linden/indra/newview/llviewermedia.h index 43895c9..b2c95c0 100644 --- a/linden/indra/newview/llviewermedia.h +++ b/linden/indra/newview/llviewermedia.h | |||
@@ -79,6 +79,10 @@ class LLViewerMedia | |||
79 | static void removeMedia(LLViewerMediaImpl* media); | 79 | static void removeMedia(LLViewerMediaImpl* media); |
80 | static LLViewerMediaImpl* getMediaImplFromTextureID(const LLUUID& texture_id); | 80 | static LLViewerMediaImpl* getMediaImplFromTextureID(const LLUUID& texture_id); |
81 | static std::string getCurrentUserAgent(); | 81 | static std::string getCurrentUserAgent(); |
82 | |||
83 | // Set the proxy config for all loaded plugins | ||
84 | static void setProxyConfig(bool enable, const std::string &host, int port); | ||
85 | |||
82 | static void updateBrowserUserAgent(); | 86 | static void updateBrowserUserAgent(); |
83 | static bool handleSkinCurrentChanged(const LLSD& /*newvalue*/); | 87 | static bool handleSkinCurrentChanged(const LLSD& /*newvalue*/); |
84 | static bool textureHasMedia(const LLUUID& texture_id); | 88 | static bool textureHasMedia(const LLUUID& texture_id); |
@@ -109,6 +113,7 @@ public: | |||
109 | void createMediaSource(); | 113 | void createMediaSource(); |
110 | void destroyMediaSource(); | 114 | void destroyMediaSource(); |
111 | void setMediaType(const std::string& media_type); | 115 | void setMediaType(const std::string& media_type); |
116 | static void setProxy(LLPluginClassMedia* media_source); | ||
112 | bool initializeMedia(const std::string& mime_type); | 117 | bool initializeMedia(const std::string& mime_type); |
113 | bool initializePlugin(const std::string& media_type); | 118 | bool initializePlugin(const std::string& media_type); |
114 | LLPluginClassMedia* getMediaPlugin() { return mMediaSource; } | 119 | LLPluginClassMedia* getMediaPlugin() { return mMediaSource; } |
diff --git a/linden/indra/newview/llviewermediafocus.cpp b/linden/indra/newview/llviewermediafocus.cpp index 2e372a1..c81cd76 100644 --- a/linden/indra/newview/llviewermediafocus.cpp +++ b/linden/indra/newview/llviewermediafocus.cpp | |||
@@ -48,6 +48,7 @@ | |||
48 | #include "llparcel.h" | 48 | #include "llparcel.h" |
49 | #include "llviewerparcelmgr.h" | 49 | #include "llviewerparcelmgr.h" |
50 | #include "llweb.h" | 50 | #include "llweb.h" |
51 | #include "llviewercontrol.h"//gSavedSettings | ||
51 | // | 52 | // |
52 | // LLViewerMediaFocus | 53 | // LLViewerMediaFocus |
53 | // | 54 | // |
@@ -99,7 +100,7 @@ void LLViewerMediaFocus::setFocusFace( BOOL b, LLPointer<LLViewerObject> objectp | |||
99 | LLSelectMgr::getInstance()->selectObjectOnly(objectp, face); | 100 | LLSelectMgr::getInstance()->selectObjectOnly(objectp, face); |
100 | 101 | ||
101 | mFocus = LLSelectMgr::getInstance()->getSelection(); | 102 | mFocus = LLSelectMgr::getInstance()->getSelection(); |
102 | if(mMediaHUD.get() && ! parcel->getMediaPreventCameraZoom()) | 103 | if(gSavedSettings.getBOOL("MediaOnAPrimUI") && mMediaHUD.get() && ! parcel->getMediaPreventCameraZoom()) |
103 | { | 104 | { |
104 | mMediaHUD.get()->resetZoomLevel(); | 105 | mMediaHUD.get()->resetZoomLevel(); |
105 | mMediaHUD.get()->nextZoomLevel(); | 106 | mMediaHUD.get()->nextZoomLevel(); |
@@ -224,14 +225,20 @@ void LLViewerMediaFocus::setMouseOverFlag(bool b, viewer_media_t media_impl) | |||
224 | { | 225 | { |
225 | if (b && media_impl.notNull()) | 226 | if (b && media_impl.notNull()) |
226 | { | 227 | { |
227 | if(! mMediaHUD.get()) | 228 | |
229 | if(! mMediaHUD.get() && gSavedSettings.getBOOL("MediaOnAPrimUI")) | ||
228 | { | 230 | { |
229 | LLPanelMediaHUD* media_hud = new LLPanelMediaHUD(mMediaImpl); | 231 | LLPanelMediaHUD* media_hud = new LLPanelMediaHUD(mMediaImpl); |
230 | mMediaHUD = media_hud->getHandle(); | 232 | mMediaHUD = media_hud->getHandle(); |
231 | gHUDView->addChild(media_hud); | 233 | gHUDView->addChild(media_hud); |
232 | } | 234 | } |
233 | mMediaHUD.get()->setMediaImpl(media_impl); | 235 | |
236 | if(mMediaHUD.get()) | ||
237 | { | ||
238 | mMediaHUD.get()->setMediaImpl(media_impl); | ||
239 | } | ||
234 | mMediaImpl = media_impl; | 240 | mMediaImpl = media_impl; |
241 | |||
235 | } | 242 | } |
236 | mMouseOverFlag = b; | 243 | mMouseOverFlag = b; |
237 | } | 244 | } |
@@ -281,7 +288,10 @@ void LLViewerMediaFocus::update() | |||
281 | { | 288 | { |
282 | if (mMediaHUD.get()) | 289 | if (mMediaHUD.get()) |
283 | { | 290 | { |
284 | if(mFocus.notNull() || mMouseOverFlag || mMediaHUD.get()->isMouseOver()) | 291 | if(gSavedSettings.getBOOL("MediaOnAPrimUI") |
292 | &&(mFocus.notNull() | ||
293 | || mMouseOverFlag | ||
294 | || mMediaHUD.get()->isMouseOver() ) ) | ||
285 | { | 295 | { |
286 | // mMediaHUD.get()->setVisible(true); | 296 | // mMediaHUD.get()->setVisible(true); |
287 | mMediaHUD.get()->updateShape(); | 297 | mMediaHUD.get()->updateShape(); |
diff --git a/linden/indra/newview/llviewerparcelmedia.cpp b/linden/indra/newview/llviewerparcelmedia.cpp index a5d97f2..386a86e 100644 --- a/linden/indra/newview/llviewerparcelmedia.cpp +++ b/linden/indra/newview/llviewerparcelmedia.cpp | |||
@@ -49,6 +49,7 @@ | |||
49 | #include "llpluginclassmedia.h" | 49 | #include "llpluginclassmedia.h" |
50 | #include "llnotify.h" | 50 | #include "llnotify.h" |
51 | #include "llsdserialize.h" | 51 | #include "llsdserialize.h" |
52 | #include "llmemory.h" | ||
52 | 53 | ||
53 | #include "lloverlaybar.h" | 54 | #include "lloverlaybar.h" |
54 | #include "slfloatermediafilter.h" | 55 | #include "slfloatermediafilter.h" |
@@ -64,6 +65,7 @@ LLSD LLViewerParcelMedia::sMediaFilterList; | |||
64 | std::set<std::string> LLViewerParcelMedia::sMediaQueries; | 65 | std::set<std::string> LLViewerParcelMedia::sMediaQueries; |
65 | std::set<std::string> LLViewerParcelMedia::sAllowedMedia; | 66 | std::set<std::string> LLViewerParcelMedia::sAllowedMedia; |
66 | std::set<std::string> LLViewerParcelMedia::sDeniedMedia; | 67 | std::set<std::string> LLViewerParcelMedia::sDeniedMedia; |
68 | LLPointer<LLViewerParcelMediaInfo> LLViewerParcelMedia::sSavedMediaInfo; | ||
67 | 69 | ||
68 | // Local functions | 70 | // Local functions |
69 | bool callback_play_media(const LLSD& notification, const LLSD& response, LLParcel* parcel); | 71 | bool callback_play_media(const LLSD& notification, const LLSD& response, LLParcel* parcel); |
@@ -186,7 +188,7 @@ void LLViewerParcelMedia::update(LLParcel* parcel) | |||
186 | } | 188 | } |
187 | 189 | ||
188 | // static | 190 | // static |
189 | void LLViewerParcelMedia::play(LLParcel* parcel, bool filter) | 191 | void LLViewerParcelMedia::play(LLParcel* parcel, bool filter, const ECommandOrigin origin) |
190 | { | 192 | { |
191 | lldebugs << "LLViewerParcelMedia::play" << llendl; | 193 | lldebugs << "LLViewerParcelMedia::play" << llendl; |
192 | 194 | ||
@@ -198,12 +200,13 @@ void LLViewerParcelMedia::play(LLParcel* parcel, bool filter) | |||
198 | std::string media_url = parcel->getMediaURL(); | 200 | std::string media_url = parcel->getMediaURL(); |
199 | LLStringUtil::trim(media_url); | 201 | LLStringUtil::trim(media_url); |
200 | 202 | ||
201 | if (!media_url.empty() && gSavedSettings.getBOOL("MediaEnableFilter") && (filter || !allowedMedia(media_url))) | 203 | if (!media_url.empty() && gSavedSettings.getBOOL("MediaEnableFilter") && filter |
204 | && (!allowedMedia(media_url) || origin == COMMAND_ORIGIN_REMOTE)) | ||
202 | { | 205 | { |
203 | // If filtering is needed or in case media_url just changed | 206 | // If filtering is needed or in case media_url just changed |
204 | // to something we did not yet approve. | 207 | // to something we did not yet approve. |
205 | LLViewerParcelMediaAutoPlay::playStarted(); | 208 | LLViewerParcelMediaAutoPlay::playStarted(); |
206 | filterMedia(parcel, 0); | 209 | filterMedia(parcel, 0, origin); |
207 | return; | 210 | return; |
208 | } | 211 | } |
209 | 212 | ||
@@ -384,7 +387,7 @@ void LLViewerParcelMedia::processParcelMediaCommandMessage( LLMessageSystem *msg | |||
384 | else | 387 | else |
385 | { | 388 | { |
386 | LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); | 389 | LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); |
387 | play(parcel); | 390 | play(parcel, true, COMMAND_ORIGIN_REMOTE); |
388 | } | 391 | } |
389 | } | 392 | } |
390 | else | 393 | else |
@@ -400,7 +403,7 @@ void LLViewerParcelMedia::processParcelMediaCommandMessage( LLMessageSystem *msg | |||
400 | if(sMediaImpl.isNull()) | 403 | if(sMediaImpl.isNull()) |
401 | { | 404 | { |
402 | LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); | 405 | LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); |
403 | play(parcel); | 406 | play(parcel, true, COMMAND_ORIGIN_REMOTE); |
404 | } | 407 | } |
405 | seek(time); | 408 | seek(time); |
406 | } | 409 | } |
@@ -437,33 +440,38 @@ void LLViewerParcelMedia::processParcelMediaUpdate( LLMessageSystem *msg, void * | |||
437 | } | 440 | } |
438 | 441 | ||
439 | LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); | 442 | LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); |
440 | BOOL same = FALSE; | ||
441 | if (parcel) | 443 | if (parcel) |
442 | { | 444 | { |
443 | same = ((parcel->getMediaURL() == media_url) && | 445 | LLViewerParcelMediaInfo* new_info = new LLViewerParcelMediaInfo(media_url, media_type, media_id, media_width, media_height, media_auto_scale, media_loop); |
444 | (parcel->getMediaType() == media_type) && | 446 | LLViewerParcelMediaInfo* current_info = new LLViewerParcelMediaInfo(parcel); |
445 | (parcel->getMediaID() == media_id) && | 447 | if (new_info != current_info) |
446 | (parcel->getMediaWidth() == media_width) && | ||
447 | (parcel->getMediaHeight() == media_height) && | ||
448 | (parcel->getMediaAutoScale() == media_auto_scale) && | ||
449 | (parcel->getMediaLoop() == media_loop)); | ||
450 | |||
451 | if (!same) | ||
452 | { | 448 | { |
449 | if (!sSavedMediaInfo || (sSavedMediaInfo && !sSavedMediaInfo->sameParcel(parcel))) | ||
450 | { | ||
451 | // only save if no previously saved media info, because | ||
452 | // we want to remeber the original parcel media info. | ||
453 | sSavedMediaInfo = current_info; | ||
454 | } | ||
453 | // temporarily store these new values in the parcel | 455 | // temporarily store these new values in the parcel |
454 | parcel->setMediaURL(media_url); | 456 | new_info->applyToParcel(parcel); |
455 | parcel->setMediaType(media_type); | ||
456 | parcel->setMediaID(media_id); | ||
457 | parcel->setMediaWidth(media_width); | ||
458 | parcel->setMediaHeight(media_height); | ||
459 | parcel->setMediaAutoScale(media_auto_scale); | ||
460 | parcel->setMediaLoop(media_loop); | ||
461 | 457 | ||
462 | play(parcel); | 458 | play(parcel, true, COMMAND_ORIGIN_REMOTE); |
463 | } | 459 | } |
464 | 460 | ||
465 | } | 461 | } |
466 | } | 462 | } |
463 | |||
464 | //static | ||
465 | void LLViewerParcelMedia::undoParcelMediaUpdate() | ||
466 | { | ||
467 | LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); | ||
468 | if (sSavedMediaInfo.notNull() && parcel) | ||
469 | { | ||
470 | sSavedMediaInfo->applyToParcel(parcel); | ||
471 | } | ||
472 | sSavedMediaInfo = NULL; | ||
473 | } | ||
474 | |||
467 | // Static | 475 | // Static |
468 | ///////////////////////////////////////////////////////////////////////////////////////// | 476 | ///////////////////////////////////////////////////////////////////////////////////////// |
469 | void LLViewerParcelMedia::sendMediaNavigateMessage(const std::string& url) | 477 | void LLViewerParcelMedia::sendMediaNavigateMessage(const std::string& url) |
@@ -619,7 +627,7 @@ void LLViewerParcelMedia::playStreamingMusic(LLParcel* parcel, bool filter) | |||
619 | { | 627 | { |
620 | // If filtering is needed or in case music_url just changed | 628 | // If filtering is needed or in case music_url just changed |
621 | // to something we did not yet approve. | 629 | // to something we did not yet approve. |
622 | filterMedia(parcel, 1); | 630 | filterMedia(parcel, 1, COMMAND_ORIGIN_LOCAL); |
623 | } | 631 | } |
624 | else if (gAudioStream) | 632 | else if (gAudioStream) |
625 | { | 633 | { |
@@ -649,13 +657,18 @@ bool LLViewerParcelMedia::allowedMedia(std::string media_url) | |||
649 | { | 657 | { |
650 | LLStringUtil::trim(media_url); | 658 | LLStringUtil::trim(media_url); |
651 | std::string domain = extractDomain(media_url); | 659 | std::string domain = extractDomain(media_url); |
660 | LLHost host; | ||
661 | host.setHostByName(domain); | ||
662 | std::string ip = host.getIPString(); | ||
652 | if (sAllowedMedia.count(domain)) | 663 | if (sAllowedMedia.count(domain)) |
653 | { | 664 | { |
654 | return true; | 665 | return true; |
655 | } | 666 | } |
667 | std::string server; | ||
656 | for (S32 i = 0; i < (S32)sMediaFilterList.size(); i++) | 668 | for (S32 i = 0; i < (S32)sMediaFilterList.size(); i++) |
657 | { | 669 | { |
658 | if (sMediaFilterList[i]["domain"].asString() == domain) | 670 | server = sMediaFilterList[i]["domain"].asString(); |
671 | if (server == domain || server == ip) | ||
659 | { | 672 | { |
660 | if (sMediaFilterList[i]["action"].asString() == "allow") | 673 | if (sMediaFilterList[i]["action"].asString() == "allow") |
661 | { | 674 | { |
@@ -670,12 +683,13 @@ bool LLViewerParcelMedia::allowedMedia(std::string media_url) | |||
670 | return false; | 683 | return false; |
671 | } | 684 | } |
672 | 685 | ||
673 | void LLViewerParcelMedia::filterMedia(LLParcel* parcel, U32 type) | 686 | void LLViewerParcelMedia::filterMedia(LLParcel* parcel, U32 type, const ECommandOrigin origin) |
674 | { | 687 | { |
675 | std::string media_action; | 688 | std::string media_action; |
676 | std::string media_url; | 689 | std::string media_url; |
677 | std::string domain; | 690 | std::string domain; |
678 | 691 | std::string ip; | |
692 | |||
679 | if (parcel != LLViewerParcelMgr::getInstance()->getAgentParcel()) | 693 | if (parcel != LLViewerParcelMgr::getInstance()->getAgentParcel()) |
680 | { | 694 | { |
681 | // The parcel just changed (may occur right out after a TP) | 695 | // The parcel just changed (may occur right out after a TP) |
@@ -703,31 +717,51 @@ void LLViewerParcelMedia::filterMedia(LLParcel* parcel, U32 type) | |||
703 | return; | 717 | return; |
704 | } | 718 | } |
705 | 719 | ||
720 | LLHost host; | ||
721 | host.setHostByName(domain); | ||
722 | ip = host.getIPString(); | ||
723 | |||
706 | if (sIsUserAction) | 724 | if (sIsUserAction) |
707 | { | 725 | { |
708 | // This was a user manual request to play this media, so give | 726 | // This was a user manual request to play this media, so give |
709 | // it another chance... | 727 | // it another chance... |
710 | sIsUserAction = false; | 728 | sIsUserAction = false; |
729 | bool dirty = false; | ||
711 | if (sDeniedMedia.count(domain)) | 730 | if (sDeniedMedia.count(domain)) |
712 | { | 731 | { |
713 | sDeniedMedia.erase(domain); | 732 | sDeniedMedia.erase(domain); |
733 | dirty = true; | ||
734 | } | ||
735 | if (sDeniedMedia.count(ip)) | ||
736 | { | ||
737 | sDeniedMedia.erase(ip); | ||
738 | dirty = true; | ||
739 | } | ||
740 | if (dirty) | ||
741 | { | ||
714 | SLFloaterMediaFilter::setDirty(); | 742 | SLFloaterMediaFilter::setDirty(); |
715 | } | 743 | } |
716 | } | 744 | } |
717 | 745 | ||
718 | if (!sMediaFilterListLoaded || sDeniedMedia.count(domain)) | 746 | if (media_url.empty()) |
747 | { | ||
748 | media_action == "allow"; | ||
749 | } | ||
750 | else if (!sMediaFilterListLoaded || sDeniedMedia.count(domain) || sDeniedMedia.count(ip)) | ||
719 | { | 751 | { |
720 | media_action = "ignore"; | 752 | media_action = "ignore"; |
721 | } | 753 | } |
722 | else if (sAllowedMedia.count(domain)) | 754 | else if (sAllowedMedia.count(domain) || sAllowedMedia.count(ip)) |
723 | { | 755 | { |
724 | media_action = "allow"; | 756 | media_action = "allow"; |
725 | } | 757 | } |
726 | else | 758 | else |
727 | { | 759 | { |
760 | std::string server; | ||
728 | for (S32 i = 0; i < (S32)sMediaFilterList.size(); i++) | 761 | for (S32 i = 0; i < (S32)sMediaFilterList.size(); i++) |
729 | { | 762 | { |
730 | if (sMediaFilterList[i]["domain"].asString() == domain) | 763 | server = sMediaFilterList[i]["domain"].asString(); |
764 | if (server == domain || server == ip) | ||
731 | { | 765 | { |
732 | media_action = sMediaFilterList[i]["action"].asString(); | 766 | media_action = sMediaFilterList[i]["action"].asString(); |
733 | break; | 767 | break; |
@@ -735,7 +769,7 @@ void LLViewerParcelMedia::filterMedia(LLParcel* parcel, U32 type) | |||
735 | } | 769 | } |
736 | } | 770 | } |
737 | 771 | ||
738 | if (media_action == "allow" || media_url.empty()) | 772 | if (media_action == "allow") |
739 | { | 773 | { |
740 | if (type == 0) | 774 | if (type == 0) |
741 | { | 775 | { |
@@ -745,47 +779,76 @@ void LLViewerParcelMedia::filterMedia(LLParcel* parcel, U32 type) | |||
745 | { | 779 | { |
746 | playStreamingMusic(parcel, false); | 780 | playStreamingMusic(parcel, false); |
747 | } | 781 | } |
782 | return; | ||
748 | } | 783 | } |
749 | else if (media_action == "deny") | 784 | if (media_action == "ignore") |
750 | { | 785 | { |
751 | LLSD args; | 786 | if (type == 0) |
752 | args["DOMAIN"] = domain; | 787 | { |
753 | LLNotifications::instance().add("MediaBlocked", args); | 788 | undoParcelMediaUpdate(); |
754 | if (type == 1) | 789 | } |
790 | else if (type == 1) | ||
755 | { | 791 | { |
756 | LLViewerParcelMedia::stopStreamingMusic(); | 792 | LLViewerParcelMedia::stopStreamingMusic(); |
757 | } | 793 | } |
758 | // So to avoid other "blocked" messages later in the session | 794 | return; |
759 | // for this url should it be requested again by a script. | ||
760 | sDeniedMedia.insert(domain); | ||
761 | } | 795 | } |
762 | else if (media_action == "ignore") | 796 | // skip local-originating play commands, unless the url is blacklisted. |
797 | if (gSavedSettings.getBOOL("MediaFilterOnlyRemoteCommands") | ||
798 | && (origin != COMMAND_ORIGIN_REMOTE) | ||
799 | && (media_action != "ignore")) | ||
763 | { | 800 | { |
764 | if (type == 1) | 801 | sAllowedMedia.insert(domain); |
802 | SLFloaterMediaFilter::setDirty(); | ||
803 | if (type == 0) | ||
765 | { | 804 | { |
766 | LLViewerParcelMedia::stopStreamingMusic(); | 805 | play(parcel, false); |
767 | } | 806 | } |
807 | else | ||
808 | { | ||
809 | playStreamingMusic(parcel, false); | ||
810 | } | ||
811 | return; | ||
812 | } | ||
813 | |||
814 | LLSD args; | ||
815 | if (ip != domain && domain.find('/') == std::string::npos) | ||
816 | { | ||
817 | args["DOMAIN"] = domain + " (" + ip + ")"; | ||
768 | } | 818 | } |
769 | else | 819 | else |
770 | { | 820 | { |
771 | sMediaQueries.insert(domain); | ||
772 | LLSD args; | ||
773 | args["DOMAIN"] = domain; | 821 | args["DOMAIN"] = domain; |
774 | if (media_url.find('?') != std::string::npos) | 822 | } |
823 | |||
824 | if (media_action == "deny") | ||
825 | { | ||
826 | LLNotifications::instance().add("MediaBlocked", args); | ||
827 | if (type == 0) | ||
775 | { | 828 | { |
776 | args["WARNING"] = " (WARNING: this URL also contains parameter(s) that could potentially be used to correlate your avatar name with your IP)"; | 829 | undoParcelMediaUpdate(); |
777 | } | 830 | } |
778 | else | 831 | if (type == 1) |
779 | { | 832 | { |
780 | args["WARNING"] = ""; | 833 | LLViewerParcelMedia::stopStreamingMusic(); |
781 | } | 834 | } |
835 | // So to avoid other "blocked" messages later in the session | ||
836 | // for this url should it be requested again by a script. | ||
837 | // We don't add the IP, on purpose (want to show different | ||
838 | // blocks for different domains pointing to the same IP). | ||
839 | sDeniedMedia.insert(domain); | ||
840 | } | ||
841 | else | ||
842 | { | ||
843 | sMediaQueries.insert(domain); | ||
844 | args["URL"] = media_url; | ||
782 | if (type == 0) | 845 | if (type == 0) |
783 | { | 846 | { |
784 | args["TYPE"] = "a media"; | 847 | args["TYPE"] = "media"; |
785 | } | 848 | } |
786 | else | 849 | else |
787 | { | 850 | { |
788 | args["TYPE"] = "an audio"; | 851 | args["TYPE"] = "audio"; |
789 | } | 852 | } |
790 | LLNotifications::instance().add("MediaAlert", args, LLSD(), boost::bind(callback_media_alert, _1, _2, parcel, type, domain)); | 853 | LLNotifications::instance().add("MediaAlert", args, LLSD(), boost::bind(callback_media_alert, _1, _2, parcel, type, domain)); |
791 | } | 854 | } |
@@ -795,8 +858,19 @@ void callback_media_alert(const LLSD ¬ification, const LLSD &response, LLParc | |||
795 | { | 858 | { |
796 | S32 option = LLNotification::getSelectedOption(notification, response); | 859 | S32 option = LLNotification::getSelectedOption(notification, response); |
797 | 860 | ||
861 | LLHost host; | ||
862 | host.setHostByName(domain); | ||
863 | std::string ip = host.getIPString(); | ||
864 | |||
798 | LLSD args; | 865 | LLSD args; |
799 | args["DOMAIN"] = domain; | 866 | if (ip != domain && domain.find('/') == std::string::npos) |
867 | { | ||
868 | args["DOMAIN"] = domain + " (" + ip + ")"; | ||
869 | } | ||
870 | else | ||
871 | { | ||
872 | args["DOMAIN"] = domain; | ||
873 | } | ||
800 | 874 | ||
801 | if (option == 0 || option == 3) // Allow or Whitelist | 875 | if (option == 0 || option == 3) // Allow or Whitelist |
802 | { | 876 | { |
@@ -807,6 +881,11 @@ void callback_media_alert(const LLSD ¬ification, const LLSD &response, LLParc | |||
807 | newmedia["domain"] = domain; | 881 | newmedia["domain"] = domain; |
808 | newmedia["action"] = "allow"; | 882 | newmedia["action"] = "allow"; |
809 | LLViewerParcelMedia::sMediaFilterList.append(newmedia); | 883 | LLViewerParcelMedia::sMediaFilterList.append(newmedia); |
884 | if (ip != domain && domain.find('/') == std::string::npos) | ||
885 | { | ||
886 | newmedia["domain"] = ip; | ||
887 | LLViewerParcelMedia::sMediaFilterList.append(newmedia); | ||
888 | } | ||
810 | LLViewerParcelMedia::saveDomainFilterList(); | 889 | LLViewerParcelMedia::saveDomainFilterList(); |
811 | args["LISTED"] = "whitelisted"; | 890 | args["LISTED"] = "whitelisted"; |
812 | LLNotifications::instance().add("MediaListed", args); | 891 | LLNotifications::instance().add("MediaListed", args); |
@@ -823,10 +902,19 @@ void callback_media_alert(const LLSD ¬ification, const LLSD &response, LLParc | |||
823 | else if (option == 1 || option == 2) // Deny or Blacklist | 902 | else if (option == 1 || option == 2) // Deny or Blacklist |
824 | { | 903 | { |
825 | LLViewerParcelMedia::sDeniedMedia.insert(domain); | 904 | LLViewerParcelMedia::sDeniedMedia.insert(domain); |
826 | if (type == 1) | 905 | if (ip != domain && domain.find('/') == std::string::npos) |
906 | { | ||
907 | LLViewerParcelMedia::sDeniedMedia.insert(ip); | ||
908 | } | ||
909 | if (type == 0) | ||
910 | { | ||
911 | LLViewerParcelMedia::undoParcelMediaUpdate(); | ||
912 | } | ||
913 | else if (type == 1) | ||
827 | { | 914 | { |
828 | LLViewerParcelMedia::stopStreamingMusic(); | 915 | LLViewerParcelMedia::stopStreamingMusic(); |
829 | } | 916 | } |
917 | |||
830 | if (option == 1) // Deny | 918 | if (option == 1) // Deny |
831 | { | 919 | { |
832 | LLNotifications::instance().add("MediaBlocked", args); | 920 | LLNotifications::instance().add("MediaBlocked", args); |
@@ -837,6 +925,11 @@ void callback_media_alert(const LLSD ¬ification, const LLSD &response, LLParc | |||
837 | newmedia["domain"] = domain; | 925 | newmedia["domain"] = domain; |
838 | newmedia["action"] = "deny"; | 926 | newmedia["action"] = "deny"; |
839 | LLViewerParcelMedia::sMediaFilterList.append(newmedia); | 927 | LLViewerParcelMedia::sMediaFilterList.append(newmedia); |
928 | if (ip != domain && domain.find('/') == std::string::npos) | ||
929 | { | ||
930 | newmedia["domain"] = ip; | ||
931 | LLViewerParcelMedia::sMediaFilterList.append(newmedia); | ||
932 | } | ||
840 | LLViewerParcelMedia::saveDomainFilterList(); | 933 | LLViewerParcelMedia::saveDomainFilterList(); |
841 | args["LISTED"] = "blacklisted"; | 934 | args["LISTED"] = "blacklisted"; |
842 | LLNotifications::instance().add("MediaListed", args); | 935 | LLNotifications::instance().add("MediaListed", args); |
@@ -928,7 +1021,12 @@ std::string LLViewerParcelMedia::extractDomain(std::string url) | |||
928 | url = url.substr(pos + 1, count); | 1021 | url = url.substr(pos + 1, count); |
929 | } | 1022 | } |
930 | 1023 | ||
931 | if (url.find(gAgent.getRegion()->getHost().getHostName()) == 0 || url.find(last_region) == 0) | 1024 | std::string current_region = gAgent.getRegion()->getHost().getHostName(); |
1025 | if (!current_region.size()) | ||
1026 | { | ||
1027 | current_region = gAgent.getRegion()->getHost().getIPString(); | ||
1028 | } | ||
1029 | if (url.find(current_region) == 0 || url.find(last_region) == 0) | ||
932 | { | 1030 | { |
933 | // This must be a scripted object rezzed in the region: | 1031 | // This must be a scripted object rezzed in the region: |
934 | // extend the concept of "domain" to encompass the | 1032 | // extend the concept of "domain" to encompass the |
@@ -937,7 +1035,7 @@ std::string LLViewerParcelMedia::extractDomain(std::string url) | |||
937 | 1035 | ||
938 | // Get rid of any port number | 1036 | // Get rid of any port number |
939 | pos = url.find('/'); // We earlier made sure that there's one | 1037 | pos = url.find('/'); // We earlier made sure that there's one |
940 | url = gAgent.getRegion()->getHost().getHostName() + url.substr(pos); | 1038 | url = current_region + url.substr(pos); |
941 | 1039 | ||
942 | pos = url.find('?'); | 1040 | pos = url.find('?'); |
943 | if (pos != std::string::npos) | 1041 | if (pos != std::string::npos) |
@@ -972,6 +1070,73 @@ std::string LLViewerParcelMedia::extractDomain(std::string url) | |||
972 | // Remember this region, so to cope with requests occuring just after a | 1070 | // Remember this region, so to cope with requests occuring just after a |
973 | // TP out of it. | 1071 | // TP out of it. |
974 | last_region = gAgent.getRegion()->getHost().getHostName(); | 1072 | last_region = gAgent.getRegion()->getHost().getHostName(); |
1073 | if (!last_region.size()) | ||
1074 | { | ||
1075 | last_region = gAgent.getRegion()->getHost().getIPString(); | ||
1076 | } | ||
975 | 1077 | ||
976 | return url; | 1078 | return url; |
977 | } | 1079 | } |
1080 | |||
1081 | LLViewerParcelMediaInfo::LLViewerParcelMediaInfo(const std::string url, | ||
1082 | const std::string type, | ||
1083 | const LLUUID media_id, | ||
1084 | const S32 width, | ||
1085 | const S32 height, | ||
1086 | const U8 scale, | ||
1087 | const U8 loop) | ||
1088 | : | ||
1089 | mMediaURL(url), | ||
1090 | mMediaType(type), | ||
1091 | mMediaID(media_id), | ||
1092 | mMediaWidth(width), | ||
1093 | mMediaHeight(height), | ||
1094 | mMediaAutoScale(scale), | ||
1095 | mMediaLoop(loop) | ||
1096 | { | ||
1097 | LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel(); | ||
1098 | mParcelLocalID = parcel ? parcel->getLocalID() : 0; | ||
1099 | } | ||
1100 | |||
1101 | LLViewerParcelMediaInfo::LLViewerParcelMediaInfo(const LLParcel* parcel) | ||
1102 | { | ||
1103 | mMediaURL = parcel->getMediaURL(); | ||
1104 | mMediaType = parcel->getMediaType(); | ||
1105 | mMediaID = parcel->getMediaID(); | ||
1106 | mMediaWidth = parcel->getMediaWidth(); | ||
1107 | mMediaHeight = parcel->getMediaHeight(); | ||
1108 | mMediaAutoScale = parcel->getMediaAutoScale(); | ||
1109 | mMediaLoop = parcel->getMediaLoop(); | ||
1110 | mParcelLocalID = parcel->getLocalID(); | ||
1111 | } | ||
1112 | |||
1113 | void LLViewerParcelMediaInfo::applyToParcel(LLParcel* parcel) | ||
1114 | { | ||
1115 | if (parcel && sameParcel(parcel)) | ||
1116 | { | ||
1117 | parcel->setMediaURL(mMediaURL); | ||
1118 | parcel->setMediaType(mMediaType); | ||
1119 | parcel->setMediaID(mMediaID); | ||
1120 | parcel->setMediaWidth(mMediaWidth); | ||
1121 | parcel->setMediaHeight(mMediaHeight); | ||
1122 | parcel->setMediaAutoScale(mMediaAutoScale); | ||
1123 | parcel->setMediaLoop(mMediaLoop); | ||
1124 | } | ||
1125 | } | ||
1126 | |||
1127 | bool LLViewerParcelMediaInfo::sameParcel(const LLParcel* parcel) const | ||
1128 | { | ||
1129 | return parcel && (parcel->getLocalID() == mParcelLocalID); | ||
1130 | } | ||
1131 | |||
1132 | bool LLViewerParcelMediaInfo::operator==(const LLViewerParcelMediaInfo &rhs) const | ||
1133 | { | ||
1134 | return (mMediaURL == rhs.mMediaURL) && | ||
1135 | (mMediaType == rhs.mMediaType) && | ||
1136 | (mMediaID == rhs.mMediaID) && | ||
1137 | (mMediaWidth == rhs.mMediaWidth) && | ||
1138 | (mMediaHeight == rhs.mMediaHeight) && | ||
1139 | (mMediaAutoScale == rhs.mMediaAutoScale) && | ||
1140 | (mMediaLoop == rhs.mMediaLoop) && | ||
1141 | (mParcelLocalID == rhs.mParcelLocalID); | ||
1142 | } \ No newline at end of file | ||
diff --git a/linden/indra/newview/llviewerparcelmedia.h b/linden/indra/newview/llviewerparcelmedia.h index 7531a0f..f4c4312 100644 --- a/linden/indra/newview/llviewerparcelmedia.h +++ b/linden/indra/newview/llviewerparcelmedia.h | |||
@@ -34,6 +34,7 @@ | |||
34 | #define LLVIEWERPARCELMEDIA_H | 34 | #define LLVIEWERPARCELMEDIA_H |
35 | 35 | ||
36 | #include "llviewermedia.h" | 36 | #include "llviewermedia.h" |
37 | #include "llmemory.h" | ||
37 | 38 | ||
38 | // For use by other patches so they know that media filtering is implemented. | 39 | // For use by other patches so they know that media filtering is implemented. |
39 | #define MEDIA_FILTERING 1 | 40 | #define MEDIA_FILTERING 1 |
@@ -41,6 +42,7 @@ | |||
41 | class LLMessageSystem; | 42 | class LLMessageSystem; |
42 | class LLParcel; | 43 | class LLParcel; |
43 | class LLViewerParcelMediaNavigationObserver; | 44 | class LLViewerParcelMediaNavigationObserver; |
45 | class LLViewerParcelMediaInfo; | ||
44 | 46 | ||
45 | 47 | ||
46 | // This class understands land parcels, network traffic, LSL media | 48 | // This class understands land parcels, network traffic, LSL media |
@@ -49,6 +51,13 @@ class LLViewerParcelMediaNavigationObserver; | |||
49 | class LLViewerParcelMedia : public LLViewerMediaObserver | 51 | class LLViewerParcelMedia : public LLViewerMediaObserver |
50 | { | 52 | { |
51 | LOG_CLASS(LLViewerParcelMedia); | 53 | LOG_CLASS(LLViewerParcelMedia); |
54 | private: | ||
55 | typedef enum e_command_origin | ||
56 | { | ||
57 | COMMAND_ORIGIN_LOCAL, | ||
58 | COMMAND_ORIGIN_REMOTE | ||
59 | } ECommandOrigin; | ||
60 | |||
52 | public: | 61 | public: |
53 | static void initClass(); | 62 | static void initClass(); |
54 | static void cleanupClass(); | 63 | static void cleanupClass(); |
@@ -57,14 +66,14 @@ class LLViewerParcelMedia : public LLViewerMediaObserver | |||
57 | // called when the agent's parcel has a new URL, or the agent has | 66 | // called when the agent's parcel has a new URL, or the agent has |
58 | // walked on to a new parcel with media | 67 | // walked on to a new parcel with media |
59 | 68 | ||
60 | static void play(LLParcel* parcel, bool filter = true); | 69 | static void play(LLParcel* parcel, bool filter = true, const ECommandOrigin origin = COMMAND_ORIGIN_LOCAL); |
61 | // user clicked play button in media transport controls | 70 | // user clicked play button in media transport controls |
62 | static void playStreamingMusic(LLParcel* parcel, bool filter = true); | 71 | static void playStreamingMusic(LLParcel* parcel, bool filter = true); |
63 | // play the parcel music stream | 72 | // play the parcel music stream |
64 | static void stopStreamingMusic(); | 73 | static void stopStreamingMusic(); |
65 | // stop the parcel music stream | 74 | // stop the parcel music stream |
66 | 75 | ||
67 | static void filterMedia(LLParcel* parcel, U32 type); // type: 0 = media, 1 = streaming music | 76 | static void filterMedia(LLParcel* parcel, U32 type, const ECommandOrigin origin); // type: 0 = media, 1 = streaming music |
68 | static bool allowedMedia(std::string media_url); | 77 | static bool allowedMedia(std::string media_url); |
69 | 78 | ||
70 | static bool loadDomainFilterList(); | 79 | static bool loadDomainFilterList(); |
@@ -90,6 +99,7 @@ class LLViewerParcelMedia : public LLViewerMediaObserver | |||
90 | 99 | ||
91 | static void processParcelMediaCommandMessage( LLMessageSystem *msg, void ** ); | 100 | static void processParcelMediaCommandMessage( LLMessageSystem *msg, void ** ); |
92 | static void processParcelMediaUpdate( LLMessageSystem *msg, void ** ); | 101 | static void processParcelMediaUpdate( LLMessageSystem *msg, void ** ); |
102 | static void undoParcelMediaUpdate(); // reset the parcel's media to what it was before ParcelMediaUpdate | ||
93 | static void sendMediaNavigateMessage(const std::string& url); | 103 | static void sendMediaNavigateMessage(const std::string& url); |
94 | 104 | ||
95 | // inherited from LLViewerMediaObserver | 105 | // inherited from LLViewerMediaObserver |
@@ -107,6 +117,7 @@ class LLViewerParcelMedia : public LLViewerMediaObserver | |||
107 | static std::set<std::string> sMediaQueries; | 117 | static std::set<std::string> sMediaQueries; |
108 | static std::set<std::string> sAllowedMedia; | 118 | static std::set<std::string> sAllowedMedia; |
109 | static std::set<std::string> sDeniedMedia; | 119 | static std::set<std::string> sDeniedMedia; |
120 | static LLPointer<LLViewerParcelMediaInfo> sSavedMediaInfo; // The parcel original media (before a remote command is applied) | ||
110 | }; | 121 | }; |
111 | 122 | ||
112 | 123 | ||
@@ -120,4 +131,29 @@ public: | |||
120 | 131 | ||
121 | }; | 132 | }; |
122 | 133 | ||
134 | class LLViewerParcelMediaInfo : public LLRefCount | ||
135 | { | ||
136 | public: | ||
137 | LLViewerParcelMediaInfo(const std::string url, | ||
138 | const std::string type, | ||
139 | const LLUUID media_id, | ||
140 | const S32 width, | ||
141 | const S32 height, | ||
142 | const U8 scale, | ||
143 | const U8 loop); | ||
144 | LLViewerParcelMediaInfo(const LLParcel* parcel); | ||
145 | ~LLViewerParcelMediaInfo() {} | ||
146 | void applyToParcel(LLParcel* parcel); | ||
147 | bool sameParcel(const LLParcel* parcel) const; | ||
148 | bool operator==(const LLViewerParcelMediaInfo &rhs) const; | ||
149 | private: | ||
150 | std::string mMediaURL; | ||
151 | std::string mMediaType; | ||
152 | LLUUID mMediaID; | ||
153 | S32 mMediaWidth; | ||
154 | S32 mMediaHeight; | ||
155 | U8 mMediaAutoScale; | ||
156 | U8 mMediaLoop; | ||
157 | S32 mParcelLocalID; | ||
158 | }; | ||
123 | #endif | 159 | #endif |
diff --git a/linden/indra/newview/llviewerwindow.cpp b/linden/indra/newview/llviewerwindow.cpp index 8a343ac..868094e 100644 --- a/linden/indra/newview/llviewerwindow.cpp +++ b/linden/indra/newview/llviewerwindow.cpp | |||
@@ -1278,6 +1278,13 @@ LLViewerWindow::LLViewerWindow( | |||
1278 | LLAppViewer::instance()->forceExit(1); | 1278 | LLAppViewer::instance()->forceExit(1); |
1279 | } | 1279 | } |
1280 | 1280 | ||
1281 | const U32 real_fsaa = mWindow->getFSAASamples(); | ||
1282 | if (real_fsaa != gSavedSettings.getU32("RenderFSAASamples")) | ||
1283 | { | ||
1284 | LL_WARNS("Window") << "Window created with reduced anti-aliasing samples: " << real_fsaa << "x FSAA." << LL_ENDL; | ||
1285 | gSavedSettings.setU32("RenderFSAASamples", real_fsaa); | ||
1286 | } | ||
1287 | |||
1281 | // Get the real window rect the window was created with (since there are various OS-dependent reasons why | 1288 | // Get the real window rect the window was created with (since there are various OS-dependent reasons why |
1282 | // the size of a window or fullscreen context may have been adjusted slightly...) | 1289 | // the size of a window or fullscreen context may have been adjusted slightly...) |
1283 | F32 ui_scale_factor = gSavedSettings.getF32("UIScaleFactor"); | 1290 | F32 ui_scale_factor = gSavedSettings.getF32("UIScaleFactor"); |
@@ -2178,7 +2185,7 @@ void LLViewerWindow::draw() | |||
2178 | { | 2185 | { |
2179 | // Used for special titles such as "MyViewer - Special E3 2003 Beta" | 2186 | // Used for special titles such as "MyViewer - Special E3 2003 Beta" |
2180 | const S32 DIST_FROM_TOP = 20; | 2187 | const S32 DIST_FROM_TOP = 20; |
2181 | LLFontGL::getFontSansSerifBig()->renderUTF8( | 2188 | LLFontGL::getFontSansSerifLarge()->renderUTF8( |
2182 | mOverlayTitle, 0, | 2189 | mOverlayTitle, 0, |
2183 | llround( getWindowWidth() * 0.5f), | 2190 | llround( getWindowWidth() * 0.5f), |
2184 | getWindowHeight() - DIST_FROM_TOP, | 2191 | getWindowHeight() - DIST_FROM_TOP, |
@@ -2838,6 +2845,7 @@ BOOL LLViewerWindow::handlePerFrameHover() | |||
2838 | } | 2845 | } |
2839 | // In the future we may wish to hide the tools menu unless you | 2846 | // In the future we may wish to hide the tools menu unless you |
2840 | // are building. JC | 2847 | // are building. JC |
2848 | // I think the users generally told LL to get fucked on that silly idea. Pfffft | ||
2841 | //gMenuBarView->setItemVisible("Tools", gFloaterTools->getVisible()); | 2849 | //gMenuBarView->setItemVisible("Tools", gFloaterTools->getVisible()); |
2842 | //gMenuBarView->arrange(); | 2850 | //gMenuBarView->arrange(); |
2843 | } | 2851 | } |
@@ -2910,7 +2918,9 @@ BOOL LLViewerWindow::handlePerFrameHover() | |||
2910 | 2918 | ||
2911 | // Always update console | 2919 | // Always update console |
2912 | LLRect console_rect = getChatConsoleRect(); | 2920 | LLRect console_rect = getChatConsoleRect(); |
2913 | console_rect.mBottom = gHUDView->getRect().mBottom + getChatConsoleBottomPad(); | 2921 | // Add a magic number so the pre login console does not cover the login panel. |
2922 | // TODO: Would be nice to only do this for the pre login window. | ||
2923 | console_rect.mBottom = gHUDView->getRect().mBottom + getChatConsoleBottomPad() + 20; | ||
2914 | gConsole->reshape(console_rect.getWidth(), console_rect.getHeight()); | 2924 | gConsole->reshape(console_rect.getWidth(), console_rect.getHeight()); |
2915 | gConsole->setRect(console_rect); | 2925 | gConsole->setRect(console_rect); |
2916 | } | 2926 | } |
diff --git a/linden/indra/newview/llvoavatar.cpp b/linden/indra/newview/llvoavatar.cpp index 49d786d..2345bf6 100644 --- a/linden/indra/newview/llvoavatar.cpp +++ b/linden/indra/newview/llvoavatar.cpp | |||
@@ -1496,8 +1496,16 @@ LLPartSysData LLVOAvatar::sCloud; | |||
1496 | void LLVOAvatar::initCloud() | 1496 | void LLVOAvatar::initCloud() |
1497 | { | 1497 | { |
1498 | // fancy particle cloud designed by Brent | 1498 | // fancy particle cloud designed by Brent |
1499 | std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, "cloud.xml"); | ||
1500 | if(!gDirUtilp->fileExists(filename)) | ||
1501 | { | ||
1502 | filename = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, "cloud.xml"); | ||
1503 | } | ||
1504 | if(!gDirUtilp->fileExists(filename)) | ||
1505 | { | ||
1506 | filename = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "cloud.xml"); | ||
1507 | } | ||
1499 | 1508 | ||
1500 | std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "cloud.xml"); | ||
1501 | LLSD cloud; | 1509 | LLSD cloud; |
1502 | llifstream in_file(filename); | 1510 | llifstream in_file(filename); |
1503 | LLSDSerialize::fromXMLDocument(cloud, in_file); | 1511 | LLSDSerialize::fromXMLDocument(cloud, in_file); |
diff --git a/linden/indra/newview/llvoiceclient.cpp b/linden/indra/newview/llvoiceclient.cpp index da7b840..63362be 100644 --- a/linden/indra/newview/llvoiceclient.cpp +++ b/linden/indra/newview/llvoiceclient.cpp | |||
@@ -1539,7 +1539,9 @@ void LLVoiceClient::stateMachine() | |||
1539 | { | 1539 | { |
1540 | 1540 | ||
1541 | // Disable voice as long as the viewer is disconnected from the sim (login/relog) | 1541 | // Disable voice as long as the viewer is disconnected from the sim (login/relog) |
1542 | setVoiceEnabled(!gDisconnected); | 1542 | setVoiceEnabled(!gDisconnected |
1543 | && gSavedSettings.getBOOL("EnableVoiceChat") | ||
1544 | && !gSavedSettings.getBOOL("CmdLineDisableVoice") ); | ||
1543 | 1545 | ||
1544 | if(mVoiceEnabled) | 1546 | if(mVoiceEnabled) |
1545 | { | 1547 | { |
diff --git a/linden/indra/newview/llworldmap.cpp b/linden/indra/newview/llworldmap.cpp index bd3996d..608d720 100644 --- a/linden/indra/newview/llworldmap.cpp +++ b/linden/indra/newview/llworldmap.cpp | |||
@@ -81,7 +81,9 @@ LLSimInfo::LLSimInfo() | |||
81 | mAccess(0x0), | 81 | mAccess(0x0), |
82 | mRegionFlags(0x0), | 82 | mRegionFlags(0x0), |
83 | mWaterHeight(0.f), | 83 | mWaterHeight(0.f), |
84 | mAlpha(-1.f) | 84 | mAlpha(-1.f), |
85 | msizeX(REGION_WIDTH_UNITS), | ||
86 | msizeY(REGION_WIDTH_UNITS) | ||
85 | { | 87 | { |
86 | } | 88 | } |
87 | 89 | ||
diff --git a/linden/indra/newview/llworldmapview.cpp b/linden/indra/newview/llworldmapview.cpp index 8d9ed1b..d7a6838 100644 --- a/linden/indra/newview/llworldmapview.cpp +++ b/linden/indra/newview/llworldmapview.cpp | |||
@@ -472,7 +472,7 @@ void LLWorldMapView::draw() | |||
472 | F32 bottom = sPanY + half_height + relative_y; | 472 | F32 bottom = sPanY + half_height + relative_y; |
473 | F32 left = sPanX + half_width + relative_x; | 473 | F32 left = sPanX + half_width + relative_x; |
474 | F32 top = bottom+ (sMapScale * info->msizeY / REGION_WIDTH_METERS); | 474 | F32 top = bottom+ (sMapScale * info->msizeY / REGION_WIDTH_METERS); |
475 | F32 right = left + (sMapScale * info->msizeY / REGION_WIDTH_METERS); | 475 | F32 right = left + (sMapScale * info->msizeX / REGION_WIDTH_METERS); |
476 | 476 | ||
477 | // Switch to world map texture (if available for this region) if either: | 477 | // Switch to world map texture (if available for this region) if either: |
478 | // 1. Tiles are zoomed out small enough, or | 478 | // 1. Tiles are zoomed out small enough, or |
diff --git a/linden/indra/newview/llxmlrpctransaction.cpp b/linden/indra/newview/llxmlrpctransaction.cpp index 058946e..675ba42 100644 --- a/linden/indra/newview/llxmlrpctransaction.cpp +++ b/linden/indra/newview/llxmlrpctransaction.cpp | |||
@@ -226,10 +226,10 @@ void LLXMLRPCTransaction::Impl::init(XMLRPC_REQUEST request, bool useGzip) | |||
226 | mCurlRequest = new LLCurlEasyRequest(); | 226 | mCurlRequest = new LLCurlEasyRequest(); |
227 | } | 227 | } |
228 | 228 | ||
229 | if (gSavedSettings.getBOOL("BrowserProxyEnabled")) | 229 | if (gSavedSettings.getBOOL("XMLRPCProxyEnabled")) |
230 | { | 230 | { |
231 | mProxyAddress = gSavedSettings.getString("BrowserProxyAddress"); | 231 | mProxyAddress = gSavedSettings.getString("XMLRPCProxyAddress"); |
232 | S32 port = gSavedSettings.getS32 ( "BrowserProxyPort" ); | 232 | S32 port = gSavedSettings.getS32 ( "XMLRPCProxyPort" ); |
233 | 233 | ||
234 | // tell curl about the settings | 234 | // tell curl about the settings |
235 | mCurlRequest->setoptString(CURLOPT_PROXY, mProxyAddress); | 235 | mCurlRequest->setoptString(CURLOPT_PROXY, mProxyAddress); |
diff --git a/linden/indra/newview/res/viewerRes.rc b/linden/indra/newview/res/viewerRes.rc index afe6988..65d4cbb 100644 --- a/linden/indra/newview/res/viewerRes.rc +++ b/linden/indra/newview/res/viewerRes.rc | |||
@@ -156,11 +156,11 @@ BEGIN | |||
156 | BEGIN | 156 | BEGIN |
157 | VALUE "CompanyName", "meta-impy Viewer Project" | 157 | VALUE "CompanyName", "meta-impy Viewer Project" |
158 | VALUE "FileDescription", "meta-impy Experimental" | 158 | VALUE "FileDescription", "meta-impy Experimental" |
159 | VALUE "FileVersion", "2010.09.04" | 159 | VALUE "FileVersion", "2011.04.02" |
160 | VALUE "InternalName", "meta-impy Experimental" | 160 | VALUE "InternalName", "meta-impy Experimental" |
161 | VALUE "OriginalFilename", "meta-impy.exe" | 161 | VALUE "OriginalFilename", "meta-impy.exe" |
162 | VALUE "ProductName", "meta-impy Weekly" | 162 | VALUE "ProductName", "meta-impy Weekly" |
163 | VALUE "ProductVersion", "2010.09.04" | 163 | VALUE "ProductVersion", "2011.04.02" |
164 | END | 164 | END |
165 | END | 165 | END |
166 | BLOCK "VarFileInfo" | 166 | BLOCK "VarFileInfo" |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_about_land.xml b/linden/indra/newview/skins/default/xui/en-us/floater_about_land.xml index 5836901..d57ca5f 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_about_land.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_about_land.xml | |||
@@ -915,32 +915,18 @@ Only large parcels can be listed in search. | |||
915 | right="-12" | 915 | right="-12" |
916 | scale_image="true" | 916 | scale_image="true" |
917 | width="70" /> | 917 | width="70" /> |
918 | <check_box | ||
919 | bottom_delta="-22" | ||
920 | enabled="true" | ||
921 | follows="left|top" | ||
922 | font="SansSerifSmall" | ||
923 | height="16" | ||
924 | initial_value="false" | ||
925 | label="Hide URL" | ||
926 | left="80" | ||
927 | mouse_opaque="true" | ||
928 | name="hide_media_url" | ||
929 | radio_style="false" | ||
930 | tool_tip="Checking this option will hide the media URL from any non-authorized viewers of this parcel information. Note this is not available for HTML types." | ||
931 | width="150" /> | ||
932 | <text | 918 | <text |
933 | bottom_delta="0" | 919 | bottom_delta="-22" |
934 | follows="right|top" | 920 | follows="right|top" |
935 | font="SansSerifSmall" | 921 | font="SansSerifSmall" |
936 | halign="right" | 922 | halign="left" |
937 | height="16" | 923 | height="16" |
938 | length="1" | 924 | length="1" |
939 | name="media_reset" | 925 | name="media_reset" |
940 | right="-164" | 926 | left="80" |
941 | tool_tip="Amount of time until parcel automatically reverts to default URL (0 for never return)" | 927 | tool_tip="Amount of time until parcel automatically reverts to default URL (0 for never return)" |
942 | type="string" | 928 | type="string" |
943 | width="185"> | 929 | width="120"> |
944 | Return to Home URL in: | 930 | Return to Home URL in: |
945 | </text> | 931 | </text> |
946 | <spinner | 932 | <spinner |
@@ -948,14 +934,13 @@ Only large parcels can be listed in search. | |||
948 | decimal_digits="0" | 934 | decimal_digits="0" |
949 | enabled="false" | 935 | enabled="false" |
950 | follows="right|top" | 936 | follows="right|top" |
951 | halign="right" | ||
952 | height="16" | 937 | height="16" |
953 | increment="1" | 938 | increment="1" |
954 | initial_val="0" | 939 | initial_val="0" |
955 | max_val="1024" | 940 | max_val="1024" |
956 | min_val="0" | 941 | min_val="0" |
957 | name="media_reset_time" | 942 | name="media_reset_time" |
958 | right="-90" | 943 | left_delta="126" |
959 | tool_tip="Amount of time until parcel reverts to default URL (0 for never return)" | 944 | tool_tip="Amount of time until parcel reverts to default URL (0 for never return)" |
960 | width="64" /> | 945 | width="64" /> |
961 | <text | 946 | <text |
@@ -964,12 +949,11 @@ Only large parcels can be listed in search. | |||
964 | font="SansSerifSmall" | 949 | font="SansSerifSmall" |
965 | halign="left" | 950 | halign="left" |
966 | height="16" | 951 | height="16" |
967 | left_delta="70" | 952 | left_delta="72" |
968 | length="1" | 953 | length="1" |
969 | name="minutes" | 954 | name="minutes" |
970 | right="-10" | ||
971 | type="string"> | 955 | type="string"> |
972 | Minutes | 956 | minutes |
973 | </text> | 957 | </text> |
974 | <text | 958 | <text |
975 | bottom_delta="-22" | 959 | bottom_delta="-22" |
@@ -1315,20 +1299,6 @@ Select the thumbnail to choose a different texture. | |||
1315 | name="music_url" | 1299 | name="music_url" |
1316 | right="-15" | 1300 | right="-15" |
1317 | select_on_focus="true" /> | 1301 | select_on_focus="true" /> |
1318 | <check_box | ||
1319 | bottom_delta="-25" | ||
1320 | enabled="true" | ||
1321 | follows="left|top" | ||
1322 | font="SansSerifSmall" | ||
1323 | height="16" | ||
1324 | initial_value="false" | ||
1325 | label="Hide URL" | ||
1326 | left="80" | ||
1327 | mouse_opaque="true" | ||
1328 | name="hide_music_url" | ||
1329 | radio_style="false" | ||
1330 | tool_tip="Checking this option will hide the music URL from any non-authorized viewers of this parcel information." | ||
1331 | width="150" /> | ||
1332 | <text | 1302 | <text |
1333 | bottom_delta="-65" | 1303 | bottom_delta="-65" |
1334 | follows="left|top" | 1304 | follows="left|top" |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_buy_land.xml b/linden/indra/newview/skins/default/xui/en-us/floater_buy_land.xml index 3370ea8..47638d5 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_buy_land.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_buy_land.xml | |||
@@ -117,7 +117,7 @@ sold with objects | |||
117 | <icon follows="top|left" height="64" image_name="badge_ok.j2c" left="0" name="step_1" | 117 | <icon follows="top|left" height="64" image_name="badge_ok.j2c" left="0" name="step_1" |
118 | width="64" /> | 118 | width="64" /> |
119 | <text bottom_delta="38" follows="top|left" height="16" left="72" | 119 | <text bottom_delta="38" follows="top|left" height="16" left="72" |
120 | name="account_action" right="438" width="218" font="SansSerifBig" > | 120 | name="account_action" right="438" width="218" font="SansSerifLarge" > |
121 | Upgrade you to premium membership. | 121 | Upgrade you to premium membership. |
122 | </text> | 122 | </text> |
123 | <text follows="top|left" height="16" left="72" name="account_reason" right="400" | 123 | <text follows="top|left" height="16" left="72" name="account_reason" right="400" |
@@ -139,7 +139,7 @@ sold with objects | |||
139 | <icon follows="top|left" height="64" image_name="badge_note.j2c" left="0" | 139 | <icon follows="top|left" height="64" image_name="badge_note.j2c" left="0" |
140 | name="step_2" width="64" /> | 140 | name="step_2" width="64" /> |
141 | <text bottom_delta="38" follows="top|left" height="16" left="72" | 141 | <text bottom_delta="38" follows="top|left" height="16" left="72" |
142 | name="land_use_action" right="438" width="218" font="SansSerifBig" > | 142 | name="land_use_action" right="438" width="218" font="SansSerifLarge" > |
143 | Increase your monthly land use fees to US$ 40/month. | 143 | Increase your monthly land use fees to US$ 40/month. |
144 | </text> | 144 | </text> |
145 | <text follows="top|left" height="32" left="72" name="land_use_reason" right="435" | 145 | <text follows="top|left" height="32" left="72" name="land_use_reason" right="435" |
@@ -151,7 +151,7 @@ This parcel is 512 sq.m. of land. | |||
151 | <icon follows="top|left" height="64" image_name="badge_note.j2c" left="0" | 151 | <icon follows="top|left" height="64" image_name="badge_note.j2c" left="0" |
152 | name="step_3" width="64" /> | 152 | name="step_3" width="64" /> |
153 | <text bottom_delta="38" follows="top|left" height="16" left="72" | 153 | <text bottom_delta="38" follows="top|left" height="16" left="72" |
154 | name="purchase_action" right="438" font="SansSerifBig" > | 154 | name="purchase_action" right="438" font="SansSerifLarge" > |
155 | Pay Joe Resident L$ 4000 for the land | 155 | Pay Joe Resident L$ 4000 for the land |
156 | </text> | 156 | </text> |
157 | <text follows="top|left" height="16" left="72" name="currency_reason" right="400"> | 157 | <text follows="top|left" height="16" left="72" name="currency_reason" right="400"> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_media_filter.xml b/linden/indra/newview/skins/default/xui/en-us/floater_media_filter.xml index 9b7355c..f0fb3a3 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_media_filter.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_media_filter.xml | |||
@@ -1,9 +1,22 @@ | |||
1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> | 1 | <?xml version="1.0" encoding="utf-8" standalone="yes" ?> |
2 | <floater name="floatermediafilter" title="Media Filter" rect_control="MediaFilterRect" | 2 | <floater name="floatermediafilter" title="Media Filter" rect_control="MediaFilterRect" |
3 | can_close="true" can_drag_on_left="false" can_minimize="true" can_resize="true" | 3 | can_close="true" can_drag_on_left="false" can_minimize="true" can_resize="true" |
4 | height="350" width="600" min_height="350" min_width="600"> | 4 | height="410" width="600" min_height="350" min_width="600"> |
5 | |||
6 | <check_box control_name="MediaEnableFilter" name="enable_mediafilter" label="Enable Media Filter" | ||
7 | initial_value="true" tool_tip="Enables filtering media URLs by domain names." | ||
8 | font="SansSerifSmall" mouse_opaque="true" | ||
9 | left="14" height="16" bottom_delta="-45" width="4500" follows="left|top" /> | ||
10 | |||
11 | <check_box control_name="MediaFilterOnlyRemoteCommands" name="filter_only_remote" | ||
12 | label="Filter only when a script initiates the stream (less secure)" initial_value="false" | ||
13 | tool_tip="This will prevent popups asking about URLs that are permanently set on a parcel. | ||
14 | Only scripted changes to the media URL and scripted requests to start playing a stream will be filtered." | ||
15 | font="SansSerifSmall" mouse_opaque="true" | ||
16 | left_delta="14" height="16" width="450" follows="left|top" /> | ||
17 | |||
5 | <text name="info1" font="SansSerif" mouse_opaque="true" halign="center" | 18 | <text name="info1" font="SansSerif" mouse_opaque="true" halign="center" |
6 | bottom_delta="-45" left="20" height="20" width="560" follows="left|right|top"> | 19 | bottom_delta="-40" left="20" height="20" width="560" follows="left|right|top"> |
7 | Domains in bold are in the persistent list (i.e. they are whitelisted or blacklisted). | 20 | Domains in bold are in the persistent list (i.e. they are whitelisted or blacklisted). |
8 | </text> | 21 | </text> |
9 | <text name="info2" font="SansSerif" mouse_opaque="true" halign="center" | 22 | <text name="info2" font="SansSerif" mouse_opaque="true" halign="center" |
@@ -14,48 +27,68 @@ | |||
14 | <scroll_list name="whitelist_list" follows="top|bottom|left" | 27 | <scroll_list name="whitelist_list" follows="top|bottom|left" |
15 | background_visible="true" mouse_opaque="true" | 28 | background_visible="true" mouse_opaque="true" |
16 | multi_select="false" column_padding="5" draw_border="true" draw_heading="true" | 29 | multi_select="false" column_padding="5" draw_border="true" draw_heading="true" |
17 | bottom_delta="-205" left="15" height="200" width="280"> | 30 | bottom_delta="-200" left="15" height="200" width="280"> |
18 | <column name="whitelist_col" label="Allowed domains/objects" dynamicwidth="true" /> | 31 | <column name="whitelist_col" label="Allowed domains or server objects" dynamicwidth="true" /> |
19 | </scroll_list> | 32 | </scroll_list> |
20 | 33 | ||
21 | <scroll_list name="blacklist_list" follows="top|bottom|right" | 34 | <scroll_list name="blacklist_list" follows="top|bottom|right" |
22 | background_visible="true" mouse_opaque="true" | 35 | background_visible="true" mouse_opaque="true" |
23 | multi_select="false" column_padding="5" draw_border="true" draw_heading="true" | 36 | multi_select="false" column_padding="5" draw_border="true" draw_heading="true" |
24 | bottom_delta="0" right="-15" height="200" width="280"> | 37 | bottom_delta="0" right="-15" height="200" width="280"> |
25 | <column name="blacklist_col" label="Blocked domains/objects" dynamicwidth="true" /> | 38 | <column name="blacklist_col" label="Blocked domains or server objects" dynamicwidth="true" /> |
26 | </scroll_list> | 39 | </scroll_list> |
27 | 40 | ||
28 | <button name="add_whitelist" font="SansSerif" label="Add..." halign="center" | 41 | <button name="add_whitelist" font="SansSerif" label="Add..." halign="center" |
42 | tool_tip="Add a server to the whitelist" | ||
29 | enabled="true" mouse_opaque="true" follows="bottom|left" | 43 | enabled="true" mouse_opaque="true" follows="bottom|left" |
30 | bottom_delta="-25" left="30" height="20" width="80" /> | 44 | bottom_delta="-25" left="15" height="20" width="80" /> |
31 | 45 | ||
32 | <button name="remove_whitelist" font="SansSerif" label="Remove" halign="center" | 46 | <button name="remove_whitelist" font="SansSerif" label="Remove" halign="center" |
47 | tool_tip="Remove the selected server from the whitelist" | ||
33 | enabled="true" mouse_opaque="true" follows="bottom|left" | 48 | enabled="true" mouse_opaque="true" follows="bottom|left" |
34 | bottom_delta="0" left_delta="100" height="20" width="80" /> | 49 | bottom_delta="0" left="100" height="20" width="80" /> |
35 | 50 | ||
36 | <button name="clear_lists" font="SansSerif" label="Clear lists" halign="center" | 51 | <button name="clear_lists" font="SansSerif" label="Clear lists" halign="center" |
37 | enabled="true" mouse_opaque="true" follows="bottom|left|right" | 52 | tool_tip="Clear all lists" |
38 | bottom_delta="0" left_delta="110" height="20" width="120" /> | 53 | enabled="true" mouse_opaque="true" follows="bottom|left" |
54 | bottom_delta="0" left="205" height="20" width="90" /> | ||
55 | |||
56 | <button name="show_ips" font="SansSerif" label="Show IPs" halign="center" | ||
57 | tool_tip="Show the IP associated with each domain name (makes the viewer pause while the list is refreshed, because of DNS lookups)" | ||
58 | enabled="true" mouse_opaque="true" follows="bottom|right" | ||
59 | bottom_delta="0" right="-205" height="20" width="90" /> | ||
39 | 60 | ||
40 | <button name="add_blacklist" font="SansSerif" label="Add..." halign="center" | 61 | <button name="add_blacklist" font="SansSerif" label="Add..." halign="center" |
62 | tool_tip="Add a server to the blacklist" | ||
41 | enabled="true" mouse_opaque="true" follows="bottom|right" | 63 | enabled="true" mouse_opaque="true" follows="bottom|right" |
42 | bottom_delta="0" right="-130" height="20" width="80" /> | 64 | bottom_delta="0" right="-100" height="20" width="80" /> |
43 | 65 | ||
44 | <button name="remove_blacklist" font="SansSerif" label="Remove" halign="center" | 66 | <button name="remove_blacklist" font="SansSerif" label="Remove" halign="center" |
67 | tool_tip="Remove the selected server from the blacklist" | ||
45 | enabled="true" mouse_opaque="true" follows="bottom|right" | 68 | enabled="true" mouse_opaque="true" follows="bottom|right" |
46 | bottom_delta="0" right="-30" height="20" width="80" /> | 69 | bottom_delta="0" right="-15" height="20" width="80" /> |
47 | 70 | ||
48 | <text name="add_text" font="SansSerif" mouse_opaque="true" enabled="true" | 71 | <text name="add_text" font="SansSerif" mouse_opaque="true" |
49 | bottom_delta="-25" left="20" height="20" width="500" follows="left|right|bottom"> | 72 | bottom_delta="-25" left="20" height="20" width="450" follows="left|right|bottom"> |
50 | New domain: | 73 | New domain: |
51 | </text> | 74 | </text> |
52 | 75 | ||
76 | <check_box name="match_ip" label="Add/remove matching IP" initial_value="true" | ||
77 | tool_tip="Add or remove any IP associated with the added or removed domain name" | ||
78 | font="SansSerifSmall" mouse_opaque="true" radio_style="false" | ||
79 | bottom_delta="2" right="-95" height="16" width="70" follows="right|bottom" /> | ||
80 | |||
53 | <line_editor name="input_domain" max_length="255" font="SansSerif" enabled="false" | 81 | <line_editor name="input_domain" max_length="255" font="SansSerif" enabled="false" |
82 | tool_tip="Enter the new URL, domain name, IP or scripted object HTTP server path here" | ||
54 | select_all_on_focus_received="true" select_on_focus="true" | 83 | select_all_on_focus_received="true" select_on_focus="true" |
55 | bevel_style="in" border_style="line" border_thickness="1" | 84 | bevel_style="in" border_style="line" border_thickness="1" |
56 | bottom_delta="-20" right="-100" height="20" left="15" follows="left|bottom|right"/> | 85 | bottom_delta="-22" right="-180" height="20" left="15" follows="left|bottom|right"/> |
57 | 86 | ||
58 | <button name="commit_domain" font="SansSerif" label="Add" halign="center" enabled="false" | 87 | <button name="cancel_domain" font="SansSerif" label="Cancel" halign="center" enabled="false" |
59 | mouse_opaque="true" follows="bottom|right" | 88 | mouse_opaque="true" follows="bottom|right" |
60 | bottom_delta="0" right="-15" height="20" width="80"/> | 89 | bottom_delta="0" right="-15" height="20" width="80"/> |
90 | <button name="commit_domain" font="SansSerif" label="Add" halign="center" enabled="false" | ||
91 | tool_tip="Add to the list" | ||
92 | mouse_opaque="true" follows="bottom|right" | ||
93 | bottom_delta="0" right="-95" height="20" width="80"/> | ||
61 | </floater> | 94 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_preferences.xml b/linden/indra/newview/skins/default/xui/en-us/floater_preferences.xml index 939a877..213147a 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_preferences.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_preferences.xml | |||
@@ -18,8 +18,11 @@ | |||
18 | halign="center" height="20" | 18 | halign="center" height="20" |
19 | help_url="http://support.imprudenceviewer.org/" | 19 | help_url="http://support.imprudenceviewer.org/" |
20 | label="Support" left="9" mouse_opaque="true" | 20 | label="Support" left="9" mouse_opaque="true" |
21 | name="Support" scale_image="true" width="100" /> | 21 | name="Support" scale_image="true" width="90" /> |
22 | <tab_container bottom="-476" enabled="true" follows="left|top|right|bottom" height="455" | 22 | <button bottom_delta="0" follows="left|bottom" font="SansSerif" height="20" width="160" |
23 | label="Reset All To Default" name="reset_btn" left_delta="95" | ||
24 | tool_tip="Reset all preferences to their default values (requires a restart)" /> | ||
25 | <tab_container bottom="-476" enabled="true" follows="left|top|right|bottom" height="455" | ||
23 | left="0" mouse_opaque="false" name="pref core" tab_group="1" | 26 | left="0" mouse_opaque="false" name="pref core" tab_group="1" |
24 | tab_position="left" tab_width="120" width="620" /> | 27 | tab_position="left" tab_width="120" width="620" /> |
25 | </floater> | 28 | </floater> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/floater_sell_land.xml b/linden/indra/newview/skins/default/xui/en-us/floater_sell_land.xml index d91b5ff..3aeba26 100644 --- a/linden/indra/newview/skins/default/xui/en-us/floater_sell_land.xml +++ b/linden/indra/newview/skins/default/xui/en-us/floater_sell_land.xml | |||
@@ -27,7 +27,7 @@ | |||
27 | <icon bottom_delta="-66" follows="top|left" height="64" image_name="badge_note.j2c" | 27 | <icon bottom_delta="-66" follows="top|left" height="64" image_name="badge_note.j2c" |
28 | left="0" name="step_price" width="64" /> | 28 | left="0" name="step_price" width="64" /> |
29 | <text bottom_delta="38" follows="top|left" height="16" left="72" name="price_label" | 29 | <text bottom_delta="38" follows="top|left" height="16" left="72" name="price_label" |
30 | right="-20" font="SansSerifBig" > | 30 | right="-20" font="SansSerifLarge" > |
31 | Set a price: | 31 | Set a price: |
32 | </text> | 32 | </text> |
33 | <text follows="top|left" height="16" left="72" name="price_text" right="-20"> | 33 | <text follows="top|left" height="16" left="72" name="price_text" right="-20"> |
@@ -44,7 +44,7 @@ | |||
44 | <icon follows="top|left" height="64" image_name="badge_note.j2c" left="0" | 44 | <icon follows="top|left" height="64" image_name="badge_note.j2c" left="0" |
45 | name="step_sell_to" width="64" /> | 45 | name="step_sell_to" width="64" /> |
46 | <text bottom_delta="38" follows="top|left" height="16" left="72" name="sell_to_label" | 46 | <text bottom_delta="38" follows="top|left" height="16" left="72" name="sell_to_label" |
47 | right="-20" font="SansSerifBig" > | 47 | right="-20" font="SansSerifLarge" > |
48 | Sell the land to: | 48 | Sell the land to: |
49 | </text> | 49 | </text> |
50 | <text follows="top|left" height="16" left="72" name="sell_to_text" right="-20"> | 50 | <text follows="top|left" height="16" left="72" name="sell_to_text" right="-20"> |
@@ -69,7 +69,7 @@ | |||
69 | <icon follows="top|left" height="64" image_name="badge_note.j2c" left="0" | 69 | <icon follows="top|left" height="64" image_name="badge_note.j2c" left="0" |
70 | name="step_sell_objects" width="64" /> | 70 | name="step_sell_objects" width="64" /> |
71 | <text bottom_delta="38" follows="top|left" height="16" left="72" | 71 | <text bottom_delta="38" follows="top|left" height="16" left="72" |
72 | name="sell_objects_label" right="-20" font="SansSerifBig" > | 72 | name="sell_objects_label" right="-20" font="SansSerifLarge" > |
73 | Sell the objects with the land? | 73 | Sell the objects with the land? |
74 | </text> | 74 | </text> |
75 | <text bottom_delta="-20" follows="top|left" height="16" left="72" | 75 | <text bottom_delta="-20" follows="top|left" height="16" left="72" |
@@ -89,7 +89,7 @@ | |||
89 | <button bottom_delta="4" height="16" label="Show Objects" name="show_objects" | 89 | <button bottom_delta="4" height="16" label="Show Objects" name="show_objects" |
90 | right="414" width="110" /> | 90 | right="414" width="110" /> |
91 | <text bottom_delta="-35" follows="top|left" height="16" left="72" | 91 | <text bottom_delta="-35" follows="top|left" height="16" left="72" |
92 | name="nag_message_label" right="-20" font="SansSerifBig" > | 92 | name="nag_message_label" right="-20" font="SansSerifLarge" > |
93 | REMEMBER: All sales are final. | 93 | REMEMBER: All sales are final. |
94 | </text> | 94 | </text> |
95 | <button bottom="-479" follows="bottom|left" height="20" label="Set Land For Sale" | 95 | <button bottom="-479" follows="bottom|left" height="20" label="Set Land For Sale" |
diff --git a/linden/indra/newview/skins/default/xui/en-us/fonts.xml b/linden/indra/newview/skins/default/xui/en-us/fonts.xml index 7343ac2..e9ede83 100644 --- a/linden/indra/newview/skins/default/xui/en-us/fonts.xml +++ b/linden/indra/newview/skins/default/xui/en-us/fonts.xml | |||
@@ -147,6 +147,10 @@ | |||
147 | comment="Size of large font (points, or 1/72 of an inch)" | 147 | comment="Size of large font (points, or 1/72 of an inch)" |
148 | size="12" | 148 | size="12" |
149 | /> | 149 | /> |
150 | <font_size name="Bigger" | ||
151 | comment="Size of medium font (points, or 1/72 of an inch)" | ||
152 | size="11" | ||
153 | /> | ||
150 | <font_size name="Medium" | 154 | <font_size name="Medium" |
151 | comment="Size of medium font (points, or 1/72 of an inch)" | 155 | comment="Size of medium font (points, or 1/72 of an inch)" |
152 | size="10" | 156 | size="10" |
diff --git a/linden/indra/newview/skins/default/xui/en-us/mime_types_linux.xml b/linden/indra/newview/skins/default/xui/en-us/mime_types_linux.xml index e95b371..f0ba830 100755 --- a/linden/indra/newview/skins/default/xui/en-us/mime_types_linux.xml +++ b/linden/indra/newview/skins/default/xui/en-us/mime_types_linux.xml | |||
@@ -431,6 +431,17 @@ | |||
431 | media_plugin_gstreamer | 431 | media_plugin_gstreamer |
432 | </impl> | 432 | </impl> |
433 | </mimetype> | 433 | </mimetype> |
434 | <mimetype name="video/x-m4v"> | ||
435 | <label name="video/m4v_label"> | ||
436 | Movie (M4V) | ||
437 | </label> | ||
438 | <widgettype> | ||
439 | movie | ||
440 | </widgettype> | ||
441 | <impl> | ||
442 | media_plugin_gstreamer | ||
443 | </impl> | ||
444 | </mimetype> | ||
434 | <mimetype menu="1" name="video/quicktime"> | 445 | <mimetype menu="1" name="video/quicktime"> |
435 | <label name="video/quicktime_label"> | 446 | <label name="video/quicktime_label"> |
436 | Movie (QuickTime) | 447 | Movie (QuickTime) |
diff --git a/linden/indra/newview/skins/default/xui/en-us/mime_types_mac.xml b/linden/indra/newview/skins/default/xui/en-us/mime_types_mac.xml index 7931e55..e1751eb 100755 --- a/linden/indra/newview/skins/default/xui/en-us/mime_types_mac.xml +++ b/linden/indra/newview/skins/default/xui/en-us/mime_types_mac.xml | |||
@@ -431,6 +431,17 @@ | |||
431 | media_plugin_quicktime | 431 | media_plugin_quicktime |
432 | </impl> | 432 | </impl> |
433 | </mimetype> | 433 | </mimetype> |
434 | <mimetype name="video/x-m4v"> | ||
435 | <label name="video/m4v_label"> | ||
436 | Movie (M4V) | ||
437 | </label> | ||
438 | <widgettype> | ||
439 | movie | ||
440 | </widgettype> | ||
441 | <impl> | ||
442 | media_plugin_gstreamer | ||
443 | </impl> | ||
444 | </mimetype> | ||
434 | <mimetype menu="1" name="video/quicktime"> | 445 | <mimetype menu="1" name="video/quicktime"> |
435 | <label name="video/quicktime_label"> | 446 | <label name="video/quicktime_label"> |
436 | Movie (QuickTime) | 447 | Movie (QuickTime) |
diff --git a/linden/indra/newview/skins/default/xui/en-us/mime_types_windows.xml b/linden/indra/newview/skins/default/xui/en-us/mime_types_windows.xml index 5ee4ed0..26491e0 100644 --- a/linden/indra/newview/skins/default/xui/en-us/mime_types_windows.xml +++ b/linden/indra/newview/skins/default/xui/en-us/mime_types_windows.xml | |||
@@ -428,8 +428,19 @@ | |||
428 | movie | 428 | movie |
429 | </widgettype> | 429 | </widgettype> |
430 | <impl> | 430 | <impl> |
431 | media_plugin_quicktime | 431 | media_plugin_quicktime |
432 | </impl> | 432 | </impl> |
433 | </mimetype> | ||
434 | <mimetype name="video/x-m4v"> | ||
435 | <label name="video/m4v_label"> | ||
436 | Movie (M4V) | ||
437 | </label> | ||
438 | <widgettype> | ||
439 | movie | ||
440 | </widgettype> | ||
441 | <impl> | ||
442 | media_plugin_gstreamer | ||
443 | </impl> | ||
433 | </mimetype> | 444 | </mimetype> |
434 | <mimetype menu="1" name="video/quicktime"> | 445 | <mimetype menu="1" name="video/quicktime"> |
435 | <label name="video/quicktime_label"> | 446 | <label name="video/quicktime_label"> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/notifications.xml b/linden/indra/newview/skins/default/xui/en-us/notifications.xml index 219f85b..b24b136 100644 --- a/linden/indra/newview/skins/default/xui/en-us/notifications.xml +++ b/linden/indra/newview/skins/default/xui/en-us/notifications.xml | |||
@@ -7197,6 +7197,25 @@ IM history could not be found for [NAME]. | |||
7197 | </notification> | 7197 | </notification> |
7198 | 7198 | ||
7199 | <notification | 7199 | <notification |
7200 | icon="alertmodal.tga" | ||
7201 | name="InvalidLogInSecondLife" | ||
7202 | type="alertmodal"> | ||
7203 | Oops! The login name you entered wasn't formatted correctly! | ||
7204 | |||
7205 | [SECOND_LIFE] accepts the following login formats: | ||
7206 | |||
7207 | - username | ||
7208 | - username.Resident | ||
7209 | - firstname.lastname | ||
7210 | |||
7211 | If you don't have an account, would you like to create one now? | ||
7212 | <usetemplate | ||
7213 | name="okcancelbuttons" | ||
7214 | notext="Try again" | ||
7215 | yestext="Create an account"/> | ||
7216 | </notification> | ||
7217 | |||
7218 | <notification | ||
7200 | icon="alert.tga" | 7219 | icon="alert.tga" |
7201 | name="ShowLookAtInfo" | 7220 | name="ShowLookAtInfo" |
7202 | type="alert"> | 7221 | type="alert"> |
@@ -7326,11 +7345,15 @@ The Second Life Terms of Service do not allow you to opt out. By logging in to S | |||
7326 | icon="alert.tga" | 7345 | icon="alert.tga" |
7327 | name="MediaAlert" | 7346 | name="MediaAlert" |
7328 | type="alert"> | 7347 | type="alert"> |
7329 | The owner of this parcel has requested [TYPE] URL pertaining to the following domain or scripted object to be loaded by your viewer[WARNING]: | 7348 | The owner of this parcel has requested the following [TYPE] URL to be loaded by your viewer: |
7349 | |||
7350 | [URL] | ||
7351 | |||
7352 | You may choose to allow or deny the corresponding domain or in-world scripted object server: | ||
7330 | 7353 | ||
7331 | [DOMAIN] | 7354 | [DOMAIN] |
7332 | 7355 | ||
7333 | "Allow" and "Deny" apply only for this session, while "Blacklist" and "Whitelist" apply forever to the above domain or scripted object. | 7356 | "Allow" and "Deny" apply only for this session, while "Blacklist" and "Whitelist" apply forever. |
7334 | <form name="form"> | 7357 | <form name="form"> |
7335 | <button | 7358 | <button |
7336 | index="0" | 7359 | index="0" |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_group_general.xml b/linden/indra/newview/skins/default/xui/en-us/panel_group_general.xml index 21d914b..0895e3f 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_group_general.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_group_general.xml | |||
@@ -21,7 +21,7 @@ Hover your mouse over the options for more help. | |||
21 | prevalidate="ascii" v_pad="0" width="300" spell_check="true" /> | 21 | prevalidate="ascii" v_pad="0" width="300" spell_check="true" /> |
22 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 22 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
23 | bottom="-20" drop_shadow_visible="true" follows="left|top" | 23 | bottom="-20" drop_shadow_visible="true" follows="left|top" |
24 | font="SansSerifBig" h_pad="0" halign="left" height="16" left="7" | 24 | font="SansSerifLarge" h_pad="0" halign="left" height="16" left="7" |
25 | mouse_opaque="true" name="group_name" v_pad="0" width="300"> | 25 | mouse_opaque="true" name="group_name" v_pad="0" width="300"> |
26 | Type your new group name here | 26 | Type your new group name here |
27 | </text> | 27 | </text> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_group_land_money.xml b/linden/indra/newview/skins/default/xui/en-us/panel_group_land_money.xml index 9341d4b..b5f7b37 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_group_land_money.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_group_land_money.xml | |||
@@ -18,7 +18,7 @@ | |||
18 | </string> | 18 | </string> |
19 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 19 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
20 | bottom="-20" drop_shadow_visible="true" follows="left|top" | 20 | bottom="-20" drop_shadow_visible="true" follows="left|top" |
21 | font="SansSerifBig" h_pad="0" halign="left" height="16" left="7" | 21 | font="SansSerifLarge" h_pad="0" halign="left" height="16" left="7" |
22 | mouse_opaque="true" name="group_land_heading" v_pad="0" width="150"> | 22 | mouse_opaque="true" name="group_land_heading" v_pad="0" width="150"> |
23 | Group Owned Land | 23 | Group Owned Land |
24 | </text> | 24 | </text> |
@@ -105,7 +105,7 @@ | |||
105 | </text> | 105 | </text> |
106 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 106 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
107 | bottom_delta="-25" drop_shadow_visible="true" follows="left|top" | 107 | bottom_delta="-25" drop_shadow_visible="true" follows="left|top" |
108 | font="SansSerifBig" h_pad="0" halign="left" height="16" left="12" | 108 | font="SansSerifLarge" h_pad="0" halign="left" height="16" left="12" |
109 | mouse_opaque="true" name="group_money_heading" v_pad="0" width="150"> | 109 | mouse_opaque="true" name="group_money_heading" v_pad="0" width="150"> |
110 | Group [CURRENCY] | 110 | Group [CURRENCY] |
111 | </text> | 111 | </text> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_group_notices.xml b/linden/indra/newview/skins/default/xui/en-us/panel_group_notices.xml index bca87d9..e6d7604 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_group_notices.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_group_notices.xml | |||
@@ -15,7 +15,7 @@ the General tab. | |||
15 | <button bottom="-24" font="SansSerif" halign="center" height="16" label="?" | 15 | <button bottom="-24" font="SansSerif" halign="center" height="16" label="?" |
16 | label_selected="?" left="391" name="help_button" width="20" /> | 16 | label_selected="?" left="391" name="help_button" width="20" /> |
17 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 17 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
18 | bottom="-20" drop_shadow_visible="true" font="SansSerifBig" h_pad="0" | 18 | bottom="-20" drop_shadow_visible="true" font="SansSerifLarge" h_pad="0" |
19 | halign="left" height="16" left="7" mouse_opaque="true" name="lbl" v_pad="0" | 19 | halign="left" height="16" left="7" mouse_opaque="true" name="lbl" v_pad="0" |
20 | width="436"> | 20 | width="436"> |
21 | Group Notices Archive | 21 | Group Notices Archive |
@@ -51,7 +51,7 @@ Notice lists are limited to 200 notices per group on a daily basis. | |||
51 | <panel border="false" bottom="0" follows="all" height="268" label="Create New Notice" | 51 | <panel border="false" bottom="0" follows="all" height="268" label="Create New Notice" |
52 | left="1" mouse_opaque="true" name="panel_create_new_notice" width="418"> | 52 | left="1" mouse_opaque="true" name="panel_create_new_notice" width="418"> |
53 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 53 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
54 | bottom="-18" drop_shadow_visible="true" font="SansSerifBig" h_pad="0" | 54 | bottom="-18" drop_shadow_visible="true" font="SansSerifLarge" h_pad="0" |
55 | halign="left" height="16" left="7" mouse_opaque="false" name="lbl" | 55 | halign="left" height="16" left="7" mouse_opaque="false" name="lbl" |
56 | v_pad="0" width="436"> | 56 | v_pad="0" width="436"> |
57 | Create a Notice | 57 | Create a Notice |
@@ -115,7 +115,7 @@ and you can't send a folder. | |||
115 | <panel border="false" bottom="0" follows="all" height="268" label="View Past Notice" | 115 | <panel border="false" bottom="0" follows="all" height="268" label="View Past Notice" |
116 | left="1" mouse_opaque="true" name="panel_view_past_notice" width="418"> | 116 | left="1" mouse_opaque="true" name="panel_view_past_notice" width="418"> |
117 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 117 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
118 | bottom="-18" drop_shadow_visible="true" font="SansSerifBig" h_pad="0" | 118 | bottom="-18" drop_shadow_visible="true" font="SansSerifLarge" h_pad="0" |
119 | halign="left" height="16" left="7" mouse_opaque="false" name="lbl" | 119 | halign="left" height="16" left="7" mouse_opaque="false" name="lbl" |
120 | v_pad="0" width="436"> | 120 | v_pad="0" width="436"> |
121 | Archived Notice | 121 | Archived Notice |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_group_roles.xml b/linden/indra/newview/skins/default/xui/en-us/panel_group_roles.xml index e5b621e..014b28d 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_group_roles.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_group_roles.xml | |||
@@ -12,7 +12,7 @@ | |||
12 | name="help_button" width="20" /> | 12 | name="help_button" width="20" /> |
13 | <panel border="false" bottom="-24" height="24" left="7" name="members_header" | 13 | <panel border="false" bottom="-24" height="24" left="7" name="members_header" |
14 | visible="true" width="380"> | 14 | visible="true" width="380"> |
15 | <text bottom_delta="-20" font="SansSerifBig" halign="left" height="16" left="0" | 15 | <text bottom_delta="-20" font="SansSerifLarge" halign="left" height="16" left="0" |
16 | name="static" width="150"> | 16 | name="static" width="150"> |
17 | Members & Roles | 17 | Members & Roles |
18 | </text> | 18 | </text> |
@@ -24,7 +24,7 @@ easily be customized, allowing for greater organization and flexibility. | |||
24 | </panel> | 24 | </panel> |
25 | <panel border="false" bottom_delta="0" height="24" left="7" name="roles_header" | 25 | <panel border="false" bottom_delta="0" height="24" left="7" name="roles_header" |
26 | visible="false" width="380"> | 26 | visible="false" width="380"> |
27 | <text bottom_delta="-20" font="SansSerifBig" halign="left" height="16" left="0" | 27 | <text bottom_delta="-20" font="SansSerifLarge" halign="left" height="16" left="0" |
28 | name="static" width="100"> | 28 | name="static" width="100"> |
29 | Roles | 29 | Roles |
30 | </text> | 30 | </text> |
@@ -47,7 +47,7 @@ easily be customized, allowing for greater organization and flexibility. | |||
47 | </panel> | 47 | </panel> |
48 | <panel border="false" bottom_delta="-20" height="24" left="7" name="actions_header" | 48 | <panel border="false" bottom_delta="-20" height="24" left="7" name="actions_header" |
49 | visible="false" width="380"> | 49 | visible="false" width="380"> |
50 | <text bottom_delta="0" font="SansSerifBig" halign="left" height="16" left="0" | 50 | <text bottom_delta="0" font="SansSerifLarge" halign="left" height="16" left="0" |
51 | name="static" width="200"> | 51 | name="static" width="200"> |
52 | Abilities | 52 | Abilities |
53 | </text> | 53 | </text> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_group_voting.xml b/linden/indra/newview/skins/default/xui/en-us/panel_group_voting.xml index 168b60b..64be465 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_group_voting.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_group_voting.xml | |||
@@ -20,7 +20,7 @@ vote on open proposals, and view old proposals. | |||
20 | name="help_button" width="20" /> | 20 | name="help_button" width="20" /> |
21 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 21 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
22 | bottom="446" drop_shadow_visible="true" follows="left|top" | 22 | bottom="446" drop_shadow_visible="true" follows="left|top" |
23 | font="SansSerifBig" h_pad="0" halign="left" height="16" left="7" | 23 | font="SansSerifLarge" h_pad="0" halign="left" height="16" left="7" |
24 | mouse_opaque="false" name="proposal_header" v_pad="0" width="363"> | 24 | mouse_opaque="false" name="proposal_header" v_pad="0" width="363"> |
25 | Open Group Proposals | 25 | Open Group Proposals |
26 | </text> | 26 | </text> |
@@ -144,7 +144,7 @@ vote on open proposals, and view old proposals. | |||
144 | mouse_opaque="true" name="btn_abstain" width="63" /> | 144 | mouse_opaque="true" name="btn_abstain" width="63" /> |
145 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 145 | <text bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
146 | bottom="-240" drop_shadow_visible="true" follows="left|top" | 146 | bottom="-240" drop_shadow_visible="true" follows="left|top" |
147 | font="SansSerifBig" h_pad="0" halign="left" height="10" left="12" | 147 | font="SansSerifLarge" h_pad="0" halign="left" height="10" left="12" |
148 | mouse_opaque="false" name="txt" v_pad="0" width="363"> | 148 | mouse_opaque="false" name="txt" v_pad="0" width="363"> |
149 | Group Voting History | 149 | Group Voting History |
150 | </text> | 150 | </text> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_login.xml b/linden/indra/newview/skins/default/xui/en-us/panel_login.xml index 75c635e..35ecc6e 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_login.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_login.xml | |||
@@ -29,45 +29,24 @@ | |||
29 | http://secondlife.com/account/request.php | 29 | http://secondlife.com/account/request.php |
30 | </string> | 30 | </string> |
31 | 31 | ||
32 | |||
33 | <!-- START LOCATION --> | ||
34 | |||
35 | <text name="start_location_text" | ||
36 | bottom="8" left="10" height="16" right="115" | ||
37 | follows="left|bottom" h_pad="0" halign="right" v_pad="0" | ||
38 | bg_visible="false" drop_shadow_visible="true" | ||
39 | border_visible="false" border_drop_shadow_visible="false" | ||
40 | font="SansSerifSmall" mouse_opaque="true"> | ||
41 | Start location: | ||
42 | </text> | ||
43 | <combo_box name="start_location_combo" | ||
44 | bottom_delta="2" left="120" height="16" width="150" | ||
45 | follows="left|bottom" font="SansSerifSmall" | ||
46 | mouse_opaque="true" allow_text_entry="true" max_chars="128"> | ||
47 | <combo_item name="MyHome" value="My Home"> | ||
48 | My Home | ||
49 | </combo_item> | ||
50 | <combo_item name="MyLastLocation" value="My Last Location"> | ||
51 | My Last Location | ||
52 | </combo_item> | ||
53 | <combo_item name="Typeregionname" value="<Type region name>"> | ||
54 | <Type region name> | ||
55 | </combo_item> | ||
56 | </combo_box> | ||
57 | |||
58 | |||
59 | <!-- FIRST NAME --> | 32 | <!-- FIRST NAME --> |
60 | 33 | ||
61 | <text name="first_name_text" | 34 | <text name="first_name_text" |
62 | bottom="56" left="24" height="16" width="120" | 35 | bottom="48" left="24" height="16" width="120" |
63 | follows="left|bottom" h_pad="0" halign="left" v_pad="0" | 36 | follows="left|bottom" h_pad="0" halign="left" v_pad="0" |
64 | bg_visible="false" drop_shadow_visible="true" | 37 | bg_visible="false" drop_shadow_visible="true" |
65 | border_visible="false" border_drop_shadow_visible="false" | 38 | border_visible="false" border_drop_shadow_visible="false" |
66 | font="SansSerif" mouse_opaque="true"> | 39 | font="SansSerif" mouse_opaque="true"> |
67 | First name: | 40 | First name: |
68 | </text> | 41 | </text> |
42 | <!-- | ||
43 | <combo_box bevel_style="in" border_style="line" border_thickness="1" bottom_delta="-24" | ||
44 | follows="left|bottom" font="SansSerif" handle_edit_keys_directly="true" height="20" left_delta="0" | ||
45 | max_chars="31" mouse_opaque="true" name="first_name_combo" | ||
46 | select_all_on_focus_received="true" width="120" allow_text_entry="true" allow_translate="false" /> | ||
47 | --> | ||
69 | <line_editor name="first_name_edit" | 48 | <line_editor name="first_name_edit" |
70 | bottom_delta="-20" left_delta="0" height="20" width="120" | 49 | bottom_delta="-24" left_delta="0" height="20" width="120" |
71 | follows="left|bottom" font="SansSerif" | 50 | follows="left|bottom" font="SansSerif" |
72 | bevel_style="in" border_style="line" border_thickness="1" | 51 | bevel_style="in" border_style="line" border_thickness="1" |
73 | max_length="31" mouse_opaque="true" | 52 | max_length="31" mouse_opaque="true" |
@@ -75,11 +54,10 @@ | |||
75 | select_all_on_focus_received="true" | 54 | select_all_on_focus_received="true" |
76 | allow_translate="false" /> | 55 | allow_translate="false" /> |
77 | 56 | ||
78 | |||
79 | <!-- LAST NAME --> | 57 | <!-- LAST NAME --> |
80 | 58 | ||
81 | <text name="last_name_text" | 59 | <text name="last_name_text" |
82 | bottom_delta="20" left_delta="130" height="16" width="120" | 60 | bottom_delta="24" left_delta="130" height="16" width="120" |
83 | follows="left|bottom" h_pad="0" halign="left" v_pad="0" | 61 | follows="left|bottom" h_pad="0" halign="left" v_pad="0" |
84 | bg_visible="false" drop_shadow_visible="true" | 62 | bg_visible="false" drop_shadow_visible="true" |
85 | border_visible="false" border_drop_shadow_visible="false" | 63 | border_visible="false" border_drop_shadow_visible="false" |
@@ -87,7 +65,7 @@ | |||
87 | Last name: | 65 | Last name: |
88 | </text> | 66 | </text> |
89 | <line_editor name="last_name_edit" | 67 | <line_editor name="last_name_edit" |
90 | bottom_delta="-20" left_delta="0" height="20" width="120" | 68 | bottom_delta="-24" left_delta="0" height="20" width="120" |
91 | follows="left|bottom" font="SansSerif" | 69 | follows="left|bottom" font="SansSerif" |
92 | bevel_style="in" border_style="line" border_thickness="1" | 70 | bevel_style="in" border_style="line" border_thickness="1" |
93 | max_length="31" mouse_opaque="true" | 71 | max_length="31" mouse_opaque="true" |
@@ -99,7 +77,7 @@ | |||
99 | <!-- PASSWORD --> | 77 | <!-- PASSWORD --> |
100 | 78 | ||
101 | <text name="password_text" | 79 | <text name="password_text" |
102 | bottom_delta="20" left_delta="130" height="16" width="120" | 80 | bottom_delta="24" left_delta="130" height="16" width="120" |
103 | follows="left|bottom" h_pad="0" halign="left" v_pad="0" | 81 | follows="left|bottom" h_pad="0" halign="left" v_pad="0" |
104 | bg_visible="false" drop_shadow_visible="true" | 82 | bg_visible="false" drop_shadow_visible="true" |
105 | border_visible="false" border_drop_shadow_visible="false" | 83 | border_visible="false" border_drop_shadow_visible="false" |
@@ -107,23 +85,57 @@ | |||
107 | Password: | 85 | Password: |
108 | </text> | 86 | </text> |
109 | <line_editor name="password_edit" | 87 | <line_editor name="password_edit" |
110 | bottom_delta="-20" left_delta="0" height="20" width="120" | 88 | bottom_delta="-24" left_delta="0" height="20" width="120" |
111 | follows="left|bottom" font="SansSerif" | 89 | follows="left|bottom" font="SansSerif" |
112 | bevel_style="in" border_style="line" border_thickness="1" | 90 | bevel_style="in" border_style="line" border_thickness="1" |
113 | max_length="16" mouse_opaque="true" | 91 | max_length="16" mouse_opaque="true" |
114 | handle_edit_keys_directly="true" | 92 | handle_edit_keys_directly="true" |
115 | select_all_on_focus_received="true" | 93 | select_all_on_focus_received="true" |
116 | allow_translate="false" /> | 94 | allow_translate="false" /> |
95 | |||
96 | |||
97 | <!-- ACCOUNT CHECK BOXES --> | ||
98 | |||
99 | <check_box control_name="RememberName" | ||
100 | follows="left|bottom" font="SansSerifSmall" height="16" | ||
101 | initial_value="true" label="Remember account name" | ||
102 | bottom_delta="-24" left="24" mouse_opaque="true" name="remember_name_check" width="158" /> | ||
117 | <check_box name="remember_check" label="Remember password" | 103 | <check_box name="remember_check" label="Remember password" |
118 | bottom_delta="-24" left_delta="0" height="16" width="140" | 104 | bottom_delta="0" left_delta="260" height="16" width="140" |
119 | follows="left|bottom" font="SansSerifSmall" control_name="RememberPassword" | 105 | follows="left|bottom" font="SansSerifSmall" control_name="RememberPassword" |
120 | initial_value="false" mouse_opaque="true" /> | 106 | initial_value="false" mouse_opaque="true" /> |
121 | 107 | ||
122 | 108 | ||
109 | <!-- START LOCATION --> | ||
110 | |||
111 | <text name="start_location_text" | ||
112 | bottom="48" left_delta="150" height="16" | ||
113 | follows="left|bottom" h_pad="0" halign="left" v_pad="0" | ||
114 | bg_visible="false" drop_shadow_visible="true" | ||
115 | border_visible="false" border_drop_shadow_visible="false" | ||
116 | font="SansSerifSmall" mouse_opaque="true"> | ||
117 | Start location: | ||
118 | </text> | ||
119 | <combo_box name="start_location_combo" | ||
120 | bottom_delta="-24" left_delta="0" height="20" width="150" | ||
121 | follows="left|bottom" font="SansSerifSmall" | ||
122 | mouse_opaque="true" allow_text_entry="true" max_chars="128"> | ||
123 | <combo_item name="MyHome" value="My Home"> | ||
124 | My Home | ||
125 | </combo_item> | ||
126 | <combo_item name="MyLastLocation" value="My Last Location"> | ||
127 | My Last Location | ||
128 | </combo_item> | ||
129 | <combo_item name="Typeregionname" value="<Type region name>"> | ||
130 | <Type region name> | ||
131 | </combo_item> | ||
132 | </combo_box> | ||
133 | |||
134 | |||
123 | <!-- GRIDS --> | 135 | <!-- GRIDS --> |
124 | 136 | ||
125 | <text name="grid_text" | 137 | <text name="grid_text" |
126 | bottom="56" left_delta="150" height="16" width="120" | 138 | bottom="48" left_delta="160" height="16" width="120" |
127 | follows="left|bottom" h_pad="0" halign="left" v_pad="0" | 139 | follows="left|bottom" h_pad="0" halign="left" v_pad="0" |
128 | bg_visible="false" drop_shadow_visible="true" | 140 | bg_visible="false" drop_shadow_visible="true" |
129 | border_visible="false" border_drop_shadow_visible="false" | 141 | border_visible="false" border_drop_shadow_visible="false" |
@@ -131,11 +143,11 @@ | |||
131 | Grid: | 143 | Grid: |
132 | </text> | 144 | </text> |
133 | <combo_box name="server_combo" | 145 | <combo_box name="server_combo" |
134 | bottom_delta="-20" left_delta="0" height="20" width="120" | 146 | bottom_delta="-24" left_delta="0" height="20" width="120" |
135 | follows="left|bottom" allow_text_entry="false" | 147 | follows="left|bottom" allow_text_entry="false" |
136 | max_chars="20" mouse_opaque="true" /> | 148 | max_chars="20" mouse_opaque="true" /> |
137 | <button name="grid_btn" label="Grid Manager" | 149 | <button name="grid_btn" label="Grid Manager" |
138 | bottom_delta="-24" left_delta="10" height="16" width="100" | 150 | bottom_delta="-24" left_delta="0" height="20" width="100" |
139 | follows="left|bottom" font="SansSerifSmall" halign="center" | 151 | follows="left|bottom" font="SansSerifSmall" halign="center" |
140 | mouse_opaque="true" scale_image="TRUE" /> | 152 | mouse_opaque="true" scale_image="TRUE" /> |
141 | 153 | ||
@@ -143,11 +155,32 @@ | |||
143 | <!-- LOG IN --> | 155 | <!-- LOG IN --> |
144 | 156 | ||
145 | <button name="connect_btn" label="Log In" | 157 | <button name="connect_btn" label="Log In" |
146 | bottom="34" left_delta="140" height="24" width="120" | 158 | bottom="24" left_delta="140" height="24" width="120" |
147 | follows="left|bottom" font="SansSerif" halign="center" | 159 | follows="left|bottom" font="SansSerif" halign="center" |
148 | mouse_opaque="true" scale_image="TRUE" /> | 160 | mouse_opaque="true" scale_image="TRUE" /> |
149 | 161 | ||
150 | 162 | ||
163 | <!-- Yes, this is getting messy, with three different ways of doing the username. sigh --> | ||
164 | <!-- SL USERNAME --> | ||
165 | |||
166 | <text name="username_text" | ||
167 | bottom="80" left="24" height="16" width="250" | ||
168 | follows="left|bottom" h_pad="0" halign="left" v_pad="0" | ||
169 | bg_visible="false" drop_shadow_visible="true" | ||
170 | border_visible="false" border_drop_shadow_visible="false" | ||
171 | font="SansSerif" mouse_opaque="true"> | ||
172 | Login name: | ||
173 | </text> | ||
174 | <line_editor name="username_edit" | ||
175 | bottom_delta="-20" left_delta="0" height="20" width="250" | ||
176 | follows="left|bottom" font="SansSerif" | ||
177 | bevel_style="in" border_style="line" border_thickness="1" | ||
178 | max_length="31" mouse_opaque="true" | ||
179 | handle_edit_keys_directly="true" | ||
180 | select_all_on_focus_received="true" | ||
181 | allow_translate="false" /> | ||
182 | |||
183 | |||
151 | <!-- ACCOUNT / FORGOT PASSWORD --> | 184 | <!-- ACCOUNT / FORGOT PASSWORD --> |
152 | 185 | ||
153 | <text name="create_new_account_text" | 186 | <text name="create_new_account_text" |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml index a31d090..a3961bb 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_advanced.xml | |||
@@ -129,9 +129,6 @@ | |||
129 | </combo_item> | 129 | </combo_item> |
130 | </combo_box>--> | 130 | </combo_box>--> |
131 | 131 | ||
132 | <button bottom="10" follows="left|bottom" font="SansSerif" height="20" width="250" | ||
133 | label="Reset All Preferences To Default" name="reset_btn" left="12" | ||
134 | tool_tip="Reset all preferences to their default values (requires a restart)" /> | ||
135 | </panel> | 132 | </panel> |
136 | 133 | ||
137 | <panel border="true" bottom="-580" follows="left|top|right|bottom" height="525" label="SpellCheck" | 134 | <panel border="true" bottom="-580" follows="left|top|right|bottom" height="525" label="SpellCheck" |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_audio.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_audio.xml index c6bb938..355d7e8 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_audio.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_audio.xml | |||
@@ -9,13 +9,13 @@ | |||
9 | Volume: | 9 | Volume: |
10 | </text> | 10 | </text> |
11 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 11 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
12 | bottom="-190" drop_shadow_visible="true" enabled="true" follows="left|top" | 12 | bottom="-202" drop_shadow_visible="true" enabled="true" follows="left|top" |
13 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | 13 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" |
14 | mouse_opaque="true" name="streaming_prefs_text" v_pad="0" width="128"> | 14 | mouse_opaque="true" name="streaming_prefs_text" v_pad="0" width="128"> |
15 | Streaming: | 15 | Streaming: |
16 | </text> | 16 | </text> |
17 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 17 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
18 | bottom="-285" drop_shadow_visible="true" enabled="true" follows="left|top" | 18 | bottom="-315" drop_shadow_visible="true" enabled="true" follows="left|top" |
19 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" | 19 | font="SansSerifSmall" h_pad="0" halign="left" height="12" left="10" |
20 | mouse_opaque="true" name="audio_prefs_text" v_pad="0" width="128"> | 20 | mouse_opaque="true" name="audio_prefs_text" v_pad="0" width="128"> |
21 | Audio: | 21 | Audio: |
@@ -42,7 +42,21 @@ | |||
42 | initial_value="true" label="Automatically play media" left="162" | 42 | initial_value="true" label="Automatically play media" left="162" |
43 | mouse_opaque="true" name="auto_streaming_video" radio_style="false" | 43 | mouse_opaque="true" name="auto_streaming_video" radio_style="false" |
44 | width="338" /> | 44 | width="338" /> |
45 | <check_box bottom_delta="-27" control_name="MuteWhenMinimized" enabled="true" | 45 | <check_box bottom_delta="-20" control_name="MediaOnAPrimUI" enabled="true" |
46 | follows="left|top" font="SansSerifSmall" height="16" | ||
47 | initial_value="true" label="Media helper widget" left="162" | ||
48 | mouse_opaque="true" name="media_helper_widget" radio_style="false" | ||
49 | width="338" /> | ||
50 | <check_box bottom_delta="-20" control_name="MediaEnableFilter" enabled="true" | ||
51 | follows="left|top" font="SansSerifSmall" height="16" | ||
52 | initial_value="true" label="Filter media URLs" left="142" | ||
53 | mouse_opaque="true" name="enable_media_filter" radio_style="false" | ||
54 | width="200" /> | ||
55 | <button name="show_media_filter" font="SansSerif" label="Media Filter Settings" halign="center" | ||
56 | tool_tip="Edit settings and the blocked and allowed lists for the Media Filter." | ||
57 | enabled="false" mouse_opaque="true" follows="top|right" | ||
58 | bottom_delta="-2" right="-15" height="20" width="180" /> | ||
59 | <check_box bottom_delta="-33" control_name="MuteWhenMinimized" enabled="true" | ||
46 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" | 60 | follows="left|top" font="SansSerifSmall" height="16" initial_value="true" |
47 | label="Mute audio when window minimized" left="142" mouse_opaque="true" | 61 | label="Mute audio when window minimized" left="142" mouse_opaque="true" |
48 | name="mute_when_minimized" radio_style="false" width="215" /> | 62 | name="mute_when_minimized" radio_style="false" width="215" /> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml index 1e4ded6..86aa353 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_network.xml | |||
@@ -64,4 +64,31 @@ | |||
64 | increment="1" initial_val="13000" label="Port number:" label_width="75" | 64 | increment="1" initial_val="13000" label="Port number:" label_width="75" |
65 | left_delta="20" max_val="13050" min_val="13000" mouse_opaque="true" | 65 | left_delta="20" max_val="13050" min_val="13000" mouse_opaque="true" |
66 | name="connection_port" width="150" /> | 66 | name="connection_port" width="150" /> |
67 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
68 | bottom_delta="-24" drop_shadow_visible="true" enabled="true" | ||
69 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
70 | height="10" left="15" mouse_opaque="false" name="proxy_label" v_pad="0" | ||
71 | width="250"> | ||
72 | XMLRPC Proxy (Login, Land- and Money purchase): | ||
73 | </text> | ||
74 | <check_box bottom_delta="-25" enabled="true" | ||
75 | follows="left|top" font="SansSerifSmall" height="16" initial_value="false" | ||
76 | label="Enable XMLRPC proxy" left_delta="199" mouse_opaque="true" | ||
77 | name="xmlrpc_proxy_enabled" radio_style="false" width="256" /> | ||
78 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | ||
79 | bottom_delta="-25" drop_shadow_visible="true" enabled="true" | ||
80 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | ||
81 | height="10" left="140" mouse_opaque="false" name="xmlrpc_proxy_text_label" | ||
82 | v_pad="0" width="128"> | ||
83 | Address: | ||
84 | </text> | ||
85 | <line_editor bottom_delta="-8" enabled="true" follows="left|top" font="SansSerif" | ||
86 | height="20" left="217" name="xmlrpc_proxy_editor" | ||
87 | tool_tip="The name or IP address of the proxy you would like to use" | ||
88 | width="200" /> | ||
89 | <spinner bottom_delta="-25" decimal_digits="0" | ||
90 | enabled="true" follows="left|top" height="16" increment="1" | ||
91 | initial_val="80" label="Port number:" label_width="75" left="140" | ||
92 | max_val="12000" min_val="10" mouse_opaque="true" name="xmlrpc_proxy_port" | ||
93 | width="140" /> | ||
67 | </panel> | 94 | </panel> |
diff --git a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_web.xml b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_web.xml index e077ca1..d855a6f 100644 --- a/linden/indra/newview/skins/default/xui/en-us/panel_preferences_web.xml +++ b/linden/indra/newview/skins/default/xui/en-us/panel_preferences_web.xml | |||
@@ -34,6 +34,10 @@ | |||
34 | font="SansSerifSmall" height="16" initial_value="false" | 34 | font="SansSerifSmall" height="16" initial_value="false" |
35 | label="Accept cookies from sites" left="140" mouse_opaque="true" | 35 | label="Accept cookies from sites" left="140" mouse_opaque="true" |
36 | name="cookies_enabled" radio_style="false" width="256" /> | 36 | name="cookies_enabled" radio_style="false" width="256" /> |
37 | <button bottom_delta="-20" enabled="true" follows="left|top" font="SansSerif" | ||
38 | halign="center" height="18" label="Clear Cookies" left_delta="0" | ||
39 | tool_tip="Clear Cookies" | ||
40 | mouse_opaque="true" name="clear_ookies" scale_image="true" width="110" /> | ||
37 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" | 41 | <text type="string" length="1" bg_visible="false" border_drop_shadow_visible="false" border_visible="false" |
38 | bottom_delta="-24" drop_shadow_visible="true" enabled="true" | 42 | bottom_delta="-24" drop_shadow_visible="true" enabled="true" |
39 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" | 43 | follows="left|top" font="SansSerifSmall" h_pad="0" halign="left" |
diff --git a/linden/indra/newview/slfloatermediafilter.cpp b/linden/indra/newview/slfloatermediafilter.cpp index c47ed26..b0d9c26 100644 --- a/linden/indra/newview/slfloatermediafilter.cpp +++ b/linden/indra/newview/slfloatermediafilter.cpp | |||
@@ -43,6 +43,8 @@ | |||
43 | 43 | ||
44 | SLFloaterMediaFilter* SLFloaterMediaFilter::sInstance = NULL; | 44 | SLFloaterMediaFilter* SLFloaterMediaFilter::sInstance = NULL; |
45 | bool SLFloaterMediaFilter::sIsWhitelist = false; | 45 | bool SLFloaterMediaFilter::sIsWhitelist = false; |
46 | bool SLFloaterMediaFilter::sIsAdding = false; | ||
47 | bool SLFloaterMediaFilter::sShowIPs = false; | ||
46 | 48 | ||
47 | SLFloaterMediaFilter::SLFloaterMediaFilter() : LLFloater(std::string("media filter")), mIsDirty(false) | 49 | SLFloaterMediaFilter::SLFloaterMediaFilter() : LLFloater(std::string("media filter")), mIsDirty(false) |
48 | { | 50 | { |
@@ -62,15 +64,18 @@ BOOL SLFloaterMediaFilter::postBuild() | |||
62 | if (mWhitelistSLC && mBlacklistSLC) | 64 | if (mWhitelistSLC && mBlacklistSLC) |
63 | { | 65 | { |
64 | childSetAction("clear_lists", onClearLists, this); | 66 | childSetAction("clear_lists", onClearLists, this); |
67 | childSetAction("show_ips", onShowIPs, this); | ||
65 | childSetAction("add_whitelist", onWhitelistAdd, this); | 68 | childSetAction("add_whitelist", onWhitelistAdd, this); |
66 | childSetAction("remove_whitelist", onWhitelistRemove, this); | 69 | childSetAction("remove_whitelist", onWhitelistRemove, this); |
67 | childSetAction("add_blacklist", onBlacklistAdd, this); | 70 | childSetAction("add_blacklist", onBlacklistAdd, this); |
68 | childSetAction("remove_blacklist", onBlacklistRemove, this); | 71 | childSetAction("remove_blacklist", onBlacklistRemove, this); |
69 | childSetAction("commit_domain", onCommitDomain, this); | 72 | childSetAction("commit_domain", onCommitDomain, this); |
73 | childSetAction("cancel_domain", onCancelDomain, this); | ||
70 | childSetUserData("whitelist_list", this); | 74 | childSetUserData("whitelist_list", this); |
71 | childSetUserData("blacklist_list", this); | 75 | childSetUserData("blacklist_list", this); |
72 | mIsDirty = true; | 76 | mIsDirty = true; |
73 | } | 77 | } |
78 | gSavedSettings.getControl("MediaEnableFilter")->getSignal()->connect(boost::bind(&onMediaEnableFilterChanged, _1)); | ||
74 | 79 | ||
75 | return TRUE; | 80 | return TRUE; |
76 | } | 81 | } |
@@ -84,6 +89,8 @@ void SLFloaterMediaFilter::draw() | |||
84 | mWhitelistSLC->deleteAllItems(); | 89 | mWhitelistSLC->deleteAllItems(); |
85 | mBlacklistSLC->deleteAllItems(); | 90 | mBlacklistSLC->deleteAllItems(); |
86 | std::set<std::string> listed; | 91 | std::set<std::string> listed; |
92 | LLHost host; | ||
93 | std::string ip; | ||
87 | std::string domain; | 94 | std::string domain; |
88 | std::string action; | 95 | std::string action; |
89 | LLSD element; | 96 | LLSD element; |
@@ -92,6 +99,16 @@ void SLFloaterMediaFilter::draw() | |||
92 | for (S32 i = 0; i < (S32)LLViewerParcelMedia::sMediaFilterList.size(); i++) | 99 | for (S32 i = 0; i < (S32)LLViewerParcelMedia::sMediaFilterList.size(); i++) |
93 | { | 100 | { |
94 | domain = LLViewerParcelMedia::sMediaFilterList[i]["domain"].asString(); | 101 | domain = LLViewerParcelMedia::sMediaFilterList[i]["domain"].asString(); |
102 | if (sShowIPs) | ||
103 | { | ||
104 | host.setHostByName(domain); | ||
105 | ip = host.getIPString(); | ||
106 | if (ip != domain && domain.find('/') == std::string::npos) | ||
107 | { | ||
108 | domain += " (" + ip + ")"; | ||
109 | } | ||
110 | } | ||
111 | |||
95 | action = LLViewerParcelMedia::sMediaFilterList[i]["action"].asString(); | 112 | action = LLViewerParcelMedia::sMediaFilterList[i]["action"].asString(); |
96 | if (!domain.empty() && action == "allow") | 113 | if (!domain.empty() && action == "allow") |
97 | { | 114 | { |
@@ -123,6 +140,15 @@ void SLFloaterMediaFilter::draw() | |||
123 | for (it = LLViewerParcelMedia::sAllowedMedia.begin(); it != LLViewerParcelMedia::sAllowedMedia.end(); it++) | 140 | for (it = LLViewerParcelMedia::sAllowedMedia.begin(); it != LLViewerParcelMedia::sAllowedMedia.end(); it++) |
124 | { | 141 | { |
125 | domain = *it; | 142 | domain = *it; |
143 | if (sShowIPs) | ||
144 | { | ||
145 | host.setHostByName(domain); | ||
146 | ip = host.getIPString(); | ||
147 | if (ip != domain && domain.find('/') == std::string::npos) | ||
148 | { | ||
149 | domain += " (" + ip + ")"; | ||
150 | } | ||
151 | } | ||
126 | if (listed.count(domain) == 0) | 152 | if (listed.count(domain) == 0) |
127 | { | 153 | { |
128 | element["columns"][0]["value"] = domain; | 154 | element["columns"][0]["value"] = domain; |
@@ -133,6 +159,15 @@ void SLFloaterMediaFilter::draw() | |||
133 | for (it = LLViewerParcelMedia::sDeniedMedia.begin(); it != LLViewerParcelMedia::sDeniedMedia.end(); it++) | 159 | for (it = LLViewerParcelMedia::sDeniedMedia.begin(); it != LLViewerParcelMedia::sDeniedMedia.end(); it++) |
134 | { | 160 | { |
135 | domain = *it; | 161 | domain = *it; |
162 | if (sShowIPs) | ||
163 | { | ||
164 | host.setHostByName(domain); | ||
165 | ip = host.getIPString(); | ||
166 | if (ip != domain && domain.find('/') == std::string::npos) | ||
167 | { | ||
168 | domain += " (" + ip + ")"; | ||
169 | } | ||
170 | } | ||
136 | if (listed.count(domain) == 0) | 171 | if (listed.count(domain) == 0) |
137 | { | 172 | { |
138 | element["columns"][0]["value"] = domain; | 173 | element["columns"][0]["value"] = domain; |
@@ -142,26 +177,56 @@ void SLFloaterMediaFilter::draw() | |||
142 | mWhitelistSLC->setScrollPos(whitescrollpos); | 177 | mWhitelistSLC->setScrollPos(whitescrollpos); |
143 | mBlacklistSLC->setScrollPos(blackscrollpos); | 178 | mBlacklistSLC->setScrollPos(blackscrollpos); |
144 | 179 | ||
145 | if (!gSavedSettings.getBOOL("MediaEnableFilter")) | 180 | updateWidgets(); |
146 | { | ||
147 | childDisable("clear_lists"); | ||
148 | childDisable("blacklist_list"); | ||
149 | childDisable("whitelist_list"); | ||
150 | childDisable("remove_whitelist"); | ||
151 | childDisable("add_whitelist"); | ||
152 | childDisable("remove_blacklist"); | ||
153 | childDisable("add_blacklist"); | ||
154 | childDisable("input_domain"); | ||
155 | childDisable("commit_domain"); | ||
156 | childSetText("add_text", std::string("****** WARNING: media filtering is currently DISABLED ******")); | ||
157 | } | ||
158 | 181 | ||
159 | mIsDirty = false; | 182 | mIsDirty = false; |
183 | sShowIPs = false; | ||
160 | } | 184 | } |
161 | 185 | ||
162 | LLFloater::draw(); | 186 | LLFloater::draw(); |
163 | } | 187 | } |
164 | 188 | ||
189 | void SLFloaterMediaFilter::updateWidgets() | ||
190 | { | ||
191 | bool enabled = gSavedSettings.getBOOL("MediaEnableFilter"); | ||
192 | childSetEnabled("clear_lists", enabled && !sIsAdding); | ||
193 | childSetEnabled("show_ips", enabled && !sIsAdding); | ||
194 | childSetEnabled("blacklist_list", enabled && !sIsAdding); | ||
195 | childSetEnabled("whitelist_list", enabled && !sIsAdding); | ||
196 | childSetEnabled("remove_whitelist", enabled && !sIsAdding); | ||
197 | childSetEnabled("add_whitelist", enabled && !sIsAdding); | ||
198 | childSetEnabled("remove_blacklist", enabled && !sIsAdding); | ||
199 | childSetEnabled("add_blacklist", enabled && !sIsAdding); | ||
200 | childSetEnabled("match_ip", enabled); | ||
201 | childSetEnabled("input_domain", enabled && sIsAdding); | ||
202 | childSetEnabled("commit_domain", enabled && sIsAdding); | ||
203 | childSetEnabled("cancel_domain", enabled && sIsAdding); | ||
204 | childSetEnabled("filter_only_remote", enabled); | ||
205 | childSetEnabled("info1", enabled); | ||
206 | childSetEnabled("info2", enabled); | ||
207 | |||
208 | std::string add_text("****** Media filtering is currently DISABLED ******"); | ||
209 | if (enabled) | ||
210 | { | ||
211 | if (sIsAdding) | ||
212 | { | ||
213 | if (sIsWhitelist) | ||
214 | { | ||
215 | add_text = "Enter the domain/url to add to the white list:"; | ||
216 | } | ||
217 | else | ||
218 | { | ||
219 | add_text = "Enter the domain/url to add to the black list:"; | ||
220 | } | ||
221 | } | ||
222 | else | ||
223 | { | ||
224 | add_text = "New Domain:"; | ||
225 | } | ||
226 | } | ||
227 | childSetText("add_text", add_text); | ||
228 | } | ||
229 | |||
165 | void SLFloaterMediaFilter::setDirty() | 230 | void SLFloaterMediaFilter::setDirty() |
166 | { | 231 | { |
167 | if (sInstance) | 232 | if (sInstance) |
@@ -208,23 +273,21 @@ void SLFloaterMediaFilter::onClearLists(void* data) | |||
208 | LLViewerParcelMedia::clearDomainFilterList(); | 273 | LLViewerParcelMedia::clearDomainFilterList(); |
209 | } | 274 | } |
210 | 275 | ||
276 | void SLFloaterMediaFilter::onShowIPs(void* data) | ||
277 | { | ||
278 | sShowIPs = true; | ||
279 | setDirty(); | ||
280 | } | ||
281 | |||
211 | void SLFloaterMediaFilter::onWhitelistAdd(void* data) | 282 | void SLFloaterMediaFilter::onWhitelistAdd(void* data) |
212 | { | 283 | { |
213 | if (!sInstance) | 284 | if (!sInstance) |
214 | { | 285 | { |
215 | return; | 286 | return; |
216 | } | 287 | } |
217 | sInstance->childDisable("clear_lists"); | ||
218 | sInstance->childDisable("blacklist_list"); | ||
219 | sInstance->childDisable("whitelist_list"); | ||
220 | sInstance->childDisable("remove_whitelist"); | ||
221 | sInstance->childDisable("add_whitelist"); | ||
222 | sInstance->childDisable("remove_blacklist"); | ||
223 | sInstance->childDisable("add_blacklist"); | ||
224 | sInstance->childEnable("input_domain"); | ||
225 | sInstance->childEnable("commit_domain"); | ||
226 | sInstance->childSetText("add_text", std::string("Enter the domain/url to add to the white list:")); | ||
227 | sIsWhitelist = true; | 288 | sIsWhitelist = true; |
289 | sIsAdding = true; | ||
290 | sInstance->updateWidgets(); | ||
228 | } | 291 | } |
229 | 292 | ||
230 | void SLFloaterMediaFilter::onWhitelistRemove(void* data) | 293 | void SLFloaterMediaFilter::onWhitelistRemove(void* data) |
@@ -238,6 +301,12 @@ void SLFloaterMediaFilter::onWhitelistRemove(void* data) | |||
238 | if (selected) | 301 | if (selected) |
239 | { | 302 | { |
240 | std::string domain = sInstance->mWhitelistSLC->getSelectedItemLabel(); | 303 | std::string domain = sInstance->mWhitelistSLC->getSelectedItemLabel(); |
304 | size_t pos = domain.find(' '); | ||
305 | if (pos != std::string::npos) | ||
306 | { | ||
307 | domain = domain.substr(0, pos); | ||
308 | } | ||
309 | |||
241 | LLViewerParcelMedia::sAllowedMedia.erase(domain); | 310 | LLViewerParcelMedia::sAllowedMedia.erase(domain); |
242 | 311 | ||
243 | for (S32 i = 0; i < (S32)LLViewerParcelMedia::sMediaFilterList.size(); i++) | 312 | for (S32 i = 0; i < (S32)LLViewerParcelMedia::sMediaFilterList.size(); i++) |
@@ -245,11 +314,32 @@ void SLFloaterMediaFilter::onWhitelistRemove(void* data) | |||
245 | if (LLViewerParcelMedia::sMediaFilterList[i]["domain"].asString() == domain) | 314 | if (LLViewerParcelMedia::sMediaFilterList[i]["domain"].asString() == domain) |
246 | { | 315 | { |
247 | LLViewerParcelMedia::sMediaFilterList.erase(i); | 316 | LLViewerParcelMedia::sMediaFilterList.erase(i); |
248 | LLViewerParcelMedia::saveDomainFilterList(); | ||
249 | break; | 317 | break; |
250 | } | 318 | } |
251 | } | 319 | } |
252 | 320 | ||
321 | if (sInstance->childGetValue("match_ip") && domain.find('/') == std::string::npos) | ||
322 | { | ||
323 | LLHost host; | ||
324 | host.setHostByName(domain); | ||
325 | std::string ip = host.getIPString(); | ||
326 | |||
327 | if (ip != domain) | ||
328 | { | ||
329 | LLViewerParcelMedia::sAllowedMedia.erase(ip); | ||
330 | |||
331 | for (S32 i = 0; i < (S32)LLViewerParcelMedia::sMediaFilterList.size(); i++) | ||
332 | { | ||
333 | if (LLViewerParcelMedia::sMediaFilterList[i]["domain"].asString() == ip) | ||
334 | { | ||
335 | LLViewerParcelMedia::sMediaFilterList.erase(i); | ||
336 | break; | ||
337 | } | ||
338 | } | ||
339 | } | ||
340 | } | ||
341 | |||
342 | LLViewerParcelMedia::saveDomainFilterList(); | ||
253 | setDirty(); | 343 | setDirty(); |
254 | } | 344 | } |
255 | } | 345 | } |
@@ -260,17 +350,9 @@ void SLFloaterMediaFilter::onBlacklistAdd(void* data) | |||
260 | { | 350 | { |
261 | return; | 351 | return; |
262 | } | 352 | } |
263 | sInstance->childDisable("clear_lists"); | ||
264 | sInstance->childDisable("blacklist_list"); | ||
265 | sInstance->childDisable("whitelist_list"); | ||
266 | sInstance->childDisable("remove_whitelist"); | ||
267 | sInstance->childDisable("add_whitelist"); | ||
268 | sInstance->childDisable("remove_blacklist"); | ||
269 | sInstance->childDisable("add_blacklist"); | ||
270 | sInstance->childEnable("input_domain"); | ||
271 | sInstance->childEnable("commit_domain"); | ||
272 | sInstance->childSetText("add_text", std::string("Enter the domain/url to add to the black list:")); | ||
273 | sIsWhitelist = false; | 353 | sIsWhitelist = false; |
354 | sIsAdding = true; | ||
355 | sInstance->updateWidgets(); | ||
274 | } | 356 | } |
275 | 357 | ||
276 | void SLFloaterMediaFilter::onBlacklistRemove(void* data) | 358 | void SLFloaterMediaFilter::onBlacklistRemove(void* data) |
@@ -284,6 +366,12 @@ void SLFloaterMediaFilter::onBlacklistRemove(void* data) | |||
284 | if (selected) | 366 | if (selected) |
285 | { | 367 | { |
286 | std::string domain = sInstance->mBlacklistSLC->getSelectedItemLabel(); | 368 | std::string domain = sInstance->mBlacklistSLC->getSelectedItemLabel(); |
369 | size_t pos = domain.find(' '); | ||
370 | if (pos != std::string::npos) | ||
371 | { | ||
372 | domain = domain.substr(0, pos); | ||
373 | } | ||
374 | |||
287 | LLViewerParcelMedia::sDeniedMedia.erase(domain); | 375 | LLViewerParcelMedia::sDeniedMedia.erase(domain); |
288 | 376 | ||
289 | for (S32 i = 0; i < (S32)LLViewerParcelMedia::sMediaFilterList.size(); i++) | 377 | for (S32 i = 0; i < (S32)LLViewerParcelMedia::sMediaFilterList.size(); i++) |
@@ -291,11 +379,32 @@ void SLFloaterMediaFilter::onBlacklistRemove(void* data) | |||
291 | if (LLViewerParcelMedia::sMediaFilterList[i]["domain"].asString() == domain) | 379 | if (LLViewerParcelMedia::sMediaFilterList[i]["domain"].asString() == domain) |
292 | { | 380 | { |
293 | LLViewerParcelMedia::sMediaFilterList.erase(i); | 381 | LLViewerParcelMedia::sMediaFilterList.erase(i); |
294 | LLViewerParcelMedia::saveDomainFilterList(); | ||
295 | break; | 382 | break; |
296 | } | 383 | } |
297 | } | 384 | } |
298 | 385 | ||
386 | if (sInstance->childGetValue("match_ip") && domain.find('/') == std::string::npos) | ||
387 | { | ||
388 | LLHost host; | ||
389 | host.setHostByName(domain); | ||
390 | std::string ip = host.getIPString(); | ||
391 | |||
392 | if (ip != domain) | ||
393 | { | ||
394 | LLViewerParcelMedia::sDeniedMedia.erase(ip); | ||
395 | |||
396 | for (S32 i = 0; i < (S32)LLViewerParcelMedia::sMediaFilterList.size(); i++) | ||
397 | { | ||
398 | if (LLViewerParcelMedia::sMediaFilterList[i]["domain"].asString() == ip) | ||
399 | { | ||
400 | LLViewerParcelMedia::sMediaFilterList.erase(i); | ||
401 | break; | ||
402 | } | ||
403 | } | ||
404 | } | ||
405 | } | ||
406 | |||
407 | LLViewerParcelMedia::saveDomainFilterList(); | ||
299 | setDirty(); | 408 | setDirty(); |
300 | } | 409 | } |
301 | } | 410 | } |
@@ -308,6 +417,10 @@ void SLFloaterMediaFilter::onCommitDomain(void* data) | |||
308 | } | 417 | } |
309 | std::string domain = sInstance->childGetText("input_domain"); | 418 | std::string domain = sInstance->childGetText("input_domain"); |
310 | domain = LLViewerParcelMedia::extractDomain(domain); | 419 | domain = LLViewerParcelMedia::extractDomain(domain); |
420 | LLHost host; | ||
421 | host.setHostByName(domain); | ||
422 | std::string ip = host.getIPString(); | ||
423 | bool match_ip = (sInstance->childGetValue("match_ip") && ip != domain && domain.find('/') == std::string::npos); | ||
311 | 424 | ||
312 | if (!domain.empty()) | 425 | if (!domain.empty()) |
313 | { | 426 | { |
@@ -318,7 +431,18 @@ void SLFloaterMediaFilter::onCommitDomain(void* data) | |||
318 | if (LLViewerParcelMedia::sMediaFilterList[i]["domain"].asString() == domain) | 431 | if (LLViewerParcelMedia::sMediaFilterList[i]["domain"].asString() == domain) |
319 | { | 432 | { |
320 | LLViewerParcelMedia::sMediaFilterList.erase(i); | 433 | LLViewerParcelMedia::sMediaFilterList.erase(i); |
321 | break; | 434 | } |
435 | } | ||
436 | if (match_ip) | ||
437 | { | ||
438 | LLViewerParcelMedia::sDeniedMedia.erase(ip); | ||
439 | LLViewerParcelMedia::sAllowedMedia.erase(ip); | ||
440 | for (S32 i = 0; i < (S32)LLViewerParcelMedia::sMediaFilterList.size(); i++) | ||
441 | { | ||
442 | if (LLViewerParcelMedia::sMediaFilterList[i]["domain"].asString() == ip) | ||
443 | { | ||
444 | LLViewerParcelMedia::sMediaFilterList.erase(i); | ||
445 | } | ||
322 | } | 446 | } |
323 | } | 447 | } |
324 | LLSD newmedia; | 448 | LLSD newmedia; |
@@ -332,19 +456,33 @@ void SLFloaterMediaFilter::onCommitDomain(void* data) | |||
332 | newmedia["action"] = "deny"; | 456 | newmedia["action"] = "deny"; |
333 | } | 457 | } |
334 | LLViewerParcelMedia::sMediaFilterList.append(newmedia); | 458 | LLViewerParcelMedia::sMediaFilterList.append(newmedia); |
459 | if (match_ip) | ||
460 | { | ||
461 | newmedia["domain"] = ip; | ||
462 | LLViewerParcelMedia::sMediaFilterList.append(newmedia); | ||
463 | } | ||
335 | LLViewerParcelMedia::saveDomainFilterList(); | 464 | LLViewerParcelMedia::saveDomainFilterList(); |
336 | } | 465 | } |
337 | 466 | ||
338 | sInstance->childEnable("clear_lists"); | ||
339 | sInstance->childEnable("blacklist_list"); | ||
340 | sInstance->childEnable("whitelist_list"); | ||
341 | sInstance->childEnable("remove_whitelist"); | ||
342 | sInstance->childEnable("add_whitelist"); | ||
343 | sInstance->childEnable("remove_blacklist"); | ||
344 | sInstance->childEnable("add_blacklist"); | ||
345 | sInstance->childDisable("input_domain"); | ||
346 | sInstance->childDisable("commit_domain"); | ||
347 | sInstance->childSetText("add_text", std::string("New domain:")); | ||
348 | sInstance->childSetText("input_domain", std::string("")); | 467 | sInstance->childSetText("input_domain", std::string("")); |
468 | sIsAdding = false; | ||
469 | setDirty(); | ||
470 | } | ||
471 | |||
472 | //static | ||
473 | void SLFloaterMediaFilter::onCancelDomain(void* data) | ||
474 | { | ||
475 | if (!sInstance) | ||
476 | { | ||
477 | return; | ||
478 | } | ||
479 | sInstance->childSetText("input_domain", std::string("")); | ||
480 | sIsAdding = false; | ||
481 | setDirty(); | ||
482 | } | ||
483 | |||
484 | //static | ||
485 | void SLFloaterMediaFilter::onMediaEnableFilterChanged(const LLSD& newvalue) | ||
486 | { | ||
349 | setDirty(); | 487 | setDirty(); |
350 | } | 488 | } |
diff --git a/linden/indra/newview/slfloatermediafilter.h b/linden/indra/newview/slfloatermediafilter.h index 0f900be..9067c74 100644 --- a/linden/indra/newview/slfloatermediafilter.h +++ b/linden/indra/newview/slfloatermediafilter.h | |||
@@ -38,6 +38,7 @@ | |||
38 | 38 | ||
39 | class LLScrollListCtrl; | 39 | class LLScrollListCtrl; |
40 | class LLButton; | 40 | class LLButton; |
41 | class LLSD; | ||
41 | 42 | ||
42 | class SLFloaterMediaFilter : public LLFloater | 43 | class SLFloaterMediaFilter : public LLFloater |
43 | { | 44 | { |
@@ -52,14 +53,22 @@ public: | |||
52 | static void toggleInstance(); | 53 | static void toggleInstance(); |
53 | 54 | ||
54 | static void onClearLists(void*); | 55 | static void onClearLists(void*); |
56 | static void onShowIPs(void*); | ||
55 | static void onWhitelistAdd(void*); | 57 | static void onWhitelistAdd(void*); |
56 | static void onWhitelistRemove(void*); | 58 | static void onWhitelistRemove(void*); |
57 | static void onBlacklistAdd(void*); | 59 | static void onBlacklistAdd(void*); |
58 | static void onBlacklistRemove(void*); | 60 | static void onBlacklistRemove(void*); |
59 | static void onCommitDomain(void*); | 61 | static void onCommitDomain(void*); |
62 | static void onCancelDomain(void*); | ||
63 | static void onMediaEnableFilterChanged(const LLSD& newvalue); | ||
64 | |||
65 | private: | ||
66 | void updateWidgets(); | ||
60 | 67 | ||
61 | private: | 68 | private: |
62 | static bool sIsWhitelist; | 69 | static bool sIsWhitelist; |
70 | static bool sShowIPs; | ||
71 | static bool sIsAdding; | ||
63 | LLScrollListCtrl* mWhitelistSLC; | 72 | LLScrollListCtrl* mWhitelistSLC; |
64 | LLScrollListCtrl* mBlacklistSLC; | 73 | LLScrollListCtrl* mBlacklistSLC; |
65 | bool mIsDirty; | 74 | bool mIsDirty; |