STORM-1580 WIP Implemented new "Working" and "Success/Failure" screens.
parent
33b17af15c
commit
ce05b9f7e5
|
|
@ -392,8 +392,6 @@ set(viewer_SOURCE_FILES
|
|||
llpanelplaceprofile.cpp
|
||||
llpanelplaces.cpp
|
||||
llpanelplacestab.cpp
|
||||
llpanelpostprogress.cpp
|
||||
llpanelpostresult.cpp
|
||||
llpanelprimmediacontrols.cpp
|
||||
llpanelprofile.cpp
|
||||
llpanelprofileview.cpp
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@
|
|||
///----------------------------------------------------------------------------
|
||||
/// Local function declarations, constants, enums, and typedefs
|
||||
///----------------------------------------------------------------------------
|
||||
LLRect LLFloaterSnapshot::sThumbnailPlaceholderRect;
|
||||
LLUICtrl* LLFloaterSnapshot::sThumbnailPlaceholder = NULL;
|
||||
LLSnapshotFloaterView* gSnapshotFloaterView = NULL;
|
||||
|
||||
const F32 AUTO_SNAPSHOT_TIME_DELAY = 1.f;
|
||||
|
|
@ -1063,10 +1063,18 @@ void LLSnapshotLivePreview::regionNameCallback(LLImageJPEG* snapshot, LLSD& meta
|
|||
class LLFloaterSnapshot::Impl
|
||||
{
|
||||
public:
|
||||
typedef enum e_status
|
||||
{
|
||||
STATUS_READY,
|
||||
STATUS_WORKING,
|
||||
STATUS_FINISHED
|
||||
} EStatus;
|
||||
|
||||
Impl()
|
||||
: mAvatarPauseHandles(),
|
||||
mLastToolset(NULL),
|
||||
mAspectRatioCheckOff(false)
|
||||
mAspectRatioCheckOff(false),
|
||||
mStatus(STATUS_READY)
|
||||
{
|
||||
}
|
||||
~Impl()
|
||||
|
|
@ -1114,6 +1122,8 @@ public:
|
|||
static void updateControls(LLFloaterSnapshot* floater);
|
||||
static void updateLayout(LLFloaterSnapshot* floater);
|
||||
static void updateResolutionTextEntry(LLFloaterSnapshot* floater);
|
||||
static void setStatus(EStatus status, bool ok = true, const std::string& msg = LLStringUtil::null);
|
||||
EStatus getStatus() const { return mStatus; }
|
||||
|
||||
private:
|
||||
static LLSnapshotLivePreview::ESnapshotType getTypeIndex(const std::string& id);
|
||||
|
|
@ -1122,6 +1132,9 @@ private:
|
|||
static void comboSetCustom(LLFloaterSnapshot *floater, const std::string& comboname);
|
||||
static void checkAutoSnapshot(LLSnapshotLivePreview* floater, BOOL update_thumbnail = FALSE);
|
||||
static void checkAspectRatio(LLFloaterSnapshot *view, S32 index) ;
|
||||
static void setWorking(LLFloaterSnapshot* floater, bool working);
|
||||
static void setFinished(LLFloaterSnapshot* floater, bool finished, bool ok = true, const std::string& msg = LLStringUtil::null);
|
||||
|
||||
|
||||
public:
|
||||
std::vector<LLAnimPauseRequest> mAvatarPauseHandles;
|
||||
|
|
@ -1129,6 +1142,7 @@ public:
|
|||
LLToolset* mLastToolset;
|
||||
LLHandle<LLView> mPreviewHandle;
|
||||
bool mAspectRatioCheckOff ;
|
||||
EStatus mStatus;
|
||||
};
|
||||
|
||||
// static
|
||||
|
|
@ -1575,6 +1589,29 @@ void LLFloaterSnapshot::Impl::updateResolutionTextEntry(LLFloaterSnapshot* float
|
|||
}
|
||||
}
|
||||
|
||||
// static
|
||||
void LLFloaterSnapshot::Impl::setStatus(EStatus status, bool ok, const std::string& msg)
|
||||
{
|
||||
LLFloaterSnapshot* floater = LLFloaterSnapshot::getInstance();
|
||||
switch (status)
|
||||
{
|
||||
case STATUS_READY:
|
||||
setWorking(floater, false);
|
||||
setFinished(floater, false);
|
||||
break;
|
||||
case STATUS_WORKING:
|
||||
setWorking(floater, true);
|
||||
setFinished(floater, false);
|
||||
break;
|
||||
case STATUS_FINISHED:
|
||||
setWorking(floater, false);
|
||||
setFinished(floater, true, ok, msg);
|
||||
break;
|
||||
}
|
||||
|
||||
floater->impl.mStatus = status;
|
||||
}
|
||||
|
||||
// static
|
||||
void LLFloaterSnapshot::Impl::checkAutoSnapshot(LLSnapshotLivePreview* previewp, BOOL update_thumbnail)
|
||||
{
|
||||
|
|
@ -1770,6 +1807,44 @@ void LLFloaterSnapshot::Impl::checkAspectRatio(LLFloaterSnapshot *view, S32 inde
|
|||
return ;
|
||||
}
|
||||
|
||||
// static
|
||||
void LLFloaterSnapshot::Impl::setWorking(LLFloaterSnapshot* floater, bool working)
|
||||
{
|
||||
LLUICtrl* working_lbl = floater->getChild<LLUICtrl>("working_lbl");
|
||||
working_lbl->setVisible(working);
|
||||
floater->getChild<LLUICtrl>("working_indicator")->setVisible(working);
|
||||
|
||||
if (working)
|
||||
{
|
||||
const std::string panel_name = getActivePanel(floater, false)->getName();
|
||||
const std::string prefix = panel_name.substr(std::string("panel_snapshot_").size());
|
||||
std::string progress_text = floater->getString(prefix + "_" + "progress_str");
|
||||
working_lbl->setValue(progress_text);
|
||||
}
|
||||
|
||||
// All controls should be disable while posting.
|
||||
floater->setCtrlsEnabled(!working);
|
||||
LLPanelSnapshot* active_panel = getActivePanel(floater);
|
||||
if (active_panel)
|
||||
{
|
||||
active_panel->setCtrlsEnabled(!working);
|
||||
}
|
||||
}
|
||||
|
||||
// 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);
|
||||
|
||||
if (finished)
|
||||
{
|
||||
LLUICtrl* finished_lbl = floater->getChild<LLUICtrl>(ok ? "succeeded_lbl" : "failed_lbl");
|
||||
std::string result_text = floater->getString(msg + "_" + (ok ? "succeeded_str" : "failed_str"));
|
||||
finished_lbl->setValue(result_text);
|
||||
}
|
||||
}
|
||||
|
||||
static std::string lastSnapshotWidthName(S32 shot_type)
|
||||
{
|
||||
switch (shot_type)
|
||||
|
|
@ -2167,14 +2242,16 @@ void LLFloaterSnapshot::Impl::applyCustomResolution(LLFloaterSnapshot* view, S32
|
|||
// static
|
||||
void LLFloaterSnapshot::Impl::onSnapshotUploadFinished(LLSideTrayPanelContainer* panel_container, bool status)
|
||||
{
|
||||
panel_container->openPanel("panel_post_result", LLSD().with("post-result", status).with("post-type", "profile"));
|
||||
panel_container->openPreviousPanel();
|
||||
setStatus(STATUS_FINISHED, status, "profile");
|
||||
}
|
||||
|
||||
|
||||
// static
|
||||
void LLFloaterSnapshot::Impl::onSendingPostcardFinished(LLSideTrayPanelContainer* panel_container, bool status)
|
||||
{
|
||||
panel_container->openPanel("panel_post_result", LLSD().with("post-result", status).with("post-type", "postcard"));
|
||||
panel_container->openPreviousPanel();
|
||||
setStatus(STATUS_FINISHED, status, "postcard");
|
||||
}
|
||||
|
||||
///----------------------------------------------------------------------------
|
||||
|
|
@ -2265,8 +2342,7 @@ BOOL LLFloaterSnapshot::postBuild()
|
|||
LLWebProfile::setImageUploadResultCallback(boost::bind(&LLFloaterSnapshot::Impl::onSnapshotUploadFinished, panel_container, _1));
|
||||
LLPostCard::setPostResultCallback(boost::bind(&LLFloaterSnapshot::Impl::onSendingPostcardFinished, panel_container, _1));
|
||||
|
||||
// remember preview rect
|
||||
sThumbnailPlaceholderRect = getChild<LLUICtrl>("thumbnail_placeholder")->getRect();
|
||||
sThumbnailPlaceholder = getChild<LLUICtrl>("thumbnail_placeholder");
|
||||
|
||||
// create preview window
|
||||
LLRect full_screen_rect = getRootView()->getRect();
|
||||
|
|
@ -2307,18 +2383,32 @@ void LLFloaterSnapshot::draw()
|
|||
{
|
||||
if(previewp->getThumbnailImage())
|
||||
{
|
||||
LLRect& thumbnail_rect = sThumbnailPlaceholderRect;
|
||||
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 ;
|
||||
|
||||
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(),
|
||||
previewp->getThumbnailImage(), LLColor4::white % alpha);
|
||||
previewp->getThumbnailImage(), color % alpha);
|
||||
|
||||
previewp->drawPreviewRect(offset_x, offset_y) ;
|
||||
|
||||
if (working)
|
||||
{
|
||||
gGL.pushUIMatrix();
|
||||
{
|
||||
const LLRect& r = getThumbnailPlaceholderRect();
|
||||
//gGL.translateUI((F32) r.mLeft, (F32) r.mBottom, 0.f);
|
||||
LLUI::translate((F32) r.mLeft, (F32) r.mBottom);
|
||||
sThumbnailPlaceholder->draw();
|
||||
}
|
||||
gGL.popUIMatrix();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -2377,6 +2467,24 @@ S32 LLFloaterSnapshot::notify(const LLSD& info)
|
|||
return 1;
|
||||
}
|
||||
|
||||
if (info.has("set-ready"))
|
||||
{
|
||||
impl.setStatus(Impl::STATUS_READY);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (info.has("set-working"))
|
||||
{
|
||||
impl.setStatus(Impl::STATUS_WORKING);
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (info.has("set-finished"))
|
||||
{
|
||||
LLSD data = info["set-finished"];
|
||||
impl.setStatus(Impl::STATUS_FINISHED, data["ok"].asBoolean(), data["msg"].asString());
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -2425,7 +2533,6 @@ void LLFloaterSnapshot::saveTexture()
|
|||
}
|
||||
|
||||
previewp->saveTexture();
|
||||
instance->postSave();
|
||||
}
|
||||
|
||||
// static
|
||||
|
|
@ -2447,7 +2554,6 @@ void LLFloaterSnapshot::saveLocal()
|
|||
}
|
||||
|
||||
previewp->saveLocal();
|
||||
instance->postSave();
|
||||
}
|
||||
|
||||
// static
|
||||
|
|
@ -2483,6 +2589,7 @@ void LLFloaterSnapshot::postSave()
|
|||
}
|
||||
|
||||
instance->impl.updateControls(instance);
|
||||
instance->impl.setStatus(Impl::STATUS_WORKING);
|
||||
}
|
||||
|
||||
// static
|
||||
|
|
|
|||
|
|
@ -67,10 +67,10 @@ public:
|
|||
static const LLVector3d& getPosTakenGlobal();
|
||||
static void setAgentEmail(const std::string& email);
|
||||
|
||||
static const LLRect& getThumbnailPlaceholderRect() { return sThumbnailPlaceholderRect; }
|
||||
static const LLRect& getThumbnailPlaceholderRect() { return sThumbnailPlaceholder->getRect(); }
|
||||
|
||||
private:
|
||||
static LLRect sThumbnailPlaceholderRect;
|
||||
static LLUICtrl* sThumbnailPlaceholder;
|
||||
|
||||
class Impl;
|
||||
Impl& impl;
|
||||
|
|
|
|||
|
|
@ -1,59 +0,0 @@
|
|||
/**
|
||||
* @file llpanelpostprogress.cpp
|
||||
* @brief Displays progress of publishing a snapshot.
|
||||
*
|
||||
* $LicenseInfo:firstyear=2011&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2011, Linden Research, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the termsllpanelpostprogress of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#include "llfloaterreg.h"
|
||||
#include "llpanel.h"
|
||||
#include "llsidetraypanelcontainer.h"
|
||||
|
||||
/**
|
||||
* Displays progress of publishing a snapshot.
|
||||
*/
|
||||
class LLPanelPostProgress
|
||||
: public LLPanel
|
||||
{
|
||||
LOG_CLASS(LLPanelPostProgress);
|
||||
|
||||
public:
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
};
|
||||
|
||||
static LLRegisterPanelClassWrapper<LLPanelPostProgress> panel_class("llpanelpostprogress");
|
||||
|
||||
// virtual
|
||||
void LLPanelPostProgress::onOpen(const LLSD& key)
|
||||
{
|
||||
if (key.has("post-type"))
|
||||
{
|
||||
std::string progress_text = getString(key["post-type"].asString() + "_" + "progress_str");
|
||||
getChild<LLTextBox>("progress_lbl")->setText(progress_text);
|
||||
}
|
||||
else
|
||||
{
|
||||
llwarns << "Invalid key" << llendl;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,90 +0,0 @@
|
|||
/**
|
||||
* @file llpanelpostresult.cpp
|
||||
* @brief Result of publishing a snapshot (success/failure).
|
||||
*
|
||||
* $LicenseInfo:firstyear=2011&license=viewerlgpl$
|
||||
* Second Life Viewer Source Code
|
||||
* Copyright (C) 2011, Linden Research, Inc.
|
||||
*
|
||||
* This library is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation;
|
||||
* version 2.1 of the License only.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with this library; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*
|
||||
* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
|
||||
* $/LicenseInfo$
|
||||
*/
|
||||
|
||||
#include "llviewerprecompiledheaders.h"
|
||||
|
||||
#include "llfloaterreg.h"
|
||||
#include "llpanel.h"
|
||||
#include "llsidetraypanelcontainer.h"
|
||||
|
||||
/**
|
||||
* Displays snapshot publishing result.
|
||||
*/
|
||||
class LLPanelPostResult
|
||||
: public LLPanel
|
||||
{
|
||||
LOG_CLASS(LLPanelPostResult);
|
||||
|
||||
public:
|
||||
LLPanelPostResult();
|
||||
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
private:
|
||||
void onBack();
|
||||
void onClose();
|
||||
};
|
||||
|
||||
static LLRegisterPanelClassWrapper<LLPanelPostResult> panel_class("llpanelpostresult");
|
||||
|
||||
LLPanelPostResult::LLPanelPostResult()
|
||||
{
|
||||
mCommitCallbackRegistrar.add("Snapshot.Result.Back", boost::bind(&LLPanelPostResult::onBack, this));
|
||||
mCommitCallbackRegistrar.add("Snapshot.Result.Close", boost::bind(&LLPanelPostResult::onClose, this));
|
||||
}
|
||||
|
||||
|
||||
// virtual
|
||||
void LLPanelPostResult::onOpen(const LLSD& key)
|
||||
{
|
||||
if (key.isMap() && key.has("post-result") && key.has("post-type"))
|
||||
{
|
||||
bool ok = key["post-result"].asBoolean();
|
||||
std::string type = key["post-type"].asString();
|
||||
std::string result_text = getString(type + "_" + (ok ? "succeeded_str" : "failed_str"));
|
||||
getChild<LLTextBox>("result_lbl")->setText(result_text);
|
||||
}
|
||||
else
|
||||
{
|
||||
llwarns << "Invalid key" << llendl;
|
||||
}
|
||||
}
|
||||
|
||||
void LLPanelPostResult::onBack()
|
||||
{
|
||||
LLSideTrayPanelContainer* parent = dynamic_cast<LLSideTrayPanelContainer*>(getParent());
|
||||
if (!parent)
|
||||
{
|
||||
llwarns << "Cannot find panel container" << llendl;
|
||||
return;
|
||||
}
|
||||
|
||||
parent->openPreviousPanel();
|
||||
}
|
||||
|
||||
void LLPanelPostResult::onClose()
|
||||
{
|
||||
LLFloaterReg::hideInstance("snapshot");
|
||||
}
|
||||
|
|
@ -35,6 +35,19 @@
|
|||
// newview
|
||||
#include "llsidetraypanelcontainer.h"
|
||||
|
||||
// virtual
|
||||
BOOL LLPanelSnapshot::postBuild()
|
||||
{
|
||||
updateControls(LLSD());
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
// virtual
|
||||
void LLPanelSnapshot::onOpen(const LLSD& key)
|
||||
{
|
||||
setCtrlsEnabled(true);
|
||||
}
|
||||
|
||||
LLFloaterSnapshot::ESnapshotFormat LLPanelSnapshot::getImageFormat() const
|
||||
{
|
||||
return LLFloaterSnapshot::SNAPSHOT_FORMAT_JPEG;
|
||||
|
|
@ -107,3 +120,18 @@ void LLPanelSnapshot::updateImageQualityLevel()
|
|||
|
||||
getChild<LLTextBox>("image_quality_level")->setTextArg("[QLVL]", quality_lvl);
|
||||
}
|
||||
|
||||
void LLPanelSnapshot::goBack()
|
||||
{
|
||||
LLSideTrayPanelContainer* parent = getParentContainer();
|
||||
if (parent)
|
||||
{
|
||||
parent->openPreviousPanel();
|
||||
}
|
||||
}
|
||||
|
||||
void LLPanelSnapshot::cancel()
|
||||
{
|
||||
goBack();
|
||||
LLFloaterSnapshot::getInstance()->notify(LLSD().with("set-ready", true));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,6 +37,9 @@ class LLSideTrayPanelContainer;
|
|||
class LLPanelSnapshot: public LLPanel
|
||||
{
|
||||
public:
|
||||
/*virtual*/ BOOL postBuild();
|
||||
/*virtual*/ void onOpen(const LLSD& key);
|
||||
|
||||
virtual std::string getWidthSpinnerName() const = 0;
|
||||
virtual std::string getHeightSpinnerName() const = 0;
|
||||
virtual std::string getAspectRatioCBName() const = 0;
|
||||
|
|
@ -48,11 +51,13 @@ public:
|
|||
virtual LLSpinCtrl* getHeightSpinner();
|
||||
virtual void enableAspectRatioCheckbox(BOOL enable);
|
||||
virtual LLFloaterSnapshot::ESnapshotFormat getImageFormat() const;
|
||||
virtual void updateControls(const LLSD& info) {} ///< Update controls from saved settings
|
||||
virtual void updateControls(const LLSD& info) = 0; ///< Update controls from saved settings
|
||||
|
||||
protected:
|
||||
LLSideTrayPanelContainer* getParentContainer();
|
||||
void updateImageQualityLevel();
|
||||
void goBack(); ///< Switch to the default (Snapshot Options) panel
|
||||
void cancel();
|
||||
};
|
||||
|
||||
#endif // LL_LLPANELSNAPSHOT_H
|
||||
|
|
|
|||
|
|
@ -60,7 +60,6 @@ private:
|
|||
void onCustomResolutionCommit(LLUICtrl* ctrl);
|
||||
void onKeepAspectRatioCommit(LLUICtrl* ctrl);
|
||||
void onSend();
|
||||
void onCancel();
|
||||
};
|
||||
|
||||
static LLRegisterPanelClassWrapper<LLPanelSnapshotInventory> panel_class("llpanelsnapshotinventory");
|
||||
|
|
@ -68,7 +67,7 @@ static LLRegisterPanelClassWrapper<LLPanelSnapshotInventory> panel_class("llpane
|
|||
LLPanelSnapshotInventory::LLPanelSnapshotInventory()
|
||||
{
|
||||
mCommitCallbackRegistrar.add("Inventory.Save", boost::bind(&LLPanelSnapshotInventory::onSend, this));
|
||||
mCommitCallbackRegistrar.add("Inventory.Cancel", boost::bind(&LLPanelSnapshotInventory::onCancel, this));
|
||||
mCommitCallbackRegistrar.add("Inventory.Cancel", boost::bind(&LLPanelSnapshotInventory::cancel, this));
|
||||
}
|
||||
|
||||
// virtual
|
||||
|
|
@ -78,7 +77,7 @@ BOOL LLPanelSnapshotInventory::postBuild()
|
|||
getChild<LLUICtrl>(getWidthSpinnerName())->setCommitCallback(boost::bind(&LLPanelSnapshotInventory::onCustomResolutionCommit, this, _1));
|
||||
getChild<LLUICtrl>(getHeightSpinnerName())->setCommitCallback(boost::bind(&LLPanelSnapshotInventory::onCustomResolutionCommit, this, _1));
|
||||
getChild<LLUICtrl>(getAspectRatioCBName())->setCommitCallback(boost::bind(&LLPanelSnapshotInventory::onKeepAspectRatioCommit, this, _1));
|
||||
return TRUE;
|
||||
return LLPanelSnapshot::postBuild();
|
||||
}
|
||||
|
||||
// virtual
|
||||
|
|
@ -88,6 +87,7 @@ void LLPanelSnapshotInventory::onOpen(const LLSD& key)
|
|||
getChild<LLComboBox>(getImageSizeComboName())->selectNthItem(0); // FIXME? has no effect
|
||||
#endif
|
||||
updateCustomResControls();
|
||||
LLPanelSnapshot::onOpen(key);
|
||||
}
|
||||
|
||||
void LLPanelSnapshotInventory::updateCustomResControls()
|
||||
|
|
@ -132,21 +132,6 @@ void LLPanelSnapshotInventory::onKeepAspectRatioCommit(LLUICtrl* ctrl)
|
|||
|
||||
void LLPanelSnapshotInventory::onSend()
|
||||
{
|
||||
// Switch to upload progress display.
|
||||
LLSideTrayPanelContainer* parent = getParentContainer();
|
||||
if (parent)
|
||||
{
|
||||
parent->openPanel("panel_post_progress", LLSD().with("post-type", "inventory"));
|
||||
}
|
||||
|
||||
LLFloaterSnapshot::saveTexture();
|
||||
}
|
||||
|
||||
void LLPanelSnapshotInventory::onCancel()
|
||||
{
|
||||
LLSideTrayPanelContainer* parent = getParentContainer();
|
||||
if (parent)
|
||||
{
|
||||
parent->openPreviousPanel();
|
||||
}
|
||||
LLFloaterSnapshot::postSave();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -64,7 +64,6 @@ private:
|
|||
void onKeepAspectRatioCommit(LLUICtrl* ctrl);
|
||||
void onQualitySliderCommit(LLUICtrl* ctrl);
|
||||
void onSend();
|
||||
void onCancel();
|
||||
};
|
||||
|
||||
static LLRegisterPanelClassWrapper<LLPanelSnapshotLocal> panel_class("llpanelsnapshotlocal");
|
||||
|
|
@ -72,7 +71,7 @@ static LLRegisterPanelClassWrapper<LLPanelSnapshotLocal> panel_class("llpanelsna
|
|||
LLPanelSnapshotLocal::LLPanelSnapshotLocal()
|
||||
{
|
||||
mCommitCallbackRegistrar.add("Local.Save", boost::bind(&LLPanelSnapshotLocal::onSend, this));
|
||||
mCommitCallbackRegistrar.add("Local.Cancel", boost::bind(&LLPanelSnapshotLocal::onCancel, this));
|
||||
mCommitCallbackRegistrar.add("Local.Cancel", boost::bind(&LLPanelSnapshotLocal::cancel, this));
|
||||
}
|
||||
|
||||
// virtual
|
||||
|
|
@ -85,15 +84,14 @@ BOOL LLPanelSnapshotLocal::postBuild()
|
|||
getChild<LLUICtrl>("image_quality_slider")->setCommitCallback(boost::bind(&LLPanelSnapshotLocal::onQualitySliderCommit, this, _1));
|
||||
getChild<LLUICtrl>("local_format_combo")->setCommitCallback(boost::bind(&LLPanelSnapshotLocal::onFormatComboCommit, this, _1));
|
||||
|
||||
updateControls(LLSD());
|
||||
|
||||
return TRUE;
|
||||
return LLPanelSnapshot::postBuild();
|
||||
}
|
||||
|
||||
// virtual
|
||||
void LLPanelSnapshotLocal::onOpen(const LLSD& key)
|
||||
{
|
||||
updateCustomResControls();
|
||||
LLPanelSnapshot::onOpen(key);
|
||||
}
|
||||
|
||||
// virtual
|
||||
|
|
@ -195,15 +193,11 @@ void LLPanelSnapshotLocal::onQualitySliderCommit(LLUICtrl* ctrl)
|
|||
|
||||
void LLPanelSnapshotLocal::onSend()
|
||||
{
|
||||
LLFloaterSnapshot::saveLocal();
|
||||
onCancel();
|
||||
}
|
||||
LLFloaterSnapshot* floater = LLFloaterSnapshot::getInstance();
|
||||
|
||||
void LLPanelSnapshotLocal::onCancel()
|
||||
{
|
||||
LLSideTrayPanelContainer* parent = getParentContainer();
|
||||
if (parent)
|
||||
{
|
||||
parent->openPreviousPanel();
|
||||
}
|
||||
floater->notify(LLSD().with("set-working", true));
|
||||
LLFloaterSnapshot::saveLocal();
|
||||
LLFloaterSnapshot::postSave();
|
||||
goBack();
|
||||
floater->notify(LLSD().with("set-finished", LLSD().with("ok", true).with("msg", "local")));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -76,7 +76,6 @@ private:
|
|||
void onQualitySliderCommit(LLUICtrl* ctrl);
|
||||
void onTabButtonPress(S32 btn_idx);
|
||||
void onSend();
|
||||
void onCancel();
|
||||
|
||||
bool mHasFirstMsgFocus;
|
||||
};
|
||||
|
|
@ -87,7 +86,7 @@ LLPanelSnapshotPostcard::LLPanelSnapshotPostcard()
|
|||
: mHasFirstMsgFocus(false)
|
||||
{
|
||||
mCommitCallbackRegistrar.add("Postcard.Send", boost::bind(&LLPanelSnapshotPostcard::onSend, this));
|
||||
mCommitCallbackRegistrar.add("Postcard.Cancel", boost::bind(&LLPanelSnapshotPostcard::onCancel, this));
|
||||
mCommitCallbackRegistrar.add("Postcard.Cancel", boost::bind(&LLPanelSnapshotPostcard::cancel, this));
|
||||
mCommitCallbackRegistrar.add("Postcard.Message", boost::bind(&LLPanelSnapshotPostcard::onTabButtonPress, this, 0));
|
||||
mCommitCallbackRegistrar.add("Postcard.Settings", boost::bind(&LLPanelSnapshotPostcard::onTabButtonPress, this, 1));
|
||||
|
||||
|
|
@ -118,9 +117,7 @@ BOOL LLPanelSnapshotPostcard::postBuild()
|
|||
|
||||
getChild<LLButton>("message_btn")->setToggleState(TRUE);
|
||||
|
||||
updateControls(LLSD());
|
||||
|
||||
return TRUE;
|
||||
return LLPanelSnapshot::postBuild();
|
||||
}
|
||||
|
||||
// virtual
|
||||
|
|
@ -128,6 +125,7 @@ void LLPanelSnapshotPostcard::onOpen(const LLSD& key)
|
|||
{
|
||||
gSavedSettings.setS32("SnapshotFormat", getImageFormat());
|
||||
updateCustomResControls();
|
||||
LLPanelSnapshot::onOpen(key);
|
||||
}
|
||||
|
||||
// virtual
|
||||
|
|
@ -212,17 +210,11 @@ void LLPanelSnapshotPostcard::sendPostcard()
|
|||
postcard["subject"] = subject;
|
||||
postcard["msg"] = getChild<LLUICtrl>("msg_form")->getValue().asString();
|
||||
LLPostCard::send(LLFloaterSnapshot::getImageData(), postcard);
|
||||
LLFloaterSnapshot::postSave();
|
||||
|
||||
// Give user feedback of the event.
|
||||
gViewerWindow->playSnapshotAnimAndSound();
|
||||
|
||||
// Switch to upload progress display.
|
||||
LLSideTrayPanelContainer* parent = getParentContainer();
|
||||
if (parent)
|
||||
{
|
||||
parent->openPanel("panel_post_progress", LLSD().with("post-type", "postcard"));
|
||||
}
|
||||
LLFloaterSnapshot::postSave();
|
||||
}
|
||||
|
||||
void LLPanelSnapshotPostcard::onMsgFormFocusRecieved()
|
||||
|
|
@ -325,12 +317,3 @@ void LLPanelSnapshotPostcard::onSend()
|
|||
// Send postcard.
|
||||
sendPostcard();
|
||||
}
|
||||
|
||||
void LLPanelSnapshotPostcard::onCancel()
|
||||
{
|
||||
LLSideTrayPanelContainer* parent = getParentContainer();
|
||||
if (parent)
|
||||
{
|
||||
parent->openPreviousPanel();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -62,7 +62,6 @@ private:
|
|||
void updateCustomResControls(); ///< Enable/disable custom resolution controls (spinners and checkbox)
|
||||
|
||||
void onSend();
|
||||
void onCancel();
|
||||
void onResolutionComboCommit(LLUICtrl* ctrl);
|
||||
void onCustomResolutionCommit(LLUICtrl* ctrl);
|
||||
void onKeepAspectRatioCommit(LLUICtrl* ctrl);
|
||||
|
|
@ -73,7 +72,7 @@ static LLRegisterPanelClassWrapper<LLPanelSnapshotProfile> panel_class("llpanels
|
|||
LLPanelSnapshotProfile::LLPanelSnapshotProfile()
|
||||
{
|
||||
mCommitCallbackRegistrar.add("PostToProfile.Send", boost::bind(&LLPanelSnapshotProfile::onSend, this));
|
||||
mCommitCallbackRegistrar.add("PostToProfile.Cancel", boost::bind(&LLPanelSnapshotProfile::onCancel, this));
|
||||
mCommitCallbackRegistrar.add("PostToProfile.Cancel", boost::bind(&LLPanelSnapshotProfile::cancel, this));
|
||||
}
|
||||
|
||||
// virtual
|
||||
|
|
@ -83,13 +82,15 @@ BOOL LLPanelSnapshotProfile::postBuild()
|
|||
getChild<LLUICtrl>(getWidthSpinnerName())->setCommitCallback(boost::bind(&LLPanelSnapshotProfile::onCustomResolutionCommit, this, _1));
|
||||
getChild<LLUICtrl>(getHeightSpinnerName())->setCommitCallback(boost::bind(&LLPanelSnapshotProfile::onCustomResolutionCommit, this, _1));
|
||||
getChild<LLUICtrl>(getAspectRatioCBName())->setCommitCallback(boost::bind(&LLPanelSnapshotProfile::onKeepAspectRatioCommit, this, _1));
|
||||
return TRUE;
|
||||
|
||||
return LLPanelSnapshot::postBuild();
|
||||
}
|
||||
|
||||
// virtual
|
||||
void LLPanelSnapshotProfile::onOpen(const LLSD& key)
|
||||
{
|
||||
updateCustomResControls();
|
||||
LLPanelSnapshot::onOpen(key);
|
||||
}
|
||||
|
||||
// virtual
|
||||
|
|
@ -119,22 +120,6 @@ void LLPanelSnapshotProfile::onSend()
|
|||
|
||||
LLWebProfile::uploadImage(LLFloaterSnapshot::getImageData(), caption, add_location);
|
||||
LLFloaterSnapshot::postSave();
|
||||
|
||||
// Switch to upload progress display.
|
||||
LLSideTrayPanelContainer* parent = getParentContainer();
|
||||
if (parent)
|
||||
{
|
||||
parent->openPanel("panel_post_progress", LLSD().with("post-type", "profile"));
|
||||
}
|
||||
}
|
||||
|
||||
void LLPanelSnapshotProfile::onCancel()
|
||||
{
|
||||
LLSideTrayPanelContainer* parent = getParentContainer();
|
||||
if (parent)
|
||||
{
|
||||
parent->openPreviousPanel();
|
||||
}
|
||||
}
|
||||
|
||||
void LLPanelSnapshotProfile::onResolutionComboCommit(LLUICtrl* ctrl)
|
||||
|
|
|
|||
|
|
@ -17,6 +17,54 @@
|
|||
name="unknown">
|
||||
unknown
|
||||
</floater.string>
|
||||
<string
|
||||
name="postcard_progress_str">
|
||||
Sending Email
|
||||
</string>
|
||||
<string
|
||||
name="profile_progress_str">
|
||||
Posting
|
||||
</string>
|
||||
<string
|
||||
name="inventory_progress_str">
|
||||
Saving to Inventory
|
||||
</string>
|
||||
<string
|
||||
name="local_progress_str">
|
||||
Saving to Computer
|
||||
</string>
|
||||
<string
|
||||
name="profile_succeeded_str">
|
||||
Your Profile Feed has been updated!
|
||||
</string>
|
||||
<string
|
||||
name="postcard_succeeded_str">
|
||||
Email Sent!
|
||||
</string>
|
||||
<string
|
||||
name="inventory_succeeded_str">
|
||||
Saved to Inventory!
|
||||
</string>
|
||||
<string
|
||||
name="local_succeeded_str">
|
||||
Saved to Computer!
|
||||
</string>
|
||||
<string
|
||||
name="profile_failed_str">
|
||||
Failed to update your Profile Feed.
|
||||
</string>
|
||||
<string
|
||||
name="postcard_failed_str">
|
||||
Failed to send email.
|
||||
</string>
|
||||
<string
|
||||
name="inventory_failed_str">
|
||||
Failed to save to inventory.
|
||||
</string>
|
||||
<string
|
||||
name="local_failed_str">
|
||||
Failed to save to computer.
|
||||
</string>
|
||||
<view_border
|
||||
bevel_style="in"
|
||||
follows="left|top"
|
||||
|
|
@ -65,8 +113,34 @@
|
|||
name="thumbnail_placeholder"
|
||||
top="50"
|
||||
follows="left|top"
|
||||
left="10"
|
||||
/>
|
||||
left="10">
|
||||
<loading_indicator
|
||||
follows="left|top"
|
||||
height="48"
|
||||
layout="topleft"
|
||||
name="working_indicator"
|
||||
left="101"
|
||||
top="46"
|
||||
visible="false"
|
||||
width="48" />
|
||||
<text
|
||||
follows="left|top|right"
|
||||
font="SansSerifBold"
|
||||
height="14"
|
||||
layout="topleft"
|
||||
left="5"
|
||||
length="1"
|
||||
halign="center"
|
||||
name="working_lbl"
|
||||
right="-5"
|
||||
top="98"
|
||||
translate="false"
|
||||
type="string"
|
||||
visible="false"
|
||||
width="130">
|
||||
Working
|
||||
</text>
|
||||
</ui_ctrl>
|
||||
<view_border
|
||||
bevel_style="in"
|
||||
height="21"
|
||||
|
|
@ -146,18 +220,6 @@
|
|||
layout="topleft"
|
||||
name="panel_snapshot_local"
|
||||
filename="panel_snapshot_local.xml" />
|
||||
<panel
|
||||
class="llpanelpostprogress"
|
||||
follows="all"
|
||||
layout="topleft"
|
||||
name="panel_post_progress"
|
||||
filename="panel_post_progress.xml" />
|
||||
<panel
|
||||
class="llpanelpostresult"
|
||||
follows="all"
|
||||
layout="topleft"
|
||||
name="panel_post_result"
|
||||
filename="panel_post_result.xml" />
|
||||
</panel_container>
|
||||
<panel
|
||||
height="295"
|
||||
|
|
|
|||
|
|
@ -1,55 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<panel
|
||||
height="380"
|
||||
layout="topleft"
|
||||
name="panel_post_progress"
|
||||
width="490">
|
||||
<string
|
||||
name="postcard_progress_str">
|
||||
Sending Email
|
||||
</string>
|
||||
<string
|
||||
name="profile_progress_str">
|
||||
Posting
|
||||
</string>
|
||||
<string
|
||||
name="inventory_progress_str">
|
||||
Saving to Inventory
|
||||
</string>
|
||||
<string
|
||||
name="local_progress_str">
|
||||
Saving to Computer
|
||||
</string>
|
||||
<view_border
|
||||
follows="left|top"
|
||||
height="110"
|
||||
layout="topleft"
|
||||
left="40"
|
||||
name="rect"
|
||||
top="120"
|
||||
width="190"
|
||||
/>
|
||||
<loading_indicator
|
||||
follows="left|top"
|
||||
height="40"
|
||||
left_delta="75"
|
||||
layout="topleft"
|
||||
top_delta="20"
|
||||
width="40"
|
||||
/>
|
||||
<text
|
||||
follows="top|left"
|
||||
font="SansSerifLargeBold"
|
||||
halign="center"
|
||||
height="20"
|
||||
layout="topleft"
|
||||
left_delta="-75"
|
||||
length="1"
|
||||
name="progress_lbl"
|
||||
translate="false"
|
||||
type="string"
|
||||
top_pad="10"
|
||||
width="190">
|
||||
Working
|
||||
</text>
|
||||
</panel>
|
||||
|
|
@ -1,78 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
|
||||
<panel
|
||||
height="380"
|
||||
layout="topleft"
|
||||
name="panel_post_result"
|
||||
width="490">
|
||||
<string
|
||||
name="profile_succeeded_str">
|
||||
Your Profile Feed has been updated!
|
||||
</string>
|
||||
<string
|
||||
name="postcard_succeeded_str">
|
||||
Email Sent!
|
||||
</string>
|
||||
<string
|
||||
name="inventory_succeeded_str">
|
||||
Saved to Inventory!
|
||||
</string>
|
||||
<string
|
||||
name="local_succeeded_str">
|
||||
Saved to Computer!
|
||||
</string>
|
||||
<string
|
||||
name="profile_failed_str">
|
||||
Failed to update your Profile Feed.
|
||||
</string>
|
||||
<string
|
||||
name="postcard_failed_str">
|
||||
Failed to send email.
|
||||
</string>
|
||||
<string
|
||||
name="inventory_failed_str">
|
||||
Failed to save to inventory.
|
||||
</string>
|
||||
<string
|
||||
name="local_failed_str">
|
||||
Failed to save to computer.
|
||||
</string>
|
||||
<text
|
||||
follows="top|left|right"
|
||||
font="SansSerif"
|
||||
halign="center"
|
||||
height="30"
|
||||
layout="topleft"
|
||||
left="20"
|
||||
length="1"
|
||||
name="result_lbl"
|
||||
right="-20"
|
||||
type="string"
|
||||
top="100"
|
||||
word_wrap="true">
|
||||
Result
|
||||
</text>
|
||||
<button
|
||||
follows="left|top"
|
||||
height="22"
|
||||
label="Done, Close This Window"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
name="close_btn"
|
||||
top_pad="10"
|
||||
width="160">
|
||||
<commit_callback
|
||||
function="Snapshot.Result.Close" />
|
||||
</button>
|
||||
<button
|
||||
follows="right|top"
|
||||
height="22"
|
||||
label="Main Menu"
|
||||
layout="topleft"
|
||||
name="back_btn"
|
||||
right="-10"
|
||||
top_delta="0"
|
||||
width="80">
|
||||
<commit_callback
|
||||
function="Snapshot.Result.Back" />
|
||||
</button>
|
||||
</panel>
|
||||
|
|
@ -77,4 +77,68 @@
|
|||
<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>
|
||||
|
|
|
|||
Loading…
Reference in New Issue