From 9a3c8513187b90140c80204a0a2b659ae024069f Mon Sep 17 00:00:00 2001 From: Vadim ProductEngine Date: Fri, 11 Nov 2011 17:17:44 +0200 Subject: EXP-1564 FIXED The Advanced Options button now changes its icon when the Advanced Options panel is expanded. By the way, fixed the button position. --- indra/newview/llfloatersnapshot.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/newview/llfloatersnapshot.cpp') diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp index 48e6cca623..bca913c4bb 100644 --- a/indra/newview/llfloatersnapshot.cpp +++ b/indra/newview/llfloatersnapshot.cpp @@ -1251,7 +1251,7 @@ void LLFloaterSnapshot::Impl::updateLayout(LLFloaterSnapshot* floaterp) // Show/hide advanced options. LLPanel* advanced_options_panel = floaterp->getChild("advanced_options_panel"); - floaterp->getChild("advanced_options_btn")->setToggleState(advanced); + floaterp->getChild("advanced_options_btn")->setImageOverlay(advanced ? "TabIcon_Open_Off" : "TabIcon_Close_Off"); if (advanced != advanced_options_panel->getVisible()) { S32 panel_width = advanced_options_panel->getRect().getWidth(); -- cgit v1.2.3 From 82f7ccdb0ae72de0dbef8350da122bd74b7d12a5 Mon Sep 17 00:00:00 2001 From: Vadim ProductEngine Date: Mon, 14 Nov 2011 17:38:08 +0200 Subject: EXP-1573 FIXED Display "Refresh to save" hint when snapshot needs to be refreshed. By the way, removed redundant onCommitResolution() callback. --- indra/newview/llfloatersnapshot.cpp | 72 ++++++++++++++++++++++++++++++------- 1 file changed, 59 insertions(+), 13 deletions(-) (limited to 'indra/newview/llfloatersnapshot.cpp') diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp index bca913c4bb..8e346d3e7a 100644 --- a/indra/newview/llfloatersnapshot.cpp +++ b/indra/newview/llfloatersnapshot.cpp @@ -1064,6 +1064,7 @@ public: : mAvatarPauseHandles(), mLastToolset(NULL), mAspectRatioCheckOff(false), + mNeedRefresh(false), mStatus(STATUS_READY) { } @@ -1083,7 +1084,6 @@ public: static void onClickKeepAspectCheck(LLUICtrl *ctrl, void* data); #endif static void applyKeepAspectCheck(LLFloaterSnapshot* view, BOOL checked); - static void onCommitResolution(LLUICtrl* ctrl, void* data) { updateResolution(ctrl, data); } static void updateResolution(LLUICtrl* ctrl, void* data, BOOL do_update = TRUE); static void onCommitFreezeFrame(LLUICtrl* ctrl, void* data); static void onCommitLayerTypes(LLUICtrl* ctrl, void*data); @@ -1113,6 +1113,7 @@ public: static void updateLayout(LLFloaterSnapshot* floater); static void setStatus(EStatus status, bool ok = true, const std::string& msg = LLStringUtil::null); EStatus getStatus() const { return mStatus; } + static void setNeedRefresh(LLFloaterSnapshot* floater, bool need); private: static LLViewerWindow::ESnapshotType getLayerType(LLFloaterSnapshot* floater); @@ -1129,6 +1130,7 @@ public: LLToolset* mLastToolset; LLHandle mPreviewHandle; bool mAspectRatioCheckOff ; + bool mNeedRefresh; EStatus mStatus; }; @@ -1347,6 +1349,7 @@ void LLFloaterSnapshot::Impl::updateLayout(LLFloaterSnapshot* floaterp) // No other methods should be changing any of the controls directly except for helpers called by this method. // The basic pattern for programmatically changing the GUI settings is to first set the // appropriate saved settings and then call this method to sync the GUI with them. +// FIXME: The above comment seems obsolete now. // static void LLFloaterSnapshot::Impl::updateControls(LLFloaterSnapshot* floater) { @@ -1514,6 +1517,15 @@ void LLFloaterSnapshot::Impl::setStatus(EStatus status, bool ok, const std::stri floater->impl.mStatus = status; } +// static +void LLFloaterSnapshot::Impl::setNeedRefresh(LLFloaterSnapshot* floater, bool need) +{ + if (!floater) return; + + floater->mRefreshLabel->setVisible(need); + floater->impl.mNeedRefresh = need; +} + // static void LLFloaterSnapshot::Impl::checkAutoSnapshot(LLSnapshotLivePreview* previewp, BOOL update_thumbnail) { @@ -1869,6 +1881,7 @@ void LLFloaterSnapshot::Impl::updateResolution(LLUICtrl* ctrl, void* data, BOOL if(do_update) { updateControls(view); + setNeedRefresh(view, true); } } } @@ -1911,6 +1924,7 @@ void LLFloaterSnapshot::Impl::onImageFormatChange(LLFloaterSnapshot* view) gSavedSettings.setS32("SnapshotFormat", getImageFormat(view)); getPreviewView(view)->updateSnapshot(TRUE); updateControls(view); + setNeedRefresh(view, false); // we're refreshing } } @@ -2060,6 +2074,8 @@ void LLFloaterSnapshot::Impl::onCommitCustomResolution(LLUICtrl *ctrl, void* dat // static void LLFloaterSnapshot::Impl::applyCustomResolution(LLFloaterSnapshot* view, S32 w, S32 h) { + bool need_refresh = false; + lldebugs << "applyCustomResolution(" << w << ", " << h << ")" << llendl; if (view) { @@ -2110,6 +2126,7 @@ void LLFloaterSnapshot::Impl::applyCustomResolution(LLFloaterSnapshot* view, S32 comboSetCustom(view, "postcard_size_combo"); comboSetCustom(view, "texture_size_combo"); comboSetCustom(view, "local_size_combo"); + need_refresh = true; } } @@ -2117,6 +2134,10 @@ void LLFloaterSnapshot::Impl::applyCustomResolution(LLFloaterSnapshot* view, S32 gSavedSettings.setS32(lastSnapshotHeightName(getActiveSnapshotType(view)), h); updateControls(view); + if (need_refresh) + { + setNeedRefresh(view, true); // need to do this after updateControls() + } } } @@ -2140,6 +2161,8 @@ void LLFloaterSnapshot::Impl::onSendingPostcardFinished(bool status) // Default constructor LLFloaterSnapshot::LLFloaterSnapshot(const LLSD& key) : LLFloater(key), + mRefreshBtn(NULL), + mRefreshLabel(NULL), impl (*(new Impl)) { } @@ -2173,7 +2196,9 @@ BOOL LLFloaterSnapshot::postBuild() childSetCommitCallback("snapshot_type_radio", Impl::onCommitSnapshotType, this); #endif + mRefreshBtn = getChild("new_snapshot_btn"); childSetAction("new_snapshot_btn", Impl::onClickNewSnapshot, this); + mRefreshLabel = getChild("refresh_lbl"); childSetAction("advanced_options_btn", Impl::onClickMore, this); @@ -2208,11 +2233,6 @@ BOOL LLFloaterSnapshot::postBuild() getChild("auto_snapshot_check")->setValue(gSavedSettings.getBOOL("AutoSnapshot")); childSetCommitCallback("auto_snapshot_check", Impl::onClickAutoSnap, this); - childSetCommitCallback("profile_size_combo", Impl::onCommitResolution, this); - childSetCommitCallback("postcard_size_combo", Impl::onCommitResolution, this); - childSetCommitCallback("texture_size_combo", Impl::onCommitResolution, this); - childSetCommitCallback("local_size_combo", Impl::onCommitResolution, this); - LLWebProfile::setImageUploadResultCallback(boost::bind(&LLFloaterSnapshot::Impl::onSnapshotUploadFinished, _1)); LLPostCard::setPostResultCallback(boost::bind(&LLFloaterSnapshot::Impl::onSendingPostcardFinished, _1)); @@ -2272,15 +2292,28 @@ void LLFloaterSnapshot::draw() previewp->drawPreviewRect(offset_x, offset_y) ; - // Draw progress indicators on top of the preview. - if (working) + // Draw some controls on top of the preview thumbnail. + static const S32 PADDING = 5; + static const S32 REFRESH_LBL_BG_HEIGHT = 32; + + // 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); + + if (impl.mNeedRefresh) { - gGL.pushUIMatrix(); - const LLRect& r = getThumbnailPlaceholderRect(); - LLUI::translate((F32) r.mLeft, (F32) r.mBottom); - sThumbnailPlaceholder->draw(); - gGL.popUIMatrix(); + // Place the refresh hint text to the right of the refresh button. + const LLRect& refresh_btn_rect = mRefreshBtn->getRect(); + 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); + gl_rect_2d(refresh_label_bg_rect, LLColor4::white % 0.9f, TRUE); } + + gGL.pushUIMatrix(); + LLUI::translate((F32) thumbnail_rect.mLeft, (F32) thumbnail_rect.mBottom); + sThumbnailPlaceholder->draw(); + gGL.popUIMatrix(); } } } @@ -2440,6 +2473,9 @@ void LLFloaterSnapshot::preUpdate() { // Disable the send/post/save buttons until snapshot is ready. Impl::updateControls(instance); + + // Force hiding the "Refresh to save" hint because we know we've just started refresh. + Impl::setNeedRefresh(instance, false); } } @@ -2452,6 +2488,16 @@ void LLFloaterSnapshot::postUpdate() { // Enable the send/post/save buttons. Impl::updateControls(instance); + + // We've just done refresh. + Impl::setNeedRefresh(instance, false); + + // The refresh button is initially hidden. We show it after the first update, + // i.e. when preview appears. + if (!instance->mRefreshBtn->getVisible()) + { + instance->mRefreshBtn->setVisible(true); + } } } -- cgit v1.2.3 From 59a7cc2e0fdba593c6bd444d01ff5ac0bd2fc9cd Mon Sep 17 00:00:00 2001 From: Vadim ProductEngine Date: Tue, 15 Nov 2011 20:07:58 +0200 Subject: EXP-1590 FIXED Success / Failure message now appears on top, overlaying the preview image. --- indra/newview/llfloatersnapshot.cpp | 46 ++++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 8 deletions(-) (limited to 'indra/newview/llfloatersnapshot.cpp') 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("succeeded_panel")->setVisible(finished && ok); - floater->getChild("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("new_snapshot_btn"); childSetAction("new_snapshot_btn", Impl::onClickNewSnapshot, this); mRefreshLabel = getChild("refresh_lbl"); + mSucceessLblPanel = getChild("succeeded_panel"); + mFailureLblPanel = getChild("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 -- cgit v1.2.3 From aa909a86cbc613f39cbc6eb395b01b7886171496 Mon Sep 17 00:00:00 2001 From: Richard Linden Date: Tue, 15 Nov 2011 12:51:07 -0800 Subject: EXP-1561 FIX Preview image looks stretched --- indra/newview/llfloatersnapshot.cpp | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) (limited to 'indra/newview/llfloatersnapshot.cpp') diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp index d0d681132b..63fa93b1a1 100644 --- a/indra/newview/llfloatersnapshot.cpp +++ b/indra/newview/llfloatersnapshot.cpp @@ -380,7 +380,6 @@ void LLSnapshotLivePreview::updateSnapshot(BOOL new_snapshot, BOOL new_thumbnail { mThumbnailUpToDate = FALSE ; } - setThumbnailImageSize(); } void LLSnapshotLivePreview::setSnapshotQuality(S32 quality) @@ -723,25 +722,19 @@ void LLSnapshotLivePreview::generateThumbnailImage(BOOL force_update) resetThumbnailImage() ; } - LLPointer raw = NULL ; - S32 w , h ; - w = get_lower_power_two(mThumbnailWidth, 512) * 2 ; - h = get_lower_power_two(mThumbnailHeight, 512) * 2 ; - + LLPointer raw = new LLImageRaw; + if(!gViewerWindow->thumbnailSnapshot(raw, + mThumbnailWidth, mThumbnailHeight, + gSavedSettings.getBOOL("RenderUIInSnapshot"), + FALSE, + mSnapshotBufferType) ) { - raw = new LLImageRaw ; - if(!gViewerWindow->thumbnailSnapshot(raw, - w, h, - gSavedSettings.getBOOL("RenderUIInSnapshot"), - FALSE, - mSnapshotBufferType) ) - { - raw = NULL ; - } + raw = NULL ; } if(raw) { + raw->expandToPowerOfTwo(); mThumbnailImage = LLViewerTextureManager::getLocalTexture(raw.get(), FALSE); mThumbnailUpToDate = TRUE ; } @@ -791,6 +784,7 @@ BOOL LLSnapshotLivePreview::onIdle( void* snapshot_preview ) } // time to produce a snapshot + previewp->setThumbnailImageSize(); lldebugs << "producing snapshot" << llendl; if (!previewp->mPreviewImage) -- cgit v1.2.3 From e7ef0512a27adce621b8523f6cb81a8daa73e12d Mon Sep 17 00:00:00 2001 From: Vadim ProductEngine Date: Wed, 16 Nov 2011 18:57:41 +0200 Subject: EXP-1562 WIP Disable custom resolution controls by default (when "Current Window" is pre-select). --- indra/newview/llfloatersnapshot.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'indra/newview/llfloatersnapshot.cpp') diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp index 63fa93b1a1..181570138e 100644 --- a/indra/newview/llfloatersnapshot.cpp +++ b/indra/newview/llfloatersnapshot.cpp @@ -1726,7 +1726,7 @@ void LLFloaterSnapshot::Impl::setWorking(LLFloaterSnapshot* floater, bool workin LLPanelSnapshot* active_panel = getActivePanel(floater); if (active_panel) { - active_panel->setCtrlsEnabled(!working); + active_panel->enableControls(!working); } } -- cgit v1.2.3 From 0a25d9b1ba4f01ae391319d35e4f573dc6624365 Mon Sep 17 00:00:00 2001 From: Vadim ProductEngine Date: Wed, 16 Nov 2011 19:46:31 +0200 Subject: EXP-1562 WIP Turned the Save button into flyout (Save / Save as). By the way, fixed: * inability to save a snapshot to disk after pressing "Cancel" in the file picker. * displaying "Saved to computer!" after pressing "Cancel" in the file picker. --- indra/newview/llfloatersnapshot.cpp | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) (limited to 'indra/newview/llfloatersnapshot.cpp') diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp index 181570138e..5b26e93898 100644 --- a/indra/newview/llfloatersnapshot.cpp +++ b/indra/newview/llfloatersnapshot.cpp @@ -997,13 +997,7 @@ void LLSnapshotLivePreview::saveTexture() BOOL LLSnapshotLivePreview::saveLocal() { - BOOL success = gViewerWindow->saveImageNumbered(mFormattedImage, true); - - // Relinquish image memory. Save button will be disabled as a side-effect. - lldebugs << "resetting formatted image after saving to disk" << llendl; - mFormattedImage = NULL; - mDataSize = 0; - updateSnapshot(FALSE, FALSE); + BOOL success = gViewerWindow->saveImageNumbered(mFormattedImage); if(success) { @@ -2465,7 +2459,7 @@ void LLFloaterSnapshot::saveTexture() } // static -void LLFloaterSnapshot::saveLocal() +BOOL LLFloaterSnapshot::saveLocal() { lldebugs << "saveLocal" << llendl; // FIXME: duplicated code @@ -2473,16 +2467,16 @@ void LLFloaterSnapshot::saveLocal() if (!instance) { llassert(instance != NULL); - return; + return FALSE; } LLSnapshotLivePreview* previewp = Impl::getPreviewView(instance); if (!previewp) { llassert(previewp != NULL); - return; + return FALSE; } - previewp->saveLocal(); + return previewp->saveLocal(); } // static -- cgit v1.2.3 From f1719459d5ed2164fe56aa86c1a33ff5cd87ccb1 Mon Sep 17 00:00:00 2001 From: Vadim ProductEngine Date: Wed, 16 Nov 2011 21:39:55 +0200 Subject: EXP-1597 FIXED Reshape save status messages correctly. --- indra/newview/llfloatersnapshot.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'indra/newview/llfloatersnapshot.cpp') diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp index 5b26e93898..ad571451f3 100644 --- a/indra/newview/llfloatersnapshot.cpp +++ b/indra/newview/llfloatersnapshot.cpp @@ -2306,8 +2306,11 @@ void LLFloaterSnapshot::draw() // 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()); + const S32 result_lbl_h = result_lbl_rect.getHeight(); + result_lbl_rect.setLeftTopAndSize(local_offset_x, local_offset_y + thumbnail_h, thumbnail_w - 1, result_lbl_h); + mSucceessLblPanel->reshape(result_lbl_rect.getWidth(), result_lbl_h); mSucceessLblPanel->setRect(result_lbl_rect); + mFailureLblPanel->reshape(result_lbl_rect.getWidth(), result_lbl_h); mFailureLblPanel->setRect(result_lbl_rect); } -- cgit v1.2.3