Skip to content
Snippets Groups Projects
Commit 9c3ee1ac authored by Rye Mutt's avatar Rye Mutt :bread:
Browse files

Merge branch 'texture-picker' into 'master'

Port the old texture picker.

See merge request alchemy/alchemy-next!14
parents d940c04d ba983504
Branches screensquare
No related tags found
1 merge request!14Port the old texture picker.
...@@ -596,5 +596,16 @@ ...@@ -596,5 +596,16 @@
<key>Value</key> <key>Value</key>
<integer>0</integer> <integer>0</integer>
</map> </map>
<key>UIImgTransparentUUID</key>
<map>
<key>Comment</key>
<string />
<key>Persist</key>
<integer>0</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
<string>8dcd4a48-2d37-4909-9f78-f7a9eb4ef903</string>
</map>
</map> </map>
</llsd> </llsd>
...@@ -1353,6 +1353,7 @@ void LLOutfitGallery::onSelectPhoto(LLUUID selected_outfit_id) ...@@ -1353,6 +1353,7 @@ void LLOutfitGallery::onSelectPhoto(LLUUID selected_outfit_id)
getPhotoAssetId(selected_outfit_id), getPhotoAssetId(selected_outfit_id),
getPhotoAssetId(selected_outfit_id), getPhotoAssetId(selected_outfit_id),
getPhotoAssetId(selected_outfit_id), getPhotoAssetId(selected_outfit_id),
getPhotoAssetId(selected_outfit_id),
FALSE, FALSE,
TRUE, TRUE,
"SELECT PHOTO", "SELECT PHOTO",
......
...@@ -84,6 +84,7 @@ LLFloaterTexturePicker::LLFloaterTexturePicker( ...@@ -84,6 +84,7 @@ LLFloaterTexturePicker::LLFloaterTexturePicker(
LLView* owner, LLView* owner,
LLUUID image_asset_id, LLUUID image_asset_id,
LLUUID default_image_asset_id, LLUUID default_image_asset_id,
LLUUID transparent_image_asset_id,
LLUUID blank_image_asset_id, LLUUID blank_image_asset_id,
BOOL tentative, BOOL tentative,
BOOL allow_no_texture, BOOL allow_no_texture,
...@@ -99,6 +100,7 @@ LLFloaterTexturePicker::LLFloaterTexturePicker( ...@@ -99,6 +100,7 @@ LLFloaterTexturePicker::LLFloaterTexturePicker(
mOriginalImageAssetID(image_asset_id), mOriginalImageAssetID(image_asset_id),
mFallbackImage(fallback_image), mFallbackImage(fallback_image),
mDefaultImageAssetID(default_image_asset_id), mDefaultImageAssetID(default_image_asset_id),
mTransparentImageAssetID(transparent_image_asset_id),
mBlankImageAssetID(blank_image_asset_id), mBlankImageAssetID(blank_image_asset_id),
mTentative(tentative), mTentative(tentative),
mAllowNoTexture(allow_no_texture), mAllowNoTexture(allow_no_texture),
...@@ -353,6 +355,7 @@ BOOL LLFloaterTexturePicker::postBuild() ...@@ -353,6 +355,7 @@ BOOL LLFloaterTexturePicker::postBuild()
childSetAction("Default",LLFloaterTexturePicker::onBtnSetToDefault,this); childSetAction("Default",LLFloaterTexturePicker::onBtnSetToDefault,this);
childSetAction("None", LLFloaterTexturePicker::onBtnNone,this); childSetAction("None", LLFloaterTexturePicker::onBtnNone,this);
childSetAction("Blank", LLFloaterTexturePicker::onBtnBlank,this); childSetAction("Blank", LLFloaterTexturePicker::onBtnBlank,this);
childSetAction("Transparent", LLFloaterTexturePicker::onBtnTransparent,this);
childSetCommitCallback("show_folders_check", onShowFolders, this); childSetCommitCallback("show_folders_check", onShowFolders, this);
...@@ -409,6 +412,9 @@ BOOL LLFloaterTexturePicker::postBuild() ...@@ -409,6 +412,9 @@ BOOL LLFloaterTexturePicker::postBuild()
mLocalScrollCtrl->setCommitCallback(onLocalScrollCommit, this); mLocalScrollCtrl->setCommitCallback(onLocalScrollCommit, this);
LLLocalBitmapMgr::getInstance()->feedScrollList(mLocalScrollCtrl); LLLocalBitmapMgr::getInstance()->feedScrollList(mLocalScrollCtrl);
getChild<LLLineEditor>("uuid_editor")->setCommitCallback(boost::bind(&onApplyUUID, this));
getChild<LLButton>("apply_uuid_btn")->setClickedCallback(boost::bind(&onApplyUUID, this));
mNoCopyTextureSelected = FALSE; mNoCopyTextureSelected = FALSE;
getChild<LLUICtrl>("apply_immediate_check")->setValue(gSavedSettings.getBOOL("TextureLivePreview")); getChild<LLUICtrl>("apply_immediate_check")->setValue(gSavedSettings.getBOOL("TextureLivePreview"));
...@@ -483,6 +489,7 @@ void LLFloaterTexturePicker::draw() ...@@ -483,6 +489,7 @@ void LLFloaterTexturePicker::draw()
} }
getChildView("Default")->setEnabled(mImageAssetID != mDefaultImageAssetID || mTentative); getChildView("Default")->setEnabled(mImageAssetID != mDefaultImageAssetID || mTentative);
getChildView("Transparent")->setEnabled(mImageAssetID != mTransparentImageAssetID || mTentative);
getChildView("Blank")->setEnabled(mImageAssetID != mBlankImageAssetID || mTentative); getChildView("Blank")->setEnabled(mImageAssetID != mBlankImageAssetID || mTentative);
getChildView("None")->setEnabled(mAllowNoTexture && (!mImageAssetID.isNull() || mTentative)); getChildView("None")->setEnabled(mAllowNoTexture && (!mImageAssetID.isNull() || mTentative));
...@@ -636,6 +643,15 @@ void LLFloaterTexturePicker::onBtnSetToDefault(void* userdata) ...@@ -636,6 +643,15 @@ void LLFloaterTexturePicker::onBtnSetToDefault(void* userdata)
self->commitIfImmediateSet(); self->commitIfImmediateSet();
} }
// static
void LLFloaterTexturePicker::onBtnTransparent(void* userdata)
{
LLFloaterTexturePicker* self = (LLFloaterTexturePicker*) userdata;
self->setCanApply(true, true);
self->setImageID( self->getTransparentImageAssetID() );
self->commitIfImmediateSet();
}
// static // static
void LLFloaterTexturePicker::onBtnBlank(void* userdata) void LLFloaterTexturePicker::onBtnBlank(void* userdata)
{ {
...@@ -714,6 +730,18 @@ void LLFloaterTexturePicker::onBtnPipette() ...@@ -714,6 +730,18 @@ void LLFloaterTexturePicker::onBtnPipette()
} }
} }
// static
void LLFloaterTexturePicker::onApplyUUID(void* userdata)
{
LLFloaterTexturePicker* self = (LLFloaterTexturePicker*) userdata;
LLUUID id(self->getChild<LLLineEditor>("uuid_editor")->getText());
if (id.notNull())
{
self->setImageID(id);
self->commitIfImmediateSet();
}
}
void LLFloaterTexturePicker::onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action) void LLFloaterTexturePicker::onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action)
{ {
if (items.size()) if (items.size())
...@@ -759,11 +787,14 @@ void LLFloaterTexturePicker::onModeSelect(LLUICtrl* ctrl, void *userdata) ...@@ -759,11 +787,14 @@ void LLFloaterTexturePicker::onModeSelect(LLUICtrl* ctrl, void *userdata)
int index = self->mModeSelector->getValue().asInteger(); int index = self->mModeSelector->getValue().asInteger();
self->getChild<LLButton>("Default")->setVisible(index == 0 ? TRUE : FALSE); self->getChild<LLButton>("Default")->setVisible(index == 0 ? TRUE : FALSE);
self->getChild<LLButton>("Transparent")->setVisible(index == 0 ? TRUE : FALSE);
self->getChild<LLButton>("Blank")->setVisible(index == 0 ? TRUE : FALSE); self->getChild<LLButton>("Blank")->setVisible(index == 0 ? TRUE : FALSE);
self->getChild<LLButton>("None")->setVisible(index == 0 ? TRUE : FALSE); self->getChild<LLButton>("None")->setVisible(index == 0 ? TRUE : FALSE);
self->getChild<LLButton>("Pipette")->setVisible(index == 0 ? TRUE : FALSE); self->getChild<LLButton>("Pipette")->setVisible(index == 0 ? TRUE : FALSE);
self->getChild<LLFilterEditor>("inventory search editor")->setVisible(index == 0 ? TRUE : FALSE); self->getChild<LLFilterEditor>("inventory search editor")->setVisible(index == 0 ? TRUE : FALSE);
self->getChild<LLInventoryPanel>("inventory panel")->setVisible(index == 0 ? TRUE : FALSE); self->getChild<LLInventoryPanel>("inventory panel")->setVisible(index == 0 ? TRUE : FALSE);
self->getChild<LLLineEditor>("uuid_editor")->setVisible(index == 0 ? TRUE : FALSE);
self->getChild<LLButton>("apply_uuid_btn")->setVisible(index == 0 ? TRUE : FALSE);
/*self->getChild<LLCheckBox>("show_folders_check")->setVisible(mode); /*self->getChild<LLCheckBox>("show_folders_check")->setVisible(mode);
no idea under which conditions the above is even shown, needs testing. */ no idea under which conditions the above is even shown, needs testing. */
...@@ -1161,6 +1192,9 @@ LLTextureCtrl::LLTextureCtrl(const LLTextureCtrl::Params& p) ...@@ -1161,6 +1192,9 @@ LLTextureCtrl::LLTextureCtrl(const LLTextureCtrl::Params& p)
mFallbackImage(p.fallback_image) mFallbackImage(p.fallback_image)
{ {
LLUUID transparentImage( gSavedSettings.getString( "UIImgTransparentUUID" ) );
setTransparentImageAssetID( transparentImage );
// Default of defaults is white image for diff tex // Default of defaults is white image for diff tex
// //
LLUUID whiteImage( gSavedSettings.getString( "UIImgWhiteUUID" ) ); LLUUID whiteImage( gSavedSettings.getString( "UIImgWhiteUUID" ) );
...@@ -1321,6 +1355,7 @@ void LLTextureCtrl::showPicker(BOOL take_focus) ...@@ -1321,6 +1355,7 @@ void LLTextureCtrl::showPicker(BOOL take_focus)
this, this,
getImageAssetID(), getImageAssetID(),
getDefaultImageAssetID(), getDefaultImageAssetID(),
getTransparentImageAssetID(),
getBlankImageAssetID(), getBlankImageAssetID(),
getTentative(), getTentative(),
getAllowNoTexture(), getAllowNoTexture(),
......
...@@ -161,6 +161,9 @@ class LLTextureCtrl ...@@ -161,6 +161,9 @@ class LLTextureCtrl
void setOpenTexPreview(bool open_preview) { mOpenTexPreview = open_preview; } void setOpenTexPreview(bool open_preview) { mOpenTexPreview = open_preview; }
void setTransparentImageAssetID( const LLUUID& id ) { mTransparentImageAssetID = id; }
const LLUUID& getTransparentImageAssetID() const { return mTransparentImageAssetID; }
void setCaption(const std::string& caption); void setCaption(const std::string& caption);
void setCanApplyImmediately(BOOL b); void setCanApplyImmediately(BOOL b);
...@@ -221,6 +224,7 @@ class LLTextureCtrl ...@@ -221,6 +224,7 @@ class LLTextureCtrl
LLUUID mImageAssetID; LLUUID mImageAssetID;
LLUUID mDefaultImageAssetID; LLUUID mDefaultImageAssetID;
LLUUID mBlankImageAssetID; LLUUID mBlankImageAssetID;
LLUUID mTransparentImageAssetID;
LLUIImagePtr mFallbackImage; LLUIImagePtr mFallbackImage;
std::string mDefaultImageName; std::string mDefaultImageName;
LLHandle<LLFloater> mFloaterHandle; LLHandle<LLFloater> mFloaterHandle;
...@@ -257,6 +261,7 @@ class LLFloaterTexturePicker final : public LLFloater ...@@ -257,6 +261,7 @@ class LLFloaterTexturePicker final : public LLFloater
LLView* owner, LLView* owner,
LLUUID image_asset_id, LLUUID image_asset_id,
LLUUID default_image_asset_id, LLUUID default_image_asset_id,
LLUUID transparent_image_asset_id,
LLUUID blank_image_asset_id, LLUUID blank_image_asset_id,
BOOL tentative, BOOL tentative,
BOOL allow_no_texture, BOOL allow_no_texture,
...@@ -309,6 +314,7 @@ class LLFloaterTexturePicker final : public LLFloater ...@@ -309,6 +314,7 @@ class LLFloaterTexturePicker final : public LLFloater
void setSetImageAssetIDCallback(const set_image_asset_id_callback& cb) { mSetImageAssetIDCallback = cb; } void setSetImageAssetIDCallback(const set_image_asset_id_callback& cb) { mSetImageAssetIDCallback = cb; }
void setOnUpdateImageStatsCallback(const set_on_update_image_stats_callback& cb) { mOnUpdateImageStatsCallback = cb; } void setOnUpdateImageStatsCallback(const set_on_update_image_stats_callback& cb) { mOnUpdateImageStatsCallback = cb; }
const LLUUID& getDefaultImageAssetID() { return mDefaultImageAssetID; } const LLUUID& getDefaultImageAssetID() { return mDefaultImageAssetID; }
const LLUUID& getTransparentImageAssetID() { return mTransparentImageAssetID; }
const LLUUID& getBlankImageAssetID() { return mBlankImageAssetID; } const LLUUID& getBlankImageAssetID() { return mBlankImageAssetID; }
static void onBtnSetToDefault(void* userdata); static void onBtnSetToDefault(void* userdata);
...@@ -316,9 +322,11 @@ class LLFloaterTexturePicker final : public LLFloater ...@@ -316,9 +322,11 @@ class LLFloaterTexturePicker final : public LLFloater
static void onBtnCancel(void* userdata); static void onBtnCancel(void* userdata);
void onBtnPipette(); void onBtnPipette();
//static void onBtnRevert( void* userdata ); //static void onBtnRevert( void* userdata );
static void onBtnTransparent(void* userdata);
static void onBtnBlank(void* userdata); static void onBtnBlank(void* userdata);
static void onBtnNone(void* userdata); static void onBtnNone(void* userdata);
static void onBtnClear(void* userdata); static void onBtnClear(void* userdata);
static void onApplyUUID(void* userdata);
void onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action); void onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action);
static void onShowFolders(LLUICtrl* ctrl, void* userdata); static void onShowFolders(LLUICtrl* ctrl, void* userdata);
static void onApplyImmediateCheck(LLUICtrl* ctrl, void* userdata); static void onApplyImmediateCheck(LLUICtrl* ctrl, void* userdata);
...@@ -343,6 +351,7 @@ class LLFloaterTexturePicker final : public LLFloater ...@@ -343,6 +351,7 @@ class LLFloaterTexturePicker final : public LLFloater
LLUUID mImageAssetID; // Currently selected texture LLUUID mImageAssetID; // Currently selected texture
LLUIImagePtr mFallbackImage; // What to show if currently selected texture is null. LLUIImagePtr mFallbackImage; // What to show if currently selected texture is null.
LLUUID mDefaultImageAssetID; LLUUID mDefaultImageAssetID;
LLUUID mTransparentImageAssetID;
LLUUID mBlankImageAssetID; LLUUID mBlankImageAssetID;
BOOL mTentative; BOOL mTentative;
BOOL mAllowNoTexture; BOOL mAllowNoTexture;
......
...@@ -3,9 +3,9 @@ ...@@ -3,9 +3,9 @@
legacy_header_height="18" legacy_header_height="18"
can_minimize="false" can_minimize="false"
can_resize="true" can_resize="true"
height="330" height="375"
layout="topleft" layout="topleft"
min_height="330" min_height="375"
min_width="410" min_width="410"
name="texture picker" name="texture picker"
help_topic="texture_picker" help_topic="texture_picker"
...@@ -63,6 +63,10 @@ ...@@ -63,6 +63,10 @@
value="0" /> value="0" />
<combo_box.item <combo_box.item
label="Local" label="Local"
left_pad="0"
layout="topleft"
top_delta="0"
height="16"
name="local" name="local"
value="1" /> value="1" />
<combo_box.item <combo_box.item
...@@ -88,7 +92,7 @@ ...@@ -88,7 +92,7 @@
<button <button
enabled="false" enabled="false"
follows="left|top" follows="left|top"
height="18" height="20"
label="Default" label="Default"
label_selected="Default" label_selected="Default"
layout="topleft" layout="topleft"
...@@ -96,6 +100,16 @@ ...@@ -96,6 +100,16 @@
width="73" width="73"
left="94" left="94"
top="215"/> top="215"/>
<button
follows="left|top"
height="20"
label="Transparent"
label_selected="Transparent"
layout="topleft"
left_delta="0"
name="Transparent"
top_pad="5"
width="73" />
<button <button
follows="left|top" follows="left|top"
height="20" height="20"
...@@ -123,21 +137,21 @@ ...@@ -123,21 +137,21 @@
image_selected="eye_button_active.tga" image_selected="eye_button_active.tga"
image_unselected="eye_button_inactive.tga" image_unselected="eye_button_inactive.tga"
layout="topleft" layout="topleft"
left="18" left_delta="-80"
top_delta="-23" top_delta="-25"
name="Pipette" name="Pipette"
width="28" /> width="28" />
<text <text
follows="left|bottom" follows="left|bottom"
height="40" height="20"
layout="topleft" layout="topleft"
left="8" left="8"
name="preview_disabled" name="preview_disabled"
top="285" top="266"
value="Preview Disabled" value="Preview Disabled"
word_wrap="true" word_wrap="true"
visible="false" visible="false"
width="87" /> width="120" />
<filter_editor <filter_editor
follows="left|top|right" follows="left|top|right"
height="23" height="23"
...@@ -153,38 +167,58 @@ ...@@ -153,38 +167,58 @@
bg_alpha_color="DkGray2" bg_alpha_color="DkGray2"
border="false" border="false"
follows="all" follows="all"
height="233" height="262"
layout="topleft" layout="topleft"
left_delta="0" left_delta="0"
name="inventory panel" name="inventory panel"
top_pad="4" top_pad="4"
width="231" filter_asset_type="texture"
filter_asset_type="texture"/> width="231" />
<check_box <check_box
height="14" visible="false"
height="0"
initial_value="false" initial_value="false"
label="Show folders" label="Show folders"
layout="topleft" layout="topleft"
name="show_folders_check" name="show_folders_check"
top_pad="0" top_pad="0"
left_delta="-3" left_delta="-3"
width="200" /> width="0" />
<line_editor
follows="left|bottom|right"
layout="topleft"
name="uuid_editor"
label="Enter Texture UUID"
max_length_chars="36"
top_pad="7"
height="20"
width="296"
left="5" />
<button
follows="bottom|right"
layout="topleft"
name="apply_uuid_btn"
label="Apply Key"
left_pad="5"
top_delta="0"
height="20"
width="100" />
<!-- middle: local mode --> <!-- middle: local mode -->
<button <button
follows="left|top" follows="left|bottom"
height="18" height="18"
label="Add" label="Add"
label_selected="Add" label_selected="Add"
layout="topleft" layout="topleft"
left="94" left="94"
top="215" top="272"
name="l_add_btn" name="l_add_btn"
width="73" width="73"
visible="false"/> visible="false"/>
<button <button
enabled="false" enabled="false"
follows="left|top" follows="left|bottom"
height="20" height="20"
label="Remove" label="Remove"
label_selected="Remove" label_selected="Remove"
...@@ -196,7 +230,7 @@ ...@@ -196,7 +230,7 @@
visible="false"/> visible="false"/>
<button <button
enabled="false" enabled="false"
follows="left|top" follows="left|bottom"
height="20" height="20"
label="Upload" label="Upload"
label_selected="Upload" label_selected="Upload"
...@@ -209,9 +243,9 @@ ...@@ -209,9 +243,9 @@
<scroll_list <scroll_list
name="l_name_list" name="l_name_list"
left="170" left="170"
top="22" top="20"
width="235" width="235"
height="260" height="320"
follows="left|top|right|bottom" follows="left|top|right|bottom"
column_padding="0" column_padding="0"
draw_heading="true" draw_heading="true"
...@@ -298,22 +332,22 @@ layout="topleft" ...@@ -298,22 +332,22 @@ layout="topleft"
visible="false"/> visible="false"/>
<!-- bottom static --> <!-- bottom static -->
<button <button
follows="bottom" follows="bottom|right"
height="20" height="20"
label="OK" label="OK"
label_selected="OK" label_selected="OK"
layout="topleft" layout="topleft"
left="176" left="-209"
top="-30" top="-30"
name="Select" name="Select"
width="100" /> width="100" />
<button <button
follows="bottom" follows="bottom|right"
height="20" height="20"
label="Cancel" label="Cancel"
label_selected="Cancel" label_selected="Cancel"
layout="topleft" layout="topleft"
left_delta="120" left_delta="105"
top_delta="0" top_delta="0"
name="Cancel" name="Cancel"
width="100" /> width="100" />
...@@ -326,5 +360,5 @@ layout="topleft" ...@@ -326,5 +360,5 @@ layout="topleft"
left="6" left="6"
name="apply_immediate_check" name="apply_immediate_check"
top_delta="0" top_delta="0"
width="150" /> width="120" />
</floater> </floater>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment