Merge pull request #2168 from RyeMutt/emoji-fixes

Emoji picker warning fixes and cleanup
meow-7.2.2
Andrey Lihatskiy 2024-08-01 22:56:32 +03:00 committed by GitHub
commit f9377566b9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 18 additions and 14 deletions

View File

@ -186,7 +186,7 @@ public:
{
mWStr = LLWString(1, emoji);
mEmoji = emoji;
mTitle = title;
mTitle = utf8str_to_wstring(title);
mBegin = begin;
mEnd = end;
}
@ -204,9 +204,9 @@ public:
drawIcon(centerX, centerY - 1, iconWidth);
static LLColor4 defaultColor(0.75f, 0.75f, 0.75f, 1.0f);
LLColor4 textColor = LLUIColorTable::instance().getColor("MenuItemEnabledColor", defaultColor);
static LLUIColor textColor = LLUIColorTable::instance().getColor("MenuItemEnabledColor", defaultColor);
S32 max_pixels = clientWidth - iconWidth;
drawName((F32)iconWidth, centerY, max_pixels, textColor);
drawName((F32)iconWidth, centerY, max_pixels, textColor.get());
}
protected:
@ -226,16 +226,16 @@ protected:
max_pixels); // max_pixels
}
void drawName(F32 x, F32 y, S32 max_pixels, LLColor4& color)
void drawName(F32 x, F32 y, S32 max_pixels, const LLColor4& color)
{
F32 x0 = x;
F32 x1 = (F32)max_pixels;
LLFontGL* font = LLFontGL::getFontEmojiLarge();
if (mBegin)
{
std::string text = mTitle.substr(0, mBegin);
font->renderUTF8(
text, // text
LLWString text = mTitle.substr(0, mBegin);
font->render(
text.c_str(), // text
0, // begin_offset
x0, // x
y, // y
@ -246,14 +246,14 @@ protected:
LLFontGL::DROP_SHADOW_SOFT, // shadow
static_cast<S32>(text.size()), // max_chars
(S32)x1); // max_pixels
F32 dx = font->getWidthF32(text);
F32 dx = font->getWidthF32(text.c_str());
x0 += dx;
x1 -= dx;
}
if (x1 > 0 && mEnd > mBegin)
{
std::string text = mTitle.substr(mBegin, mEnd - mBegin);
font->renderUTF8(
LLWString text = mTitle.substr(mBegin, mEnd - mBegin);
font->render(
text, // text
0, // begin_offset
x0, // x
@ -265,14 +265,14 @@ protected:
LLFontGL::DROP_SHADOW_SOFT, // shadow
static_cast<S32>(text.size()), // max_chars
(S32)x1); // max_pixels
F32 dx = font->getWidthF32(text);
F32 dx = font->getWidthF32(text.c_str());
x0 += dx;
x1 -= dx;
}
if (x1 > 0 && mEnd < mTitle.size())
{
std::string text = mEnd ? mTitle.substr(mEnd) : mTitle;
font->renderUTF8(
LLWString text = mEnd ? mTitle.substr(mEnd) : mTitle;
font->render(
text, // text
0, // begin_offset
x0, // x
@ -290,7 +290,7 @@ protected:
private:
llwchar mEmoji;
LLWString mWStr;
std::string mTitle;
LLWString mTitle;
size_t mBegin;
size_t mEnd;
};
@ -429,6 +429,7 @@ void LLFloaterEmojiPicker::fillGroups()
for (LLButton* button : mGroupButtons)
{
mGroups->removeChild(button);
button->die();
}
mFilteredEmojiGroups.clear();
mFilteredEmojis.clear();
@ -442,6 +443,7 @@ void LLFloaterEmojiPicker::fillGroups()
rect.mBottom = mBadge->getRect().getHeight();
// Create button for "All categories"
params.name = "all_categories";
createGroupButton(params, rect, ALL_EMOJIS_IMAGE_INDEX);
// Create group and button for "Recently used" and/or "Frequently used"
@ -455,6 +457,7 @@ void LLFloaterEmojiPicker::fillGroups()
{
mFilteredEmojiGroups.push_back(USED_EMOJIS_GROUP_INDEX);
mFilteredEmojis.emplace_back(cats);
params.name = "used_categories";
createGroupButton(params, rect, USED_EMOJIS_IMAGE_INDEX);
}
}
@ -472,6 +475,7 @@ void LLFloaterEmojiPicker::fillGroups()
{
mFilteredEmojiGroups.push_back(i);
mFilteredEmojis.emplace_back(cats);
params.name = "group_" + std::to_string(i);
createGroupButton(params, rect, groups[i].Character);
}
}