diff options
| author | Vadim ProductEngine <vsavchuk@productengine.com> | 2011-11-15 20:07:58 +0200 | 
|---|---|---|
| committer | Vadim ProductEngine <vsavchuk@productengine.com> | 2011-11-15 20:07:58 +0200 | 
| commit | 59a7cc2e0fdba593c6bd444d01ff5ac0bd2fc9cd (patch) | |
| tree | b3cff02ec1e1d9b82db1883fbea72ca6e59ae8ea | |
| parent | 82f7ccdb0ae72de0dbef8350da122bd74b7d12a5 (diff) | |
EXP-1590 FIXED Success / Failure message now appears on top, overlaying the preview image.
| -rw-r--r-- | indra/newview/llfloatersnapshot.cpp | 46 | ||||
| -rw-r--r-- | indra/newview/llfloatersnapshot.h | 1 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/floater_snapshot.xml | 64 | ||||
| -rw-r--r-- | indra/newview/skins/default/xui/en/panel_snapshot_options.xml | 64 | 
4 files changed, 103 insertions, 72 deletions
| diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp index 8e346d3e7a..d0d681132b 100644 --- a/indra/newview/llfloatersnapshot.cpp +++ b/indra/newview/llfloatersnapshot.cpp @@ -1543,6 +1543,7 @@ void LLFloaterSnapshot::Impl::onClickNewSnapshot(void* data)  	LLFloaterSnapshot *view = (LLFloaterSnapshot *)data;  	if (previewp && view)  	{ +		view->impl.setStatus(Impl::STATUS_READY);  		previewp->updateSnapshot(TRUE);  	}  } @@ -1568,6 +1569,7 @@ void LLFloaterSnapshot::Impl::onClickMore(void* data)  	LLFloaterSnapshot *view = (LLFloaterSnapshot *)data;  	if (view)  	{ +		view->impl.setStatus(Impl::STATUS_READY);  		gSavedSettings.setBOOL("AdvanceSnapshot", !visible);  #if 0  		view->translate( 0, view->getUIWinHeightShort() - view->getUIWinHeightLong() ); @@ -1709,6 +1711,7 @@ void LLFloaterSnapshot::Impl::checkAspectRatio(LLFloaterSnapshot *view, S32 inde  	return ;  } +// Show/hide upload progress indicators.  // static  void LLFloaterSnapshot::Impl::setWorking(LLFloaterSnapshot* floater, bool working)  { @@ -1724,7 +1727,7 @@ void LLFloaterSnapshot::Impl::setWorking(LLFloaterSnapshot* floater, bool workin  		working_lbl->setValue(progress_text);  	} -	// All controls should be disable while posting. +	// All controls should be disabled while posting.  	floater->setCtrlsEnabled(!working);  	LLPanelSnapshot* active_panel = getActivePanel(floater);  	if (active_panel) @@ -1733,11 +1736,12 @@ void LLFloaterSnapshot::Impl::setWorking(LLFloaterSnapshot* floater, bool workin  	}  } +// Show/hide upload status message.  // static  void LLFloaterSnapshot::Impl::setFinished(LLFloaterSnapshot* floater, bool finished, bool ok, const std::string& msg)  { -	floater->getChild<LLUICtrl>("succeeded_panel")->setVisible(finished && ok); -	floater->getChild<LLUICtrl>("failed_panel")->setVisible(finished && !ok); +	floater->mSucceessLblPanel->setVisible(finished && ok); +	floater->mFailureLblPanel->setVisible(finished && !ok);  	if (finished)  	{ @@ -2163,6 +2167,8 @@ LLFloaterSnapshot::LLFloaterSnapshot(const LLSD& key)  	: LLFloater(key),  	  mRefreshBtn(NULL),  	  mRefreshLabel(NULL), +	  mSucceessLblPanel(NULL), +	  mFailureLblPanel(NULL),  	  impl (*(new Impl))  {  } @@ -2199,6 +2205,8 @@ BOOL LLFloaterSnapshot::postBuild()  	mRefreshBtn = getChild<LLUICtrl>("new_snapshot_btn");  	childSetAction("new_snapshot_btn", Impl::onClickNewSnapshot, this);  	mRefreshLabel = getChild<LLUICtrl>("refresh_lbl"); +	mSucceessLblPanel = getChild<LLUICtrl>("succeeded_panel"); +	mFailureLblPanel = getChild<LLUICtrl>("failed_panel");  	childSetAction("advanced_options_btn", Impl::onClickMore, this); @@ -2279,15 +2287,23 @@ void LLFloaterSnapshot::draw()  		{  			bool working = impl.getStatus() == Impl::STATUS_WORKING;  			const LLRect& thumbnail_rect = getThumbnailPlaceholderRect(); -			S32 offset_x = thumbnail_rect.mLeft + (thumbnail_rect.getWidth() - previewp->getThumbnailWidth()) / 2 ; -			S32 offset_y = thumbnail_rect.mBottom + (thumbnail_rect.getHeight() - previewp->getThumbnailHeight()) / 2 ; +			const S32 thumbnail_w = previewp->getThumbnailWidth(); +			const S32 thumbnail_h = previewp->getThumbnailHeight(); + +			// calc preview offset within the preview rect +			const S32 local_offset_x = (thumbnail_rect.getWidth() - thumbnail_w) / 2 ; +			const S32 local_offset_y = (thumbnail_rect.getHeight() - thumbnail_h) / 2 ; // preview y pos within the preview rect + +			// calc preview offset within the floater rect +			S32 offset_x = thumbnail_rect.mLeft + local_offset_x; +			S32 offset_y = thumbnail_rect.mBottom + local_offset_y;  			glMatrixMode(GL_MODELVIEW);  			// Apply floater transparency to the texture unless the floater is focused.  			F32 alpha = getTransparencyType() == TT_ACTIVE ? 1.0f : getCurrentTransparency();  			LLColor4 color = working ? LLColor4::grey4 : LLColor4::white;  			gl_draw_scaled_image(offset_x, offset_y,  -					previewp->getThumbnailWidth(), previewp->getThumbnailHeight(),  +					thumbnail_w, thumbnail_h,  					previewp->getThumbnailImage(), color % alpha);  			previewp->drawPreviewRect(offset_x, offset_y) ; @@ -2296,8 +2312,19 @@ void LLFloaterSnapshot::draw()  			static const S32 PADDING = 5;  			static const S32 REFRESH_LBL_BG_HEIGHT = 32; +			// Reshape and position the posting result message panels at the top of the thumbnail. +			// Do this regardless of current posting status (finished or not) to avoid flicker +			// when the result message is displayed for the first time. +			// if (impl.getStatus() == Impl::STATUS_FINISHED) +			{ +				LLRect result_lbl_rect = mSucceessLblPanel->getRect(); +				result_lbl_rect.setLeftTopAndSize(local_offset_x, local_offset_y + thumbnail_h, thumbnail_w - 1, result_lbl_rect.getHeight()); +				mSucceessLblPanel->setRect(result_lbl_rect); +				mFailureLblPanel->setRect(result_lbl_rect); +			} +  			// Position the refresh button in the bottom left corner of the thumbnail. -			mRefreshBtn->setOrigin(offset_x + PADDING - thumbnail_rect.mLeft, offset_y + PADDING - thumbnail_rect.mBottom); +			mRefreshBtn->setOrigin(local_offset_x + PADDING, local_offset_y + PADDING);  			if (impl.mNeedRefresh)  			{ @@ -2306,7 +2333,7 @@ void LLFloaterSnapshot::draw()  				mRefreshLabel->setOrigin(refresh_btn_rect.mLeft + refresh_btn_rect.getWidth() + PADDING, refresh_btn_rect.mBottom);  				// Draw the refresh hint background. -				LLRect refresh_label_bg_rect(offset_x, offset_y + REFRESH_LBL_BG_HEIGHT, offset_x + previewp->getThumbnailWidth() - 1, offset_y); +				LLRect refresh_label_bg_rect(offset_x, offset_y + REFRESH_LBL_BG_HEIGHT, offset_x + thumbnail_w - 1, offset_y);  				gl_rect_2d(refresh_label_bg_rect, LLColor4::white % 0.9f, TRUE);  			} @@ -2520,6 +2547,9 @@ void LLFloaterSnapshot::postPanelSwitch()  {  	LLFloaterSnapshot* instance = getInstance();  	instance->impl.updateControls(instance); + +	// Remove the success/failure indicator whenever user presses a snapshot option button. +	instance->impl.setStatus(Impl::STATUS_READY);  }  // static diff --git a/indra/newview/llfloatersnapshot.h b/indra/newview/llfloatersnapshot.h index 7e5a08b1c6..48015ad4d7 100644 --- a/indra/newview/llfloatersnapshot.h +++ b/indra/newview/llfloatersnapshot.h @@ -72,6 +72,7 @@ public:  private:  	static LLUICtrl* sThumbnailPlaceholder;  	LLUICtrl *mRefreshBtn, *mRefreshLabel; +	LLUICtrl *mSucceessLblPanel, *mFailureLblPanel;  	class Impl;  	Impl& impl; diff --git a/indra/newview/skins/default/xui/en/floater_snapshot.xml b/indra/newview/skins/default/xui/en/floater_snapshot.xml index 96c5c704af..7fd19d0f22 100644 --- a/indra/newview/skins/default/xui/en/floater_snapshot.xml +++ b/indra/newview/skins/default/xui/en/floater_snapshot.xml @@ -83,6 +83,70 @@      top="50"      follows="left|top"      left="10"> +      <panel +       background_visible="true" +       bg_alpha_color="0.9 1 0.9 1" +       follows="left|top" +       font="SansSerifLarge" +       halign="center" +       height="20" +       layout="topleft" +       left="0" +       length="1" +       name="succeeded_panel" +       right="-1" +       top="0" +       type="string" +       visible="false"> +          <text +           follows="all" +           font="SansSerif" +           halign="center" +           height="18" +           layout="topleft" +           left="1" +           length="1" +           name="succeeded_lbl" +           right="-1" +           text_color="0.2 0.5 0.2 1" +           top="4" +           translate="false" +           type="string"> +              Succeeded +          </text> +      </panel> +      <panel +       background_visible="true" +       bg_alpha_color="1 0.9 0.9 1" +       follows="left|top" +       font="SansSerifLarge" +       halign="center" +       height="20" +       layout="topleft" +       left_delta="0" +       length="1" +       name="failed_panel" +       right="-1" +       top="0" +       type="string" +       visible="false"> +          <text +           follows="all" +           font="SansSerif" +           halign="center" +           height="18" +           layout="topleft" +           left="1" +           length="1" +           name="failed_lbl" +           right="-1" +           text_color="0.5 0.2 0.2 1" +           top="4" +           translate="false" +           type="string"> +              Failed +          </text> +      </panel>        <loading_indicator         follows="left|top"         height="48" diff --git a/indra/newview/skins/default/xui/en/panel_snapshot_options.xml b/indra/newview/skins/default/xui/en/panel_snapshot_options.xml index 792f6dbec8..d2f29ade44 100644 --- a/indra/newview/skins/default/xui/en/panel_snapshot_options.xml +++ b/indra/newview/skins/default/xui/en/panel_snapshot_options.xml @@ -81,68 +81,4 @@      <button.commit_callback       function="Snapshot.SaveToComputer" />    </button> -  <panel -   background_visible="true" -   bg_alpha_color="0.9 1 0.9 1" -   bottom="-10" -   follows="left|bottom|right" -   font="SansSerifLarge" -   halign="center" -   height="20" -   layout="topleft" -   left_delta="0" -   length="1" -   name="succeeded_panel" -   right="-10" -   type="string" -   visible="false"> -      <text -       follows="all" -       font="SansSerif" -       halign="center" -       height="18" -       layout="topleft" -       left="1" -       length="1" -       name="succeeded_lbl" -       right="-1" -       text_color="0.2 0.5 0.2 1" -       top="4" -       translate="false" -       type="string"> -          Succeeded -      </text> -  </panel> -  <panel -   background_visible="true" -   bg_alpha_color="1 0.9 0.9 1" -   bottom="-10" -   follows="left|bottom|right" -   font="SansSerifLarge" -   halign="center" -   height="20" -   layout="topleft" -   left_delta="0" -   length="1" -   name="failed_panel" -   right="-10" -   type="string" -   visible="false"> -      <text -       follows="all" -       font="SansSerif" -       halign="center" -       height="18" -       layout="topleft" -       left="1" -       length="1" -       name="failed_lbl" -       right="-1" -       text_color="0.5 0.2 0.2 1" -       top="4" -       translate="false" -       type="string"> -          Failed -      </text> -  </panel>  </panel> | 
