From 1a498fbeea677908f2a182186082c22c28a4ef91 Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Mon, 23 Nov 2009 14:48:50 +0000 Subject: reg and rename. --- indra/newview/llviewerfloaterreg.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index 7772f613f0..860f794a95 100644 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -243,6 +243,7 @@ void LLViewerFloaterReg::registerFloaters() LLFloaterReg::add("upload_image", "floater_image_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build, "upload"); LLFloaterReg::add("upload_sound", "floater_sound_preview.xml", (LLFloaterBuildFunc)&LLFloaterReg::build, "upload"); + LLFloaterReg::add("volume_pulldown", "floater_volume_pulldown.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); LLFloaterReg::add("voice_call", "floater_call.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); LLFloaterReg::add("whitelist_entry", "floater_whitelist_entry.xml", (LLFloaterBuildFunc)&LLFloaterReg::build); -- cgit v1.2.3 From 278ce0be7a553b71c43771b027c49f7816cbcf2d Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Mon, 23 Nov 2009 14:52:33 +0000 Subject: clone tutorial floater for volume pulldown. --- indra/newview/llviewerfloaterreg.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp index 860f794a95..c8a9b96e25 100644 --- a/indra/newview/llviewerfloaterreg.cpp +++ b/indra/newview/llviewerfloaterreg.cpp @@ -105,6 +105,7 @@ #include "llfloateruipreview.h" #include "llfloaterurldisplay.h" #include "llfloatervoicedevicesettings.h" +#include "llfloatervolumepulldown.h" #include "llfloaterwater.h" #include "llfloaterwhitelistentry.h" #include "llfloaterwindlight.h" -- cgit v1.2.3 From 4c1faceefcb128fd0c620ce16e1e651ed02a45c1 Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Mon, 23 Nov 2009 15:14:32 +0000 Subject: bones. --- indra/newview/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index e8302ab5eb..ccdf514440 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -185,7 +185,7 @@ set(viewer_SOURCE_FILES llfloatermediasettings.cpp llfloatermemleak.cpp llfloaternamedesc.cpp - llfloaternearbymedia.cpp + llfloaternearbymedia.cpp llfloaternotificationsconsole.cpp llfloateropenobject.cpp llfloaterparcel.cpp @@ -212,6 +212,7 @@ set(viewer_SOURCE_FILES llfloaterurldisplay.cpp llfloaterurlentry.cpp llfloatervoicedevicesettings.cpp + llfloatervolumepulldown.cpp llfloaterwater.cpp llfloaterwhitelistentry.cpp llfloaterwindlight.cpp -- cgit v1.2.3 From f6f9e63091d82f10fb76778d993ae7d2087a1452 Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Mon, 23 Nov 2009 16:10:37 +0000 Subject: incomplete but almost-working volume pulldown, except it's not a pulldown. --- indra/newview/llstatusbar.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index b649a0c38e..bc9edec0ba 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -509,6 +509,9 @@ static void onClickVolume(void* data) // toggle the master mute setting BOOL mute_audio = gSavedSettings.getBOOL("MuteAudio"); gSavedSettings.setBOOL("MuteAudio", !mute_audio); + + // toggle the master volume pull-down + LLFloaterReg::showInstance("volume_pulldown"); //tmp } // sets the static variables necessary for the date -- cgit v1.2.3 From afd81a7d742731188f91f4b247abfc69813a95be Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Mon, 23 Nov 2009 16:29:14 +0000 Subject: start to make this a panel instead of a floater. --- .../skins/default/xui/en/panel_volume_pulldown.xml | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 indra/newview/skins/default/xui/en/panel_volume_pulldown.xml diff --git a/indra/newview/skins/default/xui/en/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/en/panel_volume_pulldown.xml new file mode 100644 index 0000000000..5d731663cb --- /dev/null +++ b/indra/newview/skins/default/xui/en/panel_volume_pulldown.xml @@ -0,0 +1,50 @@ + + + + + + + + -- cgit v1.2.3 From 655f33a9f818d75dd0f8d6040dfffd0520344222 Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Mon, 23 Nov 2009 17:52:37 +0000 Subject: panelized volume pulldown, that doesn't work at all. --- indra/newview/llstatusbar.cpp | 6 ++++-- .../skins/default/xui/en/panel_volume_pulldown.xml | 24 +++------------------- 2 files changed, 7 insertions(+), 23 deletions(-) diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index bc9edec0ba..2bd8d5fa55 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -42,6 +42,7 @@ #include "llfloaterbuycurrency.h" #include "llfloaterchat.h" #include "llfloaterlagmeter.h" +#include "llfloatervolumepulldown.h" #include "llfloaterregioninfo.h" #include "llfloaterscriptdebug.h" #include "llhudicon.h" @@ -201,7 +202,6 @@ LLStatusBar::LLStatusBar(const LLRect& rect) addChild(mSGPacketLoss); childSetActionTextbox("stat_btn", onClickStatGraph); - } LLStatusBar::~LLStatusBar() @@ -511,7 +511,9 @@ static void onClickVolume(void* data) gSavedSettings.setBOOL("MuteAudio", !mute_audio); // toggle the master volume pull-down - LLFloaterReg::showInstance("volume_pulldown"); //tmp + //LLFloaterReg::showInstance("volume_pulldown"); //tmp + //LLPanelVolumePulldown *foo= + new LLPanelVolumePulldown(); } // sets the static variables necessary for the date diff --git a/indra/newview/skins/default/xui/en/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/en/panel_volume_pulldown.xml index 5d731663cb..289cdbc821 100644 --- a/indra/newview/skins/default/xui/en/panel_volume_pulldown.xml +++ b/indra/newview/skins/default/xui/en/panel_volume_pulldown.xml @@ -1,23 +1,6 @@ - - - - + -- cgit v1.2.3 From f2b3aca83a27386e2fb066afcfe566e89a34fa32 Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Tue, 24 Nov 2009 13:51:26 +0000 Subject: hmm, more panel-ization, but it's not displaying. --- indra/newview/llstatusbar.cpp | 5 +++-- indra/newview/skins/default/xui/en/panel_volume_pulldown.xml | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index 2bd8d5fa55..8289930d97 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -512,8 +512,9 @@ static void onClickVolume(void* data) // toggle the master volume pull-down //LLFloaterReg::showInstance("volume_pulldown"); //tmp - //LLPanelVolumePulldown *foo= - new LLPanelVolumePulldown(); + LLPanelVolumePulldown *foo= + new LLPanelVolumePulldown(); + foo->setVisible(TRUE); } // sets the static variables necessary for the date diff --git a/indra/newview/skins/default/xui/en/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/en/panel_volume_pulldown.xml index 289cdbc821..8c12fd1fb4 100644 --- a/indra/newview/skins/default/xui/en/panel_volume_pulldown.xml +++ b/indra/newview/skins/default/xui/en/panel_volume_pulldown.xml @@ -19,14 +19,14 @@ initial_value="0.5" layout="topleft" left="0" - name="xSystem Volume" + name="System Volume" show_text="false" slider_label.halign="right" top_pad="5" volume="true" width="120"> -- cgit v1.2.3 From 7c340079ef679fa4b459cbe2ec0404b3a9a911df Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Wed, 25 Nov 2009 10:22:39 +0000 Subject: more attempts to panelize the volume pulldown, but why won't it show? --- indra/newview/llstatusbar.cpp | 16 +++++++++++++--- indra/newview/llstatusbar.h | 3 ++- indra/newview/skins/default/xui/en/panel_status_bar.xml | 11 +++++++++++ 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index 8289930d97..6178ca6da0 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -124,6 +124,7 @@ LLStatusBar::LLStatusBar(const LLRect& rect) mSGPacketLoss(NULL), mBtnBuyCurrency(NULL), mBtnVolume(NULL), + mPanelVolume(NULL), mBalance(0), mHealth(100), mSquareMetersCredit(0), @@ -159,6 +160,8 @@ LLStatusBar::LLStatusBar(const LLRect& rect) mBtnVolume = getChild( "volume_btn" ); mBtnVolume->setClickedCallback( onClickVolume, this ); + mPanelVolume = getChild( "volume_pulldown" ); + gSavedSettings.getControl("MuteAudio")->getSignal()->connect(boost::bind(&LLStatusBar::onVolumeChanged, this, _2)); childSetAction("scriptout", onClickScriptDebug, this); @@ -511,10 +514,17 @@ static void onClickVolume(void* data) gSavedSettings.setBOOL("MuteAudio", !mute_audio); // toggle the master volume pull-down + //LLFloaterReg::showInstance("volume_pulldown"); //tmp - LLPanelVolumePulldown *foo= - new LLPanelVolumePulldown(); - foo->setVisible(TRUE); + //LLPanelVolumePulldown *foo= + //new LLPanelVolumePulldown(); + //LLPanel* container = getRootView();//->getChild("nav_bar_container"); + //container->addChild(foo); + LLStatusBar *sb = (LLStatusBar*)(data); + llassert_always(sb); + sb->mPanelVolume->setRect(LLRect(1,1,100,100)); + sb->mPanelVolume->setVisible(TRUE); + sb->mPanelVolume->setEnabled(TRUE); } // sets the static variables necessary for the date diff --git a/indra/newview/llstatusbar.h b/indra/newview/llstatusbar.h index 3ce3549961..d764163384 100644 --- a/indra/newview/llstatusbar.h +++ b/indra/newview/llstatusbar.h @@ -87,6 +87,8 @@ public: S32 getSquareMetersCommitted() const; S32 getSquareMetersLeft() const; + LLPanel *mPanelVolume; + private: // simple method to setup the part that holds the date void setupDate(); @@ -94,7 +96,6 @@ private: void onVolumeChanged(const LLSD& newvalue); static void onClickStatGraph(void* data); - private: LLTextBox *mTextHealth; diff --git a/indra/newview/skins/default/xui/en/panel_status_bar.xml b/indra/newview/skins/default/xui/en/panel_status_bar.xml index b1afe76500..f1e8f7ebd7 100644 --- a/indra/newview/skins/default/xui/en/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml @@ -82,6 +82,17 @@ name="volume_btn" tool_tip="Global Volume Control" width="16" /> + Date: Wed, 25 Nov 2009 17:09:36 +0000 Subject: more fiddling with panel visibility --- indra/newview/llstatusbar.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index 6178ca6da0..2c18c41a5e 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -523,6 +523,8 @@ static void onClickVolume(void* data) LLStatusBar *sb = (LLStatusBar*)(data); llassert_always(sb); sb->mPanelVolume->setRect(LLRect(1,1,100,100)); + sb->mPanelVolume->setShape(LLRect(1,1,100,100)); + sb->mPanelVolume->setBackgroundColor(LLColor3(1.0, 0.0, 0.0)); sb->mPanelVolume->setVisible(TRUE); sb->mPanelVolume->setEnabled(TRUE); } -- cgit v1.2.3 From 1edb638035797888213cca337dbe46765632de66 Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Wed, 25 Nov 2009 17:40:16 +0000 Subject: Backed out changeset 4c84d72f16ca --- indra/llaudio/llaudiodecodemgr.cpp | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/indra/llaudio/llaudiodecodemgr.cpp b/indra/llaudio/llaudiodecodemgr.cpp index ca0a665a97..ae959eaa81 100644 --- a/indra/llaudio/llaudiodecodemgr.cpp +++ b/indra/llaudio/llaudiodecodemgr.cpp @@ -68,7 +68,6 @@ public: ~WriteResponder() {} void completed(S32 bytes) { - llinfos << "vorbis decoder COMPLETED callback with " << bytes << llendl; mDecoder->ioComplete(bytes); } LLPointer mDecoder; @@ -203,7 +202,7 @@ BOOL LLVorbisDecodeState::initDecode() vfs_callbacks.close_func = vfs_close; vfs_callbacks.tell_func = vfs_tell; - llinfos << "Initing decode from vfile: " << mUUID << llendl; + //llinfos << "Initing decode from vfile: " << mUUID << llendl; mInFilep = new LLVFile(gVFS, mUUID, LLAssetType::AT_SOUND); if (!mInFilep || !mInFilep->getSize()) @@ -356,14 +355,13 @@ BOOL LLVorbisDecodeState::decodeSection() } if (mDone) { - llwarns << mOutFilename << " Already done with vorbis decode, aborting!" << llendl; +// llwarns << "Already done with decode, aborting!" << llendl; return TRUE; } char pcmout[4096]; /*Flawfinder: ignore*/ BOOL eof = FALSE; long ret=ov_read(&mVF, pcmout, sizeof(pcmout), 0, 2, 1, &mCurrentSection); - llinfos << mOutFilename << " vorbis decode returned " << ret << llendl; if (ret == 0) { /* EOF */ @@ -403,10 +401,9 @@ BOOL LLVorbisDecodeState::finishDecode() } #if !defined(USE_WAV_VFILE) - if (mFileHandle == LLLFSThread::nullHandle()) // haven't started to write to disk yet... + if (mFileHandle == LLLFSThread::nullHandle()) #endif { - llwarns << "mFileHandle is still null in vorbis decode for " << getUUID() << llendl; ov_clear(&mVF); // write "data" chunk length, in little-endian format @@ -478,10 +475,7 @@ BOOL LLVorbisDecodeState::finishDecode() mValid = FALSE; return TRUE; // we've finished } - #if !defined(USE_WAV_VFILE) - // start the write of the wav file to disk. - llwarns << "starting wav write to disk from vorbis decode " << mOutFilename << llendl; mBytesRead = -1; mFileHandle = LLLFSThread::sLocal->write(mOutFilename, &mWAVBuffer[0], 0, mWAVBuffer.size(), new WriteResponder(this)); @@ -501,7 +495,6 @@ BOOL LLVorbisDecodeState::finishDecode() } else { - llwarns << "claiming to not be done in finishDecode" << llendl; return FALSE; // not done } } @@ -509,11 +502,11 @@ BOOL LLVorbisDecodeState::finishDecode() mDone = TRUE; #if defined(USE_WAV_VFILE) - // write the data into the VFS. + // write the data. LLVFile output(gVFS, mUUID, LLAssetType::AT_SOUND_WAV); output.write(&mWAVBuffer[0], mWAVBuffer.size()); #endif - llinfos << "Finished decode for " << getUUID() << llendl; + //llinfos << "Finished decode for " << getUUID() << llendl; return TRUE; } @@ -560,7 +553,6 @@ void LLAudioDecodeMgr::Impl::processQueue(const F32 num_secs) // Decode in a loop until we're done or have run out of time. while(!(res = mCurrentDecodep->decodeSection()) && (decode_timer.getElapsedTimeF32() < num_secs)) { - llinfos << "vorbis/audio decode timer has " << decode_timer.getElapsedTimeF32() << "s elapsed, from an alottment of " << num_secs << "s" << llendl; // decodeSection does all of the work above } -- cgit v1.2.3 From 9b0236990ba2df3c7c890d2d351724b455eddbb0 Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Thu, 26 Nov 2009 09:41:18 +0000 Subject: sketch what I think it wrong here. --- indra/newview/llstatusbar.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index 2c18c41a5e..f668a72c4e 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -527,6 +527,8 @@ static void onClickVolume(void* data) sb->mPanelVolume->setBackgroundColor(LLColor3(1.0, 0.0, 0.0)); sb->mPanelVolume->setVisible(TRUE); sb->mPanelVolume->setEnabled(TRUE); + gFocusMgr.setTopCtrl(sb->mPanelVolume); + // also set focus explicitly to mpanelvolume } // sets the static variables necessary for the date -- cgit v1.2.3 From 5fc387c9183b62b3fa1567432ac8897a89a205f6 Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Thu, 26 Nov 2009 17:07:35 +0000 Subject: More trying to get my panel to show. I must still be missing something obvious. --- indra/newview/llstatusbar.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index 6074bb2be9..15c76a13c6 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -529,6 +529,7 @@ static void onClickVolume(void* data) sb->mPanelVolume->setBackgroundColor(LLColor3(1.0, 0.0, 0.0)); sb->mPanelVolume->setVisible(TRUE); sb->mPanelVolume->setEnabled(TRUE); + sb->addChild(sb->mPanelVolume); gFocusMgr.setTopCtrl(sb->mPanelVolume); // also set focus explicitly to mpanelvolume } -- cgit v1.2.3 From e90e8e8f775ac728d0ac4e191f5a28304a98d253 Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Fri, 27 Nov 2009 11:55:37 +0000 Subject: more stabbing that doesn't work. --- indra/newview/llstatusbar.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index 15c76a13c6..c1d8c26dce 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -530,6 +530,7 @@ static void onClickVolume(void* data) sb->mPanelVolume->setVisible(TRUE); sb->mPanelVolume->setEnabled(TRUE); sb->addChild(sb->mPanelVolume); + sb->mPanelVolume->getParent()->sendChildToFront(sb->mPanelVolume); gFocusMgr.setTopCtrl(sb->mPanelVolume); // also set focus explicitly to mpanelvolume } -- cgit v1.2.3 From cf485a384ba8cd5249ae11949fe3464252f5ba06 Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Fri, 27 Nov 2009 12:58:45 +0000 Subject: more fiddling and tracing. --- indra/llui/lltooltip.cpp | 2 +- indra/newview/llstatusbar.cpp | 2 +- indra/newview/llstatusbar.h | 3 ++- indra/newview/skins/default/xui/en/panel_status_bar.xml | 1 - 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/indra/llui/lltooltip.cpp b/indra/llui/lltooltip.cpp index 959313a5b6..d7228c78bd 100644 --- a/indra/llui/lltooltip.cpp +++ b/indra/llui/lltooltip.cpp @@ -228,7 +228,7 @@ LLToolTip::LLToolTip(const LLToolTip::Params& p) { LLButton::Params p_button; p_button.name(std::string("play_media")); - p_button.label(""); // provid label but set to empty so name does not overwrite it -angela + p_button.label(""); // provide label but set to empty so name does not overwrite it -angela TOOLTIP_PLAYBUTTON_SIZE = 16; LLRect button_rect; button_rect.setOriginAndSize((mPadding +TOOLTIP_ICON_SIZE+ mPadding ), mPadding, TOOLTIP_ICON_SIZE, TOOLTIP_ICON_SIZE); diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index c1d8c26dce..ed125e0a59 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -162,7 +162,7 @@ LLStatusBar::LLStatusBar(const LLRect& rect) mBtnVolume = getChild( "volume_btn" ); mBtnVolume->setClickedCallback( onClickVolume, this ); - mPanelVolume = getChild( "volume_pulldown" ); + mPanelVolume = getChild( "volume_pulldown" ); gSavedSettings.getControl("MuteAudio")->getSignal()->connect(boost::bind(&LLStatusBar::onVolumeChanged, this, _2)); diff --git a/indra/newview/llstatusbar.h b/indra/newview/llstatusbar.h index 7be119dd4d..acb211b738 100644 --- a/indra/newview/llstatusbar.h +++ b/indra/newview/llstatusbar.h @@ -47,6 +47,7 @@ class LLUICtrl; class LLUUID; class LLFrameTimer; class LLStatGraph; +class LLPanelVolumePulldown; class LLStatusBar : public LLPanel @@ -86,7 +87,7 @@ public: S32 getSquareMetersCommitted() const; S32 getSquareMetersLeft() const; - LLPanel *mPanelVolume; + LLPanelVolumePulldown *mPanelVolume; private: // simple method to setup the part that holds the date diff --git a/indra/newview/skins/default/xui/en/panel_status_bar.xml b/indra/newview/skins/default/xui/en/panel_status_bar.xml index a296795aed..d3419eec4d 100644 --- a/indra/newview/skins/default/xui/en/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml @@ -83,7 +83,6 @@ width="16" /> Date: Fri, 27 Nov 2009 14:56:13 +0000 Subject: back to the floater version of the volume drop-down - I was having no luck with having the panel version display properly. --- indra/newview/llstatusbar.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index ed125e0a59..89c007280e 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -247,7 +247,6 @@ BOOL LLStatusBar::handleRightMouseDown(S32 x, S32 y, MASK mask) BOOL LLStatusBar::postBuild() { - gMenuBarView->setRightMouseDownCallback(boost::bind(&show_navbar_context_menu, _1, _2, _3)); return TRUE; @@ -517,7 +516,10 @@ static void onClickVolume(void* data) // toggle the master volume pull-down - //LLFloaterReg::showInstance("volume_pulldown"); //tmp + //LLFloater* vp = + LLFloaterReg::showInstance("volume_pulldown"); //tmp + +#if 0 //LLPanelVolumePulldown *foo= //new LLPanelVolumePulldown(); //LLPanel* container = getRootView();//->getChild("nav_bar_container"); @@ -530,9 +532,13 @@ static void onClickVolume(void* data) sb->mPanelVolume->setVisible(TRUE); sb->mPanelVolume->setEnabled(TRUE); sb->addChild(sb->mPanelVolume); + gFloaterView->addChild(sb->mPanelVolume); sb->mPanelVolume->getParent()->sendChildToFront(sb->mPanelVolume); gFocusMgr.setTopCtrl(sb->mPanelVolume); // also set focus explicitly to mpanelvolume + + //sb->mPanelVolume->setFrontmost() +#endif } // sets the static variables necessary for the date -- cgit v1.2.3 From 6b1cc111f57193fd98821e00f450b02b2bfded65 Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Fri, 27 Nov 2009 16:47:07 +0000 Subject: working but incomplete, I think I'll go back to panel... again. --- indra/newview/skins/default/xui/en/panel_status_bar.xml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/indra/newview/skins/default/xui/en/panel_status_bar.xml b/indra/newview/skins/default/xui/en/panel_status_bar.xml index d3419eec4d..65bc48265d 100644 --- a/indra/newview/skins/default/xui/en/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml @@ -81,16 +81,6 @@ name="volume_btn" tool_tip="Global Volume Control" width="16" /> - Date: Fri, 27 Nov 2009 17:34:50 +0000 Subject: whee, back to a floater for now. i'm going to stop worrying about the position for a while and work on the functionality. --- indra/newview/llstatusbar.cpp | 4 ++-- indra/newview/skins/default/xui/en/panel_status_bar.xml | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index 89c007280e..d57564a9f0 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -516,10 +516,10 @@ static void onClickVolume(void* data) // toggle the master volume pull-down +#if 1 //LLFloater* vp = LLFloaterReg::showInstance("volume_pulldown"); //tmp - -#if 0 +#else //LLPanelVolumePulldown *foo= //new LLPanelVolumePulldown(); //LLPanel* container = getRootView();//->getChild("nav_bar_container"); diff --git a/indra/newview/skins/default/xui/en/panel_status_bar.xml b/indra/newview/skins/default/xui/en/panel_status_bar.xml index 65bc48265d..9c66653e3c 100644 --- a/indra/newview/skins/default/xui/en/panel_status_bar.xml +++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml @@ -81,6 +81,17 @@ name="volume_btn" tool_tip="Global Volume Control" width="16" /> + + Date: Mon, 30 Nov 2009 10:03:50 +0000 Subject: remove llvorbisdecode.* - it's long-dead. at some point someone inlined this into llaudiodecodemgr and the 'indie' version rotted away. --- indra/llaudio/CMakeLists.txt | 2 -- indra/llaudio/llaudiodecodemgr.cpp | 1 - 2 files changed, 3 deletions(-) diff --git a/indra/llaudio/CMakeLists.txt b/indra/llaudio/CMakeLists.txt index 9e9e1aaeae..5c49d325bf 100644 --- a/indra/llaudio/CMakeLists.txt +++ b/indra/llaudio/CMakeLists.txt @@ -31,7 +31,6 @@ set(llaudio_SOURCE_FILES llaudioengine.cpp lllistener.cpp llaudiodecodemgr.cpp - llvorbisdecode.cpp llvorbisencode.cpp ) @@ -41,7 +40,6 @@ set(llaudio_HEADER_FILES llaudioengine.h lllistener.h llaudiodecodemgr.h - llvorbisdecode.h llvorbisencode.h llwindgen.h ) diff --git a/indra/llaudio/llaudiodecodemgr.cpp b/indra/llaudio/llaudiodecodemgr.cpp index ae959eaa81..6bbaad9cef 100644 --- a/indra/llaudio/llaudiodecodemgr.cpp +++ b/indra/llaudio/llaudiodecodemgr.cpp @@ -33,7 +33,6 @@ #include "llaudiodecodemgr.h" -#include "llvorbisdecode.h" #include "llaudioengine.h" #include "lllfsthread.h" #include "llvfile.h" -- cgit v1.2.3 From 903de794d2ce610be775cf44453643f8419447ef Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Mon, 30 Nov 2009 15:22:16 +0000 Subject: pretty good volume bar appear-on-hover --- indra/newview/llstatusbar.cpp | 12 ++++++++++++ indra/newview/llstatusbar.h | 1 + 2 files changed, 13 insertions(+) diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index d57564a9f0..04b96a3a01 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -161,6 +161,7 @@ LLStatusBar::LLStatusBar(const LLRect& rect) mBtnVolume = getChild( "volume_btn" ); mBtnVolume->setClickedCallback( onClickVolume, this ); + mBtnVolume->setMouseEnterCallback(boost::bind(&LLStatusBar::onMouseEnterVolume, this)); mPanelVolume = getChild( "volume_pulldown" ); @@ -508,6 +509,17 @@ static void onClickScriptDebug(void*) LLFloaterScriptDebug::show(LLUUID::null); } +//static +void LLStatusBar::onMouseEnterVolume(LLUICtrl* ctrl) +{ +#if 1 + //LLFloater* vp = + LLFloaterReg::showInstance("volume_pulldown"); //tmp +#else + #error do this for panel +#endif +} + static void onClickVolume(void* data) { // toggle the master mute setting diff --git a/indra/newview/llstatusbar.h b/indra/newview/llstatusbar.h index acb211b738..347530806e 100644 --- a/indra/newview/llstatusbar.h +++ b/indra/newview/llstatusbar.h @@ -95,6 +95,7 @@ private: void onVolumeChanged(const LLSD& newvalue); + static void onMouseEnterVolume(LLUICtrl* ctrl); static void onClickStatGraph(void* data); private: -- cgit v1.2.3 From ec42c50fe814e36cafc8e21da8badf272b383782 Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Mon, 30 Nov 2009 15:24:23 +0000 Subject: tidy-up. clicking mute button doesn't need to bring up the volume slider any more. --- indra/newview/llstatusbar.cpp | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index 04b96a3a01..d16a7c728b 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -512,21 +512,7 @@ static void onClickScriptDebug(void*) //static void LLStatusBar::onMouseEnterVolume(LLUICtrl* ctrl) { -#if 1 - //LLFloater* vp = - LLFloaterReg::showInstance("volume_pulldown"); //tmp -#else - #error do this for panel -#endif -} - -static void onClickVolume(void* data) -{ - // toggle the master mute setting - BOOL mute_audio = gSavedSettings.getBOOL("MuteAudio"); - gSavedSettings.setBOOL("MuteAudio", !mute_audio); - - // toggle the master volume pull-down + // show the master volume pull-down #if 1 //LLFloater* vp = @@ -553,6 +539,13 @@ static void onClickVolume(void* data) #endif } +static void onClickVolume(void* data) +{ + // toggle the master mute setting + BOOL mute_audio = gSavedSettings.getBOOL("MuteAudio"); + gSavedSettings.setBOOL("MuteAudio", !mute_audio); +} + // sets the static variables necessary for the date void LLStatusBar::setupDate() { -- cgit v1.2.3 From b9a6776a736e4b5cc440e678d8003eb7f23aed82 Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Mon, 30 Nov 2009 17:14:29 +0000 Subject: remove dead panel version of the master volume pulldown. the floater version turned out easier to get on-spec (though not perfect). --- .../skins/default/xui/en/panel_volume_pulldown.xml | 32 ---------------------- 1 file changed, 32 deletions(-) delete mode 100644 indra/newview/skins/default/xui/en/panel_volume_pulldown.xml diff --git a/indra/newview/skins/default/xui/en/panel_volume_pulldown.xml b/indra/newview/skins/default/xui/en/panel_volume_pulldown.xml deleted file mode 100644 index 8c12fd1fb4..0000000000 --- a/indra/newview/skins/default/xui/en/panel_volume_pulldown.xml +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - -- cgit v1.2.3 From c2fbdab7f122123239715ea652d2bc126b5d1705 Mon Sep 17 00:00:00 2001 From: Tofu Linden Date: Mon, 30 Nov 2009 17:30:45 +0000 Subject: lots more clean-up. --- indra/newview/llstatusbar.cpp | 28 +--------------------------- indra/newview/llstatusbar.h | 2 -- 2 files changed, 1 insertion(+), 29 deletions(-) diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp index d16a7c728b..4915720036 100644 --- a/indra/newview/llstatusbar.cpp +++ b/indra/newview/llstatusbar.cpp @@ -126,7 +126,6 @@ LLStatusBar::LLStatusBar(const LLRect& rect) mSGPacketLoss(NULL), mBtnBuyCurrency(NULL), mBtnVolume(NULL), - mPanelVolume(NULL), mBalance(0), mHealth(100), mSquareMetersCredit(0), @@ -163,8 +162,6 @@ LLStatusBar::LLStatusBar(const LLRect& rect) mBtnVolume->setClickedCallback( onClickVolume, this ); mBtnVolume->setMouseEnterCallback(boost::bind(&LLStatusBar::onMouseEnterVolume, this)); - mPanelVolume = getChild( "volume_pulldown" ); - gSavedSettings.getControl("MuteAudio")->getSignal()->connect(boost::bind(&LLStatusBar::onVolumeChanged, this, _2)); childSetAction("scriptout", onClickScriptDebug, this); @@ -513,30 +510,7 @@ static void onClickScriptDebug(void*) void LLStatusBar::onMouseEnterVolume(LLUICtrl* ctrl) { // show the master volume pull-down - -#if 1 - //LLFloater* vp = - LLFloaterReg::showInstance("volume_pulldown"); //tmp -#else - //LLPanelVolumePulldown *foo= - //new LLPanelVolumePulldown(); - //LLPanel* container = getRootView();//->getChild("nav_bar_container"); - //container->addChild(foo); - LLStatusBar *sb = (LLStatusBar*)(data); - llassert_always(sb); - sb->mPanelVolume->setRect(LLRect(1,1,100,100)); - sb->mPanelVolume->setShape(LLRect(1,1,100,100)); - sb->mPanelVolume->setBackgroundColor(LLColor3(1.0, 0.0, 0.0)); - sb->mPanelVolume->setVisible(TRUE); - sb->mPanelVolume->setEnabled(TRUE); - sb->addChild(sb->mPanelVolume); - gFloaterView->addChild(sb->mPanelVolume); - sb->mPanelVolume->getParent()->sendChildToFront(sb->mPanelVolume); - gFocusMgr.setTopCtrl(sb->mPanelVolume); - // also set focus explicitly to mpanelvolume - - //sb->mPanelVolume->setFrontmost() -#endif + LLFloaterReg::showInstance("volume_pulldown"); } static void onClickVolume(void* data) diff --git a/indra/newview/llstatusbar.h b/indra/newview/llstatusbar.h index 347530806e..f77cc1acb8 100644 --- a/indra/newview/llstatusbar.h +++ b/indra/newview/llstatusbar.h @@ -87,8 +87,6 @@ public: S32 getSquareMetersCommitted() const; S32 getSquareMetersLeft() const; - LLPanelVolumePulldown *mPanelVolume; - private: // simple method to setup the part that holds the date void setupDate(); -- cgit v1.2.3 From dcc617fcf5b5b0b84df4b9040693ed872e7abb4f Mon Sep 17 00:00:00 2001 From: Lynx Linden Date: Mon, 30 Nov 2009 18:42:45 +0000 Subject: Made the gcc version number checking more robust in llaudio's CMakeFiles.txt file. Previously it checked for a narrow range of gcc versions via a regex: if (${CXX_VERSION} MATCHES "4.[23]") Now we explicit check for any version >= 4.2: if (${CXX_VERSION_NUMBER} GREATER 419) --- indra/cmake/00-Common.cmake | 8 ++++---- indra/llaudio/CMakeLists.txt | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake index b159092592..1f578eec5f 100644 --- a/indra/cmake/00-Common.cmake +++ b/indra/cmake/00-Common.cmake @@ -119,14 +119,14 @@ if (LINUX) endif (${GXX_VERSION} STREQUAL ${CXX_VERSION}) # Let's actually get a numerical version of gxx's version - STRING(REGEX REPLACE ".* ([0-9])\\.([0-9])\\.([0-9]).*" "\\1\\2\\3" CXX_VERSION ${CXX_VERSION}) + STRING(REGEX REPLACE ".* ([0-9])\\.([0-9])\\.([0-9]).*" "\\1\\2\\3" CXX_VERSION_NUMBER ${CXX_VERSION}) - # gcc 4.3 and above don't like the LL boost and also + # gcc 4.3 and above don't like the LL boost and also # cause warnings due to our use of deprecated headers - if(${CXX_VERSION} GREATER 429) + if(${CXX_VERSION_NUMBER} GREATER 429) add_definitions(-Wno-parentheses) set(CMAKE_CXX_FLAGS "-Wno-deprecated ${CMAKE_CXX_FLAGS}") - endif (${CXX_VERSION} GREATER 429) + endif (${CXX_VERSION_NUMBER} GREATER 429) # End of hacks. diff --git a/indra/llaudio/CMakeLists.txt b/indra/llaudio/CMakeLists.txt index 9e9e1aaeae..9a281926bf 100644 --- a/indra/llaudio/CMakeLists.txt +++ b/indra/llaudio/CMakeLists.txt @@ -60,11 +60,11 @@ if (FMOD) ) if (LINUX) - if (${CXX_VERSION} MATCHES "4.[23]") + if (${CXX_VERSION_NUMBER} GREATER 419) set_source_files_properties(llaudioengine_fmod.cpp llstreamingaudio_fmod.cpp COMPILE_FLAGS -Wno-write-strings) - endif (${CXX_VERSION} MATCHES "4.[23]") + endif (${CXX_VERSION_NUMBER} GREATER 419) endif (LINUX) endif (FMOD) -- cgit v1.2.3 From 199d42f274e9b2e3150e46b1827c8625f4a24c68 Mon Sep 17 00:00:00 2001 From: "bea@american.lindenlab.com" Date: Mon, 30 Nov 2009 14:46:35 -0800 Subject: doxygen: exclude licensing blurbs --- indra/llplugin/llpluginclassmedia.cpp | 2 ++ indra/llplugin/llpluginclassmedia.h | 2 ++ indra/llplugin/llpluginclassmediaowner.h | 2 ++ indra/llplugin/llplugininstance.cpp | 2 ++ indra/llplugin/llplugininstance.h | 2 ++ indra/llplugin/llpluginmessage.cpp | 2 ++ indra/llplugin/llpluginmessage.h | 2 ++ indra/llplugin/llpluginmessageclasses.h | 2 ++ indra/llplugin/llpluginmessagepipe.cpp | 2 ++ indra/llplugin/llpluginmessagepipe.h | 2 ++ indra/llplugin/llpluginprocesschild.cpp | 2 ++ indra/llplugin/llpluginprocesschild.h | 2 ++ indra/llplugin/llpluginprocessparent.cpp | 2 ++ indra/llplugin/llpluginprocessparent.h | 2 ++ indra/llplugin/llpluginsharedmemory.cpp | 2 ++ indra/llplugin/llpluginsharedmemory.h | 2 ++ indra/llplugin/slplugin/slplugin.cpp | 4 ++++ indra/media_plugins/base/media_plugin_base.cpp | 2 ++ indra/media_plugins/base/media_plugin_base.h | 2 ++ indra/media_plugins/example/media_plugin_example.cpp | 2 ++ 20 files changed, 42 insertions(+) diff --git a/indra/llplugin/llpluginclassmedia.cpp b/indra/llplugin/llpluginclassmedia.cpp index c3d8a5aa23..70d770ef7e 100644 --- a/indra/llplugin/llpluginclassmedia.cpp +++ b/indra/llplugin/llpluginclassmedia.cpp @@ -2,6 +2,7 @@ * @file llpluginclassmedia.cpp * @brief LLPluginClassMedia handles a plugin which knows about the "media" message class. * + * @cond * $LicenseInfo:firstyear=2008&license=viewergpl$ * * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #include "linden_common.h" diff --git a/indra/llplugin/llpluginclassmedia.h b/indra/llplugin/llpluginclassmedia.h index dcc4a3bd6a..6b64688718 100644 --- a/indra/llplugin/llpluginclassmedia.h +++ b/indra/llplugin/llpluginclassmedia.h @@ -2,6 +2,7 @@ * @file llpluginclassmedia.h * @brief LLPluginClassMedia handles interaction with a plugin which knows about the "media" message class. * + * @cond * $LicenseInfo:firstyear=2008&license=viewergpl$ * * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #ifndef LL_LLPLUGINCLASSMEDIA_H diff --git a/indra/llplugin/llpluginclassmediaowner.h b/indra/llplugin/llpluginclassmediaowner.h index c798af29ca..6d369cd51a 100644 --- a/indra/llplugin/llpluginclassmediaowner.h +++ b/indra/llplugin/llpluginclassmediaowner.h @@ -2,6 +2,7 @@ * @file llpluginclassmediaowner.h * @brief LLPluginClassMedia handles interaction with a plugin which knows about the "media" message class. * + * @cond * $LicenseInfo:firstyear=2008&license=viewergpl$ * * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #ifndef LL_LLPLUGINCLASSMEDIAOWNER_H diff --git a/indra/llplugin/llplugininstance.cpp b/indra/llplugin/llplugininstance.cpp index 58fb792d0d..16ba492669 100644 --- a/indra/llplugin/llplugininstance.cpp +++ b/indra/llplugin/llplugininstance.cpp @@ -2,6 +2,7 @@ * @file llplugininstance.cpp * @brief LLPluginInstance handles loading the dynamic library of a plugin and setting up its entry points for message passing. * + * @cond * $LicenseInfo:firstyear=2008&license=viewergpl$ * * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #include "linden_common.h" diff --git a/indra/llplugin/llplugininstance.h b/indra/llplugin/llplugininstance.h index ba569df10c..02936f65fb 100644 --- a/indra/llplugin/llplugininstance.h +++ b/indra/llplugin/llplugininstance.h @@ -2,6 +2,7 @@ * @file llplugininstance.h * @brief LLPluginInstance handles loading the dynamic library of a plugin and setting up its entry points for message passing. * + * @cond * $LicenseInfo:firstyear=2008&license=viewergpl$ * * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #ifndef LL_LLPLUGININSTANCE_H diff --git a/indra/llplugin/llpluginmessage.cpp b/indra/llplugin/llpluginmessage.cpp index 32601b47db..34e02c356e 100644 --- a/indra/llplugin/llpluginmessage.cpp +++ b/indra/llplugin/llpluginmessage.cpp @@ -2,6 +2,7 @@ * @file llpluginmessage.cpp * @brief LLPluginMessage encapsulates the serialization/deserialization of messages passed to and from plugins. * + * @cond * $LicenseInfo:firstyear=2008&license=viewergpl$ * * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #include "linden_common.h" diff --git a/indra/llplugin/llpluginmessage.h b/indra/llplugin/llpluginmessage.h index 5e93d8b7a1..99f8d1194f 100644 --- a/indra/llplugin/llpluginmessage.h +++ b/indra/llplugin/llpluginmessage.h @@ -2,6 +2,7 @@ * @file llpluginmessage.h * @brief LLPluginMessage encapsulates the serialization/deserialization of messages passed to and from plugins. * + * @cond * $LicenseInfo:firstyear=2008&license=viewergpl$ * * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #ifndef LL_LLPLUGINMESSAGE_H diff --git a/indra/llplugin/llpluginmessageclasses.h b/indra/llplugin/llpluginmessageclasses.h index 927fcf2eb2..01fddb92c5 100644 --- a/indra/llplugin/llpluginmessageclasses.h +++ b/indra/llplugin/llpluginmessageclasses.h @@ -2,6 +2,7 @@ * @file llpluginmessageclasses.h * @brief This file defines the versions of existing message classes for LLPluginMessage. * + * @cond * $LicenseInfo:firstyear=2008&license=viewergpl$ * * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #ifndef LL_LLPLUGINMESSAGECLASSES_H diff --git a/indra/llplugin/llpluginmessagepipe.cpp b/indra/llplugin/llpluginmessagepipe.cpp index 31ea138912..cc193fca42 100644 --- a/indra/llplugin/llpluginmessagepipe.cpp +++ b/indra/llplugin/llpluginmessagepipe.cpp @@ -2,6 +2,7 @@ * @file llpluginmessagepipe.cpp * @brief Classes that implement connections from the plugin system to pipes/pumps. * + * @cond * $LicenseInfo:firstyear=2008&license=viewergpl$ * * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #include "linden_common.h" diff --git a/indra/llplugin/llpluginmessagepipe.h b/indra/llplugin/llpluginmessagepipe.h index 4eb6575bd4..1ddb38de68 100644 --- a/indra/llplugin/llpluginmessagepipe.h +++ b/indra/llplugin/llpluginmessagepipe.h @@ -2,6 +2,7 @@ * @file llpluginmessagepipe.h * @brief Classes that implement connections from the plugin system to pipes/pumps. * + * @cond * $LicenseInfo:firstyear=2008&license=viewergpl$ * * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #ifndef LL_LLPLUGINMESSAGEPIPE_H diff --git a/indra/llplugin/llpluginprocesschild.cpp b/indra/llplugin/llpluginprocesschild.cpp index fc95136d9e..55cf11c620 100644 --- a/indra/llplugin/llpluginprocesschild.cpp +++ b/indra/llplugin/llpluginprocesschild.cpp @@ -2,6 +2,7 @@ * @file llpluginprocesschild.cpp * @brief LLPluginProcessChild handles the child side of the external-process plugin API. * + * @cond * $LicenseInfo:firstyear=2008&license=viewergpl$ * * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #include "linden_common.h" diff --git a/indra/llplugin/llpluginprocesschild.h b/indra/llplugin/llpluginprocesschild.h index 75860bdf0a..f5c57c3d49 100644 --- a/indra/llplugin/llpluginprocesschild.h +++ b/indra/llplugin/llpluginprocesschild.h @@ -2,6 +2,7 @@ * @file llpluginprocesschild.h * @brief LLPluginProcessChild handles the child side of the external-process plugin API. * + * @cond * $LicenseInfo:firstyear=2008&license=viewergpl$ * * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #ifndef LL_LLPLUGINPROCESSCHILD_H diff --git a/indra/llplugin/llpluginprocessparent.cpp b/indra/llplugin/llpluginprocessparent.cpp index b7ce800c3a..332ce288d7 100644 --- a/indra/llplugin/llpluginprocessparent.cpp +++ b/indra/llplugin/llpluginprocessparent.cpp @@ -2,6 +2,7 @@ * @file llpluginprocessparent.cpp * @brief LLPluginProcessParent handles the parent side of the external-process plugin API. * + * @cond * $LicenseInfo:firstyear=2008&license=viewergpl$ * * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #include "linden_common.h" diff --git a/indra/llplugin/llpluginprocessparent.h b/indra/llplugin/llpluginprocessparent.h index 1289e86c13..25669f5d78 100644 --- a/indra/llplugin/llpluginprocessparent.h +++ b/indra/llplugin/llpluginprocessparent.h @@ -2,6 +2,7 @@ * @file llpluginprocessparent.h * @brief LLPluginProcessParent handles the parent side of the external-process plugin API. * + * @cond * $LicenseInfo:firstyear=2008&license=viewergpl$ * * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #ifndef LL_LLPLUGINPROCESSPARENT_H diff --git a/indra/llplugin/llpluginsharedmemory.cpp b/indra/llplugin/llpluginsharedmemory.cpp index ce8b8e3e09..3c69a69d28 100644 --- a/indra/llplugin/llpluginsharedmemory.cpp +++ b/indra/llplugin/llpluginsharedmemory.cpp @@ -2,6 +2,7 @@ * @file llpluginsharedmemory.cpp * @brief LLPluginSharedMemory manages a shared memory segment for use by the LLPlugin API. * + * @cond * $LicenseInfo:firstyear=2008&license=viewergpl$ * * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #include "linden_common.h" diff --git a/indra/llplugin/llpluginsharedmemory.h b/indra/llplugin/llpluginsharedmemory.h index a4613b9a54..4014620c52 100644 --- a/indra/llplugin/llpluginsharedmemory.h +++ b/indra/llplugin/llpluginsharedmemory.h @@ -2,6 +2,7 @@ * @file llpluginsharedmemory.h * @brief LLPluginSharedMemory manages a shared memory segment for use by the LLPlugin API. * + * @cond * $LicenseInfo:firstyear=2008&license=viewergpl$ * * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #ifndef LL_LLPLUGINSHAREDMEMORY_H diff --git a/indra/llplugin/slplugin/slplugin.cpp b/indra/llplugin/slplugin/slplugin.cpp index ddca60867a..23dc532ba5 100644 --- a/indra/llplugin/slplugin/slplugin.cpp +++ b/indra/llplugin/slplugin/slplugin.cpp @@ -2,6 +2,8 @@ * @file slplugin.cpp * @brief Loader shell for plugins, intended to be launched by the plugin host application, which directly loads a plugin dynamic library. * + * @cond + * * $LicenseInfo:firstyear=2008&license=viewergpl$ * * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +29,8 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * + * @endcond */ diff --git a/indra/media_plugins/base/media_plugin_base.cpp b/indra/media_plugins/base/media_plugin_base.cpp index 6acac07423..8c8fa24a65 100644 --- a/indra/media_plugins/base/media_plugin_base.cpp +++ b/indra/media_plugins/base/media_plugin_base.cpp @@ -2,6 +2,7 @@ * @file media_plugin_base.cpp * @brief Media plugin base class for LLMedia API plugin system * + * @cond * $LicenseInfo:firstyear=2008&license=viewergpl$ * * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #include "linden_common.h" diff --git a/indra/media_plugins/base/media_plugin_base.h b/indra/media_plugins/base/media_plugin_base.h index f1e96335f9..4dd157a07c 100644 --- a/indra/media_plugins/base/media_plugin_base.h +++ b/indra/media_plugins/base/media_plugin_base.h @@ -2,6 +2,7 @@ * @file media_plugin_base.h * @brief Media plugin base class for LLMedia API plugin system * + * @cond * $LicenseInfo:firstyear=2008&license=viewergpl$ * * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #include "linden_common.h" diff --git a/indra/media_plugins/example/media_plugin_example.cpp b/indra/media_plugins/example/media_plugin_example.cpp index 99e0199a29..f5b077fea0 100644 --- a/indra/media_plugins/example/media_plugin_example.cpp +++ b/indra/media_plugins/example/media_plugin_example.cpp @@ -2,6 +2,7 @@ * @file media_plugin_example.cpp * @brief Example plugin for LLMedia API plugin system * + * @cond * $LicenseInfo:firstyear=2008&license=viewergpl$ * * Copyright (c) 2009, Linden Research, Inc. @@ -27,6 +28,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #include "linden_common.h" -- cgit v1.2.3 From 8e3276ebf9fc87b3d622dd23dbf22b10ffb494f2 Mon Sep 17 00:00:00 2001 From: "bea@american.lindenlab.com" Date: Mon, 30 Nov 2009 14:53:31 -0800 Subject: doxygen: exclude licensing comments --- indra/media_plugins/gstreamer010/llmediaimplgstreamer.h | 2 ++ indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.cpp | 2 ++ indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.h | 2 ++ indra/media_plugins/gstreamer010/llmediaimplgstreamertriviallogging.h | 2 ++ indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.cpp | 2 ++ indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.h | 2 ++ indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp | 2 ++ indra/media_plugins/quicktime/media_plugin_quicktime.cpp | 2 ++ indra/media_plugins/webkit/media_plugin_webkit.cpp | 2 ++ 9 files changed, 18 insertions(+) diff --git a/indra/media_plugins/gstreamer010/llmediaimplgstreamer.h b/indra/media_plugins/gstreamer010/llmediaimplgstreamer.h index ef41736c18..48accd3e66 100644 --- a/indra/media_plugins/gstreamer010/llmediaimplgstreamer.h +++ b/indra/media_plugins/gstreamer010/llmediaimplgstreamer.h @@ -3,6 +3,7 @@ * @author Tofu Linden * @brief implementation that supports media playback via GStreamer. * + * @cond * $LicenseInfo:firstyear=2007&license=viewergpl$ * * Copyright (c) 2007-2009, Linden Research, Inc. @@ -29,6 +30,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ // header guard diff --git a/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.cpp b/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.cpp index cc52232496..52cea46d46 100644 --- a/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.cpp +++ b/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.cpp @@ -2,6 +2,7 @@ * @file llmediaimplgstreamer_syms.cpp * @brief dynamic GStreamer symbol-grabbing code * + * @cond * $LicenseInfo:firstyear=2007&license=viewergpl$ * * Copyright (c) 2007-2009, Linden Research, Inc. @@ -28,6 +29,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #if LL_GSTREAMER010_ENABLED diff --git a/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.h b/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.h index ee7473d6d1..88f100af6e 100644 --- a/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.h +++ b/indra/media_plugins/gstreamer010/llmediaimplgstreamer_syms.h @@ -2,6 +2,7 @@ * @file llmediaimplgstreamer_syms.h * @brief dynamic GStreamer symbol-grabbing code * + * @cond * $LicenseInfo:firstyear=2007&license=viewergpl$ * * Copyright (c) 2007-2009, Linden Research, Inc. @@ -28,6 +29,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #include "linden_common.h" diff --git a/indra/media_plugins/gstreamer010/llmediaimplgstreamertriviallogging.h b/indra/media_plugins/gstreamer010/llmediaimplgstreamertriviallogging.h index e31d4a3282..2244ccc146 100644 --- a/indra/media_plugins/gstreamer010/llmediaimplgstreamertriviallogging.h +++ b/indra/media_plugins/gstreamer010/llmediaimplgstreamertriviallogging.h @@ -2,6 +2,7 @@ * @file llmediaimplgstreamertriviallogging.h * @brief minimal logging utilities. * + * @cond * $LicenseInfo:firstyear=2009&license=viewergpl$ * * Copyright (c) 2009, Linden Research, Inc. @@ -28,6 +29,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #ifndef __LLMEDIAIMPLGSTREAMERTRIVIALLOGGING_H__ diff --git a/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.cpp b/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.cpp index d8ccfaa702..5bb0ef5a99 100644 --- a/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.cpp +++ b/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.cpp @@ -2,6 +2,7 @@ * @file llmediaimplgstreamervidplug.h * @brief Video-consuming static GStreamer plugin for gst-to-LLMediaImpl * + * @cond * $LicenseInfo:firstyear=2007&license=viewergpl$ * * Copyright (c) 2007-2009, Linden Research, Inc. @@ -28,6 +29,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #if LL_GSTREAMER010_ENABLED diff --git a/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.h b/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.h index f6d55b8758..208523e8d0 100644 --- a/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.h +++ b/indra/media_plugins/gstreamer010/llmediaimplgstreamervidplug.h @@ -2,6 +2,7 @@ * @file llmediaimplgstreamervidplug.h * @brief Video-consuming static GStreamer plugin for gst-to-LLMediaImpl * + * @cond * $LicenseInfo:firstyear=2007&license=viewergpl$ * * Copyright (c) 2007-2009, Linden Research, Inc. @@ -28,6 +29,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #ifndef __GST_SLVIDEO_H__ diff --git a/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp b/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp index a4c43988ba..d21ff26f83 100644 --- a/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp +++ b/indra/media_plugins/gstreamer010/media_plugin_gstreamer010.cpp @@ -2,6 +2,7 @@ * @file media_plugin_gstreamer010.cpp * @brief GStreamer-0.10 plugin for LLMedia API plugin system * + * @cond * $LicenseInfo:firstyear=2007&license=viewergpl$ * * Copyright (c) 2007, Linden Research, Inc. @@ -27,6 +28,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #include "linden_common.h" diff --git a/indra/media_plugins/quicktime/media_plugin_quicktime.cpp b/indra/media_plugins/quicktime/media_plugin_quicktime.cpp index 236f79978d..dbc44c8334 100644 --- a/indra/media_plugins/quicktime/media_plugin_quicktime.cpp +++ b/indra/media_plugins/quicktime/media_plugin_quicktime.cpp @@ -2,6 +2,7 @@ * @file media_plugin_quicktime.cpp * @brief QuickTime plugin for LLMedia API plugin system * + * @cond * $LicenseInfo:firstyear=2008&license=viewergpl$ * * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #include "linden_common.h" diff --git a/indra/media_plugins/webkit/media_plugin_webkit.cpp b/indra/media_plugins/webkit/media_plugin_webkit.cpp index 09348782a4..30c7483229 100644 --- a/indra/media_plugins/webkit/media_plugin_webkit.cpp +++ b/indra/media_plugins/webkit/media_plugin_webkit.cpp @@ -2,6 +2,7 @@ * @file media_plugin_webkit.cpp * @brief Webkit plugin for LLMedia API plugin system * + * @cond * $LicenseInfo:firstyear=2008&license=viewergpl$ * * Copyright (c) 2008, Linden Research, Inc. @@ -27,6 +28,7 @@ * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, * COMPLETENESS OR PERFORMANCE. * $/LicenseInfo$ + * @endcond */ #include "llqtwebkit.h" -- cgit v1.2.3 From 5040a726755939704a3de14187d9d020caea4d9d Mon Sep 17 00:00:00 2001 From: Rick Pasetto Date: Mon, 30 Nov 2009 16:01:20 -0800 Subject: DEV-43041 DEV-41648 - disable OK and Apply if the media data is the same as the initial Review #48 This change kills two birds with one stone: every frame, we check to see if the media data is the same as the one we 'initialize' with. If it is, we disable OK and Cancel. Otherwise we enable them. This makes it very difficult to set empty media data, as well as fixing the "apply button doesn't grey out" bug. --- indra/newview/llfloatermediasettings.cpp | 55 ++++++++++++++++++---- indra/newview/llfloatermediasettings.h | 12 +++-- indra/newview/llpanelmediasettingsgeneral.cpp | 18 +++---- indra/newview/llpanelmediasettingssecurity.cpp | 2 +- .../xui/en/panel_media_settings_general.xml | 23 ++++++--- 5 files changed, 82 insertions(+), 28 deletions(-) diff --git a/indra/newview/llfloatermediasettings.cpp b/indra/newview/llfloatermediasettings.cpp index 44e68d7745..f7ce826a39 100644 --- a/indra/newview/llfloatermediasettings.cpp +++ b/indra/newview/llfloatermediasettings.cpp @@ -41,6 +41,7 @@ #include "lluictrlfactory.h" #include "llbutton.h" #include "llselectmgr.h" +#include "llsdutil.h" LLFloaterMediaSettings* LLFloaterMediaSettings::sInstance = NULL; @@ -145,15 +146,15 @@ LLFloaterMediaSettings* LLFloaterMediaSettings::getInstance() //static void LLFloaterMediaSettings::apply() { - LLSD settings; + LLSD settings; sInstance->mPanelMediaSettingsGeneral->preApply(); - sInstance->mPanelMediaSettingsGeneral->getValues( settings ); + sInstance->mPanelMediaSettingsGeneral->getValues( settings ); sInstance->mPanelMediaSettingsSecurity->preApply(); sInstance->mPanelMediaSettingsSecurity->getValues( settings ); sInstance->mPanelMediaSettingsPermissions->preApply(); - sInstance->mPanelMediaSettingsPermissions->getValues( settings ); + sInstance->mPanelMediaSettingsPermissions->getValues( settings ); LLSelectMgr::getInstance()->selectionSetMedia( LLTextureEntry::MF_HAS_MEDIA ); - LLSelectMgr::getInstance()->selectionSetMediaData(settings); + LLSelectMgr::getInstance()->selectionSetMediaData(settings); sInstance->mPanelMediaSettingsGeneral->postApply(); sInstance->mPanelMediaSettingsSecurity->postApply(); sInstance->mPanelMediaSettingsPermissions->postApply(); @@ -183,7 +184,12 @@ void LLFloaterMediaSettings::initValues( const LLSD& media_settings, bool editab sInstance->mPanelMediaSettingsPermissions-> initValues( sInstance->mPanelMediaSettingsPermissions, media_settings, editable ); - + + // Squirrel away initial values + sInstance->mInitialValues.clear(); + sInstance->mPanelMediaSettingsGeneral->getValues( sInstance->mInitialValues ); + sInstance->mPanelMediaSettingsSecurity->getValues( sInstance->mInitialValues ); + sInstance->mPanelMediaSettingsPermissions->getValues( sInstance->mInitialValues ); } //////////////////////////////////////////////////////////////////////////////// @@ -206,7 +212,7 @@ void LLFloaterMediaSettings::clearValues( bool editable) { // clean up all panels before updating sInstance->mPanelMediaSettingsGeneral ->clearValues(sInstance->mPanelMediaSettingsGeneral, editable); - sInstance->mPanelMediaSettingsSecurity ->clearValues(sInstance->mPanelMediaSettingsSecurity, editable); + sInstance->mPanelMediaSettingsSecurity ->clearValues(sInstance->mPanelMediaSettingsSecurity, editable); sInstance->mPanelMediaSettingsPermissions->clearValues(sInstance->mPanelMediaSettingsPermissions, editable); } @@ -235,7 +241,7 @@ void LLFloaterMediaSettings::onBtnApply( void* userdata ) // static void LLFloaterMediaSettings::onBtnCancel( void* userdata ) { - sInstance->closeFloater(); + sInstance->closeFloater(); } //////////////////////////////////////////////////////////////////////////////// @@ -250,7 +256,6 @@ void LLFloaterMediaSettings::onTabChanged(void* user_data, bool from_click) // void LLFloaterMediaSettings::enableOkApplyBtns( bool enable ) { - setCtrlsEnabled( enable ); childSetEnabled( "OK", enable ); childSetEnabled( "Apply", enable ); } @@ -265,7 +270,6 @@ const std::string LLFloaterMediaSettings::getHomeUrl() return std::string( "" ); } - //////////////////////////////////////////////////////////////////////////////// // bool LLFloaterMediaSettings::passesWhiteList( const std::string& test_url ) @@ -279,3 +283,36 @@ bool LLFloaterMediaSettings::passesWhiteList( const std::string& test_url ) // this is all we can do return false; } + +//////////////////////////////////////////////////////////////////////////////// +// virtual +void LLFloaterMediaSettings::draw() +{ + // *NOTE: The code below is very inefficient. Better to do this + // only when data change. + // Every frame, check to see what the values are. If they are not + // the same as the default media data, enable the OK/Apply buttons + LLSD settings; + sInstance->mPanelMediaSettingsGeneral->getValues( settings ); + sInstance->mPanelMediaSettingsSecurity->getValues( settings ); + sInstance->mPanelMediaSettingsPermissions->getValues( settings ); + + bool values_changed = false; + + LLSD::map_const_iterator iter = settings.beginMap(); + LLSD::map_const_iterator end = settings.endMap(); + for ( ; iter != end; ++iter ) + { + const std::string ¤t_key = iter->first; + const LLSD ¤t_value = iter->second; + if ( ! llsd_equals(current_value, mInitialValues[current_key])) + { + values_changed = true; + break; + } + } + + enableOkApplyBtns(values_changed); + + LLFloater::draw(); +} diff --git a/indra/newview/llfloatermediasettings.h b/indra/newview/llfloatermediasettings.h index 17a47cb0f5..e2af1705bf 100644 --- a/indra/newview/llfloatermediasettings.h +++ b/indra/newview/llfloatermediasettings.h @@ -54,11 +54,13 @@ public: static void apply(); static void initValues( const LLSD& media_settings , bool editable); static void clearValues( bool editable); - void enableOkApplyBtns( bool enable ); - LLPanelMediaSettingsSecurity* getPanelSecurity(){return mPanelMediaSettingsSecurity;}; - const std::string getHomeUrl(); + + LLPanelMediaSettingsSecurity* getPanelSecurity(){return mPanelMediaSettingsSecurity;}; + const std::string getHomeUrl(); bool passesWhiteList( const std::string& test_url ); + virtual void draw(); + bool mIdenticalHasMediaInfo; bool mMultipleMedia; bool mMultipleValidMedia; @@ -83,6 +85,10 @@ protected: static LLFloaterMediaSettings* sInstance; private: + + void enableOkApplyBtns( bool enable ); + + LLSD mInitialValues; bool mWaitingToClose; }; diff --git a/indra/newview/llpanelmediasettingsgeneral.cpp b/indra/newview/llpanelmediasettingsgeneral.cpp index 5bb266a01d..b1e7dd3d50 100644 --- a/indra/newview/llpanelmediasettingsgeneral.cpp +++ b/indra/newview/llpanelmediasettingsgeneral.cpp @@ -392,19 +392,19 @@ void LLPanelMediaSettingsGeneral::preApply() // void LLPanelMediaSettingsGeneral::getValues( LLSD &fill_me_in ) { - fill_me_in[LLMediaEntry::AUTO_LOOP_KEY] = mAutoLoop->getValue(); - fill_me_in[LLMediaEntry::AUTO_PLAY_KEY] = mAutoPlay->getValue(); - fill_me_in[LLMediaEntry::AUTO_SCALE_KEY] = mAutoScale->getValue(); - fill_me_in[LLMediaEntry::AUTO_ZOOM_KEY] = mAutoZoom->getValue(); - fill_me_in[LLMediaEntry::CONTROLS_KEY] = mControls->getCurrentIndex(); + fill_me_in[LLMediaEntry::AUTO_LOOP_KEY] = (LLSD::Boolean)mAutoLoop->getValue(); + fill_me_in[LLMediaEntry::AUTO_PLAY_KEY] = (LLSD::Boolean)mAutoPlay->getValue(); + fill_me_in[LLMediaEntry::AUTO_SCALE_KEY] = (LLSD::Boolean)mAutoScale->getValue(); + fill_me_in[LLMediaEntry::AUTO_ZOOM_KEY] = (LLSD::Boolean)mAutoZoom->getValue(); + fill_me_in[LLMediaEntry::CONTROLS_KEY] = (LLSD::Integer)mControls->getCurrentIndex(); //Don't fill in current URL: this is only supposed to get changed via navigate // fill_me_in[LLMediaEntry::CURRENT_URL_KEY] = mCurrentURL->getValue(); - fill_me_in[LLMediaEntry::HEIGHT_PIXELS_KEY] = mHeightPixels->getValue(); + fill_me_in[LLMediaEntry::HEIGHT_PIXELS_KEY] = (LLSD::Integer)mHeightPixels->getValue(); // Don't fill in the home URL if it is the special "Multiple Media" string! if (LLTrans::getString("Multiple Media") != mHomeURL->getValue()) - fill_me_in[LLMediaEntry::HOME_URL_KEY] = mHomeURL->getValue(); - fill_me_in[LLMediaEntry::FIRST_CLICK_INTERACT_KEY] = mFirstClick->getValue(); - fill_me_in[LLMediaEntry::WIDTH_PIXELS_KEY] = mWidthPixels->getValue(); + fill_me_in[LLMediaEntry::HOME_URL_KEY] = (LLSD::String)mHomeURL->getValue(); + fill_me_in[LLMediaEntry::FIRST_CLICK_INTERACT_KEY] = (LLSD::Boolean)mFirstClick->getValue(); + fill_me_in[LLMediaEntry::WIDTH_PIXELS_KEY] = (LLSD::Integer)mWidthPixels->getValue(); } //////////////////////////////////////////////////////////////////////////////// diff --git a/indra/newview/llpanelmediasettingssecurity.cpp b/indra/newview/llpanelmediasettingssecurity.cpp index 94e137b0f4..7ec53ed57a 100644 --- a/indra/newview/llpanelmediasettingssecurity.cpp +++ b/indra/newview/llpanelmediasettingssecurity.cpp @@ -213,7 +213,7 @@ void LLPanelMediaSettingsSecurity::preApply() // void LLPanelMediaSettingsSecurity::getValues( LLSD &fill_me_in ) { - fill_me_in[LLMediaEntry::WHITELIST_ENABLE_KEY] = mEnableWhiteList->getValue(); + fill_me_in[LLMediaEntry::WHITELIST_ENABLE_KEY] = (LLSD::Boolean)mEnableWhiteList->getValue(); // iterate over white list and extract items std::vector< LLScrollListItem* > white_list_items = mWhiteListList->getAllData(); diff --git a/indra/newview/skins/default/xui/en/panel_media_settings_general.xml b/indra/newview/skins/default/xui/en/panel_media_settings_general.xml index e00f654750..89f1fe35ca 100644 --- a/indra/newview/skins/default/xui/en/panel_media_settings_general.xml +++ b/indra/newview/skins/default/xui/en/panel_media_settings_general.xml @@ -221,12 +221,23 @@ width="50" /> - X + X - + -- cgit v1.2.3 From d90aea0ede0fc6958d6f323a0eae4079f14c46f2 Mon Sep 17 00:00:00 2001 From: callum Date: Mon, 30 Nov 2009 17:13:41 -0800 Subject: Fix for DEV-41951 - reworking of whitelist so it's more usable. --- indra/newview/llfloatermediasettings.cpp | 17 --- indra/newview/llfloatermediasettings.h | 3 +- indra/newview/llfloaterwhitelistentry.cpp | 2 +- indra/newview/llpanelmediasettingsgeneral.cpp | 51 +++++--- indra/newview/llpanelmediasettingsgeneral.h | 4 + indra/newview/llpanelmediasettingssecurity.cpp | 138 ++++++++++++--------- indra/newview/llpanelmediasettingssecurity.h | 16 ++- .../newview/skins/default/xui/en/notifications.xml | 15 +-- .../xui/en/panel_media_settings_general.xml | 24 ++-- .../xui/en/panel_media_settings_security.xml | 35 +++++- 10 files changed, 182 insertions(+), 123 deletions(-) diff --git a/indra/newview/llfloatermediasettings.cpp b/indra/newview/llfloatermediasettings.cpp index 44e68d7745..7cb841d8af 100644 --- a/indra/newview/llfloatermediasettings.cpp +++ b/indra/newview/llfloatermediasettings.cpp @@ -57,7 +57,6 @@ LLFloaterMediaSettings::LLFloaterMediaSettings(const LLSD& key) mMultipleMedia(false), mMultipleValidMedia(false) { -// LLUICtrlFactory::getInstance()->buildFloater(this, "floater_media_settings.xml"); } //////////////////////////////////////////////////////////////////////////////// @@ -210,7 +209,6 @@ void LLFloaterMediaSettings::clearValues( bool editable) sInstance->mPanelMediaSettingsPermissions->clearValues(sInstance->mPanelMediaSettingsPermissions, editable); } - //////////////////////////////////////////////////////////////////////////////// // static void LLFloaterMediaSettings::onBtnOK( void* userdata ) @@ -264,18 +262,3 @@ const std::string LLFloaterMediaSettings::getHomeUrl() else return std::string( "" ); } - - -//////////////////////////////////////////////////////////////////////////////// -// -bool LLFloaterMediaSettings::passesWhiteList( const std::string& test_url ) -{ - // sanity check - don't think this can happen - if ( mPanelMediaSettingsSecurity ) - // version in security dialog code is specialized so we pass in - // empty string for first parameter since it's not used - return mPanelMediaSettingsSecurity->passesWhiteList( "", test_url ); - else - // this is all we can do - return false; -} diff --git a/indra/newview/llfloatermediasettings.h b/indra/newview/llfloatermediasettings.h index 17a47cb0f5..aed6b00517 100644 --- a/indra/newview/llfloatermediasettings.h +++ b/indra/newview/llfloatermediasettings.h @@ -57,7 +57,7 @@ public: void enableOkApplyBtns( bool enable ); LLPanelMediaSettingsSecurity* getPanelSecurity(){return mPanelMediaSettingsSecurity;}; const std::string getHomeUrl(); - bool passesWhiteList( const std::string& test_url ); + //bool passesWhiteList( const std::string& test_url ); bool mIdenticalHasMediaInfo; bool mMultipleMedia; @@ -73,7 +73,6 @@ protected: LLPanelMediaSettingsSecurity* mPanelMediaSettingsSecurity; LLPanelMediaSettingsPermissions* mPanelMediaSettingsPermissions; - static void onBtnOK(void*); static void onBtnCancel(void*); static void onBtnApply(void*); diff --git a/indra/newview/llfloaterwhitelistentry.cpp b/indra/newview/llfloaterwhitelistentry.cpp index 551a5191fc..04dbd38153 100644 --- a/indra/newview/llfloaterwhitelistentry.cpp +++ b/indra/newview/llfloaterwhitelistentry.cpp @@ -81,7 +81,7 @@ void LLFloaterWhiteListEntry::onBtnOK( void* userdata ) { std::string white_list_item = self->mWhiteListEdit->getText(); - panel->addWhiteListItem( white_list_item ); + panel->addWhiteListEntry( white_list_item ); }; self->closeFloater(); diff --git a/indra/newview/llpanelmediasettingsgeneral.cpp b/indra/newview/llpanelmediasettingsgeneral.cpp index 5bb266a01d..9488f2bc18 100644 --- a/indra/newview/llpanelmediasettingsgeneral.cpp +++ b/indra/newview/llpanelmediasettingsgeneral.cpp @@ -59,6 +59,8 @@ #include "llfloatermediasettings.h" #include "llfloatertools.h" #include "lltrans.h" +#include "lltextbox.h" +#include "llpanelmediasettingssecurity.h" const char *CHECKERBOARD_DATA_URL = "data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%22100%%22 height=%22100%%22 %3E%3Cdefs%3E%3Cpattern id=%22checker%22 patternUnits=%22userSpaceOnUse%22 x=%220%22 y=%220%22 width=%22128%22 height=%22128%22 viewBox=%220 0 128 128%22 %3E%3Crect x=%220%22 y=%220%22 width=%2264%22 height=%2264%22 fill=%22#ddddff%22 /%3E%3Crect x=%2264%22 y=%2264%22 width=%2264%22 height=%2264%22 fill=%22#ddddff%22 /%3E%3C/pattern%3E%3C/defs%3E%3Crect x=%220%22 y=%220%22 width=%22100%%22 height=%22100%%22 fill=%22url(#checker)%22 /%3E%3C/svg%3E"; @@ -98,10 +100,12 @@ BOOL LLPanelMediaSettingsGeneral::postBuild() mHomeURL = getChild< LLLineEditor >( LLMediaEntry::HOME_URL_KEY ); mWidthPixels = getChild< LLSpinCtrl >( LLMediaEntry::WIDTH_PIXELS_KEY ); mPreviewMedia = getChild("preview_media"); + mFailWhiteListText = getChild( "home_fails_whitelist_label" ); // watch commit action for HOME URL childSetCommitCallback( LLMediaEntry::HOME_URL_KEY, onCommitHomeURL, this); childSetCommitCallback( "current_url_reset_btn",onBtnResetCurrentUrl, this); + // interrogates controls and updates widgets as required updateMediaPreview(); @@ -121,6 +125,11 @@ void LLPanelMediaSettingsGeneral::draw() // housekeeping LLPanel::draw(); + // TODO: we need to call this repeatedly until the floater panels are fully + // created but once we have a valid answer, we should stop looking here - the + // commit callback will handle it + checkHomeUrlPassesWhitelist(); + // enable/disable pixel values image entry based on auto scale checkbox if ( mAutoScale->getValue().asBoolean() == false ) { @@ -250,10 +259,6 @@ void LLPanelMediaSettingsGeneral::initValues( void* userdata, const LLSD& media_ LLPanelMediaSettingsGeneral *self =(LLPanelMediaSettingsGeneral *)userdata; self->mMediaEditable = editable; - //llinfos << "---------------" << llendl; - //llinfos << ll_pretty_print_sd(media_settings) << llendl; - //llinfos << "---------------" << llendl; - if ( LLPanelMediaSettingsGeneral::isMultiple() ) { self->clearValues(self, self->mMediaEditable); @@ -316,7 +321,7 @@ void LLPanelMediaSettingsGeneral::initValues( void* userdata, const LLSD& media_ data_set[ i ].ctrl_ptr->setTentative( media_settings[ tentative_key ].asBoolean() ); }; }; - + // interrogates controls and updates widgets as required self->updateMediaPreview(); } @@ -354,21 +359,36 @@ void LLPanelMediaSettingsGeneral::onClose(bool app_quitting) } } +//////////////////////////////////////////////////////////////////////////////// +// +void LLPanelMediaSettingsGeneral::checkHomeUrlPassesWhitelist() +{ + // parent floater has not constructed the security panel yet + if ( mParent->getPanelSecurity() == 0 ) + return; + + std::string home_url = getHomeUrl(); + if ( home_url.empty() || mParent->getPanelSecurity()->urlPassesWhiteList( home_url ) ) + { + // Home URL is empty or passes the white list so hide the warning message + mFailWhiteListText->setVisible( false ); + } + else + { + // Home URL does not pass the white list so show the warning message + mFailWhiteListText->setVisible( true ); + }; +} + //////////////////////////////////////////////////////////////////////////////// // static void LLPanelMediaSettingsGeneral::onCommitHomeURL( LLUICtrl* ctrl, void *userdata ) { LLPanelMediaSettingsGeneral* self =(LLPanelMediaSettingsGeneral *)userdata; - // check url user is trying to enter for home URL will pass whitelist - // and decline to accept it if it doesn't. - std::string home_url = self->mHomeURL->getValue().asString(); - if ( ! self->mParent->passesWhiteList( home_url ) ) - { - LLNotificationsUtil::add("WhiteListInvalidatesHomeUrl"); - return; - }; - + // check home url passes whitelist and display warning if not + self->checkHomeUrlPassesWhitelist(); + self->updateMediaPreview(); } @@ -461,7 +481,7 @@ bool LLPanelMediaSettingsGeneral::navigateHomeSelectedFace(bool only_if_current_ selected_objects->getSelectedTEValue( &functor_navigate_media, all_face_media_navigated ); // Note: we don't update the 'current URL' field until the media data itself changes - + return all_face_media_navigated; } @@ -477,7 +497,6 @@ const std::string LLPanelMediaSettingsGeneral::getHomeUrl() void LLPanelMediaSettingsGeneral::updateCurrentUrl() { // Get the current URL from the selection - const LLMediaEntry default_media_data; std::string value_str = default_media_data.getCurrentURL(); struct functor_getter_current_url : public LLSelectedTEGetFunctor< std::string > diff --git a/indra/newview/llpanelmediasettingsgeneral.h b/indra/newview/llpanelmediasettingsgeneral.h index f8b8f0d224..7782b25d63 100644 --- a/indra/newview/llpanelmediasettingsgeneral.h +++ b/indra/newview/llpanelmediasettingsgeneral.h @@ -42,6 +42,7 @@ class LLLineEditor; class LLSpinCtrl; class LLTextureCtrl; class LLMediaCtrl; +class LLTextBox; class LLFloaterMediaSettings; class LLPanelMediaSettingsGeneral : public LLPanel @@ -87,6 +88,8 @@ private: static bool isMultiple(); + void checkHomeUrlPassesWhitelist(); + LLComboBox* mControls; LLCheckBoxCtrl* mAutoLoop; LLCheckBoxCtrl* mFirstClick; @@ -98,6 +101,7 @@ private: LLLineEditor* mHomeURL; LLLineEditor* mCurrentURL; LLMediaCtrl* mPreviewMedia; + LLTextBox* mFailWhiteListText; }; #endif // LL_LLPANELMEDIAMEDIASETTINGSGENERAL_H diff --git a/indra/newview/llpanelmediasettingssecurity.cpp b/indra/newview/llpanelmediasettingssecurity.cpp index 94e137b0f4..ce49b67899 100644 --- a/indra/newview/llpanelmediasettingssecurity.cpp +++ b/indra/newview/llpanelmediasettingssecurity.cpp @@ -46,8 +46,10 @@ #include "llsdutil.h" #include "llselectmgr.h" #include "llmediaentry.h" +#include "lltextbox.h" #include "llfloaterwhitelistentry.h" #include "llfloatermediasettings.h" + //////////////////////////////////////////////////////////////////////////////// // LLPanelMediaSettingsSecurity::LLPanelMediaSettingsSecurity() : @@ -55,9 +57,9 @@ LLPanelMediaSettingsSecurity::LLPanelMediaSettingsSecurity() : { mCommitCallbackRegistrar.add("Media.whitelistAdd", boost::bind(&LLPanelMediaSettingsSecurity::onBtnAdd, this)); mCommitCallbackRegistrar.add("Media.whitelistDelete", boost::bind(&LLPanelMediaSettingsSecurity::onBtnDel, this)); + // build dialog from XML LLUICtrlFactory::getInstance()->buildPanel(this, "panel_media_settings_security.xml"); - } //////////////////////////////////////////////////////////////////////////////// @@ -66,6 +68,7 @@ BOOL LLPanelMediaSettingsSecurity::postBuild() { mEnableWhiteList = getChild< LLCheckBoxCtrl >( LLMediaEntry::WHITELIST_ENABLE_KEY ); mWhiteListList = getChild< LLScrollListCtrl >( LLMediaEntry::WHITELIST_KEY ); + mHomeUrlFailsWhiteListText = getChild( "home_url_fails_whitelist" ); setDefaultBtn("whitelist_add"); @@ -84,30 +87,6 @@ void LLPanelMediaSettingsSecurity::draw() { // housekeeping LLPanel::draw(); - - // if list is empty, disable DEL button and checkbox to enable use of list - if ( mWhiteListList->isEmpty() ) - { - childSetEnabled( "whitelist_del", false ); - childSetEnabled( LLMediaEntry::WHITELIST_KEY, false ); - childSetEnabled( LLMediaEntry::WHITELIST_ENABLE_KEY, false ); - } - else - { - childSetEnabled( "whitelist_del", true ); - childSetEnabled( LLMediaEntry::WHITELIST_KEY, true ); - childSetEnabled( LLMediaEntry::WHITELIST_ENABLE_KEY, true ); - }; - - // if nothing is selected, disable DEL button - if ( mWhiteListList->getSelectedValue().asString().empty() ) - { - childSetEnabled( "whitelist_del", false ); - } - else - { - childSetEnabled( "whitelist_del", true ); - }; } //////////////////////////////////////////////////////////////////////////////// @@ -179,9 +158,8 @@ void LLPanelMediaSettingsSecurity::initValues( void* userdata, const LLSD& media LLSD::array_iterator iter = url_list.beginArray(); while( iter != url_list.endArray() ) { - // TODO: is iter guaranteed to be valid here? - std::string url = *iter; - list->addSimpleElement( url ); + std::string entry = *iter; + self->addWhiteListEntry( entry ); ++iter; }; }; @@ -216,15 +194,18 @@ void LLPanelMediaSettingsSecurity::getValues( LLSD &fill_me_in ) fill_me_in[LLMediaEntry::WHITELIST_ENABLE_KEY] = mEnableWhiteList->getValue(); // iterate over white list and extract items - std::vector< LLScrollListItem* > white_list_items = mWhiteListList->getAllData(); - std::vector< LLScrollListItem* >::iterator iter = white_list_items.begin(); + std::vector< LLScrollListItem* > whitelist_items = mWhiteListList->getAllData(); + std::vector< LLScrollListItem* >::iterator iter = whitelist_items.begin(); + // *NOTE: need actually set the key to be an emptyArray(), or the merge // we do with this LLSD will think there's nothing to change. fill_me_in[LLMediaEntry::WHITELIST_KEY] = LLSD::emptyArray(); - while( iter != white_list_items.end() ) + while( iter != whitelist_items.end() ) { - std::string white_list_url = (*iter)->getValue().asString(); - fill_me_in[ LLMediaEntry::WHITELIST_KEY ].append( white_list_url ); + LLScrollListCell* cell = (*iter)->getColumn( ENTRY_COLUMN ); + std::string whitelist_url = cell->getValue().asString(); + + fill_me_in[ LLMediaEntry::WHITELIST_KEY ].append( whitelist_url ); ++iter; }; } @@ -260,11 +241,8 @@ const std::string LLPanelMediaSettingsSecurity::makeValidUrl( const std::string& /////////////////////////////////////////////////////////////////////////////// // wrapper for testing a URL against the whitelist. We grab entries from -// white list list box widget and build a list to test against. Can also -// optionally pass the URL that you are trying to add to the widget since -// it won't be added until this call returns. -bool LLPanelMediaSettingsSecurity::passesWhiteList( const std::string& added_url, - const std::string& test_url ) +// white list list box widget and build a list to test against. +bool LLPanelMediaSettingsSecurity::urlPassesWhiteList( const std::string& test_url ) { // the checkUrlAgainstWhitelist(..) function works on a vector // of strings for the white list entries - in this panel, the white list @@ -273,20 +251,18 @@ bool LLPanelMediaSettingsSecurity::passesWhiteList( const std::string& added_url whitelist_strings.clear(); // may not be required - I forget what the spec says. // step through whitelist widget entries and grab them as strings - std::vector< LLScrollListItem* > white_list_items = mWhiteListList->getAllData(); - std::vector< LLScrollListItem* >::iterator iter = white_list_items.begin(); - while( iter != white_list_items.end() ) + std::vector< LLScrollListItem* > whitelist_items = mWhiteListList->getAllData(); + std::vector< LLScrollListItem* >::iterator iter = whitelist_items.begin(); + while( iter != whitelist_items.end() ) { - const std::string whitelist_url = (*iter)->getValue().asString(); + LLScrollListCell* cell = (*iter)->getColumn( ENTRY_COLUMN ); + std::string whitelist_url = cell->getValue().asString(); + whitelist_strings.push_back( whitelist_url ); ++iter; }; - // add in the URL that might be added to the whitelist so we can test that too - if ( added_url.length() ) - whitelist_strings.push_back( added_url ); - // possible the URL is just a fragment so we validize it const std::string valid_url = makeValidUrl( test_url ); @@ -296,32 +272,68 @@ bool LLPanelMediaSettingsSecurity::passesWhiteList( const std::string& added_url /////////////////////////////////////////////////////////////////////////////// // -void LLPanelMediaSettingsSecurity::addWhiteListItem(const std::string& url) +void LLPanelMediaSettingsSecurity::updateWhitelistEnableStatus() { - // grab home URL from the general panel (via the parent floater) + // get the value for home URL and make it a valid URL + const std::string valid_url = makeValidUrl( mParent->getHomeUrl() ); + + // now check to see if the home url passes the whitelist in its entirity + if ( urlPassesWhiteList( valid_url ) ) + { + mEnableWhiteList->setEnabled( true ); + mHomeUrlFailsWhiteListText->setVisible( false ); + } + else + { + mEnableWhiteList->set( false ); + mEnableWhiteList->setEnabled( false ); + mHomeUrlFailsWhiteListText->setVisible( true ); + }; +} + +/////////////////////////////////////////////////////////////////////////////// +// Add an entry to the whitelist scrollbox and indicate if the current +// home URL passes this entry or not using an icon +void LLPanelMediaSettingsSecurity::addWhiteListEntry( const std::string& entry ) +{ + // grab the home url std::string home_url( "" ); if ( mParent ) home_url = mParent->getHomeUrl(); - // if the home URL is blank (user hasn't entered it yet) then - // don't bother to check if it passes the white list - if ( home_url.empty() ) - { - mWhiteListList->addSimpleElement( url ); - return; - }; + // try to make a valid URL based on what the user entered - missing scheme for example + const std::string valid_url = makeValidUrl( home_url ); + + // check the home url against this single whitelist entry + std::vector< std::string > whitelist_entries; + whitelist_entries.push_back( entry ); + bool home_url_passes_entry = LLMediaEntry::checkUrlAgainstWhitelist( valid_url, whitelist_entries ); - // if the URL passes the white list, add it - if ( passesWhiteList( url, home_url ) ) + // build an icon cell based on whether or not the home url pases it or not + LLSD row; + if ( home_url_passes_entry || home_url.empty() ) { - mWhiteListList->addSimpleElement( url ); + row[ "columns" ][ ICON_COLUMN ][ "type" ] = "icon"; + row[ "columns" ][ ICON_COLUMN ][ "value" ] = ""; + row[ "columns" ][ ICON_COLUMN ][ "width" ] = 20; } else - // display a message indicating you can't do that { - LLNotificationsUtil::add("WhiteListInvalidatesHomeUrl"); + row[ "columns" ][ ICON_COLUMN ][ "type" ] = "icon"; + row[ "columns" ][ ICON_COLUMN ][ "value" ] = "parcel_color_EXP"; + row[ "columns" ][ ICON_COLUMN ][ "width" ] = 20; }; -} + + // always add in the entry itself + row[ "columns" ][ ENTRY_COLUMN ][ "type" ] = "text"; + row[ "columns" ][ ENTRY_COLUMN ][ "value" ] = entry; + + // add to the white list scroll box + mWhiteListList->addElement( row ); + + // update whitelist enable checkbox based on whether the home url passes the whitelist + updateWhitelistEnableStatus(); +}; /////////////////////////////////////////////////////////////////////////////// // static @@ -337,6 +349,9 @@ void LLPanelMediaSettingsSecurity::onBtnDel( void* userdata ) LLPanelMediaSettingsSecurity *self =(LLPanelMediaSettingsSecurity *)userdata; self->mWhiteListList->deleteSelectedItems(); + + // contents of whitelist changed so recheck it against home url + self->updateWhitelistEnableStatus(); } //////////////////////////////////////////////////////////////////////////////// @@ -345,4 +360,3 @@ void LLPanelMediaSettingsSecurity::setParent( LLFloaterMediaSettings* parent ) { mParent = parent; }; - diff --git a/indra/newview/llpanelmediasettingssecurity.h b/indra/newview/llpanelmediasettingssecurity.h index 638664e59d..937bfb1bf9 100644 --- a/indra/newview/llpanelmediasettingssecurity.h +++ b/indra/newview/llpanelmediasettingssecurity.h @@ -37,6 +37,7 @@ class LLCheckBoxCtrl; class LLScrollListCtrl; +class LLTextBox; class LLFloaterMediaSettings; class LLPanelMediaSettingsSecurity : public LLPanel @@ -58,18 +59,27 @@ public: static void initValues( void* userdata, const LLSD& media_settings,bool editable ); static void clearValues( void* userdata, bool editable); - void addWhiteListItem(const std::string& url); + void addWhiteListEntry( const std::string& url ); void setParent( LLFloaterMediaSettings* parent ); + bool urlPassesWhiteList( const std::string& test_url ); const std::string makeValidUrl( const std::string& src_url ); - bool passesWhiteList( const std::string& added_url, const std::string& test_url ); protected: LLFloaterMediaSettings* mParent; private: + enum ColumnIndex + { + ICON_COLUMN = 0, + ENTRY_COLUMN = 1, + }; + LLCheckBoxCtrl* mEnableWhiteList; LLScrollListCtrl* mWhiteListList; - + LLTextBox* mHomeUrlFailsWhiteListText; + + void updateWhitelistEnableStatus(); + static void onBtnAdd(void*); static void onBtnDel(void*); }; diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml index 49276172d5..aa1a963b39 100644 --- a/indra/newview/skins/default/xui/en/notifications.xml +++ b/indra/newview/skins/default/xui/en/notifications.xml @@ -586,20 +586,7 @@ To place the media on only one face, choose Select Texture and click on the desi notext="Cancel" yestext="OK"/> - - -Adding this entry to the whitelist will invalidate the home URL you -specified for this instance of media. You are not allowed to do this -so the entry cannot be added to the whitelist. - - - - + - - Home URL: + + (This URL does not pass the specified whitelist) + + + + Entries that the home URL fails against are marked: + + +Warning: the home URL specified in the General tab +fails to pass this whitelist. It has been disabled +until a valid entry has been added. + + -- cgit v1.2.3 From 6dd3f54924b57224298f6d76c766b403d165783f Mon Sep 17 00:00:00 2001 From: callum Date: Mon, 30 Nov 2009 17:55:19 -0800 Subject: Simple fix for Hg merge tool shittiness.. --- indra/newview/llfloatermediasettings.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/indra/newview/llfloatermediasettings.cpp b/indra/newview/llfloatermediasettings.cpp index 1446b828c9..16a76723eb 100644 --- a/indra/newview/llfloatermediasettings.cpp +++ b/indra/newview/llfloatermediasettings.cpp @@ -268,8 +268,6 @@ const std::string LLFloaterMediaSettings::getHomeUrl() return std::string( "" ); } -} - //////////////////////////////////////////////////////////////////////////////// // virtual void LLFloaterMediaSettings::draw() @@ -300,4 +298,6 @@ void LLFloaterMediaSettings::draw() enableOkApplyBtns(values_changed); - LLFloater::draw(); \ No newline at end of file + LLFloater::draw(); +} + -- cgit v1.2.3