Updated major sub task EXT-5858 - Assigned picture is stretched in the Classified Info panel.
Fixed reshape issues. Added stretching to edit classified panel. --HG-- branch : product-enginemaster
parent
bb4e48e1d1
commit
5301d4189f
|
|
@ -1166,6 +1166,7 @@ LLPanelClassifiedInfo::LLPanelClassifiedInfo()
|
|||
, mTeleportClicksNew(0)
|
||||
, mMapClicksNew(0)
|
||||
, mProfileClicksNew(0)
|
||||
, mSnapshotCtrl(NULL)
|
||||
{
|
||||
sAllPanels.push_back(this);
|
||||
}
|
||||
|
|
@ -1195,7 +1196,8 @@ BOOL LLPanelClassifiedInfo::postBuild()
|
|||
mScrollingPanelMinHeight = mScrollContainer->getScrolledViewRect().getHeight();
|
||||
mScrollingPanelWidth = mScrollingPanel->getRect().getWidth();
|
||||
|
||||
mSnapshotRect = getChild<LLUICtrl>("classified_snapshot")->getRect();
|
||||
mSnapshotCtrl = getChild<LLTextureCtrl>("classified_snapshot");
|
||||
mSnapshotRect = getDefaultSnapshotRect();
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
|
@ -1229,7 +1231,8 @@ void LLPanelClassifiedInfo::reshape(S32 width, S32 height, BOOL called_from_pare
|
|||
mScrollingPanel->reshape(mScrollingPanelWidth + scrollbar_size, scroll_height);
|
||||
}
|
||||
|
||||
mSnapshotRect = getChild<LLUICtrl>("classified_snapshot")->getRect();
|
||||
mSnapshotRect = getDefaultSnapshotRect();
|
||||
stretchSnapshot();
|
||||
}
|
||||
|
||||
void LLPanelClassifiedInfo::onOpen(const LLSD& key)
|
||||
|
|
@ -1359,12 +1362,7 @@ void LLPanelClassifiedInfo::setClassifiedLocation(const std::string& location)
|
|||
|
||||
void LLPanelClassifiedInfo::setSnapshotId(const LLUUID& id)
|
||||
{
|
||||
childSetValue("classified_snapshot", id);
|
||||
if(!mSnapshotStreched)
|
||||
{
|
||||
LLUICtrl* snapshot = getChild<LLUICtrl>("classified_snapshot");
|
||||
snapshot->setRect(mSnapshotRect);
|
||||
}
|
||||
mSnapshotCtrl->setValue(id);
|
||||
mSnapshotStreched = false;
|
||||
}
|
||||
|
||||
|
|
@ -1374,7 +1372,10 @@ void LLPanelClassifiedInfo::draw()
|
|||
|
||||
// Stretch in draw because it takes some time to load a texture,
|
||||
// going to try to stretch snapshot until texture is loaded
|
||||
stretchSnapshot();
|
||||
if(!mSnapshotStreched)
|
||||
{
|
||||
stretchSnapshot();
|
||||
}
|
||||
}
|
||||
|
||||
LLUUID LLPanelClassifiedInfo::getSnapshotId()
|
||||
|
|
@ -1474,10 +1475,9 @@ void LLPanelClassifiedInfo::stretchSnapshot()
|
|||
// *NOTE dzaporozhan
|
||||
// Could be moved to LLTextureCtrl
|
||||
|
||||
LLTextureCtrl* texture_ctrl = getChild<LLTextureCtrl>("classified_snapshot");
|
||||
LLViewerFetchedTexture* texture = texture_ctrl->getTexture();
|
||||
LLViewerFetchedTexture* texture = mSnapshotCtrl->getTexture();
|
||||
|
||||
if(!texture || mSnapshotStreched)
|
||||
if(!texture)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
@ -1485,11 +1485,16 @@ void LLPanelClassifiedInfo::stretchSnapshot()
|
|||
if(0 == texture->getOriginalWidth() || 0 == texture->getOriginalHeight())
|
||||
{
|
||||
// looks like texture is not loaded yet
|
||||
llinfos << "Missing image size" << llendl;
|
||||
return;
|
||||
}
|
||||
|
||||
LLRect rc = mSnapshotRect;
|
||||
// *HACK dzaporozhan
|
||||
// LLTextureCtrl uses BTN_HEIGHT_SMALL as bottom for texture which causes
|
||||
// drawn texture to be smaller than expected. (see LLTextureCtrl::draw())
|
||||
// Lets increase texture height to force texture look as expected.
|
||||
rc.mBottom -= BTN_HEIGHT_SMALL;
|
||||
|
||||
F32 t_width = texture->getFullWidth();
|
||||
F32 t_height = texture->getFullHeight();
|
||||
|
||||
|
|
@ -1499,11 +1504,19 @@ void LLPanelClassifiedInfo::stretchSnapshot()
|
|||
t_height *= ratio;
|
||||
|
||||
rc.setCenterAndSize(rc.getCenterX(), rc.getCenterY(), llfloor(t_width), llfloor(t_height));
|
||||
texture_ctrl->setRect(rc);
|
||||
mSnapshotCtrl->setShape(rc);
|
||||
|
||||
mSnapshotStreched = true;
|
||||
}
|
||||
|
||||
LLRect LLPanelClassifiedInfo::getDefaultSnapshotRect()
|
||||
{
|
||||
// Using scroll container makes getting default rect a hard task
|
||||
// because rect in postBuild() and in first reshape() is not the same.
|
||||
// Using snapshot_panel makes it easier to reshape snapshot.
|
||||
return getChild<LLUICtrl>("snapshot_panel")->getLocalRect();
|
||||
}
|
||||
|
||||
void LLPanelClassifiedInfo::onMapClick()
|
||||
{
|
||||
LLFloaterWorldMap::getInstance()->trackLocation(getPosGlobal());
|
||||
|
|
@ -1587,6 +1600,8 @@ BOOL LLPanelClassifiedEdit::postBuild()
|
|||
childSetAction("save_changes_btn", boost::bind(&LLPanelClassifiedEdit::onSaveClick, this));
|
||||
childSetAction("set_to_curr_location_btn", boost::bind(&LLPanelClassifiedEdit::onSetLocationClick, this));
|
||||
|
||||
mSnapshotCtrl->setOnSelectCallback(boost::bind(&LLPanelClassifiedEdit::onTextureSelected, this));
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
@ -1734,6 +1749,22 @@ bool LLPanelClassifiedEdit::canClose()
|
|||
return mCanClose;
|
||||
}
|
||||
|
||||
void LLPanelClassifiedEdit::draw()
|
||||
{
|
||||
LLPanel::draw();
|
||||
|
||||
// Need to re-stretch on every draw because LLTextureCtrl::onSelectCallback
|
||||
// does not trigger callbacks when user navigates through images.
|
||||
stretchSnapshot();
|
||||
}
|
||||
|
||||
void LLPanelClassifiedEdit::stretchSnapshot()
|
||||
{
|
||||
LLPanelClassifiedInfo::stretchSnapshot();
|
||||
|
||||
getChild<LLUICtrl>("edit_icon")->setShape(mSnapshotCtrl->getRect());
|
||||
}
|
||||
|
||||
void LLPanelClassifiedEdit::sendUpdate()
|
||||
{
|
||||
LLAvatarClassifiedInfo c_data;
|
||||
|
|
@ -1913,4 +1944,9 @@ void LLPanelClassifiedEdit::onTexturePickerMouseLeave(LLUICtrl* ctrl)
|
|||
ctrl->setVisible(FALSE);
|
||||
}
|
||||
|
||||
void LLPanelClassifiedEdit::onTextureSelected()
|
||||
{
|
||||
setSnapshotId(mSnapshotCtrl->getValue().asUUID());
|
||||
}
|
||||
|
||||
//EOF
|
||||
|
|
|
|||
|
|
@ -280,10 +280,16 @@ protected:
|
|||
|
||||
void stretchSnapshot();
|
||||
|
||||
LLRect getDefaultSnapshotRect();
|
||||
|
||||
void onMapClick();
|
||||
void onTeleportClick();
|
||||
void onExit();
|
||||
|
||||
bool mSnapshotStreched;
|
||||
LLRect mSnapshotRect;
|
||||
LLTextureCtrl* mSnapshotCtrl;
|
||||
|
||||
private:
|
||||
|
||||
LLUUID mAvatarId;
|
||||
|
|
@ -292,9 +298,6 @@ private:
|
|||
LLUUID mParcelId;
|
||||
bool mInfoLoaded;
|
||||
|
||||
bool mSnapshotStreched;
|
||||
LLRect mSnapshotRect;
|
||||
|
||||
LLScrollContainer* mScrollContainer;
|
||||
LLPanel* mScrollingPanel;
|
||||
|
||||
|
|
@ -341,6 +344,10 @@ public:
|
|||
|
||||
bool canClose();
|
||||
|
||||
void draw();
|
||||
|
||||
void stretchSnapshot();
|
||||
|
||||
protected:
|
||||
|
||||
LLPanelClassifiedEdit();
|
||||
|
|
@ -372,6 +379,8 @@ protected:
|
|||
void onTexturePickerMouseEnter(LLUICtrl* ctrl);
|
||||
void onTexturePickerMouseLeave(LLUICtrl* ctrl);
|
||||
|
||||
void onTextureSelected();
|
||||
|
||||
private:
|
||||
bool mIsNew;
|
||||
bool mCanClose;
|
||||
|
|
|
|||
|
|
@ -74,15 +74,25 @@
|
|||
height="500"
|
||||
left="0"
|
||||
width="285">
|
||||
<panel
|
||||
name="snapshot_panel"
|
||||
layout="topleft"
|
||||
follows="left|top|right"
|
||||
height="197"
|
||||
left="10"
|
||||
top="10"
|
||||
width="275"
|
||||
>
|
||||
<texture_picker
|
||||
enabled="false"
|
||||
follows="left|top|right"
|
||||
height="197"
|
||||
layout="topleft"
|
||||
left="10"
|
||||
left="0"
|
||||
name="classified_snapshot"
|
||||
top="10"
|
||||
top="0"
|
||||
width="275" />
|
||||
</panel>
|
||||
<text_editor
|
||||
allow_scroll="false"
|
||||
bg_visible="false"
|
||||
|
|
|
|||
|
|
@ -62,24 +62,33 @@
|
|||
height="690"
|
||||
left="0"
|
||||
width="285">
|
||||
<panel
|
||||
name="snapshot_panel"
|
||||
layout="topleft"
|
||||
follows="left|top|right"
|
||||
height="197"
|
||||
left="10"
|
||||
top="10"
|
||||
width="272">
|
||||
<texture_picker
|
||||
follows="left|top|right"
|
||||
height="197"
|
||||
width="272"
|
||||
layout="topleft"
|
||||
top="10"
|
||||
left="11"
|
||||
top="0"
|
||||
left="0"
|
||||
name="classified_snapshot" />
|
||||
<icon
|
||||
<icon
|
||||
height="197"
|
||||
image_name="spacer24.tga"
|
||||
layout="topleft"
|
||||
name="edit_icon"
|
||||
label=""
|
||||
tool_tip="Click to select an image"
|
||||
top="10"
|
||||
left="11"
|
||||
width="286" />
|
||||
top="0"
|
||||
left="0"
|
||||
width="272" />
|
||||
</panel>
|
||||
<text
|
||||
type="string"
|
||||
length="1"
|
||||
|
|
|
|||
Loading…
Reference in New Issue